@interop/wallet-core 0.66.0 → 0.68.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 (257) hide show
  1. package/README.md +12 -8
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +6 -10
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +34 -56
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +46 -29
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +111 -86
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +7 -16
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +13 -24
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +33 -129
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +43 -182
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts +26 -12
  19. package/dist/clientAnnex/gc.d.ts.map +1 -1
  20. package/dist/clientAnnex/gc.js +60 -57
  21. package/dist/clientAnnex/gc.js.map +1 -1
  22. package/dist/clientAnnex/heal.d.ts +75 -18
  23. package/dist/clientAnnex/heal.d.ts.map +1 -1
  24. package/dist/clientAnnex/heal.js +79 -147
  25. package/dist/clientAnnex/heal.js.map +1 -1
  26. package/dist/clientAnnex/index.d.ts +8 -8
  27. package/dist/clientAnnex/index.d.ts.map +1 -1
  28. package/dist/clientAnnex/index.js +5 -5
  29. package/dist/clientAnnex/index.js.map +1 -1
  30. package/dist/clientAnnex/ladder.d.ts +51 -4
  31. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  32. package/dist/clientAnnex/ladder.js +283 -47
  33. package/dist/clientAnnex/ladder.js.map +1 -1
  34. package/dist/clientAnnex/ladderAnchored.d.ts +62 -73
  35. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  36. package/dist/clientAnnex/ladderAnchored.js +103 -117
  37. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  38. package/dist/clientAnnex/log.d.ts +123 -125
  39. package/dist/clientAnnex/log.d.ts.map +1 -1
  40. package/dist/clientAnnex/log.js +174 -233
  41. package/dist/clientAnnex/log.js.map +1 -1
  42. package/dist/clientAnnex/mend.d.ts +0 -4
  43. package/dist/clientAnnex/mend.d.ts.map +1 -1
  44. package/dist/clientAnnex/mend.js +50 -51
  45. package/dist/clientAnnex/mend.js.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +25 -13
  47. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  48. package/dist/clientAnnex/recoveryLadderAnchored.js +80 -303
  49. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  50. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
  51. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
  52. package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
  53. package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
  54. package/dist/clientAnnex/selfEnroll.d.ts +6 -10
  55. package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
  56. package/dist/clientAnnex/selfEnroll.js +13 -18
  57. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  58. package/dist/clientAnnex/zcap.d.ts +19 -0
  59. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  60. package/dist/clientAnnex/zcap.js +80 -12
  61. package/dist/clientAnnex/zcap.js.map +1 -1
  62. package/dist/clients/index.d.ts +3 -2
  63. package/dist/clients/index.d.ts.map +1 -1
  64. package/dist/clients/index.js +3 -2
  65. package/dist/clients/index.js.map +1 -1
  66. package/dist/clients/listing.d.ts.map +1 -1
  67. package/dist/clients/listing.js +33 -15
  68. package/dist/clients/listing.js.map +1 -1
  69. package/dist/clients/policy.d.ts +18 -0
  70. package/dist/clients/policy.d.ts.map +1 -1
  71. package/dist/clients/policy.js +22 -8
  72. package/dist/clients/policy.js.map +1 -1
  73. package/dist/clients/revocation.d.ts +18 -30
  74. package/dist/clients/revocation.d.ts.map +1 -1
  75. package/dist/clients/revocation.js +12 -27
  76. package/dist/clients/revocation.js.map +1 -1
  77. package/dist/clients/rosterPolicy.d.ts +6 -1
  78. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  79. package/dist/clients/rosterPolicy.js +27 -30
  80. package/dist/clients/rosterPolicy.js.map +1 -1
  81. package/dist/descriptors/errors.d.ts +6 -5
  82. package/dist/descriptors/errors.d.ts.map +1 -1
  83. package/dist/descriptors/errors.js +6 -5
  84. package/dist/descriptors/errors.js.map +1 -1
  85. package/dist/descriptors/index.d.ts +7 -3
  86. package/dist/descriptors/index.d.ts.map +1 -1
  87. package/dist/descriptors/index.js +7 -3
  88. package/dist/descriptors/index.js.map +1 -1
  89. package/dist/descriptors/logSource.d.ts +28 -6
  90. package/dist/descriptors/logSource.d.ts.map +1 -1
  91. package/dist/descriptors/logSource.js +33 -7
  92. package/dist/descriptors/logSource.js.map +1 -1
  93. package/dist/enrollment/enrollment.d.ts.map +1 -1
  94. package/dist/enrollment/enrollment.js +3 -7
  95. package/dist/enrollment/enrollment.js.map +1 -1
  96. package/dist/genesis/accountGenesis.d.ts +11 -16
  97. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  98. package/dist/genesis/accountGenesis.js +43 -47
  99. package/dist/genesis/accountGenesis.js.map +1 -1
  100. package/dist/genesis/kmsAuthentication.d.ts +50 -0
  101. package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
  102. package/dist/genesis/kmsAuthentication.js +49 -0
  103. package/dist/genesis/kmsAuthentication.js.map +1 -0
  104. package/dist/keyring/kdf.d.ts +16 -20
  105. package/dist/keyring/kdf.d.ts.map +1 -1
  106. package/dist/keyring/kdf.js +2 -2
  107. package/dist/keyring/kdf.js.map +1 -1
  108. package/dist/keyring/unlockSpace.d.ts +8 -30
  109. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  110. package/dist/keyring/unlockSpace.js +8 -31
  111. package/dist/keyring/unlockSpace.js.map +1 -1
  112. package/dist/keys/clientKeyRecord.d.ts +2 -1
  113. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  114. package/dist/keys/clientKeyRecord.js +28 -11
  115. package/dist/keys/clientKeyRecord.js.map +1 -1
  116. package/dist/keys/index.d.ts +6 -2
  117. package/dist/keys/index.d.ts.map +1 -1
  118. package/dist/keys/index.js +5 -1
  119. package/dist/keys/index.js.map +1 -1
  120. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  121. package/dist/keys/rosterLogStore.js +14 -5
  122. package/dist/keys/rosterLogStore.js.map +1 -1
  123. package/dist/keys/spaceEpochs.d.ts +92 -3
  124. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  125. package/dist/keys/spaceEpochs.js +110 -4
  126. package/dist/keys/spaceEpochs.js.map +1 -1
  127. package/dist/keys/userKeyRoster.d.ts +30 -3
  128. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  129. package/dist/keys/userKeyRoster.js +90 -15
  130. package/dist/keys/userKeyRoster.js.map +1 -1
  131. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  132. package/dist/keys/userKeyRosterCascade.js +5 -1
  133. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  134. package/dist/recovery/continuation.d.ts +250 -0
  135. package/dist/recovery/continuation.d.ts.map +1 -0
  136. package/dist/recovery/continuation.js +467 -0
  137. package/dist/recovery/continuation.js.map +1 -0
  138. package/dist/recovery/index.d.ts +12 -8
  139. package/dist/recovery/index.d.ts.map +1 -1
  140. package/dist/recovery/index.js +11 -7
  141. package/dist/recovery/index.js.map +1 -1
  142. package/dist/recovery/recoveryDelegation.d.ts +23 -126
  143. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  144. package/dist/recovery/recoveryDelegation.js +1 -266
  145. package/dist/recovery/recoveryDelegation.js.map +1 -1
  146. package/dist/recovery/recoveryWebvh.d.ts +52 -107
  147. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  148. package/dist/recovery/recoveryWebvh.js +54 -403
  149. package/dist/recovery/recoveryWebvh.js.map +1 -1
  150. package/dist/request/classify.d.ts +3 -14
  151. package/dist/request/classify.d.ts.map +1 -1
  152. package/dist/request/classify.js +19 -40
  153. package/dist/request/classify.js.map +1 -1
  154. package/dist/request/index.d.ts +1 -0
  155. package/dist/request/index.d.ts.map +1 -1
  156. package/dist/request/index.js +1 -0
  157. package/dist/request/index.js.map +1 -1
  158. package/dist/request/onboarding.d.ts.map +1 -1
  159. package/dist/request/onboarding.js +19 -27
  160. package/dist/request/onboarding.js.map +1 -1
  161. package/dist/request/parse.d.ts +5 -3
  162. package/dist/request/parse.d.ts.map +1 -1
  163. package/dist/request/parse.js +7 -6
  164. package/dist/request/parse.js.map +1 -1
  165. package/dist/request/processRequest.d.ts.map +1 -1
  166. package/dist/request/processRequest.js +2 -1
  167. package/dist/request/processRequest.js.map +1 -1
  168. package/dist/request/queryPredicates.d.ts +98 -0
  169. package/dist/request/queryPredicates.d.ts.map +1 -0
  170. package/dist/request/queryPredicates.js +107 -0
  171. package/dist/request/queryPredicates.js.map +1 -0
  172. package/dist/resourceLog/document.d.ts +39 -0
  173. package/dist/resourceLog/document.d.ts.map +1 -1
  174. package/dist/resourceLog/document.js +41 -0
  175. package/dist/resourceLog/document.js.map +1 -1
  176. package/dist/resourceLog/index.d.ts +2 -2
  177. package/dist/resourceLog/index.js +2 -2
  178. package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
  179. package/dist/resourceLog/ladderRungs.js +3 -2
  180. package/dist/resourceLog/ladderRungs.js.map +1 -1
  181. package/dist/sync/contactsConflict.d.ts.map +1 -1
  182. package/dist/sync/contactsConflict.js +8 -2
  183. package/dist/sync/contactsConflict.js.map +1 -1
  184. package/dist/sync/engine.d.ts +38 -23
  185. package/dist/sync/engine.d.ts.map +1 -1
  186. package/dist/sync/engine.js +36 -5
  187. package/dist/sync/engine.js.map +1 -1
  188. package/dist/sync/index.d.ts +9 -12
  189. package/dist/sync/index.d.ts.map +1 -1
  190. package/dist/sync/index.js +8 -11
  191. package/dist/sync/index.js.map +1 -1
  192. package/dist/sync/push.d.ts.map +1 -1
  193. package/dist/sync/push.js +1 -2
  194. package/dist/sync/push.js.map +1 -1
  195. package/dist/sync/remint.d.ts +0 -31
  196. package/dist/sync/remint.d.ts.map +1 -1
  197. package/dist/sync/remint.js +32 -1
  198. package/dist/sync/remint.js.map +1 -1
  199. package/dist/sync/types.d.ts +4 -41
  200. package/dist/sync/types.d.ts.map +1 -1
  201. package/dist/sync/types.js +4 -47
  202. package/dist/sync/types.js.map +1 -1
  203. package/dist/unlock/index.d.ts +1 -1
  204. package/dist/unlock/index.d.ts.map +1 -1
  205. package/dist/unlock/index.js +1 -1
  206. package/dist/unlock/index.js.map +1 -1
  207. package/dist/unlock/retire.d.ts +16 -64
  208. package/dist/unlock/retire.d.ts.map +1 -1
  209. package/dist/unlock/retire.js +7 -86
  210. package/dist/unlock/retire.js.map +1 -1
  211. package/dist/unlock/standingWebvh.d.ts +27 -61
  212. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  213. package/dist/unlock/standingWebvh.js +40 -92
  214. package/dist/unlock/standingWebvh.js.map +1 -1
  215. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  216. package/dist/unlock/unlockRecord.js +69 -44
  217. package/dist/unlock/unlockRecord.js.map +1 -1
  218. package/dist/webvh/accountEntry.d.ts +68 -19
  219. package/dist/webvh/accountEntry.d.ts.map +1 -1
  220. package/dist/webvh/accountEntry.js +117 -37
  221. package/dist/webvh/accountEntry.js.map +1 -1
  222. package/dist/webvh/delegatedLogStore.d.ts +24 -13
  223. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  224. package/dist/webvh/delegatedLogStore.js +40 -11
  225. package/dist/webvh/delegatedLogStore.js.map +1 -1
  226. package/dist/webvh/didWebvh.d.ts +91 -86
  227. package/dist/webvh/didWebvh.d.ts.map +1 -1
  228. package/dist/webvh/didWebvh.js +117 -142
  229. package/dist/webvh/didWebvh.js.map +1 -1
  230. package/dist/webvh/enrollClient.d.ts +2 -8
  231. package/dist/webvh/enrollClient.d.ts.map +1 -1
  232. package/dist/webvh/enrollClient.js +22 -31
  233. package/dist/webvh/enrollClient.js.map +1 -1
  234. package/dist/webvh/index.d.ts +12 -8
  235. package/dist/webvh/index.d.ts.map +1 -1
  236. package/dist/webvh/index.js +10 -7
  237. package/dist/webvh/index.js.map +1 -1
  238. package/dist/webvh/listClients.d.ts.map +1 -1
  239. package/dist/webvh/listClients.js +102 -65
  240. package/dist/webvh/listClients.js.map +1 -1
  241. package/dist/webvh/mergeMethods.d.ts +84 -0
  242. package/dist/webvh/mergeMethods.d.ts.map +1 -0
  243. package/dist/webvh/mergeMethods.js +46 -0
  244. package/dist/webvh/mergeMethods.js.map +1 -0
  245. package/dist/webvh/revokeClient.d.ts +15 -11
  246. package/dist/webvh/revokeClient.d.ts.map +1 -1
  247. package/dist/webvh/revokeClient.js +130 -57
  248. package/dist/webvh/revokeClient.js.map +1 -1
  249. package/dist/webvh/verifyLog.d.ts +45 -4
  250. package/dist/webvh/verifyLog.d.ts.map +1 -1
  251. package/dist/webvh/verifyLog.js +62 -21
  252. package/dist/webvh/verifyLog.js.map +1 -1
  253. package/dist/webvh/wasIdStore.d.ts +16 -3
  254. package/dist/webvh/wasIdStore.d.ts.map +1 -1
  255. package/dist/webvh/wasIdStore.js +18 -3
  256. package/dist/webvh/wasIdStore.js.map +1 -1
  257. package/package.json +11 -11
package/README.md CHANGED
@@ -27,11 +27,12 @@ The subpaths:
27
27
 
28
28
  - **`@interop/wallet-core/sync`** -- the Wallet Attached Storage (WAS)
29
29
  replication engine core: the `SyncEngine` orchestration (single-flight,
30
- migrate-once, backoff), the `runPull` / `runPush` algorithms, the replica-side
31
- `SyncStore` seam, and the generic `SyncedCollectionSpec` shape. The wire
32
- contract and port (`WasSyncPort`, `WireDoc`, `DocCipher`, ...) are re-exported
33
- from [`@interop/was-client`](https://npm.im/@interop/was-client) so an engine
34
- consumer imports one package.
30
+ migrate-once, memoized provisioning invalidated on demand via
31
+ `invalidateProvisioning`, backoff), the `runPull` / `runPush` algorithms, the
32
+ replica-side `SyncStore` seam, and the generic `SyncedCollectionSpec` shape.
33
+ The wire contract and port (`WasSyncPort`, `WireDoc`, `DocCipher`, ...) are
34
+ re-exported from [`@interop/was-client`](https://npm.im/@interop/was-client)
35
+ so an engine consumer imports one package.
35
36
 
36
37
  - **`@interop/wallet-core/space`** -- the wallet Space layout contract: the
37
38
  shared collection ids and descriptive specs (`private-credentials`,
@@ -109,7 +110,9 @@ The subpaths:
109
110
  the account document no longer keys. Also `ensureWalletSpaceEpochs`, the
110
111
  provision-time install of each encrypted wallet collection's key epoch[0] (a
111
112
  fresh random epoch key wrapped to the user key) -- the EDV-bearing second step
112
- of `provisionWalletSpace`. Also the enrolled-client display labels
113
+ of `provisionWalletSpace`. Also `walletSpaceProvisioner`, which builds the
114
+ sync engine's `ensureProvisioned` closure over both steps, single-flight
115
+ across concurrent callers. Also the enrolled-client display labels
113
116
  (`key-map/client-labels.json`) and their WAS-backed store. Also the client-key
114
117
  record codec: the contents and strict validation of the local record each
115
118
  wallet client keeps its own key material in (storage and wrapping stay
@@ -124,8 +127,9 @@ The subpaths:
124
127
 
125
128
  - **`@interop/wallet-core/descriptors`** -- collection encryption-descriptor
126
129
  acquisition (fetch / cache / offline fallback), the log-governed descriptor
127
- source (every read re-verifies the governing resource log), and the
128
- unknown-epoch refresh policy, including a self-refreshing EDV document cipher.
130
+ source (every read re-verifies the governing resource log, keyed per
131
+ collection by `collectionDescriptorLogPinId`), and the unknown-epoch refresh
132
+ policy, including a self-refreshing EDV document cipher.
129
133
 
130
134
  - **`@interop/wallet-core/keyring`** -- the unlock layer: the unlock derivation,
131
135
  the signed `{ version, encryption, wrapped, proof }` account-pointer record
@@ -41,10 +41,11 @@
41
41
  * installing epoch[0] under it on a collection the earlier run never
42
42
  * reached would key that collection to nothing, permanently, since the
43
43
  * install is create-if-absent and every later ensure adopts it. So the
44
- * stage is skipped whole and reported on `epochsSkipped`; the caller
45
- * that recovers the roster's real key is the one installer. With both
46
- * gates the tear heal is always clean: no roster means no epochs, and a
47
- * fresh user key re-runs both.
44
+ * stage is refused whole by `ensureWalletSpaceEpochs`'s mint gate (the
45
+ * roster descriptor is handed to it) and reported on `epochsSkipped`;
46
+ * the caller that recovers the roster's real key is the one installer.
47
+ * With both gates the tear heal is always clean: no roster means no
48
+ * epochs, and a fresh user key re-runs both.
48
49
  * 6. Space-controller promotion, last -- every earlier stage ran under the
49
50
  * bootstrap did:key the Space's stored controller authorizes.
50
51
  *
@@ -59,7 +60,6 @@ import type { DIDLog } from '@interop/did-method-webvh';
59
60
  import type { KmsAuthenticationBinding, PublishedWebvhLog, WebvhIdStore } from '../webvh/didWebvh.js';
60
61
  import type { UnlockKeyAgreementPublication } from '../unlock/standingWebvh.js';
61
62
  import { type UserKey } from '../keys/index.js';
62
- import type { ResourceLogPinStore } from '@interop/vh-resource-log';
63
63
  import { type AccountGenesisResult } from '../genesis/accountGenesis.js';
64
64
  import { type StageNotifier } from '../log.js';
65
65
  /**
@@ -121,9 +121,6 @@ export declare function mintCredentialAnchoredAccountKeySet(): Promise<{
121
121
  * @param [options.expectedDid] {string} the account DID, when the caller
122
122
  * holds a pointer that already names one (a heal re-run); a fresh signup
123
123
  * and a fresh-terminal heal legitimately hold none
124
- * @param [options.accountLogPinStore] {ResourceLogPinStore} the chain-head
125
- * pins the genesis read and create ride (a transient signup passes the
126
- * visit's in-memory store)
127
124
  * @param [options.onDidPublished] {Function} `({ did }) => Promise<void>`
128
125
  * @param [options.promoteController] {boolean} default `true`; an app whose
129
126
  * account pointer must durably name the DID first (freewallet's record
@@ -139,7 +136,7 @@ export declare function mintCredentialAnchoredAccountKeySet(): Promise<{
139
136
  * stage adopted or minted, and which of the two it was -- the head is only
140
137
  * safely reusable downstream when this run minted it
141
138
  */
142
- export declare function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl, spaceId, ladderSeed, keyAgreement, standingRecipient, userKey, idStore, rosterStoreFor, provideKmsAuthentication, expectedDid, accountLogPinStore, onDidPublished, promoteController, onStage }: {
139
+ export declare function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl, spaceId, ladderSeed, keyAgreement, standingRecipient, userKey, idStore, rosterStoreFor, provideKmsAuthentication, expectedDid, onDidPublished, promoteController, onStage }: {
143
140
  was: WasClient;
144
141
  wasServerUrl: string;
145
142
  spaceId: string;
@@ -156,7 +153,6 @@ export declare function ensureCredentialAnchoredAccountGenesis({ was, wasServerU
156
153
  spaceReady: Promise<unknown>;
157
154
  }) => Promise<KmsAuthenticationBinding | undefined>;
158
155
  expectedDid?: string;
159
- accountLogPinStore?: ResourceLogPinStore;
160
156
  onDidPublished?: (published: {
161
157
  did: string;
162
158
  }) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"credentialAnchoredGenesis.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/credentialAnchoredGenesis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AAM7D;;;;;;;;GAQG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC3B,CAAC,CAED;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,wBAAsB,sCAAsC,CAAC,EAC3D,GAAG,EACH,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,iBAAwB,EACxB,OAAO,EACR,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,6BAA6B,CAAA;IAC3C,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,cAAc,EAAE,CAAC,OAAO,EAAE;QACxB,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,KAAK,yBAAyB,CAAA;IAC/B,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE;QACnC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7B,KAAK,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAA;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;IACxC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,GAAG,OAAO,CACT,oBAAoB,GAAG;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAC5E,CAwJA"}
1
+ {"version":3,"file":"credentialAnchoredGenesis.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/credentialAnchoredGenesis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AAM7D;;;;;;;;GAQG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC3B,CAAC,CAED;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAsB,sCAAsC,CAAC,EAC3D,GAAG,EACH,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,cAAc,EACd,iBAAwB,EACxB,OAAO,EACR,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,6BAA6B,CAAA;IAC3C,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,cAAc,EAAE,CAAC,OAAO,EAAE;QACxB,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,KAAK,yBAAyB,CAAA;IAC/B,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE;QACnC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7B,KAAK,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAA;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,GAAG,OAAO,CACT,oBAAoB,GAAG;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAC5E,CAqIA"}
@@ -41,10 +41,11 @@
41
41
  * installing epoch[0] under it on a collection the earlier run never
42
42
  * reached would key that collection to nothing, permanently, since the
43
43
  * install is create-if-absent and every later ensure adopts it. So the
44
- * stage is skipped whole and reported on `epochsSkipped`; the caller
45
- * that recovers the roster's real key is the one installer. With both
46
- * gates the tear heal is always clean: no roster means no epochs, and a
47
- * fresh user key re-runs both.
44
+ * stage is refused whole by `ensureWalletSpaceEpochs`'s mint gate (the
45
+ * roster descriptor is handed to it) and reported on `epochsSkipped`;
46
+ * the caller that recovers the roster's real key is the one installer.
47
+ * With both gates the tear heal is always clean: no roster means no
48
+ * epochs, and a fresh user key re-runs both.
48
49
  * 6. Space-controller promotion, last -- every earlier stage ran under the
49
50
  * bootstrap did:key the Space's stored controller authorizes.
50
51
  *
@@ -58,6 +59,7 @@ import { ladderVmAgent } from './zcap.js';
58
59
  import { ensureLadderAnchoredDidWebvh } from './ladderAnchored.js';
59
60
  import { ensureWalletSpaceEpochs, mintUserKey } from '../keys/index.js';
60
61
  import { AccountGenesisSpaceError, ensurePromotedSpaceController, mintSpaceId } from '../genesis/accountGenesis.js';
62
+ import { startKmsAuthentication } from '../genesis/kmsAuthentication.js';
61
63
  import { stageNotifier } from '../log.js';
62
64
  import { CONTROLLER_PROMOTION_STAGE } from './stages.js';
63
65
  /**
@@ -118,9 +120,6 @@ export async function mintCredentialAnchoredAccountKeySet() {
118
120
  * @param [options.expectedDid] {string} the account DID, when the caller
119
121
  * holds a pointer that already names one (a heal re-run); a fresh signup
120
122
  * and a fresh-terminal heal legitimately hold none
121
- * @param [options.accountLogPinStore] {ResourceLogPinStore} the chain-head
122
- * pins the genesis read and create ride (a transient signup passes the
123
- * visit's in-memory store)
124
123
  * @param [options.onDidPublished] {Function} `({ did }) => Promise<void>`
125
124
  * @param [options.promoteController] {boolean} default `true`; an app whose
126
125
  * account pointer must durably name the DID first (freewallet's record
@@ -136,7 +135,7 @@ export async function mintCredentialAnchoredAccountKeySet() {
136
135
  * stage adopted or minted, and which of the two it was -- the head is only
137
136
  * safely reusable downstream when this run minted it
138
137
  */
139
- export async function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl, spaceId, ladderSeed, keyAgreement, standingRecipient, userKey, idStore, rosterStoreFor, provideKmsAuthentication, expectedDid, accountLogPinStore, onDidPublished, promoteController = true, onStage }) {
138
+ export async function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl, spaceId, ladderSeed, keyAgreement, standingRecipient, userKey, idStore, rosterStoreFor, provideKmsAuthentication, expectedDid, onDidPublished, promoteController = true, onStage }) {
140
139
  const failed = [];
141
140
  const stage = stageNotifier(onStage);
142
141
  const bootstrap = await ladderVmAgent({ ladderSeed });
@@ -156,24 +155,10 @@ export async function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl
156
155
  // the ladder-and-credential-only genesis rather than aborting: every later
157
156
  // ceremony anchors in the ladder, and the document simply publishes no
158
157
  // `authentication` relation.
159
- // Started inside the same guard the join uses, so a thunk that throws
160
- // synchronously is collected like one that rejects.
161
- let kmsRun;
162
- // The flag rather than the value decides whether the stage is reported, so
163
- // a thunk rejecting with `undefined` is still a collected failure.
164
- let kmsFailed = false;
165
- let kmsFailure;
166
- try {
167
- kmsRun = provideKmsAuthentication?.({ spaceReady });
168
- }
169
- catch (err) {
170
- kmsFailed = true;
171
- kmsFailure = err;
172
- }
173
- // A Space that never came up returns below while the thunk is still in
174
- // flight, so its rejection is claimed here rather than surfacing as an
175
- // unhandled one.
176
- kmsRun?.catch(() => { });
158
+ const kms = startKmsAuthentication({
159
+ ...(provideKmsAuthentication ? { provideKmsAuthentication } : {}),
160
+ spaceReady
161
+ });
177
162
  try {
178
163
  await spaceReady;
179
164
  }
@@ -183,21 +168,12 @@ export async function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl
183
168
  stage('space-provisioning');
184
169
  // The join: the genesis entry carries the KMS binding, so it waits on the
185
170
  // whole stage even though the Space no longer does.
186
- let kmsAuthentication;
187
- if (kmsRun) {
188
- try {
189
- kmsAuthentication = await kmsRun;
190
- }
191
- catch (err) {
192
- kmsFailed = true;
193
- kmsFailure = err;
194
- }
195
- }
196
- if (kmsFailed) {
197
- failed.push({ stage: 'kmsAuthentication', error: kmsFailure });
171
+ const kmsAuthentication = await kms.join();
172
+ if (kmsAuthentication.failed) {
173
+ failed.push({ stage: 'kmsAuthentication', error: kmsAuthentication.error });
198
174
  }
199
175
  stage('kms-authentication');
200
- const didWebKeys = kmsAuthentication?.keys;
176
+ const didWebKeys = kmsAuthentication.binding?.keys;
201
177
  // 3. The ladder-anchored did:webvh genesis -- probe, adopt
202
178
  // (ladder-attributed), or create-and-publish. Fatal on failure, like the
203
179
  // enrolled-client stage.
@@ -206,13 +182,12 @@ export async function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl
206
182
  wasServerUrl,
207
183
  spaceId,
208
184
  ...(didWebKeys ? { didWebKeys } : {}),
209
- ...(kmsAuthentication?.etag !== undefined && {
210
- keysJsonEtag: kmsAuthentication.etag
185
+ ...(kmsAuthentication.binding?.etag !== undefined && {
186
+ keysJsonEtag: kmsAuthentication.binding.etag
211
187
  }),
212
188
  ladderSeed,
213
189
  keyAgreement,
214
- ...(expectedDid !== undefined ? { expectedDid } : {}),
215
- ...(accountLogPinStore ? { pinStore: accountLogPinStore } : {})
190
+ ...(expectedDid !== undefined ? { expectedDid } : {})
216
191
  });
217
192
  await onDidPublished?.({ did });
218
193
  stage('webvh-genesis');
@@ -237,25 +212,28 @@ export async function ensureCredentialAnchoredAccountGenesis({ was, wasServerUrl
237
212
  }
238
213
  stage('roster-genesis');
239
214
  // 5. Epoch[0] on every encrypted roster collection, only behind a landed
240
- // roster whose current epoch IS this run's user key (see the module doc:
241
- // the user key is memory-only here, and an adopted roster keyed to another
242
- // run's key would have the collections installed under a throwaway).
215
+ // roster and through the fan-out's mint gate: the user key is memory-only
216
+ // here, and an adopted roster keyed to another run's key would otherwise
217
+ // have the collections installed under a throwaway (see the module doc).
243
218
  let epochs;
244
219
  let epochsSkipped;
245
220
  if (rosterDescriptor) {
246
- if (rosterDescriptor.currentEpoch === userKey.id) {
247
- try {
248
- epochs = await ensureWalletSpaceEpochs({ was, spaceId, userKey });
221
+ try {
222
+ const fanOut = await ensureWalletSpaceEpochs({
223
+ was,
224
+ spaceId,
225
+ userKey,
226
+ rosterDescriptor
227
+ });
228
+ if (fanOut.skipped) {
229
+ epochsSkipped = fanOut.skipped;
249
230
  }
250
- catch (err) {
251
- failed.push({ stage: 'epochs', error: err });
231
+ else {
232
+ epochs = fanOut;
252
233
  }
253
234
  }
254
- else {
255
- epochsSkipped =
256
- rosterDescriptor.currentEpoch !== undefined
257
- ? { rosterEpochId: rosterDescriptor.currentEpoch }
258
- : {};
235
+ catch (err) {
236
+ failed.push({ stage: 'epochs', error: err });
259
237
  }
260
238
  }
261
239
  stage('collection-epochs');
@@ -1 +1 @@
1
- {"version":3,"file":"credentialAnchoredGenesis.js","sourceRoot":"","sources":["../../src/clientAnnex/credentialAnchoredGenesis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentialAnchoredGenesis.js","sourceRoot":"","sources":["../../src/clientAnnex/credentialAnchoredGenesis.ts"],"names":[],"mappings":"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"}
@@ -51,17 +51,21 @@
51
51
  * identity, the ladder-VM-signed generation delegation embedded while
52
52
  * the auxiliary Space still answers to the bootstrap did:key, the
53
53
  * Space's controller flipped to the account DID, and the pointer entry
54
- * appended -- signed by ladder attribution of the currently revealed
55
- * rung, under the caller's chain-head pin. Within THIS ceremony the
54
+ * appended -- moved as the ladder (`movePointerAsLadder`): each attempt
55
+ * attributes the ladder's current rung, reveals it when only its hash
56
+ * stands committed, and signs with it, under the caller's chain-head
57
+ * pin, so a sibling self-enrollment that spends the rung mid-run is
58
+ * climbed past rather than refused. Within THIS ceremony the
56
59
  * sibling arm never fires: the sibling is only written by stage 4,
57
60
  * strictly after the pointer entry, so a stage-3 tear leaves no
58
61
  * sibling; the arm serves callers holding a standing invocation
59
62
  * authority (the add/change-method fold), and the establishment's own
60
63
  * bootstrap authority falls back to a fresh mint when a sibling-named
61
64
  * Space refuses it.
62
- * The revealed-rung attribution runs before this block and strictly
63
- * before the re-bind: an account whose document no longer anchors this
64
- * ladder refuses while the record is still in its pre-re-bind shape.
65
+ * The primitive's pre-mint rung attribution runs before anything is
66
+ * minted and strictly before the re-bind: an account whose document no
67
+ * longer anchors this ladder refuses while the record is still in its
68
+ * pre-re-bind shape.
65
69
  * 4. The re-bind, through the same `bindRecord` hook: the full pointer (DID
66
70
  * in), the ladder-VM-signed bridge and annex-Space sibling, and the
67
71
  * management delegation to the account DID -- durably written BEFORE
@@ -91,18 +95,18 @@ import type { DIDLog } from '@interop/did-method-webvh';
91
95
  import type { IKeyAgreementKey, IZcap } from '@interop/data-integrity-core';
92
96
  import type { WasClient } from '@interop/was-client';
93
97
  import type { EncryptionDescriptorStore } from '@interop/was-client/edv';
94
- import type { ResourceLogPinStore } from '@interop/vh-resource-log';
95
98
  import type { ZcapClient } from '@interop/ezcap';
96
99
  import { type AccountGenesisResult } from '../genesis/accountGenesis.js';
97
100
  import type { ClientWebvhUpdateKeys, KmsAuthenticationBinding, PublishedWebvhLog, WebvhIdStore } from '../webvh/didWebvh.js';
98
101
  import type { ICapabilityAgent } from '../webvh/zcap.js';
99
102
  import type { AccountPointer } from '../keyring/record.js';
100
103
  import { type UserKey } from '../keys/index.js';
104
+ import { type LadderRung } from './ladder.js';
101
105
  import { type StageNotifier } from '../log.js';
102
106
  /**
103
107
  * The standing members an unlock-methods registry entry records for the
104
108
  * established credential: its roster kid and key-agreement multibase, the
105
- * bind-time revealed rung, the standing client's did:key, the bridge and
109
+ * ladder's standing rung, the standing client's did:key, the bridge and
106
110
  * sibling delegations' signer key ids and expiries, and the unlock
107
111
  * key-agreement members the re-bind reported. The member names are the ones
108
112
  * the registry already records; nothing here mints a new field.
@@ -188,9 +192,15 @@ export type CredentialAnchoredBindRecordHook = (options: {
188
192
  * delegation while the Space still answers to its creation controller, flip
189
193
  * the Space's controller to the account DID, then append the pointer entry
190
194
  * -- strictly last in the block, so pointer-present implies every prior
191
- * sub-step landed. The pointer entry signs by ladder attribution of the
192
- * currently revealed rung, and every log touch rides the caller's chain-head
193
- * pin store.
195
+ * sub-step landed. The pointer entry signs on the arm the caller states: an
196
+ * enrolled client's own update keys, or the ladder (attributed, revealed,
197
+ * and signed per attempt); every log touch rides the caller's chain-head pin
198
+ * store. On the ladder arm the rung is attributed BEFORE anything is minted,
199
+ * the pre-flight every pointer-moving arm runs: a ladder the log carries no
200
+ * rung of, and an ambiguous attribution, throw the ladder's own
201
+ * `LadderAttributionError` with no Space or generation minted, so a torn
202
+ * establishment never orphans an annex Space on an account that no longer
203
+ * anchors this ladder.
194
204
  *
195
205
  * Two invocation authorities, heal's pattern. A caller holding a standing
196
206
  * invocation authority (`invocation`: an enrolled client's storage handle
@@ -215,8 +225,6 @@ export type CredentialAnchoredBindRecordHook = (options: {
215
225
  * @param options.account {object} the VERIFIED account log view
216
226
  * (`{ did, doc, log }`; never re-fetched here)
217
227
  * @param options.wasServerUrl {string} the account pointer's host
218
- * @param options.accountSpaceId {string} the ACCOUNT Space's id (the
219
- * generation delegation's target subtree, and the account-log pin slot)
220
228
  * @param options.ladderSeed {Uint8Array} the credential's ladder seed
221
229
  * @param options.was {WasClient} the bootstrap storage client (the ladder
222
230
  * VM's bare did:key), used by the fresh-mint arm
@@ -226,9 +234,18 @@ export type CredentialAnchoredBindRecordHook = (options: {
226
234
  * `({ clientAnnexDid }) => Promise<IZcap>` -- the generation-delegation
227
235
  * minter (ladder-VM-signed on a ladder-anchored account)
228
236
  * @param options.idStore {WebvhIdStore} the ACCOUNT log's store
229
- * @param [options.updateKeys] {ClientWebvhUpdateKeys} the pointer entry's
230
- * signing pair; absent, it is recovered by ladder attribution of the
231
- * supplied log's current parameters
237
+ * @param options.signer {object} who signs the pointer entry:
238
+ * `{ kind: 'client', updateKeys }`, an enrolled client's own update keys
239
+ * (freewallet's remembered-login fold), or `{ kind: 'ladder' }`, under
240
+ * which the entry is moved as the ladder with the supplied `ladderSeed`
241
+ * (`movePointerAsLadder`): every attempt of its conflict retry attributes
242
+ * the ladder's current rung from the head it reads, reveals it when only
243
+ * its hash stands committed, and signs with it -- so a racing ceremony that
244
+ * spends the rung is climbed past. A pair fixed by the caller could not be,
245
+ * since the client arm's not-authorized refusal is not a conflict the retry
246
+ * re-runs on. Stated explicitly rather than read off `updateKeys`'
247
+ * absence, since the ladder arm reveals a rung into the world-readable
248
+ * `updateKeys` and an omission must not select it silently
232
249
  * @param [options.delegatedClients] {IZcap} the record's sibling
233
250
  * delegation, for the Space resolution's settled order
234
251
  * @param [options.invocation] {object} a standing invocation authority for
@@ -239,8 +256,6 @@ export type CredentialAnchoredBindRecordHook = (options: {
239
256
  * @param [options.logOnly] {boolean} pointer entries publish the log only
240
257
  * (a bridge-delegated writer has no `did.json` projection rights); the
241
258
  * establishment's root window omits it
242
- * @param [options.pinStore] {ResourceLogPinStore} chain-head pins; slot
243
- * keys are derived here per log
244
259
  * @param [options.published] {PublishedWebvhLog} the same account head as
245
260
  * `account`, complete with the ETag its read carried, when the caller holds
246
261
  * one. The pointer entry's first attempt then builds on it -- one saved
@@ -248,15 +263,16 @@ export type CredentialAnchoredBindRecordHook = (options: {
248
263
  * compare-and-swap falls through to a fresh pinned read
249
264
  * @param [options.now] {number} epoch milliseconds, for tests
250
265
  * @returns {Promise<object>} the pointed (or freshly minted) annex DID,
251
- * the generation delegation when one was installed here, what ran, and --
252
- * on `accountLog` -- the account head this block leaves standing: the
266
+ * the generation delegation when one was installed here, what ran, on
267
+ * `accountLog` the account head this block leaves standing (the
253
268
  * post-pointer-entry one when it wrote, the supplied `published` verbatim
254
- * when the document already pointed at a generation
269
+ * when the document already pointed at a generation), and on the ladder
270
+ * arm `rung`: the rung the pointer entry was signed with when this call
271
+ * wrote one, else the ladder's currently attributed rung
255
272
  */
256
- export declare function ensurePointedClientAnnexGeneration({ account, wasServerUrl, accountSpaceId, ladderSeed, was, mintController, mintGenerationDelegation, idStore, updateKeys, delegatedClients, invocation, logOnly, pinStore, published, now }: {
273
+ export declare function ensurePointedClientAnnexGeneration({ account, wasServerUrl, ladderSeed, was, mintController, mintGenerationDelegation, idStore, signer, delegatedClients, invocation, logOnly, published, now }: {
257
274
  account: Pick<PublishedWebvhLog, 'did' | 'doc' | 'log'>;
258
275
  wasServerUrl: string;
259
- accountSpaceId: string;
260
276
  ladderSeed: Uint8Array;
261
277
  was: WasClient;
262
278
  mintController: string;
@@ -264,14 +280,18 @@ export declare function ensurePointedClientAnnexGeneration({ account, wasServerU
264
280
  clientAnnexDid: string;
265
281
  }) => Promise<IZcap>;
266
282
  idStore: WebvhIdStore;
267
- updateKeys?: ClientWebvhUpdateKeys;
283
+ signer: {
284
+ kind: 'client';
285
+ updateKeys: ClientWebvhUpdateKeys;
286
+ } | {
287
+ kind: 'ladder';
288
+ };
268
289
  delegatedClients?: IZcap;
269
290
  invocation?: {
270
291
  was: WasClient;
271
292
  capability: IZcap;
272
293
  };
273
294
  logOnly?: boolean;
274
- pinStore?: ResourceLogPinStore;
275
295
  published?: PublishedWebvhLog;
276
296
  now?: number;
277
297
  }): Promise<{
@@ -280,6 +300,7 @@ export declare function ensurePointedClientAnnexGeneration({ account, wasServerU
280
300
  generationMinted: boolean;
281
301
  spaceMinted: boolean;
282
302
  accountLog?: PublishedWebvhLog;
303
+ rung?: LadderRung;
283
304
  }>;
284
305
  /**
285
306
  * Runs the whole credential-anchored establishment for one unlock credential
@@ -349,9 +370,6 @@ export declare function ensurePointedClientAnnexGeneration({ account, wasServerU
349
370
  * invocation under the bootstrap did:key works (the signup's registry
350
371
  * write). NOT swallowed here: a throw fails the establishment, so a hook
351
372
  * that must be best-effort swallows its own failures
352
- * @param [options.pinStore] {ResourceLogPinStore} the chain-head pin store
353
- * for every log read here (a transient visit's in-memory handle, or a
354
- * client-local one when a remembered caller seeds its own pin)
355
373
  * @param [options.now] {number} epoch milliseconds, for tests
356
374
  * @param [options.onStage] {StageNotifier} observational: called as each
357
375
  * stage finishes, so a caller can time them, in the order of
@@ -406,7 +424,6 @@ export declare function establishCredentialAnchoredAccount(options: {
406
424
  userKey: UserKey;
407
425
  establishment: CredentialAnchoredEstablishment;
408
426
  }) => Promise<void>;
409
- pinStore?: ResourceLogPinStore;
410
427
  now?: number;
411
428
  onStage?: StageNotifier;
412
429
  }): Promise<CredentialAnchoredEstablishment>;
@@ -459,7 +476,7 @@ export declare function rebindCredentialAnchoredRecord({ accountDid, pointer, la
459
476
  * @param options {object}
460
477
  * @param options.standing {object} the credential's standing client:
461
478
  * `clientDid`, `keyAgreementKeyMultibase`, `recipientKid`
462
- * @param options.updateKeyMultibase {string} the attributed revealed rung
479
+ * @param options.updateKeyMultibase {string} the ladder's attributed rung
463
480
  * @param [options.bridge] {IZcap} the record's bridge delegation
464
481
  * @param [options.sibling] {IZcap} the record's `delegatedClients` sibling
465
482
  * @param [options.unlock] {object} the unlock key-agreement members, from
@@ -1 +1 @@
1
- {"version":3,"file":"establish.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/establish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"establish.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/establish.ts"],"names":[],"mappings":"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"}