@real-life/trust-protocol 0.3.2 → 0.5.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 (277) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +209 -78
  3. package/dist/ack.d.ts +84 -0
  4. package/dist/ack.d.ts.map +1 -0
  5. package/dist/ack.js +114 -0
  6. package/dist/ack.js.map +1 -0
  7. package/dist/adapters/vti-mediator.d.ts +169 -0
  8. package/dist/adapters/vti-mediator.d.ts.map +1 -0
  9. package/dist/adapters/vti-mediator.js +659 -0
  10. package/dist/adapters/vti-mediator.js.map +1 -0
  11. package/dist/anchor.d.ts +226 -0
  12. package/dist/anchor.d.ts.map +1 -0
  13. package/dist/anchor.js +347 -0
  14. package/dist/anchor.js.map +1 -0
  15. package/dist/{holder.d.ts → carrier-holder.d.ts} +1 -1
  16. package/dist/carrier-holder.d.ts.map +1 -0
  17. package/dist/{holder.js → carrier-holder.js} +5 -4
  18. package/dist/carrier-holder.js.map +1 -0
  19. package/dist/carrier-identity.js +4 -4
  20. package/dist/carrier-identity.js.map +1 -1
  21. package/dist/carrier.d.ts.map +1 -1
  22. package/dist/carrier.js +4 -3
  23. package/dist/carrier.js.map +1 -1
  24. package/dist/ceremony.d.ts +3 -2
  25. package/dist/ceremony.d.ts.map +1 -1
  26. package/dist/ceremony.js +16 -26
  27. package/dist/ceremony.js.map +1 -1
  28. package/dist/codec.d.ts +54 -0
  29. package/dist/codec.d.ts.map +1 -0
  30. package/dist/codec.js +494 -0
  31. package/dist/codec.js.map +1 -0
  32. package/dist/continuity.d.ts +67 -0
  33. package/dist/continuity.d.ts.map +1 -0
  34. package/dist/continuity.js +110 -0
  35. package/dist/continuity.js.map +1 -0
  36. package/dist/core.d.ts +4 -0
  37. package/dist/core.d.ts.map +1 -1
  38. package/dist/core.js.map +1 -1
  39. package/dist/crypto.d.ts +23 -7
  40. package/dist/crypto.d.ts.map +1 -1
  41. package/dist/crypto.js +54 -20
  42. package/dist/crypto.js.map +1 -1
  43. package/dist/delivery.d.ts +31 -3
  44. package/dist/delivery.d.ts.map +1 -1
  45. package/dist/delivery.js +75 -28
  46. package/dist/delivery.js.map +1 -1
  47. package/dist/encounter/ceremony.d.ts +37 -0
  48. package/dist/encounter/ceremony.d.ts.map +1 -0
  49. package/dist/encounter/ceremony.js +662 -0
  50. package/dist/encounter/ceremony.js.map +1 -0
  51. package/dist/encounter.d.ts +91 -1
  52. package/dist/encounter.d.ts.map +1 -1
  53. package/dist/encounter.js +191 -12
  54. package/dist/encounter.js.map +1 -1
  55. package/dist/engine.d.ts +303 -0
  56. package/dist/engine.d.ts.map +1 -0
  57. package/dist/engine.js +1509 -0
  58. package/dist/engine.js.map +1 -0
  59. package/dist/entropy.d.ts +28 -0
  60. package/dist/entropy.d.ts.map +1 -0
  61. package/dist/entropy.js +96 -0
  62. package/dist/entropy.js.map +1 -0
  63. package/dist/events.d.ts +198 -0
  64. package/dist/events.d.ts.map +1 -0
  65. package/dist/events.js +2 -0
  66. package/dist/events.js.map +1 -0
  67. package/dist/fixtures.d.ts +30 -0
  68. package/dist/fixtures.d.ts.map +1 -0
  69. package/dist/fixtures.js +155 -0
  70. package/dist/fixtures.js.map +1 -0
  71. package/dist/forge.d.ts +47 -0
  72. package/dist/forge.d.ts.map +1 -0
  73. package/dist/forge.js +20 -0
  74. package/dist/forge.js.map +1 -0
  75. package/dist/group-star.d.ts +251 -0
  76. package/dist/group-star.d.ts.map +1 -0
  77. package/dist/group-star.js +348 -0
  78. package/dist/group-star.js.map +1 -0
  79. package/dist/holder-api.d.ts +165 -0
  80. package/dist/holder-api.d.ts.map +1 -0
  81. package/dist/holder-api.js +142 -0
  82. package/dist/holder-api.js.map +1 -0
  83. package/dist/holder-state-v1.d.ts +801 -0
  84. package/dist/holder-state-v1.d.ts.map +1 -0
  85. package/dist/holder-state-v1.js +2 -0
  86. package/dist/holder-state-v1.js.map +1 -0
  87. package/dist/holder-state-v2.d.ts +858 -0
  88. package/dist/holder-state-v2.d.ts.map +1 -0
  89. package/dist/holder-state-v2.js +2 -0
  90. package/dist/holder-state-v2.js.map +1 -0
  91. package/dist/identity-state.d.ts +43 -0
  92. package/dist/identity-state.d.ts.map +1 -0
  93. package/dist/identity-state.js +345 -0
  94. package/dist/identity-state.js.map +1 -0
  95. package/dist/identity.d.ts +24 -2
  96. package/dist/identity.d.ts.map +1 -1
  97. package/dist/identity.js +70 -11
  98. package/dist/identity.js.map +1 -1
  99. package/dist/index.d.ts +27 -1
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +81 -29
  102. package/dist/index.js.map +1 -1
  103. package/dist/internal.d.ts +37 -0
  104. package/dist/internal.d.ts.map +1 -0
  105. package/dist/internal.js +22 -0
  106. package/dist/internal.js.map +1 -0
  107. package/dist/introduction/holder.d.ts +18 -0
  108. package/dist/introduction/holder.d.ts.map +1 -0
  109. package/dist/introduction/holder.js +764 -0
  110. package/dist/introduction/holder.js.map +1 -0
  111. package/dist/introduction.d.ts +101 -0
  112. package/dist/introduction.d.ts.map +1 -0
  113. package/dist/introduction.js +132 -0
  114. package/dist/introduction.js.map +1 -0
  115. package/dist/invariants.d.ts +43 -0
  116. package/dist/invariants.d.ts.map +1 -0
  117. package/dist/invariants.js +953 -0
  118. package/dist/invariants.js.map +1 -0
  119. package/dist/keys-seed.d.ts +7 -0
  120. package/dist/keys-seed.d.ts.map +1 -0
  121. package/dist/keys-seed.js +133 -0
  122. package/dist/keys-seed.js.map +1 -0
  123. package/dist/log-memory.d.ts +12 -0
  124. package/dist/log-memory.d.ts.map +1 -0
  125. package/dist/log-memory.js +101 -0
  126. package/dist/log-memory.js.map +1 -0
  127. package/dist/membership/holder.d.ts +33 -0
  128. package/dist/membership/holder.d.ts.map +1 -0
  129. package/dist/membership/holder.js +929 -0
  130. package/dist/membership/holder.js.map +1 -0
  131. package/dist/membership.d.ts +123 -0
  132. package/dist/membership.d.ts.map +1 -0
  133. package/dist/membership.js +180 -0
  134. package/dist/membership.js.map +1 -0
  135. package/dist/message/holder.d.ts +49 -0
  136. package/dist/message/holder.d.ts.map +1 -0
  137. package/dist/message/holder.js +290 -0
  138. package/dist/message/holder.js.map +1 -0
  139. package/dist/message.d.ts +43 -0
  140. package/dist/message.d.ts.map +1 -0
  141. package/dist/message.js +51 -0
  142. package/dist/message.js.map +1 -0
  143. package/dist/ports.d.ts +237 -0
  144. package/dist/ports.d.ts.map +1 -0
  145. package/dist/ports.js +2 -0
  146. package/dist/ports.js.map +1 -0
  147. package/dist/profile.d.ts +56 -0
  148. package/dist/profile.d.ts.map +1 -0
  149. package/dist/profile.js +193 -0
  150. package/dist/profile.js.map +1 -0
  151. package/dist/prompts.d.ts +14 -0
  152. package/dist/prompts.d.ts.map +1 -0
  153. package/dist/prompts.js +69 -0
  154. package/dist/prompts.js.map +1 -0
  155. package/dist/receive.d.ts +134 -0
  156. package/dist/receive.d.ts.map +1 -0
  157. package/dist/receive.js +317 -0
  158. package/dist/receive.js.map +1 -0
  159. package/dist/results.d.ts +173 -0
  160. package/dist/results.d.ts.map +1 -0
  161. package/dist/results.js +21 -0
  162. package/dist/results.js.map +1 -0
  163. package/dist/schemas.d.ts.map +1 -1
  164. package/dist/schemas.js +45 -38
  165. package/dist/schemas.js.map +1 -1
  166. package/dist/sha256.d.ts +3 -0
  167. package/dist/sha256.d.ts.map +1 -0
  168. package/dist/sha256.js +69 -0
  169. package/dist/sha256.js.map +1 -0
  170. package/dist/star.d.ts +31 -0
  171. package/dist/star.d.ts.map +1 -0
  172. package/dist/star.js +56 -0
  173. package/dist/star.js.map +1 -0
  174. package/dist/state-builder.d.ts +42 -0
  175. package/dist/state-builder.d.ts.map +1 -0
  176. package/dist/state-builder.js +100 -0
  177. package/dist/state-builder.js.map +1 -0
  178. package/dist/state.d.ts +914 -0
  179. package/dist/state.d.ts.map +1 -0
  180. package/dist/state.js +37 -0
  181. package/dist/state.js.map +1 -0
  182. package/dist/store-contract.d.ts +11 -0
  183. package/dist/store-contract.d.ts.map +1 -0
  184. package/dist/store-contract.js +189 -0
  185. package/dist/store-contract.js.map +1 -0
  186. package/dist/store-memory.d.ts +8 -0
  187. package/dist/store-memory.d.ts.map +1 -0
  188. package/dist/store-memory.js +17 -0
  189. package/dist/store-memory.js.map +1 -0
  190. package/dist/testing.d.ts +22 -0
  191. package/dist/testing.d.ts.map +1 -0
  192. package/dist/testing.js +21 -0
  193. package/dist/testing.js.map +1 -0
  194. package/dist/trust/continuity.d.ts +71 -0
  195. package/dist/trust/continuity.d.ts.map +1 -0
  196. package/dist/trust/continuity.js +1222 -0
  197. package/dist/trust/continuity.js.map +1 -0
  198. package/dist/trust/duties.d.ts +67 -0
  199. package/dist/trust/duties.d.ts.map +1 -0
  200. package/dist/trust/duties.js +179 -0
  201. package/dist/trust/duties.js.map +1 -0
  202. package/dist/trust/entries.d.ts +139 -0
  203. package/dist/trust/entries.d.ts.map +1 -0
  204. package/dist/trust/entries.js +795 -0
  205. package/dist/trust/entries.js.map +1 -0
  206. package/dist/trust/group-star.d.ts +43 -0
  207. package/dist/trust/group-star.d.ts.map +1 -0
  208. package/dist/trust/group-star.js +188 -0
  209. package/dist/trust/group-star.js.map +1 -0
  210. package/dist/trust/mapping.d.ts +56 -0
  211. package/dist/trust/mapping.d.ts.map +1 -0
  212. package/dist/trust/mapping.js +584 -0
  213. package/dist/trust/mapping.js.map +1 -0
  214. package/dist/trust/profile.d.ts +25 -0
  215. package/dist/trust/profile.d.ts.map +1 -0
  216. package/dist/trust/profile.js +249 -0
  217. package/dist/trust/profile.js.map +1 -0
  218. package/dist/trust/star.d.ts +208 -0
  219. package/dist/trust/star.d.ts.map +1 -0
  220. package/dist/trust/star.js +588 -0
  221. package/dist/trust/star.js.map +1 -0
  222. package/dist/trust/state.d.ts +83 -0
  223. package/dist/trust/state.d.ts.map +1 -0
  224. package/dist/trust/state.js +154 -0
  225. package/dist/trust/state.js.map +1 -0
  226. package/dist/util-freeze.d.ts +3 -0
  227. package/dist/util-freeze.d.ts.map +1 -0
  228. package/dist/util-freeze.js +11 -0
  229. package/dist/util-freeze.js.map +1 -0
  230. package/dist/views.d.ts +179 -0
  231. package/dist/views.d.ts.map +1 -0
  232. package/dist/views.js +286 -0
  233. package/dist/views.js.map +1 -0
  234. package/dist/visibility.d.ts +5 -5
  235. package/dist/visibility.d.ts.map +1 -1
  236. package/dist/visibility.js +22 -28
  237. package/dist/visibility.js.map +1 -1
  238. package/dist/wire.d.ts +218 -83
  239. package/dist/wire.d.ts.map +1 -1
  240. package/dist/wire.js.map +1 -1
  241. package/package.json +60 -10
  242. package/schemas/holder-state-v1.schema.json +3880 -0
  243. package/schemas/holder-state-v2.schema.json +4123 -0
  244. package/dist/holder.d.ts.map +0 -1
  245. package/dist/holder.js.map +0 -1
  246. package/dist/probe/acks.d.ts +0 -27
  247. package/dist/probe/acks.d.ts.map +0 -1
  248. package/dist/probe/acks.js +0 -152
  249. package/dist/probe/acks.js.map +0 -1
  250. package/dist/probe/continuity.d.ts +0 -20
  251. package/dist/probe/continuity.d.ts.map +0 -1
  252. package/dist/probe/continuity.js +0 -805
  253. package/dist/probe/continuity.js.map +0 -1
  254. package/dist/probe/deps.d.ts +0 -61
  255. package/dist/probe/deps.d.ts.map +0 -1
  256. package/dist/probe/deps.js +0 -54
  257. package/dist/probe/deps.js.map +0 -1
  258. package/dist/probe/encounter.d.ts +0 -26
  259. package/dist/probe/encounter.d.ts.map +0 -1
  260. package/dist/probe/encounter.js +0 -938
  261. package/dist/probe/encounter.js.map +0 -1
  262. package/dist/probe/introduce.d.ts +0 -62
  263. package/dist/probe/introduce.d.ts.map +0 -1
  264. package/dist/probe/introduce.js +0 -306
  265. package/dist/probe/introduce.js.map +0 -1
  266. package/dist/probe/membership.d.ts +0 -96
  267. package/dist/probe/membership.d.ts.map +0 -1
  268. package/dist/probe/membership.js +0 -467
  269. package/dist/probe/membership.js.map +0 -1
  270. package/dist/probe/trust.d.ts +0 -156
  271. package/dist/probe/trust.d.ts.map +0 -1
  272. package/dist/probe/trust.js +0 -1233
  273. package/dist/probe/trust.js.map +0 -1
  274. package/dist/probe.d.ts +0 -7
  275. package/dist/probe.d.ts.map +0 -1
  276. package/dist/probe.js +0 -42
  277. package/dist/probe.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ack.js","sourceRoot":"","sources":["../src/ack.ts"],"names":[],"mappings":"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","sourcesContent":["// ack — the delivery acknowledgement's pure parts (Delivery §4.2, the\n// acknowledgement class rule of §4.4): the type, the deniable MAC form's\n// channel-keyed derivation, the MAC, and the context-free form checks of\n// a received ack. Used by the holder's receive core (engine.ts);\n// byte-compatible with vectors/delivery-ack.json\n// (lib/test/vectors4.test.mjs).\n//\n// k = HKDF-SHA-256(ikm = X25519(pairX_issuer, pairX_recipient),\n// salt = empty, info = \"rltp/v1/delivery/mac/ack/\"\n// || issuerPairAnchor || \"/\" || recipientPairAnchor,\n// 32 bytes; an all-zero shared secret is rejected)\n// proof = { mac: \"u\" + base64url(HMAC-SHA-256(k, JCS(document without proof))) }\n//\n// Deniable by construction: either party of the tuple derives k, so for a\n// designated-verifier payload the ack is evidence to its sender alone,\n// never an attestation (4.2). The key agreement itself is the caller's:\n// the holder asks its KeyProvider.\nimport { jcs, b64uOf, calOK, makeValidator } from './core.js'\nimport type { Json } from './core.js'\nimport { hkdf, platformSubtle } from './crypto.js'\nimport { SCHEMAS } from './schemas.js'\n\nconst te = new TextEncoder()\n\n/** The registered type of the acknowledgement (Delivery §4.2). */\nexport const ACK_TYPE = 'https://real-life.org/trust-tasks/delivery-ack/0.1'\n\n/** The ack document without its proof: the MAC preimage (4.2). */\nexport interface AckDocument {\n id: string\n type: typeof ACK_TYPE\n issuer: string\n recipient: string\n threadId: string\n issuedAt: string\n payload: { ref: string, meaning: 'received' }\n}\n\n/** The HKDF info of the channel ack key, issuer first (4.2). */\nexport const ackInfo = (issuerPairAnchor: string, recipientPairAnchor: string): string =>\n 'rltp/v1/delivery/mac/ack/' + issuerPairAnchor + '/' + recipientPairAnchor\n\n/** The channel ack key from the tuple's X25519 shared secret (4.2). */\nexport async function ackKeyOf (shared: Uint8Array, issuerPairAnchor: string, recipientPairAnchor: string, subtle?: SubtleCrypto): Promise<Uint8Array> {\n if (shared.every((b) => b === 0)) throw new Error('all-zero X25519 output')\n return hkdf(shared, ackInfo(issuerPairAnchor, recipientPairAnchor), 32, subtle)\n}\n\n/** \"u\" + base64url HMAC-SHA-256 over the JCS of `doc` under `key`. */\nexport async function ackMac (key: Uint8Array, doc: unknown, subtle?: SubtleCrypto): Promise<string> {\n const S = subtle ?? platformSubtle()\n const k = await S.importKey('raw', key, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'])\n return 'u' + b64uOf(new Uint8Array(await S.sign('HMAC', k, te.encode(jcs(doc)))))\n}\n\n/** The proof-less ack of `ref` on the acked document's thread (4.2):\n * issuer = the acked document's recipient, recipient = its issuer. */\nexport const ackDocument = (f: { id: string, issuer: string, recipient: string, threadId: string, issuedAt: string, ref: string }): AckDocument => ({\n id: f.id, type: ACK_TYPE, issuer: f.issuer, recipient: f.recipient, threadId: f.threadId, issuedAt: f.issuedAt,\n payload: { ref: f.ref, meaning: 'received' },\n})\n\n/** The deniable ack: `doc` with its MAC-form proof under the channel ack key. */\nexport async function macAck (doc: AckDocument, key: Uint8Array, subtle?: SubtleCrypto): Promise<AckDocument & { proof: { mac: string } }> {\n return { ...doc, proof: { mac: await ackMac(key, doc, subtle) } }\n}\n\nconst V = makeValidator(SCHEMAS)\nconst schemaOk = (file: string, data: unknown): boolean => V.validate(data, SCHEMAS[file], SCHEMAS[file]).length === 0\nconst ACK_FIELDS = new Set(['id', 'type', 'issuer', 'recipient', 'threadId', 'issuedAt', 'payload', 'proof', 'ceremony'])\n\n/** Where a received ack's form fails, by the stage of Delivery §6.2 that names it. */\nexport type AckFormFailure = { stage: 5 | 7, reason: 'malformed' } | { stage: 8, reason: 'validation-failed' }\n\n/**\n * The context-free checks of a received MAC-form ack, in stage order\n * (Delivery §6.2): 5 document profile (schema, closed form, calendar), 7\n * payload schema, 8 the class rule's proof form (exactly `{mac}`), no\n * enactment, `meaning`. What needs the arrival context stays the\n * caller's: recipient = own anchor (5), issuer = the tuple's counterpart,\n * `ref` = a document sent on that thread, and the MAC itself (8).\n */\nexport function macAckForm (doc: unknown): { ok: true, ref: string, threadId: string } | ({ ok: false } & AckFormFailure) {\n const d = doc as Record<string, any>\n if (!schemaOk('rltp-delivery-document.schema.json', d) || d?.type !== ACK_TYPE) return { ok: false, stage: 5, reason: 'malformed' }\n if (Object.keys(d).some((k) => !ACK_FIELDS.has(k)) || !calOK(d.issuedAt)) return { ok: false, stage: 5, reason: 'malformed' }\n if (!schemaOk('payload-delivery-ack.schema.json', d.payload)) return { ok: false, stage: 7, reason: 'malformed' }\n const p = d.proof as Record<string, Json> | undefined\n if (p === null || typeof p !== 'object' || Object.keys(p).length !== 1 || typeof p.mac !== 'string') return { ok: false, stage: 8, reason: 'validation-failed' }\n if (d.ceremony?.enactment !== undefined) return { ok: false, stage: 8, reason: 'validation-failed' }\n if (d.payload.meaning !== 'received') return { ok: false, stage: 8, reason: 'validation-failed' }\n return { ok: true, ref: d.payload.ref, threadId: d.threadId }\n}\n\n/**\n * The context-free checks of a received SIGNED ack (the class rule's\n * form for a signature-class payload, 4.2/4.4), in stage order: 5 the\n * document profile, 7 the payload schema, 8 the proof form (an\n * eddsa-jcs-2022 DataIntegrityProof, no `mac`, calendar-valid), no\n * enactment, `meaning`. The signature itself (under `issuer`) and the\n * consistency against what the holder sent stay the caller's.\n */\nexport function signedAckForm (doc: unknown): { ok: true, ref: string, threadId: string } | ({ ok: false } & AckFormFailure) {\n const d = doc as Record<string, any>\n if (!schemaOk('rltp-delivery-document.schema.json', d) || d?.type !== ACK_TYPE) return { ok: false, stage: 5, reason: 'malformed' }\n if (Object.keys(d).some((k) => !ACK_FIELDS.has(k)) || !calOK(d.issuedAt)) return { ok: false, stage: 5, reason: 'malformed' }\n if (!schemaOk('payload-delivery-ack.schema.json', d.payload)) return { ok: false, stage: 7, reason: 'malformed' }\n const p = d.proof as Record<string, Json> | undefined\n if (p === null || typeof p !== 'object' || p.mac !== undefined || p.type !== 'DataIntegrityProof' || p.cryptosuite !== 'eddsa-jcs-2022' || !calOK(p.created)) {\n return { ok: false, stage: 8, reason: 'validation-failed' }\n }\n if (d.ceremony?.enactment !== undefined) return { ok: false, stage: 8, reason: 'validation-failed' }\n if (d.payload.meaning !== 'received') return { ok: false, stage: 8, reason: 'validation-failed' }\n return { ok: true, ref: d.payload.ref, threadId: d.threadId }\n}\n\n/** The proof form a received ack carries: the MAC object, a signature, or neither. */\nexport const ackProofForm = (doc: unknown): 'mac' | 'signed' | null => {\n const p = (doc as { proof?: Record<string, unknown> } | null)?.proof\n if (p === null || typeof p !== 'object') return null\n return typeof p.mac === 'string' ? 'mac' : typeof p.proofValue === 'string' ? 'signed' : null\n}\n\n/** Does the ack's MAC verify under `key`? (4.2; over JCS of the document without proof) */\nexport async function macAckValid (doc: { proof?: { mac?: unknown } } & Record<string, unknown>, key: Uint8Array, subtle?: SubtleCrypto): Promise<boolean> {\n const { proof, ...rest } = doc\n return typeof proof?.mac === 'string' && (await ackMac(key, rest, subtle)) === proof.mac\n}\n"]}
@@ -0,0 +1,169 @@
1
+ import type { CarrierPrincipal, CarrierScopedIdentity } from '../carrier-identity.js';
2
+ import type { DeliveryReport, Outbound, ReceiverRefusalCode, SubmissionRef } from '../ports.js';
3
+ import type { ReceiveResult } from '../results.js';
4
+ export type { ReceiverRefusalCode } from '../ports.js';
5
+ export declare const DECLARED: Readonly<{
6
+ readonly giveUpHorizonMs: number;
7
+ readonly statusHorizonMs: 60000;
8
+ readonly queueFloorCount: 64;
9
+ readonly queueFloorBytes: 1048576;
10
+ readonly maxQueueBytes: 16777216;
11
+ readonly duplicateWindowMs: number;
12
+ }>;
13
+ export type WireErrorKind = 'unreachable' | 'refused-retriable' | 'refused-admission' | 'oversize';
14
+ export declare class WireError extends Error {
15
+ kind: WireErrorKind;
16
+ constructor(kind: WireErrorKind, message?: string);
17
+ }
18
+ export interface MediatorWire {
19
+ authChallenge(did: string): Promise<{
20
+ challenge: string;
21
+ sessionId: string;
22
+ }>;
23
+ authenticate(answer: {
24
+ did: string;
25
+ challenge: string;
26
+ sessionId: string;
27
+ }): Promise<TokenSet>;
28
+ refresh(refreshToken: string): Promise<TokenSet>;
29
+ keylistUpdate(accessToken: string, rkids: string[]): Promise<void>;
30
+ deposit(accessToken: string, bytes: Uint8Array, egressDid: string): Promise<void>;
31
+ ackReceived(accessToken: string, queueIds: string[]): Promise<void>;
32
+ onDeliver(cb: (bytes: Uint8Array) => Promise<void>): void;
33
+ /** Optional truthful connectivity signal; absent means unknown. */
34
+ offline?(): boolean;
35
+ }
36
+ export interface TokenSet {
37
+ accessToken: string;
38
+ accessExpiresAt: number;
39
+ refreshToken: string;
40
+ refreshExpiresAt: number;
41
+ }
42
+ export type SubmissionState = {
43
+ state: 'awaiting-transport';
44
+ reason: 'offline' | 'transport-unreachable' | 'carrier-refused-retriable';
45
+ } | {
46
+ state: 'accepted';
47
+ } | {
48
+ state: 'delivered';
49
+ late: boolean;
50
+ } | {
51
+ state: 'failed';
52
+ reason: 'unroutable' | 'oversize' | 'expired-by-adapter-policy';
53
+ } | {
54
+ state: 'failed';
55
+ reason: 'rejected-by-receiver';
56
+ code: ReceiverRefusalCode;
57
+ };
58
+ /** The ports' DeliveryReport for a document `digest` in adapter state `st`
59
+ * (Delivery §6.1): one-to-one, `late` and the refusal code carried over. */
60
+ export declare function deliveryReportOf(digest: string, st: SubmissionState): DeliveryReport;
61
+ /** Whether a receive outcome is terminal and its item may be concluded
62
+ * (Delivery 5a.8): every disposition but `failed(rate-limited)`, the one
63
+ * failure that is transient (RLTP-DEL-5820). An InfraError of the
64
+ * holder's store is transient as well (RLTP-DEL-5810): an item whose
65
+ * receive threw is kept, too. */
66
+ export declare function concludable(r: ReceiveResult): boolean;
67
+ export interface CollectedItem {
68
+ bytes: Uint8Array;
69
+ queueId: string;
70
+ }
71
+ export interface Collection {
72
+ id: string;
73
+ items: CollectedItem[];
74
+ }
75
+ /** Ack state for the host to persist (profile §4). Invariant: every
76
+ * pending id names a concluded entry; violations are refused at
77
+ * construction (fail-closed). */
78
+ export interface AckState {
79
+ concluded: Array<{
80
+ queueId: string;
81
+ concludedAt: number;
82
+ }>;
83
+ pending: string[];
84
+ }
85
+ export declare class MediatorCarrierAdapter {
86
+ #private;
87
+ get principal(): string;
88
+ get connectionDid(): string;
89
+ get egressDid(): string;
90
+ /** The only way to build an adapter: the trio is DERIVED here from
91
+ * one root, one carrier, one nonce — so principal, connection DID
92
+ * and egress identity cannot come from different relationships
93
+ * (R7-B2: the coupling is enforced by construction, not by
94
+ * inspecting caller-supplied identities). */
95
+ static create(rootIkm: Uint8Array, carrier: string, nonce: Uint8Array, wire: MediatorWire, restored?: AckState, restoredAt?: number): Promise<MediatorCarrierAdapter>;
96
+ constructor(key: symbol, principal: CarrierPrincipal, connection: CarrierScopedIdentity, egress: CarrierScopedIdentity, wire: MediatorWire, restored?: AckState, restoredAt?: number);
97
+ /** Records the desired keylist and returns; synchronization runs
98
+ * as a tracked background task and advance retries it until it
99
+ * lands (review-4 B1). */
100
+ register(rkids: string[], rawNow: number): void;
101
+ get keylistSynced(): boolean;
102
+ /** Returns the submission id synchronously. Before the first
103
+ * honest report exists, status() returns null — §6.1's own
104
+ * pre-report window, represented as absence, not as a value. */
105
+ submit(envelopeBytes: Uint8Array, rawNow: number): string;
106
+ /** Files an Outbound (its envelope as JCS bytes) and returns the
107
+ * SubmissionRef the holder's reports are keyed by: submission id ↔
108
+ * document digest (note §4.3). */
109
+ submitOutbound(outbound: Pick<Outbound, 'digest' | 'envelope'>, rawNow: number): SubmissionRef;
110
+ /** The current state as the ports' DeliveryReport for holder.report(),
111
+ * or null while no honest report exists (and for an unknown id). A
112
+ * submission filed without a digest (submit) has no report form. */
113
+ report(id: string): DeliveryReport | null;
114
+ has(id: string): boolean;
115
+ /** Host teardown aid, NOT a port operation (profile §6): awaits
116
+ * the in-flight background tasks so a host can drain before
117
+ * persisting ackState. On a hanging wire it waits as long as the
118
+ * wire does — a host bounds it externally (Promise.race) exactly
119
+ * because this library holds no clock of its own. */
120
+ settle(): Promise<void>;
121
+ /** The §6.1 report, or null while none exists yet (has()
122
+ * distinguishes an unknown id). status is a PORT: after close it
123
+ * refuses like every other port operation (R5-B3).
124
+ *
125
+ * The pre-transport report is an HONEST SNAPSHOT, derived at the
126
+ * moment of observation by one precedence order (Option B of the
127
+ * round-14 halt) — never a stored patchwork:
128
+ * (a) the wire knows itself offline → offline
129
+ * (b) an attempt is overdue → transport-unreachable
130
+ * (c) the last completed attempt's kind → its report
131
+ * (d) otherwise → no report yet (null)
132
+ * Terminal states and `accepted` are stored and stand. */
133
+ status(id: string): SubmissionState | null;
134
+ acknowledged(id: string): void;
135
+ /** Refusals act on live submissions only (§6.1 knows exactly one
136
+ * late correction — the valid ack). The code set is closed and
137
+ * TERMINAL: retryable counterpart conditions (unavailable,
138
+ * internalError) are transport outcomes, never receiver verdicts
139
+ * — they have no entry here, and an unknown code is refused
140
+ * fail-closed rather than minted into a verdict (R6-B2). */
141
+ receiverRefused(id: string, code: ReceiverRefusalCode): void;
142
+ drainTransitions(): Array<{
143
+ id: string;
144
+ to: 'delivered';
145
+ }>;
146
+ collect(rawNow: number): Collection;
147
+ /** Concludes a collection (profile §4, Delivery 5a.8): its items'
148
+ * digests become ack intent. `keep` names the items whose disposition
149
+ * is transient (Delivery RLTP-DEL-5810, 5820: `failed(rate-limited)`,
150
+ * or a transaction that could not commit, see `concludable`): they are
151
+ * not concluded and not acknowledged, they go back to the buffer and the
152
+ * next collect offers them again, and the mediator keeps its copy. */
153
+ conclude(collection: {
154
+ id: string;
155
+ }, rawNow: number, opts?: {
156
+ keep?: readonly string[];
157
+ }): void;
158
+ ackState(): AckState;
159
+ advance(rawNow: number): void;
160
+ /** §5a.10 lifecycle boundary: after close, every state port is
161
+ * inert — port operations refuse, inbound reports (acknowledged,
162
+ * receiverRefused) are no-ops, late wire resolutions mutate
163
+ * nothing. Only ackState() stays readable for the host's final
164
+ * persist. */
165
+ close(): void;
166
+ get closed(): boolean;
167
+ }
168
+ export declare const queueIdOf: (bytes: Uint8Array) => Promise<string>;
169
+ //# sourceMappingURL=vti-mediator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vti-mediator.d.ts","sourceRoot":"","sources":["../../src/adapters/vti-mediator.ts"],"names":[],"mappings":"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"}