@suveren/gateway 0.3.2 → 0.3.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 (42) hide show
  1. package/dist/control-plane/index.mjs +2 -2
  2. package/dist/mcp-server/http.mjs +73 -68
  3. package/dist/ui/assets/index-mg8gMTzG.js +105 -0
  4. package/dist/ui/index.html +1 -1
  5. package/node_modules/@hap/core/dist/index.d.mts +7 -2
  6. package/node_modules/@hap/core/dist/index.d.ts +7 -2
  7. package/node_modules/@hap/core/dist/index.js +2 -2
  8. package/node_modules/@hap/core/dist/index.mjs +2 -2
  9. package/node_modules/@hap/core/package.json +1 -1
  10. package/node_modules/@hap/core/src/identity.ts +9 -4
  11. package/node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/sbcs-data.js +2 -0
  12. package/node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/utf32.js +10 -3
  13. package/node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/package.json +2 -2
  14. package/node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/types/encodings.d.ts +2 -0
  15. package/node_modules/@types/node/README.md +1 -1
  16. package/node_modules/@types/node/buffer.d.ts +64 -25
  17. package/node_modules/@types/node/crypto.d.ts +18 -5
  18. package/node_modules/@types/node/diagnostics_channel.d.ts +237 -3
  19. package/node_modules/@types/node/dns.d.ts +1 -1
  20. package/node_modules/@types/node/ffi.d.ts +486 -0
  21. package/node_modules/@types/node/fs/promises.d.ts +3 -0
  22. package/node_modules/@types/node/fs.d.ts +21 -6
  23. package/node_modules/@types/node/http.d.ts +25 -0
  24. package/node_modules/@types/node/index.d.ts +1 -0
  25. package/node_modules/@types/node/package.json +2 -2
  26. package/node_modules/@types/node/process.d.ts +14 -1
  27. package/node_modules/@types/node/quic.d.ts +92 -11
  28. package/node_modules/@types/node/sqlite.d.ts +55 -0
  29. package/node_modules/@types/node/stream/iter.d.ts +150 -0
  30. package/node_modules/@types/node/stream.d.ts +32 -0
  31. package/node_modules/@types/node/test.d.ts +112 -2
  32. package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
  33. package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
  34. package/node_modules/@types/node/util.d.ts +19 -2
  35. package/node_modules/@types/node/v8.d.ts +84 -2
  36. package/node_modules/@types/node/worker_threads.d.ts +8 -7
  37. package/node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data.js +2 -0
  38. package/node_modules/raw-body/node_modules/iconv-lite/encodings/utf32.js +10 -3
  39. package/node_modules/raw-body/node_modules/iconv-lite/package.json +2 -2
  40. package/node_modules/raw-body/node_modules/iconv-lite/types/encodings.d.ts +2 -0
  41. package/package.json +2 -2
  42. package/dist/ui/assets/index-RkZBhIxU.js +0 -105
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Suveren</title>
7
- <script type="module" crossorigin src="/assets/index-RkZBhIxU.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-mg8gMTzG.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-BUgn3e63.css">
9
9
  </head>
10
10
  <body>
@@ -652,8 +652,13 @@ declare function validateSubject(subject: Subject): SubjectValidation;
652
652
  * The name appears only at `high` with a disclosed name; otherwise no name.
653
653
  *
654
654
  * - low / no disclosure → "Sent by an AI agent via «operator»"
655
- * - high / as_vouched → "Sent by an AI agent of «name» verified by «operator»"
656
- * - high / eudi → "Sent by an AI agent of «name» identity verified (EUDI)"
655
+ * - high / as_vouched → "Sent by an AI agent of «name», verified by «operator»"
656
+ * - high / eudi → "Sent by an AI agent of «name», identity verified (EUDI)"
657
+ *
658
+ * Punctuation is ASCII (comma, not em-dash) so the line survives header and
659
+ * plain-text encoding intact across email, calendar, and publishing channels.
660
+ * The leading verb ("Sent") is the default; presentation layers may swap it
661
+ * (e.g. the gateway uses "Published" for the publish profile).
657
662
  *
658
663
  * `operatorName` is the rendered AS operator (e.g. "Suveren") — never hardcode it
659
664
  * upstream; a different operator self-vouches under its own name.
@@ -652,8 +652,13 @@ declare function validateSubject(subject: Subject): SubjectValidation;
652
652
  * The name appears only at `high` with a disclosed name; otherwise no name.
653
653
  *
654
654
  * - low / no disclosure → "Sent by an AI agent via «operator»"
655
- * - high / as_vouched → "Sent by an AI agent of «name» verified by «operator»"
656
- * - high / eudi → "Sent by an AI agent of «name» identity verified (EUDI)"
655
+ * - high / as_vouched → "Sent by an AI agent of «name», verified by «operator»"
656
+ * - high / eudi → "Sent by an AI agent of «name», identity verified (EUDI)"
657
+ *
658
+ * Punctuation is ASCII (comma, not em-dash) so the line survives header and
659
+ * plain-text encoding intact across email, calendar, and publishing channels.
660
+ * The leading verb ("Sent") is the default; presentation layers may swap it
661
+ * (e.g. the gateway uses "Published" for the publish profile).
657
662
  *
658
663
  * `operatorName` is the rendered AS operator (e.g. "Suveren") — never hardcode it
659
664
  * upstream; a different operator self-vouches under its own name.
@@ -170,9 +170,9 @@ function deriveIdentityLine(subject, { operatorName }) {
170
170
  return `Sent by an AI agent via ${operatorName}`;
171
171
  }
172
172
  if (subject.method === "eudi") {
173
- return `Sent by an AI agent of ${name} \u2014 identity verified (EUDI)`;
173
+ return `Sent by an AI agent of ${name}, identity verified (EUDI)`;
174
174
  }
175
- return `Sent by an AI agent of ${name} \u2014 verified by ${operatorName}`;
175
+ return `Sent by an AI agent of ${name}, verified by ${operatorName}`;
176
176
  }
177
177
 
178
178
  // src/frame.ts
@@ -99,9 +99,9 @@ function deriveIdentityLine(subject, { operatorName }) {
99
99
  return `Sent by an AI agent via ${operatorName}`;
100
100
  }
101
101
  if (subject.method === "eudi") {
102
- return `Sent by an AI agent of ${name} \u2014 identity verified (EUDI)`;
102
+ return `Sent by an AI agent of ${name}, identity verified (EUDI)`;
103
103
  }
104
- return `Sent by an AI agent of ${name} \u2014 verified by ${operatorName}`;
104
+ return `Sent by an AI agent of ${name}, verified by ${operatorName}`;
105
105
  }
106
106
 
107
107
  // src/frame.ts
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humanagencyp/hap-core",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Core types, cryptographic primitives, and verification logic for the Human Agency Protocol",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -56,8 +56,13 @@ export function validateSubject(subject: Subject): SubjectValidation {
56
56
  * The name appears only at `high` with a disclosed name; otherwise no name.
57
57
  *
58
58
  * - low / no disclosure → "Sent by an AI agent via «operator»"
59
- * - high / as_vouched → "Sent by an AI agent of «name» verified by «operator»"
60
- * - high / eudi → "Sent by an AI agent of «name» identity verified (EUDI)"
59
+ * - high / as_vouched → "Sent by an AI agent of «name», verified by «operator»"
60
+ * - high / eudi → "Sent by an AI agent of «name», identity verified (EUDI)"
61
+ *
62
+ * Punctuation is ASCII (comma, not em-dash) so the line survives header and
63
+ * plain-text encoding intact across email, calendar, and publishing channels.
64
+ * The leading verb ("Sent") is the default; presentation layers may swap it
65
+ * (e.g. the gateway uses "Published" for the publish profile).
61
66
  *
62
67
  * `operatorName` is the rendered AS operator (e.g. "Suveren") — never hardcode it
63
68
  * upstream; a different operator self-vouches under its own name.
@@ -71,7 +76,7 @@ export function deriveIdentityLine(
71
76
  return `Sent by an AI agent via ${operatorName}`;
72
77
  }
73
78
  if (subject!.method === 'eudi') {
74
- return `Sent by an AI agent of ${name} identity verified (EUDI)`;
79
+ return `Sent by an AI agent of ${name}, identity verified (EUDI)`;
75
80
  }
76
- return `Sent by an AI agent of ${name} verified by ${operatorName}`;
81
+ return `Sent by an AI agent of ${name}, verified by ${operatorName}`;
77
82
  }
@@ -109,6 +109,8 @@ module.exports = {
109
109
 
110
110
  hebrew: "iso88598",
111
111
  hebrew8: "iso88598",
112
+ iso88598i: "iso88598",
113
+ iso88598e: "iso88598",
112
114
 
113
115
  turkish: "iso88599",
114
116
  turkish8: "iso88599",
@@ -31,7 +31,9 @@ function Utf32Encoder (options, codec) {
31
31
 
32
32
  Utf32Encoder.prototype.write = function (str) {
33
33
  var src = Buffer.from(str, "ucs2")
34
- var dst = Buffer.alloc(src.length * 2)
34
+ // src.length * 2 covers this chunk's code units (4 bytes each); the extra 4 bytes leave room for a
35
+ // high surrogate held over from a previous chunk, which is flushed ahead of this chunk's units.
36
+ var dst = Buffer.alloc(src.length * 2 + 4)
35
37
  var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE
36
38
  var offset = 0
37
39
 
@@ -113,9 +115,9 @@ Utf32Decoder.prototype.write = function (src) {
113
115
  // NOTE: codepoint is a signed int32 and can be negative.
114
116
  // NOTE: We copied this block from below to help V8 optimize it (it works with array, not buffer).
115
117
  if (isLE) {
116
- codepoint = overflow[i] | (overflow[i + 1] << 8) | (overflow[i + 2] << 16) | (overflow[i + 3] << 24)
118
+ codepoint = overflow[0] | (overflow[1] << 8) | (overflow[2] << 16) | (overflow[3] << 24)
117
119
  } else {
118
- codepoint = overflow[i + 3] | (overflow[i + 2] << 8) | (overflow[i + 1] << 16) | (overflow[i] << 24)
120
+ codepoint = overflow[3] | (overflow[2] << 8) | (overflow[1] << 16) | (overflow[0] << 24)
119
121
  }
120
122
  overflow.length = 0
121
123
 
@@ -169,7 +171,12 @@ function _writeCodepoint (dst, offset, codepoint, badChar) {
169
171
  };
170
172
 
171
173
  Utf32Decoder.prototype.end = function () {
174
+ if (this.overflow.length === 0) { return }
175
+
176
+ // A leftover, incomplete 4-byte code unit at the end of the input is ill-formed. Substitute a
177
+ // single U+FFFD (Unicode Standard conformance clause C10) instead of silently dropping the bytes.
172
178
  this.overflow.length = 0
179
+ return String.fromCharCode(this.badChar)
173
180
  }
174
181
 
175
182
  // == UTF-32 Auto codec =============================================================
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iconv-lite",
3
3
  "description": "Convert character encodings in pure javascript.",
4
- "version": "0.7.2",
4
+ "version": "0.7.3",
5
5
  "license": "MIT",
6
6
  "keywords": [
7
7
  "iconv",
@@ -46,7 +46,7 @@
46
46
  "stream": false
47
47
  },
48
48
  "devDependencies": {
49
- "@arethetypeswrong/cli": "^0.17.4",
49
+ "@arethetypeswrong/cli": "^0.18.4",
50
50
  "@stylistic/eslint-plugin": "^5.1.0",
51
51
  "@stylistic/eslint-plugin-js": "^4.1.0",
52
52
  "@types/node": "^24.0.12",
@@ -276,6 +276,8 @@ export type Encoding =
276
276
  | "iso88596"
277
277
  | "iso88597"
278
278
  | "iso88598"
279
+ | "iso88598e"
280
+ | "iso88598i"
279
281
  | "iso88599"
280
282
  | "isoceltic"
281
283
  | "isoir100"
@@ -8,7 +8,7 @@ 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: Wed, 24 Jun 2026 20:32:59 GMT
11
+ * Last updated: Wed, 01 Jul 2026 11:03:38 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
@@ -1550,11 +1550,12 @@ declare module "node:buffer" {
1550
1550
  /**
1551
1551
  * If `value` is:
1552
1552
  *
1553
- * * a string, `value` is interpreted according to the character encoding in `encoding`.
1554
- * * a `Buffer` or [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), `value` will be used in its entirety.
1555
- * To compare a partial `Buffer`, use `buf.subarray`.
1553
+ * * a string, `value` is interpreted according to the character encoding in
1554
+ * `encoding`.
1555
+ * * a `Buffer` or `Uint8Array`, `value` will be used in its entirety.
1556
+ * To compare a partial `Buffer`, use `buf.subarray`.
1556
1557
  * * a number, `value` will be interpreted as an unsigned 8-bit integer
1557
- * value between `0` and `255`.
1558
+ * value between `0` and `255`.
1558
1559
  *
1559
1560
  * ```js
1560
1561
  * import { Buffer } from 'node:buffer';
@@ -1582,12 +1583,13 @@ declare module "node:buffer" {
1582
1583
  * // Prints: 6
1583
1584
  * ```
1584
1585
  *
1585
- * If `value` is not a string, number, or `Buffer`, this method will throw a `TypeError`. If `value` is a number, it will be coerced to a valid byte value,
1586
+ * If `value` is not a string, number, or `Buffer`, this method will throw a
1587
+ * `TypeError`. If `value` is a number, it will be coerced to a valid byte value,
1586
1588
  * an integer between 0 and 255.
1587
1589
  *
1588
1590
  * If `byteOffset` is not a number, it will be coerced to a number. If the result
1589
1591
  * of coercion is `NaN` or `0`, then the entire buffer will be searched. This
1590
- * behavior matches [`String.prototype.indexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf).
1592
+ * behavior matches `String.prototype.indexOf()`.
1591
1593
  *
1592
1594
  * ```js
1593
1595
  * import { Buffer } from 'node:buffer';
@@ -1608,14 +1610,27 @@ declare module "node:buffer" {
1608
1610
  * ```
1609
1611
  *
1610
1612
  * If `value` is an empty string or empty `Buffer` and `byteOffset` is less
1611
- * than `buf.length`, `byteOffset` will be returned. If `value` is empty and`byteOffset` is at least `buf.length`, `buf.length` will be returned.
1613
+ * than `buf.length`, `byteOffset` will be returned. If `value` is empty and
1614
+ * `byteOffset` is at least `buf.length`, `buf.length` will be returned.
1612
1615
  * @since v1.5.0
1613
1616
  * @param value What to search for.
1614
- * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
1615
- * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.
1616
- * @return The index of the first occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.
1617
- */
1618
- indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
1617
+ * @param start Where to begin searching in `buf`. If negative, then
1618
+ * offset is calculated from the end of `buf`. **Default:** `0`.
1619
+ * @param end Where to stop searching in `buf` (exclusive). **Default:**
1620
+ * `buf.length`.
1621
+ * @param encoding If `value` is a string, this is the encoding used to
1622
+ * determine the binary representation of the string that will be searched for in
1623
+ * `buf`. **Default:** `'utf8'`.
1624
+ * @returns The index of the first occurrence of `value` in `buf`, or
1625
+ * `-1` if `buf` does not contain `value`.
1626
+ */
1627
+ indexOf(
1628
+ value: string | number | Uint8Array,
1629
+ start?: number,
1630
+ end?: number,
1631
+ encoding?: BufferEncoding,
1632
+ ): number;
1633
+ indexOf(value: string | number | Uint8Array, start: number, encoding: BufferEncoding): number;
1619
1634
  indexOf(value: string | number | Uint8Array, encoding: BufferEncoding): number;
1620
1635
  /**
1621
1636
  * Identical to `buf.indexOf()`, except the last occurrence of `value` is found
@@ -1649,12 +1664,13 @@ declare module "node:buffer" {
1649
1664
  * // Prints: 4
1650
1665
  * ```
1651
1666
  *
1652
- * If `value` is not a string, number, or `Buffer`, this method will throw a `TypeError`. If `value` is a number, it will be coerced to a valid byte value,
1667
+ * If `value` is not a string, number, or `Buffer`, this method will throw a
1668
+ * `TypeError`. If `value` is a number, it will be coerced to a valid byte value,
1653
1669
  * an integer between 0 and 255.
1654
1670
  *
1655
1671
  * If `byteOffset` is not a number, it will be coerced to a number. Any arguments
1656
1672
  * that coerce to `NaN`, like `{}` or `undefined`, will search the whole buffer.
1657
- * This behavior matches [`String.prototype.lastIndexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf).
1673
+ * This behavior matches `String.prototype.lastIndexOf()`.
1658
1674
  *
1659
1675
  * ```js
1660
1676
  * import { Buffer } from 'node:buffer';
@@ -1680,11 +1696,24 @@ declare module "node:buffer" {
1680
1696
  * If `value` is an empty string or empty `Buffer`, `byteOffset` will be returned.
1681
1697
  * @since v6.0.0
1682
1698
  * @param value What to search for.
1683
- * @param [byteOffset=buf.length - 1] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
1684
- * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.
1685
- * @return The index of the last occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.
1686
- */
1687
- lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
1699
+ * @param start Where to begin searching in `buf`. If negative, then
1700
+ * offset is calculated from the end of `buf`. **Default:**
1701
+ * `buf.length - 1`.
1702
+ * @param end Where to stop searching in `buf` (exclusive). **Default:**
1703
+ * `buf.length`.
1704
+ * @param encoding If `value` is a string, this is the encoding used to
1705
+ * determine the binary representation of the string that will be searched for in
1706
+ * `buf`. **Default:** `'utf8'`.
1707
+ * @returns The index of the last occurrence of `value` in `buf`, or
1708
+ * `-1` if `buf` does not contain `value`.
1709
+ */
1710
+ lastIndexOf(
1711
+ value: string | number | Uint8Array,
1712
+ start?: number,
1713
+ end?: number,
1714
+ encoding?: BufferEncoding,
1715
+ ): number;
1716
+ lastIndexOf(value: string | number | Uint8Array, start: number, encoding: BufferEncoding): number;
1688
1717
  lastIndexOf(value: string | number | Uint8Array, encoding: BufferEncoding): number;
1689
1718
  /**
1690
1719
  * Equivalent to `buf.indexOf() !== -1`.
@@ -1711,12 +1740,22 @@ declare module "node:buffer" {
1711
1740
  * ```
1712
1741
  * @since v5.3.0
1713
1742
  * @param value What to search for.
1714
- * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
1715
- * @param [encoding='utf8'] If `value` is a string, this is its encoding.
1716
- * @return `true` if `value` was found in `buf`, `false` otherwise.
1717
- */
1718
- includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean;
1719
- includes(value: string | number | Buffer, encoding: BufferEncoding): boolean;
1743
+ * @param start Where to begin searching in `buf`. If negative, then
1744
+ * offset is calculated from the end of `buf`. **Default:** `0`.
1745
+ * @param end Where to stop searching in `buf` (exclusive). **Default:**
1746
+ * `buf.length`.
1747
+ * @param encoding If `value` is a string, this is its encoding.
1748
+ * **Default:** `'utf8'`.
1749
+ * @returns `true` if `value` was found in `buf`, `false` otherwise.
1750
+ */
1751
+ includes(
1752
+ value: string | number | Uint8Array,
1753
+ start?: number,
1754
+ end?: number,
1755
+ encoding?: BufferEncoding,
1756
+ ): boolean;
1757
+ includes(value: string | number | Uint8Array, start: number, encoding: BufferEncoding): boolean;
1758
+ includes(value: string | number | Uint8Array, encoding: BufferEncoding): boolean;
1720
1759
  }
1721
1760
  var Buffer: BufferConstructor;
1722
1761
  }
@@ -1373,9 +1373,9 @@ declare module "node:crypto" {
1373
1373
  */
1374
1374
  update(data: string | NodeJS.ArrayBufferView, inputEncoding?: BufferEncoding): Verify;
1375
1375
  /**
1376
- * Verifies the provided data using the given `object` and `signature`.
1376
+ * Verifies the provided data using the given `key` and `signature`.
1377
1377
  *
1378
- * If `object` is not a `KeyObject`, this function behaves as if `object` had been passed to {@link createPublicKey}. If it is an
1378
+ * If `key` is not a `KeyObject`, this function behaves as if `key` had been passed to {@link createPublicKey}. If it is an
1379
1379
  * object, the following additional properties can be passed:
1380
1380
  *
1381
1381
  * The `signature` argument is the previously calculated signature for the data, in
@@ -1392,7 +1392,7 @@ declare module "node:crypto" {
1392
1392
  * @since v0.1.92
1393
1393
  */
1394
1394
  verify(
1395
- object:
1395
+ key:
1396
1396
  | KeyLike
1397
1397
  | VerifyKeyObjectInput
1398
1398
  | VerifyPublicKeyInput
@@ -1470,8 +1470,10 @@ declare module "node:crypto" {
1470
1470
  * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.
1471
1471
  *
1472
1472
  * This function is a thin wrapper around [`DH_generate_key()`](https://www.openssl.org/docs/man3.0/man3/DH_generate_key.html). In particular,
1473
- * once a private key has been generated or set, calling this function only updates
1474
- * the public key but does not generate a new private key.
1473
+ * once a private key has been generated or set, calling this function only
1474
+ * recomputes the public key from the existing private key. Since the public key is
1475
+ * determined by the private key, the result will be the same unless the private key
1476
+ * has been changed via `diffieHellman.setPrivateKey()`.
1475
1477
  * @since v0.5.0
1476
1478
  * @param encoding The `encoding` of the return value.
1477
1479
  */
@@ -2997,6 +2999,7 @@ declare module "node:crypto" {
2997
2999
  */
2998
3000
  disableEntropyCache?: boolean | undefined;
2999
3001
  }
3002
+ interface RandomUUIDV7Options extends RandomUUIDOptions {}
3000
3003
  type UUID = `${string}-${string}-${string}-${string}-${string}`;
3001
3004
  /**
3002
3005
  * Generates a random [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) version 4 UUID. The UUID is generated using a
@@ -3004,6 +3007,16 @@ declare module "node:crypto" {
3004
3007
  * @since v15.6.0, v14.17.0
3005
3008
  */
3006
3009
  function randomUUID(options?: RandomUUIDOptions): UUID;
3010
+ /**
3011
+ * Generates a random [RFC 9562](https://www.rfc-editor.org/rfc/rfc9562.txt) version 7 UUID. The UUID contains a millisecond
3012
+ * precision Unix timestamp in the most significant 48 bits, followed by
3013
+ * cryptographically secure random bits for the remaining fields, making it
3014
+ * suitable for use as a database key with time-based sorting. The embedded
3015
+ * timestamp relies on a non-monotonic clock and is not guaranteed to be strictly
3016
+ * increasing.
3017
+ * @since v26.1.0
3018
+ */
3019
+ function randomUUIDv7(options?: RandomUUIDV7Options): UUID;
3007
3020
  interface X509CheckOptions {
3008
3021
  subject?: "always" | "default" | "never" | undefined;
3009
3022
  wildcards?: boolean | undefined;