@interop/wallet-core 0.65.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +12 -8
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +5 -4
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +32 -50
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +112 -21
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +248 -180
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +2 -6
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +31 -61
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +48 -132
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +88 -221
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts.map +1 -1
  19. package/dist/clientAnnex/gc.js +9 -0
  20. package/dist/clientAnnex/gc.js.map +1 -1
  21. package/dist/clientAnnex/heal.d.ts +97 -13
  22. package/dist/clientAnnex/heal.d.ts.map +1 -1
  23. package/dist/clientAnnex/heal.js +108 -174
  24. package/dist/clientAnnex/heal.js.map +1 -1
  25. package/dist/clientAnnex/index.d.ts +8 -8
  26. package/dist/clientAnnex/index.d.ts.map +1 -1
  27. package/dist/clientAnnex/index.js +6 -6
  28. package/dist/clientAnnex/index.js.map +1 -1
  29. package/dist/clientAnnex/ladder.d.ts +51 -4
  30. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  31. package/dist/clientAnnex/ladder.js +310 -55
  32. package/dist/clientAnnex/ladder.js.map +1 -1
  33. package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
  34. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  35. package/dist/clientAnnex/ladderAnchored.js +69 -34
  36. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  37. package/dist/clientAnnex/log.d.ts +148 -72
  38. package/dist/clientAnnex/log.d.ts.map +1 -1
  39. package/dist/clientAnnex/log.js +211 -137
  40. package/dist/clientAnnex/log.js.map +1 -1
  41. package/dist/clientAnnex/mend.d.ts.map +1 -1
  42. package/dist/clientAnnex/mend.js +63 -81
  43. package/dist/clientAnnex/mend.js.map +1 -1
  44. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
  45. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
  47. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  48. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
  49. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
  50. package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
  51. package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
  52. package/dist/clientAnnex/selfEnroll.js +1 -1
  53. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  54. package/dist/clientAnnex/zcap.d.ts +19 -0
  55. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  56. package/dist/clientAnnex/zcap.js +80 -12
  57. package/dist/clientAnnex/zcap.js.map +1 -1
  58. package/dist/clients/index.d.ts +3 -2
  59. package/dist/clients/index.d.ts.map +1 -1
  60. package/dist/clients/index.js +3 -2
  61. package/dist/clients/index.js.map +1 -1
  62. package/dist/clients/listing.d.ts.map +1 -1
  63. package/dist/clients/listing.js +33 -15
  64. package/dist/clients/listing.js.map +1 -1
  65. package/dist/clients/policy.d.ts +18 -0
  66. package/dist/clients/policy.d.ts.map +1 -1
  67. package/dist/clients/policy.js +22 -8
  68. package/dist/clients/policy.js.map +1 -1
  69. package/dist/clients/revocation.d.ts +18 -30
  70. package/dist/clients/revocation.d.ts.map +1 -1
  71. package/dist/clients/revocation.js +12 -27
  72. package/dist/clients/revocation.js.map +1 -1
  73. package/dist/clients/rosterPolicy.d.ts +6 -1
  74. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  75. package/dist/clients/rosterPolicy.js +27 -30
  76. package/dist/clients/rosterPolicy.js.map +1 -1
  77. package/dist/descriptors/errors.d.ts +6 -5
  78. package/dist/descriptors/errors.d.ts.map +1 -1
  79. package/dist/descriptors/errors.js +6 -5
  80. package/dist/descriptors/errors.js.map +1 -1
  81. package/dist/descriptors/index.d.ts +7 -3
  82. package/dist/descriptors/index.d.ts.map +1 -1
  83. package/dist/descriptors/index.js +7 -3
  84. package/dist/descriptors/index.js.map +1 -1
  85. package/dist/descriptors/logSource.d.ts +28 -6
  86. package/dist/descriptors/logSource.d.ts.map +1 -1
  87. package/dist/descriptors/logSource.js +33 -7
  88. package/dist/descriptors/logSource.js.map +1 -1
  89. package/dist/enrollment/enrollment.d.ts.map +1 -1
  90. package/dist/enrollment/enrollment.js +3 -7
  91. package/dist/enrollment/enrollment.js.map +1 -1
  92. package/dist/genesis/accountGenesis.d.ts +8 -10
  93. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  94. package/dist/genesis/accountGenesis.js +39 -41
  95. package/dist/genesis/accountGenesis.js.map +1 -1
  96. package/dist/genesis/kmsAuthentication.d.ts +50 -0
  97. package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
  98. package/dist/genesis/kmsAuthentication.js +49 -0
  99. package/dist/genesis/kmsAuthentication.js.map +1 -0
  100. package/dist/keyring/kdf.d.ts +16 -20
  101. package/dist/keyring/kdf.d.ts.map +1 -1
  102. package/dist/keyring/kdf.js +2 -2
  103. package/dist/keyring/kdf.js.map +1 -1
  104. package/dist/keyring/unlockSpace.d.ts +8 -30
  105. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  106. package/dist/keyring/unlockSpace.js +8 -31
  107. package/dist/keyring/unlockSpace.js.map +1 -1
  108. package/dist/keys/clientKeyRecord.d.ts +2 -1
  109. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  110. package/dist/keys/clientKeyRecord.js +28 -11
  111. package/dist/keys/clientKeyRecord.js.map +1 -1
  112. package/dist/keys/index.d.ts +19 -5
  113. package/dist/keys/index.d.ts.map +1 -1
  114. package/dist/keys/index.js +17 -3
  115. package/dist/keys/index.js.map +1 -1
  116. package/dist/keys/rosterLogStore.d.ts +3 -1
  117. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  118. package/dist/keys/rosterLogStore.js +20 -8
  119. package/dist/keys/rosterLogStore.js.map +1 -1
  120. package/dist/keys/spaceEpochs.d.ts +92 -3
  121. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  122. package/dist/keys/spaceEpochs.js +110 -4
  123. package/dist/keys/spaceEpochs.js.map +1 -1
  124. package/dist/keys/userKeyCascade.d.ts +8 -5
  125. package/dist/keys/userKeyCascade.d.ts.map +1 -1
  126. package/dist/keys/userKeyCascade.js +7 -6
  127. package/dist/keys/userKeyCascade.js.map +1 -1
  128. package/dist/keys/userKeyRoster.d.ts +68 -4
  129. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  130. package/dist/keys/userKeyRoster.js +146 -33
  131. package/dist/keys/userKeyRoster.js.map +1 -1
  132. package/dist/keys/userKeyRosterCascade.d.ts +110 -10
  133. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  134. package/dist/keys/userKeyRosterCascade.js +184 -40
  135. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  136. package/dist/recovery/continuation.d.ts +255 -0
  137. package/dist/recovery/continuation.d.ts.map +1 -0
  138. package/dist/recovery/continuation.js +471 -0
  139. package/dist/recovery/continuation.js.map +1 -0
  140. package/dist/recovery/index.d.ts +12 -8
  141. package/dist/recovery/index.d.ts.map +1 -1
  142. package/dist/recovery/index.js +11 -7
  143. package/dist/recovery/index.js.map +1 -1
  144. package/dist/recovery/recoveryDelegation.d.ts +40 -120
  145. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  146. package/dist/recovery/recoveryDelegation.js +36 -268
  147. package/dist/recovery/recoveryDelegation.js.map +1 -1
  148. package/dist/recovery/recoveryWebvh.d.ts +42 -83
  149. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  150. package/dist/recovery/recoveryWebvh.js +44 -380
  151. package/dist/recovery/recoveryWebvh.js.map +1 -1
  152. package/dist/request/appKey.d.ts +35 -1
  153. package/dist/request/appKey.d.ts.map +1 -1
  154. package/dist/request/appKey.js +29 -10
  155. package/dist/request/appKey.js.map +1 -1
  156. package/dist/request/classify.d.ts +3 -14
  157. package/dist/request/classify.d.ts.map +1 -1
  158. package/dist/request/classify.js +19 -40
  159. package/dist/request/classify.js.map +1 -1
  160. package/dist/request/index.d.ts +1 -0
  161. package/dist/request/index.d.ts.map +1 -1
  162. package/dist/request/index.js +1 -0
  163. package/dist/request/index.js.map +1 -1
  164. package/dist/request/onboarding.d.ts.map +1 -1
  165. package/dist/request/onboarding.js +19 -27
  166. package/dist/request/onboarding.js.map +1 -1
  167. package/dist/request/parse.d.ts +5 -3
  168. package/dist/request/parse.d.ts.map +1 -1
  169. package/dist/request/parse.js +7 -6
  170. package/dist/request/parse.js.map +1 -1
  171. package/dist/request/processRequest.d.ts.map +1 -1
  172. package/dist/request/processRequest.js +2 -1
  173. package/dist/request/processRequest.js.map +1 -1
  174. package/dist/request/queryPredicates.d.ts +98 -0
  175. package/dist/request/queryPredicates.d.ts.map +1 -0
  176. package/dist/request/queryPredicates.js +107 -0
  177. package/dist/request/queryPredicates.js.map +1 -0
  178. package/dist/resourceLog/document.d.ts +39 -0
  179. package/dist/resourceLog/document.d.ts.map +1 -1
  180. package/dist/resourceLog/document.js +41 -0
  181. package/dist/resourceLog/document.js.map +1 -1
  182. package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
  183. package/dist/resourceLog/ladderRungs.js +3 -2
  184. package/dist/resourceLog/ladderRungs.js.map +1 -1
  185. package/dist/sync/contactsConflict.d.ts.map +1 -1
  186. package/dist/sync/contactsConflict.js +8 -2
  187. package/dist/sync/contactsConflict.js.map +1 -1
  188. package/dist/sync/engine.d.ts +38 -23
  189. package/dist/sync/engine.d.ts.map +1 -1
  190. package/dist/sync/engine.js +36 -5
  191. package/dist/sync/engine.js.map +1 -1
  192. package/dist/sync/index.d.ts +9 -12
  193. package/dist/sync/index.d.ts.map +1 -1
  194. package/dist/sync/index.js +8 -11
  195. package/dist/sync/index.js.map +1 -1
  196. package/dist/sync/push.d.ts.map +1 -1
  197. package/dist/sync/push.js +1 -2
  198. package/dist/sync/push.js.map +1 -1
  199. package/dist/sync/remint.d.ts +0 -31
  200. package/dist/sync/remint.d.ts.map +1 -1
  201. package/dist/sync/remint.js +32 -1
  202. package/dist/sync/remint.js.map +1 -1
  203. package/dist/sync/types.d.ts +4 -41
  204. package/dist/sync/types.d.ts.map +1 -1
  205. package/dist/sync/types.js +4 -47
  206. package/dist/sync/types.js.map +1 -1
  207. package/dist/unlock/index.d.ts +1 -1
  208. package/dist/unlock/index.d.ts.map +1 -1
  209. package/dist/unlock/index.js +1 -1
  210. package/dist/unlock/index.js.map +1 -1
  211. package/dist/unlock/retire.d.ts +16 -56
  212. package/dist/unlock/retire.d.ts.map +1 -1
  213. package/dist/unlock/retire.js +7 -76
  214. package/dist/unlock/retire.js.map +1 -1
  215. package/dist/unlock/standingWebvh.d.ts +20 -40
  216. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  217. package/dist/unlock/standingWebvh.js +35 -76
  218. package/dist/unlock/standingWebvh.js.map +1 -1
  219. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  220. package/dist/unlock/unlockRecord.js +69 -44
  221. package/dist/unlock/unlockRecord.js.map +1 -1
  222. package/dist/webvh/accountEntry.d.ts +63 -7
  223. package/dist/webvh/accountEntry.d.ts.map +1 -1
  224. package/dist/webvh/accountEntry.js +110 -19
  225. package/dist/webvh/accountEntry.js.map +1 -1
  226. package/dist/webvh/delegatedLogStore.d.ts +18 -12
  227. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  228. package/dist/webvh/delegatedLogStore.js +32 -11
  229. package/dist/webvh/delegatedLogStore.js.map +1 -1
  230. package/dist/webvh/didWebvh.d.ts +39 -23
  231. package/dist/webvh/didWebvh.d.ts.map +1 -1
  232. package/dist/webvh/didWebvh.js +63 -45
  233. package/dist/webvh/didWebvh.js.map +1 -1
  234. package/dist/webvh/enrollClient.d.ts.map +1 -1
  235. package/dist/webvh/enrollClient.js +19 -23
  236. package/dist/webvh/enrollClient.js.map +1 -1
  237. package/dist/webvh/index.d.ts +11 -7
  238. package/dist/webvh/index.d.ts.map +1 -1
  239. package/dist/webvh/index.js +9 -6
  240. package/dist/webvh/index.js.map +1 -1
  241. package/dist/webvh/listClients.d.ts.map +1 -1
  242. package/dist/webvh/listClients.js +102 -65
  243. package/dist/webvh/listClients.js.map +1 -1
  244. package/dist/webvh/mergeMethods.d.ts +84 -0
  245. package/dist/webvh/mergeMethods.d.ts.map +1 -0
  246. package/dist/webvh/mergeMethods.js +46 -0
  247. package/dist/webvh/mergeMethods.js.map +1 -0
  248. package/dist/webvh/revokeClient.d.ts +12 -2
  249. package/dist/webvh/revokeClient.d.ts.map +1 -1
  250. package/dist/webvh/revokeClient.js +126 -48
  251. package/dist/webvh/revokeClient.js.map +1 -1
  252. package/dist/webvh/verifyLog.d.ts +21 -0
  253. package/dist/webvh/verifyLog.d.ts.map +1 -1
  254. package/dist/webvh/verifyLog.js +36 -14
  255. package/dist/webvh/verifyLog.js.map +1 -1
  256. package/package.json +11 -11
@@ -80,8 +80,22 @@ import type { IZcap } from '@interop/data-integrity-core';
80
80
  import type { ZcapClient } from '@interop/ezcap';
81
81
  import { WasClient } from '@interop/was-client';
82
82
  import type { ResourceLogPinStore } from '@interop/vh-resource-log';
83
- import type { ClientWebvhUpdateKeys, PublishedWebvhLog, WebvhIdStore } from '../webvh/didWebvh.js';
83
+ import type { PublishedWebvhLog, WebvhIdStore } from '../webvh/didWebvh.js';
84
84
  import type { ICapabilityAgent } from '../webvh/zcap.js';
85
+ import { attributeLadderRung } from './ladder.js';
86
+ import type { PointerEntryOutcome } from './log.js';
87
+ /**
88
+ * The HTTP status a raw signed request's rejection carries, when it carries
89
+ * one. `WasClient.request` applies no error mapping, so the status is all a
90
+ * caller has to dispatch on, and different transports hang it in different
91
+ * places (`status`, or `response.status`). Exported as the one reader of
92
+ * those two places, shared with the establishment's authorization-refusal
93
+ * check.
94
+ *
95
+ * @param err {unknown}
96
+ * @returns {number | undefined}
97
+ */
98
+ export declare function rawRequestStatus(err: unknown): number | undefined;
85
99
  /**
86
100
  * Why the visit cannot mend the annex.
87
101
  *
@@ -289,23 +303,93 @@ export declare function resolveClientAnnexSpaceId({ doc, delegatedClients }: {
289
303
  annexSpaceId?: string;
290
304
  };
291
305
  /**
292
- * The pre-flight rung attribution: the `{ updateSeed, stagedSeed }` pair the
293
- * pointer entry signs with, recovered from the verified account log's
294
- * current parameters. The signer must be a REVEALED rung (the entry verifies
295
- * against the log's `updateKeys`), with the next rung staged per the
296
- * carry-over convention. No rung of this ladder standing -- or only a
297
- * committed hash, which cannot sign -- refuses with
298
- * {@link ClientAnnexGenerationUnavailableError} before anything is minted.
299
- * Exported for the establishment's stage-3 primitive, whose pointer entry
300
- * signs by the same attribution.
306
+ * The pre-flight rung attribution every pointer-moving arm runs before
307
+ * minting anything: this ladder has a rung the pointer entry will be able to
308
+ * sign with, either standing in `updateKeys` already (`revealed`) or
309
+ * committed in `nextKeyHashes` and revealable by {@link movePointerAsLadder}
310
+ * (`committed`). A ladder the log carries no rung of at all, and an
311
+ * ambiguous attribution, refuse with
312
+ * {@link ClientAnnexGenerationUnavailableError} before a generation or a
313
+ * Space is minted -- the one place the ladder's `LadderAttributionError`
314
+ * maps onto that refusal.
301
315
  *
302
316
  * @param options {object}
303
317
  * @param options.ladderSeed {Uint8Array}
304
318
  * @param options.log {DIDLog} the VERIFIED account log
305
- * @returns {Promise<ClientWebvhUpdateKeys>}
319
+ * @returns {Promise<{ rung: LadderRung, state: LadderRungState }>}
306
320
  */
307
- export declare function pointerEntryUpdateKeys({ ladderSeed, log }: {
321
+ export declare function attributePointerEntryRung({ ladderSeed, log }: {
308
322
  ladderSeed: Uint8Array;
309
323
  log: PublishedWebvhLog['log'];
310
- }): Promise<ClientWebvhUpdateKeys>;
324
+ }): Promise<Awaited<ReturnType<typeof attributeLadderRung>>>;
325
+ /**
326
+ * The `#DelegatedClients` pointer move as a credential-only caller makes it:
327
+ * ONE ladder-signed pointer entry ({@link setDelegatedClientsPointer} on the
328
+ * ladder arm). Each attempt attributes the ladder's current rung from the
329
+ * head it builds on, the rung reveals itself in the entry it signs, and when
330
+ * it stood only committed the entry commits the next rung's hash beside it.
331
+ * The one shape every ladder-held pointer move runs: the transient readiness
332
+ * pass's fresh-generation arm, and the establishment's stage 3 (whose first
333
+ * attempt builds on the head it minted or read, threaded in as `published`).
334
+ *
335
+ * A self-enrollment's add entry spends the revealed rung, so on any account
336
+ * that has ever self-enrolled the rung is merely committed and the reveal is
337
+ * what makes the pointer entry signable at all.
338
+ *
339
+ * ACCEPTED CONSEQUENCE (design FW-356, finding R3): the entry retires
340
+ * nothing, so the acting rung stands in the account log's `updateKeys`
341
+ * afterwards. The price of a pointer move is therefore a standing account
342
+ * update key in the credential's hand -- direct document-edit authority
343
+ * through the bridge with no further reveal -- retired at that credential's
344
+ * next self-enrollment (whose add entry drops the attributed rung) or at its
345
+ * retirement. This is documented rather than prevented.
346
+ *
347
+ * Attribution runs inside the conflict retry, so a racing ceremony that
348
+ * consumes the rung between the read and the PUT climbs to the winner's
349
+ * committed rung instead of refusing `update-key-not-attributable` on a rung
350
+ * that is no longer current. A caller that signed the pointer entry with a
351
+ * pair fixed before the retry would instead re-run a rung the winner retired,
352
+ * and the client arm's not-authorized refusal is not a conflict, so its retry
353
+ * would end there -- after the annex Space and generation were minted, with
354
+ * nothing naming them. The pre-flight guard ({@link attributePointerEntryRung})
355
+ * therefore cannot fire from staleness here: it runs on the caller's snapshot
356
+ * before anything is minted, while the entry is built on a head the attempt
357
+ * read itself.
358
+ *
359
+ * @param options {object}
360
+ * @param options.idStore {WebvhIdStore} the account log's store -- the
361
+ * record's bridge delegation on a transient visit, the root-invoking store
362
+ * in the establishment's stage 3
363
+ * @param options.ladderSeed {Uint8Array} the credential's ladder seed
364
+ * @param options.clientAnnexDid {string} the generation to point at
365
+ * @param options.accountDid {string} the account DID the log must resolve to
366
+ * @param [options.pinStore] {ResourceLogPinStore} the visit's chain-head pins
367
+ * @param [options.logId] {string} the account log's pin slot; required
368
+ * whenever a `pinStore` is supplied
369
+ * @param [options.logOnly] {boolean} whether the pointer entry publishes
370
+ * the log alone (default `true`, a bridge-delegated writer's whole reach);
371
+ * the establishment's root window passes `false` so its `did:web`
372
+ * projection is republished beside the entry
373
+ * @param [options.published] {PublishedWebvhLog} a head the caller already
374
+ * read or published under the same pin, ETag included: the FIRST attempt
375
+ * attributes and builds on it instead of reading, and a lost
376
+ * compare-and-swap there falls through to the reading retry with its whole
377
+ * budget (`withThreadedHeadOnce`)
378
+ * @returns {Promise<{ did: string, doc: DIDDoc, published: PublishedWebvhLog,
379
+ * rung: LadderRung }>} the pointer entry's outcome (the head it leaves
380
+ * standing, ETag included) and the rung it was signed with -- the ladder's
381
+ * current rung, which a lost race may have climbed past the caller's own
382
+ * attribution; on the idempotent already-pointed path, the rung the
383
+ * attempt attributed
384
+ */
385
+ export declare function movePointerAsLadder({ idStore, ladderSeed, clientAnnexDid, accountDid, pinStore, logId, logOnly, published }: {
386
+ idStore: WebvhIdStore;
387
+ ladderSeed: Uint8Array;
388
+ clientAnnexDid: string;
389
+ accountDid: string;
390
+ pinStore?: ResourceLogPinStore;
391
+ logId?: string;
392
+ logOnly?: boolean;
393
+ published?: PublishedWebvhLog;
394
+ }): Promise<Required<PointerEntryOutcome>>;
311
395
  //# sourceMappingURL=heal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heal.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/heal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAQnE,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAO7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAsCxD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,sCAAsC,GAChD,wBAAwB,GAAG,6BAA6B,CAAA;AAE1D;;;;GAIG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAC9D,QAAQ,CAAC,MAAM,EAAE,sCAAsC,CAAA;gBAE3C,EACV,MAAM,EACN,OAAO,EACR,EAAE;QACD,MAAM,EAAE,sCAAsC,CAAA;QAC9C,OAAO,EAAE,MAAM,CAAA;KAChB;CAKF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sCAAsC,CAAC,EACrD,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,GAAG,EACJ,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,CAAC,OAAO,EAAE;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAW1D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kCAAkC;IACjD,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,KAAK,CAAA;IAC3B;;;OAGG;IACH,UAAU,EAAE,KAAK,CAAA;IACjB;;;OAGG;IACH,gBAAgB,EAAE,KAAK,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,mBAAmB,EAAE,OAAO,CAAA;IAC5B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,qCAAqC,CAAC,OAAO,EAAE;IAC7D,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAA;IACvD,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAA;IACvD,eAAe,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAA;KAAE,KAAK,SAAS,CAAA;IACvE,UAAU,EAAE,KAAK,CAAA;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,KAAK,CAAA;KAAE,KAAK,YAAY,CAAA;IAC5D,cAAc,EAAE,CAAC,OAAO,EAAE;QACxB,UAAU,EAAE,KAAK,CAAA;QACjB,gBAAgB,EAAE,KAAK,CAAA;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAW9C;AA6hBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,GAAG,EACH,gBAAgB,EACjB,EAAE;IACD,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC7B,gBAAgB,CAAC,EAAE,KAAK,CAAA;CACzB,GAAG;IACF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAeA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,GAAG,EACJ,EAAE;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;CAC9B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0BjC"}
1
+ {"version":3,"file":"heal.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/heal.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,27 @@
1
1
  import { WasClient } from '@interop/was-client';
2
2
  import { spacePath } from '@interop/was-client/paths';
3
- import { currentLogParameters, readPublishedLog, readPublishedLogOrThrow, WebvhLogConflictError, withLogConflictRetry } from '../webvh/didWebvh.js';
3
+ import { currentLogParameters, readPublishedLog } from '../webvh/didWebvh.js';
4
4
  import { ladderVmIds } from '../resourceLog/document.js';
5
5
  import { standingZcapStale } from '../webvh/standingZcap.js';
6
6
  import { delegateLogWrite } from '../recovery/recoveryDelegation.js';
7
7
  import { accountLogPinId } from '../webvh/verifyLog.js';
8
8
  import { mintSpaceId } from '../genesis/accountGenesis.js';
9
- import { attributeLadderRung, ladderRung, ladderVmKeyMultibase } from './ladder.js';
10
- import { revealLadderRungWebvh } from './ladderAnchored.js';
9
+ import { attributeLadderRung, ladderVmKeyMultibase } from './ladder.js';
11
10
  import { ladderVmAgent, ladderVmZcapClient } from './zcap.js';
12
11
  import { mintSpaceRootVerbCapability } from './spaceCapability.js';
13
- import { clientAnnexDidParts, clientAnnexLogPinId, clientAnnexLogStore, delegatedClientsDelegationSpaceId, delegatedClientsPointer, ensureClientAnnexSpace, ensureGenerationDelegationCurrent, mintCredentialClientAnnexGeneration, mintDelegatedClientsDelegation, mintGenerationDelegation, setDelegatedClientsPointerOnce } from './log.js';
12
+ import { clientAnnexDidParts, clientAnnexLogPinId, clientAnnexLogStore, delegatedClientsDelegationSpaceId, delegatedClientsPointer, ensureClientAnnexSpace, ensureGenerationDelegationCurrent, mintDelegatedClientsDelegation, mintGenerationDelegation, mintPointedClientAnnexGeneration, setDelegatedClientsPointer } from './log.js';
14
13
  /**
15
14
  * The HTTP status a raw signed request's rejection carries, when it carries
16
15
  * one. `WasClient.request` applies no error mapping, so the status is all a
17
16
  * caller has to dispatch on, and different transports hang it in different
18
- * places (`status`, or `response.status`).
17
+ * places (`status`, or `response.status`). Exported as the one reader of
18
+ * those two places, shared with the establishment's authorization-refusal
19
+ * check.
19
20
  *
20
21
  * @param err {unknown}
21
22
  * @returns {number | undefined}
22
23
  */
23
- function rawRequestStatus(err) {
24
+ export function rawRequestStatus(err) {
24
25
  const raw = err;
25
26
  const status = raw?.status ?? raw?.response?.status;
26
27
  return typeof status === 'number' ? status : undefined;
@@ -250,6 +251,12 @@ async function ensureCredentialClientAnnexGenerationChecked({ wasServerUrl, spac
250
251
  * VM. Minting first and flipping afterwards would need the bootstrap key's
251
252
  * own root invocations, which is the ordering this stage replaced.
252
253
  *
254
+ * The flip swallows nothing. The establishment's bootstrap arm tolerates
255
+ * an authorization-class refusal there because its Space may be a
256
+ * sibling-named one a concurrent run already flipped; this Space's id was
257
+ * minted a moment ago and no other run can hold it, so every failure is
258
+ * the transport or logic failure it looks like and propagates.
259
+ *
253
260
  * @returns {Promise<string>} the fresh auxiliary Space's id
254
261
  */
255
262
  async function mintFreshAnnexSpace() {
@@ -483,7 +490,7 @@ async function ensureCredentialClientAnnexGenerationChecked({ wasServerUrl, spac
483
490
  };
484
491
  }
485
492
  catch (err) {
486
- if (err.name !==
493
+ if (err?.name !==
487
494
  'ClientAnnexRungUncommittedError') {
488
495
  throw err;
489
496
  }
@@ -500,7 +507,7 @@ async function ensureCredentialClientAnnexGenerationChecked({ wasServerUrl, spac
500
507
  // and the visit would fail on something other than the typed
501
508
  // refusal. The Space is re-minted and the run starts over in it,
502
509
  // before anything has been written.
503
- await assertPointerEntryAttributable({ ladderSeed, log: account.log });
510
+ await attributePointerEntryRung({ ladderSeed, log: account.log });
504
511
  const freshSpaceId = await mintFreshAnnexSpace();
505
512
  spaceMinted = true;
506
513
  pointedSpaceMissing = true;
@@ -517,46 +524,41 @@ async function ensureCredentialClientAnnexGenerationChecked({ wasServerUrl, spac
517
524
  // rung; other standing credentials' per-generation rungs are re-committed
518
525
  // only by their own later ceremonies (a property of every generation
519
526
  // swap).
520
- await assertPointerEntryAttributable({ ladderSeed, log: account.log });
521
- const minted = await mintCredentialClientAnnexGeneration({
527
+ await attributePointerEntryRung({ ladderSeed, log: account.log });
528
+ const generation = await mintPointedClientAnnexGeneration({
522
529
  was: standingWas,
523
530
  wasServerUrl,
524
531
  spaceId: annexSpaceId,
525
532
  controller: account.did,
526
533
  ladderSeed,
527
- capability: usableSibling
528
- });
529
- const ensured = await ensureGenerationDelegationCurrent({
530
- store: storeFor(minted.generationId),
531
- ladderSeed,
532
- generationId: minted.generationId,
534
+ capability: usableSibling,
533
535
  mintGenerationDelegation: mintDelegation,
534
- expectedDid: minted.did,
535
- ...annexPin(minted.generationId),
536
+ // No revocation of the superseded generation's delegation is
537
+ // attempted: a transient visit has no reach that could invoke it (the
538
+ // standing client is neither the Space controller nor in that
539
+ // delegation's chain). The pointer move itself retires it on a
540
+ // conforming server -- the inspector clause compares the delegation's
541
+ // controller against the document's pointer -- and it otherwise rots
542
+ // on its TTL.
543
+ point: clientAnnexDid => movePointerAsLadder({
544
+ idStore,
545
+ ladderSeed,
546
+ clientAnnexDid,
547
+ accountDid: account.did,
548
+ ...(pinStore !== undefined
549
+ ? { pinStore, logId: accountLogPinId({ spaceId }) }
550
+ : {})
551
+ }),
552
+ ...(pinStore !== undefined ? { pinStore } : {}),
536
553
  ...(now !== undefined ? { now } : {})
537
554
  });
538
- // No revocation of the superseded generation's delegation is attempted:
539
- // a transient visit has no reach that could invoke it (the standing
540
- // client is neither the Space controller nor in that delegation's
541
- // chain). The pointer move itself retires it on a conforming server --
542
- // the inspector clause compares the delegation's controller against the
543
- // document's pointer -- and it otherwise rots on its TTL.
544
- await movePointerAsLadder({
545
- idStore,
546
- ladderSeed,
547
- clientAnnexDid: minted.did,
548
- accountDid: account.did,
549
- ...(pinStore !== undefined
550
- ? { pinStore, logId: accountLogPinId({ spaceId }) }
551
- : {})
552
- });
553
555
  const resealed = await resealRecord({
554
556
  delegatedClients: usableSibling,
555
557
  siblingReminted
556
558
  });
557
559
  return {
558
- clientAnnexDid: minted.did,
559
- generationDelegation: ensured.delegation,
560
+ clientAnnexDid: generation.clientAnnexDid,
561
+ generationDelegation: generation.generationDelegation,
560
562
  delegation: usableBridge,
561
563
  delegatedClients: usableSibling,
562
564
  generationMinted: true,
@@ -572,7 +574,7 @@ async function ensureCredentialClientAnnexGenerationChecked({ wasServerUrl, spac
572
574
  // NEITHER THE POINTER NOR A SIBLING NAMES A SPACE. The pre-flight
573
575
  // attribution runs before any Space or generation is minted (a bridge
574
576
  // delegation mint writes nothing durable).
575
- await assertPointerEntryAttributable({ ladderSeed, log: account.log });
577
+ await attributePointerEntryRung({ ladderSeed, log: account.log });
576
578
  const freshSpaceId = await mintFreshAnnexSpace();
577
579
  spaceMinted = true;
578
580
  return runInAnnexSpace({
@@ -617,68 +619,28 @@ export function resolveClientAnnexSpaceId({ doc, delegatedClients }) {
617
619
  };
618
620
  }
619
621
  /**
620
- * The pre-flight rung attribution: the `{ updateSeed, stagedSeed }` pair the
621
- * pointer entry signs with, recovered from the verified account log's
622
- * current parameters. The signer must be a REVEALED rung (the entry verifies
623
- * against the log's `updateKeys`), with the next rung staged per the
624
- * carry-over convention. No rung of this ladder standing -- or only a
625
- * committed hash, which cannot sign -- refuses with
626
- * {@link ClientAnnexGenerationUnavailableError} before anything is minted.
627
- * Exported for the establishment's stage-3 primitive, whose pointer entry
628
- * signs by the same attribution.
629
- *
630
- * @param options {object}
631
- * @param options.ladderSeed {Uint8Array}
632
- * @param options.log {DIDLog} the VERIFIED account log
633
- * @returns {Promise<ClientWebvhUpdateKeys>}
634
- */
635
- export async function pointerEntryUpdateKeys({ ladderSeed, log }) {
636
- const current = currentLogParameters({ log });
637
- const unattributable = () => new ClientAnnexGenerationUnavailableError({
638
- reason: 'update-key-not-attributable',
639
- message: "No current account-log update key is a rung of this credential's " +
640
- 'ladder; the pointer entry could not be signed, so nothing is minted.'
641
- });
642
- let attributed;
643
- try {
644
- attributed = await attributeLadderRung({ ladderSeed, published: current });
645
- }
646
- catch (err) {
647
- if (err.name === 'LadderAttributionError') {
648
- throw unattributable();
649
- }
650
- throw err;
651
- }
652
- if (attributed.state !== 'revealed') {
653
- throw unattributable();
654
- }
655
- const staged = await ladderRung({
656
- ladderSeed,
657
- index: attributed.rung.index + 1
658
- });
659
- return { updateSeed: attributed.rung.seed, stagedSeed: staged.seed };
660
- }
661
- /**
662
- * The pre-flight the pointer-moving arms run before minting anything: this
663
- * ladder has a rung the pointer entry will be able to sign with, either
664
- * standing in `updateKeys` already or committed in `nextKeyHashes` and
665
- * revealable by {@link movePointerAsLadder}. A ladder the log carries no rung
666
- * of at all, and an ambiguous attribution, refuse here with
622
+ * The pre-flight rung attribution every pointer-moving arm runs before
623
+ * minting anything: this ladder has a rung the pointer entry will be able to
624
+ * sign with, either standing in `updateKeys` already (`revealed`) or
625
+ * committed in `nextKeyHashes` and revealable by {@link movePointerAsLadder}
626
+ * (`committed`). A ladder the log carries no rung of at all, and an
627
+ * ambiguous attribution, refuse with
667
628
  * {@link ClientAnnexGenerationUnavailableError} before a generation or a
668
- * Space is minted.
629
+ * Space is minted -- the one place the ladder's `LadderAttributionError`
630
+ * maps onto that refusal.
669
631
  *
670
632
  * @param options {object}
671
633
  * @param options.ladderSeed {Uint8Array}
672
634
  * @param options.log {DIDLog} the VERIFIED account log
673
- * @returns {Promise<void>}
635
+ * @returns {Promise<{ rung: LadderRung, state: LadderRungState }>}
674
636
  */
675
- async function assertPointerEntryAttributable({ ladderSeed, log }) {
637
+ export async function attributePointerEntryRung({ ladderSeed, log }) {
676
638
  const current = currentLogParameters({ log });
677
639
  try {
678
- await attributeLadderRung({ ladderSeed, published: current });
640
+ return await attributeLadderRung({ ladderSeed, published: current });
679
641
  }
680
642
  catch (err) {
681
- if (err.name === 'LadderAttributionError') {
643
+ if (err?.name === 'LadderAttributionError') {
682
644
  throw new ClientAnnexGenerationUnavailableError({
683
645
  reason: 'update-key-not-attributable',
684
646
  message: "The account log carries no rung of this credential's ladder, or " +
@@ -690,107 +652,79 @@ async function assertPointerEntryAttributable({ ladderSeed, log }) {
690
652
  }
691
653
  }
692
654
  /**
693
- * The `#DelegatedClients` pointer move as a credential-only visit makes it:
694
- * reveal this ladder's rung when only its hash stands committed, re-read, and
695
- * write the pointer entry signed by the now-revealed rung.
655
+ * The `#DelegatedClients` pointer move as a credential-only caller makes it:
656
+ * ONE ladder-signed pointer entry ({@link setDelegatedClientsPointer} on the
657
+ * ladder arm). Each attempt attributes the ladder's current rung from the
658
+ * head it builds on, the rung reveals itself in the entry it signs, and when
659
+ * it stood only committed the entry commits the next rung's hash beside it.
660
+ * The one shape every ladder-held pointer move runs: the transient readiness
661
+ * pass's fresh-generation arm, and the establishment's stage 3 (whose first
662
+ * attempt builds on the head it minted or read, threaded in as `published`).
696
663
  *
697
664
  * A self-enrollment's add entry spends the revealed rung, so on any account
698
665
  * that has ever self-enrolled the rung is merely committed and the reveal is
699
666
  * what makes the pointer entry signable at all.
700
667
  *
701
- * ACCEPTED CONSEQUENCE (design FW-356, finding R3): the reveal retires
702
- * nothing, and the pointer entry re-states `updateKeys` verbatim, so the
703
- * acting rung stands in the account log's `updateKeys` afterwards. The price
704
- * of a pointer move is therefore a standing account update key in the
705
- * credential's hand -- direct document-edit authority through the bridge with
706
- * no further reveal -- retired at that credential's next self-enrollment
707
- * (whose add entry drops the attributed rung) or at its retirement. This is
708
- * documented rather than prevented.
668
+ * ACCEPTED CONSEQUENCE (design FW-356, finding R3): the entry retires
669
+ * nothing, so the acting rung stands in the account log's `updateKeys`
670
+ * afterwards. The price of a pointer move is therefore a standing account
671
+ * update key in the credential's hand -- direct document-edit authority
672
+ * through the bridge with no further reveal -- retired at that credential's
673
+ * next self-enrollment (whose add entry drops the attributed rung) or at its
674
+ * retirement. This is documented rather than prevented.
709
675
  *
710
- * Both entries run inside ONE conflict retry, and every attempt re-reads the
711
- * head and re-attributes the rung from it, so a racing ceremony that consumes
712
- * the rung climbs to the winner's committed rung instead of refusing
713
- * `update-key-not-attributable` on a rung that is no longer current.
714
- *
715
- * Three things make that hold. A rung the winner consumed between this
716
- * attempt's reveal and its re-read reads back as
717
- * `update-key-not-attributable`, which inside this loop is staleness rather
718
- * than a refusal -- the pre-flight already found a rung -- so it is raised as
719
- * a conflict and the next attempt reveals the winner's committed rung. The pointer entry runs as
720
- * {@link setDelegatedClientsPointerOnce} rather than through its retrying
721
- * wrapper: the wrapper's inner loop would re-invoke the attempt with the
722
- * attribution's stale `updateKeys`, and a rung the racing winner consumed
723
- * cannot become authorized by re-reading, so the attempt would end on the
724
- * plain not-authorized refusal, which the outer loop does not retry. And the
725
- * attempt is handed the very head this attempt attributed against, so a
726
- * racing entry landing between the attribution and the PUT loses the CAS and
727
- * surfaces as a `WebvhLogConflictError` -- the refusal the outer loop
728
- * re-attributes from. The pre-flight guard
729
- * ({@link assertPointerEntryAttributable}) therefore cannot fire from
730
- * staleness here: it runs on the caller's snapshot before anything is minted,
731
- * while every entry this function publishes is built on a head it read
732
- * itself.
676
+ * Attribution runs inside the conflict retry, so a racing ceremony that
677
+ * consumes the rung between the read and the PUT climbs to the winner's
678
+ * committed rung instead of refusing `update-key-not-attributable` on a rung
679
+ * that is no longer current. A caller that signed the pointer entry with a
680
+ * pair fixed before the retry would instead re-run a rung the winner retired,
681
+ * and the client arm's not-authorized refusal is not a conflict, so its retry
682
+ * would end there -- after the annex Space and generation were minted, with
683
+ * nothing naming them. The pre-flight guard ({@link attributePointerEntryRung})
684
+ * therefore cannot fire from staleness here: it runs on the caller's snapshot
685
+ * before anything is minted, while the entry is built on a head the attempt
686
+ * read itself.
733
687
  *
734
688
  * @param options {object}
735
- * @param options.idStore {WebvhIdStore} the account log's store, from the
736
- * record's bridge delegation
689
+ * @param options.idStore {WebvhIdStore} the account log's store -- the
690
+ * record's bridge delegation on a transient visit, the root-invoking store
691
+ * in the establishment's stage 3
737
692
  * @param options.ladderSeed {Uint8Array} the credential's ladder seed
738
693
  * @param options.clientAnnexDid {string} the generation to point at
739
694
  * @param options.accountDid {string} the account DID the log must resolve to
740
695
  * @param [options.pinStore] {ResourceLogPinStore} the visit's chain-head pins
741
696
  * @param [options.logId] {string} the account log's pin slot; required
742
697
  * whenever a `pinStore` is supplied
743
- * @returns {Promise<void>}
698
+ * @param [options.logOnly] {boolean} whether the pointer entry publishes
699
+ * the log alone (default `true`, a bridge-delegated writer's whole reach);
700
+ * the establishment's root window passes `false` so its `did:web`
701
+ * projection is republished beside the entry
702
+ * @param [options.published] {PublishedWebvhLog} a head the caller already
703
+ * read or published under the same pin, ETag included: the FIRST attempt
704
+ * attributes and builds on it instead of reading, and a lost
705
+ * compare-and-swap there falls through to the reading retry with its whole
706
+ * budget (`withThreadedHeadOnce`)
707
+ * @returns {Promise<{ did: string, doc: DIDDoc, published: PublishedWebvhLog,
708
+ * rung: LadderRung }>} the pointer entry's outcome (the head it leaves
709
+ * standing, ETag included) and the rung it was signed with -- the ladder's
710
+ * current rung, which a lost race may have climbed past the caller's own
711
+ * attribution; on the idempotent already-pointed path, the rung the
712
+ * attempt attributed
744
713
  */
745
- async function movePointerAsLadder({ idStore, ladderSeed, clientAnnexDid, accountDid, pinStore, logId }) {
746
- const pin = pinStore !== undefined && logId !== undefined ? { pinStore, logId } : {};
747
- await withLogConflictRetry(async () => {
748
- await revealLadderRungWebvh({
749
- store: idStore,
750
- ladderSeed,
751
- expectedDid: accountDid,
752
- ...pin
753
- });
754
- // The head the reveal entry just published (or the unchanged head, when
755
- // the rung was revealed already), under the same pin.
756
- const published = await readPublishedLogOrThrow({
757
- idStore,
758
- expectedDid: accountDid,
759
- ...pin,
760
- missingMessage: 'did:webvh: did.jsonl is missing; nothing to point at a client annex.'
761
- });
762
- // A racing ceremony that consumed the rung between this reveal and this
763
- // read leaves the ladder committed-only again, which the attribution
764
- // reports as `update-key-not-attributable`. Inside this loop that is a
765
- // staleness signal rather than a refusal -- the pre-flight already found
766
- // a rung, and a fresh reveal is exactly what the next attempt does -- so
767
- // it becomes a conflict for the retry to re-run.
768
- let updateKeys;
769
- try {
770
- updateKeys = await pointerEntryUpdateKeys({
771
- ladderSeed,
772
- log: published.log
773
- });
774
- }
775
- catch (err) {
776
- if (err.name ===
777
- 'ClientAnnexGenerationUnavailableError' &&
778
- err.reason ===
779
- 'update-key-not-attributable') {
780
- throw new WebvhLogConflictError('did:webvh: a concurrent ceremony consumed the rung this pointer ' +
781
- 'move just revealed; the move re-runs from a fresh reveal.', { cause: err });
782
- }
783
- throw err;
784
- }
785
- await setDelegatedClientsPointerOnce({
786
- idStore,
787
- signer: { kind: 'client', updateKeys },
788
- clientAnnexDid,
789
- expectedDid: accountDid,
790
- logOnly: true,
791
- published,
792
- ...pin
793
- });
714
+ export async function movePointerAsLadder({ idStore, ladderSeed, clientAnnexDid, accountDid, pinStore, logId, logOnly = true, published }) {
715
+ const pointed = await setDelegatedClientsPointer({
716
+ idStore,
717
+ signer: { kind: 'ladder', ladderSeed },
718
+ clientAnnexDid,
719
+ expectedDid: accountDid,
720
+ logOnly,
721
+ ...(published !== undefined ? { published } : {}),
722
+ ...(pinStore !== undefined && logId !== undefined
723
+ ? { pinStore, logId }
724
+ : {})
794
725
  });
726
+ // No `skip` hook is passed, so the ladder arm attributed a rung on every
727
+ // path, the idempotent one included.
728
+ return { ...pointed, rung: pointed.rung };
795
729
  }
796
730
  //# sourceMappingURL=heal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heal.js","sourceRoot":"","sources":["../../src/clientAnnex/heal.ts"],"names":[],"mappings":"AAgFA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,uBAAuB,EACvB,sBAAsB,EACtB,iCAAiC,EACjC,mCAAmC,EACnC,8BAA8B,EAC9B,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,UAAU,CAAA;AAEjB;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,GAAG,GAAG,GAA4D,CAAA;IACxE,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAA;IACnD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAuBD;;;;GAIG;AACH,MAAM,OAAO,qCAAsC,SAAQ,KAAK;IACrD,MAAM,CAAwC;IAEvD,YAAY,EACV,MAAM,EACN,OAAO,EAIR;QACC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,uCAAuC,CAAA;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sCAAsC,CAAC,EACrD,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,GAAG,EAOJ;IACC,OAAO,KAAK,EAAE,EAAE,cAAc,EAA8B,EAAE,EAAE;QAC9D,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;QACvE,OAAO,wBAAwB,CAAC;YAC9B,UAAU;YACV,YAAY;YACZ,OAAO;YACP,cAAc;YACd,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAoDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,UAAU,qCAAqC,CAAC,OAgBrD;IACC,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,SAAS,CACjB,mEAAmE;YACjE,gEAAgE;YAChE,gBAAgB,CACnB,CAAA;IACH,CAAC;IACD,OAAO,4CAA4C,CAAC,OAAO,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,4CAA4C,CAAC,EAC1D,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,GAAG,EAiBJ;IACC,yEAAyE;IACzE,2EAA2E;IAC3E,kEAAkE;IAClE,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,4EAA4E;IAC5E,uEAAuE;IACvE,oEAAoE;IACpE,WAAW;IACX,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IACxD,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,qCAAqC,CAAC;YAC9C,MAAM,EAAE,wBAAwB;YAChC,OAAO,EACL,kEAAkE;gBAClE,sEAAsE;SACzE,CAAC,CAAA;IACJ,CAAC;IAED,yEAAyE;IACzE,gEAAgE;IAChE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,yBAAyB,CAAC;QAC1E,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;IAEF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,UAAU,EAAE,OAAO,CAAC,GAAG;QACvB,UAAU;KACX,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,sCAAsC,CAAC;QAC5D,UAAU,EAAE,OAAO,CAAC,GAAG;QACvB,UAAU;QACV,YAAY;QACZ,OAAO;QACP,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CAAA;IAEF,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,oBAAoB;IACpB,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,IAAI,YAAY,GAAG,UAAU,CAAA;IAC7B,IACE,iBAAiB,CAAC;QAChB,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,OAAO,CAAC,GAA2B;QACxC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,EACF,CAAC;QACD,YAAY,GAAG,MAAM,gBAAgB,CAAC;YACpC,UAAU,EAAE,YAAY;YACxB,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;YAC1D,iBAAiB,EAAE,cAAc,CAAC,GAAG;YACrC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAA;QACF,cAAc,GAAG,IAAI,CAAA;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAExD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,UAAU,YAAY,CAAC,EAC1B,gBAAgB,EAAE,aAAa,EAC/B,eAAe,EAIhB;QACC,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,cAAc,CAAC;gBACnB,UAAU,EAAE,YAAY;gBACxB,gBAAgB,EAAE,aAAa;aAChC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,GAAG,CAAA;YACX,CAAC;YACD,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAA;QACnC,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,UAAU,mBAAmB;QAChC,MAAM,YAAY,GAAG,WAAW,EAAE,CAAA;QAClC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;YAC3C,GAAG,EAAE,YAAY;YACjB,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,QAAQ,CAAC,EAAE;SACxB,CAAC,CAAA;QACF,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,YAAY;aACf,KAAK,CAAC,YAAY,CAAC;aACnB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACxE,OAAO,YAAY,CAAA;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,UAAU,oBAAoB,CAAC,EAClC,GAAG,EACH,YAAY,EACZ,UAAU,EAKX;QACC,IAAI,MAA0B,CAAA;QAC9B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC;gBACjC,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;gBAC7B,MAAM,EAAE,KAAK;gBACb,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAA;YACF,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;gBAClC,OAAO,WAAW,CAAA;YACpB,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;QACD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,iDAAiD,YAAY,IAAI;YAC/D,YAAY,MAAM,oDAAoD,CACzE,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,UAAU,gBAAgB,CAAC,EAC9B,YAAY,EACZ,GAAG,EAIJ;QACC,MAAM,KAAK,GAAG,MAAM,2BAA2B,CAAC;YAC9C,UAAU,EAAE,YAAY;YACxB,gBAAgB,EAAE,YAAY;YAC9B,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,cAAc,CAAC,GAAG;YAC9B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC;YAC3C,GAAG;YACH,YAAY;YACZ,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,YAAY,GAAG,eAAe,CAAC;YACnC,QAAQ,EAAE,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;SAC9C,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC;YAC7C,GAAG,EAAE,YAAY;YACjB,YAAY;SACb,CAAC,CAAA;QACF,OAAO,WAAW,KAAK,WAAW,CAAA;IACpC,CAAC;IAED,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,mBAAmB,GAAG,KAAK,CAAA;IAE/B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,UAAU,eAAe,CAAC,EAC7B,YAAY,EACZ,qBAAqB,EACrB,OAAO,EAKR;QACC,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,iEAAiE;QACjE,mEAAmE;QACnE,yEAAyE;QACzE,sEAAsE;QACtE,eAAe;QACf,IAAI,OAAO,GAAG,gBAAgB,CAAA;QAC9B,IAAI,eAAe,GAAG,KAAK,CAAA;QAC3B,MAAM,YAAY,GAChB,OAAO,KAAK,SAAS;YACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,OAAO;gBACb,GAAG,EAAE,OAAO,CAAC,GAA2B;gBACxC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtC,CAAC,CAAA;QACJ,IACE,OAAO,KAAK,SAAS;YACrB,cAAc,KAAK,YAAY;YAC/B,YAAY,EACZ,CAAC;YACD,OAAO,GAAG,MAAM,8BAA8B,CAAC;gBAC7C,UAAU,EAAE,YAAY;gBACxB,YAAY;gBACZ,kBAAkB,EAAE,YAAY;gBAChC,UAAU,EAAE,cAAc,CAAC,GAAG;gBAC9B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtC,CAAC,CAAA;YACF,eAAe,GAAG,IAAI,CAAA;QACxB,CAAC;QACD,MAAM,aAAa,GAAG,OAAO,CAAA;QAC7B,MAAM,WAAW,GAAG,IAAI,SAAS,CAAC;YAChC,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,cAAc,CAAC,UAAU;SACtC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAE,EAAE,CACxC,mBAAmB,CAAC;YAClB,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,YAAY;YACrB,YAAY;YACZ,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAA;QACJ,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAE,EAAE,CACxC,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC;gBACE,QAAQ;gBACR,KAAK,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;aACpE;YACH,CAAC,CAAC,EAAE,CAAA;QAER,wEAAwE;QACxE,yEAAyE;QACzE,+DAA+D;QAC/D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YACnD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC;gBACxC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;gBACrC,WAAW,EAAE,OAAO;gBACpB,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;aAChC,CAAC,CAAA;YACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,iCAAiC,CAAC;wBACtD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;wBACnC,UAAU;wBACV,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,wBAAwB,EAAE,cAAc;wBACxC,WAAW,EAAE,OAAO;wBACpB,UAAU,EAAE,OAAO,CAAC,GAA2B;wBAC/C,gEAAgE;wBAChE,iEAAiE;wBACjE,8BAA8B;wBAC9B,SAAS,EAAE,UAAU;wBACrB,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;wBAC/B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtC,CAAC,CAAA;oBACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;wBAClC,gBAAgB,EAAE,aAAa;wBAC/B,eAAe;qBAChB,CAAC,CAAA;oBACF,OAAO;wBACL,cAAc,EAAE,OAAO;wBACvB,oBAAoB,EAAE,OAAO,CAAC,UAAU;wBACxC,UAAU,EAAE,YAAY;wBACxB,gBAAgB,EAAE,aAAa;wBAC/B,gBAAgB,EAAE,KAAK;wBACvB,WAAW;wBACX,mBAAmB;wBACnB,iBAAiB,EAAE,OAAO,CAAC,OAAO;wBAClC,eAAe;wBACf,cAAc;wBACd,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;4BACjC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE;4BACtC,CAAC,CAAC,EAAE,CAAC;wBACP,GAAG,QAAQ;qBACZ,CAAA;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IACG,GAAyB,CAAC,IAAI;wBAC/B,iCAAiC,EACjC,CAAC;wBACD,MAAM,GAAG,CAAA;oBACX,CAAC;oBACD,8DAA8D;oBAC9D,+DAA+D;oBAC/D,iDAAiD;gBACnD,CAAC;YACH,CAAC;iBAAM,IACL,qBAAqB;gBACrB,CAAC,MAAM,gBAAgB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,EAC5D,CAAC;gBACD,oEAAoE;gBACpE,oEAAoE;gBACpE,oEAAoE;gBACpE,6DAA6D;gBAC7D,iEAAiE;gBACjE,oCAAoC;gBACpC,MAAM,8BAA8B,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;gBACtE,MAAM,YAAY,GAAG,MAAM,mBAAmB,EAAE,CAAA;gBAChD,WAAW,GAAG,IAAI,CAAA;gBAClB,mBAAmB,GAAG,IAAI,CAAA;gBAC1B,OAAO,eAAe,CAAC;oBACrB,YAAY,EAAE,YAAY;oBAC1B,qBAAqB,EAAE,KAAK;iBAC7B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,qEAAqE;QACrE,gEAAgE;QAChE,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,SAAS;QACT,MAAM,8BAA8B,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACtE,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC;YACvD,GAAG,EAAE,WAAW;YAChB,YAAY;YACZ,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,UAAU;YACV,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,iCAAiC,CAAC;YACtD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;YACpC,UAAU;YACV,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,wBAAwB,EAAE,cAAc;YACxC,WAAW,EAAE,MAAM,CAAC,GAAG;YACvB,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;YAChC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAA;QAEF,wEAAwE;QACxE,oEAAoE;QACpE,kEAAkE;QAClE,uEAAuE;QACvE,wEAAwE;QACxE,0DAA0D;QAC1D,MAAM,mBAAmB,CAAC;YACxB,OAAO;YACP,UAAU;YACV,cAAc,EAAE,MAAM,CAAC,GAAG;YAC1B,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,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;QACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;YAClC,gBAAgB,EAAE,aAAa;YAC/B,eAAe;SAChB,CAAC,CAAA;QACF,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,GAAG;YAC1B,oBAAoB,EAAE,OAAO,CAAC,UAAU;YACxC,UAAU,EAAE,YAAY;YACxB,gBAAgB,EAAE,aAAa;YAC/B,gBAAgB,EAAE,IAAI;YACtB,WAAW;YACX,mBAAmB;YACnB,iBAAiB,EAAE,KAAK;YACxB,eAAe;YACf,cAAc;YACd,GAAG,QAAQ;SACZ,CAAA;IACH,CAAC;IAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,kEAAkE;QAClE,sEAAsE;QACtE,2CAA2C;QAC3C,MAAM,8BAA8B,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACtE,MAAM,YAAY,GAAG,MAAM,mBAAmB,EAAE,CAAA;QAChD,WAAW,GAAG,IAAI,CAAA;QAClB,OAAO,eAAe,CAAC;YACrB,YAAY,EAAE,YAAY;YAC1B,qBAAqB,EAAE,KAAK;SAC7B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;QACrB,YAAY;QACZ,qBAAqB,EAAE,IAAI;QAC3B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,GAAG,EACH,gBAAgB,EAIjB;IAKC,MAAM,OAAO,GAAG,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAChD,MAAM,cAAc,GAClB,gBAAgB,KAAK,SAAS;QAC5B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iCAAiC,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAA;IACzE,MAAM,YAAY,GAChB,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;QAC/C,CAAC,CAAC,cAAc,CAAA;IACpB,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,UAAU,EACV,GAAG,EAIJ;IACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7C,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,IAAI,qCAAqC,CAAC;QACxC,MAAM,EAAE,6BAA6B;QACrC,OAAO,EACL,mEAAmE;YACnE,sEAAsE;KACzE,CAAC,CAAA;IACJ,IAAI,UAA2D,CAAA;IAC/D,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAyB,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACjE,MAAM,cAAc,EAAE,CAAA;QACxB,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,cAAc,EAAE,CAAA;IACxB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,UAAU;QACV,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;KACjC,CAAC,CAAA;IACF,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;AACtE,CAAC;AACD;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,8BAA8B,CAAC,EAC5C,UAAU,EACV,GAAG,EAIJ;IACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7C,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAyB,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACjE,MAAM,IAAI,qCAAqC,CAAC;gBAC9C,MAAM,EAAE,6BAA6B;gBACrC,OAAO,EACL,kEAAkE;oBAClE,+DAA+D;oBAC/D,+BAA+B;aAClC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,KAAK,UAAU,mBAAmB,CAAC,EACjC,OAAO,EACP,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,KAAK,EAQN;IACC,MAAM,GAAG,GACP,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1E,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,qBAAqB,CAAC;YAC1B,KAAK,EAAE,OAAO;YACd,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,GAAG,GAAG;SACP,CAAC,CAAA;QACF,wEAAwE;QACxE,sDAAsD;QACtD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC;YAC9C,OAAO;YACP,WAAW,EAAE,UAAU;YACvB,GAAG,GAAG;YACN,cAAc,EACZ,sEAAsE;SACzE,CAAC,CAAA;QACF,wEAAwE;QACxE,qEAAqE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,iDAAiD;QACjD,IAAI,UAAiC,CAAA;QACrC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,sBAAsB,CAAC;gBACxC,UAAU;gBACV,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACG,GAAyB,CAAC,IAAI;gBAC7B,uCAAuC;gBACxC,GAA6C,CAAC,MAAM;oBACnD,6BAA6B,EAC/B,CAAC;gBACD,MAAM,IAAI,qBAAqB,CAC7B,kEAAkE;oBAChE,2DAA2D,EAC7D,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;YACH,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;QACD,MAAM,8BAA8B,CAAC;YACnC,OAAO;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;YACtC,cAAc;YACd,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,IAAI;YACb,SAAS;YACT,GAAG,GAAG;SACP,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"heal.js","sourceRoot":"","sources":["../../src/clientAnnex/heal.ts"],"names":[],"mappings":"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"}