@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
@@ -1,13 +1,12 @@
1
1
  import { ensurePromotedSpaceController, mintSpaceId } from '../genesis/accountGenesis.js';
2
2
  import { currentLogParameters, keyAgreementCommitment, readPublishedLog } from '../webvh/didWebvh.js';
3
- import { accountLogPinId } from '../webvh/verifyLog.js';
4
3
  import { didKeyZcapClient } from '../webvh/zcap.js';
5
4
  import { delegateLogWrite, recordedDelegationFields } from '../recovery/recoveryDelegation.js';
6
5
  import { mintUserKey } from '../keys/index.js';
7
6
  import { attributeLadderRung } from './ladder.js';
8
- import { ladderVmAgent, ladderVmZcapClient } from './zcap.js';
7
+ import { ladderVmAgent, ladderVmSigners } from './zcap.js';
9
8
  import { clientAnnexDidParts, mintDelegatedClientsDelegation, mintPointedClientAnnexGeneration, setDelegatedClientsPointer } from './log.js';
10
- import { ladderSignedGenerationDelegationMinter, pointerEntryUpdateKeys, resolveClientAnnexSpaceId } from './heal.js';
9
+ import { ladderSignedGenerationDelegationMinter, movePointerAsLadder, rawRequestStatus, resolveClientAnnexSpaceId } from './heal.js';
11
10
  import { ensureCredentialAnchoredAccountGenesis } from './credentialAnchoredGenesis.js';
12
11
  import { CONTROLLER_PROMOTION_STAGE } from './stages.js';
13
12
  import { ensureRosterDeliveredEpochs } from './rosterDeliveredEpochs.js';
@@ -23,9 +22,15 @@ import { stageNotifier } from '../log.js';
23
22
  * delegation while the Space still answers to its creation controller, flip
24
23
  * the Space's controller to the account DID, then append the pointer entry
25
24
  * -- 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.
25
+ * sub-step landed. The pointer entry signs on the arm the caller states: an
26
+ * enrolled client's own update keys, or the ladder (attributed, revealed,
27
+ * and signed per attempt); every log touch rides the caller's chain-head pin
28
+ * store. On the ladder arm the rung is attributed BEFORE anything is minted,
29
+ * the pre-flight every pointer-moving arm runs: a ladder the log carries no
30
+ * rung of, and an ambiguous attribution, throw the ladder's own
31
+ * `LadderAttributionError` with no Space or generation minted, so a torn
32
+ * establishment never orphans an annex Space on an account that no longer
33
+ * anchors this ladder.
29
34
  *
30
35
  * Two invocation authorities, heal's pattern. A caller holding a standing
31
36
  * invocation authority (`invocation`: an enrolled client's storage handle
@@ -50,8 +55,6 @@ import { stageNotifier } from '../log.js';
50
55
  * @param options.account {object} the VERIFIED account log view
51
56
  * (`{ did, doc, log }`; never re-fetched here)
52
57
  * @param options.wasServerUrl {string} the account pointer's host
53
- * @param options.accountSpaceId {string} the ACCOUNT Space's id (the
54
- * generation delegation's target subtree, and the account-log pin slot)
55
58
  * @param options.ladderSeed {Uint8Array} the credential's ladder seed
56
59
  * @param options.was {WasClient} the bootstrap storage client (the ladder
57
60
  * VM's bare did:key), used by the fresh-mint arm
@@ -61,9 +64,18 @@ import { stageNotifier } from '../log.js';
61
64
  * `({ clientAnnexDid }) => Promise<IZcap>` -- the generation-delegation
62
65
  * minter (ladder-VM-signed on a ladder-anchored account)
63
66
  * @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
67
+ * @param options.signer {object} who signs the pointer entry:
68
+ * `{ kind: 'client', updateKeys }`, an enrolled client's own update keys
69
+ * (freewallet's remembered-login fold), or `{ kind: 'ladder' }`, under
70
+ * which the entry is moved as the ladder with the supplied `ladderSeed`
71
+ * (`movePointerAsLadder`): every attempt of its conflict retry attributes
72
+ * the ladder's current rung from the head it reads, reveals it when only
73
+ * its hash stands committed, and signs with it -- so a racing ceremony that
74
+ * spends the rung is climbed past. A pair fixed by the caller could not be,
75
+ * since the client arm's not-authorized refusal is not a conflict the retry
76
+ * re-runs on. Stated explicitly rather than read off `updateKeys`'
77
+ * absence, since the ladder arm reveals a rung into the world-readable
78
+ * `updateKeys` and an omission must not select it silently
67
79
  * @param [options.delegatedClients] {IZcap} the record's sibling
68
80
  * delegation, for the Space resolution's settled order
69
81
  * @param [options.invocation] {object} a standing invocation authority for
@@ -74,8 +86,6 @@ import { stageNotifier } from '../log.js';
74
86
  * @param [options.logOnly] {boolean} pointer entries publish the log only
75
87
  * (a bridge-delegated writer has no `did.json` projection rights); the
76
88
  * establishment's root window omits it
77
- * @param [options.pinStore] {ResourceLogPinStore} chain-head pins; slot
78
- * keys are derived here per log
79
89
  * @param [options.published] {PublishedWebvhLog} the same account head as
80
90
  * `account`, complete with the ETag its read carried, when the caller holds
81
91
  * one. The pointer entry's first attempt then builds on it -- one saved
@@ -83,12 +93,29 @@ import { stageNotifier } from '../log.js';
83
93
  * compare-and-swap falls through to a fresh pinned read
84
94
  * @param [options.now] {number} epoch milliseconds, for tests
85
95
  * @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
96
+ * the generation delegation when one was installed here, what ran, on
97
+ * `accountLog` the account head this block leaves standing (the
88
98
  * post-pointer-entry one when it wrote, the supplied `published` verbatim
89
- * when the document already pointed at a generation
99
+ * when the document already pointed at a generation), and on the ladder
100
+ * arm `rung`: the rung the pointer entry was signed with when this call
101
+ * wrote one, else the ladder's currently attributed rung
90
102
  */
91
- export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl, accountSpaceId, ladderSeed, was, mintController, mintGenerationDelegation, idStore, updateKeys, delegatedClients, invocation, logOnly, pinStore, published, now }) {
103
+ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl, ladderSeed, was, mintController, mintGenerationDelegation, idStore, signer, delegatedClients, invocation, logOnly, published, now }) {
104
+ // The ladder arm's pre-flight, before the pointer test and before anything
105
+ // is minted: the ladder's current rung, attributed from the account log's
106
+ // current parameters (rung 0, revealed, on a fresh establishment; a
107
+ // committed-only rung after a sibling self-enrolled). An account whose
108
+ // document no longer anchors this ladder throws here, with no Space or
109
+ // generation minted and, in the establishment, while the record is still
110
+ // in its pre-re-bind shape. A pre-flight only: the pointer entry
111
+ // attributes again per attempt inside its own retry and reveals a
112
+ // committed rung itself.
113
+ const attributed = signer.kind === 'ladder'
114
+ ? await attributeLadderRung({
115
+ ladderSeed,
116
+ published: currentLogParameters(account)
117
+ })
118
+ : undefined;
92
119
  const { pointer, annexSpaceId } = resolveClientAnnexSpaceId({
93
120
  doc: account.doc,
94
121
  ...(delegatedClients !== undefined ? { delegatedClients } : {})
@@ -99,23 +126,36 @@ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl
99
126
  generationMinted: false,
100
127
  spaceMinted: false,
101
128
  // Nothing was written, so the caller's head is still the standing one.
102
- ...(published !== undefined ? { accountLog: published } : {})
129
+ ...(published !== undefined ? { accountLog: published } : {}),
130
+ ...(attributed !== undefined ? { rung: attributed.rung } : {})
103
131
  };
104
132
  }
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 }) }
133
+ const pointGeneration = async (clientAnnexDid) => signer.kind === 'client'
134
+ ? setDelegatedClientsPointer({
135
+ idStore,
136
+ signer,
137
+ clientAnnexDid,
138
+ expectedDid: account.did,
139
+ ...(logOnly !== undefined ? { logOnly } : {}),
140
+ ...(published !== undefined ? { published } : {})
141
+ })
142
+ : movePointerAsLadder({
143
+ idStore,
144
+ ladderSeed,
145
+ clientAnnexDid,
146
+ accountDid: account.did,
147
+ ...(logOnly !== undefined ? { logOnly } : {}),
148
+ ...(published !== undefined ? { published } : {})
149
+ });
150
+ // The one outcome shape both minting arms hand back.
151
+ const pointedOutcome = (generation, spaceMinted) => ({
152
+ clientAnnexDid: generation.clientAnnexDid,
153
+ generationDelegation: generation.generationDelegation,
154
+ generationMinted: true,
155
+ spaceMinted,
156
+ accountLog: generation.pointed.published,
157
+ ...(generation.pointed.rung !== undefined
158
+ ? { rung: generation.pointed.rung }
119
159
  : {})
120
160
  });
121
161
  // The standing-authority arm: the sibling-named Space is already
@@ -131,16 +171,10 @@ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl
131
171
  capability: invocation.capability,
132
172
  mintGenerationDelegation,
133
173
  point: pointGeneration,
134
- ...(pinStore !== undefined ? { pinStore } : {}),
174
+ pinStore: idStore.pin.store,
135
175
  ...(now !== undefined ? { now } : {})
136
176
  });
137
- return {
138
- clientAnnexDid: generation.clientAnnexDid,
139
- generationDelegation: generation.generationDelegation,
140
- generationMinted: true,
141
- spaceMinted: false,
142
- accountLog: generation.pointed.published
143
- };
177
+ return pointedOutcome(generation, false);
144
178
  }
145
179
  // The bootstrap arm: mint, embed the delegation while the Space still
146
180
  // answers to its creation controller, flip, then the pointer entry.
@@ -153,7 +187,7 @@ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl
153
187
  ladderSeed,
154
188
  mintGenerationDelegation,
155
189
  point: pointGeneration,
156
- ...(pinStore !== undefined ? { pinStore } : {}),
190
+ pinStore: idStore.pin.store,
157
191
  ...(now !== undefined ? { now } : {}),
158
192
  // The controller flip. ONLY an authorization-class refusal is
159
193
  // swallowed: this Space may be a sibling-named one a concurrent run
@@ -187,13 +221,7 @@ export async function ensurePointedClientAnnexGeneration({ account, wasServerUrl
187
221
  }
188
222
  }
189
223
  });
190
- return {
191
- clientAnnexDid: generation.clientAnnexDid,
192
- generationDelegation: generation.generationDelegation,
193
- generationMinted: true,
194
- spaceMinted,
195
- accountLog: generation.pointed.published
196
- };
224
+ return pointedOutcome(generation, spaceMinted);
197
225
  };
198
226
  if (annexSpaceId !== undefined) {
199
227
  // A sibling-named Space under bootstrap authority alone: writable only
@@ -228,11 +256,11 @@ function authorizationRefusal(err) {
228
256
  if (candidate === null || typeof candidate !== 'object') {
229
257
  continue;
230
258
  }
231
- const carried = candidate;
232
- const status = carried.status ?? carried.response?.status;
259
+ const status = rawRequestStatus(candidate);
233
260
  if (status === 401 || status === 403) {
234
261
  return true;
235
262
  }
263
+ const carried = candidate;
236
264
  if (carried.name === 'NotAllowedError' ||
237
265
  carried.name === 'ForbiddenError' ||
238
266
  carried.name === 'UnauthorizedError') {
@@ -309,9 +337,6 @@ function authorizationRefusal(err) {
309
337
  * invocation under the bootstrap did:key works (the signup's registry
310
338
  * write). NOT swallowed here: a throw fails the establishment, so a hook
311
339
  * that must be best-effort swallows its own failures
312
- * @param [options.pinStore] {ResourceLogPinStore} the chain-head pin store
313
- * for every log read here (a transient visit's in-memory handle, or a
314
- * client-local one when a remembered caller seeds its own pin)
315
340
  * @param [options.now] {number} epoch milliseconds, for tests
316
341
  * @param [options.onStage] {StageNotifier} observational: called as each
317
342
  * stage finishes, so a caller can time them, in the order of
@@ -354,7 +379,7 @@ export function establishCredentialAnchoredAccount(options) {
354
379
  * @param options {object} see {@link establishCredentialAnchoredAccount}
355
380
  * @returns {Promise<CredentialAnchoredEstablishment>}
356
381
  */
357
- async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId, ladderSeed, standing, bindRecord, rosterStoreFor, bootstrapWasFor, idStore, expectedDid, lowEntropy, priorCreatedAt, delegatedClients, provideKmsAuthentication, promoteKeystore, beforePromotion, pinStore, now, onStage }) {
382
+ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId, ladderSeed, standing, bindRecord, rosterStoreFor, bootstrapWasFor, idStore, expectedDid, lowEntropy, priorCreatedAt, delegatedClients, provideKmsAuthentication, promoteKeystore, beforePromotion, now, onStage }) {
358
383
  const stage = stageNotifier(onStage);
359
384
  const bootstrapAgent = await ladderVmAgent({ ladderSeed });
360
385
  const bootstrapZcap = didKeyZcapClient({ keyAgent: bootstrapAgent });
@@ -410,7 +435,6 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
410
435
  rosterStoreFor,
411
436
  ...(expectedDid !== undefined ? { expectedDid } : {}),
412
437
  ...(provideKmsAuthentication ? { provideKmsAuthentication } : {}),
413
- ...(pinStore !== undefined ? { accountLogPinStore: pinStore } : {}),
414
438
  promoteController: false,
415
439
  ...(onStage !== undefined ? { onStage } : {})
416
440
  });
@@ -438,15 +462,25 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
438
462
  // 2c. The adopted-roster arm: a re-run that adopted an earlier run's
439
463
  // roster recovers the real user key from the credential's standing wrap
440
464
  // and completes the collection epochs under it -- the one installer,
441
- // through the shared mint-policy stage.
465
+ // through the shared mint-policy stage. The stage's mint guard is the
466
+ // genesis's own observation: it adopted a PRESENT roster a moment ago, so
467
+ // a decide-read now serving it absent is a host contradicting itself, and
468
+ // minting there would be a single-recipient roster genesis over a roster
469
+ // that exists. Refused outright; nothing else licenses the mint here.
442
470
  let userKey = candidateUserKey;
443
471
  if (genesis.rosterDescriptor.currentEpoch !== candidateUserKey.id) {
472
+ const adoptedEpoch = genesis.rosterDescriptor.currentEpoch;
444
473
  const delivered = await ensureRosterDeliveredEpochs({
445
474
  store: rosterStoreFor({ did, log: genesis.published.log }),
446
475
  candidateUserKey,
447
476
  clientKeyAgreementKey: standing.keyAgreementKey,
448
477
  was: bootstrapWas,
449
- spaceId
478
+ spaceId,
479
+ beforeMint: async () => {
480
+ throw new Error('The user-key roster the genesis adopted (current epoch ' +
481
+ `${String(adoptedEpoch)}) is now served absent; refusing to ` +
482
+ 'mint a fresh roster over it.');
483
+ }
450
484
  });
451
485
  if (delivered.outcome === 'no-wrap') {
452
486
  throw new Error('The adopted user-key roster could not be read back with this ' +
@@ -481,38 +515,23 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
481
515
  // unconditional write.
482
516
  const published = genesis.logMinted && genesis.published.etag !== undefined
483
517
  ? genesis.published
484
- : await readPublishedLog({
485
- idStore,
486
- expectedDid: did,
487
- ...(pinStore !== undefined
488
- ? { pinStore, logId: accountLogPinId({ spaceId }) }
489
- : {})
490
- });
518
+ : await readPublishedLog({ idStore, expectedDid: did });
491
519
  if (published === undefined) {
492
520
  throw new Error('The account log the genesis published could not be read.');
493
521
  }
494
- // The bind-time REVEALED rung, attributed from the published log's current
495
- // parameters (rung 0 on a fresh establishment) -- resolved HERE, before
496
- // stage 3 and strictly before the re-bind: on an account whose document no
497
- // longer anchors this ladder (a struck ladder VM), the attribution throws
498
- // while the record is still in its pre-re-bind shape, rather than after a
499
- // re-bind that would leave a rebound record with no registry entry and no
500
- // mender. A committed-only rung refuses too: it cannot sign, and recording
501
- // it as the registry's update key would misstate the standing rung.
502
- const attributed = await attributeLadderRung({
503
- ladderSeed,
504
- published: currentLogParameters(published)
505
- });
506
- if (attributed.state !== 'revealed') {
507
- throw new Error("No revealed rung of this credential's ladder stands in the account " +
508
- "log's current update keys; the establishment cannot proceed.");
509
- }
510
522
  stage('account-log-read');
523
+ // Stage 3 on the ladder arm. Its pre-mint attribution is what refuses an
524
+ // account whose document no longer anchors this ladder (a struck ladder
525
+ // VM) while the record is still in its pre-re-bind shape, rather than
526
+ // after a re-bind that would leave a rebound record with no registry entry
527
+ // and no mender. The pointer entry rides the root-invoking store in this
528
+ // window, so it republishes the `did:web` projection beside itself.
511
529
  const generation = await ensurePointedClientAnnexGeneration({
512
530
  account: published,
513
531
  wasServerUrl,
514
- accountSpaceId: spaceId,
515
532
  ladderSeed,
533
+ signer: { kind: 'ladder' },
534
+ logOnly: false,
516
535
  was: bootstrapWas,
517
536
  mintController: bootstrapAgent.id,
518
537
  mintGenerationDelegation: ladderSignedGenerationDelegationMinter({
@@ -525,7 +544,6 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
525
544
  idStore,
526
545
  published,
527
546
  ...(delegatedClients !== undefined ? { delegatedClients } : {}),
528
- ...(pinStore !== undefined ? { pinStore } : {}),
529
547
  ...(now !== undefined ? { now } : {})
530
548
  });
531
549
  stage('annex-generation');
@@ -559,7 +577,11 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
559
577
  : {}),
560
578
  standingFields: credentialAnchoredStandingFields({
561
579
  standing,
562
- updateKeyMultibase: attributed.rung.keyMultibase,
580
+ // The rung the pointer entry was signed with when stage 3 wrote one (a
581
+ // lost race may have climbed past the pre-flight's answer), else the
582
+ // rung stage 3's pre-flight found standing. The ladder arm always
583
+ // reports one.
584
+ updateKeyMultibase: generation.rung.keyMultibase,
563
585
  bridge,
564
586
  sibling,
565
587
  unlock: rebind
@@ -634,8 +656,11 @@ async function establishCredentialAnchoredAccountChecked({ wasServerUrl, spaceId
634
656
  export async function rebindCredentialAnchoredRecord({ accountDid, pointer, ladderSeed, standingClientDid, clientAnnexSpaceId, bindRecord, stage, priorCreatedAt, now }) {
635
657
  // The record's controller field is the ladder VM's bare did:key, derived
636
658
  // from the same seed the delegations sign under so the two cannot diverge.
637
- const controller = (await ladderVmAgent({ ladderSeed })).id;
638
- const ladderZcap = await ladderVmZcapClient({ accountDid, ladderSeed });
659
+ const { agent: ladderAgent, zcapClient: ladderZcap } = await ladderVmSigners({
660
+ accountDid,
661
+ ladderSeed
662
+ });
663
+ const controller = ladderAgent.id;
639
664
  const bridge = await delegateLogWrite({
640
665
  zcapClient: ladderZcap,
641
666
  pointer,
@@ -668,7 +693,7 @@ export async function rebindCredentialAnchoredRecord({ accountDid, pointer, ladd
668
693
  * @param options {object}
669
694
  * @param options.standing {object} the credential's standing client:
670
695
  * `clientDid`, `keyAgreementKeyMultibase`, `recipientKid`
671
- * @param options.updateKeyMultibase {string} the attributed revealed rung
696
+ * @param options.updateKeyMultibase {string} the ladder's attributed rung
672
697
  * @param [options.bridge] {IZcap} the record's bridge delegation
673
698
  * @param [options.sibling] {IZcap} the record's `delegatedClients` sibling
674
699
  * @param [options.unlock] {object} the unlock key-agreement members, from
@@ -1 +1 @@
1
- {"version":3,"file":"establish.js","sourceRoot":"","sources":["../../src/clientAnnex/establish.ts"],"names":[],"mappings":"AA+FA,OAAO,EACL,6BAA6B,EAC7B,WAAW,EAEZ,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAO7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAInD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC7D,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC3B,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,sCAAsC,EACtC,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAA;AACvF,OAAO,EACL,0BAA0B,EAE3B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,EAAE,aAAa,EAAsB,MAAM,WAAW,CAAA;AAoF7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,EACvD,OAAO,EACP,YAAY,EACZ,cAAc,EACd,UAAU,EACV,GAAG,EACH,cAAc,EACd,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,EAmBJ;IAOC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,yBAAyB,CAAC;QAC1D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC,CAAA;IACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,KAAK;YAClB,uEAAuE;YACvE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAA;IACH,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,uBAAuB;IACvB,MAAM,SAAS,GACb,UAAU;QACV,CAAC,MAAM,sBAAsB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAElE,MAAM,eAAe,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE,CACvD,0BAA0B,CAAC;QACzB,OAAO;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE;QACjD,cAAc;QACd,WAAW,EAAE,OAAO,CAAC,GAAG;QACxB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,KAAK,SAAS;YACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE;YACnE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;IAEJ,iEAAiE;IACjE,sEAAsE;IACtE,6CAA6C;IAC7C,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,gCAAgC,CAAC;YACxD,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,YAAY;YACZ,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,UAAU;YACV,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,wBAAwB;YACxB,KAAK,EAAE,eAAe;YACtB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAA;QACF,OAAO;YACL,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;SACzC,CAAA;IACH,CAAC;IAED,sEAAsE;IACtE,oEAAoE;IACpE,MAAM,YAAY,GAAG,KAAK,EAAE,EAC1B,OAAO,EACP,WAAW,EAIZ,EAAE,EAAE;QACH,MAAM,UAAU,GAAG,MAAM,gCAAgC,CAAC;YACxD,GAAG;YACH,YAAY;YACZ,OAAO;YACP,UAAU,EAAE,cAAc;YAC1B,UAAU;YACV,wBAAwB;YACxB,KAAK,EAAE,eAAe;YACtB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,8DAA8D;YAC9D,oEAAoE;YACpE,gEAAgE;YAChE,sEAAsE;YACtE,uEAAuE;YACvE,mEAAmE;YACnE,kEAAkE;YAClE,gEAAgE;YAChE,6DAA6D;YAC7D,EAAE;YACF,uEAAuE;YACvE,iEAAiE;YACjE,iEAAiE;YACjE,iEAAiE;YACjE,YAAY;YACZ,kBAAkB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;wBACjC,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;4BACvC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE;4BACtC,CAAC,CAAC,EAAE,CAAC;wBACP,UAAU,EAAE,OAAO,CAAC,GAAG;wBACvB,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/B,MAAM,GAAG,CAAA;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QACF,OAAO;YACL,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,gBAAgB,EAAE,IAAI;YACtB,WAAW;YACX,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;SACzC,CAAA;IACH,CAAC,CAAA;IAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,uEAAuE;QACvE,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,qCAAqC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAG,GAAkC,EAAE,KAAK,CAAC,CAAA;IACpE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACxD,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,SAIf,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IACE,OAAO,CAAC,IAAI,KAAK,iBAAiB;YAClC,OAAO,CAAC,IAAI,KAAK,gBAAgB;YACjC,OAAO,CAAC,IAAI,KAAK,mBAAmB,EACpC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAmClD;IACC,sEAAsE;IACtE,uEAAuE;IACvE,6BAA6B;IAC7B,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CACjB,qEAAqE;YACnE,2DAA2D,CAC9D,CAAA;IACH,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,SAAS,CACjB,kEAAkE;YAChE,mDAAmD,CACtD,CAAA;IACH,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAClD,MAAM,IAAI,SAAS,CACjB,qEAAqE;YACnE,4DAA4D,CAC/D,CAAA;IACH,CAAC;IACD,OAAO,yCAAyC,CAAC,OAAO,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,yCAAyC,CAAC,EACvD,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,OAAO,EACP,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,QAAQ,EACR,GAAG,EACH,OAAO,EAGL;IACF,MAAM,KAAK,GAAG,aAAa,CAA2C,OAAO,CAAC,CAAA;IAC9E,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IAC1D,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;IACpE,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;IAClE,MAAM,OAAO,GAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC/D,MAAM,MAAM,GAA8C,EAAE,CAAA;IAE5D,mEAAmE;IACnE,kEAAkE;IAClE,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,YAAY,GAChB,UAAU,KAAK,KAAK;QAClB,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,wBAAwB,EAAE;QAC3D,CAAC,CAAC;YACE,UAAU,EAAE,MAAM,sBAAsB,CAAC;gBACvC,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB;aAC5D,CAAC;SACH,CAAA;IAEP,wEAAwE;IACxE,2EAA2E;IAC3E,qEAAqE;IACrE,qBAAqB;IACrB,IAAI,kBAAkB,GAAG,cAAc,CAAA;IACvC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC;YAC3C,UAAU,EAAE,aAAa;YACzB,OAAO;YACP,iBAAiB,EAAE,QAAQ,CAAC,SAAS;SACtC,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC;YACjC,UAAU,EAAE,cAAc,CAAC,EAAE;YAC7B,OAAO;YACP,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAA;QACF,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;QAC1D,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAA;QACxC,KAAK,CAAC,cAAc,CAAC,CAAA;IACvB,CAAC;IAED,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,MAAM,WAAW,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,MAAM,sCAAsC,CAAC;QAC3D,GAAG,EAAE,YAAY;QACjB,YAAY;QACZ,OAAO;QACP,UAAU;QACV,YAAY;QACZ,iBAAiB,EAAE;YACjB,EAAE,EAAE,QAAQ,CAAC,YAAY;YACzB,kBAAkB,EAAE,QAAQ,CAAC,wBAAwB;SACtD;QACD,OAAO,EAAE,gBAAgB;QACzB,OAAO;QACP,cAAc;QACd,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,iBAAiB,EAAE,KAAK;QACxB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAA;IACF,oEAAoE;IACpE,wEAAwE;IACxE,uEAAuE;IACvE,mCAAmC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IACvB,MAAM,WAAW,GAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAA;IACxE,iEAAiE;IACjE,uEAAuE;IACvE,uEAAuE;IACvE,0EAA0E;IAC1E,wEAAwE;IACxE,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,qEAAqE;IACrE,wCAAwC;IACxC,IAAI,OAAO,GAAY,gBAAgB,CAAA;IACvC,IAAI,OAAO,CAAC,gBAAgB,CAAC,YAAY,KAAK,gBAAgB,CAAC,EAAE,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,2BAA2B,CAAC;YAClD,KAAK,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAC1D,gBAAgB;YAChB,qBAAqB,EAAE,QAAQ,CAAC,eAAe;YAC/C,GAAG,EAAE,YAAY;YACjB,OAAO;SACR,CAAC,CAAA;QACF,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,+DAA+D;gBAC7D,aAAa,EACf,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAC3B,CAAA;QACH,CAAC;QACD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;QAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7D,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAClC,CAAC;IAED,qEAAqE;IACrE,oEAAoE;IACpE,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,EAAE;IACF,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,uEAAuE;IACvE,8CAA8C;IAC9C,EAAE;IACF,2EAA2E;IAC3E,2EAA2E;IAC3E,uBAAuB;IACvB,MAAM,SAAS,GACb,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;QACvD,CAAC,CAAC,OAAO,CAAC,SAAS;QACnB,CAAC,CAAC,MAAM,gBAAgB,CAAC;YACrB,OAAO;YACP,WAAW,EAAE,GAAG;YAChB,GAAG,CAAC,QAAQ,KAAK,SAAS;gBACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;IACR,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;QAC3C,UAAU;QACV,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC;KAC3C,CAAC,CAAA;IACF,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,qEAAqE;YACnE,8DAA8D,CACjE,CAAA;IACH,CAAC;IACD,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACzB,MAAM,UAAU,GAAG,MAAM,kCAAkC,CAAC;QAC1D,OAAO,EAAE,SAAS;QAClB,YAAY;QACZ,cAAc,EAAE,OAAO;QACvB,UAAU;QACV,GAAG,EAAE,YAAY;QACjB,cAAc,EAAE,cAAc,CAAC,EAAE;QACjC,wBAAwB,EAAE,sCAAsC,CAAC;YAC/D,UAAU,EAAE,GAAG;YACf,UAAU;YACV,YAAY;YACZ,OAAO;YACP,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;QACF,OAAO;QACP,SAAS;QACT,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CAAA;IACF,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACzB,MAAM,WAAW,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAA;IAE3E,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,eAAe;IACf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,8BAA8B,CAAC;QACvE,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,WAAW;QACpB,UAAU;QACV,iBAAiB,EAAE,QAAQ,CAAC,SAAS;QACrC,kBAAkB,EAAE,WAAW,CAAC,OAAO;QACvC,UAAU;QACV,KAAK,EAAE,SAAS;QAChB,GAAG,CAAC,kBAAkB,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CAAA;IACF,KAAK,CAAC,eAAe,CAAC,CAAA;IAEtB,MAAM,aAAa,GAAoC;QACrD,GAAG;QACH,yEAAyE;QACzE,iEAAiE;QACjE,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,SAAS;QAC9C,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,GAAG,CAAC,MAAM,CAAC,gBAAgB;YACzB,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAC;QACP,cAAc,EAAE,gCAAgC,CAAC;YAC/C,QAAQ;YACR,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY;YAChD,MAAM;YACN,OAAO;YACP,MAAM,EAAE,MAAM;SACf,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM;KACP,CAAA;IAED,wEAAwE;IACxE,yEAAyE;IACzE,sEAAsE;IACtE,0EAA0E;IAC1E,iDAAiD;IACjD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC;YACpB,GAAG,EAAE,YAAY;YACjB,UAAU,EAAE,aAAa;YACzB,GAAG;YACH,OAAO;YACP,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,6CAA6C;IAC7C,MAAM,6BAA6B,CAAC;QAClC,GAAG,EAAE,YAAY;QACjB,WAAW,EAAE,YAAY;QACzB,OAAO;QACP,GAAG;KACJ,CAAC,CAAA;IACF,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAEjC,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,gBAAgB;IAChB,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACnD,UAAU,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,cAAc,EACd,GAAG,EAWJ;IAKC,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,UAAU,GAAG,CAAC,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;QACpC,UAAU,EAAE,UAAU;QACtB,OAAO;QACP,iBAAiB,EAAE,iBAAiB;KACrC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,MAAM,8BAA8B,CAAC;QACnD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,OAAO,CAAC,IAAI;QAC1B,kBAAkB;QAClB,UAAU,EAAE,iBAAiB;QAC7B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,UAAU;QACV,OAAO;QACP,UAAU,EAAE,MAAM;QAClB,gBAAgB,EAAE,OAAO;QACzB,oBAAoB,EAAE,UAAU;QAChC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC,CAAA;IACF,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAC/C,QAAQ,EACR,kBAAkB,EAClB,MAAM,EACN,OAAO,EACP,MAAM,EAcP;IACC,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,YAAY;QAChC,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB;QAC3D,kBAAkB;QAClB,eAAe,EAAE,QAAQ,CAAC,SAAS;QACnC,GAAG,wBAAwB,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;QACF,GAAG,CAAC,MAAM,EAAE,uBAAuB;YACjC,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,EAAE,8BAA8B;YACxC,CAAC,CAAC;gBACE,8BAA8B,EAAE,MAAM,CAAC,8BAA8B;aACtE;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,KAAK,EAIN;IACC,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,SAAS,CACjB,yBAAyB,KAAK,oCAAoC;YAChE,iCAAiC,CACpC,CAAA;IACH,CAAC;IACD,IACE,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,yBAAyB,KAAK,kCAAkC;YAC9D,oCAAoC,CACvC,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,MAAM,EAIP;IACC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAC9D,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,qCAAqC,KAAK,CAAC,KAAK,gBAAgB,EAChE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CACvB,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACpC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,mEAAmE;YACjE,eAAe,UAAU,CAAC,YAAY,IAAI,EAC5C,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"establish.js","sourceRoot":"","sources":["../../src/clientAnnex/establish.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,6 @@ import type { IKeyAgreementKey } from '@interop/data-integrity-core';
69
69
  import type { CollectionEncryption } from '@interop/was-client';
70
70
  import type { EncryptionDescriptorStore } from '@interop/was-client/edv';
71
71
  import type { WebvhIdStore } from '../webvh/didWebvh.js';
72
- import type { ResourceLogPinStore } from '@interop/vh-resource-log';
73
72
  import type { RevokedClientKeys } from '../webvh/revokeClient.js';
74
73
  import { type CascadeCollections, type UserKey, type UserKeyAdoptedHook, type UserKeyCascadeResult } from '../keys/index.js';
75
74
  import type { UnlockLogStore } from '../unlock/standingWebvh.js';
@@ -98,22 +97,16 @@ export interface EnrolledClientForgetResult {
98
97
  * @param options {object}
99
98
  * @param options.logStore {UnlockLogStore} the credential's delegated
100
99
  * `did.jsonl` bridge store; also serves the ceremony's public pre-edit
101
- * read
100
+ * read. Every read the ceremony makes -- the pre-edit read the roster
101
+ * rotation's recipient document comes from, and the removal entry's own
102
+ * read inside its conflict-retry loop -- is checked against the store's
103
+ * chain-head pin, so a served truncated prefix is refused
104
+ * (`ResourceLogContinuityError`, `rollback`) before any roster append or
105
+ * log publish, and the pin advances to the head the removal entry publishes
102
106
  * @param options.clientLogStore {object} the account's `id` collection
103
107
  * store invoked under THIS (still-standing) enrolled client's root
104
108
  * authority. Used for one thing: the post-removal `did:web` projection PUT
105
109
  * that precedes the removal entry (see stage 3 in the module doc)
106
- * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
107
- * pins. Every read the ceremony makes -- the pre-edit read the roster
108
- * rotation's recipient document comes from, and the removal entry's own
109
- * read inside its conflict-retry loop -- is checked against the pinned
110
- * head, so a served truncated prefix is refused (`ResourceLogContinuityError`,
111
- * `rollback`) before any roster append or log publish, and the pin
112
- * advances to the head the removal entry publishes. Without it the
113
- * ceremony checks `expectedDid` only
114
- * @param [options.logId] {string} the account log's pin slot
115
- * (`accountLogPinId({ spaceId })`); required whenever a `pinStore` is
116
- * supplied
117
110
  * @param options.ladderSeed {Uint8Array} the credential's ladder seed
118
111
  * @param options.forgottenClient {RevokedClientKeys} this client's public
119
112
  * halves; an `updateKeyMultibase` the log does not authorize (stale, or the
@@ -140,11 +133,9 @@ export interface EnrolledClientForgetResult {
140
133
  * @param options.collections {CascadeCollections} the fan-out's work
141
134
  * @returns {Promise<EnrolledClientForgetResult>}
142
135
  */
143
- export declare function forgetEnrolledClient({ logStore, clientLogStore, pinStore, logId, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }: {
136
+ export declare function forgetEnrolledClient({ logStore, clientLogStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }: {
144
137
  logStore: UnlockLogStore;
145
138
  clientLogStore: Pick<WebvhIdStore, 'getIdResourceRaw' | 'putIdResource'>;
146
- pinStore?: ResourceLogPinStore;
147
- logId?: string;
148
139
  ladderSeed: Uint8Array;
149
140
  forgottenClient: RevokedClientKeys;
150
141
  forgottenKeyAgreementKeyMultibase: string;
@@ -1 +1 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;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,yBAAyB,CAAA;AAGxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,iCAAiC,EACjC,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,WAAW,EACZ,EAAE;IACD,QAAQ,EAAE,cAAc,CAAA;IACxB,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAA;IACxE,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,iBAAiB,CAAA;IAClC,iCAAiC,EAAE,MAAM,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,yBAAyB,CAAA;IACtC,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;IACrC,WAAW,EAAE,kBAAkB,CAAA;CAChC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAmEtC"}
1
+ {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;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,yBAAyB,CAAA;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAMzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,iCAAiC,EACjC,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,WAAW,EACZ,EAAE;IACD,QAAQ,EAAE,cAAc,CAAA;IACxB,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAA;IACxE,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,iBAAiB,CAAA;IAClC,iCAAiC,EAAE,MAAM,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,yBAAyB,CAAA;IACtC,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;IACrC,WAAW,EAAE,kBAAkB,CAAA;CAChC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA+DtC"}
@@ -1,7 +1,6 @@
1
- import { relationIds } from '../resourceLog/document.js';
2
1
  import { readPublishedLogOrThrow } from '../webvh/didWebvh.js';
3
2
  import { retireRosterRecipientAndCascade, rosterRecipientKid } from '../keys/index.js';
4
- import { forgetWebvhClient, LastEnrolledClientForgetError } from './ladderAnchored.js';
3
+ import { forgetWebvhClient, isSoleEnrolledClient, LastEnrolledClientForgetError } from './ladderAnchored.js';
5
4
  /**
6
5
  * Forgets one enrolled client -- this browser's own -- from its
7
6
  * account. See the module doc for the stage order (rotation and fan-out
@@ -11,22 +10,16 @@ import { forgetWebvhClient, LastEnrolledClientForgetError } from './ladderAnchor
11
10
  * @param options {object}
12
11
  * @param options.logStore {UnlockLogStore} the credential's delegated
13
12
  * `did.jsonl` bridge store; also serves the ceremony's public pre-edit
14
- * read
13
+ * read. Every read the ceremony makes -- the pre-edit read the roster
14
+ * rotation's recipient document comes from, and the removal entry's own
15
+ * read inside its conflict-retry loop -- is checked against the store's
16
+ * chain-head pin, so a served truncated prefix is refused
17
+ * (`ResourceLogContinuityError`, `rollback`) before any roster append or
18
+ * log publish, and the pin advances to the head the removal entry publishes
15
19
  * @param options.clientLogStore {object} the account's `id` collection
16
20
  * store invoked under THIS (still-standing) enrolled client's root
17
21
  * authority. Used for one thing: the post-removal `did:web` projection PUT
18
22
  * that precedes the removal entry (see stage 3 in the module doc)
19
- * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
20
- * pins. Every read the ceremony makes -- the pre-edit read the roster
21
- * rotation's recipient document comes from, and the removal entry's own
22
- * read inside its conflict-retry loop -- is checked against the pinned
23
- * head, so a served truncated prefix is refused (`ResourceLogContinuityError`,
24
- * `rollback`) before any roster append or log publish, and the pin
25
- * advances to the head the removal entry publishes. Without it the
26
- * ceremony checks `expectedDid` only
27
- * @param [options.logId] {string} the account log's pin slot
28
- * (`accountLogPinId({ spaceId })`); required whenever a `pinStore` is
29
- * supplied
30
23
  * @param options.ladderSeed {Uint8Array} the credential's ladder seed
31
24
  * @param options.forgottenClient {RevokedClientKeys} this client's public
32
25
  * halves; an `updateKeyMultibase` the log does not authorize (stale, or the
@@ -53,7 +46,7 @@ import { forgetWebvhClient, LastEnrolledClientForgetError } from './ladderAnchor
53
46
  * @param options.collections {CascadeCollections} the fan-out's work
54
47
  * @returns {Promise<EnrolledClientForgetResult>}
55
48
  */
56
- export async function forgetEnrolledClient({ logStore, clientLogStore, pinStore, logId, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }) {
49
+ export async function forgetEnrolledClient({ logStore, clientLogStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }) {
57
50
  // The pre-edit read, doing double duty: the last-client refusal must fire
58
51
  // BEFORE the rotation (or a refused forget would already have retired this
59
52
  // client's wrap), and the rotation's recipient resolver needs the pre-edit
@@ -61,14 +54,12 @@ export async function forgetEnrolledClient({ logStore, clientLogStore, pinStore,
61
54
  const published = await readPublishedLogOrThrow({
62
55
  idStore: logStore,
63
56
  expectedDid,
64
- ...(pinStore ? { pinStore } : {}),
65
- ...(logId !== undefined ? { logId } : {}),
66
57
  missingMessage: 'did:webvh: did.jsonl is missing; nothing to forget from.'
67
58
  });
68
- const signingVmId = `${published.did}#${forgottenClient.signingKeyMultibase}`;
69
- const invocationIds = relationIds(published.doc.capabilityInvocation);
70
- if (invocationIds.includes(signingVmId) &&
71
- invocationIds.every(id => id === signingVmId)) {
59
+ if (isSoleEnrolledClient({
60
+ doc: published.doc,
61
+ vmId: `${published.did}#${forgottenClient.signingKeyMultibase}`
62
+ })) {
72
63
  throw new LastEnrolledClientForgetError();
73
64
  }
74
65
  // Stages 1 and 2: the roster rotation off this client's wrap and the
@@ -102,9 +93,7 @@ export async function forgetEnrolledClient({ logStore, clientLogStore, pinStore,
102
93
  ladderSeed,
103
94
  forgottenClient,
104
95
  ...(knownLatentHashes ? { knownLatentHashes } : {}),
105
- expectedDid,
106
- ...(pinStore ? { pinStore } : {}),
107
- ...(logId !== undefined ? { logId } : {})
96
+ expectedDid
108
97
  });
109
98
  return {
110
99
  rotated: tail.rotated,
@@ -1 +1 @@
1
- {"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"AAsEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,EAKnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAoB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,QAAQ,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,iCAAiC,EACjC,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,WAAW,EAeZ;IACC,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,qDAAqD;IACrD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC;QAC9C,OAAO,EAAE,QAAQ;QACjB,WAAW;QACX,cAAc,EAAE,0DAA0D;KAC3E,CAAC,CAAA;IACF,IACE,oBAAoB,CAAC;QACnB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE;KAChE,CAAC,EACF,CAAC;QACD,MAAM,IAAI,6BAA6B,EAAE,CAAA;IAC3C,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,kCAAkC;IAClC,MAAM,IAAI,GAAG,MAAM,+BAA+B,CAAC;QACjD,WAAW;QACX,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,iBAAiB,EAAE,kBAAkB,CAAC;YACpC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB;YACxD,wBAAwB,EAAE,iCAAiC;SAC5D,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,uBAAuB,EAAE,yBAAyB;QAClD,aAAa;QACb,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,WAAW;KACZ,CAAC,CAAA;IAEF,uEAAuE;IACvE,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;QACtC,KAAK,EAAE,QAAQ;QACf,eAAe,EAAE,cAAc;QAC/B,UAAU;QACV,eAAe;QACf,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,WAAW;KACZ,CAAC,CAAA;IAEF,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,GAAG;QACrB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB;YACvC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACpE,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC"}