@interop/wallet-core 0.65.0 → 0.67.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 (256) hide show
  1. package/README.md +12 -8
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +5 -4
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +32 -50
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +112 -21
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +248 -180
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +2 -6
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +31 -61
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +48 -132
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +88 -221
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts.map +1 -1
  19. package/dist/clientAnnex/gc.js +9 -0
  20. package/dist/clientAnnex/gc.js.map +1 -1
  21. package/dist/clientAnnex/heal.d.ts +97 -13
  22. package/dist/clientAnnex/heal.d.ts.map +1 -1
  23. package/dist/clientAnnex/heal.js +108 -174
  24. package/dist/clientAnnex/heal.js.map +1 -1
  25. package/dist/clientAnnex/index.d.ts +8 -8
  26. package/dist/clientAnnex/index.d.ts.map +1 -1
  27. package/dist/clientAnnex/index.js +6 -6
  28. package/dist/clientAnnex/index.js.map +1 -1
  29. package/dist/clientAnnex/ladder.d.ts +51 -4
  30. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  31. package/dist/clientAnnex/ladder.js +310 -55
  32. package/dist/clientAnnex/ladder.js.map +1 -1
  33. package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
  34. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  35. package/dist/clientAnnex/ladderAnchored.js +69 -34
  36. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  37. package/dist/clientAnnex/log.d.ts +148 -72
  38. package/dist/clientAnnex/log.d.ts.map +1 -1
  39. package/dist/clientAnnex/log.js +211 -137
  40. package/dist/clientAnnex/log.js.map +1 -1
  41. package/dist/clientAnnex/mend.d.ts.map +1 -1
  42. package/dist/clientAnnex/mend.js +63 -81
  43. package/dist/clientAnnex/mend.js.map +1 -1
  44. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
  45. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
  47. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  48. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
  49. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
  50. package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
  51. package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
  52. package/dist/clientAnnex/selfEnroll.js +1 -1
  53. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  54. package/dist/clientAnnex/zcap.d.ts +19 -0
  55. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  56. package/dist/clientAnnex/zcap.js +80 -12
  57. package/dist/clientAnnex/zcap.js.map +1 -1
  58. package/dist/clients/index.d.ts +3 -2
  59. package/dist/clients/index.d.ts.map +1 -1
  60. package/dist/clients/index.js +3 -2
  61. package/dist/clients/index.js.map +1 -1
  62. package/dist/clients/listing.d.ts.map +1 -1
  63. package/dist/clients/listing.js +33 -15
  64. package/dist/clients/listing.js.map +1 -1
  65. package/dist/clients/policy.d.ts +18 -0
  66. package/dist/clients/policy.d.ts.map +1 -1
  67. package/dist/clients/policy.js +22 -8
  68. package/dist/clients/policy.js.map +1 -1
  69. package/dist/clients/revocation.d.ts +18 -30
  70. package/dist/clients/revocation.d.ts.map +1 -1
  71. package/dist/clients/revocation.js +12 -27
  72. package/dist/clients/revocation.js.map +1 -1
  73. package/dist/clients/rosterPolicy.d.ts +6 -1
  74. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  75. package/dist/clients/rosterPolicy.js +27 -30
  76. package/dist/clients/rosterPolicy.js.map +1 -1
  77. package/dist/descriptors/errors.d.ts +6 -5
  78. package/dist/descriptors/errors.d.ts.map +1 -1
  79. package/dist/descriptors/errors.js +6 -5
  80. package/dist/descriptors/errors.js.map +1 -1
  81. package/dist/descriptors/index.d.ts +7 -3
  82. package/dist/descriptors/index.d.ts.map +1 -1
  83. package/dist/descriptors/index.js +7 -3
  84. package/dist/descriptors/index.js.map +1 -1
  85. package/dist/descriptors/logSource.d.ts +28 -6
  86. package/dist/descriptors/logSource.d.ts.map +1 -1
  87. package/dist/descriptors/logSource.js +33 -7
  88. package/dist/descriptors/logSource.js.map +1 -1
  89. package/dist/enrollment/enrollment.d.ts.map +1 -1
  90. package/dist/enrollment/enrollment.js +3 -7
  91. package/dist/enrollment/enrollment.js.map +1 -1
  92. package/dist/genesis/accountGenesis.d.ts +8 -10
  93. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  94. package/dist/genesis/accountGenesis.js +39 -41
  95. package/dist/genesis/accountGenesis.js.map +1 -1
  96. package/dist/genesis/kmsAuthentication.d.ts +50 -0
  97. package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
  98. package/dist/genesis/kmsAuthentication.js +49 -0
  99. package/dist/genesis/kmsAuthentication.js.map +1 -0
  100. package/dist/keyring/kdf.d.ts +16 -20
  101. package/dist/keyring/kdf.d.ts.map +1 -1
  102. package/dist/keyring/kdf.js +2 -2
  103. package/dist/keyring/kdf.js.map +1 -1
  104. package/dist/keyring/unlockSpace.d.ts +8 -30
  105. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  106. package/dist/keyring/unlockSpace.js +8 -31
  107. package/dist/keyring/unlockSpace.js.map +1 -1
  108. package/dist/keys/clientKeyRecord.d.ts +2 -1
  109. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  110. package/dist/keys/clientKeyRecord.js +28 -11
  111. package/dist/keys/clientKeyRecord.js.map +1 -1
  112. package/dist/keys/index.d.ts +19 -5
  113. package/dist/keys/index.d.ts.map +1 -1
  114. package/dist/keys/index.js +17 -3
  115. package/dist/keys/index.js.map +1 -1
  116. package/dist/keys/rosterLogStore.d.ts +3 -1
  117. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  118. package/dist/keys/rosterLogStore.js +20 -8
  119. package/dist/keys/rosterLogStore.js.map +1 -1
  120. package/dist/keys/spaceEpochs.d.ts +92 -3
  121. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  122. package/dist/keys/spaceEpochs.js +110 -4
  123. package/dist/keys/spaceEpochs.js.map +1 -1
  124. package/dist/keys/userKeyCascade.d.ts +8 -5
  125. package/dist/keys/userKeyCascade.d.ts.map +1 -1
  126. package/dist/keys/userKeyCascade.js +7 -6
  127. package/dist/keys/userKeyCascade.js.map +1 -1
  128. package/dist/keys/userKeyRoster.d.ts +68 -4
  129. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  130. package/dist/keys/userKeyRoster.js +146 -33
  131. package/dist/keys/userKeyRoster.js.map +1 -1
  132. package/dist/keys/userKeyRosterCascade.d.ts +110 -10
  133. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  134. package/dist/keys/userKeyRosterCascade.js +184 -40
  135. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  136. package/dist/recovery/continuation.d.ts +255 -0
  137. package/dist/recovery/continuation.d.ts.map +1 -0
  138. package/dist/recovery/continuation.js +471 -0
  139. package/dist/recovery/continuation.js.map +1 -0
  140. package/dist/recovery/index.d.ts +12 -8
  141. package/dist/recovery/index.d.ts.map +1 -1
  142. package/dist/recovery/index.js +11 -7
  143. package/dist/recovery/index.js.map +1 -1
  144. package/dist/recovery/recoveryDelegation.d.ts +40 -120
  145. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  146. package/dist/recovery/recoveryDelegation.js +36 -268
  147. package/dist/recovery/recoveryDelegation.js.map +1 -1
  148. package/dist/recovery/recoveryWebvh.d.ts +42 -83
  149. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  150. package/dist/recovery/recoveryWebvh.js +44 -380
  151. package/dist/recovery/recoveryWebvh.js.map +1 -1
  152. package/dist/request/appKey.d.ts +35 -1
  153. package/dist/request/appKey.d.ts.map +1 -1
  154. package/dist/request/appKey.js +29 -10
  155. package/dist/request/appKey.js.map +1 -1
  156. package/dist/request/classify.d.ts +3 -14
  157. package/dist/request/classify.d.ts.map +1 -1
  158. package/dist/request/classify.js +19 -40
  159. package/dist/request/classify.js.map +1 -1
  160. package/dist/request/index.d.ts +1 -0
  161. package/dist/request/index.d.ts.map +1 -1
  162. package/dist/request/index.js +1 -0
  163. package/dist/request/index.js.map +1 -1
  164. package/dist/request/onboarding.d.ts.map +1 -1
  165. package/dist/request/onboarding.js +19 -27
  166. package/dist/request/onboarding.js.map +1 -1
  167. package/dist/request/parse.d.ts +5 -3
  168. package/dist/request/parse.d.ts.map +1 -1
  169. package/dist/request/parse.js +7 -6
  170. package/dist/request/parse.js.map +1 -1
  171. package/dist/request/processRequest.d.ts.map +1 -1
  172. package/dist/request/processRequest.js +2 -1
  173. package/dist/request/processRequest.js.map +1 -1
  174. package/dist/request/queryPredicates.d.ts +98 -0
  175. package/dist/request/queryPredicates.d.ts.map +1 -0
  176. package/dist/request/queryPredicates.js +107 -0
  177. package/dist/request/queryPredicates.js.map +1 -0
  178. package/dist/resourceLog/document.d.ts +39 -0
  179. package/dist/resourceLog/document.d.ts.map +1 -1
  180. package/dist/resourceLog/document.js +41 -0
  181. package/dist/resourceLog/document.js.map +1 -1
  182. package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
  183. package/dist/resourceLog/ladderRungs.js +3 -2
  184. package/dist/resourceLog/ladderRungs.js.map +1 -1
  185. package/dist/sync/contactsConflict.d.ts.map +1 -1
  186. package/dist/sync/contactsConflict.js +8 -2
  187. package/dist/sync/contactsConflict.js.map +1 -1
  188. package/dist/sync/engine.d.ts +38 -23
  189. package/dist/sync/engine.d.ts.map +1 -1
  190. package/dist/sync/engine.js +36 -5
  191. package/dist/sync/engine.js.map +1 -1
  192. package/dist/sync/index.d.ts +9 -12
  193. package/dist/sync/index.d.ts.map +1 -1
  194. package/dist/sync/index.js +8 -11
  195. package/dist/sync/index.js.map +1 -1
  196. package/dist/sync/push.d.ts.map +1 -1
  197. package/dist/sync/push.js +1 -2
  198. package/dist/sync/push.js.map +1 -1
  199. package/dist/sync/remint.d.ts +0 -31
  200. package/dist/sync/remint.d.ts.map +1 -1
  201. package/dist/sync/remint.js +32 -1
  202. package/dist/sync/remint.js.map +1 -1
  203. package/dist/sync/types.d.ts +4 -41
  204. package/dist/sync/types.d.ts.map +1 -1
  205. package/dist/sync/types.js +4 -47
  206. package/dist/sync/types.js.map +1 -1
  207. package/dist/unlock/index.d.ts +1 -1
  208. package/dist/unlock/index.d.ts.map +1 -1
  209. package/dist/unlock/index.js +1 -1
  210. package/dist/unlock/index.js.map +1 -1
  211. package/dist/unlock/retire.d.ts +16 -56
  212. package/dist/unlock/retire.d.ts.map +1 -1
  213. package/dist/unlock/retire.js +7 -76
  214. package/dist/unlock/retire.js.map +1 -1
  215. package/dist/unlock/standingWebvh.d.ts +20 -40
  216. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  217. package/dist/unlock/standingWebvh.js +35 -76
  218. package/dist/unlock/standingWebvh.js.map +1 -1
  219. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  220. package/dist/unlock/unlockRecord.js +69 -44
  221. package/dist/unlock/unlockRecord.js.map +1 -1
  222. package/dist/webvh/accountEntry.d.ts +63 -7
  223. package/dist/webvh/accountEntry.d.ts.map +1 -1
  224. package/dist/webvh/accountEntry.js +110 -19
  225. package/dist/webvh/accountEntry.js.map +1 -1
  226. package/dist/webvh/delegatedLogStore.d.ts +18 -12
  227. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  228. package/dist/webvh/delegatedLogStore.js +32 -11
  229. package/dist/webvh/delegatedLogStore.js.map +1 -1
  230. package/dist/webvh/didWebvh.d.ts +39 -23
  231. package/dist/webvh/didWebvh.d.ts.map +1 -1
  232. package/dist/webvh/didWebvh.js +63 -45
  233. package/dist/webvh/didWebvh.js.map +1 -1
  234. package/dist/webvh/enrollClient.d.ts.map +1 -1
  235. package/dist/webvh/enrollClient.js +19 -23
  236. package/dist/webvh/enrollClient.js.map +1 -1
  237. package/dist/webvh/index.d.ts +11 -7
  238. package/dist/webvh/index.d.ts.map +1 -1
  239. package/dist/webvh/index.js +9 -6
  240. package/dist/webvh/index.js.map +1 -1
  241. package/dist/webvh/listClients.d.ts.map +1 -1
  242. package/dist/webvh/listClients.js +102 -65
  243. package/dist/webvh/listClients.js.map +1 -1
  244. package/dist/webvh/mergeMethods.d.ts +84 -0
  245. package/dist/webvh/mergeMethods.d.ts.map +1 -0
  246. package/dist/webvh/mergeMethods.js +46 -0
  247. package/dist/webvh/mergeMethods.js.map +1 -0
  248. package/dist/webvh/revokeClient.d.ts +12 -2
  249. package/dist/webvh/revokeClient.d.ts.map +1 -1
  250. package/dist/webvh/revokeClient.js +126 -48
  251. package/dist/webvh/revokeClient.js.map +1 -1
  252. package/dist/webvh/verifyLog.d.ts +21 -0
  253. package/dist/webvh/verifyLog.d.ts.map +1 -1
  254. package/dist/webvh/verifyLog.js +36 -14
  255. package/dist/webvh/verifyLog.js.map +1 -1
  256. package/package.json +11 -11
@@ -2,12 +2,12 @@ import { ensurePromotedSpaceController, mintSpaceId } from '../genesis/accountGe
2
2
  import { currentLogParameters, keyAgreementCommitment, readPublishedLog } from '../webvh/didWebvh.js';
3
3
  import { accountLogPinId } from '../webvh/verifyLog.js';
4
4
  import { didKeyZcapClient } from '../webvh/zcap.js';
5
- import { delegateLogWrite, delegationProofKeyId } from '../recovery/recoveryDelegation.js';
5
+ import { delegateLogWrite, recordedDelegationFields } from '../recovery/recoveryDelegation.js';
6
6
  import { mintUserKey } from '../keys/index.js';
7
7
  import { attributeLadderRung } from './ladder.js';
8
- import { ladderVmAgent, ladderVmZcapClient } from './zcap.js';
9
- import { clientAnnexDidParts, clientAnnexLogPinId, clientAnnexLogStore, ensureGenerationDelegationCurrent, mintCredentialClientAnnexGeneration, mintDelegatedClientsDelegation, setDelegatedClientsPointer } from './log.js';
10
- import { ladderSignedGenerationDelegationMinter, pointerEntryUpdateKeys, resolveClientAnnexSpaceId } from './heal.js';
8
+ import { ladderVmAgent, ladderVmSigners } from './zcap.js';
9
+ import { clientAnnexDidParts, mintDelegatedClientsDelegation, mintPointedClientAnnexGeneration, setDelegatedClientsPointer } from './log.js';
10
+ import { ladderSignedGenerationDelegationMinter, movePointerAsLadder, rawRequestStatus, resolveClientAnnexSpaceId } from './heal.js';
11
11
  import { ensureCredentialAnchoredAccountGenesis } from './credentialAnchoredGenesis.js';
12
12
  import { CONTROLLER_PROMOTION_STAGE } from './stages.js';
13
13
  import { ensureRosterDeliveredEpochs } from './rosterDeliveredEpochs.js';
@@ -23,9 +23,15 @@ import { stageNotifier } from '../log.js';
23
23
  * delegation while the Space still answers to its creation controller, flip
24
24
  * the Space's controller to the account DID, then append the pointer entry
25
25
  * -- strictly last in the block, so pointer-present implies every prior
26
- * sub-step landed. The pointer entry signs by ladder attribution of the
27
- * currently revealed rung, and every log touch rides the caller's chain-head
28
- * pin store.
26
+ * sub-step landed. The pointer entry signs on the arm the caller states: an
27
+ * enrolled client's own update keys, or the ladder (attributed, revealed,
28
+ * and signed per attempt); every log touch rides the caller's chain-head pin
29
+ * store. On the ladder arm the rung is attributed BEFORE anything is minted,
30
+ * the pre-flight every pointer-moving arm runs: a ladder the log carries no
31
+ * rung of, and an ambiguous attribution, throw the ladder's own
32
+ * `LadderAttributionError` with no Space or generation minted, so a torn
33
+ * establishment never orphans an annex Space on an account that no longer
34
+ * anchors this ladder.
29
35
  *
30
36
  * Two invocation authorities, heal's pattern. A caller holding a standing
31
37
  * invocation authority (`invocation`: an enrolled client's storage handle
@@ -61,9 +67,18 @@ import { stageNotifier } from '../log.js';
61
67
  * `({ clientAnnexDid }) => Promise<IZcap>` -- the generation-delegation
62
68
  * minter (ladder-VM-signed on a ladder-anchored account)
63
69
  * @param options.idStore {WebvhIdStore} the ACCOUNT log's store
64
- * @param [options.updateKeys] {ClientWebvhUpdateKeys} the pointer entry's
65
- * signing pair; absent, it is recovered by ladder attribution of the
66
- * supplied log's current parameters
70
+ * @param options.signer {object} who signs the pointer entry:
71
+ * `{ kind: 'client', updateKeys }`, an enrolled client's own update keys
72
+ * (freewallet's remembered-login fold), or `{ kind: 'ladder' }`, under
73
+ * which the entry is moved as the ladder with the supplied `ladderSeed`
74
+ * (`movePointerAsLadder`): every attempt of its conflict retry attributes
75
+ * the ladder's current rung from the head it reads, reveals it when only
76
+ * its hash stands committed, and signs with it -- so a racing ceremony that
77
+ * spends the rung is climbed past. A pair fixed by the caller could not be,
78
+ * since the client arm's not-authorized refusal is not a conflict the retry
79
+ * re-runs on. Stated explicitly rather than read off `updateKeys`'
80
+ * absence, since the ladder arm reveals a rung into the world-readable
81
+ * `updateKeys` and an omission must not select it silently
67
82
  * @param [options.delegatedClients] {IZcap} the record's sibling
68
83
  * delegation, for the Space resolution's settled order
69
84
  * @param [options.invocation] {object} a standing invocation authority for
@@ -83,12 +98,29 @@ import { stageNotifier } from '../log.js';
83
98
  * compare-and-swap falls through to a fresh pinned read
84
99
  * @param [options.now] {number} epoch milliseconds, for tests
85
100
  * @returns {Promise<object>} the pointed (or freshly minted) annex DID,
86
- * the generation delegation when one was installed here, what ran, and --
87
- * on `accountLog` -- the account head this block leaves standing: the
101
+ * the generation delegation when one was installed here, what ran, on
102
+ * `accountLog` the account head this block leaves standing (the
88
103
  * post-pointer-entry one when it wrote, the supplied `published` verbatim
89
- * when the document already pointed at a generation
104
+ * when the document already pointed at a generation), and on the ladder
105
+ * arm `rung`: the rung the pointer entry was signed with when this call
106
+ * wrote one, else the ladder's currently attributed rung
90
107
  */
91
- export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl, accountSpaceId, ladderSeed, was, mintController, mintGenerationDelegation, idStore, updateKeys, delegatedClients, invocation, logOnly, pinStore, published, now }) {
108
+ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl, accountSpaceId, ladderSeed, was, mintController, mintGenerationDelegation, idStore, signer, delegatedClients, invocation, logOnly, pinStore, published, now }) {
109
+ // The ladder arm's pre-flight, before the pointer test and before anything
110
+ // is minted: the ladder's current rung, attributed from the account log's
111
+ // current parameters (rung 0, revealed, on a fresh establishment; a
112
+ // committed-only rung after a sibling self-enrolled). An account whose
113
+ // document no longer anchors this ladder throws here, with no Space or
114
+ // generation minted and, in the establishment, while the record is still
115
+ // in its pre-re-bind shape. A pre-flight only: the pointer entry
116
+ // attributes again per attempt inside its own retry and reveals a
117
+ // committed rung itself.
118
+ const attributed = signer.kind === 'ladder'
119
+ ? await attributeLadderRung({
120
+ ladderSeed,
121
+ published: currentLogParameters(account)
122
+ })
123
+ : undefined;
92
124
  const { pointer, annexSpaceId } = resolveClientAnnexSpaceId({
93
125
  doc: account.doc,
94
126
  ...(delegatedClients !== undefined ? { delegatedClients } : {})
@@ -99,132 +131,107 @@ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl
99
131
  generationMinted: false,
100
132
  spaceMinted: false,
101
133
  // Nothing was written, so the caller's head is still the standing one.
102
- ...(published !== undefined ? { accountLog: published } : {})
134
+ ...(published !== undefined ? { accountLog: published } : {}),
135
+ ...(attributed !== undefined ? { rung: attributed.rung } : {})
103
136
  };
104
137
  }
105
- // The pre-flight attribution precedes the mint (never mint a generation
106
- // the pointer entry could not then name), unless the caller supplied the
107
- // signing pair itself.
108
- const entryKeys = updateKeys ??
109
- (await pointerEntryUpdateKeys({ ladderSeed, log: account.log }));
110
- const pointGeneration = async (clientAnnexDid) => setDelegatedClientsPointer({
111
- idStore,
112
- signer: { kind: 'client', updateKeys: entryKeys },
113
- clientAnnexDid,
114
- expectedDid: account.did,
115
- ...(logOnly !== undefined ? { logOnly } : {}),
116
- ...(published !== undefined ? { published } : {}),
117
- ...(pinStore !== undefined
118
- ? { pinStore, logId: accountLogPinId({ spaceId: accountSpaceId }) }
138
+ const pin = pinStore !== undefined
139
+ ? { pinStore, logId: accountLogPinId({ spaceId: accountSpaceId }) }
140
+ : {};
141
+ const pointGeneration = async (clientAnnexDid) => signer.kind === 'client'
142
+ ? setDelegatedClientsPointer({
143
+ idStore,
144
+ signer,
145
+ clientAnnexDid,
146
+ expectedDid: account.did,
147
+ ...(logOnly !== undefined ? { logOnly } : {}),
148
+ ...(published !== undefined ? { published } : {}),
149
+ ...pin
150
+ })
151
+ : movePointerAsLadder({
152
+ idStore,
153
+ ladderSeed,
154
+ clientAnnexDid,
155
+ accountDid: account.did,
156
+ ...(logOnly !== undefined ? { logOnly } : {}),
157
+ ...(published !== undefined ? { published } : {}),
158
+ ...pin
159
+ });
160
+ // The one outcome shape both minting arms hand back.
161
+ const pointedOutcome = (generation, spaceMinted) => ({
162
+ clientAnnexDid: generation.clientAnnexDid,
163
+ generationDelegation: generation.generationDelegation,
164
+ generationMinted: true,
165
+ spaceMinted,
166
+ accountLog: generation.pointed.published,
167
+ ...(generation.pointed.rung !== undefined
168
+ ? { rung: generation.pointed.rung }
119
169
  : {})
120
170
  });
121
171
  // The standing-authority arm: the sibling-named Space is already
122
172
  // account-controlled, its writes ride the supplied capability, and no
123
173
  // flip runs (heal's existing-Space pattern).
124
174
  if (annexSpaceId !== undefined && invocation !== undefined) {
125
- const minted = await mintCredentialClientAnnexGeneration({
175
+ const generation = await mintPointedClientAnnexGeneration({
126
176
  was: invocation.was,
127
177
  wasServerUrl,
128
178
  spaceId: annexSpaceId,
129
179
  controller: account.did,
130
180
  ladderSeed,
131
- capability: invocation.capability
132
- });
133
- const ensured = await ensureGenerationDelegationCurrent({
134
- store: clientAnnexLogStore({
135
- was: invocation.was,
136
- spaceId: annexSpaceId,
137
- generationId: minted.generationId,
138
- capability: invocation.capability
139
- }),
140
- ladderSeed,
141
- generationId: minted.generationId,
181
+ capability: invocation.capability,
142
182
  mintGenerationDelegation,
143
- expectedDid: minted.did,
144
- ...(pinStore !== undefined
145
- ? {
146
- pinStore,
147
- logId: clientAnnexLogPinId({
148
- spaceId: annexSpaceId,
149
- generationId: minted.generationId
150
- })
151
- }
152
- : {}),
183
+ point: pointGeneration,
184
+ ...(pinStore !== undefined ? { pinStore } : {}),
153
185
  ...(now !== undefined ? { now } : {})
154
186
  });
155
- const pointed = await pointGeneration(minted.did);
156
- return {
157
- clientAnnexDid: minted.did,
158
- generationDelegation: ensured.delegation,
159
- generationMinted: true,
160
- spaceMinted: false,
161
- accountLog: pointed.published
162
- };
187
+ return pointedOutcome(generation, false);
163
188
  }
164
189
  // The bootstrap arm: mint, embed the delegation while the Space still
165
190
  // answers to its creation controller, flip, then the pointer entry.
166
191
  const bootstrapArm = async ({ spaceId, spaceMinted }) => {
167
- const minted = await mintCredentialClientAnnexGeneration({
192
+ const generation = await mintPointedClientAnnexGeneration({
168
193
  was,
169
194
  wasServerUrl,
170
195
  spaceId,
171
196
  controller: mintController,
172
- ladderSeed
173
- });
174
- const ensured = await ensureGenerationDelegationCurrent({
175
- store: clientAnnexLogStore({
176
- was,
177
- spaceId,
178
- generationId: minted.generationId
179
- }),
180
197
  ladderSeed,
181
- generationId: minted.generationId,
182
198
  mintGenerationDelegation,
183
- expectedDid: minted.did,
184
- ...(pinStore !== undefined
185
- ? {
186
- pinStore,
187
- logId: clientAnnexLogPinId({
188
- spaceId,
189
- generationId: minted.generationId
190
- })
199
+ point: pointGeneration,
200
+ ...(pinStore !== undefined ? { pinStore } : {}),
201
+ ...(now !== undefined ? { now } : {}),
202
+ // The controller flip. ONLY an authorization-class refusal is
203
+ // swallowed: this Space may be a sibling-named one a concurrent run
204
+ // already flipped, so it no longer answers to this client. (The
205
+ // transient visit's fresh-Space flip in `heal.ts` has no such case --
206
+ // its Space id is freshly minted and no other run can hold it -- so it
207
+ // swallows nothing.) A transport failure aborts BEFORE the pointer
208
+ // entry -- publishing a pointer at a generation whose Space still
209
+ // answers to the bare ladder did:key would leave it unreachable
210
+ // forever, with nothing downstream ever re-running the flip.
211
+ //
212
+ // The mint's own ensure just read or wrote this Space Description, and
213
+ // nothing since then has written one (the collection create, the
214
+ // genesis publish, and the delegation embed all write collection
215
+ // resources), so it rides along as `current` instead of a second
216
+ // describe.
217
+ beforePointerEntry: async ({ minted }) => {
218
+ try {
219
+ await was.space(spaceId).configure({
220
+ ...(minted.spaceDescription !== undefined
221
+ ? { current: minted.spaceDescription }
222
+ : {}),
223
+ controller: account.did,
224
+ force: true
225
+ });
226
+ }
227
+ catch (err) {
228
+ if (!authorizationRefusal(err)) {
229
+ throw err;
230
+ }
191
231
  }
192
- : {}),
193
- ...(now !== undefined ? { now } : {})
194
- });
195
- // The controller flip. ONLY an authorization-class refusal is swallowed
196
- // (a concurrent run flipped first, so the Space no longer answers to
197
- // this client); a transport failure aborts BEFORE the pointer entry --
198
- // publishing a pointer at a generation whose Space still answers to the
199
- // bare ladder did:key would leave it unreachable forever, with nothing
200
- // downstream ever re-running the flip.
201
- //
202
- // The mint's own ensure just read or wrote this Space Description, and
203
- // nothing since then has written one (the collection create, the genesis
204
- // publish, and the delegation embed all write collection resources), so
205
- // it rides along as `current` instead of a second describe.
206
- try {
207
- await was.space(spaceId).configure({
208
- ...(minted.spaceDescription !== undefined
209
- ? { current: minted.spaceDescription }
210
- : {}),
211
- controller: account.did,
212
- force: true
213
- });
214
- }
215
- catch (err) {
216
- if (!authorizationRefusal(err)) {
217
- throw err;
218
232
  }
219
- }
220
- const pointed = await pointGeneration(minted.did);
221
- return {
222
- clientAnnexDid: minted.did,
223
- generationDelegation: ensured.delegation,
224
- generationMinted: true,
225
- spaceMinted,
226
- accountLog: pointed.published
227
- };
233
+ });
234
+ return pointedOutcome(generation, spaceMinted);
228
235
  };
229
236
  if (annexSpaceId !== undefined) {
230
237
  // A sibling-named Space under bootstrap authority alone: writable only
@@ -259,11 +266,11 @@ function authorizationRefusal(err) {
259
266
  if (candidate === null || typeof candidate !== 'object') {
260
267
  continue;
261
268
  }
262
- const carried = candidate;
263
- const status = carried.status ?? carried.response?.status;
269
+ const status = rawRequestStatus(candidate);
264
270
  if (status === 401 || status === 403) {
265
271
  return true;
266
272
  }
273
+ const carried = candidate;
267
274
  if (carried.name === 'NotAllowedError' ||
268
275
  carried.name === 'ForbiddenError' ||
269
276
  carried.name === 'UnauthorizedError') {
@@ -469,15 +476,25 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
469
476
  // 2c. The adopted-roster arm: a re-run that adopted an earlier run's
470
477
  // roster recovers the real user key from the credential's standing wrap
471
478
  // and completes the collection epochs under it -- the one installer,
472
- // through the shared mint-policy stage.
479
+ // through the shared mint-policy stage. The stage's mint guard is the
480
+ // genesis's own observation: it adopted a PRESENT roster a moment ago, so
481
+ // a decide-read now serving it absent is a host contradicting itself, and
482
+ // minting there would be a single-recipient roster genesis over a roster
483
+ // that exists. Refused outright; nothing else licenses the mint here.
473
484
  let userKey = candidateUserKey;
474
485
  if (genesis.rosterDescriptor.currentEpoch !== candidateUserKey.id) {
486
+ const adoptedEpoch = genesis.rosterDescriptor.currentEpoch;
475
487
  const delivered = await ensureRosterDeliveredEpochs({
476
488
  store: rosterStoreFor({ did, log: genesis.published.log }),
477
489
  candidateUserKey,
478
490
  clientKeyAgreementKey: standing.keyAgreementKey,
479
491
  was: bootstrapWas,
480
- spaceId
492
+ spaceId,
493
+ beforeMint: async () => {
494
+ throw new Error('The user-key roster the genesis adopted (current epoch ' +
495
+ `${String(adoptedEpoch)}) is now served absent; refusing to ` +
496
+ 'mint a fresh roster over it.');
497
+ }
481
498
  });
482
499
  if (delivered.outcome === 'no-wrap') {
483
500
  throw new Error('The adopted user-key roster could not be read back with this ' +
@@ -522,28 +539,20 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
522
539
  if (published === undefined) {
523
540
  throw new Error('The account log the genesis published could not be read.');
524
541
  }
525
- // The bind-time REVEALED rung, attributed from the published log's current
526
- // parameters (rung 0 on a fresh establishment) -- resolved HERE, before
527
- // stage 3 and strictly before the re-bind: on an account whose document no
528
- // longer anchors this ladder (a struck ladder VM), the attribution throws
529
- // while the record is still in its pre-re-bind shape, rather than after a
530
- // re-bind that would leave a rebound record with no registry entry and no
531
- // mender. A committed-only rung refuses too: it cannot sign, and recording
532
- // it as the registry's update key would misstate the standing rung.
533
- const attributed = await attributeLadderRung({
534
- ladderSeed,
535
- published: currentLogParameters(published)
536
- });
537
- if (attributed.state !== 'revealed') {
538
- throw new Error("No revealed rung of this credential's ladder stands in the account " +
539
- "log's current update keys; the establishment cannot proceed.");
540
- }
541
542
  stage('account-log-read');
543
+ // Stage 3 on the ladder arm. Its pre-mint attribution is what refuses an
544
+ // account whose document no longer anchors this ladder (a struck ladder
545
+ // VM) while the record is still in its pre-re-bind shape, rather than
546
+ // after a re-bind that would leave a rebound record with no registry entry
547
+ // and no mender. The pointer entry rides the root-invoking store in this
548
+ // window, so it republishes the `did:web` projection beside itself.
542
549
  const generation = await ensurePointedClientAnnexGeneration({
543
550
  account: published,
544
551
  wasServerUrl,
545
552
  accountSpaceId: spaceId,
546
553
  ladderSeed,
554
+ signer: { kind: 'ladder' },
555
+ logOnly: false,
547
556
  was: bootstrapWas,
548
557
  mintController: bootstrapAgent.id,
549
558
  mintGenerationDelegation: ladderSignedGenerationDelegationMinter({
@@ -565,33 +574,20 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
565
574
  // promotion, which the interim did:key-signed bridge cannot), and the
566
575
  // re-bind: full pointer, both delegations, the management zcap to the
567
576
  // account DID.
568
- const ladderZcap = await ladderVmZcapClient({ accountDid: did, ladderSeed });
569
- const bridge = await delegateLogWrite({
570
- zcapClient: ladderZcap,
577
+ const { bridge, sibling, rebind } = await rebindCredentialAnchoredRecord({
578
+ accountDid: did,
571
579
  pointer: fullPointer,
572
- recoveryClientDid: standing.clientDid
573
- });
574
- const sibling = await mintDelegatedClientsDelegation({
575
- zcapClient: ladderZcap,
576
- wasServerUrl,
580
+ ladderSeed,
581
+ standingClientDid: standing.clientDid,
577
582
  clientAnnexSpaceId: clientAnnex.spaceId,
578
- controller: standing.clientDid,
579
- ...(now !== undefined ? { now } : {})
580
- });
581
- const rebind = await bindRecord({
582
- controller: bootstrapAgent.id,
583
- pointer: fullPointer,
584
- delegation: bridge,
585
- delegatedClients: sibling,
586
- delegateManagementTo: did,
583
+ bindRecord,
584
+ stage: 're-bind',
587
585
  ...(firstBindCreatedAt !== undefined
588
586
  ? { priorCreatedAt: firstBindCreatedAt }
589
- : {})
587
+ : {}),
588
+ ...(now !== undefined ? { now } : {})
590
589
  });
591
- assertBindResult({ bind: rebind, stage: 're-bind' });
592
590
  stage('record-rebind');
593
- const delegationKeyId = delegationProofKeyId(bridge);
594
- const delegatedClientsKeyId = delegationProofKeyId(sibling);
595
591
  const establishment = {
596
592
  did,
597
593
  // The pointer entry's post-publish head when stage 3 wrote one; the head
@@ -601,28 +597,17 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
601
597
  ...(rebind.manageCapability
602
598
  ? { manageCapability: rebind.manageCapability }
603
599
  : {}),
604
- standingFields: {
605
- rosterKid: standing.recipientKid,
606
- keyAgreementKeyMultibase: standing.keyAgreementKeyMultibase,
607
- updateKeyMultibase: attributed.rung.keyMultibase,
608
- unlockClientDid: standing.clientDid,
609
- ...(delegationKeyId ? { delegationKeyId } : {}),
610
- ...(zcapExpires(bridge)
611
- ? { delegationExpires: zcapExpires(bridge) }
612
- : {}),
613
- ...(delegatedClientsKeyId ? { delegatedClientsKeyId } : {}),
614
- ...(zcapExpires(sibling)
615
- ? { delegatedClientsExpires: zcapExpires(sibling) }
616
- : {}),
617
- ...(rebind.unlockKeyAgreementKeyId
618
- ? { unlockKeyAgreementKeyId: rebind.unlockKeyAgreementKeyId }
619
- : {}),
620
- ...(rebind.unlockKeyAgreementKeyMultibase
621
- ? {
622
- unlockKeyAgreementKeyMultibase: rebind.unlockKeyAgreementKeyMultibase
623
- }
624
- : {})
625
- },
600
+ standingFields: credentialAnchoredStandingFields({
601
+ standing,
602
+ // The rung the pointer entry was signed with when stage 3 wrote one (a
603
+ // lost race may have climbed past the pre-flight's answer), else the
604
+ // rung stage 3's pre-flight found standing. The ladder arm always
605
+ // reports one.
606
+ updateKeyMultibase: generation.rung.keyMultibase,
607
+ bridge,
608
+ sibling,
609
+ unlock: rebind
610
+ }),
626
611
  ...(genesis.epochsSkipped ? { epochsSkipped: genesis.epochsSkipped } : {}),
627
612
  failed
628
613
  };
@@ -666,13 +651,96 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
666
651
  return establishment;
667
652
  }
668
653
  /**
669
- * A delegation's `expires` caveat, when it carries one.
654
+ * The re-bind every credential-anchored path ends on (the establishment's
655
+ * stage 4, and the mend's record-downgrade re-bind): the ladder-VM-signed
656
+ * bridge and `delegatedClients` sibling delegations, then the record
657
+ * re-bound through the caller's `bindRecord` hook with the full pointer, both
658
+ * delegations, and the management delegation to the account DID. The
659
+ * delegations are ladder-VM-signed because they must survive promotion,
660
+ * which the interim did:key-signed bridge cannot.
670
661
  *
671
- * @param zcap {IZcap}
672
- * @returns {string | undefined}
662
+ * @param options {object}
663
+ * @param options.accountDid {string} the published account DID
664
+ * @param options.pointer {AccountPointer} the full pointer, naming that DID
665
+ * @param options.ladderSeed {Uint8Array}
666
+ * @param options.standingClientDid {string} the credential's standing
667
+ * client did:key, the delegations' controller
668
+ * @param options.clientAnnexSpaceId {string} the pointed generation's Space
669
+ * (the sibling delegation's target)
670
+ * @param options.bindRecord {CredentialAnchoredBindRecordHook}
671
+ * @param options.stage {string} the bind's name in the result assertion
672
+ * @param [options.priorCreatedAt] {string} the earlier bind's stamp, when
673
+ * one stands
674
+ * @param [options.now] {number} epoch milliseconds, for tests
675
+ * @returns {Promise<{ bridge: IZcap, sibling: IZcap,
676
+ * rebind: CredentialAnchoredBindResult }>}
673
677
  */
674
- export function zcapExpires(zcap) {
675
- return zcap.expires;
678
+ export async function rebindCredentialAnchoredRecord({ accountDid, pointer, ladderSeed, standingClientDid, clientAnnexSpaceId, bindRecord, stage, priorCreatedAt, now }) {
679
+ // The record's controller field is the ladder VM's bare did:key, derived
680
+ // from the same seed the delegations sign under so the two cannot diverge.
681
+ const { agent: ladderAgent, zcapClient: ladderZcap } = await ladderVmSigners({
682
+ accountDid,
683
+ ladderSeed
684
+ });
685
+ const controller = ladderAgent.id;
686
+ const bridge = await delegateLogWrite({
687
+ zcapClient: ladderZcap,
688
+ pointer,
689
+ recoveryClientDid: standingClientDid
690
+ });
691
+ const sibling = await mintDelegatedClientsDelegation({
692
+ zcapClient: ladderZcap,
693
+ wasServerUrl: pointer.host,
694
+ clientAnnexSpaceId,
695
+ controller: standingClientDid,
696
+ ...(now !== undefined ? { now } : {})
697
+ });
698
+ const rebind = await bindRecord({
699
+ controller,
700
+ pointer,
701
+ delegation: bridge,
702
+ delegatedClients: sibling,
703
+ delegateManagementTo: accountDid,
704
+ ...(priorCreatedAt !== undefined ? { priorCreatedAt } : {})
705
+ });
706
+ assertBindResult({ bind: rebind, stage });
707
+ return { bridge, sibling, rebind };
708
+ }
709
+ /**
710
+ * The one builder of the standing fields a registry entry records, shared
711
+ * by the establishment (from the delegations it just minted and the re-bind
712
+ * it just ran) and the mend's registry arm (from the caller's standing
713
+ * record). Optional members are present iff their source is.
714
+ *
715
+ * @param options {object}
716
+ * @param options.standing {object} the credential's standing client:
717
+ * `clientDid`, `keyAgreementKeyMultibase`, `recipientKid`
718
+ * @param options.updateKeyMultibase {string} the ladder's attributed rung
719
+ * @param [options.bridge] {IZcap} the record's bridge delegation
720
+ * @param [options.sibling] {IZcap} the record's `delegatedClients` sibling
721
+ * @param [options.unlock] {object} the unlock key-agreement members, from
722
+ * the bind result or the standing record
723
+ * @returns {CredentialAnchoredStandingFields}
724
+ */
725
+ export function credentialAnchoredStandingFields({ standing, updateKeyMultibase, bridge, sibling, unlock }) {
726
+ return {
727
+ rosterKid: standing.recipientKid,
728
+ keyAgreementKeyMultibase: standing.keyAgreementKeyMultibase,
729
+ updateKeyMultibase,
730
+ unlockClientDid: standing.clientDid,
731
+ ...recordedDelegationFields({
732
+ ...(bridge ? { delegation: bridge } : {}),
733
+ ...(sibling ? { delegatedClients: sibling } : {})
734
+ }),
735
+ ...(unlock?.unlockKeyAgreementKeyId
736
+ ? { unlockKeyAgreementKeyId: unlock.unlockKeyAgreementKeyId }
737
+ : {}),
738
+ ...(unlock?.unlockKeyAgreementKeyMultibase
739
+ ? {
740
+ unlockKeyAgreementKeyMultibase: unlock.unlockKeyAgreementKeyMultibase
741
+ }
742
+ : {})
743
+ };
676
744
  }
677
745
  /**
678
746
  * Asserts a `bindRecord` result carries the members the ceremony reads --
@@ -1 +1 @@
1
- {"version":3,"file":"establish.js","sourceRoot":"","sources":["../../src/clientAnnex/establish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"establish.js","sourceRoot":"","sources":["../../src/clientAnnex/establish.ts"],"names":[],"mappings":"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"}