@contrast/agent-bundle 5.45.1 → 5.47.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 (189) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@contrast/agent/README.md +1 -1
  3. package/node_modules/@contrast/agent/package.json +12 -12
  4. package/node_modules/@contrast/agentify/package.json +15 -15
  5. package/node_modules/@contrast/architecture-components/package.json +5 -5
  6. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/common.js +1 -1
  7. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/handlers.js +24 -11
  8. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/index.js +6 -4
  9. package/node_modules/@contrast/assess/lib/configuration-analysis/install/apollo-server.js +92 -0
  10. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/express-session.js +2 -2
  11. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/fastify-cookie.js +2 -2
  12. package/node_modules/@contrast/assess/lib/configuration-analysis/install/graphql-yoga.js +90 -0
  13. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/hapi.js +2 -2
  14. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/koa.js +3 -3
  15. package/node_modules/@contrast/assess/lib/dataflow/propagation/install/string/substring.js +1 -1
  16. package/node_modules/@contrast/assess/lib/dataflow/sources/handler.js +30 -26
  17. package/node_modules/@contrast/assess/lib/dataflow/sources/index.js +2 -0
  18. package/node_modules/@contrast/assess/lib/dataflow/sources/install/fastify-websocket.js +63 -0
  19. package/node_modules/@contrast/assess/lib/dataflow/sources/install/http.js +42 -38
  20. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/index.js +1 -1
  21. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/koa-bodyparsers.js +76 -48
  22. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/koa-multer.js +1 -1
  23. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/koa-routers.js +2 -2
  24. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/{koa2.js → koa.js} +3 -3
  25. package/node_modules/@contrast/assess/lib/dataflow/sources/install/socket.io.js +80 -0
  26. package/node_modules/@contrast/assess/lib/get-source-context.js +10 -21
  27. package/node_modules/@contrast/assess/lib/index.d.ts +4 -3
  28. package/node_modules/@contrast/assess/lib/index.js +2 -2
  29. package/node_modules/@contrast/assess/lib/make-source-context.js +5 -10
  30. package/node_modules/@contrast/assess/lib/policy.js +400 -0
  31. package/node_modules/@contrast/assess/lib/response-scanning/handlers/index.js +10 -14
  32. package/node_modules/@contrast/assess/package.json +12 -12
  33. package/node_modules/@contrast/common/lib/constants.d.ts +12 -4
  34. package/node_modules/@contrast/common/lib/constants.js +16 -7
  35. package/node_modules/@contrast/common/lib/types.d.ts +5 -1
  36. package/node_modules/@contrast/common/package.json +1 -1
  37. package/node_modules/@contrast/config/lib/common.js +1 -0
  38. package/node_modules/@contrast/config/lib/options.js +14 -0
  39. package/node_modules/@contrast/config/package.json +3 -3
  40. package/node_modules/@contrast/core/package.json +5 -5
  41. package/node_modules/@contrast/deadzones/package.json +5 -5
  42. package/node_modules/@contrast/dep-hooks/lib/package-finder.d.ts +2 -2
  43. package/node_modules/@contrast/dep-hooks/lib/package-finder.js +3 -2
  44. package/node_modules/@contrast/dep-hooks/package.json +4 -4
  45. package/node_modules/@contrast/esm-hooks/README.md +2 -2
  46. package/node_modules/@contrast/esm-hooks/package.json +6 -6
  47. package/node_modules/@contrast/instrumentation/package.json +5 -5
  48. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/dep.json +149 -149
  49. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/index.js +2 -11
  50. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/utils.js +2 -0
  51. package/node_modules/@contrast/library-analysis/lib/install/library-usage/index.js +3 -1
  52. package/node_modules/@contrast/library-analysis/lib/util.js +0 -2
  53. package/node_modules/@contrast/library-analysis/package.json +4 -4
  54. package/node_modules/@contrast/logger/package.json +3 -3
  55. package/node_modules/@contrast/metrics/package.json +6 -6
  56. package/node_modules/@contrast/patcher/package.json +2 -2
  57. package/node_modules/@contrast/protect/lib/error-handlers/index.js +1 -1
  58. package/node_modules/@contrast/protect/lib/error-handlers/install/{koa2.js → koa.js} +4 -4
  59. package/node_modules/@contrast/protect/lib/index.d.ts +1 -1
  60. package/node_modules/@contrast/protect/lib/input-analysis/handlers.js +1 -12
  61. package/node_modules/@contrast/protect/lib/input-analysis/index.js +2 -3
  62. package/node_modules/@contrast/protect/lib/input-analysis/install/koa-bodyparsers.js +92 -0
  63. package/node_modules/@contrast/protect/lib/input-analysis/install/{koa2.js → koa.js} +5 -5
  64. package/node_modules/@contrast/protect/package.json +11 -11
  65. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/application-activity/translations.js +6 -10
  66. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/routes-observed.js +4 -0
  67. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/index.d.ts +1 -1
  68. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/index.js +1 -1
  69. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/translations.d.ts +1 -1
  70. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/translations.js +22 -9
  71. package/node_modules/@contrast/reporter/lib/reporters/file.js +1 -1
  72. package/node_modules/@contrast/reporter/package.json +6 -6
  73. package/node_modules/@contrast/rewriter/package.json +5 -5
  74. package/node_modules/@contrast/route-coverage/lib/index.d.ts +0 -2
  75. package/node_modules/@contrast/route-coverage/lib/index.js +10 -1
  76. package/node_modules/@contrast/route-coverage/lib/install/express/express5.js +16 -1
  77. package/node_modules/@contrast/route-coverage/lib/install/fastify.js +25 -15
  78. package/node_modules/@contrast/route-coverage/lib/install/graphql.js +6 -1
  79. package/node_modules/@contrast/route-coverage/lib/install/koa.js +1 -1
  80. package/node_modules/@contrast/route-coverage/lib/install/socket.io.js +127 -0
  81. package/node_modules/@contrast/route-coverage/package.json +8 -8
  82. package/node_modules/@contrast/scopes/package.json +5 -5
  83. package/node_modules/@contrast/sec-obs/package.json +9 -9
  84. package/node_modules/@contrast/sources/lib/index.js +65 -22
  85. package/node_modules/@contrast/sources/lib/index.test.js +78 -33
  86. package/node_modules/@contrast/sources/lib/source-info.js +1 -10
  87. package/node_modules/@contrast/sources/package.json +3 -3
  88. package/node_modules/@contrast/telemetry/package.json +5 -5
  89. package/node_modules/@types/node/README.md +1 -1
  90. package/node_modules/@types/node/assert/strict.d.ts +105 -2
  91. package/node_modules/@types/node/assert.d.ts +154 -95
  92. package/node_modules/@types/node/buffer.buffer.d.ts +9 -0
  93. package/node_modules/@types/node/buffer.d.ts +8 -4
  94. package/node_modules/@types/node/child_process.d.ts +65 -42
  95. package/node_modules/@types/node/cluster.d.ts +4 -5
  96. package/node_modules/@types/node/crypto.d.ts +1173 -322
  97. package/node_modules/@types/node/dgram.d.ts +9 -8
  98. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -2
  99. package/node_modules/@types/node/dns.d.ts +1 -1
  100. package/node_modules/@types/node/events.d.ts +80 -34
  101. package/node_modules/@types/node/fs/promises.d.ts +39 -21
  102. package/node_modules/@types/node/fs.d.ts +328 -87
  103. package/node_modules/@types/node/globals.d.ts +2 -0
  104. package/node_modules/@types/node/globals.typedarray.d.ts +19 -0
  105. package/node_modules/@types/node/http.d.ts +94 -30
  106. package/node_modules/@types/node/http2.d.ts +178 -52
  107. package/node_modules/@types/node/https.d.ts +91 -62
  108. package/node_modules/@types/node/index.d.ts +2 -0
  109. package/node_modules/@types/node/inspector.d.ts +24 -0
  110. package/node_modules/@types/node/inspector.generated.d.ts +181 -0
  111. package/node_modules/@types/node/net.d.ts +12 -11
  112. package/node_modules/@types/node/os.d.ts +14 -3
  113. package/node_modules/@types/node/package.json +3 -3
  114. package/node_modules/@types/node/perf_hooks.d.ts +6 -8
  115. package/node_modules/@types/node/process.d.ts +12 -23
  116. package/node_modules/@types/node/readline/promises.d.ts +1 -1
  117. package/node_modules/@types/node/sea.d.ts +9 -0
  118. package/node_modules/@types/node/sqlite.d.ts +119 -10
  119. package/node_modules/@types/node/stream/consumers.d.ts +2 -2
  120. package/node_modules/@types/node/stream/web.d.ts +6 -55
  121. package/node_modules/@types/node/stream.d.ts +38 -23
  122. package/node_modules/@types/node/string_decoder.d.ts +2 -2
  123. package/node_modules/@types/node/test.d.ts +31 -26
  124. package/node_modules/@types/node/tls.d.ts +90 -66
  125. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +10 -2
  126. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +16 -0
  127. package/node_modules/@types/node/ts5.6/index.d.ts +2 -0
  128. package/node_modules/@types/node/ts5.7/index.d.ts +2 -0
  129. package/node_modules/@types/node/url.d.ts +8 -3
  130. package/node_modules/@types/node/util.d.ts +17 -3
  131. package/node_modules/@types/node/v8.d.ts +38 -5
  132. package/node_modules/@types/node/vm.d.ts +169 -88
  133. package/node_modules/@types/node/wasi.d.ts +1 -1
  134. package/node_modules/@types/node/web-globals/crypto.d.ts +32 -0
  135. package/node_modules/@types/node/web-globals/events.d.ts +3 -0
  136. package/node_modules/@types/node/web-globals/streams.d.ts +22 -0
  137. package/node_modules/@types/node/worker_threads.d.ts +109 -48
  138. package/node_modules/@types/node/zlib.d.ts +31 -24
  139. package/node_modules/axios/CHANGELOG.md +403 -357
  140. package/node_modules/axios/README.md +80 -49
  141. package/node_modules/axios/dist/axios.js +121 -46
  142. package/node_modules/axios/dist/axios.js.map +1 -1
  143. package/node_modules/axios/dist/axios.min.js +2 -2
  144. package/node_modules/axios/dist/axios.min.js.map +1 -1
  145. package/node_modules/axios/dist/browser/axios.cjs +126 -57
  146. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  147. package/node_modules/axios/dist/esm/axios.js +126 -57
  148. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  149. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  150. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  151. package/node_modules/axios/dist/node/axios.cjs +346 -97
  152. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  153. package/node_modules/axios/index.d.cts +4 -0
  154. package/node_modules/axios/index.d.ts +4 -0
  155. package/node_modules/axios/lib/adapters/adapters.js +85 -40
  156. package/node_modules/axios/lib/adapters/fetch.js +1 -1
  157. package/node_modules/axios/lib/adapters/http.js +220 -42
  158. package/node_modules/axios/lib/core/InterceptorManager.js +1 -1
  159. package/node_modules/axios/lib/core/mergeConfig.js +4 -4
  160. package/node_modules/axios/lib/env/data.js +1 -1
  161. package/node_modules/axios/lib/helpers/HttpStatusCode.js +6 -0
  162. package/node_modules/axios/lib/helpers/bind.js +7 -0
  163. package/node_modules/axios/lib/helpers/cookies.js +24 -13
  164. package/node_modules/axios/package.json +9 -4
  165. package/node_modules/detect-libc/lib/filesystem.js +1 -1
  166. package/node_modules/detect-libc/package.json +3 -1
  167. package/node_modules/node-abi/abi_registry.json +12 -2
  168. package/node_modules/node-abi/package.json +3 -6
  169. package/node_modules/semver/classes/range.js +1 -0
  170. package/node_modules/semver/classes/semver.js +19 -5
  171. package/node_modules/semver/internal/identifiers.js +4 -0
  172. package/node_modules/semver/package.json +3 -3
  173. package/node_modules/undici-types/agent.d.ts +1 -4
  174. package/node_modules/undici-types/client.d.ts +0 -2
  175. package/node_modules/undici-types/diagnostics-channel.d.ts +0 -1
  176. package/node_modules/undici-types/dispatcher.d.ts +0 -6
  177. package/node_modules/undici-types/errors.d.ts +5 -15
  178. package/node_modules/undici-types/eventsource.d.ts +6 -1
  179. package/node_modules/undici-types/h2c-client.d.ts +0 -2
  180. package/node_modules/undici-types/index.d.ts +6 -1
  181. package/node_modules/undici-types/interceptors.d.ts +5 -0
  182. package/node_modules/undici-types/mock-interceptor.d.ts +0 -1
  183. package/node_modules/undici-types/package.json +1 -1
  184. package/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  185. package/node_modules/undici-types/webidl.d.ts +82 -21
  186. package/package.json +3 -3
  187. package/node_modules/@contrast/assess/lib/get-policy.js +0 -336
  188. package/node_modules/@contrast/protect/lib/input-analysis/install/koa-body5.js +0 -63
  189. package/node_modules/@contrast/protect/lib/input-analysis/install/koa-bodyparser4.js +0 -64
@@ -143,6 +143,8 @@ declare namespace NodeJS {
143
143
  readonly [key: string]: T | undefined;
144
144
  }
145
145
 
146
+ type PartialOptions<T> = { [K in keyof T]?: T[K] | undefined };
147
+
146
148
  interface GCFunction {
147
149
  (minor?: boolean): void;
148
150
  (options: NodeJS.GCOptions & { execution: "async" }): Promise<void>;
@@ -18,5 +18,24 @@ declare global {
18
18
  type ArrayBufferView<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> =
19
19
  | TypedArray<TArrayBuffer>
20
20
  | DataView<TArrayBuffer>;
21
+
22
+ // The following aliases are required to allow use of non-shared ArrayBufferViews in @types/node
23
+ // while maintaining compatibility with TS <=5.6.
24
+ // TODO: remove once @types/node no longer supports TS 5.6, and replace with native types.
25
+ type NonSharedUint8Array = Uint8Array<ArrayBuffer>;
26
+ type NonSharedUint8ClampedArray = Uint8ClampedArray<ArrayBuffer>;
27
+ type NonSharedUint16Array = Uint16Array<ArrayBuffer>;
28
+ type NonSharedUint32Array = Uint32Array<ArrayBuffer>;
29
+ type NonSharedInt8Array = Int8Array<ArrayBuffer>;
30
+ type NonSharedInt16Array = Int16Array<ArrayBuffer>;
31
+ type NonSharedInt32Array = Int32Array<ArrayBuffer>;
32
+ type NonSharedBigUint64Array = BigUint64Array<ArrayBuffer>;
33
+ type NonSharedBigInt64Array = BigInt64Array<ArrayBuffer>;
34
+ type NonSharedFloat16Array = Float16Array<ArrayBuffer>;
35
+ type NonSharedFloat32Array = Float32Array<ArrayBuffer>;
36
+ type NonSharedFloat64Array = Float64Array<ArrayBuffer>;
37
+ type NonSharedDataView = DataView<ArrayBuffer>;
38
+ type NonSharedTypedArray = TypedArray<ArrayBuffer>;
39
+ type NonSharedArrayBufferView = ArrayBufferView<ArrayBuffer>;
21
40
  }
22
41
  }
@@ -40,6 +40,7 @@
40
40
  * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/http.js)
41
41
  */
42
42
  declare module "http" {
43
+ import { NonSharedBuffer } from "node:buffer";
43
44
  import * as stream from "node:stream";
44
45
  import { URL } from "node:url";
45
46
  import { LookupOptions } from "node:dns";
@@ -200,7 +201,7 @@ declare module "http" {
200
201
  "x-frame-options"?: string | undefined;
201
202
  "x-xss-protection"?: string | undefined;
202
203
  }
203
- interface ClientRequestArgs {
204
+ interface ClientRequestArgs extends Pick<LookupOptions, "hints"> {
204
205
  _defaultAgent?: Agent | undefined;
205
206
  agent?: Agent | boolean | undefined;
206
207
  auth?: string | null | undefined;
@@ -213,7 +214,6 @@ declare module "http" {
213
214
  defaultPort?: number | string | undefined;
214
215
  family?: number | undefined;
215
216
  headers?: OutgoingHttpHeaders | readonly string[] | undefined;
216
- hints?: LookupOptions["hints"];
217
217
  host?: string | null | undefined;
218
218
  hostname?: string | null | undefined;
219
219
  insecureHTTPParser?: boolean | undefined;
@@ -234,7 +234,7 @@ declare module "http" {
234
234
  socketPath?: string | undefined;
235
235
  timeout?: number | undefined;
236
236
  uniqueHeaders?: Array<string | string[]> | undefined;
237
- joinDuplicateHeaders?: boolean;
237
+ joinDuplicateHeaders?: boolean | undefined;
238
238
  }
239
239
  interface ServerOptions<
240
240
  Request extends typeof IncomingMessage = typeof IncomingMessage,
@@ -260,7 +260,7 @@ declare module "http" {
260
260
  * @default false
261
261
  * @since v18.14.0
262
262
  */
263
- joinDuplicateHeaders?: boolean;
263
+ joinDuplicateHeaders?: boolean | undefined;
264
264
  /**
265
265
  * The number of milliseconds of inactivity a server needs to wait for additional incoming data,
266
266
  * after it has finished writing the last response, before a socket will be destroyed.
@@ -269,6 +269,13 @@ declare module "http" {
269
269
  * @since v18.0.0
270
270
  */
271
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;
272
279
  /**
273
280
  * Sets the interval value in milliseconds to check for request and headers timeout in incomplete requests.
274
281
  * @default 30000
@@ -333,6 +340,17 @@ declare module "http" {
333
340
  * If the header's value is an array, the items will be joined using `; `.
334
341
  */
335
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;
336
354
  /**
337
355
  * If set to `true`, an error is thrown when writing to an HTTP response which does not have a body.
338
356
  * @default false
@@ -413,12 +431,18 @@ declare module "http" {
413
431
  /**
414
432
  * The number of milliseconds of inactivity a server needs to wait for additional
415
433
  * incoming data, after it has finished writing the last response, before a socket
416
- * will be destroyed. If the server receives new data before the keep-alive
417
- * 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`.
418
442
  *
419
443
  * A value of `0` will disable the keep-alive timeout behavior on incoming
420
444
  * connections.
421
- * 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
422
446
  * to 8.0.0, which did not have a keep-alive timeout.
423
447
  *
424
448
  * The socket timeout logic is set up on connection, so changing this value only
@@ -426,6 +450,18 @@ declare module "http" {
426
450
  * @since v8.0.0
427
451
  */
428
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;
429
465
  /**
430
466
  * Sets the timeout value in milliseconds for receiving the entire request from
431
467
  * the client.
@@ -460,13 +496,13 @@ declare module "http" {
460
496
  addListener(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
461
497
  addListener(
462
498
  event: "connect",
463
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
499
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
464
500
  ): this;
465
501
  addListener(event: "dropRequest", listener: (req: InstanceType<Request>, socket: stream.Duplex) => void): this;
466
502
  addListener(event: "request", listener: RequestListener<Request, Response>): this;
467
503
  addListener(
468
504
  event: "upgrade",
469
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
505
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
470
506
  ): this;
471
507
  emit(event: string, ...args: any[]): boolean;
472
508
  emit(event: "close"): boolean;
@@ -484,14 +520,14 @@ declare module "http" {
484
520
  res: InstanceType<Response> & { req: InstanceType<Request> },
485
521
  ): boolean;
486
522
  emit(event: "clientError", err: Error, socket: stream.Duplex): boolean;
487
- emit(event: "connect", req: InstanceType<Request>, socket: stream.Duplex, head: Buffer): boolean;
523
+ emit(event: "connect", req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer): boolean;
488
524
  emit(event: "dropRequest", req: InstanceType<Request>, socket: stream.Duplex): boolean;
489
525
  emit(
490
526
  event: "request",
491
527
  req: InstanceType<Request>,
492
528
  res: InstanceType<Response> & { req: InstanceType<Request> },
493
529
  ): boolean;
494
- emit(event: "upgrade", req: InstanceType<Request>, socket: stream.Duplex, head: Buffer): boolean;
530
+ emit(event: "upgrade", req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer): boolean;
495
531
  on(event: string, listener: (...args: any[]) => void): this;
496
532
  on(event: "close", listener: () => void): this;
497
533
  on(event: "connection", listener: (socket: Socket) => void): this;
@@ -500,10 +536,16 @@ declare module "http" {
500
536
  on(event: "checkContinue", listener: RequestListener<Request, Response>): this;
501
537
  on(event: "checkExpectation", listener: RequestListener<Request, Response>): this;
502
538
  on(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
503
- on(event: "connect", listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void): this;
539
+ on(
540
+ event: "connect",
541
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
542
+ ): this;
504
543
  on(event: "dropRequest", listener: (req: InstanceType<Request>, socket: stream.Duplex) => void): this;
505
544
  on(event: "request", listener: RequestListener<Request, Response>): this;
506
- on(event: "upgrade", listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void): this;
545
+ on(
546
+ event: "upgrade",
547
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
548
+ ): this;
507
549
  once(event: string, listener: (...args: any[]) => void): this;
508
550
  once(event: "close", listener: () => void): this;
509
551
  once(event: "connection", listener: (socket: Socket) => void): this;
@@ -514,13 +556,13 @@ declare module "http" {
514
556
  once(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
515
557
  once(
516
558
  event: "connect",
517
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
559
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
518
560
  ): this;
519
561
  once(event: "dropRequest", listener: (req: InstanceType<Request>, socket: stream.Duplex) => void): this;
520
562
  once(event: "request", listener: RequestListener<Request, Response>): this;
521
563
  once(
522
564
  event: "upgrade",
523
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
565
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
524
566
  ): this;
525
567
  prependListener(event: string, listener: (...args: any[]) => void): this;
526
568
  prependListener(event: "close", listener: () => void): this;
@@ -532,7 +574,7 @@ declare module "http" {
532
574
  prependListener(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
533
575
  prependListener(
534
576
  event: "connect",
535
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
577
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
536
578
  ): this;
537
579
  prependListener(
538
580
  event: "dropRequest",
@@ -541,7 +583,7 @@ declare module "http" {
541
583
  prependListener(event: "request", listener: RequestListener<Request, Response>): this;
542
584
  prependListener(
543
585
  event: "upgrade",
544
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
586
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
545
587
  ): this;
546
588
  prependOnceListener(event: string, listener: (...args: any[]) => void): this;
547
589
  prependOnceListener(event: "close", listener: () => void): this;
@@ -553,7 +595,7 @@ declare module "http" {
553
595
  prependOnceListener(event: "clientError", listener: (err: Error, socket: stream.Duplex) => void): this;
554
596
  prependOnceListener(
555
597
  event: "connect",
556
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
598
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
557
599
  ): this;
558
600
  prependOnceListener(
559
601
  event: "dropRequest",
@@ -562,7 +604,7 @@ declare module "http" {
562
604
  prependOnceListener(event: "request", listener: RequestListener<Request, Response>): this;
563
605
  prependOnceListener(
564
606
  event: "upgrade",
565
- listener: (req: InstanceType<Request>, socket: stream.Duplex, head: Buffer) => void,
607
+ listener: (req: InstanceType<Request>, socket: stream.Duplex, head: NonSharedBuffer) => void,
566
608
  ): this;
567
609
  }
568
610
  /**
@@ -1082,7 +1124,7 @@ declare module "http" {
1082
1124
  addListener(event: "abort", listener: () => void): this;
1083
1125
  addListener(
1084
1126
  event: "connect",
1085
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1127
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1086
1128
  ): this;
1087
1129
  addListener(event: "continue", listener: () => void): this;
1088
1130
  addListener(event: "information", listener: (info: InformationEvent) => void): this;
@@ -1091,7 +1133,7 @@ declare module "http" {
1091
1133
  addListener(event: "timeout", listener: () => void): this;
1092
1134
  addListener(
1093
1135
  event: "upgrade",
1094
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1136
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1095
1137
  ): this;
1096
1138
  addListener(event: "close", listener: () => void): this;
1097
1139
  addListener(event: "drain", listener: () => void): this;
@@ -1104,13 +1146,19 @@ declare module "http" {
1104
1146
  * @deprecated
1105
1147
  */
1106
1148
  on(event: "abort", listener: () => void): this;
1107
- on(event: "connect", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1149
+ on(
1150
+ event: "connect",
1151
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1152
+ ): this;
1108
1153
  on(event: "continue", listener: () => void): this;
1109
1154
  on(event: "information", listener: (info: InformationEvent) => void): this;
1110
1155
  on(event: "response", listener: (response: IncomingMessage) => void): this;
1111
1156
  on(event: "socket", listener: (socket: Socket) => void): this;
1112
1157
  on(event: "timeout", listener: () => void): this;
1113
- on(event: "upgrade", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1158
+ on(
1159
+ event: "upgrade",
1160
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1161
+ ): this;
1114
1162
  on(event: "close", listener: () => void): this;
1115
1163
  on(event: "drain", listener: () => void): this;
1116
1164
  on(event: "error", listener: (err: Error) => void): this;
@@ -1122,13 +1170,19 @@ declare module "http" {
1122
1170
  * @deprecated
1123
1171
  */
1124
1172
  once(event: "abort", listener: () => void): this;
1125
- once(event: "connect", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1173
+ once(
1174
+ event: "connect",
1175
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1176
+ ): this;
1126
1177
  once(event: "continue", listener: () => void): this;
1127
1178
  once(event: "information", listener: (info: InformationEvent) => void): this;
1128
1179
  once(event: "response", listener: (response: IncomingMessage) => void): this;
1129
1180
  once(event: "socket", listener: (socket: Socket) => void): this;
1130
1181
  once(event: "timeout", listener: () => void): this;
1131
- once(event: "upgrade", listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this;
1182
+ once(
1183
+ event: "upgrade",
1184
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1185
+ ): this;
1132
1186
  once(event: "close", listener: () => void): this;
1133
1187
  once(event: "drain", listener: () => void): this;
1134
1188
  once(event: "error", listener: (err: Error) => void): this;
@@ -1142,7 +1196,7 @@ declare module "http" {
1142
1196
  prependListener(event: "abort", listener: () => void): this;
1143
1197
  prependListener(
1144
1198
  event: "connect",
1145
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1199
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1146
1200
  ): this;
1147
1201
  prependListener(event: "continue", listener: () => void): this;
1148
1202
  prependListener(event: "information", listener: (info: InformationEvent) => void): this;
@@ -1151,7 +1205,7 @@ declare module "http" {
1151
1205
  prependListener(event: "timeout", listener: () => void): this;
1152
1206
  prependListener(
1153
1207
  event: "upgrade",
1154
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1208
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1155
1209
  ): this;
1156
1210
  prependListener(event: "close", listener: () => void): this;
1157
1211
  prependListener(event: "drain", listener: () => void): this;
@@ -1166,7 +1220,7 @@ declare module "http" {
1166
1220
  prependOnceListener(event: "abort", listener: () => void): this;
1167
1221
  prependOnceListener(
1168
1222
  event: "connect",
1169
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1223
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1170
1224
  ): this;
1171
1225
  prependOnceListener(event: "continue", listener: () => void): this;
1172
1226
  prependOnceListener(event: "information", listener: (info: InformationEvent) => void): this;
@@ -1175,7 +1229,7 @@ declare module "http" {
1175
1229
  prependOnceListener(event: "timeout", listener: () => void): this;
1176
1230
  prependOnceListener(
1177
1231
  event: "upgrade",
1178
- listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void,
1232
+ listener: (response: IncomingMessage, socket: Socket, head: NonSharedBuffer) => void,
1179
1233
  ): this;
1180
1234
  prependOnceListener(event: "close", listener: () => void): this;
1181
1235
  prependOnceListener(event: "drain", listener: () => void): this;
@@ -1427,7 +1481,7 @@ declare module "http" {
1427
1481
  https_proxy?: string | undefined;
1428
1482
  no_proxy?: string | undefined;
1429
1483
  }
1430
- interface AgentOptions extends Partial<TcpSocketConnectOpts> {
1484
+ interface AgentOptions extends NodeJS.PartialOptions<TcpSocketConnectOpts> {
1431
1485
  /**
1432
1486
  * Keep sockets around in a pool to be used by other requests in the future. Default = false
1433
1487
  */
@@ -1437,6 +1491,16 @@ declare module "http" {
1437
1491
  * Only relevant if keepAlive is set to true.
1438
1492
  */
1439
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;
1440
1504
  /**
1441
1505
  * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity
1442
1506
  */