@real-life/trust-protocol 0.4.0 → 0.6.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 (91) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/README.md +91 -24
  3. package/dist/adapters/vti-mediator.d.ts +36 -8
  4. package/dist/adapters/vti-mediator.d.ts.map +1 -1
  5. package/dist/adapters/vti-mediator.js +193 -29
  6. package/dist/adapters/vti-mediator.js.map +1 -1
  7. package/dist/codec.d.ts +2 -1
  8. package/dist/codec.d.ts.map +1 -1
  9. package/dist/codec.js +75 -26
  10. package/dist/codec.js.map +1 -1
  11. package/dist/engine.d.ts +77 -4
  12. package/dist/engine.d.ts.map +1 -1
  13. package/dist/engine.js +419 -31
  14. package/dist/engine.js.map +1 -1
  15. package/dist/entropy.d.ts +1 -1
  16. package/dist/entropy.d.ts.map +1 -1
  17. package/dist/entropy.js +1 -1
  18. package/dist/entropy.js.map +1 -1
  19. package/dist/events.d.ts +21 -0
  20. package/dist/events.d.ts.map +1 -1
  21. package/dist/events.js.map +1 -1
  22. package/dist/holder-api.d.ts +44 -2
  23. package/dist/holder-api.d.ts.map +1 -1
  24. package/dist/holder-api.js +40 -5
  25. package/dist/holder-api.js.map +1 -1
  26. package/dist/{holder-state-v1.d.ts → holder-state-v3.d.ts} +261 -201
  27. package/dist/holder-state-v3.d.ts.map +1 -0
  28. package/dist/holder-state-v3.js +2 -0
  29. package/dist/holder-state-v3.js.map +1 -0
  30. package/dist/index.d.ts +3 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +10 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/internal.d.ts +2 -2
  35. package/dist/internal.d.ts.map +1 -1
  36. package/dist/internal.js +1 -1
  37. package/dist/internal.js.map +1 -1
  38. package/dist/introduction/holder.d.ts.map +1 -1
  39. package/dist/introduction/holder.js +7 -0
  40. package/dist/introduction/holder.js.map +1 -1
  41. package/dist/invariants.d.ts.map +1 -1
  42. package/dist/invariants.js +70 -0
  43. package/dist/invariants.js.map +1 -1
  44. package/dist/membership/holder.d.ts +3 -5
  45. package/dist/membership/holder.d.ts.map +1 -1
  46. package/dist/membership/holder.js +165 -88
  47. package/dist/membership/holder.js.map +1 -1
  48. package/dist/membership.d.ts +31 -0
  49. package/dist/membership.d.ts.map +1 -1
  50. package/dist/membership.js +25 -2
  51. package/dist/membership.js.map +1 -1
  52. package/dist/message/holder.d.ts +49 -0
  53. package/dist/message/holder.d.ts.map +1 -0
  54. package/dist/message/holder.js +290 -0
  55. package/dist/message/holder.js.map +1 -0
  56. package/dist/message.d.ts +43 -0
  57. package/dist/message.d.ts.map +1 -0
  58. package/dist/message.js +51 -0
  59. package/dist/message.js.map +1 -0
  60. package/dist/receive.d.ts +4 -3
  61. package/dist/receive.d.ts.map +1 -1
  62. package/dist/receive.js +23 -4
  63. package/dist/receive.js.map +1 -1
  64. package/dist/results.d.ts +22 -3
  65. package/dist/results.d.ts.map +1 -1
  66. package/dist/results.js.map +1 -1
  67. package/dist/schemas.d.ts.map +1 -1
  68. package/dist/schemas.js +9 -6
  69. package/dist/schemas.js.map +1 -1
  70. package/dist/state.d.ts +88 -14
  71. package/dist/state.d.ts.map +1 -1
  72. package/dist/state.js +2 -1
  73. package/dist/state.js.map +1 -1
  74. package/dist/trust/continuity.d.ts.map +1 -1
  75. package/dist/trust/continuity.js +7 -1
  76. package/dist/trust/continuity.js.map +1 -1
  77. package/dist/trust/entries.d.ts.map +1 -1
  78. package/dist/trust/entries.js +103 -2
  79. package/dist/trust/entries.js.map +1 -1
  80. package/dist/views.d.ts +34 -2
  81. package/dist/views.d.ts.map +1 -1
  82. package/dist/views.js +19 -1
  83. package/dist/views.js.map +1 -1
  84. package/dist/wire.d.ts +47 -6
  85. package/dist/wire.d.ts.map +1 -1
  86. package/dist/wire.js.map +1 -1
  87. package/package.json +6 -4
  88. package/schemas/{holder-state-v1.schema.json → holder-state-v3.schema.json} +300 -12
  89. package/dist/holder-state-v1.d.ts.map +0 -1
  90. package/dist/holder-state-v1.js +0 -2
  91. package/dist/holder-state-v1.js.map +0 -1
package/dist/codec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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","sourcesContent":["// codec — the HolderState storage format (lib Stage 2, note §2.2).\n//\n// decodeState is the one way in: JSON purity, then the codec version, then\n// the pure migration chain vN → vN+1, each step running between two states\n// validated by their codec's own validator (hand-written; no schema engine\n// in the published library). The validators check shape and a few local\n// consistency rules; referential and domain invariants (active heads,\n// register monotony, matching revisions) are the engine's (invariants.ts).\n// An unknown or higher codec is refused, never read best-effort. Store\n// adapters keep bytes or JSON and never migrate themselves. Wire\n// versions and the codec are independent; a migration never re-issues\n// stored documents, outbound or acks.\n//\n// Codec 1 is the format of 0.4.0: its golden fixtures are\n// lib/test/fixtures/*.json (deterministic runs, test/fixtures/gen-state-v1.mjs),\n// decoded and re-encoded byte-identically by test/codec-fixture.test.mjs.\n// The rule: codec 1 is read; a newer codec is codec-newer; a codec without\n// a validator is codec-unknown. Every later codec adds its validator, a\n// migration from the one before, and its own fixture with a migration test.\nimport { jcs } from './core.js'\nimport type { Duty, HolderState, KnownDuty } from './state.js'\nimport type { HolderEventType } from './events.js'\n\n/** The codec this library writes. */\nexport const CODEC = 1\n\n/**\n * Migrations keyed by the codec they read: MIGRATIONS[n] maps a valid\n * codec-n state to a codec-(n+1) state. Pure, never async, never keys.\n */\nexport const MIGRATIONS: Readonly<Record<number, (state: any) => any>> = Object.freeze({})\n\n/** A codec's structural validator: throws StateCodecError('shape') or returns. */\nexport type StateValidator = (raw: unknown) => void\n\n/** One codec chain: the target codec, its migrations and a validator for\n * every codec from the oldest readable one up to the target. */\nexport interface CodecChain {\n codec: number\n migrations: Readonly<Record<number, (state: any) => any>>\n validators: Readonly<Record<number, StateValidator>>\n}\n\nexport type StateCodecErrorCode = 'not-json' | 'codec-unknown' | 'codec-newer' | 'shape'\n\n/** A stored state the library will not load (or a state it will not write). */\nexport class StateCodecError extends Error {\n readonly code: StateCodecErrorCode\n /** JSON path of the offending value, for 'shape' */\n readonly path?: string\n constructor (code: StateCodecErrorCode, message: string, path?: string) {\n super(path === undefined ? `${code}: ${message}` : `${code} at ${path}: ${message}`)\n this.name = 'StateCodecError'\n this.code = code\n if (path !== undefined) this.path = path\n }\n}\n\n// ── the validator kit ──────────────────────────────────────────────────\ntype V = (x: unknown, path: string) => void\n\nconst fail = (path: string, msg: string): never => { throw new StateCodecError('shape', msg, path) }\nconst isObj = (x: unknown): x is Record<string, unknown> => x !== null && typeof x === 'object' && !Array.isArray(x)\n\nconst str: V = (x, p) => { if (typeof x !== 'string') fail(p, 'string expected') }\nconst bool: V = (x, p) => { if (typeof x !== 'boolean') fail(p, 'boolean expected') }\nconst json: V = () => {} // JSON purity is checked once, up front\nconst dec: V = (x, p) => { if (typeof x !== 'string' || !/^(0|[1-9][0-9]{0,17})$/.test(x)) fail(p, 'canonical decimal string expected') }\nconst millis: V = (x, p) => { if (!Number.isSafeInteger(x) || (x as number) < 0) fail(p, 'non-negative integer milliseconds expected') }\nconst natural: V = (x, p) => { if (!Number.isSafeInteger(x) || (x as number) < 0) fail(p, 'non-negative integer expected') }\nconst positive: V = (x, p) => { if (!Number.isSafeInteger(x) || (x as number) < 1) fail(p, 'positive integer expected') }\nconst lit = (...vals: unknown[]): V => (x, p) => { if (!vals.includes(x)) fail(p, 'one of ' + vals.map((v) => JSON.stringify(v)).join(', ') + ' expected') }\nconst nullable = (v: V): V => (x, p) => { if (x !== null) v(x, p) }\nconst arr = (v: V): V => (x, p) => {\n if (!Array.isArray(x)) fail(p, 'array expected')\n ;(x as unknown[]).forEach((e, i) => v(e, `${p}[${i}]`))\n}\n/** an array used as a set: no duplicates */\nconst set = (v: V): V => (x, p) => {\n arr(v)(x, p)\n if (new Set((x as unknown[]).map((e) => jcs(e))).size !== (x as unknown[]).length) fail(p, 'duplicate set element')\n}\nconst rec = (v: V): V => (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n for (const [k, e] of Object.entries(x as Record<string, unknown>)) v(e, `${p}.${k}`)\n}\n/** a closed object: required fields, optional fields, nothing else */\nconst obj = (req: Record<string, V>, opt: Record<string, V> = {}): V => (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const o = x as Record<string, unknown>\n for (const k of Object.keys(req)) {\n if (!Object.hasOwn(o, k)) fail(`${p}.${k}`, 'missing')\n req[k](o[k], `${p}.${k}`)\n }\n for (const k of Object.keys(o)) {\n if (Object.hasOwn(req, k)) continue\n if (!Object.hasOwn(opt, k)) fail(`${p}.${k}`, 'unknown field')\n opt[k](o[k], `${p}.${k}`)\n }\n}\n/** a record whose values carry their own key in `idField` */\n/** a JSON object, contents open */\nconst anyObj: V = (x, p) => { if (!isObj(x)) fail(p, 'object expected') }\nconst keyed = (v: V, idField: string): V => (x, p) => {\n rec(v)(x, p)\n for (const [k, e] of Object.entries(x as Record<string, Record<string, unknown>>)) if (e[idField] !== k) fail(`${p}.${k}.${idField}`, 'must equal its key')\n}\n\n// ── the HolderState shape (state.ts) ───────────────────────────────────\nconst setting = lit('default', 'on', 'off')\nconst trustClass = lit('star', 'groupStar', 'anchorMapping', 'sealedGroupStar', 'profile')\nconst recipient = obj({ contactId: str, rkid: str, keyAgreement: str }, { anchor: str, via: str })\nconst envelope = obj({ rkid: str, epk: str, nonce: str, ciphertext: str })\nconst assembly = obj({ salt: dec, chunks: rec(json) })\nconst seqOutShape = (item: V): V => obj({\n lastSalt: dec, exhausted: bool, hwm: dec, snapshot: nullable(arr(item)), snapshotDigest: nullable(str),\n inflight: rec(obj({ view: arr(item), viewDigest: str, digests: arr(str), acked: arr(str) })),\n})\n/** the snapshot and its digest are present together */\nconst seqOut = (item: V): V => {\n const shape = seqOutShape(item)\n return (x, p) => {\n shape(x, p)\n const o = x as { snapshot: unknown, snapshotDigest: unknown }\n if ((o.snapshot === null) !== (o.snapshotDigest === null)) fail(`${p}.snapshotDigest`, 'null exactly when snapshot is')\n }\n}\nconst seqIn = (accepted: V): V => obj({ hwm: dec, lowerBound: dec, assembly: nullable(assembly), accepted: nullable(accepted) })\nconst starPair = obj({ member: str, head: str })\nconst groupStarItem: V = (x, p) => {\n if (isObj(x) && x.mode === 'sealed') return obj({ group: str, mode: str, member: str, memberOp: str })(x, p)\n obj({ group: str, mode: lit('digest') })(x, p)\n}\nconst starOut = seqOut(starPair)\nconst starIn = seqIn(obj({ salt: dec, blinded: arr(str), matches: arr(str) }))\nconst groupStarOut = seqOut(groupStarItem)\nconst groupStarIn = seqIn(obj({ salt: dec, entries: arr(obj({ d: str, c: str })), groups: arr(str) }))\nconst continuityDue: V = (x, p) => {\n if (isObj(x) && x.kind === 'choice') return obj({ kind: str, prior: str, alts: arr(str) })(x, p)\n obj({ kind: lit('report', 'align'), prior: str })(x, p)\n}\nconst logHead: V = (x, p) => {\n if (isObj(x) && Object.hasOwn(x, 'empty')) return obj({ genesis: str, empty: lit(true) })(x, p)\n obj({ genesis: str, entryId: str, gen: positive, next: str, commit: str })(x, p)\n}\n\nconst tuple = obj({\n ownPairLabel: str, counterpartAnchor: str, counterpartKeyAgreement: str, rkid: str, entryId: str,\n priorCandidates: arr(obj({ ownPairLabel: str, counterpartAnchor: str }, { replaces: arr(str) })),\n starOut, starIn, groupStarOut, groupStarIn,\n probeOut: obj({ seq: dec, inflight: rec(obj({ digests: arr(str), acked: arr(str) })), done: bool }),\n probeIn: obj({ hwm: dec, lowerBound: dec, assembly: nullable(assembly) }),\n continuityOut: obj({ rev: dec, body: json, proof: json, sent: arr(str), align: bool, chosen: nullable(str), reported: nullable(str), aligned: bool, due: nullable(continuityDue) }),\n continuityIn: obj({ rev: dec, body: json, recordPrior: nullable(str) }),\n mappingOut: obj({ rev: dec, body: json, underAnchor: nullable(str) }),\n mappingIn: obj({ rev: dec, body: json, self: nullable(str), card: json }),\n profileOut: obj({ rev: dec }),\n profileIn: obj({ rev: dec, body: json, verifiedSeq: dec }),\n deactivated: bool,\n})\n\nconst relationship = obj({\n id: str, contactId: str, tuples: arr(tuple), activeHead: str, earliestAnchor: nullable(str),\n links: arr(obj({ prev: str, next: str })), bindings: rec(set(str)), heldCounterpartHead: nullable(str),\n memory: rec(json), provenance: obj({ kind: lit('ceremony', 'introduced'), at: millis }, { via: str, viaPin: str }),\n chainedInto: nullable(str), firstVerified: nullable(dec),\n})\n\nconst contact = obj({\n id: str, pos: nullable(dec), status: lit('none', 'admitted', 'pending'), aliases: set(str), relIds: set(str),\n anchorHead: nullable(str),\n settings: obj({ star: setting, groupStar: setting, anchorMapping: setting, sealedGroupStar: setting, profile: setting }),\n groupSettings: rec(setting),\n})\n\nconst outboxStep: V = (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const s = x as Record<string, unknown>\n switch (s.status) {\n case 'submitted': return obj({ status: str, at: millis, attempt: positive })(x, p)\n case 'awaiting-transport': return obj({ status: str, at: millis, reason: lit('offline', 'transport-unreachable', 'carrier-refused-retriable') })(x, p)\n case 'accepted': return obj({ status: str, at: millis })(x, p)\n case 'delivered': return obj({ status: str, at: millis, late: bool })(x, p)\n case 'failed': return s.reason === 'rejected-by-receiver'\n ? obj({ status: str, at: millis, reason: str, code: lit('malformedRequest', 'unsupportedType', 'proofRequired', 'proofInvalid', 'wrongRecipient', 'identityMismatch') })(x, p)\n : obj({ status: str, at: millis, reason: lit('unroutable', 'oversize', 'expired-by-adapter-policy') })(x, p)\n default: fail(`${p}.status`, 'unknown outbox status')\n }\n}\n\nconst outboxShape = obj({\n type: str, threadId: str, recipient, envelope, attempt: positive, history: arr(outboxStep),\n}, { nextAttemptAt: millis })\n/** the envelope is sealed to the counterpart key, never to the own rkid */\nconst outboxItem: V = (x, p) => {\n outboxShape(x, p)\n const o = x as { recipient: { keyAgreement: string }, envelope: { rkid: string } }\n if (o.envelope.rkid !== o.recipient.keyAgreement) fail(`${p}.envelope.rkid`, 'must equal recipient.keyAgreement')\n}\n\nconst DUE = { dueAt: millis }\n/** a retained ack: sealed to the counterpart key, like an outbox item */\nconst storedAck: V = (x, p) => {\n obj({ digest: str, envelope, threadId: str, recipient, at: millis, attempt: positive, sent: bool }, { nextAttemptAt: millis, sentBy: lit('report', 'horizon') })(x, p)\n const a = x as { recipient: { keyAgreement: string }, envelope: { rkid: string } }\n if (a.envelope.rkid !== a.recipient.keyAgreement) fail(`${p}.envelope.rkid`, 'must equal recipient.keyAgreement')\n}\n\nconst KNOWN_DUTIES: Record<KnownDuty['kind'], { v: number, shape: V }> = {\n 'reissue-mapping': { v: 1, shape: obj({ kind: str, v: positive, id: str, contactId: str, relId: str, awaitHead: nullable(str) }, DUE) },\n 'class-on': { v: 1, shape: obj({ kind: str, v: positive, id: str, contactId: str, relId: str, cls: trustClass }, DUE) },\n profile: { v: 1, shape: obj({ kind: str, v: positive, id: str, contactId: str, relId: str, rev: dec }, DUE) },\n continuity: { v: 1, shape: obj({ kind: str, v: positive, id: str, relId: str, tuple: str, step: lit('probe', 'mapping') }, { ...DUE, attempt: natural, lastAt: millis }) },\n merge: { v: 1, shape: obj({ kind: str, v: positive, id: str, entryIds: set(str), relId: str, witness: obj({ heads: rec(str), superseded: rec(set(str)) }) }, DUE) },\n rotation: { v: 1, shape: obj({ kind: str, v: positive, id: str, rotationId: str }, { ...DUE, attempt: natural, lastAt: millis }) },\n 'intro-ack': { v: 1, shape: obj({ kind: str, v: positive, id: str, act: str }, DUE) },\n}\n\n/** Is this a duty kind and version this library handles? Unknown ones are kept as they are. */\nexport const isKnownDuty = (d: Duty): d is KnownDuty =>\n Object.hasOwn(KNOWN_DUTIES, d.kind) && KNOWN_DUTIES[d.kind as KnownDuty['kind']].v === d.v\n\nconst duty: V = (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const d = x as Record<string, unknown>\n str(d.kind, `${p}.kind`); natural(d.v, `${p}.v`); str(d.id, `${p}.id`)\n if (isKnownDuty(d as unknown as Duty)) KNOWN_DUTIES[d.kind as KnownDuty['kind']].shape(x, p)\n}\n\nconst EVENT_FIELDS: Record<HolderEventType, [Record<string, V>, Record<string, V>?]> = {\n 'contact.added': [{ contactId: str }],\n 'contact.verified': [{ contactId: str, relationshipId: str }],\n 'contact.chained': [{ contactId: str, from: str, into: str }],\n 'contact.merged': [{ contactId: str, merged: arr(str) }],\n 'contact.split': [{ contactId: str, leaver: str, relationshipId: str }],\n 'contact.departed': [{ contactId: str, relationshipIds: arr(str), removed: bool }],\n 'trust.given': [{ contactId: str }],\n 'trust.received': [{ contactId: str }],\n 'trust.paused': [{ contactId: str, paused: bool }],\n 'group.joined': [{ groupId: str }],\n 'prompt.opened': [{ promptId: str, kind: lit('encounter-confirm', 'group-invite', 'introduction') }],\n 'prompt.decided': [{ promptId: str, kind: lit('encounter-confirm', 'group-invite', 'introduction'), choice: lit('accept', 'decline') }],\n 'delivery.status': [{ digest: str, threadId: str, status: lit('submitted', 'accepted', 'delivered', 'failed') }, { late: bool }],\n 'profile.updated': [{ contactId: nullable(str) }],\n 'anchor.rotated': [{ generation: dec }],\n 'device.added': [{ name: str }],\n 'device.revoked': [{ name: str }],\n 'duty.unsupported': [{ dutyId: str, kind: str, v: natural }],\n 'star.accepted': [{ contactId: str, relationshipId: str, salt: dec }],\n 'groupStar.accepted': [{ contactId: str, relationshipId: str, salt: dec }],\n 'encounter.shown': [{ challenge: str, card: anyObj }],\n 'encounter.scanned': [{ contactId: str, card: anyObj }],\n 'encounter.recorded': [{ contactId: str, relationshipId: str, role: lit('scanner', 'displayer') }],\n 'encounter.accepted': [{ contactId: str, relationshipId: str, mutual: bool }],\n 'group.founded': [{ groupId: str }],\n 'group.admitted': [{ groupId: str, member: str }],\n 'group.vouched': [{ groupId: str, member: str }],\n}\nconst event: V = (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const t = (x as Record<string, unknown>).type\n if (typeof t !== 'string' || !Object.hasOwn(EVENT_FIELDS, t)) fail(`${p}.type`, 'unknown event type')\n const [req, opt = {}] = EVENT_FIELDS[t as HolderEventType]\n obj({ type: str, eventId: str, commitSeq: dec, ...req }, { actId: str, ...opt })(x, p)\n}\n\nconst rosterEntry = obj({ anchor: str, op: str, keyAgreement: str, addedAt: millis }, { name: str, contactId: str, rkid: str })\nconst openInvitation = obj({ invitee: str, keyAgreement: str, contactId: str, rkid: str, threadId: str, credDigest: str, invite: anyObj, validUntil: millis })\nconst evidence = obj({ invite: anyObj, accept: anyObj, vouches: arr(anyObj), at: millis })\nconst groupShape = obj({\n id: str, name: str, memberLabel: str, rules: obj({ vouchThreshold: dec }), listed: bool,\n roster: keyed(rosterEntry, 'anchor'), invitations: keyed(openInvitation, 'threadId'), evidence: rec(evidence),\n preludes: rec(obj({ contactId: str, rkid: str, at: millis })),\n}, { did: str, genesis: anyObj, memberAnchor: str, memberOp: str, acceptDigest: str })\n/** a listed group carries its member anchor and memberOp: the group star\n * seals them (Trust 5400, 5430), and their absence is no filler condition */\nconst group: V = (x, p) => {\n groupShape(x, p)\n const g = x as { listed: boolean, memberAnchor?: unknown, memberOp?: unknown }\n if (g.listed && g.memberAnchor === undefined) fail(`${p}.memberAnchor`, 'missing on a listed group')\n if (g.listed && g.memberOp === undefined) fail(`${p}.memberOp`, 'missing on a listed group')\n}\n\nconst heldCredential = obj({ digest: str, credential: anyObj })\nconst enactmentRecord = obj({\n ceremony: str, own: str, tCh: millis, peer: str, counterpart: str, card: anyObj, bind: str, at: millis, label: str, relId: str,\n role: lit('scanner', 'displayer'), out: nullable(heldCredential), in: nullable(heldCredential),\n thread: nullable(str), bundleDigest: nullable(str), threads: rec(str), sentCard: nullable(anyObj), counterPending: bool,\n})\n\nconst introAct = obj({\n key: str, act: str, role: lit('requester', 'mediator', 'target'),\n status: lit('sent', 'acked', 'completed', 'failed', 'received', 'forwarded', 'consented', 'refused'),\n issuedAt: millis, request: anyObj, requestCard: anyObj, reply: nullable(anyObj), replyCard: nullable(anyObj),\n pins: obj({}, { requester: str, target: str, mediator: str }), threads: obj({ request: str }, { forward: str }),\n at: millis, ackDelayMs: natural, ownLabel: nullable(str), ack: nullable(anyObj), replyForwarded: bool, vouchersSent: bool,\n pendingVoucher: nullable(anyObj), voucher: nullable(anyObj), vouched: bool, promptId: nullable(str),\n}, { peerName: str })\n\nconst codec1 = obj({\n codec: lit(1),\n commitSeq: dec,\n lastWhen: millis,\n register: obj({\n labels: set(str), pairNonces: rec(str),\n carriers: rec(arr(obj({ nonce: str, generation: dec }))),\n devices: obj({ names: set(str), revoked: set(str) }),\n community: nullable(obj({ genesis: str, head: dec })),\n lineage: arr(anyObj),\n }),\n addresses: obj({ keys: rec(obj({ label: str, lastShown: millis }, { retiredAt: millis })), tombstones: set(str) }),\n contacts: keyed(contact, 'id'),\n relationships: keyed(relationship, 'id'),\n entryOrder: obj({ nextPos: dec, heads: set(str) }),\n groups: keyed(group, 'id'),\n profile: obj({ body: json, revision: dec }),\n effects: rec(obj({ ack: nullable(storedAck), expiresAt: millis })),\n outbox: rec(outboxItem),\n duties: keyed(duty, 'id'),\n rotations: keyed(obj({\n id: str, from: dec, to: dec, step: lit('register', 'log', 'duties'), startedAt: millis,\n entry: json, overHead: logHead, awaitHead: rec(nullable(str)),\n }), 'id'),\n prompts: keyed(obj({ id: str, kind: lit('encounter-confirm', 'group-invite', 'introduction'), openedAt: millis }, { contactId: str, groupId: str, expiresAt: millis }), 'id'),\n acts: keyed(obj({ actId: str, inputHash: str, commitSeq: dec, outboundDigests: arr(str), events: arr(event), at: millis }), 'actId'),\n encounter: obj({\n challenges: keyed(obj({ value: str, tCh: millis, label: str, card: anyObj }), 'value'),\n records: keyed(enactmentRecord, 'own'),\n introductions: keyed(introAct, 'key'),\n offers: keyed(obj({ id: str, mediatorContactId: str, pin: str, target: str, at: millis }, { label: str }), 'id'),\n designators: rec(str),\n declarations: rec(obj({ issuer: str, role: str, revision: dec, constants: rec(str), at: millis })),\n }),\n joining: obj({\n preludes: rec(obj({ group: str, inviter: str, contactId: str, rkid: str, memberLabel: str, at: millis })),\n invites: keyed(obj({\n credDigest: str, group: str, name: str, contactId: str, rkid: str, memberLabel: str, invite: anyObj, promptId: str, validUntil: millis,\n status: lit('open', 'accepted', 'declined', 'joined'), at: millis,\n }, { acceptDigest: str }), 'credDigest'),\n }),\n})\n\n/** Structural validators per codec version; every readable codec has one. */\nexport const VALIDATORS: Readonly<Record<number, StateValidator>> = Object.freeze({\n 1: (raw: unknown) => codec1(raw, '$'),\n})\n\n// ── the codec ──────────────────────────────────────────────────────────\n\n/** Canonical JSON text of a JSON-pure value, or not-json. */\nconst canonical = (x: unknown): string => {\n try { return jcs(x) } catch (e) { throw new StateCodecError('not-json', (e as Error).message) }\n}\n\nconst validatorOf = (chain: CodecChain, c: number): StateValidator => {\n const v = chain.validators[c]\n if (!v) throw new StateCodecError('codec-unknown', `no validator for codec ${c}`)\n return v\n}\n\n/**\n * Decode under an explicit chain: JSON purity, codec gate, then\n * validate(c) → migrate(c) → validate(c+1) … up to chain.codec. Returns\n * an independent copy. decodeState is this function over the library's\n * own chain; tests drive it with fake chains.\n */\nexport function decodeChain (raw: unknown, chain: CodecChain): unknown {\n let x = raw\n if (typeof raw === 'string') {\n try { x = JSON.parse(raw) } catch (e) { throw new StateCodecError('not-json', (e as Error).message) }\n }\n let s = JSON.parse(canonical(x)) as unknown\n if (!isObj(s)) fail('$', 'object expected')\n const at = (s as { codec?: unknown }).codec\n if (!Number.isSafeInteger(at) || (at as number) < 0) throw new StateCodecError('codec-unknown', 'codec must be a non-negative integer')\n if ((at as number) > chain.codec) throw new StateCodecError('codec-newer', `codec ${at} is newer than ${chain.codec}`)\n validatorOf(chain, at as number)(s)\n for (let c = at as number; c < chain.codec; c++) {\n const up = chain.migrations[c]\n if (!up) throw new StateCodecError('codec-unknown', `no migration from codec ${c}`)\n s = JSON.parse(canonical(up(JSON.parse(canonical(s)))))\n if (!isObj(s) || s.codec !== c + 1) fail('$.codec', `migration ${c} must produce codec ${c + 1}`)\n validatorOf(chain, c + 1)(s)\n }\n return s\n}\n\nconst LIBRARY_CHAIN: CodecChain = { codec: CODEC, migrations: MIGRATIONS, validators: VALIDATORS }\n\n/**\n * Load a stored state: a JSON string or an already parsed value. Returns\n * an independent copy at the current codec, or throws StateCodecError.\n */\nexport function decodeState (raw: unknown): HolderState {\n return decodeChain(raw, LIBRARY_CHAIN) as HolderState\n}\n\n/** Serialize a state for storage: canonical JSON, validated first. */\nexport function encodeState (state: HolderState): string {\n const text = canonical(state)\n validatorOf(LIBRARY_CHAIN, CODEC)(JSON.parse(text))\n return text\n}\n\n/** Deterministic equality of two states (their JCS forms). */\nexport const sameState = (a: HolderState, b: HolderState): boolean => jcs(a) === jcs(b)\n"]}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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","sourcesContent":["// codec — the HolderState storage format (lib Stage 2, note §2.2).\n//\n// decodeState is the one way in: JSON purity, then the codec version, then\n// the pure migration chain vN → vN+1, each step running between two states\n// validated by their codec's own validator (hand-written; no schema engine\n// in the published library). The validators check shape and a few local\n// consistency rules; referential and domain invariants (active heads,\n// register monotony, matching revisions) are the engine's (invariants.ts).\n// An unknown or higher codec is refused, never read best-effort. Store\n// adapters keep bytes or JSON and never migrate themselves. Wire\n// versions and the codec are independent; a migration never re-issues\n// stored documents, outbound or acks.\n//\n// Codec 3 is the format of 0.6.0 and the only one this library reads\n// (Delivery 0.83: an acknowledgement is sent when a service took it, failed,\n// or its retries ended; it may be held by the adapter meanwhile, and it\n// carries the duplicates' answers). Codecs 1 and 2 (lib 0.4.0, 0.5.0) never\n// held the state of a rolled-out app, so they have neither validator nor\n// migration: a state of either is codec-unknown, a clean cut. Its fixtures\n// are lib/test/fixtures/state-v3*.json (deterministic runs,\n// test/fixtures/gen-state-v3.mjs, reproduced in npm test). The rule: a\n// newer codec is codec-newer, a codec without a validator codec-unknown.\n// A later codec that must read this one adds its validator, a migration\n// from codec 3, and its own fixture with a migration test.\nimport { jcs } from './core.js'\nimport type { Duty, HolderState, KnownDuty } from './state.js'\nimport type { HolderEventType } from './events.js'\n\n/** The codec this library writes. */\nexport const CODEC = 3\n\n/**\n * Migrations keyed by the codec they read: MIGRATIONS[n] maps a valid\n * codec-n state to a codec-(n+1) state. Pure, never async, never keys.\n * None today: codec 3 is the first codec a rolled-out app holds.\n */\nexport const MIGRATIONS: Readonly<Record<number, (state: any) => any>> = Object.freeze({})\n\n/** A codec's structural validator: throws StateCodecError('shape') or returns. */\nexport type StateValidator = (raw: unknown) => void\n\n/** One codec chain: the target codec, its migrations and a validator for\n * every codec from the oldest readable one up to the target. */\nexport interface CodecChain {\n codec: number\n migrations: Readonly<Record<number, (state: any) => any>>\n validators: Readonly<Record<number, StateValidator>>\n}\n\nexport type StateCodecErrorCode = 'not-json' | 'codec-unknown' | 'codec-newer' | 'shape'\n\n/** A stored state the library will not load (or a state it will not write). */\nexport class StateCodecError extends Error {\n readonly code: StateCodecErrorCode\n /** JSON path of the offending value, for 'shape' */\n readonly path?: string\n constructor (code: StateCodecErrorCode, message: string, path?: string) {\n super(path === undefined ? `${code}: ${message}` : `${code} at ${path}: ${message}`)\n this.name = 'StateCodecError'\n this.code = code\n if (path !== undefined) this.path = path\n }\n}\n\n// ── the validator kit ──────────────────────────────────────────────────\ntype V = (x: unknown, path: string) => void\n\nconst fail = (path: string, msg: string): never => { throw new StateCodecError('shape', msg, path) }\nconst isObj = (x: unknown): x is Record<string, unknown> => x !== null && typeof x === 'object' && !Array.isArray(x)\n\nconst str: V = (x, p) => { if (typeof x !== 'string') fail(p, 'string expected') }\nconst bool: V = (x, p) => { if (typeof x !== 'boolean') fail(p, 'boolean expected') }\nconst json: V = () => {} // JSON purity is checked once, up front\nconst dec: V = (x, p) => { if (typeof x !== 'string' || !/^(0|[1-9][0-9]{0,17})$/.test(x)) fail(p, 'canonical decimal string expected') }\nconst millis: V = (x, p) => { if (!Number.isSafeInteger(x) || (x as number) < 0) fail(p, 'non-negative integer milliseconds expected') }\nconst natural: V = (x, p) => { if (!Number.isSafeInteger(x) || (x as number) < 0) fail(p, 'non-negative integer expected') }\nconst positive: V = (x, p) => { if (!Number.isSafeInteger(x) || (x as number) < 1) fail(p, 'positive integer expected') }\nconst lit = (...vals: unknown[]): V => (x, p) => { if (!vals.includes(x)) fail(p, 'one of ' + vals.map((v) => JSON.stringify(v)).join(', ') + ' expected') }\nconst nullable = (v: V): V => (x, p) => { if (x !== null) v(x, p) }\nconst arr = (v: V): V => (x, p) => {\n if (!Array.isArray(x)) fail(p, 'array expected')\n ;(x as unknown[]).forEach((e, i) => v(e, `${p}[${i}]`))\n}\n/** an array used as a set: no duplicates */\nconst set = (v: V): V => (x, p) => {\n arr(v)(x, p)\n if (new Set((x as unknown[]).map((e) => jcs(e))).size !== (x as unknown[]).length) fail(p, 'duplicate set element')\n}\nconst rec = (v: V): V => (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n for (const [k, e] of Object.entries(x as Record<string, unknown>)) v(e, `${p}.${k}`)\n}\n/** a closed object: required fields, optional fields, nothing else */\nconst obj = (req: Record<string, V>, opt: Record<string, V> = {}): V => (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const o = x as Record<string, unknown>\n for (const k of Object.keys(req)) {\n if (!Object.hasOwn(o, k)) fail(`${p}.${k}`, 'missing')\n req[k](o[k], `${p}.${k}`)\n }\n for (const k of Object.keys(o)) {\n if (Object.hasOwn(req, k)) continue\n if (!Object.hasOwn(opt, k)) fail(`${p}.${k}`, 'unknown field')\n opt[k](o[k], `${p}.${k}`)\n }\n}\n/** a record whose values carry their own key in `idField` */\n/** a JSON object, contents open */\nconst anyObj: V = (x, p) => { if (!isObj(x)) fail(p, 'object expected') }\nconst keyed = (v: V, idField: string): V => (x, p) => {\n rec(v)(x, p)\n for (const [k, e] of Object.entries(x as Record<string, Record<string, unknown>>)) if (e[idField] !== k) fail(`${p}.${k}.${idField}`, 'must equal its key')\n}\n\n// ── the HolderState shape (state.ts) ───────────────────────────────────\nconst setting = lit('default', 'on', 'off')\nconst trustClass = lit('star', 'groupStar', 'anchorMapping', 'sealedGroupStar', 'profile')\nconst recipient = obj({ contactId: str, rkid: str, keyAgreement: str }, { anchor: str, via: str })\nconst envelope = obj({ rkid: str, epk: str, nonce: str, ciphertext: str })\nconst assembly = obj({ salt: dec, chunks: rec(json) })\nconst seqOutShape = (item: V): V => obj({\n lastSalt: dec, exhausted: bool, hwm: dec, snapshot: nullable(arr(item)), snapshotDigest: nullable(str),\n inflight: rec(obj({ view: arr(item), viewDigest: str, digests: arr(str), acked: arr(str) })),\n})\n/** the snapshot and its digest are present together */\nconst seqOut = (item: V): V => {\n const shape = seqOutShape(item)\n return (x, p) => {\n shape(x, p)\n const o = x as { snapshot: unknown, snapshotDigest: unknown }\n if ((o.snapshot === null) !== (o.snapshotDigest === null)) fail(`${p}.snapshotDigest`, 'null exactly when snapshot is')\n }\n}\nconst seqIn = (accepted: V): V => obj({ hwm: dec, lowerBound: dec, assembly: nullable(assembly), accepted: nullable(accepted) })\nconst starPair = obj({ member: str, head: str })\nconst groupStarItem: V = (x, p) => {\n if (isObj(x) && x.mode === 'sealed') return obj({ group: str, mode: str, member: str, memberOp: str })(x, p)\n obj({ group: str, mode: lit('digest') })(x, p)\n}\nconst starOut = seqOut(starPair)\nconst starIn = seqIn(obj({ salt: dec, blinded: arr(str), matches: arr(str) }))\nconst groupStarOut = seqOut(groupStarItem)\nconst groupStarIn = seqIn(obj({ salt: dec, entries: arr(obj({ d: str, c: str })), groups: arr(str) }))\nconst continuityDue: V = (x, p) => {\n if (isObj(x) && x.kind === 'choice') return obj({ kind: str, prior: str, alts: arr(str) })(x, p)\n obj({ kind: lit('report', 'align'), prior: str })(x, p)\n}\nconst logHead: V = (x, p) => {\n if (isObj(x) && Object.hasOwn(x, 'empty')) return obj({ genesis: str, empty: lit(true) })(x, p)\n obj({ genesis: str, entryId: str, gen: positive, next: str, commit: str })(x, p)\n}\n\nconst tuple = obj({\n ownPairLabel: str, counterpartAnchor: str, counterpartKeyAgreement: str, rkid: str, entryId: str,\n priorCandidates: arr(obj({ ownPairLabel: str, counterpartAnchor: str }, { replaces: arr(str) })),\n starOut, starIn, groupStarOut, groupStarIn,\n probeOut: obj({ seq: dec, inflight: rec(obj({ digests: arr(str), acked: arr(str) })), done: bool }),\n probeIn: obj({ hwm: dec, lowerBound: dec, assembly: nullable(assembly) }),\n continuityOut: obj({ rev: dec, body: json, proof: json, sent: arr(str), align: bool, chosen: nullable(str), reported: nullable(str), aligned: bool, due: nullable(continuityDue) }),\n continuityIn: obj({ rev: dec, body: json, recordPrior: nullable(str) }),\n mappingOut: obj({ rev: dec, body: json, underAnchor: nullable(str) }),\n mappingIn: obj({ rev: dec, body: json, self: nullable(str), card: json }),\n profileOut: obj({ rev: dec }),\n profileIn: obj({ rev: dec, body: json, verifiedSeq: dec }),\n deactivated: bool,\n})\n\nconst relationship = obj({\n id: str, contactId: str, tuples: arr(tuple), activeHead: str, earliestAnchor: nullable(str),\n links: arr(obj({ prev: str, next: str })), bindings: rec(set(str)), heldCounterpartHead: nullable(str),\n memory: rec(json), provenance: obj({ kind: lit('ceremony', 'introduced'), at: millis }, { via: str, viaPin: str }),\n chainedInto: nullable(str), firstVerified: nullable(dec),\n})\n\nconst contact = obj({\n id: str, pos: nullable(dec), status: lit('none', 'admitted', 'pending'), aliases: set(str), relIds: set(str),\n anchorHead: nullable(str),\n settings: obj({ star: setting, groupStar: setting, anchorMapping: setting, sealedGroupStar: setting, profile: setting }),\n groupSettings: rec(setting),\n})\n\n/** an outbox step */\nconst outboxStep: V = (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const s = x as Record<string, unknown>\n switch (s.status) {\n case 'submitted': return obj({ status: str, at: millis, attempt: positive })(x, p)\n case 'awaiting-transport': return obj({ status: str, at: millis, reason: lit('offline', 'transport-unreachable', 'carrier-refused-retriable') })(x, p)\n case 'accepted': return obj({ status: str, at: millis })(x, p)\n case 'delivered': return obj({ status: str, at: millis, late: bool })(x, p)\n case 'failed': return s.reason === 'rejected-by-receiver'\n ? obj({ status: str, at: millis, reason: str, code: lit('malformedRequest', 'unsupportedType', 'proofRequired', 'proofInvalid', 'wrongRecipient', 'identityMismatch') })(x, p)\n : obj({ status: str, at: millis, reason: lit('unroutable', 'oversize', 'expired-by-adapter-policy', 'task-expired') })(x, p)\n default: fail(`${p}.status`, 'unknown outbox status')\n }\n}\n\n/** an outbox item with its sender lifetime (expiresAt);\n * the envelope is sealed to the counterpart key, never to the own rkid */\nconst outboxItem: V = (() => {\n const shape = obj({\n type: str, threadId: str, recipient, envelope, attempt: positive, history: arr(outboxStep),\n }, { nextAttemptAt: millis, expiresAt: millis })\n return (x, p) => {\n shape(x, p)\n const o = x as { recipient: { keyAgreement: string }, envelope: { rkid: string } }\n if (o.envelope.rkid !== o.recipient.keyAgreement) fail(`${p}.envelope.rkid`, 'must equal recipient.keyAgreement')\n }\n})()\n\nconst DUE = { dueAt: millis }\n/** a retained ack: sealed to the counterpart key, like an outbox item */\n/** codec 3: sent exactly when it names why; held only while unsent */\nconst storedAck: V = (x, p) => {\n obj({ digest: str, envelope, threadId: str, recipient, at: millis, attempt: positive, sent: bool }, {\n nextAttemptAt: millis, sentBy: lit('accepted', 'failed', 'horizon'), held: lit('offline', 'transport-unreachable', 'carrier-refused-retriable'),\n answers: positive, answerDue: lit(true),\n })(x, p)\n const a = x as { recipient: { keyAgreement: string }, envelope: { rkid: string }, sent: boolean, sentBy?: string, held?: string, answers?: number, answerDue?: true }\n if (a.answerDue !== undefined && a.answers === undefined) fail(`${p}.answers`, 'present with answerDue')\n if (a.envelope.rkid !== a.recipient.keyAgreement) fail(`${p}.envelope.rkid`, 'must equal recipient.keyAgreement')\n if (a.sent !== (a.sentBy !== undefined)) fail(`${p}.sentBy`, 'present exactly when sent')\n if (a.sent && a.held !== undefined) fail(`${p}.held`, 'only while unsent')\n}\n\nconst KNOWN_DUTIES: Record<KnownDuty['kind'], { v: number, shape: V }> = {\n 'reissue-mapping': { v: 1, shape: obj({ kind: str, v: positive, id: str, contactId: str, relId: str, awaitHead: nullable(str) }, DUE) },\n 'class-on': { v: 1, shape: obj({ kind: str, v: positive, id: str, contactId: str, relId: str, cls: trustClass }, DUE) },\n profile: { v: 1, shape: obj({ kind: str, v: positive, id: str, contactId: str, relId: str, rev: dec }, DUE) },\n continuity: { v: 1, shape: obj({ kind: str, v: positive, id: str, relId: str, tuple: str, step: lit('probe', 'mapping') }, { ...DUE, attempt: natural, lastAt: millis }) },\n merge: { v: 1, shape: obj({ kind: str, v: positive, id: str, entryIds: set(str), relId: str, witness: obj({ heads: rec(str), superseded: rec(set(str)) }) }, DUE) },\n rotation: { v: 1, shape: obj({ kind: str, v: positive, id: str, rotationId: str }, { ...DUE, attempt: natural, lastAt: millis }) },\n 'intro-ack': { v: 1, shape: obj({ kind: str, v: positive, id: str, act: str }, DUE) },\n}\n\n/** Is this a duty kind and version this library handles? Unknown ones are kept as they are. */\nexport const isKnownDuty = (d: Duty): d is KnownDuty =>\n Object.hasOwn(KNOWN_DUTIES, d.kind) && KNOWN_DUTIES[d.kind as KnownDuty['kind']].v === d.v\n\nconst duty: V = (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const d = x as Record<string, unknown>\n str(d.kind, `${p}.kind`); natural(d.v, `${p}.v`); str(d.id, `${p}.id`)\n if (isKnownDuty(d as unknown as Duty)) KNOWN_DUTIES[d.kind as KnownDuty['kind']].shape(x, p)\n}\n\nconst EVENT_FIELDS: Record<HolderEventType, [Record<string, V>, Record<string, V>?]> = {\n 'contact.added': [{ contactId: str }],\n 'contact.verified': [{ contactId: str, relationshipId: str }],\n 'contact.chained': [{ contactId: str, from: str, into: str }],\n 'contact.merged': [{ contactId: str, merged: arr(str) }],\n 'contact.split': [{ contactId: str, leaver: str, relationshipId: str }],\n 'contact.departed': [{ contactId: str, relationshipIds: arr(str), removed: bool }],\n 'trust.given': [{ contactId: str }],\n 'trust.received': [{ contactId: str }],\n 'trust.paused': [{ contactId: str, paused: bool }],\n 'group.joined': [{ groupId: str }],\n 'prompt.opened': [{ promptId: str, kind: lit('encounter-confirm', 'group-invite', 'introduction') }],\n 'prompt.decided': [{ promptId: str, kind: lit('encounter-confirm', 'group-invite', 'introduction'), choice: lit('accept', 'decline') }],\n 'delivery.status': [{ digest: str, threadId: str, status: lit('submitted', 'accepted', 'delivered', 'failed') }, { late: bool }],\n 'profile.updated': [{ contactId: nullable(str) }],\n 'anchor.rotated': [{ generation: dec }],\n 'device.added': [{ name: str }],\n 'device.revoked': [{ name: str }],\n 'duty.unsupported': [{ dutyId: str, kind: str, v: natural }],\n 'star.accepted': [{ contactId: str, relationshipId: str, salt: dec }],\n 'groupStar.accepted': [{ contactId: str, relationshipId: str, salt: dec }],\n 'encounter.shown': [{ challenge: str, card: anyObj }],\n 'encounter.scanned': [{ contactId: str, card: anyObj }],\n 'encounter.recorded': [{ contactId: str, relationshipId: str, role: lit('scanner', 'displayer') }],\n 'encounter.accepted': [{ contactId: str, relationshipId: str, mutual: bool }],\n 'group.founded': [{ groupId: str }],\n 'group.admitted': [{ groupId: str, member: str }],\n 'group.vouched': [{ groupId: str, member: str }],\n 'contact.blocked': [{ contactId: str, blocked: bool }],\n 'message.sent': [{ contactId: str, mid: str, digest: str }],\n 'message.received': [{ contactId: str, inboxId: str }],\n}\n/** a journaled event of a type this library emits */\nconst event: V = (x, p) => {\n if (!isObj(x)) fail(p, 'object expected')\n const t = (x as Record<string, unknown>).type\n if (typeof t !== 'string' || !Object.hasOwn(EVENT_FIELDS, t) ) fail(`${p}.type`, 'unknown event type')\n const [req, opt = {}] = EVENT_FIELDS[t as HolderEventType]\n obj({ type: str, eventId: str, commitSeq: dec, ...req }, { actId: str, ...opt })(x, p)\n}\n\nconst rosterEntry = obj({ anchor: str, op: str, keyAgreement: str, addedAt: millis }, { name: str, contactId: str, rkid: str })\nconst openInvitation = obj({ invitee: str, keyAgreement: str, contactId: str, rkid: str, threadId: str, credDigest: str, invite: anyObj, validUntil: millis })\nconst evidence = obj({ invite: anyObj, accept: anyObj, vouches: arr(anyObj), at: millis })\nconst groupShape = obj({\n id: str, name: str, memberLabel: str, rules: obj({ vouchThreshold: dec }), listed: bool,\n roster: keyed(rosterEntry, 'anchor'), invitations: keyed(openInvitation, 'threadId'), evidence: rec(evidence),\n preludes: rec(obj({ contactId: str, rkid: str, at: millis })),\n}, { did: str, genesis: anyObj, memberAnchor: str, memberOp: str, acceptDigest: str })\n/** a listed group carries its member anchor and memberOp: the group star\n * seals them (Trust 5400, 5430), and their absence is no filler condition */\nconst group: V = (x, p) => {\n groupShape(x, p)\n const g = x as { listed: boolean, memberAnchor?: unknown, memberOp?: unknown }\n if (g.listed && g.memberAnchor === undefined) fail(`${p}.memberAnchor`, 'missing on a listed group')\n if (g.listed && g.memberOp === undefined) fail(`${p}.memberOp`, 'missing on a listed group')\n}\n\nconst heldCredential = obj({ digest: str, credential: anyObj })\nconst enactmentRecord = obj({\n ceremony: str, own: str, tCh: millis, peer: str, counterpart: str, card: anyObj, bind: str, at: millis, label: str, relId: str,\n role: lit('scanner', 'displayer'), out: nullable(heldCredential), in: nullable(heldCredential),\n thread: nullable(str), bundleDigest: nullable(str), threads: rec(str), sentCard: nullable(anyObj), counterPending: bool,\n})\n\nconst introAct = obj({\n key: str, act: str, role: lit('requester', 'mediator', 'target'),\n status: lit('sent', 'acked', 'completed', 'failed', 'received', 'forwarded', 'consented', 'refused'),\n issuedAt: millis, request: anyObj, requestCard: anyObj, reply: nullable(anyObj), replyCard: nullable(anyObj),\n pins: obj({}, { requester: str, target: str, mediator: str }), threads: obj({ request: str }, { forward: str }),\n at: millis, ackDelayMs: natural, ownLabel: nullable(str), ack: nullable(anyObj), replyForwarded: bool, vouchersSent: bool,\n pendingVoucher: nullable(anyObj), voucher: nullable(anyObj), vouched: bool, promptId: nullable(str),\n}, { peerName: str })\n\n/** a sorted set of strings */\nconst sortedSet: V = (x, p) => {\n set(str)(x, p)\n const a = x as string[]\n for (let i = 1; i < a.length; i++) if (!(a[i - 1] < a[i])) fail(`${p}[${i}]`, 'a sorted set expected')\n}\n\n/** an invitation received: attributed to a relationship (contactId and\n * rkid together) or to none (Membership RLTP-MT-3100) */\nconst receivedInvite: V = (x, p) => {\n obj({\n credDigest: str, group: str, name: str, memberLabel: str, invite: anyObj, promptId: str, validUntil: millis,\n status: lit('open', 'accepted', 'declined', 'joined'), at: millis,\n }, { acceptDigest: str, contactId: str, rkid: str })(x, p)\n const i = x as { contactId?: unknown, rkid?: unknown }\n if ((i.contactId === undefined) !== (i.rkid === undefined)) fail(`${p}.rkid`, 'present exactly with contactId')\n}\n\nconst codec3 = obj({\n codec: lit(3),\n commitSeq: dec,\n lastWhen: millis,\n register: obj({\n labels: set(str), pairNonces: rec(str),\n carriers: rec(arr(obj({ nonce: str, generation: dec }))),\n devices: obj({ names: set(str), revoked: set(str) }),\n community: nullable(obj({ genesis: str, head: dec })),\n lineage: arr(anyObj),\n }),\n addresses: obj({ keys: rec(obj({ label: str, lastShown: millis }, { retiredAt: millis })), tombstones: set(str) }),\n contacts: keyed(contact, 'id'),\n relationships: keyed(relationship, 'id'),\n entryOrder: obj({ nextPos: dec, heads: set(str) }),\n groups: keyed(group, 'id'),\n profile: obj({ body: json, revision: dec }),\n effects: rec(obj({ ack: nullable(storedAck), expiresAt: millis })),\n outbox: rec(outboxItem),\n duties: keyed(duty, 'id'),\n rotations: keyed(obj({\n id: str, from: dec, to: dec, step: lit('register', 'log', 'duties'), startedAt: millis,\n entry: json, overHead: logHead, awaitHead: rec(nullable(str)),\n }), 'id'),\n prompts: keyed(obj({ id: str, kind: lit('encounter-confirm', 'group-invite', 'introduction'), openedAt: millis }, { contactId: str, groupId: str, expiresAt: millis }), 'id'),\n acts: keyed(obj({ actId: str, inputHash: str, commitSeq: dec, outboundDigests: arr(str), events: arr(event), at: millis }), 'actId'),\n encounter: obj({\n challenges: keyed(obj({ value: str, tCh: millis, label: str, card: anyObj }), 'value'),\n records: keyed(enactmentRecord, 'own'),\n introductions: keyed(introAct, 'key'),\n offers: keyed(obj({ id: str, mediatorContactId: str, pin: str, target: str, at: millis }, { label: str }), 'id'),\n designators: rec(str),\n declarations: rec(obj({ issuer: str, role: str, revision: dec, constants: rec(str), at: millis })),\n }),\n joining: obj({\n preludes: rec(obj({ group: str, inviter: str, contactId: str, rkid: str, memberLabel: str, at: millis })),\n invites: keyed(receivedInvite, 'credDigest'),\n surfaced: sortedSet,\n declined: sortedSet,\n }),\n messages: obj({\n blocked: sortedSet,\n rates: rec(obj({ invites: arr(millis), messages: arr(millis) })),\n ready: sortedSet,\n records: rec(rec(obj({ bodyDigest: str, sentAt: millis }))),\n inbox: keyed(obj({ id: str, tuple: str, mid: str, body: anyObj, receivedAt: millis, displayAt: millis }), 'id'),\n }),\n})\n\n/** Structural validators per codec version; every readable codec has one. */\nexport const VALIDATORS: Readonly<Record<number, StateValidator>> = Object.freeze({\n 3: (raw: unknown) => codec3(raw, '$'),\n})\n\n// ── the codec ──────────────────────────────────────────────────────────\n\n/** Canonical JSON text of a JSON-pure value, or not-json. */\nconst canonical = (x: unknown): string => {\n try { return jcs(x) } catch (e) { throw new StateCodecError('not-json', (e as Error).message) }\n}\n\nconst validatorOf = (chain: CodecChain, c: number): StateValidator => {\n const v = chain.validators[c]\n if (!v) throw new StateCodecError('codec-unknown', `no validator for codec ${c}`)\n return v\n}\n\n/**\n * Decode under an explicit chain: JSON purity, codec gate, then\n * validate(c) → migrate(c) → validate(c+1) … up to chain.codec. Returns\n * an independent copy. decodeState is this function over the library's\n * own chain; tests drive it with fake chains.\n */\nexport function decodeChain (raw: unknown, chain: CodecChain): unknown {\n let x = raw\n if (typeof raw === 'string') {\n try { x = JSON.parse(raw) } catch (e) { throw new StateCodecError('not-json', (e as Error).message) }\n }\n let s = JSON.parse(canonical(x)) as unknown\n if (!isObj(s)) fail('$', 'object expected')\n const at = (s as { codec?: unknown }).codec\n if (!Number.isSafeInteger(at) || (at as number) < 0) throw new StateCodecError('codec-unknown', 'codec must be a non-negative integer')\n if ((at as number) > chain.codec) throw new StateCodecError('codec-newer', `codec ${at} is newer than ${chain.codec}`)\n validatorOf(chain, at as number)(s)\n for (let c = at as number; c < chain.codec; c++) {\n const up = chain.migrations[c]\n if (!up) throw new StateCodecError('codec-unknown', `no migration from codec ${c}`)\n s = JSON.parse(canonical(up(JSON.parse(canonical(s)))))\n if (!isObj(s) || s.codec !== c + 1) fail('$.codec', `migration ${c} must produce codec ${c + 1}`)\n validatorOf(chain, c + 1)(s)\n }\n return s\n}\n\nconst LIBRARY_CHAIN: CodecChain = { codec: CODEC, migrations: MIGRATIONS, validators: VALIDATORS }\n\n/**\n * Load a stored state: a JSON string or an already parsed value. Returns\n * an independent copy at the current codec, or throws StateCodecError.\n */\nexport function decodeState (raw: unknown): HolderState {\n return decodeChain(raw, LIBRARY_CHAIN) as HolderState\n}\n\n/** Serialize a state for storage: canonical JSON, validated first. */\nexport function encodeState (state: HolderState): string {\n const text = canonical(state)\n validatorOf(LIBRARY_CHAIN, CODEC)(JSON.parse(text))\n return text\n}\n\n/** Deterministic equality of two states (their JCS forms). */\nexport const sameState = (a: HolderState, b: HolderState): boolean => jcs(a) === jcs(b)\n"]}
package/dist/engine.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Dec, Duty, HolderState, Millis, Prompt, PromptChoice, PromptKind } from './state.js';
2
- import type { Access, DeliveryReport, KeyProvider, KeyRelease, Log, Outbound, RetryPolicy, Store } from './ports.js';
2
+ import type { Access, DeliveryReport, KeyProvider, KeyRelease, Log, Outbound, PreTransportReason, Recipient, RetryPolicy, Store } from './ports.js';
3
+ import type { Envelope } from './delivery.js';
3
4
  import type { HolderEvent } from './events.js';
4
5
  import type { ActError, ActResult, ReceiveResult, ResumeResult } from './results.js';
5
6
  import type { Entropy, PlatformRandom } from './entropy.js';
@@ -9,8 +10,13 @@ export type { Arrival, Channel, ReceivedDocument, TaskDiscarded, TaskFailure, Ta
9
10
  type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
10
11
  /** An event as a module emits it; the engine adds eventId, commitSeq, actId. */
11
12
  export type EventDraft = DistributiveOmit<HolderEvent, 'eventId' | 'commitSeq' | 'actId'>;
12
- /** A document as a module issues it; the engine sets attempt 1 and files it in the outbox. */
13
- export type OutboundDraft = Omit<Outbound, 'attempt'>;
13
+ /** A document as a module issues it; the engine sets attempt 1 and files
14
+ * it in the outbox. `expiresAt`: the sender lifetime its type declares
15
+ * (Delivery RLTP-DEL-7020), after which resume moves it to
16
+ * failed(task-expired) and never hands it out again (6110, 6115). */
17
+ export type OutboundDraft = Omit<Outbound, 'attempt'> & {
18
+ expiresAt?: Millis;
19
+ };
14
20
  /** What a WebCrypto handle must offer; resolved at construction. The
15
21
  * default entropy also needs getRandomValues and randomUUID from it. */
16
22
  export type CryptoHandle = {
@@ -205,7 +211,7 @@ export interface HolderModule {
205
211
  /** own rkids the module still needs although no live tuple carries
206
212
  * them: tick does not tombstone them. Trusted as registered, like
207
213
  * ownRetries: no check that the module has any claim to the keys */
208
- keepKeys?: (state: Readonly<HolderState>) => Iterable<string>;
214
+ keepKeys?: (state: Readonly<HolderState>, when: Millis) => Iterable<string>;
209
215
  /** the module's own retention, run by tick after the engine's: pure and
210
216
  * synchronous, returning the same state object where nothing goes */
211
217
  retain?: (state: Readonly<HolderState>, when: Millis) => HolderState;
@@ -215,6 +221,13 @@ export interface HolderModule {
215
221
  /** at most one handler per prompt kind across all modules; collected by
216
222
  * createHolder for the prompts module (prompts.ts) */
217
223
  decisions?: Partial<Record<PromptKind, DecisionHandler>>;
224
+ /** run in the stage-9 transaction of every document disposed `unique`
225
+ * (through a task handler, after it; or a verified delivery-ack, after
226
+ * its ack handler), on the state it left: pure and
227
+ * synchronous, returning the same object where nothing changes; it must
228
+ * not write the effect cache (the readiness of a tuple, Message Tasks
229
+ * 5.1) */
230
+ accepted?: (state: Readonly<HolderState>, doc: ReceivedDocument, arrival: Arrival) => HolderState;
218
231
  }
219
232
  /** The ports of a holder (note §3); retry fields fall back to ENGINE_DEFAULTS. */
220
233
  export interface EnginePorts {
@@ -270,6 +283,23 @@ export interface Engine {
270
283
  receive(env: unknown, when: Millis): Promise<ReceiveResult>;
271
284
  subscribe(listener: CommitListener): () => void;
272
285
  snapshot(): Promise<EngineSnapshot>;
286
+ /** what the holder keeps for transport at `when` (Delivery RLTP-DEL-6120):
287
+ * refused until a resume of this engine has completed */
288
+ pendingTransport(when: Millis): Promise<TransportView | TransportRefusal>;
289
+ /** whether `entry`, issued by this engine, may be handed over now: open,
290
+ * still pending in the store, its envelope unchanged, before notAfter */
291
+ mayHandOver(entry: TransportEntry, when: Millis): Promise<boolean>;
292
+ /** the hand-over itself: checks as mayHandOver, then calls `start` inside
293
+ * the engine's queue, so no operation of this engine runs between the
294
+ * check and the start of the deposit; `start` returns whether it started
295
+ * one (a resend entry's grant is used up then). Resolves to the check's
296
+ * verdict and `start`'s answer together; false when closed */
297
+ handOver(entry: TransportEntry, when: Millis, start: () => boolean): Promise<boolean>;
298
+ /** ends this engine: later operations reject with InfraError('closed');
299
+ * resolves once the operation running at the call has finished, after
300
+ * which this engine commits nothing more */
301
+ close(): Promise<void>;
302
+ readonly closed: boolean;
273
303
  }
274
304
  /** Defaults of the retry policy and the retention it implies. */
275
305
  export declare const ENGINE_DEFAULTS: Readonly<{
@@ -281,6 +311,49 @@ export declare const ENGINE_DEFAULTS: Readonly<{
281
311
  /** max(P90D, horizonMs) with the default horizon */
282
312
  retentionMs: number;
283
313
  }>;
314
+ /** One document the holder keeps for transport (Delivery RLTP-DEL-6120):
315
+ * issued by one engine's pendingTransport, deep-frozen; only that engine's
316
+ * mayHandOver accepts it, and only while it stays pending. */
317
+ export interface TransportEntry {
318
+ readonly digest: string;
319
+ /** an outbox document, or a stored acknowledgement */
320
+ readonly kind: 'document' | 'ack';
321
+ readonly envelope: Envelope;
322
+ readonly type: string;
323
+ readonly threadId: string;
324
+ readonly recipient: Recipient;
325
+ /** emissions on the holder's retry schedule so far */
326
+ readonly attempt: number;
327
+ /** the first submission as the holder recorded it (an ack: its effect's
328
+ * commit): an adapter's own horizon counts from here, never from when
329
+ * it took the entry over (Delivery RLTP-DEL-6130) */
330
+ readonly since: Millis;
331
+ /** the send deadline: from then on it is given up (or, an ack, no longer
332
+ * offered) and never handed over again */
333
+ readonly notAfter: Millis;
334
+ /** when the holder's retry schedule next re-offers it (absent: due, or held) */
335
+ readonly nextAttemptAt?: Millis;
336
+ /** the adapter's last report on it was awaiting-transport */
337
+ readonly held?: PreTransportReason;
338
+ /** a duplicate's answer due (Delivery RLTP-DEL-6330, 6335), beside the
339
+ * ack's retries: its number (StoredAck.answers), its deadline the
340
+ * effect's retention; its begun hand-over ends it */
341
+ readonly resend?: number;
342
+ }
343
+ /** pendingTransport's answer: the set at `at` — the `when` asked for, or
344
+ * the holder's lastWhen if that is later — and the commit it was read at. */
345
+ export interface TransportView {
346
+ readonly ok: true;
347
+ readonly commitSeq: Dec;
348
+ readonly at: Millis;
349
+ readonly entries: readonly TransportEntry[];
350
+ }
351
+ /** pendingTransport refuses until a resume of this engine has completed:
352
+ * the transitions due at the opening come first (RLTP-DEL-6130, 6135). */
353
+ export interface TransportRefusal {
354
+ readonly ok: false;
355
+ readonly code: 'not-resumed';
356
+ }
284
357
  /**
285
358
  * Build an engine over the ports and modules: resolves and probes
286
359
  * WebCrypto, freezes the registries (duplicate command names, task URIs
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}