@interop/wallet-core 0.89.0 → 0.91.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 (88) hide show
  1. package/dist/clientAnnex/grantRevocation.d.ts +9 -4
  2. package/dist/clientAnnex/grantRevocation.d.ts.map +1 -1
  3. package/dist/clientAnnex/grantRevocation.js +8 -4
  4. package/dist/clientAnnex/grantRevocation.js.map +1 -1
  5. package/dist/clientAnnex/index.d.ts +1 -1
  6. package/dist/clientAnnex/index.d.ts.map +1 -1
  7. package/dist/clientAnnex/index.js +1 -1
  8. package/dist/clientAnnex/index.js.map +1 -1
  9. package/dist/clientAnnex/ladder.d.ts +55 -13
  10. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  11. package/dist/clientAnnex/ladder.js +143 -75
  12. package/dist/clientAnnex/ladder.js.map +1 -1
  13. package/dist/clientAnnex/ladderAnchored.d.ts +7 -58
  14. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  15. package/dist/clientAnnex/ladderAnchored.js +9 -72
  16. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  17. package/dist/clientAnnex/log.d.ts +4 -2
  18. package/dist/clientAnnex/log.d.ts.map +1 -1
  19. package/dist/clientAnnex/log.js +12 -2
  20. package/dist/clientAnnex/log.js.map +1 -1
  21. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +53 -17
  22. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  23. package/dist/clientAnnex/recoveryLadderAnchored.js +52 -24
  24. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  25. package/dist/clientAnnex/selfEnroll.d.ts +3 -8
  26. package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
  27. package/dist/clientAnnex/selfEnroll.js +2 -1
  28. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  29. package/dist/recovery/continuation.d.ts +23 -9
  30. package/dist/recovery/continuation.d.ts.map +1 -1
  31. package/dist/recovery/continuation.js +85 -14
  32. package/dist/recovery/continuation.js.map +1 -1
  33. package/dist/recovery/recoveryWebvh.d.ts +17 -4
  34. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  35. package/dist/recovery/recoveryWebvh.js +14 -1
  36. package/dist/recovery/recoveryWebvh.js.map +1 -1
  37. package/dist/sync/contactsConflict.d.ts +9 -9
  38. package/dist/sync/contactsConflict.js +9 -9
  39. package/dist/sync/engine.d.ts +3 -3
  40. package/dist/sync/engine.js +3 -3
  41. package/dist/sync/engine.js.map +1 -1
  42. package/dist/sync/index.d.ts +3 -3
  43. package/dist/sync/index.d.ts.map +1 -1
  44. package/dist/sync/index.js +2 -2
  45. package/dist/sync/pull.d.ts +5 -5
  46. package/dist/sync/pull.js +5 -5
  47. package/dist/sync/push.d.ts +7 -6
  48. package/dist/sync/push.d.ts.map +1 -1
  49. package/dist/sync/push.js +65 -59
  50. package/dist/sync/push.js.map +1 -1
  51. package/dist/sync/remint.d.ts +37 -33
  52. package/dist/sync/remint.d.ts.map +1 -1
  53. package/dist/sync/remint.js +70 -64
  54. package/dist/sync/remint.js.map +1 -1
  55. package/dist/sync/types.d.ts +88 -83
  56. package/dist/sync/types.d.ts.map +1 -1
  57. package/dist/sync/types.js +12 -12
  58. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  59. package/dist/unlock/standingWebvh.js +3 -1
  60. package/dist/unlock/standingWebvh.js.map +1 -1
  61. package/dist/webvh/accountEntry.d.ts +10 -1
  62. package/dist/webvh/accountEntry.d.ts.map +1 -1
  63. package/dist/webvh/accountEntry.js +23 -1
  64. package/dist/webvh/accountEntry.js.map +1 -1
  65. package/dist/webvh/builtOnHead.d.ts +79 -0
  66. package/dist/webvh/builtOnHead.d.ts.map +1 -0
  67. package/dist/webvh/builtOnHead.js +77 -0
  68. package/dist/webvh/builtOnHead.js.map +1 -0
  69. package/dist/webvh/didWebvh.d.ts +14 -6
  70. package/dist/webvh/didWebvh.d.ts.map +1 -1
  71. package/dist/webvh/didWebvh.js +5 -2
  72. package/dist/webvh/didWebvh.js.map +1 -1
  73. package/dist/webvh/enrollClient.d.ts +4 -1
  74. package/dist/webvh/enrollClient.d.ts.map +1 -1
  75. package/dist/webvh/enrollClient.js +38 -8
  76. package/dist/webvh/enrollClient.js.map +1 -1
  77. package/dist/webvh/index.d.ts +2 -0
  78. package/dist/webvh/index.d.ts.map +1 -1
  79. package/dist/webvh/index.js +1 -0
  80. package/dist/webvh/index.js.map +1 -1
  81. package/dist/webvh/revokeClient.d.ts.map +1 -1
  82. package/dist/webvh/revokeClient.js +4 -6
  83. package/dist/webvh/revokeClient.js.map +1 -1
  84. package/dist/webvh/verifyLog.d.ts +5 -1
  85. package/dist/webvh/verifyLog.d.ts.map +1 -1
  86. package/dist/webvh/verifyLog.js +4 -2
  87. package/dist/webvh/verifyLog.js.map +1 -1
  88. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EACN,eAAe,EACf,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAOlC,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAG3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAiB1D;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,iEAI7B,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,UAKxC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,GAAG,EACH,GAAG,EACH,qBAAqB,EACrB,SAAS,EACV,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,EAAE,CAeX;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,wBAAwB,EAAE,MAAM,EAAE,CAAA;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,8BAA8B,CAAC,EACnD,GAAG,EACH,GAAG,EACH,SAAS,EACT,6BAA6B,EAC7B,6BAA6B,EAC9B,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAA;IACrE,6BAA6B,EAAE,MAAM,CAAA;IACrC,6BAA6B,EAAE,MAAM,CAAA;CACtC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA2DnC;AAyBD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,wBAAwB,EACzB,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,MAAM,CAET;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,EAAE,MAAM,CAAA;IAChC,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;gBAEnD,OAAO,SAC8C;CAKxD;AAED;;;;;;;;;GASG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAA;gBAEtB,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;CAS/D;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,YAAY,EACZ,kBAAkB,GAAG,eAAe,GAAG,KAAK,CAC7C,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,EACxD,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,MAAM,EACP,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAA;IACvB,QAAQ,EAAE,kBAAkB,GAAG;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE,CAAA;IACzD,SAAS,EAAE;QACT,kBAAkB,EAAE,MAAM,CAAA;QAC1B,UAAU,EAAE,UAAU,CAAA;QACtB,kBAAkB,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,WAAW,EAAE,6BAA6B,CAAA;IAC1C,WAAW,EAAE,CAAC,SAAS,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5E,KAAK,EAAE,CAAC,OAAO,EAAE;QACf,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,SAAS,EAAE,SAAS,CAAA;KACrB,KAAK,sBAAsB,CAAA;IAC5B,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAA;CACjD,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA2RvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACzB,EAAE;IACD,SAAS,EAAE,OAAO,CAAA;IAClB,wBAAwB,EAAE,MAAM,EAAE,CAAA;CACnC,GAAG;IAAE,OAAO,EAAE,eAAe,CAAA;CAAE,CAK/B"}
@@ -28,7 +28,7 @@ import { credentialKeyAgreementMethods, ladderVmIds, retiredCredentialKeys } fro
28
28
  // The base-side dependency the lint config pins: the ladder ATTRIBUTION
29
29
  // helpers only, never the annex log machinery. The add-and-retire entry
30
30
  // resolves each retired credential's standing rungs from the log with them.
31
- import { assertNextKeyHashesRemain, attributeRetiredCredentialRungs, retiredCredentialRungsBeforeKey } from '../clientAnnex/ladder.js';
31
+ import { abandonedSpendCommitments, assertNextKeyHashesRemain, credentialLadderAnchor, attributeRetiredCredentialRungs, retiredCredentialRungsBeforeKey } from '../clientAnnex/ladder.js';
32
32
  /**
33
33
  * The recovery-code spend's stages on the ceremony event channel, in the
34
34
  * order they land: the reveal-and-commit entry, the caller's
@@ -43,11 +43,13 @@ export const RECOVERY_CODE_SPEND_STAGES = [
43
43
  /**
44
44
  * The spend's typed refusals, matched by `err.name`: a code the document no
45
45
  * longer commits (revoked or already spent), a fresh credential the account
46
- * already stands on, and an account with no log to recover.
46
+ * already stands on, a resume whose recorded head the served log never
47
+ * reached, and an account with no log to recover.
47
48
  */
48
49
  export const RECOVERY_CODE_SPEND_REFUSALS = [
49
50
  'RecoveryKeyNotCommittedError',
50
51
  'RecoveryCredentialStandingError',
52
+ 'BuiltOnHeadNotReachedError',
51
53
  'AccountLogMissingError'
52
54
  ];
53
55
  /**
@@ -106,6 +108,12 @@ export function retiredCredentialVmIdsFromLog({ log, did, successorKeyMultibase,
106
108
  * (the entry never landed) reports nothing retired, since there is no entry to
107
109
  * read back.
108
110
  *
111
+ * The abandoned attempts' commitments ({@link abandonedSpendCommitments}) are
112
+ * recomputed over the same prefix. The spent code's rung 0 is not an input
113
+ * here, so it is recovered from the prefix: the standing update key whose
114
+ * hash the spent member names as its ladder commitment. When the member names
115
+ * no anchor or no standing key matches, no abandoned commitment is reported.
116
+ *
109
117
  * @param options {object}
110
118
  * @param options.log {DIDLog} the verified account log
111
119
  * @param options.did {string} the account DID the log resolves to
@@ -119,22 +127,23 @@ export function retiredCredentialVmIdsFromLog({ log, did, successorKeyMultibase,
119
127
  * @returns {Promise<RecoverySpendRetirement>}
120
128
  */
121
129
  export async function recoverySpendRetirementFromLog({ log, did, successor, replacementUpdateKeyMultibase, spentKeyAgreementKeyMultibase }) {
122
- const authorized = effectiveParameters(log).some(entry => (entry.updateKeys ?? []).includes(successor.updateKeyMultibase));
123
- if (!authorized) {
130
+ const entryIndex = effectiveParameters(log).findIndex(entry => (entry.updateKeys ?? []).includes(successor.updateKeyMultibase));
131
+ if (entryIndex === -1) {
124
132
  return {
125
133
  retiredCredentialVmIds: [],
126
134
  struckRungHashes: [],
127
135
  unclaimedCredentialVmIds: []
128
136
  };
129
137
  }
138
+ const spentVmId = recoveryVmId({
139
+ did,
140
+ keyAgreementKeyMultibase: spentKeyAgreementKeyMultibase
141
+ });
130
142
  const retiredCredentialVmIds = retiredCredentialVmIdsFromLog({
131
143
  log,
132
144
  did,
133
145
  successorKeyMultibase: successor.updateKeyMultibase,
134
- spentVmId: recoveryVmId({
135
- did,
136
- keyAgreementKeyMultibase: spentKeyAgreementKeyMultibase
137
- })
146
+ spentVmId
138
147
  });
139
148
  const protectedHashes = await Promise.all([
140
149
  deriveNextKeyHash(successor.updateKeyMultibase),
@@ -148,12 +157,48 @@ export async function recoverySpendRetirementFromLog({ log, did, successor, repl
148
157
  protectedHashes,
149
158
  protectedKeys: [successor.updateKeyMultibase]
150
159
  });
160
+ // The abandoned attempts' commitments, over the same pre-entry prefix the
161
+ // strike above reads. The spent code's rung 0 is the standing update key
162
+ // whose hash the spent member names as its ladder commitment.
163
+ const prefix = log.slice(0, entryIndex);
164
+ const anchor = credentialLadderAnchor({
165
+ log: prefix,
166
+ credentialVmId: spentVmId
167
+ });
168
+ const spentKeyMultibase = anchor &&
169
+ (await firstKeyHashingTo({
170
+ keys: effectiveParameters(prefix).at(-1)?.updateKeys ?? [],
171
+ hash: anchor.anchorHash
172
+ }));
173
+ const abandoned = spentKeyMultibase
174
+ ? await abandonedSpendCommitments({
175
+ log: prefix,
176
+ spentKeyMultibase,
177
+ protectedHashes
178
+ })
179
+ : [];
151
180
  return {
152
181
  retiredCredentialVmIds,
153
- struckRungHashes: strike.struckHashes,
182
+ struckRungHashes: [...new Set([...strike.struckHashes, ...abandoned])],
154
183
  unclaimedCredentialVmIds: strike.unclaimedCredentialVmIds
155
184
  };
156
185
  }
186
+ /**
187
+ * The first of `keys` whose next-key hash is `hash`.
188
+ *
189
+ * @param options {object}
190
+ * @param options.keys {string[]} update-key multibases
191
+ * @param options.hash {string} a next-key hash
192
+ * @returns {Promise<string | undefined>}
193
+ */
194
+ async function firstKeyHashingTo({ keys, hash }) {
195
+ for (const key of keys) {
196
+ if ((await deriveNextKeyHash(key)) === hash) {
197
+ return key;
198
+ }
199
+ }
200
+ return undefined;
201
+ }
157
202
  /**
158
203
  * The verification-method id a code's key-agreement key publishes under --
159
204
  * the ordinary `<did>#<multibase>` form, indistinguishable by id from any
@@ -171,12 +216,12 @@ export function recoveryVmId({ did, keyAgreementKeyMultibase }) {
171
216
  }
172
217
  /**
173
218
  * Thrown by the recovery continuation when the log carries neither the code's
174
- * update key nor its committed hash -- the code was revoked (or never
175
- * issued), so no continuation can verify.
219
+ * update key nor its committed hash -- the code was already spent, revoked,
220
+ * or never issued, so no continuation can verify.
176
221
  */
177
222
  export class RecoveryKeyNotCommittedError extends Error {
178
223
  constructor(message = 'The account log no longer commits this recovery code; the ' +
179
- 'code has been revoked or was never issued.') {
224
+ 'code was already spent, revoked, or never issued.') {
180
225
  super(message);
181
226
  this.name = 'RecoveryKeyNotCommittedError';
182
227
  }
@@ -246,13 +291,20 @@ export class RecoveryCredentialStandingError extends Error {
246
291
  * is refused with {@link RecoveryCredentialStandingError}. The transient
247
292
  * variant supplies its fresh credential's; the remembered variant's new
248
293
  * client publishes a marked pair, which is never credential-class
294
+ * @param [options.builtOnHead] {object} `{ scid, versionId }` -- the resume
295
+ * marker a torn run's persisted state recorded, from an earlier attempt's
296
+ * `onCommitted`. Supplied, each attempt's first read is refused with
297
+ * `BuiltOnHeadNotReachedError` unless the served log carries that SCID and
298
+ * an entry with that `versionId`, before the completion check, so a
299
+ * truncated served log is never read as "not complete yet" and rebuilt
300
+ * over; a malformed marker is refused with a `TypeError` before any read
249
301
  * @param [options.expectedDid] {string}
250
302
  * @param [options.events] {CeremonyEmitter} the running spend's emitter,
251
303
  * which each landed stage reports through. The conflict retry re-enters
252
304
  * this body, and the emitter reports a stage once per run
253
305
  * @returns {Promise<RecoveryContinuationOutcome>}
254
306
  */
255
- export async function recoveryContinuationOnce({ store, recovery, successor, replacement, onCommitted, added, credentialVmIds, expectedDid, events }) {
307
+ export async function recoveryContinuationOnce({ store, recovery, successor, replacement, onCommitted, added, credentialVmIds, builtOnHead, expectedDid, events }) {
256
308
  const pinned = {
257
309
  ...(expectedDid !== undefined ? { expectedDid } : {})
258
310
  };
@@ -284,6 +336,9 @@ export async function recoveryContinuationOnce({ store, recovery, successor, rep
284
336
  missingMessage,
285
337
  verb: 'spending a recovery code',
286
338
  logOnly: true,
339
+ // The resume marker: the preamble refuses a served log that has not
340
+ // reached it, before `skip`'s completion check.
341
+ ...(builtOnHead !== undefined ? { builtOnHead } : {}),
287
342
  skip: read => {
288
343
  // Already complete (a torn earlier run finished the add entry): the
289
344
  // successor key is authorized, which only the add entry writes.
@@ -440,6 +495,22 @@ export async function recoveryContinuationOnce({ store, recovery, successor, rep
440
495
  protectedHashes,
441
496
  protectedKeys
442
497
  });
498
+ // What an earlier attempt of this spend committed and this one does not
499
+ // carry forward: a torn run re-run with another successor (a fresh
500
+ // ladder seed, a second passphrase) or another replacement leaves the
501
+ // first attempt's hashes behind its reveal entry, and one whose key
502
+ // derives from a record that attempt persisted is a latent update key
503
+ // no retirement is ever anchored on. Struck in the same entry.
504
+ const abandoned = await abandonedSpendCommitments({
505
+ log: read.log,
506
+ spentKeyMultibase: recovery.updateKeyMultibase,
507
+ protectedHashes
508
+ });
509
+ strike = {
510
+ ...strike,
511
+ struckHashes: [...new Set([...strike.struckHashes, ...abandoned])]
512
+ };
513
+ const struckHashes = [recoveryHash, ...strike.struckHashes];
443
514
  const struck = (id) => id === spentVmId ||
444
515
  ladderVms.includes(id) ||
445
516
  struckCredentialVmIds.includes(id);
@@ -449,7 +520,7 @@ export async function recoveryContinuationOnce({ store, recovery, successor, rep
449
520
  updateKeys: read.updateKeys.filter(key => key !== recovery.updateKeyMultibase &&
450
521
  !strike.struckKeys.includes(key)),
451
522
  nextKeyHashes: assertNextKeyHashesRemain({
452
- nextKeyHashes: read.nextKeyHashes.filter(hash => hash !== recoveryHash && !strike.struckHashes.includes(hash)),
523
+ nextKeyHashes: read.nextKeyHashes.filter(hash => !struckHashes.includes(hash)),
453
524
  ceremony: 'the recovery add-and-retire entry'
454
525
  }),
455
526
  // The retirement runs over the EXISTING document only, and the added
@@ -1 +1 @@
1
- {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAQ7D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,UAAU,EACX,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,EACL,6BAA6B,EAC7B,WAAW,EACX,qBAAqB,EACtB,MAAM,4BAA4B,CAAA;AACnC,wEAAwE;AACxE,wEAAwE;AACxE,4EAA4E;AAC5E,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,EAChC,MAAM,0BAA0B,CAAA;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,eAAe;IACf,qBAAqB;IACrB,YAAY;CACJ,CAAA;AAOV;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,8BAA8B;IAC9B,iCAAiC;IACjC,wBAAwB;CACzB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,GAAG,EACH,GAAG,EACH,qBAAqB,EACrB,SAAS,EAMV;IACC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACrC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACzD,CAAA;IACD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9D,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,qBAAqB,CAAC;QAC3B,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,QAAQ;QACjB,GAAG;KACJ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;AACnC,CAAC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACnD,GAAG,EACH,GAAG,EACH,SAAS,EACT,6BAA6B,EAC7B,6BAA6B,EAO9B;IACC,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACvD,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAChE,CAAA;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,sBAAsB,EAAE,EAAE;YAC1B,gBAAgB,EAAE,EAAE;YACpB,wBAAwB,EAAE,EAAE;SAC7B,CAAA;IACH,CAAC;IACD,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;QAC3D,GAAG;QACH,GAAG;QACH,qBAAqB,EAAE,SAAS,CAAC,kBAAkB;QACnD,SAAS,EAAE,YAAY,CAAC;YACtB,GAAG;YACH,wBAAwB,EAAE,6BAA6B;SACxD,CAAC;KACH,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/C,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/C,iBAAiB,CAAC,6BAA6B,CAAC;KACjD,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC;QACnD,GAAG;QACH,sBAAsB,EAAE,SAAS,CAAC,kBAAkB;QACpD,eAAe,EAAE,sBAAsB;QACvC,eAAe;QACf,aAAa,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC;KAC9C,CAAC,CAAA;IACF,OAAO;QACL,sBAAsB;QACtB,gBAAgB,EAAE,MAAM,CAAC,YAAY;QACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;KAC1D,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,GAAG,EACH,wBAAwB,EAIzB;IACC,OAAO,GAAG,GAAG,IAAI,wBAAwB,EAAE,CAAA;AAC7C,CAAC;AAyBD;;;;GAIG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,YACE,OAAO,GAAG,4DAA4D;QACpE,4CAA4C;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAA;IAC5C,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,eAAe,CAAU;IAElC,YAAY,EAAE,eAAe,EAAiC;QAC5D,KAAK,CACH,qEAAqE;YACnE,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC;YACtE,eAAe,CAClB,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;CACF;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAY,EACxD,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,WAAW,EACX,MAAM,EAqBP;IACC,MAAM,MAAM,GAAG;QACb,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAA;IACD,MAAM,cAAc,GAAG,sDAAsD,CAAA;IAE7E,4EAA4E;IAC5E,4EAA4E;IAC5E,0BAA0B;IAC1B,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC,GAC9D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9C,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/C,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/C,iBAAiB,CAAC,WAAW,CAAC,kBAAkB,CAAC;KAClD,CAAC,CAAA;IACJ,MAAM,eAAe,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;IACpE,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACpD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAClC,YAAY,CAAC;QACX,GAAG;QACH,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB;KAC5D,CAAC,CAAA;IACJ,MAAM,QAAQ,GAAG,CAAC,IAAuB,EAAE,EAAE,CAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAExD,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;QACpC,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE;QAC9D,GAAG,MAAM;QACT,cAAc;QACd,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI,CAAC,EAAE;YACX,oEAAoE;YACpE,gEAAgE;YAChE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,oEAAoE;YACpE,yDAAyD;YACzD,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC/D,6BAA6B,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAC3B,CACF,CAAA;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,+BAA+B,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC1E,CAAC;YACD,qEAAqE;YACrE,mDAAmD;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;YACtE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,4BAA4B,EAAE,CAAA;YAC1C,CAAC;YACD,OAAO,CACL,QAAQ;gBACR,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACjE,CAAA;QACH,CAAC;QACD,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,sCAAsC;QACtC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;KACjD,CAAC,CAAA;IACF,IAAI,SAAS,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE;QAC7B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC,CAAA;IAEF,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,8BAA8B;QAC9B,MAAM,UAAU,GAAG,MAAM,8BAA8B,CAAC;YACtD,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS,EAAE;gBACT,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;gBAChD,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;aACjD;YACD,6BAA6B,EAAE,WAAW,CAAC,kBAAkB;YAC7D,6BAA6B,EAAE,QAAQ,CAAC,wBAAwB;SACjE,CAAC,CAAA;QACF,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,OAAO;YACL,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS,EAAE,KAAK;YAChB,GAAG,UAAU;SACd,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnD,uEAAuE;QACvE,SAAS,GAAG,MAAM,uBAAuB,CAAC;YACxC,OAAO,EAAE,KAAK;YACd,GAAG,MAAM;YACT,WAAW,EAAE,SAAS,CAAC,GAAG;YAC1B,cAAc;SACf,CAAC,CAAA;IACJ,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC;QAClC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;KACvC,CAAC,CAAA;IACF,MAAM,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAEpC,sEAAsE;IACtE,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,wCAAwC;IACxC,IAAI,sBAAsB,GAAa,EAAE,CAAA;IACzC,IAAI,MAAM,GAAgE;QACxE,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;QACd,wBAAwB,EAAE,EAAE;KAC7B,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC;QACjC,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE;QAC/D,SAAS;QACT,GAAG,MAAM;QACT,WAAW,EAAE,SAAS,CAAC,GAAG;QAC1B,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;YACnC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,eAAe,GAAG,YAAY,CAAC;gBACnC,GAAG;gBACH,wBAAwB,EAAE,WAAW,CAAC,wBAAwB;aAC/D,CAAC,CAAA;YACF,uEAAuE;YACvE,uEAAuE;YACvE,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAA;YAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAyB;gBACzC,GAAG,OAAO,CAAC,OAAO;gBAClB,2BAA2B,CAAC;oBAC1B,GAAG;oBACH,YAAY,EAAE;wBACZ,kBAAkB,EAAE,WAAW,CAAC,wBAAwB;qBACzD;oBACD,gBAAgB,EAAE,eAAe;iBAClC,CAAC;gBACF,wBAAwB,CAAC;oBACvB,UAAU,EAAE,GAAG;oBACf,kBAAkB,EAAE,WAAW,CAAC,oBAAoB;iBACrD,CAAC;aACH,CAAA;YACD,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,uEAAuE;YACvE,oEAAoE;YACpE,iEAAiE;YACjE,+DAA+D;YAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YACtC,MAAM,UAAU,GAAG,YAAY;iBAC5B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;iBACxB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAA;YACvD,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;iBACtE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;iBACxB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;iBACpD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YACzC,sBAAsB,GAAG,qBAAqB,CAAC,MAAM,CACnD,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CACvB,CAAA;YACD,yEAAyE;YACzE,+DAA+D;YAC/D,wEAAwE;YACxE,wEAAwE;YACxE,kEAAkE;YAClE,uEAAuE;YACvE,6CAA6C;YAC7C,MAAM,GAAG,MAAM,+BAA+B,CAAC;gBAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,eAAe,EAAE,sBAAsB;gBACvC,eAAe;gBACf,aAAa;aACd,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,CAAC,EAAU,EAAW,EAAE,CACrC,EAAE,KAAK,SAAS;gBAChB,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACpC,OAAO;gBACL,kEAAkE;gBAClE,8CAA8C;gBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAChC,GAAG,CAAC,EAAE,CACJ,GAAG,KAAK,QAAQ,CAAC,kBAAkB;oBACnC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CACnC;gBACD,aAAa,EAAE,yBAAyB,CAAC;oBACvC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CACtC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrE;oBACD,QAAQ,EAAE,mCAAmC;iBAC9C,CAAC;gBACF,qEAAqE;gBACrE,oEAAoE;gBACpE,qEAAqE;gBACrE,mDAAmD;gBACnD,GAAG,wBAAwB,CAAC;oBAC1B,GAAG;oBACH,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE;wBACT,cAAc,EAAE,OAAO,CAAC,cAAc;wBACtC,4DAA4D;wBAC5D,+DAA+D;wBAC/D,UAAU;wBACV,eAAe,EAAE;4BACf,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;4BAClC,qBAAqB;yBACtB;wBACD,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC;wBAChE,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;wBAClD,oBAAoB,EAAE;4BACpB,GAAG,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;4BACvC,qBAAqB;yBACtB;qBACF;iBACF,CAAC;gBACF,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IACF,mDAAmD;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAQ,CAAA;IAC5B,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,sBAAsB;QACtB,gBAAgB,EAAE,MAAM,CAAC,YAAY;QACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;KAC1D,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,SAAS,EACT,wBAAwB,EAIzB;IACC,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ import type { DIDDoc, DIDLog } from '@interop/did-method-webvh';
41
41
  import type { ClientWebvhUpdateKeys, WebvhEnrollmentKeys, WebvhIdStore } from '../webvh/didWebvh.js';
42
42
  import type { UnlockInventoryPart } from '../unlock/standingWebvh.js';
43
43
  import type { AccountLogSigner } from '../webvh/accountEntry.js';
44
+ import type { BuiltOnHead } from '../webvh/builtOnHead.js';
44
45
  import type { RecoveryLogStore, RecoveryPublicKeys, ReplacementRecoveryPublicKeys } from './continuation.js';
45
46
  export { RECOVERY_CODE_SPEND_STAGES, RecoveryCredentialStandingError, RecoveryKeyNotCommittedError, recoveryVmId, retiredCredentialVmIdsFromLog } from './continuation.js';
46
47
  export type { RecoveryCodeSpendStage, RecoveryLogStore, RecoveryPublicKeys, ReplacementRecoveryPublicKeys } from './continuation.js';
@@ -210,6 +211,18 @@ export declare function removeRecoveryKey({ idStore, signer, recovery, ladderSee
210
211
  * never-published CLIENT's committed hashes, inert orphans in
211
212
  * `nextKeyHashes` exactly as on the self-enrollment seam (keys of a lost
212
213
  * random seed; nothing can reveal them)
214
+ * @param [options.resume] {object} `{ builtOnHead: { scid, versionId } }`
215
+ * -- the resume marker the torn run's pending record recorded, the head
216
+ * the seam handed it. Supplied, each attempt's first read is refused with
217
+ * `BuiltOnHeadNotReachedError` unless the served log carries that SCID and
218
+ * an entry with that `versionId`, as the transient continuation's resume
219
+ * is. The chain-head pin covers the same fork only once it has advanced
220
+ * past the reveal entry, and a tab death between the publish and the
221
+ * pin's advance leaves the pin one entry short, so the marker is what
222
+ * refuses a served log truncated to the pre-reveal head, where the
223
+ * completion check would otherwise build a second reveal entry. Both
224
+ * members must be non-empty strings; a malformed marker is refused with a
225
+ * `TypeError` before any read
213
226
  * @param [options.expectedDid] {string} the account DID the log must resolve
214
227
  * to, where the recovering flow already knows it. Every read both entries
215
228
  * are built on is checked against the store's own chain-head pin (a served
@@ -240,11 +253,11 @@ export declare function recoverWebvhClient(options: {
240
253
  newClientUpdateSeeds: ClientWebvhUpdateKeys;
241
254
  replacement: ReplacementRecoveryPublicKeys;
242
255
  onCommitted: (committed: {
243
- builtOnHead: {
244
- scid: string;
245
- versionId: string;
246
- };
256
+ builtOnHead: BuiltOnHead;
247
257
  }) => Promise<void>;
258
+ resume?: {
259
+ builtOnHead: BuiltOnHead;
260
+ };
248
261
  expectedDid?: string;
249
262
  }): Promise<{
250
263
  did: string;
@@ -1 +1 @@
1
- {"version":3,"file":"recoveryWebvh.d.ts","sourceRoot":"","sources":["../../src/recovery/recoveryWebvh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recoveryWebvh.d.ts","sourceRoot":"","sources":["../../src/recovery/recoveryWebvh.ts"],"names":[],"mappings":"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"}
@@ -210,6 +210,18 @@ export async function removeRecoveryKey({ idStore, signer, recovery, ladderSeed,
210
210
  * never-published CLIENT's committed hashes, inert orphans in
211
211
  * `nextKeyHashes` exactly as on the self-enrollment seam (keys of a lost
212
212
  * random seed; nothing can reveal them)
213
+ * @param [options.resume] {object} `{ builtOnHead: { scid, versionId } }`
214
+ * -- the resume marker the torn run's pending record recorded, the head
215
+ * the seam handed it. Supplied, each attempt's first read is refused with
216
+ * `BuiltOnHeadNotReachedError` unless the served log carries that SCID and
217
+ * an entry with that `versionId`, as the transient continuation's resume
218
+ * is. The chain-head pin covers the same fork only once it has advanced
219
+ * past the reveal entry, and a tab death between the publish and the
220
+ * pin's advance leaves the pin one entry short, so the marker is what
221
+ * refuses a served log truncated to the pre-reveal head, where the
222
+ * completion check would otherwise build a second reveal entry. Both
223
+ * members must be non-empty strings; a malformed marker is refused with a
224
+ * `TypeError` before any read
213
225
  * @param [options.expectedDid] {string} the account DID the log must resolve
214
226
  * to, where the recovering flow already knows it. Every read both entries
215
227
  * are built on is checked against the store's own chain-head pin (a served
@@ -247,7 +259,7 @@ export async function recoverWebvhClient(options) {
247
259
  signingKeyMultibase: options.newClientKeys.signingKeyMultibase,
248
260
  keyAgreementKeyMultibase: options.newClientKeys.keyAgreementKeyMultibase
249
261
  });
250
- const { newClientKeys, newClientUpdateSeeds, onCommitted, expectedDid, ...shared } = options;
262
+ const { newClientKeys, newClientUpdateSeeds, onCommitted, resume, expectedDid, ...shared } = options;
251
263
  // One run outside the conflict retry: a lost compare-and-swap re-enters
252
264
  // the body under the same run, and the emitter reports each stage once.
253
265
  const events = ceremonyEvents({
@@ -281,6 +293,7 @@ export async function recoverWebvhClient(options) {
281
293
  });
282
294
  return { methods, ...relations };
283
295
  },
296
+ ...(resume !== undefined ? { builtOnHead: resume.builtOnHead } : {}),
284
297
  ...(expectedDid !== undefined ? { expectedDid } : {}),
285
298
  events
286
299
  })), spendOutcome);
@@ -1 +1 @@
1
- {"version":3,"file":"recoveryWebvh.js","sourceRoot":"","sources":["../../src/recovery/recoveryWebvh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recoveryWebvh.js","sourceRoot":"","sources":["../../src/recovery/recoveryWebvh.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@
5
5
  * The last-write-wins conflict rule for the mutable `contacts` head
6
6
  * collection. Every other synced collection is immutable and content-addressed,
7
7
  * so a write-write conflict is impossible there. A contact head document is
8
- * genuinely overwritten in place under a stable row id, so two replicas CAN
9
- * race on the same row -- and a remote-master-always default would silently
10
- * drop one side's edit.
8
+ * genuinely overwritten in place under a stable resource id, so two replicas
9
+ * CAN race on the same resource -- and a remote-master-always default would
10
+ * silently drop one side's edit.
11
11
  *
12
12
  * The rule lives here rather than in `@interop/social-core` because deciding
13
13
  * it means DECRYPTING both sides: a head payload rides inside an encrypted
@@ -59,7 +59,7 @@ import { type ContactHeadPayload } from '@interop/social-core';
59
59
  */
60
60
  export type ContactConflictWinner = 'remote' | 'local';
61
61
  /**
62
- * Recovers a validated head payload from a stored row body: decrypts an
62
+ * Recovers a validated head payload from a stored body: decrypts an
63
63
  * envelope, passes plaintext through, and resolves `undefined` when the
64
64
  * payload (and so the fields the rule compares) cannot be reached.
65
65
  *
@@ -69,13 +69,13 @@ export type ContactConflictWinner = 'remote' | 'local';
69
69
  * side leaves the reachable local body to win. Neither side is ever compared on
70
70
  * a body it could not open.
71
71
  *
72
- * The decrypt is addressed with the row's own id, and an envelope sealed for
72
+ * The decrypt is addressed with the resource's own id, and an envelope sealed for
73
73
  * another resource is refused with an `IntegrityError` rather than read as one
74
74
  * more unreachable side. That refusal is rethrown, out of the resolver and into
75
75
  * the replication cycle. See the module doc.
76
76
  *
77
77
  * @param options {object}
78
- * @param options.id {string} the contact head row's resource id, the id the
78
+ * @param options.id {string} the contact head's resource id, the id the
79
79
  * stored envelope must be sealed for
80
80
  * @param options.data {Json} the stored body: an encrypted envelope or a
81
81
  * plaintext payload
@@ -94,10 +94,10 @@ export declare function contactHeadPayloadOf({ id, data, cipher }: {
94
94
  * Decides a contact-head conflict. See the module doc for the fail-safe rule.
95
95
  *
96
96
  * @param options {object}
97
- * @param options.id {string} the contested row's resource id, which both
97
+ * @param options.id {string} the contested resource's id, which both
98
98
  * sides' envelopes must be sealed for
99
- * @param options.remote {Json} the remote (master) row body
100
- * @param options.local {Json} the local row body
99
+ * @param options.remote {Json} the remote (master) body
100
+ * @param options.local {Json} the local resource replica's body
101
101
  * @param [options.cipher] {DocCipher} the collection's document cipher
102
102
  * @param [options.remoteDeleted] {boolean} the remote side is a tombstone
103
103
  * @param [options.localDeleted] {boolean} the local side is a tombstone
@@ -5,9 +5,9 @@
5
5
  * The last-write-wins conflict rule for the mutable `contacts` head
6
6
  * collection. Every other synced collection is immutable and content-addressed,
7
7
  * so a write-write conflict is impossible there. A contact head document is
8
- * genuinely overwritten in place under a stable row id, so two replicas CAN
9
- * race on the same row -- and a remote-master-always default would silently
10
- * drop one side's edit.
8
+ * genuinely overwritten in place under a stable resource id, so two replicas
9
+ * CAN race on the same resource -- and a remote-master-always default would
10
+ * silently drop one side's edit.
11
11
  *
12
12
  * The rule lives here rather than in `@interop/social-core` because deciding
13
13
  * it means DECRYPTING both sides: a head payload rides inside an encrypted
@@ -55,7 +55,7 @@
55
55
  import { isEncryptedEnvelope, isIntegrityError } from '@interop/was-client/sync';
56
56
  import { isContactHeadPayload, remotePayloadWins } from '@interop/social-core';
57
57
  /**
58
- * Recovers a validated head payload from a stored row body: decrypts an
58
+ * Recovers a validated head payload from a stored body: decrypts an
59
59
  * envelope, passes plaintext through, and resolves `undefined` when the
60
60
  * payload (and so the fields the rule compares) cannot be reached.
61
61
  *
@@ -65,13 +65,13 @@ import { isContactHeadPayload, remotePayloadWins } from '@interop/social-core';
65
65
  * side leaves the reachable local body to win. Neither side is ever compared on
66
66
  * a body it could not open.
67
67
  *
68
- * The decrypt is addressed with the row's own id, and an envelope sealed for
68
+ * The decrypt is addressed with the resource's own id, and an envelope sealed for
69
69
  * another resource is refused with an `IntegrityError` rather than read as one
70
70
  * more unreachable side. That refusal is rethrown, out of the resolver and into
71
71
  * the replication cycle. See the module doc.
72
72
  *
73
73
  * @param options {object}
74
- * @param options.id {string} the contact head row's resource id, the id the
74
+ * @param options.id {string} the contact head's resource id, the id the
75
75
  * stored envelope must be sealed for
76
76
  * @param options.data {Json} the stored body: an encrypted envelope or a
77
77
  * plaintext payload
@@ -106,10 +106,10 @@ export async function contactHeadPayloadOf({ id, data, cipher }) {
106
106
  * Decides a contact-head conflict. See the module doc for the fail-safe rule.
107
107
  *
108
108
  * @param options {object}
109
- * @param options.id {string} the contested row's resource id, which both
109
+ * @param options.id {string} the contested resource's id, which both
110
110
  * sides' envelopes must be sealed for
111
- * @param options.remote {Json} the remote (master) row body
112
- * @param options.local {Json} the local row body
111
+ * @param options.remote {Json} the remote (master) body
112
+ * @param options.local {Json} the local resource replica's body
113
113
  * @param [options.cipher] {DocCipher} the collection's document cipher
114
114
  * @param [options.remoteDeleted] {boolean} the remote side is a tombstone
115
115
  * @param [options.localDeleted] {boolean} the local side is a tombstone
@@ -84,8 +84,8 @@ export interface SyncEngineDeps {
84
84
  * provisioning and the migration sweep, so no pending envelope sealed under
85
85
  * a losing epoch reaches the push: the consumer builds its cipher from the
86
86
  * descriptor provisioning settled on and runs `remintPendingEnvelopes`
87
- * (`remint.ts`) with it. The re-mint decides per row from the envelope
88
- * itself, so in the settled case the call is free. A lazy minter, whose
87
+ * (`remint.ts`) with it. The re-mint decides per resource replica from the
88
+ * envelope itself, so in the settled case the call is free. A lazy minter, whose
89
89
  * envelopes are always minted under the settled descriptor, leaves it
90
90
  * absent.
91
91
  */
@@ -168,7 +168,7 @@ export declare class SyncEngine {
168
168
  invalidateProvisioning(): void;
169
169
  /**
170
170
  * Stops the engine: aborts any in-flight cycle (the injected signal unwinds
171
- * pull/push between pages/rows), cancels a pending retry, and resets to idle.
171
+ * pull/push between pages and resource replicas), cancels a pending retry, and resets to idle.
172
172
  * The caller drops the cached agents/ciphers so key material does not outlive
173
173
  * the unlocked session.
174
174
  */
@@ -68,7 +68,7 @@ export class SyncEngine {
68
68
  }
69
69
  /**
70
70
  * Stops the engine: aborts any in-flight cycle (the injected signal unwinds
71
- * pull/push between pages/rows), cancels a pending retry, and resets to idle.
71
+ * pull/push between pages and resource replicas), cancels a pending retry, and resets to idle.
72
72
  * The caller drops the cached agents/ciphers so key material does not outlive
73
73
  * the unlocked session.
74
74
  */
@@ -177,8 +177,8 @@ export class SyncEngine {
177
177
  if (signal.aborted) {
178
178
  return;
179
179
  }
180
- // A resolved last-write-wins conflict may leave a row dirty (local-wins
181
- // re-encrypt); rerun this run so the re-push settles instead of waiting for
180
+ // A resolved last-write-wins conflict may leave a resource replica dirty
181
+ // (local-wins re-encrypt); rerun this run so the re-push settles instead of waiting for
182
182
  // the next external trigger. Idempotent once the conflict clears.
183
183
  if (conflictsResolved > 0) {
184
184
  this.rerunRequested = true;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,8 @@
18
18
  * `isSyncNotFoundError` / `isUnknownEpochError`) and the `SyncStatus`
19
19
  * vocabulary ship from `@interop/was-client/sync` too. They are imported
20
20
  * from there rather than re-exported here: one owner per name.
21
- * - `SyncStore` / `SyncedRow` / `ProjectionAction` / `ResolveConflict` are the
22
- * replica-side persistence seam.
21
+ * - `SyncStore` / `SyncedResourceReplica` / `ProjectionAction` /
22
+ * `ResolveConflict` are the replica-side persistence seam.
23
23
  * - `runPull` / `projectionForDoc`, `runPush`, and `SyncEngine` are the pull,
24
24
  * push, and orchestration algorithms.
25
25
  * - `remintPendingEnvelopes` is the create-loss re-mint for an eager-minting
@@ -38,7 +38,7 @@
38
38
  */
39
39
  export { UnknownEpochError, WasSyncConflictError, WasSyncNotFoundError } from '@interop/was-client/sync';
40
40
  export type { Json, SyncCheckpoint, WireDoc, MasterState, WriteAck, WasSyncPort, DocCipher } from '@interop/was-client/sync';
41
- export type { SyncStore, SyncedRow, ProjectionAction, ResolveConflict } from './types.js';
41
+ export type { SyncStore, SyncedResourceReplica, ProjectionAction, ResolveConflict } from './types.js';
42
42
  export { runPull, projectionForDoc } from './pull.js';
43
43
  export { runPush } from './push.js';
44
44
  export { remintPendingEnvelopes } from './remint.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,YAAY,EACV,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -18,8 +18,8 @@
18
18
  * `isSyncNotFoundError` / `isUnknownEpochError`) and the `SyncStatus`
19
19
  * vocabulary ship from `@interop/was-client/sync` too. They are imported
20
20
  * from there rather than re-exported here: one owner per name.
21
- * - `SyncStore` / `SyncedRow` / `ProjectionAction` / `ResolveConflict` are the
22
- * replica-side persistence seam.
21
+ * - `SyncStore` / `SyncedResourceReplica` / `ProjectionAction` /
22
+ * `ResolveConflict` are the replica-side persistence seam.
23
23
  * - `runPull` / `projectionForDoc`, `runPush`, and `SyncEngine` are the pull,
24
24
  * push, and orchestration algorithms.
25
25
  * - `remintPendingEnvelopes` is the create-loss re-mint for an eager-minting