@interop/wallet-core 0.85.0 → 0.87.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 (122) hide show
  1. package/dist/ceremonyEvents.d.ts +116 -0
  2. package/dist/ceremonyEvents.d.ts.map +1 -0
  3. package/dist/ceremonyEvents.js +282 -0
  4. package/dist/ceremonyEvents.js.map +1 -0
  5. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +17 -1
  6. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  7. package/dist/clientAnnex/credentialAnchoredGenesis.js +45 -3
  8. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  9. package/dist/clientAnnex/establish.d.ts +22 -0
  10. package/dist/clientAnnex/establish.d.ts.map +1 -1
  11. package/dist/clientAnnex/establish.js +67 -7
  12. package/dist/clientAnnex/establish.js.map +1 -1
  13. package/dist/clientAnnex/forget.d.ts +35 -2
  14. package/dist/clientAnnex/forget.d.ts.map +1 -1
  15. package/dist/clientAnnex/forget.js +85 -8
  16. package/dist/clientAnnex/forget.js.map +1 -1
  17. package/dist/clientAnnex/forgetLast.d.ts +26 -2
  18. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  19. package/dist/clientAnnex/forgetLast.js +82 -2
  20. package/dist/clientAnnex/forgetLast.js.map +1 -1
  21. package/dist/clientAnnex/index.d.ts +6 -5
  22. package/dist/clientAnnex/index.d.ts.map +1 -1
  23. package/dist/clientAnnex/index.js +3 -3
  24. package/dist/clientAnnex/index.js.map +1 -1
  25. package/dist/clientAnnex/ladderAnchored.d.ts +7 -4
  26. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  27. package/dist/clientAnnex/ladderAnchored.js +11 -5
  28. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  29. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  30. package/dist/clientAnnex/recoveryLadderAnchored.js +15 -4
  31. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  32. package/dist/clientAnnex/selfEnroll.d.ts +23 -1
  33. package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
  34. package/dist/clientAnnex/selfEnroll.js +45 -1
  35. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  36. package/dist/clients/index.d.ts +2 -2
  37. package/dist/clients/index.d.ts.map +1 -1
  38. package/dist/clients/index.js +1 -1
  39. package/dist/clients/index.js.map +1 -1
  40. package/dist/clients/revocation.d.ts +20 -1
  41. package/dist/clients/revocation.d.ts.map +1 -1
  42. package/dist/clients/revocation.js +76 -1
  43. package/dist/clients/revocation.js.map +1 -1
  44. package/dist/enrollment/enrollment.d.ts +23 -2
  45. package/dist/enrollment/enrollment.d.ts.map +1 -1
  46. package/dist/enrollment/enrollment.js +75 -4
  47. package/dist/enrollment/enrollment.js.map +1 -1
  48. package/dist/enrollment/index.d.ts +2 -2
  49. package/dist/enrollment/index.d.ts.map +1 -1
  50. package/dist/enrollment/index.js +1 -1
  51. package/dist/enrollment/index.js.map +1 -1
  52. package/dist/enrollment/onboardingResponse.d.ts +26 -5
  53. package/dist/enrollment/onboardingResponse.d.ts.map +1 -1
  54. package/dist/enrollment/onboardingResponse.js +2 -14
  55. package/dist/enrollment/onboardingResponse.js.map +1 -1
  56. package/dist/errorName.d.ts +19 -0
  57. package/dist/errorName.d.ts.map +1 -0
  58. package/dist/errorName.js +27 -0
  59. package/dist/errorName.js.map +1 -0
  60. package/dist/genesis/accountGenesis.d.ts +27 -1
  61. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  62. package/dist/genesis/accountGenesis.js +60 -2
  63. package/dist/genesis/accountGenesis.js.map +1 -1
  64. package/dist/genesis/index.d.ts +2 -2
  65. package/dist/genesis/index.d.ts.map +1 -1
  66. package/dist/genesis/index.js +1 -1
  67. package/dist/genesis/index.js.map +1 -1
  68. package/dist/index.d.ts +8 -0
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +7 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/labelText.d.ts +24 -0
  73. package/dist/labelText.d.ts.map +1 -0
  74. package/dist/labelText.js +26 -0
  75. package/dist/labelText.js.map +1 -0
  76. package/dist/log.d.ts +6 -4
  77. package/dist/log.d.ts.map +1 -1
  78. package/dist/log.js +8 -5
  79. package/dist/log.js.map +1 -1
  80. package/dist/menders/ids.d.ts +4 -1
  81. package/dist/menders/ids.d.ts.map +1 -1
  82. package/dist/menders/ids.js +4 -1
  83. package/dist/menders/ids.js.map +1 -1
  84. package/dist/menders/index.d.ts +2 -1
  85. package/dist/menders/index.d.ts.map +1 -1
  86. package/dist/menders/index.js +2 -1
  87. package/dist/menders/index.js.map +1 -1
  88. package/dist/menders/runner.d.ts +5 -24
  89. package/dist/menders/runner.d.ts.map +1 -1
  90. package/dist/menders/runner.js +25 -18
  91. package/dist/menders/runner.js.map +1 -1
  92. package/dist/menders/vocabulary.d.ts +3 -1
  93. package/dist/menders/vocabulary.d.ts.map +1 -1
  94. package/dist/menders/vocabulary.js +3 -1
  95. package/dist/menders/vocabulary.js.map +1 -1
  96. package/dist/recovery/continuation.d.ts +40 -1
  97. package/dist/recovery/continuation.d.ts.map +1 -1
  98. package/dist/recovery/continuation.js +48 -1
  99. package/dist/recovery/continuation.js.map +1 -1
  100. package/dist/recovery/index.d.ts +2 -2
  101. package/dist/recovery/index.d.ts.map +1 -1
  102. package/dist/recovery/index.js +1 -1
  103. package/dist/recovery/index.js.map +1 -1
  104. package/dist/recovery/recoveryWebvh.d.ts +21 -2
  105. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  106. package/dist/recovery/recoveryWebvh.js +88 -31
  107. package/dist/recovery/recoveryWebvh.js.map +1 -1
  108. package/dist/space/ceremony.d.ts +11 -5
  109. package/dist/space/ceremony.d.ts.map +1 -1
  110. package/dist/space/ceremony.js +15 -5
  111. package/dist/space/ceremony.js.map +1 -1
  112. package/dist/space/index.d.ts +2 -2
  113. package/dist/space/index.js +2 -2
  114. package/dist/unlock/index.d.ts +2 -2
  115. package/dist/unlock/index.d.ts.map +1 -1
  116. package/dist/unlock/index.js +1 -1
  117. package/dist/unlock/index.js.map +1 -1
  118. package/dist/unlock/retire.d.ts +21 -1
  119. package/dist/unlock/retire.d.ts.map +1 -1
  120. package/dist/unlock/retire.js +79 -1
  121. package/dist/unlock/retire.js.map +1 -1
  122. package/package.json +3 -3
@@ -8,6 +8,30 @@ import { mintClientWebvhUpdateKeys, updateKeyMultibase } from '../webvh/didWebvh
8
8
  import { verifyAccountLog } from '../webvh/verifyLog.js';
9
9
  import { clientSigningKeyMultibase, isWebvhDid, webvhZcapClient } from '../webvh/zcap.js';
10
10
  import { assertBuiltOnHeadShape, selfEnrollWebvhClient } from './ladderAnchored.js';
11
+ import { ceremonyEvents } from '../ceremonyEvents.js';
12
+ import { log } from '../log.js';
13
+ /**
14
+ * The stages the self-enrollment reports on the ceremony event channel, in
15
+ * the order they land: the account-log continuation (the reveal-and-commit
16
+ * and add entries; `prior: true` when a torn earlier run had already
17
+ * published the add entry), the local verify of the continued log, the first
18
+ * roster read, and the new client's roster escrow.
19
+ */
20
+ export const SELF_ENROLLMENT_EVENT_STAGES = [
21
+ 'account-log-continuation',
22
+ 'account-log-verify',
23
+ 'roster-read',
24
+ 'roster-escrow'
25
+ ];
26
+ /**
27
+ * The self-enrollment's typed refusals, matched by `err.name`: a resume whose
28
+ * recorded head the served log never reached, and an account document that
29
+ * no longer anchors this credential's ladder. Both fire before the pivot.
30
+ */
31
+ const SELF_ENROLLMENT_REFUSALS = [
32
+ 'BuiltOnHeadNotReachedError',
33
+ 'LadderAttributionError'
34
+ ];
11
35
  /**
12
36
  * Runs the whole self-enrollment described in the module doc. The caller has
13
37
  * already unwrapped the credential's unlock record (so it holds the
@@ -73,7 +97,21 @@ import { assertBuiltOnHeadShape, selfEnrollWebvhClient } from './ladderAnchored.
73
97
  * cleared. The member exists so a build skew that dropped it surfaces
74
98
  * instead of reading as `false`
75
99
  */
76
- export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyAgreementKey, logStore, onCommitted, resume, serviceDescription }) {
100
+ export async function selfEnrollClientCore(options) {
101
+ const events = ceremonyEvents({
102
+ ceremony: 'self-enrollment',
103
+ log,
104
+ refusals: SELF_ENROLLMENT_REFUSALS
105
+ });
106
+ return events.run(() => selfEnrollClientBody({ ...options, events }));
107
+ }
108
+ /**
109
+ * The body of {@link selfEnrollClientCore}, one run under its event emitter.
110
+ *
111
+ * @param options {object} see {@link selfEnrollClientCore}, plus `events`
112
+ * @returns {Promise<object>} see {@link selfEnrollClientCore}
113
+ */
114
+ async function selfEnrollClientBody({ pointer, ladderSeed, credentialKeyAgreementKey, logStore, onCommitted, resume, serviceDescription, events }) {
77
115
  // Refused before any read, on the ceremony's own rule: without the seam the
78
116
  // pivot entry can publish a client whose seed nothing persisted.
79
117
  if (typeof onCommitted !== 'function') {
@@ -137,6 +175,9 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
137
175
  ...(resume ? { builtOnHead: resume.builtOnHead } : {}),
138
176
  expectedDid
139
177
  });
178
+ events.stage('account-log-continuation', {
179
+ ...(enrolled.committed ? {} : { prior: true })
180
+ });
140
181
  // Verify the continuation from the world-readable log -- the same
141
182
  // first-contact read an enrollee's completion runs, and the controller the
142
183
  // roster log's entry proofs are checked against.
@@ -149,6 +190,7 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
149
190
  // own pin is handed to it explicitly.
150
191
  pinStore: logStore.pin.store
151
192
  });
193
+ events.stage('account-log-verify');
152
194
  // The first roster read: signed with the `<did:webvh>#<multibase>` keyId
153
195
  // the add entry just published, unwrapping the user key from the
154
196
  // CREDENTIAL's standing wrap. First contact: the chain-head pin this read
@@ -172,6 +214,7 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
172
214
  throw new Error('The account has no user key roster; it must finish provisioning ' +
173
215
  'before a client can self-enroll.');
174
216
  }
217
+ events.stage('roster-read');
175
218
  // Escrow the new client into the roster as its own recipient, so later
176
219
  // logins on this browser read the roster the ordinary enrolled way.
177
220
  // Idempotent: a wrap already standing is returned as-is.
@@ -186,6 +229,7 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
186
229
  },
187
230
  ownerKeyAgreementKey: credentialKeyAgreementKey
188
231
  });
232
+ events.stage('roster-escrow');
189
233
  return {
190
234
  clientSeed,
191
235
  webvhUpdateKeys,
@@ -1 +1 @@
1
- {"version":3,"file":"selfEnroll.js","sourceRoot":"","sources":["../../src/clientAnnex/selfEnroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfEnroll.js","sourceRoot":"","sources":["../../src/clientAnnex/selfEnroll.ts"],"names":[],"mappings":"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"}
@@ -39,8 +39,8 @@ export { deriveGrantSignerState } from './grantState.js';
39
39
  export type { GrantSignerState } from './grantState.js';
40
40
  export { cascadeCompletion, disconnectEligibility, revokedClientKeysFor } from './policy.js';
41
41
  export type { DisconnectRefusal } from './policy.js';
42
- export { revokeAccountClient } from './revocation.js';
43
- export type { CascadeCollections, ClientRevocationResult, GenerationDelegationRemint, RosterSealReport } from './revocation.js';
42
+ export { CLIENT_REVOCATION_STAGES, revokeAccountClient } from './revocation.js';
43
+ export type { ClientRevocationStage, CascadeCollections, ClientRevocationResult, GenerationDelegationRemint, RosterSealReport } from './revocation.js';
44
44
  export { checkUserKeyRosterAtLogin, convergeUserKeyRosterToAccount } from './rosterPolicy.js';
45
45
  export type { AdoptedUserKey } from './rosterPolicy.js';
46
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC/E,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
@@ -36,6 +36,6 @@
36
36
  export { currentAccountRecordSigners, currentAccountSigningKeys, listAccountClients } from './listing.js';
37
37
  export { deriveGrantSignerState } from './grantState.js';
38
38
  export { cascadeCompletion, disconnectEligibility, revokedClientKeysFor } from './policy.js';
39
- export { revokeAccountClient } from './revocation.js';
39
+ export { CLIENT_REVOCATION_STAGES, revokeAccountClient } from './revocation.js';
40
40
  export { checkUserKeyRosterAtLogin, convergeUserKeyRosterToAccount } from './rosterPolicy.js';
41
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAOrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAQrD,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAOrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAS/E,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA"}
@@ -76,6 +76,7 @@ import type { CollectionEncryption } from '@interop/was-client';
76
76
  import type { EncryptionDescriptorStore } from '@interop/was-client/edv/core';
77
77
  import { type AccountLogSigner, type PublishedKeyDocument, type RevokedClientKeys, type WebvhIdStore } from '../webvh/index.js';
78
78
  import { type CascadeCollections, type RosterSealReport, type UserKey, type UserKeyCascadeResult } from '../keys/index.js';
79
+ import { type CeremonyEmitter } from '../ceremonyEvents.js';
79
80
  export type { CascadeCollections, RosterSealReport };
80
81
  /**
81
82
  * What the generation-delegation re-mint stage reports: whether an annex
@@ -90,6 +91,19 @@ export interface GenerationDelegationRemint {
90
91
  renewed: boolean;
91
92
  skipped?: 'no-pointer' | 'no-ladder-seed' | 'failed';
92
93
  }
94
+ /**
95
+ * The stages the revocation cascade reports on the ceremony event channel,
96
+ * in the order they land: the document edit, the roster rotation and the
97
+ * collection fan-out (when the account has a roster, the fan-out only when
98
+ * every collection converged), and the generation-delegation re-mint (when
99
+ * the closure ran and was not skipped). A stage that found its work already
100
+ * done carries `prior: true`.
101
+ */
102
+ export declare const CLIENT_REVOCATION_STAGES: readonly ["document-edit", "roster-rotation", "collection-epochs", "generation-remint"];
103
+ /**
104
+ * One value of {@link CLIENT_REVOCATION_STAGES}.
105
+ */
106
+ export type ClientRevocationStage = (typeof CLIENT_REVOCATION_STAGES)[number];
93
107
  /**
94
108
  * What a completed cascade reports: whether the roster actually rotated on
95
109
  * this run (a re-run of an already-complete revocation reports `false`), the
@@ -166,7 +180,11 @@ export interface ClientRevocationResult {
166
180
  * keeps operating without a re-login
167
181
  * @returns {Promise<ClientRevocationResult>}
168
182
  */
169
- export declare function revokeAccountClient({ idStore, signer, projectionStore, revokedClient, knownLatentHashes, expectedDid, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, remintGenerationDelegation, onRotationAdopted }: {
183
+ export declare function revokeAccountClient(options: Omit<Parameters<typeof runClientRevocation>[0], 'events'>): Promise<ClientRevocationResult>;
184
+ /**
185
+ * The body of {@link revokeAccountClient}, one run under its event emitter.
186
+ */
187
+ declare function runClientRevocation({ idStore, signer, projectionStore, revokedClient, knownLatentHashes, expectedDid, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, remintGenerationDelegation, onRotationAdopted, events }: {
170
188
  idStore: WebvhIdStore;
171
189
  signer: AccountLogSigner;
172
190
  projectionStore?: Pick<WebvhIdStore, 'getIdResourceRaw' | 'putIdResource'>;
@@ -189,5 +207,6 @@ export declare function revokeAccountClient({ idStore, signer, projectionStore,
189
207
  onRotationAdopted?: (rotation: {
190
208
  userKey: UserKey;
191
209
  }) => Promise<void>;
210
+ events: CeremonyEmitter<ClientRevocationStage>;
192
211
  }): Promise<ClientRevocationResult>;
193
212
  //# sourceMappingURL=revocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;AAEpD;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAAA;CACrD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,WAAW,EAAE,oBAAoB,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;IACvC,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,MAAM,EACN,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,iBAAiB,EAClB,EAAE;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,gBAAgB,CAAA;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAA;IAC1E,aAAa,EAAE,iBAAiB,CAAA;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,yBAAyB,CAAA;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qBAAqB,EAAE,gBAAgB,CAAA;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC3B,OAAO,EAAE,OAAO,CAAA;QAChB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,oBAAoB,CAAA;KACjC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE;QACrC,QAAQ,EAAE,oBAAoB,CAAA;KAC/B,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA2DlC"}
1
+ {"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,31 @@
1
1
  import { revokeWebvhClient } from '../webvh/index.js';
2
2
  import { rotateRosterToDocumentAndCascade } from '../keys/index.js';
3
+ import { ceremonyEvents } from '../ceremonyEvents.js';
4
+ import { log as walletLog } from '../log.js';
3
5
  import { assertUpdateKeyAttributed } from './policy.js';
6
+ /**
7
+ * The stages the revocation cascade reports on the ceremony event channel,
8
+ * in the order they land: the document edit, the roster rotation and the
9
+ * collection fan-out (when the account has a roster, the fan-out only when
10
+ * every collection converged), and the generation-delegation re-mint (when
11
+ * the closure ran and was not skipped). A stage that found its work already
12
+ * done carries `prior: true`.
13
+ */
14
+ export const CLIENT_REVOCATION_STAGES = [
15
+ 'document-edit',
16
+ 'roster-rotation',
17
+ 'collection-epochs',
18
+ 'generation-remint'
19
+ ];
20
+ /**
21
+ * The cascade's typed refusals, matched by `err.name`: the document edit's
22
+ * ambiguous staged commitment, and an inventory attribution that would
23
+ * strike a surviving client. Both refuse before the edit publishes.
24
+ */
25
+ const CLIENT_REVOCATION_REFUSALS = [
26
+ 'StagedCommitmentAmbiguousError',
27
+ 'LadderAttributionError'
28
+ ];
4
29
  /**
5
30
  * Runs the whole revocation cascade for one enrolled wallet client. See the
6
31
  * module doc for the order and the convergence story. Throws before touching
@@ -61,7 +86,28 @@ import { assertUpdateKeyAttributed } from './policy.js';
61
86
  * keeps operating without a re-login
62
87
  * @returns {Promise<ClientRevocationResult>}
63
88
  */
64
- export async function revokeAccountClient({ idStore, signer, projectionStore, revokedClient, knownLatentHashes, expectedDid, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, remintGenerationDelegation, onRotationAdopted }) {
89
+ export async function revokeAccountClient(options) {
90
+ const events = ceremonyEvents({
91
+ ceremony: 'client-revocation',
92
+ log: walletLog,
93
+ refusals: CLIENT_REVOCATION_REFUSALS
94
+ });
95
+ // Detail is counts alone: the ladder arm runs on transient sessions, where
96
+ // no account identifier enters an event.
97
+ return events.run(() => runClientRevocation({ ...options, events }), result => {
98
+ const failedStages = (result.generation?.skipped === 'failed' ? 1 : 0) +
99
+ (result.rosterSeal?.outcome === 'failed' ? 1 : 0);
100
+ const failedCollections = result.collections.failed.length;
101
+ return {
102
+ outcome: failedStages > 0 || failedCollections > 0 ? 'partial' : 'clean',
103
+ detail: { failedStages, failedCollections }
104
+ };
105
+ });
106
+ }
107
+ /**
108
+ * The body of {@link revokeAccountClient}, one run under its event emitter.
109
+ */
110
+ async function runClientRevocation({ idStore, signer, projectionStore, revokedClient, knownLatentHashes, expectedDid, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, remintGenerationDelegation, onRotationAdopted, events }) {
65
111
  assertUpdateKeyAttributed(revokedClient);
66
112
  // 1. The document edit -- the pull axis everywhere, first. It resolves the
67
113
  // document as it now stands, which is what stage 2 resolves its remaining
@@ -74,6 +120,7 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
74
120
  ...(knownLatentHashes ? { knownLatentHashes } : {}),
75
121
  ...(expectedDid !== undefined ? { expectedDid } : {})
76
122
  });
123
+ events.stage('document-edit');
77
124
  // 2-3. The shared roster-and-cascade tail: the roster rotation onto the
78
125
  // post-edit document (with its post-edit minimum controller version and its seal
79
126
  // backstop), then the collection fan-out onto the fresh key.
@@ -88,12 +135,22 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
88
135
  ...(onUserKeyAdopted ? { onUserKeyAdopted } : {}),
89
136
  collections
90
137
  });
138
+ if (tail.rosterDescriptor && tail.userKey) {
139
+ events.stage('roster-rotation', {
140
+ ...(tail.rotated ? {} : { prior: true })
141
+ });
142
+ if (tail.collections.failed.length === 0) {
143
+ const wrote = Object.values(tail.collections.outcomes).some(outcome => outcome !== 'noop');
144
+ events.stage('collection-epochs', { ...(wrote ? {} : { prior: true }) });
145
+ }
146
+ }
91
147
  if (!tail.rosterDescriptor || !tail.userKey) {
92
148
  // No roster to rotate: the document edit has landed, so the client IS
93
149
  // disconnected -- a completed cascade with nothing rotated. The
94
150
  // generation-delegation re-mint still runs: the edit alone is what rots
95
151
  // the delegation, roster or no roster.
96
152
  const generation = await remintGenerationDelegation?.({ document: doc });
153
+ remintStage({ events, generation });
97
154
  return {
98
155
  rotated: false,
99
156
  collections: tail.collections,
@@ -103,6 +160,7 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
103
160
  }
104
161
  // 4. The generation-delegation re-mint, against the post-edit document.
105
162
  const generation = await remintGenerationDelegation?.({ document: doc });
163
+ remintStage({ events, generation });
106
164
  if (tail.rotated) {
107
165
  await onRotationAdopted?.({ userKey: tail.userKey });
108
166
  }
@@ -116,4 +174,21 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
116
174
  ...(generation ? { generation } : {})
117
175
  };
118
176
  }
177
+ /**
178
+ * Emits the re-mint stage when the closure ran and was not skipped, with
179
+ * `prior: true` when the standing delegation needed no replacement.
180
+ *
181
+ * @param options {object}
182
+ * @param options.events {CeremonyEmitter} the running ceremony's emitter
183
+ * @param [options.generation] {GenerationDelegationRemint} the stage's
184
+ * report, absent when no closure was supplied
185
+ */
186
+ function remintStage({ events, generation }) {
187
+ if (generation === undefined || generation.skipped !== undefined) {
188
+ return;
189
+ }
190
+ events.stage('generation-remint', {
191
+ ...(generation.renewed ? {} : { prior: true })
192
+ });
193
+ }
119
194
  //# sourceMappingURL=revocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"AA4EA,OAAO,EACL,iBAAiB,EAKlB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,gCAAgC,EAKjC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAkBvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;CACX,CAAA;AAOV;;;;GAIG;AACH,MAAM,0BAA0B,GAAG;IACjC,gCAAgC;IAChC,wBAAwB;CACzB,CAAA;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAkE;IAElE,MAAM,MAAM,GAAG,cAAc,CAAwB;QACnD,QAAQ,EAAE,mBAAmB;QAC7B,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAA;IACF,2EAA2E;IAC3E,yCAAyC;IACzC,OAAO,MAAM,CAAC,GAAG,CACf,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,EACjD,MAAM,CAAC,EAAE;QACP,MAAM,YAAY,GAChB,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAA;QAC1D,OAAO;YACL,OAAO,EACL,YAAY,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACjE,MAAM,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;SAC5C,CAAA;IACH,CAAC,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,EACjC,OAAO,EACP,MAAM,EACN,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,iBAAiB,EACjB,MAAM,EAuBP;IACC,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAExC,2EAA2E;IAC3E,0EAA0E;IAC1E,mBAAmB;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,iBAAiB,CAAC;QAChD,OAAO;QACP,MAAM;QACN,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,aAAa;QACb,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAA;IACF,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAE7B,wEAAwE;IACxE,iFAAiF;IACjF,6DAA6D;IAC7D,MAAM,IAAI,GAAG,MAAM,gCAAgC,CAAC;QAClD,WAAW;QACX,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,qBAAqB;QACrB,aAAa;QACb,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,WAAW;KACZ,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACzC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CACzD,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,CAC9B,CAAA;YACD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,sEAAsE;QACtE,gEAAgE;QAChE,wEAAwE;QACxE,uCAAuC;QACvC,MAAM,UAAU,GAAG,MAAM,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;QACxE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;QACnC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,GAAG;YACb,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAA;IACH,CAAC;IAED,wEAAwE;IACxE,MAAM,UAAU,GAAG,MAAM,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IACxE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAEnC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,EACnB,MAAM,EACN,UAAU,EAIX;IACC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjE,OAAM;IACR,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;QAChC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC/C,CAAC,CAAA;AACJ,CAAC"}
@@ -49,6 +49,27 @@ export type EnrollmentRequest = WebvhEnrollmentKeys;
49
49
  export declare class EnrollmentPendingError extends Error {
50
50
  constructor(message?: string);
51
51
  }
52
+ /**
53
+ * The approving side's stages on the ceremony event channel: the user key
54
+ * escrowed to the enrollee in the roster, and the account-log entries that
55
+ * publish it (commit, then add). A client signer escrows first; a ladder
56
+ * signer writes the entries first.
57
+ */
58
+ export declare const ENROLLMENT_APPROVAL_STAGES: readonly ["roster-escrow", "enrollment-entries"];
59
+ /**
60
+ * One value of {@link ENROLLMENT_APPROVAL_STAGES}.
61
+ */
62
+ export type EnrollmentApprovalStage = (typeof ENROLLMENT_APPROVAL_STAGES)[number];
63
+ /**
64
+ * The enrollee's stages on the ceremony event channel: the enrollment
65
+ * verified off the world-readable log, and the first roster read that
66
+ * unwraps the user key.
67
+ */
68
+ export declare const ENROLLMENT_COMPLETION_STAGES: readonly ["enrollment-verified", "roster-read"];
69
+ /**
70
+ * One value of {@link ENROLLMENT_COMPLETION_STAGES}.
71
+ */
72
+ export type EnrollmentCompletionStage = (typeof ENROLLMENT_COMPLETION_STAGES)[number];
52
73
  /**
53
74
  * Encodes an enrollment request as a connect code.
54
75
  *
@@ -191,7 +212,7 @@ export declare function mintEnrollmentRequest(): Promise<{
191
212
  * multibase (the key a label or a listing row is filed under), so the caller
192
213
  * needs no second parse of the connect code
193
214
  */
194
- export declare function approveEnrollment({ request, signer, clientKeyAgreementKey, userKeyRosterStore, idStore }: {
215
+ export declare function approveEnrollment(options: {
195
216
  request: EnrollmentRequest;
196
217
  signer: AccountLogSigner;
197
218
  clientKeyAgreementKey: IKeyAgreementKey;
@@ -233,7 +254,7 @@ export declare function approveEnrollment({ request, signer, clientKeyAgreementK
233
254
  * discovers on its own
234
255
  * @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
235
256
  */
236
- export declare function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, pointer, accountLogPinStore, serviceDescription }: {
257
+ export declare function completeEnrollmentCore(options: {
237
258
  clientSeed: Uint8Array;
238
259
  webvhUpdateKeys: ClientWebvhUpdateKeys;
239
260
  pointer: AccountPointer;
@@ -1 +1 @@
1
- {"version":3,"file":"enrollment.d.ts","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrollment.d.ts","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ import { anchorRosterStoreAt } from '../keys/userKeyRosterCascade.js';
13
13
  import { memoryResourceLogPinStore } from '@interop/vh-resource-log';
14
14
  import { webvhResourceLogController } from '../resourceLog/index.js';
15
15
  import { CONNECT_CODE_PREFIX } from './connectCode.js';
16
+ import { ceremonyEvents } from '../ceremonyEvents.js';
17
+ import { log } from '../log.js';
16
18
  /**
17
19
  * The connect-code payload version this build mints and accepts.
18
20
  */
@@ -29,6 +31,25 @@ export class EnrollmentPendingError extends Error {
29
31
  this.name = 'EnrollmentPendingError';
30
32
  }
31
33
  }
34
+ /**
35
+ * The approving side's stages on the ceremony event channel: the user key
36
+ * escrowed to the enrollee in the roster, and the account-log entries that
37
+ * publish it (commit, then add). A client signer escrows first; a ladder
38
+ * signer writes the entries first.
39
+ */
40
+ export const ENROLLMENT_APPROVAL_STAGES = [
41
+ 'roster-escrow',
42
+ 'enrollment-entries'
43
+ ];
44
+ /**
45
+ * The enrollee's stages on the ceremony event channel: the enrollment
46
+ * verified off the world-readable log, and the first roster read that
47
+ * unwraps the user key.
48
+ */
49
+ export const ENROLLMENT_COMPLETION_STAGES = [
50
+ 'enrollment-verified',
51
+ 'roster-read'
52
+ ];
32
53
  /**
33
54
  * The multicodec multibase prefixes of the two key types a connect code
34
55
  * carries: Ed25519 (`z6Mk`) and X25519 (`z6LS`) public keys.
@@ -283,7 +304,27 @@ export async function mintEnrollmentRequest() {
283
304
  * multibase (the key a label or a listing row is filed under), so the caller
284
305
  * needs no second parse of the connect code
285
306
  */
286
- export async function approveEnrollment({ request, signer, clientKeyAgreementKey, userKeyRosterStore, idStore }) {
307
+ export async function approveEnrollment(options) {
308
+ // One run per approval. The connect code and the enrollee's keys never
309
+ // enter an event; the stages alone say how far the approval got.
310
+ const events = ceremonyEvents({
311
+ ceremony: 'client-enrollment',
312
+ log,
313
+ refusals: ['LadderAttributionError', 'AccountLogMissingError']
314
+ });
315
+ return events.run(() => approveEnrollmentBody({
316
+ ...options,
317
+ onStage: stage => events.stage(stage)
318
+ }));
319
+ }
320
+ /**
321
+ * The body of {@link approveEnrollment}, reporting each landed stage through
322
+ * `onStage`.
323
+ *
324
+ * @param options {object} see {@link approveEnrollment}, plus `onStage`
325
+ * @returns {Promise<object>}
326
+ */
327
+ async function approveEnrollmentBody({ request, signer, clientKeyAgreementKey, userKeyRosterStore, idStore, onStage }) {
287
328
  // Re-checked here rather than trusted from the parse: this is the one seam
288
329
  // every approval path runs through, and it is what publishes the key under
289
330
  // the controller marker.
@@ -298,15 +339,22 @@ export async function approveEnrollment({ request, signer, clientKeyAgreementKey
298
339
  });
299
340
  if (signer.kind === 'enrolled') {
300
341
  await escrow();
342
+ onStage('roster-escrow');
301
343
  }
302
- const { did, log } = await enrollWebvhClient({
344
+ const { did, log: accountLog } = await enrollWebvhClient({
303
345
  idStore,
304
346
  signer,
305
347
  newClient: request
306
348
  });
349
+ onStage('enrollment-entries');
307
350
  if (signer.kind === 'ladder') {
308
- anchorRosterStoreAt({ rosterStore: userKeyRosterStore, did, log });
351
+ anchorRosterStoreAt({
352
+ rosterStore: userKeyRosterStore,
353
+ did,
354
+ log: accountLog
355
+ });
309
356
  await escrow();
357
+ onStage('roster-escrow');
310
358
  }
311
359
  return {
312
360
  did,
@@ -345,7 +393,28 @@ export async function approveEnrollment({ request, signer, clientKeyAgreementKey
345
393
  * discovers on its own
346
394
  * @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
347
395
  */
348
- export async function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, pointer, accountLogPinStore, serviceDescription }) {
396
+ export async function completeEnrollmentCore(options) {
397
+ // The enrollee's half, its own run of the ceremony. "Not approved yet" is
398
+ // the expected state a caller polls through, so it logs at debug.
399
+ const events = ceremonyEvents({
400
+ ceremony: 'client-enrollment',
401
+ log,
402
+ pending: ['EnrollmentPendingError']
403
+ });
404
+ return events.run(() => completeEnrollmentBody({
405
+ ...options,
406
+ onStage: stage => events.stage(stage)
407
+ }));
408
+ }
409
+ /**
410
+ * The body of {@link completeEnrollmentCore}, reporting each stage through
411
+ * `onStage`.
412
+ *
413
+ * @param options {object} see {@link completeEnrollmentCore}, plus
414
+ * `onStage`
415
+ * @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
416
+ */
417
+ async function completeEnrollmentBody({ clientSeed, webvhUpdateKeys, pointer, accountLogPinStore, serviceDescription, onStage }) {
349
418
  const did = pointer.did;
350
419
  if (!did || !isWebvhDid(did)) {
351
420
  throw new Error('The account pointer names no did:webvh; only a promoted account can ' +
@@ -381,6 +450,7 @@ export async function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, poin
381
450
  if (!enrolled) {
382
451
  throw new EnrollmentPendingError();
383
452
  }
453
+ onStage('enrollment-verified');
384
454
  // The first roster read: signed with the `<did:webvh>#<multibase>` keyId
385
455
  // the add entry just published, unwrapping the user key the enrolling client
386
456
  // escrowed to this client's key-agreement key. The account log just
@@ -408,6 +478,7 @@ export async function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, poin
408
478
  throw new Error('The account has no user key roster; it must finish provisioning before ' +
409
479
  'a client can be enrolled.');
410
480
  }
481
+ onStage('roster-read');
411
482
  return { userKey: read.userKey, latestEpochId: read.latestEpochId };
412
483
  }
413
484
  //# sourceMappingURL=enrollment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enrollment.js","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrollment.js","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,8 @@
29
29
  * log, read the roster, hand back the user key and the epoch to pin. Persisting
30
30
  * the key set stays with the caller's own unlock layer.
31
31
  */
32
- export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
33
- export type { EnrollmentRequest } from './enrollment.js';
32
+ export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, ENROLLMENT_APPROVAL_STAGES, ENROLLMENT_COMPLETION_STAGES, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
33
+ export type { EnrollmentApprovalStage, EnrollmentCompletionStage, EnrollmentRequest } from './enrollment.js';
34
34
  export { CONNECT_CODE_PREFIX, isConnectCode } from './connectCode.js';
35
35
  export { encodeOnboardingResponse, ONBOARDING_LABEL_MAX_LENGTH, ONBOARDING_RESPONSE_VERSION, parseOnboardingResponse } from './onboardingResponse.js';
36
36
  export type { WalletOnboardingResponse } from './onboardingResponse.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -29,7 +29,7 @@
29
29
  * log, read the roster, hand back the user key and the epoch to pin. Persisting
30
30
  * the key set stays with the caller's own unlock layer.
31
31
  */
32
- export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
32
+ export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, ENROLLMENT_APPROVAL_STAGES, ENROLLMENT_COMPLETION_STAGES, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
33
33
  export { CONNECT_CODE_PREFIX, isConnectCode } from './connectCode.js';
34
34
  export { encodeOnboardingResponse, ONBOARDING_LABEL_MAX_LENGTH, ONBOARDING_RESPONSE_VERSION, parseOnboardingResponse } from './onboardingResponse.js';
35
35
  export { ONBOARDING_INVITE_TTL_MS } from './onboardingInvite.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}