wire-mesh-core 1.45.1 → 1.46.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 (67) hide show
  1. package/dist/adapters/frame-codec.d.cts +1 -1
  2. package/dist/adapters/frame-codec.d.mts +1 -1
  3. package/dist/adapters/node-identity.d.cts +2 -2
  4. package/dist/adapters/node-identity.d.mts +2 -2
  5. package/dist/adapters/tcp-transport.d.cts +1 -1
  6. package/dist/adapters/tcp-transport.d.mts +1 -1
  7. package/dist/adapters/tls-transport.d.cts +1 -1
  8. package/dist/adapters/tls-transport.d.mts +1 -1
  9. package/dist/domain/bulk.cjs +26 -0
  10. package/dist/domain/bulk.d.cts +10 -2
  11. package/dist/domain/bulk.d.mts +10 -2
  12. package/dist/domain/bulk.mjs +26 -1
  13. package/dist/domain/capability-grant.d.cts +3 -3
  14. package/dist/domain/capability-grant.d.mts +3 -3
  15. package/dist/domain/capability-request.d.cts +2 -2
  16. package/dist/domain/capability-request.d.mts +2 -2
  17. package/dist/domain/data-sync.d.cts +2 -2
  18. package/dist/domain/data-sync.d.mts +2 -2
  19. package/dist/domain/device-id.d.cts +1 -1
  20. package/dist/domain/device-id.d.mts +1 -1
  21. package/dist/domain/grant-candidates.d.cts +1 -1
  22. package/dist/domain/grant-candidates.d.mts +1 -1
  23. package/dist/domain/handshake.d.cts +1 -1
  24. package/dist/domain/handshake.d.mts +1 -1
  25. package/dist/domain/mesh-session.d.cts +3 -3
  26. package/dist/domain/mesh-session.d.mts +3 -3
  27. package/dist/domain/notice-board.d.cts +3 -3
  28. package/dist/domain/notice-board.d.mts +3 -3
  29. package/dist/domain/relay-hub.d.cts +2 -2
  30. package/dist/domain/relay-hub.d.mts +2 -2
  31. package/dist/domain/relay-use-gate.d.cts +2 -2
  32. package/dist/domain/relay-use-gate.d.mts +2 -2
  33. package/dist/domain/revocation-view.d.cts +2 -2
  34. package/dist/domain/revocation-view.d.mts +2 -2
  35. package/dist/domain/room-rekey.d.cts +3 -3
  36. package/dist/domain/room-rekey.d.mts +3 -3
  37. package/dist/domain/room-token-verification.d.cts +1 -1
  38. package/dist/domain/room-token-verification.d.mts +1 -1
  39. package/dist/domain/room.d.cts +4 -4
  40. package/dist/domain/room.d.mts +4 -4
  41. package/dist/domain/shard-manifest.d.cts +1 -1
  42. package/dist/domain/shard-manifest.d.mts +1 -1
  43. package/dist/domain/tokens.d.cts +1 -1
  44. package/dist/domain/tokens.d.mts +1 -1
  45. package/dist/domain/webrtc-signaling.cjs +107 -0
  46. package/dist/domain/webrtc-signaling.d.cts +38 -0
  47. package/dist/domain/webrtc-signaling.d.mts +38 -0
  48. package/dist/domain/webrtc-signaling.mjs +93 -0
  49. package/dist/generated/protocol.cjs +14 -1
  50. package/dist/generated/protocol.d.cts +2 -2
  51. package/dist/generated/protocol.d.mts +2 -2
  52. package/dist/generated/protocol.mjs +13 -2
  53. package/dist/{identity-B4XBWkqg.d.cts → identity-DHf0J6IA.d.cts} +1 -1
  54. package/dist/{identity-CIb9dGkJ.d.mts → identity-Oelt3uEn.d.mts} +1 -1
  55. package/dist/ports/identity.d.cts +1 -1
  56. package/dist/ports/identity.d.mts +1 -1
  57. package/dist/ports/transport.d.cts +1 -1
  58. package/dist/ports/transport.d.mts +1 -1
  59. package/dist/{protocol-gbXtNeOc.d.cts → protocol-D8CU6s2_.d.cts} +57 -1
  60. package/dist/{protocol-gbXtNeOc.d.mts → protocol-D8CU6s2_.d.mts} +57 -1
  61. package/dist/{room-token-verification-BggPfYr8.d.mts → room-token-verification-BQhqt1Rm.d.mts} +2 -2
  62. package/dist/{room-token-verification-CkQV0Iq7.d.cts → room-token-verification-DQGdYNg4.d.cts} +2 -2
  63. package/dist/{tokens-C9Kwy0Gk.d.cts → tokens-B1-MAIST.d.cts} +2 -2
  64. package/dist/{tokens-k172l0Iy.d.mts → tokens-Bh82oidM.d.mts} +2 -2
  65. package/dist/{transport-DAsFqDDS.d.cts → transport-BNeF6kDe.d.mts} +1 -1
  66. package/dist/{transport-Dy4h2eNY.d.mts → transport-BbSGNRFZ.d.cts} +1 -1
  67. package/package.json +37 -34
@@ -1,4 +1,4 @@
1
- import { N as Frame } from "../protocol-gbXtNeOc.cjs";
1
+ import { N as Frame } from "../protocol-D8CU6s2_.cjs";
2
2
  //#region src/adapters/frame-codec.d.ts
3
3
  export declare function messageFromFrame(frame: Frame): Uint8Array<ArrayBuffer>;
4
4
  /** A frame that fails schema validation, caught separately from a decode failure so it can be dropped without disconnecting. */
@@ -1,4 +1,4 @@
1
- import { N as Frame } from "../protocol-gbXtNeOc.mjs";
1
+ import { N as Frame } from "../protocol-D8CU6s2_.mjs";
2
2
  //#region src/adapters/frame-codec.d.ts
3
3
  export declare function messageFromFrame(frame: Frame): Uint8Array<ArrayBuffer>;
4
4
  /** A frame that fails schema validation, caught separately from a decode failure so it can be dropped without disconnecting. */
@@ -1,5 +1,5 @@
1
- import { B as IdentityKey, D as DeviceId } from "../protocol-gbXtNeOc.cjs";
2
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
1
+ import { B as IdentityKey, D as DeviceId } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
3
3
  import { webcrypto } from "node:crypto";
4
4
  //#region src/adapters/node-identity.d.ts
5
5
  export declare function deriveDeviceId(publicKey: Uint8Array): Promise<DeviceId>;
@@ -1,5 +1,5 @@
1
- import { B as IdentityKey, D as DeviceId } from "../protocol-gbXtNeOc.mjs";
2
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
1
+ import { B as IdentityKey, D as DeviceId } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
3
3
  import { webcrypto } from "node:crypto";
4
4
  //#region src/adapters/node-identity.d.ts
5
5
  export declare function deriveDeviceId(publicKey: Uint8Array): Promise<DeviceId>;
@@ -1,4 +1,4 @@
1
- import { r as Transport } from "../transport-DAsFqDDS.cjs";
1
+ import { r as Transport } from "../transport-BbSGNRFZ.cjs";
2
2
  //#region src/adapters/tcp-transport.d.ts
3
3
  /** A Node net.Socket-based Transport: length-prefixed, CBOR-encoded frames over plain TCP -- matching Cascade's own transport shape, since interop with Cascade nodes is wire-mesh's stated goal. Framing (not TLS) is this adapter's own concern; a TLS-terminated variant is a separate adapter behind the same Transport contract. */
4
4
  export declare function createTcpTransport(): Transport;
@@ -1,4 +1,4 @@
1
- import { r as Transport } from "../transport-Dy4h2eNY.mjs";
1
+ import { r as Transport } from "../transport-BNeF6kDe.mjs";
2
2
  //#region src/adapters/tcp-transport.d.ts
3
3
  /** A Node net.Socket-based Transport: length-prefixed, CBOR-encoded frames over plain TCP -- matching Cascade's own transport shape, since interop with Cascade nodes is wire-mesh's stated goal. Framing (not TLS) is this adapter's own concern; a TLS-terminated variant is a separate adapter behind the same Transport contract. */
4
4
  export declare function createTcpTransport(): Transport;
@@ -1,4 +1,4 @@
1
- import { r as Transport } from "../transport-DAsFqDDS.cjs";
1
+ import { r as Transport } from "../transport-BbSGNRFZ.cjs";
2
2
  //#region src/adapters/tls-transport.d.ts
3
3
  export interface TlsIdentity {
4
4
  certificatePem: string;
@@ -1,4 +1,4 @@
1
- import { r as Transport } from "../transport-Dy4h2eNY.mjs";
1
+ import { r as Transport } from "../transport-BNeF6kDe.mjs";
2
2
  //#region src/adapters/tls-transport.d.ts
3
3
  export interface TlsIdentity {
4
4
  certificatePem: string;
@@ -247,6 +247,31 @@ function decodeUint(bytes) {
247
247
  return Number(new TextDecoder().decode(bytes));
248
248
  }
249
249
  /**
250
+ * Builds a CreateBulkSenderOptions.source reading back a transfer this same storage already durably received as a BulkReceiver -- the read-back half of the mailbox/holder re-serving role (wire-mesh#161): a holder that accepted a shard once via createBulkReceiver's own createOpenHandler can re-serve the identical bytes to a fresh requester by constructing an ordinary createBulkSender over this source, reusing the exact chunk/ack-seq storage keys createBulkReceiver already wrote for the same transfer-id. Chunks past whatever ack-seq this storage currently holds durably are simply not yielded yet -- calling this before the original receipt has finished durably persisting every chunk is a caller error the resulting short read surfaces downstream as a digest mismatch on the receiving end, not something this function detects itself. Satisfies source's own re-readability contract (callable more than once, from any previously-reached seq, identical bytes each time) by construction: every call re-reads storage fresh rather than caching anything.
251
+ */
252
+ function storedTransferSource(options) {
253
+ const { storage, transferId } = options;
254
+ const idHex = transferIdHex(transferId);
255
+ return (fromSeq) => ({ [Symbol.asyncIterator]() {
256
+ let seq = fromSeq;
257
+ return { async next() {
258
+ const ackedBytes = await storage.get(ackSeqKey(idHex));
259
+ const ackedCount = ackedBytes === void 0 ? 0 : decodeUint(ackedBytes);
260
+ if (seq >= ackedCount) return {
261
+ value: void 0,
262
+ done: true
263
+ };
264
+ const chunk = await storage.get(chunkKey(idHex, seq));
265
+ if (chunk === void 0) throw new Error(`stored transfer ${idHex} is missing chunk ${String(seq)} though ack-seq claims ${String(ackedCount)} durable`);
266
+ seq += 1;
267
+ return {
268
+ value: chunk,
269
+ done: false
270
+ };
271
+ } };
272
+ } });
273
+ }
274
+ /**
250
275
  * Builds a receiver coordinator over one KeyValueStorage. Constructed once and shared across every connection this side accepts -- durable per-transfer state (which chunks are persisted, who opened it) and the in-memory registry of which connection currently owns each transfer must both outlive any one connection for resumption to mean anything at all.
251
276
  */
252
277
  function createBulkReceiver(options) {
@@ -398,3 +423,4 @@ exports.buildBulkOpenCommand = buildBulkOpenCommand;
398
423
  exports.buildBulkResumeCommand = buildBulkResumeCommand;
399
424
  exports.createBulkReceiver = createBulkReceiver;
400
425
  exports.createBulkSender = createBulkSender;
426
+ exports.storedTransferSource = storedTransferSource;
@@ -1,6 +1,6 @@
1
- import { D as DeviceId, N as Frame, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-gbXtNeOc.cjs";
1
+ import { D as DeviceId, N as Frame, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-D8CU6s2_.cjs";
2
2
  import { KeyValueStorage } from "../ports/storage.cjs";
3
- import { t as Connection } from "../transport-DAsFqDDS.cjs";
3
+ import { t as Connection } from "../transport-BbSGNRFZ.cjs";
4
4
  import { IncomingManageRequest, MeshSession } from "./mesh-session.cjs";
5
5
  //#region src/domain/bulk.d.ts
6
6
  /** The two capabilities matching the direction each manage-command actually flows (spec/bulk.cddl): the sender proves write authority to open a transfer, the receiver proves read authority to ask for one to continue. */
@@ -90,6 +90,14 @@ export interface BulkReceiver {
90
90
  export interface CreateBulkReceiverOptions {
91
91
  storage: KeyValueStorage;
92
92
  }
93
+ export interface StoredTransferSourceOptions {
94
+ storage: KeyValueStorage;
95
+ transferId: Uint8Array<ArrayBuffer>;
96
+ }
97
+ /**
98
+ * Builds a CreateBulkSenderOptions.source reading back a transfer this same storage already durably received as a BulkReceiver -- the read-back half of the mailbox/holder re-serving role (wire-mesh#161): a holder that accepted a shard once via createBulkReceiver's own createOpenHandler can re-serve the identical bytes to a fresh requester by constructing an ordinary createBulkSender over this source, reusing the exact chunk/ack-seq storage keys createBulkReceiver already wrote for the same transfer-id. Chunks past whatever ack-seq this storage currently holds durably are simply not yielded yet -- calling this before the original receipt has finished durably persisting every chunk is a caller error the resulting short read surfaces downstream as a digest mismatch on the receiving end, not something this function detects itself. Satisfies source's own re-readability contract (callable more than once, from any previously-reached seq, identical bytes each time) by construction: every call re-reads storage fresh rather than caching anything.
99
+ */
100
+ export declare function storedTransferSource(options: Readonly<StoredTransferSourceOptions>): (fromSeq: number) => AsyncIterable<Uint8Array<ArrayBuffer>>;
93
101
  /**
94
102
  * Builds a receiver coordinator over one KeyValueStorage. Constructed once and shared across every connection this side accepts -- durable per-transfer state (which chunks are persisted, who opened it) and the in-memory registry of which connection currently owns each transfer must both outlive any one connection for resumption to mean anything at all.
95
103
  */
@@ -1,6 +1,6 @@
1
- import { D as DeviceId, N as Frame, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-gbXtNeOc.mjs";
1
+ import { D as DeviceId, N as Frame, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-D8CU6s2_.mjs";
2
2
  import { KeyValueStorage } from "../ports/storage.mjs";
3
- import { t as Connection } from "../transport-Dy4h2eNY.mjs";
3
+ import { t as Connection } from "../transport-BNeF6kDe.mjs";
4
4
  import { IncomingManageRequest, MeshSession } from "./mesh-session.mjs";
5
5
  //#region src/domain/bulk.d.ts
6
6
  /** The two capabilities matching the direction each manage-command actually flows (spec/bulk.cddl): the sender proves write authority to open a transfer, the receiver proves read authority to ask for one to continue. */
@@ -90,6 +90,14 @@ export interface BulkReceiver {
90
90
  export interface CreateBulkReceiverOptions {
91
91
  storage: KeyValueStorage;
92
92
  }
93
+ export interface StoredTransferSourceOptions {
94
+ storage: KeyValueStorage;
95
+ transferId: Uint8Array<ArrayBuffer>;
96
+ }
97
+ /**
98
+ * Builds a CreateBulkSenderOptions.source reading back a transfer this same storage already durably received as a BulkReceiver -- the read-back half of the mailbox/holder re-serving role (wire-mesh#161): a holder that accepted a shard once via createBulkReceiver's own createOpenHandler can re-serve the identical bytes to a fresh requester by constructing an ordinary createBulkSender over this source, reusing the exact chunk/ack-seq storage keys createBulkReceiver already wrote for the same transfer-id. Chunks past whatever ack-seq this storage currently holds durably are simply not yielded yet -- calling this before the original receipt has finished durably persisting every chunk is a caller error the resulting short read surfaces downstream as a digest mismatch on the receiving end, not something this function detects itself. Satisfies source's own re-readability contract (callable more than once, from any previously-reached seq, identical bytes each time) by construction: every call re-reads storage fresh rather than caching anything.
99
+ */
100
+ export declare function storedTransferSource(options: Readonly<StoredTransferSourceOptions>): (fromSeq: number) => AsyncIterable<Uint8Array<ArrayBuffer>>;
93
101
  /**
94
102
  * Builds a receiver coordinator over one KeyValueStorage. Constructed once and shared across every connection this side accepts -- durable per-transfer state (which chunks are persisted, who opened it) and the in-memory registry of which connection currently owns each transfer must both outlive any one connection for resumption to mean anything at all.
95
103
  */
@@ -246,6 +246,31 @@ function decodeUint(bytes) {
246
246
  return Number(new TextDecoder().decode(bytes));
247
247
  }
248
248
  /**
249
+ * Builds a CreateBulkSenderOptions.source reading back a transfer this same storage already durably received as a BulkReceiver -- the read-back half of the mailbox/holder re-serving role (wire-mesh#161): a holder that accepted a shard once via createBulkReceiver's own createOpenHandler can re-serve the identical bytes to a fresh requester by constructing an ordinary createBulkSender over this source, reusing the exact chunk/ack-seq storage keys createBulkReceiver already wrote for the same transfer-id. Chunks past whatever ack-seq this storage currently holds durably are simply not yielded yet -- calling this before the original receipt has finished durably persisting every chunk is a caller error the resulting short read surfaces downstream as a digest mismatch on the receiving end, not something this function detects itself. Satisfies source's own re-readability contract (callable more than once, from any previously-reached seq, identical bytes each time) by construction: every call re-reads storage fresh rather than caching anything.
250
+ */
251
+ function storedTransferSource(options) {
252
+ const { storage, transferId } = options;
253
+ const idHex = transferIdHex(transferId);
254
+ return (fromSeq) => ({ [Symbol.asyncIterator]() {
255
+ let seq = fromSeq;
256
+ return { async next() {
257
+ const ackedBytes = await storage.get(ackSeqKey(idHex));
258
+ const ackedCount = ackedBytes === void 0 ? 0 : decodeUint(ackedBytes);
259
+ if (seq >= ackedCount) return {
260
+ value: void 0,
261
+ done: true
262
+ };
263
+ const chunk = await storage.get(chunkKey(idHex, seq));
264
+ if (chunk === void 0) throw new Error(`stored transfer ${idHex} is missing chunk ${String(seq)} though ack-seq claims ${String(ackedCount)} durable`);
265
+ seq += 1;
266
+ return {
267
+ value: chunk,
268
+ done: false
269
+ };
270
+ } };
271
+ } });
272
+ }
273
+ /**
249
274
  * Builds a receiver coordinator over one KeyValueStorage. Constructed once and shared across every connection this side accepts -- durable per-transfer state (which chunks are persisted, who opened it) and the in-memory registry of which connection currently owns each transfer must both outlive any one connection for resumption to mean anything at all.
250
275
  */
251
276
  function createBulkReceiver(options) {
@@ -390,4 +415,4 @@ function createBulkReceiver(options) {
390
415
  };
391
416
  }
392
417
  //#endregion
393
- export { BULK_READ_CAPABILITY, BULK_WRITE_CAPABILITY, buildBulkCancelCommand, buildBulkOpenCommand, buildBulkResumeCommand, createBulkReceiver, createBulkSender };
418
+ export { BULK_READ_CAPABILITY, BULK_WRITE_CAPABILITY, buildBulkCancelCommand, buildBulkOpenCommand, buildBulkResumeCommand, createBulkReceiver, createBulkSender, storedTransferSource };
@@ -1,8 +1,8 @@
1
- import { D as DeviceId, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-gbXtNeOc.cjs";
2
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
1
+ import { D as DeviceId, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.cjs";
4
4
  import { IncomingManageRequest, ManageOutcome, MeshSession } from "./mesh-session.cjs";
5
- import { a as RevocationCheck } from "../tokens-C9Kwy0Gk.cjs";
5
+ import { a as RevocationCheck } from "../tokens-B1-MAIST.cjs";
6
6
  //#region src/domain/capability-grant.d.ts
7
7
  /**
8
8
  * Builds a capability-grant command per management.cddl. The outer `manage-command.verb` is the capability string itself, the identical convention capability-request.ts's own buildCapabilityRequestCommand already establishes -- a receiver's per-capability handler is how it knows which grant this push is even for. `params.verb` is the fixed "capability.grant" marker. No scope or invitee field: manage-request-frame's own top-level scope already carries the former, and the request's own destination already carries the latter -- naming either a second time inside params could only ever disagree with the fact it duplicates.
@@ -1,8 +1,8 @@
1
- import { D as DeviceId, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-gbXtNeOc.mjs";
2
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
1
+ import { D as DeviceId, V as ManageCommand, f as CapabilityScope, p as CapabilityToken } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.mjs";
4
4
  import { IncomingManageRequest, ManageOutcome, MeshSession } from "./mesh-session.mjs";
5
- import { a as RevocationCheck } from "../tokens-k172l0Iy.mjs";
5
+ import { a as RevocationCheck } from "../tokens-Bh82oidM.mjs";
6
6
  //#region src/domain/capability-grant.d.ts
7
7
  /**
8
8
  * Builds a capability-grant command per management.cddl. The outer `manage-command.verb` is the capability string itself, the identical convention capability-request.ts's own buildCapabilityRequestCommand already establishes -- a receiver's per-capability handler is how it knows which grant this push is even for. `params.verb` is the fixed "capability.grant" marker. No scope or invitee field: manage-request-frame's own top-level scope already carries the former, and the request's own destination already carries the latter -- naming either a second time inside params could only ever disagree with the fact it duplicates.
@@ -1,5 +1,5 @@
1
- import { D as DeviceId, V as ManageCommand, f as CapabilityScope, u as CapabilityGrantOk } from "../protocol-gbXtNeOc.cjs";
2
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
1
+ import { D as DeviceId, V as ManageCommand, f as CapabilityScope, u as CapabilityGrantOk } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.cjs";
4
4
  import { IncomingManageRequest, MeshSession } from "./mesh-session.cjs";
5
5
  //#region src/domain/capability-request.d.ts
@@ -1,5 +1,5 @@
1
- import { D as DeviceId, V as ManageCommand, f as CapabilityScope, u as CapabilityGrantOk } from "../protocol-gbXtNeOc.mjs";
2
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
1
+ import { D as DeviceId, V as ManageCommand, f as CapabilityScope, u as CapabilityGrantOk } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.mjs";
4
4
  import { IncomingManageRequest, MeshSession } from "./mesh-session.mjs";
5
5
  //#region src/domain/capability-request.d.ts
@@ -1,6 +1,6 @@
1
- import { D as DeviceId, E as DataRequestFrame, T as DataHaveFrame, w as DataEntriesFrame } from "../protocol-gbXtNeOc.cjs";
1
+ import { D as DeviceId, E as DataRequestFrame, T as DataHaveFrame, w as DataEntriesFrame } from "../protocol-D8CU6s2_.cjs";
2
2
  import { KeyValueStorage } from "../ports/storage.cjs";
3
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
3
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
4
4
  //#region src/domain/data-sync.d.ts
5
5
  export interface DataSyncOptions {
6
6
  identity: IdentityPort;
@@ -1,6 +1,6 @@
1
- import { D as DeviceId, E as DataRequestFrame, T as DataHaveFrame, w as DataEntriesFrame } from "../protocol-gbXtNeOc.mjs";
1
+ import { D as DeviceId, E as DataRequestFrame, T as DataHaveFrame, w as DataEntriesFrame } from "../protocol-D8CU6s2_.mjs";
2
2
  import { KeyValueStorage } from "../ports/storage.mjs";
3
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
3
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
4
4
  //#region src/domain/data-sync.d.ts
5
5
  export interface DataSyncOptions {
6
6
  identity: IdentityPort;
@@ -1,4 +1,4 @@
1
- import { D as DeviceId } from "../protocol-gbXtNeOc.cjs";
1
+ import { D as DeviceId } from "../protocol-D8CU6s2_.cjs";
2
2
  //#region src/domain/device-id.d.ts
3
3
  /** Lowercase, byte-exact hex for an arbitrary-length byte string -- the same encoding convention deviceIdToHex uses for the fixed-length device-id case, extracted so any other byte string needing a stable, displayable, map-keyable text form (e.g. a token-id, which tokens.cddl defines as an arbitrary-length bstr rather than a 32-byte device-id) can use the identical convention without going through a device-id-shaped function. */
4
4
  export declare function bytesToHex(bytes: Uint8Array): string;
@@ -1,4 +1,4 @@
1
- import { D as DeviceId } from "../protocol-gbXtNeOc.mjs";
1
+ import { D as DeviceId } from "../protocol-D8CU6s2_.mjs";
2
2
  //#region src/domain/device-id.d.ts
3
3
  /** Lowercase, byte-exact hex for an arbitrary-length byte string -- the same encoding convention deviceIdToHex uses for the fixed-length device-id case, extracted so any other byte string needing a stable, displayable, map-keyable text form (e.g. a token-id, which tokens.cddl defines as an arbitrary-length bstr rather than a 32-byte device-id) can use the identical convention without going through a device-id-shaped function. */
4
4
  export declare function bytesToHex(bytes: Uint8Array): string;
@@ -1,4 +1,4 @@
1
- import { D as DeviceId, f as CapabilityScope } from "../protocol-gbXtNeOc.cjs";
1
+ import { D as DeviceId, f as CapabilityScope } from "../protocol-D8CU6s2_.cjs";
2
2
  import { DirectoryEntry, MeshSession } from "./mesh-session.cjs";
3
3
  import { z } from "zod";
4
4
  //#region src/domain/grant-candidates.d.ts
@@ -1,4 +1,4 @@
1
- import { D as DeviceId, f as CapabilityScope } from "../protocol-gbXtNeOc.mjs";
1
+ import { D as DeviceId, f as CapabilityScope } from "../protocol-D8CU6s2_.mjs";
2
2
  import { DirectoryEntry, MeshSession } from "./mesh-session.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/domain/grant-candidates.d.ts
@@ -1,4 +1,4 @@
1
- import { A as DomainId, R as HandshakeFrame, ot as ProtocolVersion } from "../protocol-gbXtNeOc.cjs";
1
+ import { A as DomainId, R as HandshakeFrame, ot as ProtocolVersion } from "../protocol-D8CU6s2_.cjs";
2
2
  //#region src/domain/handshake.d.ts
3
3
  /** The highest protocol version this build of core understands. */
4
4
  export declare const SUPPORTED_PROTOCOL_VERSION: ProtocolVersion;
@@ -1,4 +1,4 @@
1
- import { A as DomainId, R as HandshakeFrame, ot as ProtocolVersion } from "../protocol-gbXtNeOc.mjs";
1
+ import { A as DomainId, R as HandshakeFrame, ot as ProtocolVersion } from "../protocol-D8CU6s2_.mjs";
2
2
  //#region src/domain/handshake.d.ts
3
3
  /** The highest protocol version this build of core understands. */
4
4
  export declare const SUPPORTED_PROTOCOL_VERSION: ProtocolVersion;
@@ -1,7 +1,7 @@
1
- import { D as DeviceId, E as DataRequestFrame, N as Frame, Q as PeerAdvert, T as DataHaveFrame, U as ManageError, V as ManageCommand, W as ManageOk, _t as RevocationEntry, f as CapabilityScope, ot as ProtocolVersion, p as CapabilityToken, w as DataEntriesFrame } from "../protocol-gbXtNeOc.cjs";
2
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
1
+ import { D as DeviceId, E as DataRequestFrame, N as Frame, Q as PeerAdvert, T as DataHaveFrame, U as ManageError, V as ManageCommand, W as ManageOk, _t as RevocationEntry, f as CapabilityScope, ot as ProtocolVersion, p as CapabilityToken, w as DataEntriesFrame } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.cjs";
4
- import { r as Transport, t as Connection } from "../transport-DAsFqDDS.cjs";
4
+ import { r as Transport, t as Connection } from "../transport-BbSGNRFZ.cjs";
5
5
  //#region src/domain/mesh-session.d.ts
6
6
  /** How long to wait for the node's handshake before calling it unanswered. A relay-only node never sends one; that is a state to display, not an error. */
7
7
  export declare const HANDSHAKE_TIMEOUT_MS = 3000;
@@ -1,7 +1,7 @@
1
- import { D as DeviceId, E as DataRequestFrame, N as Frame, Q as PeerAdvert, T as DataHaveFrame, U as ManageError, V as ManageCommand, W as ManageOk, _t as RevocationEntry, f as CapabilityScope, ot as ProtocolVersion, p as CapabilityToken, w as DataEntriesFrame } from "../protocol-gbXtNeOc.mjs";
2
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
1
+ import { D as DeviceId, E as DataRequestFrame, N as Frame, Q as PeerAdvert, T as DataHaveFrame, U as ManageError, V as ManageCommand, W as ManageOk, _t as RevocationEntry, f as CapabilityScope, ot as ProtocolVersion, p as CapabilityToken, w as DataEntriesFrame } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.mjs";
4
- import { r as Transport, t as Connection } from "../transport-Dy4h2eNY.mjs";
4
+ import { r as Transport, t as Connection } from "../transport-BNeF6kDe.mjs";
5
5
  //#region src/domain/mesh-session.d.ts
6
6
  /** How long to wait for the node's handshake before calling it unanswered. A relay-only node never sends one; that is a state to display, not an error. */
7
7
  export declare const HANDSHAKE_TIMEOUT_MS = 3000;
@@ -1,8 +1,8 @@
1
- import { D as DeviceId, Et as RoomNoticeClaims, T as DataHaveFrame, Tt as RoomNotice, p as CapabilityToken } from "../protocol-gbXtNeOc.cjs";
1
+ import { D as DeviceId, Et as RoomNoticeClaims, T as DataHaveFrame, Tt as RoomNotice, p as CapabilityToken } from "../protocol-D8CU6s2_.cjs";
2
2
  import { KeyValueStorage } from "../ports/storage.cjs";
3
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
3
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
4
4
  import { t as Clock } from "../clock-DiSx-WKM.cjs";
5
- import { a as RevocationCheck } from "../tokens-C9Kwy0Gk.cjs";
5
+ import { a as RevocationCheck } from "../tokens-B1-MAIST.cjs";
6
6
  import { RoomNoticeVerdictReason } from "./room.cjs";
7
7
  //#region src/domain/notice-board.d.ts
8
8
  /**
@@ -1,8 +1,8 @@
1
- import { D as DeviceId, Et as RoomNoticeClaims, T as DataHaveFrame, Tt as RoomNotice, p as CapabilityToken } from "../protocol-gbXtNeOc.mjs";
1
+ import { D as DeviceId, Et as RoomNoticeClaims, T as DataHaveFrame, Tt as RoomNotice, p as CapabilityToken } from "../protocol-D8CU6s2_.mjs";
2
2
  import { KeyValueStorage } from "../ports/storage.mjs";
3
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
3
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
4
4
  import { t as Clock } from "../clock-DiSx-WKM.mjs";
5
- import { a as RevocationCheck } from "../tokens-k172l0Iy.mjs";
5
+ import { a as RevocationCheck } from "../tokens-Bh82oidM.mjs";
6
6
  import { RoomNoticeVerdictReason } from "./room.mjs";
7
7
  //#region src/domain/notice-board.d.ts
8
8
  /**
@@ -1,5 +1,5 @@
1
- import { N as Frame } from "../protocol-gbXtNeOc.cjs";
2
- import { t as Connection } from "../transport-DAsFqDDS.cjs";
1
+ import { N as Frame } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as Connection } from "../transport-BbSGNRFZ.cjs";
3
3
  //#region src/domain/relay-hub.d.ts
4
4
  export interface RelayHub {
5
5
  /** Drives one accepted connection until it closes: registers gossip-advertised devices, re-broadcasts each gossip frame to every other connected client and replies to the gossiping connection with a catch-up frame of every other already-known device, answers relay-connect by pairing and notifying the target, and forwards relay-data within established pairings. Resolves when the connection's frame stream ends. Internally just registerConnection followed by a loop of onFrame calls and a final onDisconnect -- kept as its own method since a dedicated hub deployment (wire-mesh-node/cloudflare-hub) has nothing else driving the connection and wants the whole lifecycle in one call. */
@@ -1,5 +1,5 @@
1
- import { N as Frame } from "../protocol-gbXtNeOc.mjs";
2
- import { t as Connection } from "../transport-Dy4h2eNY.mjs";
1
+ import { N as Frame } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as Connection } from "../transport-BNeF6kDe.mjs";
3
3
  //#region src/domain/relay-hub.d.ts
4
4
  export interface RelayHub {
5
5
  /** Drives one accepted connection until it closes: registers gossip-advertised devices, re-broadcasts each gossip frame to every other connected client and replies to the gossiping connection with a catch-up frame of every other already-known device, answers relay-connect by pairing and notifying the target, and forwards relay-data within established pairings. Resolves when the connection's frame stream ends. Internally just registerConnection followed by a loop of onFrame calls and a final onDisconnect -- kept as its own method since a dedicated hub deployment (wire-mesh-node/cloudflare-hub) has nothing else driving the connection and wants the whole lifecycle in one call. */
@@ -1,5 +1,5 @@
1
- import { N as Frame } from "../protocol-gbXtNeOc.cjs";
2
- import { t as Connection } from "../transport-DAsFqDDS.cjs";
1
+ import { N as Frame } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as Connection } from "../transport-BbSGNRFZ.cjs";
3
3
  //#region src/domain/relay-use-gate.d.ts
4
4
  export interface RelayUseAuthorizationTracker {
5
5
  /** True once authorize() has been called for this exact connection and revoke() has not been called since. */
@@ -1,5 +1,5 @@
1
- import { N as Frame } from "../protocol-gbXtNeOc.mjs";
2
- import { t as Connection } from "../transport-Dy4h2eNY.mjs";
1
+ import { N as Frame } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as Connection } from "../transport-BNeF6kDe.mjs";
3
3
  //#region src/domain/relay-use-gate.d.ts
4
4
  export interface RelayUseAuthorizationTracker {
5
5
  /** True once authorize() has been called for this exact connection and revoke() has not been called since. */
@@ -1,5 +1,5 @@
1
- import { _t as RevocationEntry } from "../protocol-gbXtNeOc.cjs";
2
- import { a as RevocationCheck, d as VerifyRevocationEntryOptions, o as RevocationEntryVerdict } from "../tokens-C9Kwy0Gk.cjs";
1
+ import { _t as RevocationEntry } from "../protocol-D8CU6s2_.cjs";
2
+ import { a as RevocationCheck, d as VerifyRevocationEntryOptions, o as RevocationEntryVerdict } from "../tokens-B1-MAIST.cjs";
3
3
  //#region src/domain/revocation-view.d.ts
4
4
  /**
5
5
  * An in-memory RevocationCheck fed by ingested revocation-announce frames. Keyed by token-id alone, per management.cddl's contract: a token-id can legitimately carry multiple recorded entries from different issuers (the token's own issuer, and/or any number of parties holding a delegated manage:revoke authorization over it) -- entriesFor returns every one of them unfiltered, since checking which actually apply (issuer-match, or a verified authorization) is verifyTokenChain's own obligation, not this store's.
@@ -1,5 +1,5 @@
1
- import { _t as RevocationEntry } from "../protocol-gbXtNeOc.mjs";
2
- import { a as RevocationCheck, d as VerifyRevocationEntryOptions, o as RevocationEntryVerdict } from "../tokens-k172l0Iy.mjs";
1
+ import { _t as RevocationEntry } from "../protocol-D8CU6s2_.mjs";
2
+ import { a as RevocationCheck, d as VerifyRevocationEntryOptions, o as RevocationEntryVerdict } from "../tokens-Bh82oidM.mjs";
3
3
  //#region src/domain/revocation-view.d.ts
4
4
  /**
5
5
  * An in-memory RevocationCheck fed by ingested revocation-announce frames. Keyed by token-id alone, per management.cddl's contract: a token-id can legitimately carry multiple recorded entries from different issuers (the token's own issuer, and/or any number of parties holding a delegated manage:revoke authorization over it) -- entriesFor returns every one of them unfiltered, since checking which actually apply (issuer-match, or a verified authorization) is verifyTokenChain's own obligation, not this store's.
@@ -1,8 +1,8 @@
1
- import { D as DeviceId, V as ManageCommand, p as CapabilityToken } from "../protocol-gbXtNeOc.cjs";
2
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
1
+ import { D as DeviceId, V as ManageCommand, p as CapabilityToken } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.cjs";
4
4
  import { IncomingManageRequest, ManageOutcome, MeshSession } from "./mesh-session.cjs";
5
- import { a as RevocationCheck } from "../tokens-C9Kwy0Gk.cjs";
5
+ import { a as RevocationCheck } from "../tokens-B1-MAIST.cjs";
6
6
  //#region src/domain/room-rekey.d.ts
7
7
  /**
8
8
  * Builds a room.rekey command per room.cddl. The outer verb is room:member, the same "one resource, several inner verbs" pattern room.send/room.leave/room.members already establish -- not a new capability of its own.
@@ -1,8 +1,8 @@
1
- import { D as DeviceId, V as ManageCommand, p as CapabilityToken } from "../protocol-gbXtNeOc.mjs";
2
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
1
+ import { D as DeviceId, V as ManageCommand, p as CapabilityToken } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.mjs";
4
4
  import { IncomingManageRequest, ManageOutcome, MeshSession } from "./mesh-session.mjs";
5
- import { a as RevocationCheck } from "../tokens-k172l0Iy.mjs";
5
+ import { a as RevocationCheck } from "../tokens-Bh82oidM.mjs";
6
6
  //#region src/domain/room-rekey.d.ts
7
7
  /**
8
8
  * Builds a room.rekey command per room.cddl. The outer verb is room:member, the same "one resource, several inner verbs" pattern room.send/room.leave/room.members already establish -- not a new capability of its own.
@@ -1,2 +1,2 @@
1
- import { a as verifyRoomToken, i as VerifyRoomTokenOptions, n as RoomTokenVerdict, r as RoomTokenVerdictReason, t as ROOM_MEMBER_CAPABILITY } from "../room-token-verification-CkQV0Iq7.cjs";
1
+ import { a as verifyRoomToken, i as VerifyRoomTokenOptions, n as RoomTokenVerdict, r as RoomTokenVerdictReason, t as ROOM_MEMBER_CAPABILITY } from "../room-token-verification-DQGdYNg4.cjs";
2
2
  export { ROOM_MEMBER_CAPABILITY, RoomTokenVerdict, RoomTokenVerdictReason, VerifyRoomTokenOptions, verifyRoomToken };
@@ -1,2 +1,2 @@
1
- import { a as verifyRoomToken, i as VerifyRoomTokenOptions, n as RoomTokenVerdict, r as RoomTokenVerdictReason, t as ROOM_MEMBER_CAPABILITY } from "../room-token-verification-BggPfYr8.mjs";
1
+ import { a as verifyRoomToken, i as VerifyRoomTokenOptions, n as RoomTokenVerdict, r as RoomTokenVerdictReason, t as ROOM_MEMBER_CAPABILITY } from "../room-token-verification-BQhqt1Rm.mjs";
2
2
  export { ROOM_MEMBER_CAPABILITY, RoomTokenVerdict, RoomTokenVerdictReason, VerifyRoomTokenOptions, verifyRoomToken };
@@ -1,8 +1,8 @@
1
- import { Dt as RoomPath, Et as RoomNoticeClaims, Tt as RoomNotice, p as CapabilityToken, q as MessageRef } from "../protocol-gbXtNeOc.cjs";
2
- import { t as IdentityPort } from "../identity-B4XBWkqg.cjs";
1
+ import { Dt as RoomPath, Et as RoomNoticeClaims, Tt as RoomNotice, p as CapabilityToken, q as MessageRef } from "../protocol-D8CU6s2_.cjs";
2
+ import { t as IdentityPort } from "../identity-DHf0J6IA.cjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.cjs";
4
- import { a as RevocationCheck } from "../tokens-C9Kwy0Gk.cjs";
5
- import { r as RoomTokenVerdictReason } from "../room-token-verification-CkQV0Iq7.cjs";
4
+ import { a as RevocationCheck } from "../tokens-B1-MAIST.cjs";
5
+ import { r as RoomTokenVerdictReason } from "../room-token-verification-DQGdYNg4.cjs";
6
6
  //#region src/domain/room.d.ts
7
7
  export type RoomNoticeVerdictReason = "malformed" | "wrong_room" | "bad_signature" | "wrong_poster" | "content_expired" | "key_epoch_mismatch" | RoomTokenVerdictReason;
8
8
  export type RoomNoticeVerdict = {
@@ -1,8 +1,8 @@
1
- import { Dt as RoomPath, Et as RoomNoticeClaims, Tt as RoomNotice, p as CapabilityToken, q as MessageRef } from "../protocol-gbXtNeOc.mjs";
2
- import { t as IdentityPort } from "../identity-CIb9dGkJ.mjs";
1
+ import { Dt as RoomPath, Et as RoomNoticeClaims, Tt as RoomNotice, p as CapabilityToken, q as MessageRef } from "../protocol-D8CU6s2_.mjs";
2
+ import { t as IdentityPort } from "../identity-Oelt3uEn.mjs";
3
3
  import { t as Clock } from "../clock-DiSx-WKM.mjs";
4
- import { a as RevocationCheck } from "../tokens-k172l0Iy.mjs";
5
- import { r as RoomTokenVerdictReason } from "../room-token-verification-BggPfYr8.mjs";
4
+ import { a as RevocationCheck } from "../tokens-Bh82oidM.mjs";
5
+ import { r as RoomTokenVerdictReason } from "../room-token-verification-BQhqt1Rm.mjs";
6
6
  //#region src/domain/room.d.ts
7
7
  export type RoomNoticeVerdictReason = "malformed" | "wrong_room" | "bad_signature" | "wrong_poster" | "content_expired" | "key_epoch_mismatch" | RoomTokenVerdictReason;
8
8
  export type RoomNoticeVerdict = {
@@ -1,4 +1,4 @@
1
- import { D as DeviceId } from "../protocol-gbXtNeOc.cjs";
1
+ import { D as DeviceId } from "../protocol-D8CU6s2_.cjs";
2
2
  import { PresentedShard, ShardConfig } from "./erasure-coding.cjs";
3
3
  //#region src/domain/shard-manifest.d.ts
4
4
  /** The content-type a core/data entry carrying a shard manifest declares. */
@@ -1,4 +1,4 @@
1
- import { D as DeviceId } from "../protocol-gbXtNeOc.mjs";
1
+ import { D as DeviceId } from "../protocol-D8CU6s2_.mjs";
2
2
  import { PresentedShard, ShardConfig } from "./erasure-coding.mjs";
3
3
  //#region src/domain/shard-manifest.d.ts
4
4
  /** The content-type a core/data entry carrying a shard manifest declares. */
@@ -1,2 +1,2 @@
1
- import { a as RevocationCheck, c as TokenVerdict, d as VerifyRevocationEntryOptions, f as canGrant, g as verifyRevocationEntry, h as verifyCapabilityToken, i as MintVerdict, l as TokenVerdictReason, m as mintRevocationEntry, n as MintRefusalReason, o as RevocationEntryVerdict, p as mintCapabilityToken, r as MintRevocationEntryOptions, s as RevocationEntryVerdictReason, t as MintCapabilityTokenOptions, u as VerifyCapabilityTokenOptions } from "../tokens-C9Kwy0Gk.cjs";
1
+ import { a as RevocationCheck, c as TokenVerdict, d as VerifyRevocationEntryOptions, f as canGrant, g as verifyRevocationEntry, h as verifyCapabilityToken, i as MintVerdict, l as TokenVerdictReason, m as mintRevocationEntry, n as MintRefusalReason, o as RevocationEntryVerdict, p as mintCapabilityToken, r as MintRevocationEntryOptions, s as RevocationEntryVerdictReason, t as MintCapabilityTokenOptions, u as VerifyCapabilityTokenOptions } from "../tokens-B1-MAIST.cjs";
2
2
  export { MintCapabilityTokenOptions, MintRefusalReason, MintRevocationEntryOptions, MintVerdict, RevocationCheck, RevocationEntryVerdict, RevocationEntryVerdictReason, TokenVerdict, TokenVerdictReason, VerifyCapabilityTokenOptions, VerifyRevocationEntryOptions, canGrant, mintCapabilityToken, mintRevocationEntry, verifyCapabilityToken, verifyRevocationEntry };
@@ -1,2 +1,2 @@
1
- import { a as RevocationCheck, c as TokenVerdict, d as VerifyRevocationEntryOptions, f as canGrant, g as verifyRevocationEntry, h as verifyCapabilityToken, i as MintVerdict, l as TokenVerdictReason, m as mintRevocationEntry, n as MintRefusalReason, o as RevocationEntryVerdict, p as mintCapabilityToken, r as MintRevocationEntryOptions, s as RevocationEntryVerdictReason, t as MintCapabilityTokenOptions, u as VerifyCapabilityTokenOptions } from "../tokens-k172l0Iy.mjs";
1
+ import { a as RevocationCheck, c as TokenVerdict, d as VerifyRevocationEntryOptions, f as canGrant, g as verifyRevocationEntry, h as verifyCapabilityToken, i as MintVerdict, l as TokenVerdictReason, m as mintRevocationEntry, n as MintRefusalReason, o as RevocationEntryVerdict, p as mintCapabilityToken, r as MintRevocationEntryOptions, s as RevocationEntryVerdictReason, t as MintCapabilityTokenOptions, u as VerifyCapabilityTokenOptions } from "../tokens-Bh82oidM.mjs";
2
2
  export { MintCapabilityTokenOptions, MintRefusalReason, MintRevocationEntryOptions, MintVerdict, RevocationCheck, RevocationEntryVerdict, RevocationEntryVerdictReason, TokenVerdict, TokenVerdictReason, VerifyCapabilityTokenOptions, VerifyRevocationEntryOptions, canGrant, mintCapabilityToken, mintRevocationEntry, verifyCapabilityToken, verifyRevocationEntry };