@suveren/gateway 0.8.3 → 0.8.5

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 (98) hide show
  1. package/content/integrations/deploy-github.json +2 -2
  2. package/dist/control-plane/index.mjs +89 -70
  3. package/dist/mcp-server/http.mjs +75 -0
  4. package/dist/ui/assets/index-CheBVmNI.css +1 -0
  5. package/dist/ui/assets/index-IVfLWq4W.js +110 -0
  6. package/dist/ui/index.html +2 -2
  7. package/node_modules/@types/node/README.md +2 -2
  8. package/node_modules/@types/node/buffer.d.ts +1 -0
  9. package/node_modules/@types/node/child_process.d.ts +1 -1
  10. package/node_modules/@types/node/crypto.d.ts +20 -8
  11. package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
  12. package/node_modules/@types/node/ffi.d.ts +14 -0
  13. package/node_modules/@types/node/http.d.ts +1 -1
  14. package/node_modules/@types/node/http2.d.ts +3 -2
  15. package/node_modules/@types/node/net.d.ts +16 -4
  16. package/node_modules/@types/node/package.json +3 -18
  17. package/node_modules/@types/node/perf_hooks.d.ts +31 -19
  18. package/node_modules/@types/node/process.d.ts +1 -0
  19. package/node_modules/@types/node/quic.d.ts +45 -5
  20. package/node_modules/@types/node/stream/iter.d.ts +9 -12
  21. package/node_modules/@types/node/stream/web.d.ts +20 -0
  22. package/node_modules/@types/node/test/reporters.d.ts +1 -0
  23. package/node_modules/@types/node/test.d.ts +72 -0
  24. package/node_modules/@types/node/tls.d.ts +40 -25
  25. package/node_modules/@types/node/vfs.d.ts +7 -6
  26. package/node_modules/@types/node/vm.d.ts +2 -1
  27. package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  28. package/node_modules/@types/node/worker_threads.d.ts +4 -1
  29. package/node_modules/@types/node/zlib.d.ts +17 -0
  30. package/node_modules/body-parser/HISTORY.md +156 -145
  31. package/node_modules/body-parser/package.json +2 -2
  32. package/node_modules/express/History.md +583 -576
  33. package/node_modules/express/lib/request.js +2 -2
  34. package/node_modules/express/package.json +3 -3
  35. package/node_modules/fast-uri/index.js +10 -6
  36. package/node_modules/fast-uri/package.json +1 -1
  37. package/node_modules/fast-uri/test/security-normalization.test.js +38 -0
  38. package/node_modules/hono/README.md +1 -1
  39. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +5 -4
  40. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +5 -4
  41. package/node_modules/hono/dist/cjs/context.js +1 -1
  42. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +1 -1
  43. package/node_modules/hono/dist/cjs/jsx/dom/render.js +44 -8
  44. package/node_modules/hono/dist/cjs/middleware/language/language.js +4 -1
  45. package/node_modules/hono/dist/cjs/request.js +4 -1
  46. package/node_modules/hono/dist/cjs/utils/accept.js +4 -7
  47. package/node_modules/hono/dist/context.js +1 -1
  48. package/node_modules/hono/dist/helper/accepts/accepts.js +1 -1
  49. package/node_modules/hono/dist/jsx/dom/render.js +44 -8
  50. package/node_modules/hono/dist/middleware/language/language.js +4 -1
  51. package/node_modules/hono/dist/request.js +4 -1
  52. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +1 -1
  53. package/node_modules/hono/dist/types/helper/route/index.d.ts +2 -2
  54. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +3 -1
  55. package/node_modules/hono/dist/types/utils/types.d.ts +1 -1
  56. package/node_modules/hono/dist/utils/accept.js +4 -7
  57. package/node_modules/hono/package.json +1 -1
  58. package/node_modules/ip-address/README.md +114 -114
  59. package/node_modules/ip-address/dist/common.d.ts +5 -0
  60. package/node_modules/ip-address/dist/common.js +12 -0
  61. package/node_modules/ip-address/dist/common.js.map +1 -1
  62. package/node_modules/ip-address/dist/ipv4.d.ts +10 -3
  63. package/node_modules/ip-address/dist/ipv4.js +20 -5
  64. package/node_modules/ip-address/dist/ipv4.js.map +1 -1
  65. package/node_modules/ip-address/dist/ipv6.d.ts +5 -1
  66. package/node_modules/ip-address/dist/ipv6.js +18 -3
  67. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  68. package/node_modules/ip-address/package.json +1 -1
  69. package/node_modules/proxy-addr/HISTORY.md +60 -54
  70. package/node_modules/proxy-addr/README.md +1 -1
  71. package/node_modules/proxy-addr/index.js +32 -0
  72. package/node_modules/proxy-addr/package.json +8 -4
  73. package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
  74. package/node_modules/qs/CHANGELOG.md +15 -0
  75. package/node_modules/qs/README.md +19 -1
  76. package/node_modules/qs/dist/qs.js +21 -21
  77. package/node_modules/qs/eslint.config.mjs +1 -1
  78. package/node_modules/qs/lib/parse.js +3 -4
  79. package/node_modules/qs/lib/stringify.js +23 -8
  80. package/node_modules/qs/lib/utils.js +10 -3
  81. package/node_modules/qs/package.json +4 -4
  82. package/node_modules/qs/test/parse.js +192 -3
  83. package/node_modules/qs/test/stringify.js +317 -0
  84. package/node_modules/qs/test/utils.js +12 -0
  85. package/node_modules/undici-types/client.d.ts +8 -3
  86. package/node_modules/undici-types/connector.d.ts +1 -0
  87. package/node_modules/undici-types/cookies.d.ts +1 -1
  88. package/node_modules/undici-types/dispatcher.d.ts +3 -3
  89. package/node_modules/undici-types/errors.d.ts +10 -0
  90. package/node_modules/undici-types/fetch.d.ts +5 -1
  91. package/node_modules/undici-types/handlers.d.ts +2 -0
  92. package/node_modules/undici-types/interceptors.d.ts +1 -1
  93. package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
  94. package/node_modules/undici-types/package.json +1 -1
  95. package/node_modules/undici-types/proxy-agent.d.ts +7 -0
  96. package/package.json +1 -1
  97. package/dist/ui/assets/index-76gJM-3o.js +0 -110
  98. package/dist/ui/assets/index-BYVb_0oG.css +0 -1
@@ -8,8 +8,8 @@
8
8
  because tab chrome does. -->
9
9
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
10
10
  <title>Suveren</title>
11
- <script type="module" crossorigin src="/assets/index-76gJM-3o.js"></script>
12
- <link rel="stylesheet" crossorigin href="/assets/index-BYVb_0oG.css">
11
+ <script type="module" crossorigin src="/assets/index-IVfLWq4W.js"></script>
12
+ <link rel="stylesheet" crossorigin href="/assets/index-CheBVmNI.css">
13
13
  </head>
14
14
  <body>
15
15
  <div id="root"></div>
@@ -8,8 +8,8 @@ This package contains type definitions for node (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Tue, 01 Sep 2026 20:06:05 GMT
11
+ * Last updated: Sat, 19 Sep 2026 00:09:37 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
15
- These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [Alberto Schiabel](https://github.com/jkomyno), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [David Junger](https://github.com/touffy), [Mohsen Azimi](https://github.com/mohsen1), [Nikita Galkin](https://github.com/galkin), [Sebastian Silbermann](https://github.com/eps1lon), [Wilco Bakker](https://github.com/WilcoBakker), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), [Dmitry Semigradsky](https://github.com/Semigradsky), [René](https://github.com/Renegade334), and [Yagiz Nizipli](https://github.com/anonrig).
15
+ These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [Alberto Schiabel](https://github.com/jkomyno), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [David Junger](https://github.com/touffy), [Mohsen Azimi](https://github.com/mohsen1), [Nikita Galkin](https://github.com/galkin), [Sebastian Silbermann](https://github.com/eps1lon), [Wilco Bakker](https://github.com/WilcoBakker), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), [Dmitry Semigradsky](https://github.com/Semigradsky), [René](https://github.com/Renegade334), and [Yagiz Nizipli](https://github.com/anonrig).
@@ -1776,6 +1776,7 @@ declare module "node:buffer" {
1776
1776
  slice(start?: number, end?: number, contentType?: string): Blob;
1777
1777
  stream(): ReadableStream<NodeJS.NonSharedUint8Array>;
1778
1778
  text(): Promise<string>;
1779
+ textStream(): ReadableStream<string>;
1779
1780
  }
1780
1781
  export var Blob: {
1781
1782
  prototype: Blob;
@@ -1136,7 +1136,7 @@ declare module "node:child_process" {
1136
1136
  stderr: string | NonSharedBuffer;
1137
1137
  }>;
1138
1138
  }
1139
- interface ForkOptions extends ProcessEnvOptions, MessagingOptions, Abortable {
1139
+ interface ForkOptions extends CommonOptions, MessagingOptions, Abortable {
1140
1140
  execPath?: string | undefined;
1141
1141
  execArgv?: string[] | undefined;
1142
1142
  silent?: boolean | undefined;
@@ -88,6 +88,8 @@ declare module "node:crypto" {
88
88
  * behavior. For XOF hash functions such as `'shake256'`, the `outputLength` option
89
89
  * can be used to specify the desired output length in bytes.
90
90
  *
91
+ * When the data is small (< 5MB) and readily available, `crypto.hash()` is usually faster.
92
+ *
91
93
  * The `algorithm` is dependent on the available algorithms supported by the
92
94
  * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.
93
95
  * On recent releases of OpenSSL, `openssl list -digest-algorithms` will
@@ -1304,8 +1306,11 @@ declare module "node:crypto" {
1304
1306
  /**
1305
1307
  * Calculates the signature on all the data passed through using either `sign.update()` or `sign.write()`.
1306
1308
  *
1307
- * If `privateKey` is not a `KeyObject`, this function behaves as if `privateKey` had been passed to {@link createPrivateKey}. If it is an
1308
- * object, the following additional properties can be passed:
1309
+ * If `privateKey` is not a `KeyObject`, this function behaves as if
1310
+ * `privateKey` had been passed to `crypto.createPrivateKey()`. When
1311
+ * `privateKey` is a string, `ArrayBuffer`, `Buffer`, `TypedArray`, or
1312
+ * `DataView`, it must contain PEM-encoded key material. If it is an object, the
1313
+ * following additional properties can be passed:
1309
1314
  *
1310
1315
  * If `outputEncoding` is provided a string is returned; otherwise a `Buffer` is returned.
1311
1316
  *
@@ -1375,8 +1380,11 @@ declare module "node:crypto" {
1375
1380
  /**
1376
1381
  * Verifies the provided data using the given `key` and `signature`.
1377
1382
  *
1378
- * If `key` is not a `KeyObject`, this function behaves as if `key` had been passed to {@link createPublicKey}. If it is an
1379
- * object, the following additional properties can be passed:
1383
+ * If `key` is not a `KeyObject`, this function behaves as if
1384
+ * `key` had been passed to `crypto.createPublicKey()`. When `key` is a string,
1385
+ * `ArrayBuffer`, `Buffer`, `TypedArray`, or `DataView`, it must contain
1386
+ * PEM-encoded key material. If it is an object, the following additional
1387
+ * properties can be passed:
1380
1388
  *
1381
1389
  * The `signature` argument is the previously calculated signature for the data, in
1382
1390
  * the `signatureEncoding`.
@@ -2690,8 +2698,10 @@ declare module "node:crypto" {
2690
2698
  * ML-DSA.
2691
2699
  *
2692
2700
  * If `key` is not a `KeyObject`, this function behaves as if `key` had been
2693
- * passed to {@link createPrivateKey}. If it is an object, the following
2694
- * additional properties can be passed:
2701
+ * passed to `crypto.createPrivateKey()`. When `key` is a string, `ArrayBuffer`,
2702
+ * `Buffer`, `TypedArray`, or `DataView`, it must contain PEM-encoded key
2703
+ * material. If it is an object, the following additional properties can be
2704
+ * passed:
2695
2705
  *
2696
2706
  * If the `callback` function is provided this function uses libuv's threadpool.
2697
2707
  * @since v12.0.0
@@ -2716,8 +2726,10 @@ declare module "node:crypto" {
2716
2726
  * ML-DSA.
2717
2727
  *
2718
2728
  * If `key` is not a `KeyObject`, this function behaves as if `key` had been
2719
- * passed to {@link createPublicKey}. If it is an object, the following
2720
- * additional properties can be passed:
2729
+ * passed to `crypto.createPublicKey()`. When `key` is a string, `ArrayBuffer`,
2730
+ * `Buffer`, `TypedArray`, or `DataView`, it must contain PEM-encoded key
2731
+ * material. If it is an object, the following additional properties can be
2732
+ * passed:
2721
2733
  *
2722
2734
  * The `signature` argument is the previously calculated signature for the `data`.
2723
2735
  *
@@ -529,10 +529,10 @@ declare module "node:diagnostics_channel" {
529
529
  * @param context Shared object to correlate trace events through
530
530
  * @param thisArg The receiver to be used for the function call
531
531
  * @param args Optional arguments to pass to the function
532
- * @returns The return value of the given function, or the result of
533
- * calling `.then(...)` on the return value if the tracing channel has active
534
- * subscribers. If the return value is not a Promise or thenable, then
535
- * it is returned as-is and a warning is emitted.
532
+ * @returns The return value of the given function. If the return value
533
+ * is a Promise or thenable, tracing events will be published when it settles.
534
+ * If the return value is not a Promise or thenable, it is returned as-is and
535
+ * a warning is emitted.
536
536
  */
537
537
  tracePromise<ThisArg = any, Args extends any[] = any[], Result extends PromiseLike<unknown> = any>(
538
538
  fn: (this: ThisArg, ...args: Args) => Result,
@@ -415,6 +415,20 @@ declare module "node:ffi" {
415
415
  * @since v26.1.0
416
416
  */
417
417
  function getRawPointer(source: ArrayBuffer | NodeJS.ArrayBufferView): bigint;
418
+ /**
419
+ * Returns the address of the current thread's `uv_loop_t` as a `bigint`.
420
+ *
421
+ * The returned address is for the current Node.js environment. In the main thread,
422
+ * this is the main thread event loop. In a worker thread, this is that worker's
423
+ * event loop.
424
+ *
425
+ * This is unsafe and dangerous. The returned pointer is only valid for the lifetime
426
+ * of the current environment. Using it after the environment exits, or from native
427
+ * code that assumes a different thread or lifetime, can crash the process or
428
+ * corrupt memory.
429
+ * @since v26.6.0
430
+ */
431
+ function getCurrentEventLoop(): bigint;
418
432
  type ReturnType = { [K in keyof DataTypeMap]: K }[keyof DataTypeMap];
419
433
  type ArgumentType = Exclude<ReturnType, "void">;
420
434
  interface DataTypeMap {
@@ -225,7 +225,7 @@ declare module "node:http" {
225
225
  * The number of milliseconds of inactivity a server needs to wait for additional incoming data,
226
226
  * after it has finished writing the last response, before a socket will be destroyed.
227
227
  * @see Server.keepAliveTimeout for more information.
228
- * @default 5000
228
+ * @default 65000
229
229
  * @since v18.0.0
230
230
  */
231
231
  keepAliveTimeout?: number | undefined;
@@ -685,10 +685,11 @@ declare module "node:http2" {
685
685
  * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but
686
686
  * limits available methods to ones safe to use with HTTP/2.
687
687
  *
688
- * `destroy`, `emit`, `end`, `pause`, `read`, `resume`, and `write` will throw
688
+ * `emit`, `end`, `pause`, `read`, `resume`, and `write` will throw
689
689
  * an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for more information.
690
690
  *
691
- * `setTimeout` method will be called on this `Http2Session`.
691
+ * `destroy`, `setTimeout`, `ref`, and `unref` methods will be called on this
692
+ * `Http2Session`.
692
693
  *
693
694
  * All other interactions will be routed directly to the socket.
694
695
  * @since v8.4.0
@@ -353,10 +353,11 @@ declare module "node:net" {
353
353
  /**
354
354
  * This property represents the state of the connection as a string.
355
355
  *
356
- * * If the stream is connecting `socket.readyState` is `opening`.
357
- * * If the stream is readable and writable, it is `open`.
358
- * * If the stream is readable and not writable, it is `readOnly`.
359
- * * If the stream is not readable and writable, it is `writeOnly`.
356
+ * * If the socket is connecting, `socket.readyState` is `opening`.
357
+ * * If the socket is readable and writable, it is `open`.
358
+ * * If the socket is readable and not writable, it is `readOnly`.
359
+ * * If the socket is not readable and writable, it is `writeOnly`.
360
+ * * Otherwise, it is `closed`.
360
361
  * @since v0.5.0
361
362
  */
362
363
  readonly readyState: SocketReadyState;
@@ -378,6 +379,12 @@ declare module "node:net" {
378
379
  * @since v0.5.10
379
380
  */
380
381
  readonly remotePort: number | undefined;
382
+ /**
383
+ * Reference to the server that accepted the socket. This is `null` for sockets
384
+ * that were not accepted by a server.
385
+ * @since v0.3.4
386
+ */
387
+ readonly server: Server | null;
381
388
  /**
382
389
  * The socket timeout in milliseconds as set by `socket.setTimeout()`.
383
390
  * It is `undefined` if a timeout has not been set.
@@ -486,6 +493,11 @@ declare module "node:net" {
486
493
  * throw `ERR_SOCKET_HANDLE_ADOPTED`. A handle that is never adopted must be
487
494
  * closed to avoid leaking the socket.
488
495
  *
496
+ * When an adopted `BoundSocket` connects to a numeric IP literal, `connect(2)` is
497
+ * issued synchronously, so `socket.localAddress` is resolved once
498
+ * `socket.connect()` returns. Connection failures are still reported via a
499
+ * deferred `'error'` event.
500
+ *
489
501
  * ```js
490
502
  * import net from 'node:net';
491
503
  *
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "26.4.1",
3
+ "version": "26.6.2",
4
4
  "description": "TypeScript definitions for node",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -50,11 +50,6 @@
50
50
  "githubUsername": "WilcoBakker",
51
51
  "url": "https://github.com/WilcoBakker"
52
52
  },
53
- {
54
- "name": "Marcin Kopacz",
55
- "githubUsername": "chyzwar",
56
- "url": "https://github.com/chyzwar"
57
- },
58
53
  {
59
54
  "name": "Trivikram Kamat",
60
55
  "githubUsername": "trivikr",
@@ -65,11 +60,6 @@
65
60
  "githubUsername": "yoursunny",
66
61
  "url": "https://github.com/yoursunny"
67
62
  },
68
- {
69
- "name": "Ilia Baryshnikov",
70
- "githubUsername": "qwelias",
71
- "url": "https://github.com/qwelias"
72
- },
73
63
  {
74
64
  "name": "ExE Boss",
75
65
  "githubUsername": "ExE-Boss",
@@ -85,11 +75,6 @@
85
75
  "githubUsername": "addaleax",
86
76
  "url": "https://github.com/addaleax"
87
77
  },
88
- {
89
- "name": "Victor Perin",
90
- "githubUsername": "victorperin",
91
- "url": "https://github.com/victorperin"
92
- },
93
78
  {
94
79
  "name": "NodeJS Contributors",
95
80
  "githubUsername": "NodeJS",
@@ -147,9 +132,9 @@
147
132
  },
148
133
  "scripts": {},
149
134
  "dependencies": {
150
- "undici-types": "~8.3.0"
135
+ "undici-types": "~8.9.0"
151
136
  },
152
137
  "peerDependencies": {},
153
- "typesPublisherContentHash": "463ff626c280fc7ad82097e8ff9ab6bd4a19fb2b4c56c8d56c2b8148cd872d0c",
138
+ "typesPublisherContentHash": "6fd8885e736abe0d2ec8284c43e09a6a80eeced090dc6974536c890169d46439",
154
139
  "typeScriptVersion": "5.6"
155
140
  }
@@ -301,6 +301,7 @@ declare module "node:perf_hooks" {
301
301
  namespace constants {
302
302
  const NODE_PERFORMANCE_GC_MAJOR: number;
303
303
  const NODE_PERFORMANCE_GC_MINOR: number;
304
+ const NODE_PERFORMANCE_GC_MINOR_MARK_SWEEP: number;
304
305
  const NODE_PERFORMANCE_GC_INCREMENTAL: number;
305
306
  const NODE_PERFORMANCE_GC_WEAKCB: number;
306
307
  const NODE_PERFORMANCE_GC_FLAGS_NO: number;
@@ -313,9 +314,14 @@ declare module "node:perf_hooks" {
313
314
  }
314
315
  interface EventLoopMonitorOptions {
315
316
  /**
316
- * The sampling rate in milliseconds.
317
- * Must be greater than zero.
318
- * @default 10
317
+ * When `true`, samples are taken once per
318
+ * event loop iteration. **Default:** `false`.
319
+ */
320
+ samplePerIteration?: boolean | undefined;
321
+ /**
322
+ * The sampling rate in milliseconds for interval-based
323
+ * sampling. Must be greater than zero. This option is ignored when
324
+ * `samplePerIteration` is `true`. **Default:** `10`.
319
325
  */
320
326
  resolution?: number | undefined;
321
327
  }
@@ -399,21 +405,25 @@ declare module "node:perf_hooks" {
399
405
  */
400
406
  readonly stddev: number;
401
407
  }
402
- interface IntervalHistogram extends Histogram {
408
+ /**
409
+ * A `Histogram` that records event loop delay, returned by
410
+ * `perf_hooks.monitorEventLoopDelay()`.
411
+ */
412
+ interface ELDHistogram extends Histogram {
403
413
  /**
404
- * Enables the update interval timer. Returns `true` if the timer was
405
- * started, `false` if it was already started.
414
+ * Disables event loop delay sampling. Returns `true` if sampling was
415
+ * stopped, `false` if it was already stopped.
406
416
  * @since v11.10.0
407
417
  */
408
- enable(): boolean;
418
+ disable(): boolean;
409
419
  /**
410
- * Disables the update interval timer. Returns `true` if the timer was
411
- * stopped, `false` if it was already stopped.
420
+ * Enables event loop delay sampling. Returns `true` if sampling was
421
+ * started, `false` if it was already started.
412
422
  * @since v11.10.0
413
423
  */
414
- disable(): boolean;
424
+ enable(): boolean;
415
425
  /**
416
- * Disables the update interval timer when the histogram is disposed.
426
+ * Disables event loop delay sampling when the histogram is disposed.
417
427
  *
418
428
  * ```js
419
429
  * const { monitorEventLoopDelay } = require('node:perf_hooks');
@@ -508,14 +518,16 @@ declare module "node:perf_hooks" {
508
518
  /**
509
519
  * _This property is an extension by Node.js. It is not available in Web browsers._
510
520
  *
511
- * Creates an `IntervalHistogram` object that samples and reports the event loop
512
- * delay over time. The delays will be reported in nanoseconds.
521
+ * Creates a histogram object that samples and reports the event loop delay over
522
+ * time. The delays will be reported in nanoseconds.
513
523
  *
514
- * Using a timer to detect approximate event loop delay works because the
515
- * execution of timers is tied specifically to the lifecycle of the libuv
516
- * event loop. That is, a delay in the loop will cause a delay in the execution
517
- * of the timer, and those delays are specifically what this API is intended to
518
- * detect.
524
+ * By default, the histogram is updated by a timer using the configured
525
+ * `resolution`. When `samplePerIteration` is `true`, samples are taken once per
526
+ * event loop iteration using `uv_prepare_t` and `uv_check_t` hooks. In that mode,
527
+ * the histogram does not keep the loop alive or force additional iterations when
528
+ * the application is idle.
529
+ * The two sampling modes produce significantly different results and should not
530
+ * be compared directly.
519
531
  *
520
532
  * ```js
521
533
  * import { monitorEventLoopDelay } from 'node:perf_hooks';
@@ -533,7 +545,7 @@ declare module "node:perf_hooks" {
533
545
  * ```
534
546
  * @since v11.10.0
535
547
  */
536
- function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram;
548
+ function monitorEventLoopDelay(options?: EventLoopMonitorOptions): ELDHistogram;
537
549
  interface TimerifyOptions {
538
550
  /**
539
551
  * A histogram object created using
@@ -110,6 +110,7 @@ declare module "node:process" {
110
110
  "node:util/types": typeof import("node:util/types");
111
111
  "v8": typeof import("v8");
112
112
  "node:v8": typeof import("node:v8");
113
+ "node:vfs": typeof import("node:vfs");
113
114
  "vm": typeof import("vm");
114
115
  "node:vm": typeof import("node:vm");
115
116
  "wasi": typeof import("wasi");
@@ -4,7 +4,7 @@ declare module "node:quic" {
4
4
  import { FileHandle } from "node:fs/promises";
5
5
  import { BlockList, SocketAddress } from "node:net";
6
6
  import { Writer } from "node:stream/iter";
7
- import { EphemeralKeyInfo } from "node:tls";
7
+ import { CertificateCompressionAlgorithm, EphemeralKeyInfo } from "node:tls";
8
8
  /**
9
9
  * @since v23.8.0
10
10
  */
@@ -277,6 +277,28 @@ declare module "node:quic" {
277
277
  * @since v23.8.0
278
278
  */
279
279
  ca?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray<ArrayBuffer | NodeJS.ArrayBufferView> | undefined;
280
+ /**
281
+ * Enables TLS certificate compression ([RFC 8879](https://www.rfc-editor.org/rfc/rfc8879)) for this session. When
282
+ * omitted, certificate compression is disabled.
283
+ *
284
+ * On the server side, the certificate chain is compressed using the first
285
+ * listed algorithm that the client advertises support for. On the client side,
286
+ * the listed algorithms are advertised to the server so that the server may
287
+ * compress its certificate. When client authentication is in use, the option
288
+ * also controls compression of the client's certificate.
289
+ *
290
+ * Compressing the certificate chain is especially useful for QUIC because it
291
+ * reduces the size of the server's first flight, which is bounded by the
292
+ * anti-amplification limit (see [Certificate size and handshake
293
+ * performance](https://nodejs.org/docs/latest-v26.x/api/quic.html#certificate-size-and-handshake-performance)). Certificate compression requires TLS 1.3, which QUIC always
294
+ * uses.
295
+ *
296
+ * At most three algorithms may be specified. The option is silently ignored if
297
+ * Node.js was built against a shared OpenSSL that lacks certificate compression
298
+ * support.
299
+ * @since v26.6.0
300
+ */
301
+ certificateCompression?: readonly CertificateCompressionAlgorithm[] | undefined;
280
302
  /**
281
303
  * Specifies the congestion control algorithm that will be used.
282
304
  * Must be set to one of either `'reno'`, `'cubic'`, or `'bbr'`.
@@ -1059,8 +1081,8 @@ declare module "node:quic" {
1059
1081
  interface CreateStreamOptions {
1060
1082
  /**
1061
1083
  * The outbound body source. See `stream.setBody()` for details on
1062
- * supported types. When omitted, the stream starts half-closed (writable
1063
- * side open, no body queued).
1084
+ * supported types. When omitted, the stream's outgoing side remains
1085
+ * writable with no body queued; no FIN is sent immediately.
1064
1086
  */
1065
1087
  body?: StreamBody | undefined;
1066
1088
  /**
@@ -1375,7 +1397,8 @@ declare module "node:quic" {
1375
1397
  onqlog: OnQlogCallback | undefined;
1376
1398
  /**
1377
1399
  * Open a new bidirectional stream. If the `body` option is not specified,
1378
- * the outgoing stream will be half-closed. The `priority` and `incremental`
1400
+ * the stream's outgoing side remains writable and no FIN is sent
1401
+ * immediately. The `priority` and `incremental`
1379
1402
  * options are only used when the session supports priority (e.g. HTTP/3).
1380
1403
  * The `headers`, `onheaders`, `ontrailers`, `oninfo`, and `onwanttrailers`
1381
1404
  * options are only used when the session supports headers (e.g. HTTP/3).
@@ -1384,7 +1407,8 @@ declare module "node:quic" {
1384
1407
  createBidirectionalStream(options?: CreateStreamOptions): Promise<QuicStream>;
1385
1408
  /**
1386
1409
  * Open a new unidirectional stream. If the `body` option is not specified,
1387
- * the outgoing stream will be closed. The `priority` and `incremental`
1410
+ * the stream's outgoing side remains writable and no FIN is sent
1411
+ * immediately. The `priority` and `incremental`
1388
1412
  * options are only used when the session supports priority (e.g. HTTP/3).
1389
1413
  * @since v23.8.0
1390
1414
  */
@@ -1436,6 +1460,22 @@ declare module "node:quic" {
1436
1460
  datagram: string | NodeJS.ArrayBufferView | Promise<string | NodeJS.ArrayBufferView>,
1437
1461
  encoding?: BufferEncoding,
1438
1462
  ): Promise<bigint>;
1463
+ /**
1464
+ * The SNI (Server Name Indication) host name associated with the session. This is
1465
+ * `null` before the client hello is processed. Once the hello has been
1466
+ * processed, this is either the host name string or `false` if the handshake
1467
+ * had no SNI.
1468
+ * @since v26.6.0
1469
+ */
1470
+ readonly servername: string | false | null;
1471
+ /**
1472
+ * The negotiated ALPN protocol. This is `null` before the client hello is
1473
+ * processed. Once ALPN has been negotiated, this is the protocol string. ALPN
1474
+ * is mandatory in QUIC so this is never `false` on successful connections,
1475
+ * unlike `node:tls` where this is optional.
1476
+ * @since v26.6.0
1477
+ */
1478
+ readonly alpnProtocol: string | null;
1439
1479
  /**
1440
1480
  * The local certificate as a `crypto.X509Certificate` instance. Server
1441
1481
  * sessions return the certificate configured for the negotiated SNI host.
@@ -45,14 +45,14 @@ declare module "node:stream/iter" {
45
45
  [shareSyncProtocol](options: ShareSyncOptions): SyncShare;
46
46
  }
47
47
  // IDL dictionaries, enums, typedefs
48
- type BackpressurePolicy = "strict" | "block" | "drop-oldest" | "drop-newest";
48
+ type BackpressurePolicy = "strict" | "unbounded" | "drop-oldest" | "drop-newest";
49
49
  type ByteReadableStream = AsyncIterable<Uint8Array[]>;
50
50
  type SyncByteReadableStream = Iterable<Uint8Array[]>;
51
51
  interface WriteOptions {
52
52
  signal?: AbortSignal;
53
53
  }
54
54
  interface PushStreamOptions {
55
- highWaterMark?: number;
55
+ budget?: number;
56
56
  backpressure?: BackpressurePolicy;
57
57
  signal?: AbortSignal;
58
58
  }
@@ -85,21 +85,21 @@ declare module "node:stream/iter" {
85
85
  signal?: AbortSignal;
86
86
  }
87
87
  interface BroadcastOptions {
88
- highWaterMark?: number;
88
+ budget?: number;
89
89
  backpressure?: BackpressurePolicy;
90
90
  signal?: AbortSignal;
91
91
  }
92
92
  interface ShareOptions {
93
- highWaterMark?: number;
93
+ budget?: number;
94
94
  backpressure?: BackpressurePolicy;
95
95
  signal?: AbortSignal;
96
96
  }
97
97
  interface ShareSyncOptions {
98
- highWaterMark?: number;
98
+ budget?: number;
99
99
  backpressure?: BackpressurePolicy;
100
100
  }
101
101
  interface DuplexDirectionOptions {
102
- highWaterMark?: number;
102
+ budget?: number;
103
103
  backpressure?: BackpressurePolicy;
104
104
  }
105
105
  interface DuplexOptions {
@@ -142,7 +142,7 @@ declare module "node:stream/iter" {
142
142
  broadcast: Broadcast;
143
143
  }
144
144
  interface Writer extends Disposable, AsyncDisposable {
145
- readonly desiredSize: number | null;
145
+ readonly canWrite: boolean | null;
146
146
  write(chunk: Uint8Array | string, options?: WriteOptions): Promise<void>;
147
147
  writev(chunks: Array<Uint8Array | string>, options?: WriteOptions): Promise<void>;
148
148
  writeSync(chunk: Uint8Array | string): boolean;
@@ -155,7 +155,7 @@ declare module "node:stream/iter" {
155
155
  write(chunk: Uint8Array | string, options?: WriteOptions): Promise<void>;
156
156
  }
157
157
  interface SyncWriter extends Disposable {
158
- readonly desiredSize: number | null;
158
+ readonly canWrite: boolean | null;
159
159
  writeSync(chunk: Uint8Array | string): number;
160
160
  writevSync(chunks: Array<Uint8Array | string>): number;
161
161
  endSync(): number;
@@ -166,19 +166,16 @@ declare module "node:stream/iter" {
166
166
  }
167
167
  interface Broadcast extends Disposable {
168
168
  readonly consumerCount: number;
169
- readonly bufferSize: number;
170
169
  push(...args: any[]): ByteReadableStream;
171
170
  cancel(reason?: any): void;
172
171
  }
173
172
  interface Share extends Disposable {
174
173
  readonly consumerCount: number;
175
- readonly bufferSize: number;
176
174
  pull(...args: any[]): ByteReadableStream;
177
175
  cancel(reason?: any): void;
178
176
  }
179
177
  interface SyncShare extends Disposable {
180
178
  readonly consumerCount: number;
181
- readonly bufferSize: number;
182
179
  pull(...args: any): SyncByteReadableStream;
183
180
  cancel(reason?: any): void;
184
181
  }
@@ -329,7 +326,7 @@ declare module "node:stream/iter" {
329
326
  * });
330
327
  *
331
328
  * await pipeTo(from('hello world'),
332
- * fromWritable(writable, { backpressure: 'block' }));
329
+ * fromWritable(writable, { backpressure: 'unbounded' }));
333
330
  * ```
334
331
  * @since v26.1.0
335
332
  * @experimental
@@ -294,6 +294,26 @@ declare module "node:stream/web" {
294
294
  prototype: WritableStreamDefaultWriter;
295
295
  new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
296
296
  };
297
+ // Node.js extensions
298
+ /**
299
+ * Runs the WHATWG `ReadableStreamTee` abstract operation on `stream`.
300
+ *
301
+ * This differs from `readableStream.tee()` only when `cloneForBranch2` is
302
+ * `true`. The `tee()` method always passes `false`, while other web platform
303
+ * specifications, such as Fetch body cloning, pass `true` so that the second
304
+ * branch receives cloned chunks and consumption of one branch cannot mutate chunks
305
+ * seen by the other.
306
+ * @since v26.5.0
307
+ * @experimental
308
+ * @param cloneForBranch2 When `true`, chunks enqueued into the second
309
+ * branch are cloned from chunks enqueued into the first branch. **Default:**
310
+ * `false`.
311
+ * @returns Two `ReadableStream` branches.
312
+ */
313
+ function ReadableStreamTee<R>(
314
+ stream: ReadableStream<R>,
315
+ cloneForBranch2?: boolean,
316
+ ): [ReadableStream<R>, ReadableStream<R>];
297
317
  }
298
318
  declare module "stream/web" {
299
319
  export * from "node:stream/web";
@@ -9,6 +9,7 @@ declare module "node:test/reporters" {
9
9
  | { type: "test:enqueue"; data: EventData.TestEnqueue }
10
10
  | { type: "test:fail"; data: EventData.TestFail }
11
11
  | { type: "test:interrupted"; data: EventData.TestInterrupted }
12
+ | { type: "test:log"; data: EventData.TestLog }
12
13
  | { type: "test:pass"; data: EventData.TestPass }
13
14
  | { type: "test:plan"; data: EventData.TestPlan }
14
15
  | { type: "test:start"; data: EventData.TestStart }