@interop/wallet-core 0.66.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 (241) 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 +46 -18
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +112 -65
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts.map +1 -1
  11. package/dist/clientAnnex/forget.js +5 -6
  12. package/dist/clientAnnex/forget.js.map +1 -1
  13. package/dist/clientAnnex/forgetLast.d.ts +26 -113
  14. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  15. package/dist/clientAnnex/forgetLast.js +26 -150
  16. package/dist/clientAnnex/forgetLast.js.map +1 -1
  17. package/dist/clientAnnex/heal.d.ts +79 -13
  18. package/dist/clientAnnex/heal.d.ts.map +1 -1
  19. package/dist/clientAnnex/heal.js +67 -122
  20. package/dist/clientAnnex/heal.js.map +1 -1
  21. package/dist/clientAnnex/index.d.ts +6 -6
  22. package/dist/clientAnnex/index.d.ts.map +1 -1
  23. package/dist/clientAnnex/index.js +4 -4
  24. package/dist/clientAnnex/index.js.map +1 -1
  25. package/dist/clientAnnex/ladder.d.ts +51 -4
  26. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  27. package/dist/clientAnnex/ladder.js +283 -47
  28. package/dist/clientAnnex/ladder.js.map +1 -1
  29. package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
  30. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  31. package/dist/clientAnnex/ladderAnchored.js +69 -34
  32. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  33. package/dist/clientAnnex/log.d.ts +68 -57
  34. package/dist/clientAnnex/log.d.ts.map +1 -1
  35. package/dist/clientAnnex/log.js +96 -126
  36. package/dist/clientAnnex/log.js.map +1 -1
  37. package/dist/clientAnnex/mend.js +44 -20
  38. package/dist/clientAnnex/mend.js.map +1 -1
  39. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
  40. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  41. package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
  42. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  43. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
  44. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
  45. package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
  46. package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
  47. package/dist/clientAnnex/selfEnroll.js +1 -1
  48. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  49. package/dist/clientAnnex/zcap.d.ts +19 -0
  50. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  51. package/dist/clientAnnex/zcap.js +80 -12
  52. package/dist/clientAnnex/zcap.js.map +1 -1
  53. package/dist/clients/index.d.ts +3 -2
  54. package/dist/clients/index.d.ts.map +1 -1
  55. package/dist/clients/index.js +3 -2
  56. package/dist/clients/index.js.map +1 -1
  57. package/dist/clients/listing.d.ts.map +1 -1
  58. package/dist/clients/listing.js +33 -15
  59. package/dist/clients/listing.js.map +1 -1
  60. package/dist/clients/policy.d.ts +18 -0
  61. package/dist/clients/policy.d.ts.map +1 -1
  62. package/dist/clients/policy.js +22 -8
  63. package/dist/clients/policy.js.map +1 -1
  64. package/dist/clients/revocation.d.ts +18 -30
  65. package/dist/clients/revocation.d.ts.map +1 -1
  66. package/dist/clients/revocation.js +12 -27
  67. package/dist/clients/revocation.js.map +1 -1
  68. package/dist/clients/rosterPolicy.d.ts +6 -1
  69. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  70. package/dist/clients/rosterPolicy.js +27 -30
  71. package/dist/clients/rosterPolicy.js.map +1 -1
  72. package/dist/descriptors/errors.d.ts +6 -5
  73. package/dist/descriptors/errors.d.ts.map +1 -1
  74. package/dist/descriptors/errors.js +6 -5
  75. package/dist/descriptors/errors.js.map +1 -1
  76. package/dist/descriptors/index.d.ts +7 -3
  77. package/dist/descriptors/index.d.ts.map +1 -1
  78. package/dist/descriptors/index.js +7 -3
  79. package/dist/descriptors/index.js.map +1 -1
  80. package/dist/descriptors/logSource.d.ts +28 -6
  81. package/dist/descriptors/logSource.d.ts.map +1 -1
  82. package/dist/descriptors/logSource.js +33 -7
  83. package/dist/descriptors/logSource.js.map +1 -1
  84. package/dist/enrollment/enrollment.d.ts.map +1 -1
  85. package/dist/enrollment/enrollment.js +3 -7
  86. package/dist/enrollment/enrollment.js.map +1 -1
  87. package/dist/genesis/accountGenesis.d.ts +8 -10
  88. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  89. package/dist/genesis/accountGenesis.js +39 -41
  90. package/dist/genesis/accountGenesis.js.map +1 -1
  91. package/dist/genesis/kmsAuthentication.d.ts +50 -0
  92. package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
  93. package/dist/genesis/kmsAuthentication.js +49 -0
  94. package/dist/genesis/kmsAuthentication.js.map +1 -0
  95. package/dist/keyring/kdf.d.ts +16 -20
  96. package/dist/keyring/kdf.d.ts.map +1 -1
  97. package/dist/keyring/kdf.js +2 -2
  98. package/dist/keyring/kdf.js.map +1 -1
  99. package/dist/keyring/unlockSpace.d.ts +8 -30
  100. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  101. package/dist/keyring/unlockSpace.js +8 -31
  102. package/dist/keyring/unlockSpace.js.map +1 -1
  103. package/dist/keys/clientKeyRecord.d.ts +2 -1
  104. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  105. package/dist/keys/clientKeyRecord.js +28 -11
  106. package/dist/keys/clientKeyRecord.js.map +1 -1
  107. package/dist/keys/index.d.ts +6 -2
  108. package/dist/keys/index.d.ts.map +1 -1
  109. package/dist/keys/index.js +5 -1
  110. package/dist/keys/index.js.map +1 -1
  111. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  112. package/dist/keys/rosterLogStore.js +14 -5
  113. package/dist/keys/rosterLogStore.js.map +1 -1
  114. package/dist/keys/spaceEpochs.d.ts +92 -3
  115. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  116. package/dist/keys/spaceEpochs.js +110 -4
  117. package/dist/keys/spaceEpochs.js.map +1 -1
  118. package/dist/keys/userKeyRoster.d.ts +30 -3
  119. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  120. package/dist/keys/userKeyRoster.js +90 -15
  121. package/dist/keys/userKeyRoster.js.map +1 -1
  122. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  123. package/dist/keys/userKeyRosterCascade.js +5 -1
  124. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  125. package/dist/recovery/continuation.d.ts +255 -0
  126. package/dist/recovery/continuation.d.ts.map +1 -0
  127. package/dist/recovery/continuation.js +471 -0
  128. package/dist/recovery/continuation.js.map +1 -0
  129. package/dist/recovery/index.d.ts +12 -8
  130. package/dist/recovery/index.d.ts.map +1 -1
  131. package/dist/recovery/index.js +11 -7
  132. package/dist/recovery/index.js.map +1 -1
  133. package/dist/recovery/recoveryDelegation.d.ts +23 -126
  134. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  135. package/dist/recovery/recoveryDelegation.js +1 -266
  136. package/dist/recovery/recoveryDelegation.js.map +1 -1
  137. package/dist/recovery/recoveryWebvh.d.ts +42 -83
  138. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  139. package/dist/recovery/recoveryWebvh.js +44 -380
  140. package/dist/recovery/recoveryWebvh.js.map +1 -1
  141. package/dist/request/classify.d.ts +3 -14
  142. package/dist/request/classify.d.ts.map +1 -1
  143. package/dist/request/classify.js +19 -40
  144. package/dist/request/classify.js.map +1 -1
  145. package/dist/request/index.d.ts +1 -0
  146. package/dist/request/index.d.ts.map +1 -1
  147. package/dist/request/index.js +1 -0
  148. package/dist/request/index.js.map +1 -1
  149. package/dist/request/onboarding.d.ts.map +1 -1
  150. package/dist/request/onboarding.js +19 -27
  151. package/dist/request/onboarding.js.map +1 -1
  152. package/dist/request/parse.d.ts +5 -3
  153. package/dist/request/parse.d.ts.map +1 -1
  154. package/dist/request/parse.js +7 -6
  155. package/dist/request/parse.js.map +1 -1
  156. package/dist/request/processRequest.d.ts.map +1 -1
  157. package/dist/request/processRequest.js +2 -1
  158. package/dist/request/processRequest.js.map +1 -1
  159. package/dist/request/queryPredicates.d.ts +98 -0
  160. package/dist/request/queryPredicates.d.ts.map +1 -0
  161. package/dist/request/queryPredicates.js +107 -0
  162. package/dist/request/queryPredicates.js.map +1 -0
  163. package/dist/resourceLog/document.d.ts +39 -0
  164. package/dist/resourceLog/document.d.ts.map +1 -1
  165. package/dist/resourceLog/document.js +41 -0
  166. package/dist/resourceLog/document.js.map +1 -1
  167. package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
  168. package/dist/resourceLog/ladderRungs.js +3 -2
  169. package/dist/resourceLog/ladderRungs.js.map +1 -1
  170. package/dist/sync/contactsConflict.d.ts.map +1 -1
  171. package/dist/sync/contactsConflict.js +8 -2
  172. package/dist/sync/contactsConflict.js.map +1 -1
  173. package/dist/sync/engine.d.ts +38 -23
  174. package/dist/sync/engine.d.ts.map +1 -1
  175. package/dist/sync/engine.js +36 -5
  176. package/dist/sync/engine.js.map +1 -1
  177. package/dist/sync/index.d.ts +9 -12
  178. package/dist/sync/index.d.ts.map +1 -1
  179. package/dist/sync/index.js +8 -11
  180. package/dist/sync/index.js.map +1 -1
  181. package/dist/sync/push.d.ts.map +1 -1
  182. package/dist/sync/push.js +1 -2
  183. package/dist/sync/push.js.map +1 -1
  184. package/dist/sync/remint.d.ts +0 -31
  185. package/dist/sync/remint.d.ts.map +1 -1
  186. package/dist/sync/remint.js +32 -1
  187. package/dist/sync/remint.js.map +1 -1
  188. package/dist/sync/types.d.ts +4 -41
  189. package/dist/sync/types.d.ts.map +1 -1
  190. package/dist/sync/types.js +4 -47
  191. package/dist/sync/types.js.map +1 -1
  192. package/dist/unlock/index.d.ts +1 -1
  193. package/dist/unlock/index.d.ts.map +1 -1
  194. package/dist/unlock/index.js +1 -1
  195. package/dist/unlock/index.js.map +1 -1
  196. package/dist/unlock/retire.d.ts +16 -56
  197. package/dist/unlock/retire.d.ts.map +1 -1
  198. package/dist/unlock/retire.js +7 -76
  199. package/dist/unlock/retire.js.map +1 -1
  200. package/dist/unlock/standingWebvh.d.ts +20 -40
  201. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  202. package/dist/unlock/standingWebvh.js +35 -76
  203. package/dist/unlock/standingWebvh.js.map +1 -1
  204. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  205. package/dist/unlock/unlockRecord.js +69 -44
  206. package/dist/unlock/unlockRecord.js.map +1 -1
  207. package/dist/webvh/accountEntry.d.ts +63 -7
  208. package/dist/webvh/accountEntry.d.ts.map +1 -1
  209. package/dist/webvh/accountEntry.js +110 -19
  210. package/dist/webvh/accountEntry.js.map +1 -1
  211. package/dist/webvh/delegatedLogStore.d.ts +18 -12
  212. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  213. package/dist/webvh/delegatedLogStore.js +32 -11
  214. package/dist/webvh/delegatedLogStore.js.map +1 -1
  215. package/dist/webvh/didWebvh.d.ts +39 -23
  216. package/dist/webvh/didWebvh.d.ts.map +1 -1
  217. package/dist/webvh/didWebvh.js +63 -45
  218. package/dist/webvh/didWebvh.js.map +1 -1
  219. package/dist/webvh/enrollClient.d.ts.map +1 -1
  220. package/dist/webvh/enrollClient.js +19 -23
  221. package/dist/webvh/enrollClient.js.map +1 -1
  222. package/dist/webvh/index.d.ts +11 -7
  223. package/dist/webvh/index.d.ts.map +1 -1
  224. package/dist/webvh/index.js +9 -6
  225. package/dist/webvh/index.js.map +1 -1
  226. package/dist/webvh/listClients.d.ts.map +1 -1
  227. package/dist/webvh/listClients.js +102 -65
  228. package/dist/webvh/listClients.js.map +1 -1
  229. package/dist/webvh/mergeMethods.d.ts +84 -0
  230. package/dist/webvh/mergeMethods.d.ts.map +1 -0
  231. package/dist/webvh/mergeMethods.js +46 -0
  232. package/dist/webvh/mergeMethods.js.map +1 -0
  233. package/dist/webvh/revokeClient.d.ts +12 -2
  234. package/dist/webvh/revokeClient.d.ts.map +1 -1
  235. package/dist/webvh/revokeClient.js +126 -48
  236. package/dist/webvh/revokeClient.js.map +1 -1
  237. package/dist/webvh/verifyLog.d.ts +21 -0
  238. package/dist/webvh/verifyLog.d.ts.map +1 -1
  239. package/dist/webvh/verifyLog.js +36 -14
  240. package/dist/webvh/verifyLog.js.map +1 -1
  241. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"ladderRungs.d.ts","sourceRoot":"","sources":["../../src/resourceLog/ladderRungs.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAQpE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAErD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAU7E;AAgGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,EAAE,CAAC,CA+L3B"}
1
+ {"version":3,"file":"ladderRungs.d.ts","sourceRoot":"","sources":["../../src/resourceLog/ladderRungs.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAQpE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAErD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAU7E;AAgGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,EAAE,CAAC,CAgM3B"}
@@ -204,6 +204,7 @@ export async function attributeLadderRungsPerVersion(log) {
204
204
  }
205
205
  const doc = entry.state;
206
206
  const ladderKeys = ladderKeysOf(doc);
207
+ const clientKeys = enrolledClientKeysOf(doc);
207
208
  const introduced = addedMembers({
208
209
  next: ladderKeys,
209
210
  previous: previousLadderKeys
@@ -269,7 +270,7 @@ export async function attributeLadderRungsPerVersion(log) {
269
270
  // recovery spend's add-and-retire entry, which introduces the replacement
270
271
  // code's ladder VM beside the new client), so it anchors no ladder.
271
272
  const introducedClients = addedMembers({
272
- next: enrolledClientKeysOf(doc),
273
+ next: clientKeys,
273
274
  previous: previousClientKeys
274
275
  });
275
276
  // The introduction, the one place a ladder is anchored. A VM introduced
@@ -343,7 +344,7 @@ export async function attributeLadderRungsPerVersion(log) {
343
344
  }
344
345
  snapshots.push(snapshot);
345
346
  previousLadderKeys = ladderKeys;
346
- previousClientKeys = enrolledClientKeysOf(doc);
347
+ previousClientKeys = clientKeys;
347
348
  previousUpdateKeys = new Set(updateKeys);
348
349
  previousNextKeyHashes = new Set(nextKeyHashes);
349
350
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ladderRungs.js","sourceRoot":"","sources":["../../src/resourceLog/ladderRungs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EACL,eAAe,EACf,uBAAuB,EAExB,MAAM,eAAe,CAAA;AAStB;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACnC,MAAM,YAAY,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACpE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,GAAgC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,GAAgC;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC;QAC3C,GAAG;QACH,QAAQ,EAAE,sBAAsB;KACjC,CAAC,EAAE,CAAC;QACH,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,EACnB,aAAa,EACb,GAAG,EAIJ;IACC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,EACpB,IAAI,EACJ,QAAQ,EAIT;IACC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,GAAW;IAEX,MAAM,SAAS,GAAqB,EAAE,CAAA;IACtC,MAAM,aAAa,GAAmB,IAAI,GAAG,EAAE,CAAA;IAC/C,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC/C,yEAAyE;IACzE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,IAAI,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7C,IAAI,UAAU,GAAa,EAAE,CAAA;IAC7B,IAAI,aAAa,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;YACjC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YACpC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAA;QAChD,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAoC,CAAA;QACtD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,UAAU,GAAG,YAAY,CAAC;YAC9B,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,YAAY,CAAC;YAC7B,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,YAAY,CAAC;YAC/B,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,qBAAqB;SAChC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAExC,0EAA0E;QAC1E,oEAAoE;QACpE,2DAA2D;QAC3D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAQ;YACV,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,aAAa,CAAC,GAAG,CACf,KAAK,EACL,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CACjD,CAAA;YACH,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,oEAAoE;QACpE,4CAA4C;QAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACtE,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnB,sEAAsE;YACtE,6DAA6D;YAC7D,oEAAoE;YACpE,sEAAsE;YACtE,gCAAgC;YAChC,IACE,KAAK,KAAK,SAAS;gBACnB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBACrB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EACxB,CAAC;gBACD,aAAa,CAAC,GAAG,CACf,KAAK,EACL,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAC1D,CAAA;YACH,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,yEAAyE;QACzE,wEAAwE;QACxE,kEAAkE;QAClE,qEAAqE;QACrE,0EAA0E;QAC1E,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,aAAa,GACjB,YAAY,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAA;QACvD,yEAAyE;QACzE,kEAAkE;QAClE,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,YAAY,CAAC;YACrC,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC;YAC/B,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QAEF,wEAAwE;QACxE,2CAA2C;QAC3C,IAAI,WAA+B,CAAA;QACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACtB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;YAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACzB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAC7B,uEAAuE;YACvE,wEAAwE;YACxE,YAAY;YACZ,MAAM,kBAAkB,GACtB,SAAS,CAAC,MAAM,KAAK,CAAC;gBACtB,QAAQ,KAAK,SAAS;gBACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACrB,aAAa,KAAK,SAAS;gBAC3B,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAA;YAChC,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,kEAAkE;YAClE,MAAM,eAAe,GACnB,WAAW,CAAC,MAAM,KAAK,CAAC;gBACxB,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,KAAK,SAAS,CAAC,CAAA;YACzD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,eAAe,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAE,CAAA;gBAC5B,kEAAkE;gBAClE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBACrD,WAAW,GAAG,IAAI,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACzD,MAAM,aAAa,GACjB,YAAY,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAA;QACvD,IACE,YAAY,KAAK,SAAS;YAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YACzB,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,WAAW,EAC7B,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAmB,IAAI,GAAG,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAClD,CAAA;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxB,kBAAkB,GAAG,UAAU,CAAA;QAC/B,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC9C,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QACxC,qBAAqB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"ladderRungs.js","sourceRoot":"","sources":["../../src/resourceLog/ladderRungs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EACL,eAAe,EACf,uBAAuB,EAExB,MAAM,eAAe,CAAA;AAStB;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACnC,MAAM,YAAY,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACpE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,GAAgC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,GAAgC;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC;QAC3C,GAAG;QACH,QAAQ,EAAE,sBAAsB;KACjC,CAAC,EAAE,CAAC;QACH,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,EACnB,aAAa,EACb,GAAG,EAIJ;IACC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,EACpB,IAAI,EACJ,QAAQ,EAIT;IACC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,GAAW;IAEX,MAAM,SAAS,GAAqB,EAAE,CAAA;IACtC,MAAM,aAAa,GAAmB,IAAI,GAAG,EAAE,CAAA;IAC/C,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC/C,yEAAyE;IACzE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,IAAI,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7C,IAAI,UAAU,GAAa,EAAE,CAAA;IAC7B,IAAI,aAAa,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;YACjC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YACpC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAA;QAChD,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAoC,CAAA;QACtD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC;YAC9B,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,YAAY,CAAC;YAC7B,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,YAAY,CAAC;YAC/B,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,qBAAqB;SAChC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAExC,0EAA0E;QAC1E,oEAAoE;QACpE,2DAA2D;QAC3D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAQ;YACV,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,aAAa,CAAC,GAAG,CACf,KAAK,EACL,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CACjD,CAAA;YACH,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,oEAAoE;QACpE,4CAA4C;QAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACtE,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnB,sEAAsE;YACtE,6DAA6D;YAC7D,oEAAoE;YACpE,sEAAsE;YACtE,gCAAgC;YAChC,IACE,KAAK,KAAK,SAAS;gBACnB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBACrB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EACxB,CAAC;gBACD,aAAa,CAAC,GAAG,CACf,KAAK,EACL,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAC1D,CAAA;YACH,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,yEAAyE;QACzE,wEAAwE;QACxE,kEAAkE;QAClE,qEAAqE;QACrE,0EAA0E;QAC1E,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,aAAa,GACjB,YAAY,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAA;QACvD,yEAAyE;QACzE,kEAAkE;QAClE,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,YAAY,CAAC;YACrC,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QAEF,wEAAwE;QACxE,2CAA2C;QAC3C,IAAI,WAA+B,CAAA;QACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACtB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;YAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACzB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAC7B,uEAAuE;YACvE,wEAAwE;YACxE,YAAY;YACZ,MAAM,kBAAkB,GACtB,SAAS,CAAC,MAAM,KAAK,CAAC;gBACtB,QAAQ,KAAK,SAAS;gBACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACrB,aAAa,KAAK,SAAS;gBAC3B,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAA;YAChC,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,kEAAkE;YAClE,MAAM,eAAe,GACnB,WAAW,CAAC,MAAM,KAAK,CAAC;gBACxB,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,KAAK,SAAS,CAAC,CAAA;YACzD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,eAAe,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAE,CAAA;gBAC5B,kEAAkE;gBAClE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBACrD,WAAW,GAAG,IAAI,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACzD,MAAM,aAAa,GACjB,YAAY,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAA;QACvD,IACE,YAAY,KAAK,SAAS;YAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YACzB,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,WAAW,EAC7B,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAmB,IAAI,GAAG,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAClD,CAAA;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxB,kBAAkB,GAAG,UAAU,CAAA;QAC/B,kBAAkB,GAAG,UAAU,CAAA;QAC/B,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QACxC,qBAAqB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contactsConflict.d.ts","sourceRoot":"","sources":["../../src/sync/contactsConflict.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,IAAI,EACV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAA;AAE7B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,IAAI,EACJ,MAAM,EACP,EAAE;IACD,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IACtB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAgB1C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAAC,EAC/C,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAqB,EACrB,YAAoB,EACrB,EAAE;IACD,MAAM,EAAE,IAAI,GAAG,SAAS,CAAA;IACxB,KAAK,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAejC"}
1
+ {"version":3,"file":"contactsConflict.d.ts","sourceRoot":"","sources":["../../src/sync/contactsConflict.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,IAAI,EACV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAA;AAE7B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,IAAI,EACJ,MAAM,EACP,EAAE;IACD,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IACtB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAgB1C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAAC,EAC/C,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAqB,EACrB,YAAoB,EACrB,EAAE;IACD,MAAM,EAAE,IAAI,GAAG,SAAS,CAAA;IACxB,KAAK,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqBjC"}
@@ -80,8 +80,14 @@ export async function resolveContactHeadConflict({ remote, local, cipher, remote
80
80
  if (remoteDeleted || localDeleted) {
81
81
  return 'remote';
82
82
  }
83
- const remoteHead = await contactHeadPayloadOf({ data: remote, cipher });
84
- const localHead = await contactHeadPayloadOf({ data: local, cipher });
83
+ // Both sides decrypt independently, so they decrypt concurrently. Each
84
+ // side's own unreachability (a failed decrypt, a malformed payload) is
85
+ // already resolved as `undefined` inside the helper, so the join changes
86
+ // nothing about the fail-safe rule below.
87
+ const [remoteHead, localHead] = await Promise.all([
88
+ contactHeadPayloadOf({ data: remote, cipher }),
89
+ contactHeadPayloadOf({ data: local, cipher })
90
+ ]);
85
91
  if (remoteHead && localHead) {
86
92
  return remotePayloadWins(remoteHead, localHead) ? 'remote' : 'local';
87
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contactsConflict.js","sourceRoot":"","sources":["../../src/sync/contactsConflict.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,mBAAmB,EAGpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,sBAAsB,CAAA;AAO7B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,IAAI,EACJ,MAAM,EAIP;IACC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAa,GAAG,KAAK,EACrB,YAAY,GAAG,KAAK,EAOrB;IACC,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACvE,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;IACtE,CAAC;IACD,4EAA4E;IAC5E,6BAA6B;IAC7B,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"contactsConflict.js","sourceRoot":"","sources":["../../src/sync/contactsConflict.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,mBAAmB,EAGpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,sBAAsB,CAAA;AAO7B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,IAAI,EACJ,MAAM,EAIP;IACC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAa,GAAG,KAAK,EACrB,YAAY,GAAG,KAAK,EAOrB;IACC,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,0CAA0C;IAC1C,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC9C,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;KAC9C,CAAC,CAAA;IACF,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;IACtE,CAAC;IACD,4EAA4E;IAC5E,6BAA6B;IAC7B,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -13,11 +13,8 @@
13
13
  * store, and a non-firing scheduler. The consuming app wires the real port,
14
14
  * DocCipher, provisioning, and lazy migration.
15
15
  */
16
+ import type { SyncStatus } from '@interop/was-client/sync';
16
17
  import type { Json, ResolveConflict, SyncStore, WasSyncPort } from './types.js';
17
- /**
18
- * Per-feed replication status, surfaced to the app's state layer.
19
- */
20
- export type SyncStatus = 'idle' | 'syncing' | 'synced' | 'error';
21
18
  /**
22
19
  * Everything the engine needs, injected. The pure protocol ({@link WasSyncPort},
23
20
  * {@link SyncStore}) plus the app-supplied seams: provisioning, the
@@ -47,28 +44,33 @@ export interface SyncEngineDeps {
47
44
  * Idempotent space + collection provisioning. For an encrypted collection
48
45
  * this MUST include publishing the collection's encryption descriptor with
49
46
  * its key-epoch roster (the wallet Space two-step: `provisionWalletSpace`,
50
- * then `ensureWalletSpaceEpochs` from `@interop/wallet-core/keys`). The
51
- * engine runs it before every cycle's migration sweep and push, which is
47
+ * then `ensureWalletSpaceEpochs`; `walletSpaceProvisioner` in
48
+ * `@interop/wallet-core/keys` builds the closure that runs both). The
49
+ * engine runs it ahead of every cycle's migration sweep and push, which is
52
50
  * what enforces the descriptor-before-first-content-push ordering
53
51
  * invariant: no envelope reaches the feed sealed under an epoch the
54
- * published descriptor does not carry. A consumer that instead mints
55
- * envelopes eagerly against a cached descriptor must, on losing the
56
- * descriptor create to another provisioner, adopt the winner's descriptor
57
- * and re-mint its pending envelopes here before the push (see
58
- * `remintPendingEnvelopes` in `remint.ts`).
52
+ * published descriptor does not carry.
59
53
  *
60
- * The engine calls this unconditionally on EVERY cycle -- that is what makes
61
- * the ordering structural rather than a first-run special case -- so the
62
- * seam MUST be memoized on a client-local stamp: once provisioning has been
63
- * observed complete for this `(space, collection)`, later calls return
64
- * without re-reading the descriptor or re-deriving anything (DCW's
65
- * `provisionedAt` stamp is the reference implementation). Without that
66
- * memoization every sync cycle pays a descriptor round trip. The stamp must
67
- * be cleared -- so provisioning runs again -- whenever the account's
54
+ * The engine memoizes it: once a call has resolved, later cycles skip the
55
+ * seam until {@link SyncEngine.invalidateProvisioning} is called, so the
56
+ * ordering stays structural on every cycle while only the first cycle pays
57
+ * the descriptor round trip. A call that throws is not memoized, and the
58
+ * next cycle runs it again. The caller invalidates whenever the account's
68
59
  * provisioning state can have changed under the replica: an unlock with a
69
60
  * fresh key set, a re-bind to a different account pointer, or a recovery.
70
61
  */
71
62
  ensureProvisioned: () => Promise<void>;
63
+ /**
64
+ * The eager minter's create-loss re-mint, run on EVERY cycle between
65
+ * provisioning and the migration sweep, so no pending envelope sealed under
66
+ * a losing epoch reaches the push: the consumer builds its cipher from the
67
+ * descriptor provisioning settled on and runs `remintPendingEnvelopes`
68
+ * (`remint.ts`) with it. The re-mint decides per row from the envelope
69
+ * itself, so in the settled case the call is free. A lazy minter, whose
70
+ * envelopes are always minted under the settled descriptor, leaves it
71
+ * absent.
72
+ */
73
+ remintPending?: (signal: AbortSignal) => Promise<void>;
72
74
  /**
73
75
  * Has this feed's lazy migration already run (per-collection milestone)?
74
76
  */
@@ -124,6 +126,8 @@ export declare class SyncEngine {
124
126
  private currentRun;
125
127
  private abortController;
126
128
  private cancelRetry;
129
+ private provisioned;
130
+ private provisioningGeneration;
127
131
  constructor(deps: SyncEngineDeps);
128
132
  /**
129
133
  * Requests a sync. Single-flight: if a cycle is in flight this only flags a
@@ -135,6 +139,14 @@ export declare class SyncEngine {
135
139
  * @returns {Promise<void>}
136
140
  */
137
141
  sync(): Promise<void>;
142
+ /**
143
+ * Forgets that provisioning was observed complete, so the next cycle runs
144
+ * the `ensureProvisioned` seam again. Call it whenever the account's
145
+ * provisioning state can have changed under this replica (a fresh key set,
146
+ * a re-bound account pointer, a recovery); the memo is otherwise held for
147
+ * the engine's life.
148
+ */
149
+ invalidateProvisioning(): void;
138
150
  /**
139
151
  * Stops the engine: aborts any in-flight cycle (the injected signal unwinds
140
152
  * pull/push between pages/rows), cancels a pending retry, and resets to idle.
@@ -155,10 +167,13 @@ export declare class SyncEngine {
155
167
  * cheap no-op when there are none). Steady state is sweep-then-push-then-pull:
156
168
  * our own writes echo back in the same cycle's pull, idempotently.
157
169
  *
158
- * `ensureProvisioned` runs first, unconditionally: everything that mints or
159
- * pushes envelopes is downstream of it, which is what enforces the
160
- * descriptor-before-first-content-push invariant (see its doc on
161
- * {@link SyncEngineDeps}).
170
+ * `ensureProvisioned` runs first (memoized once it has resolved, see its doc
171
+ * on {@link SyncEngineDeps}): everything that mints or pushes envelopes is
172
+ * downstream of it, which is what enforces the
173
+ * descriptor-before-first-content-push invariant. The optional
174
+ * `remintPending` runs right after it, ahead of the sweep and the push, so
175
+ * an eager minter's envelopes sealed under a losing epoch are re-minted
176
+ * under the settled descriptor before anything reaches the feed.
162
177
  */
163
178
  private runCycle;
164
179
  private pull;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI/E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAMhE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,UAAU,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO,CAAA;IAC5C;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD;;OAEG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAC7C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAE1B,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,IAAI,CAAA;IAC1D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CACtB;AAOD,qBAAa,UAAU;IAiBT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAhBjC,MAAM,EAAE,UAAU,CAAS;IAE3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAC1E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,WAAW,CAA4B;gBAElB,IAAI,EAAE,cAAc;IAQjD;;;;;;;;OAQG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB;;;;;OAKG;IACH,IAAI,IAAI,IAAI;YAOE,GAAG;IA8BjB;;;;;;;;;;;;;;;;OAgBG;YACW,QAAQ;YA0DR,IAAI;IAYlB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,SAAS;CAOlB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/sync/engine.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export class SyncEngine {
22
22
  currentRun = null;
23
23
  abortController = null;
24
24
  cancelRetry = null;
25
+ provisioned = false;
26
+ provisioningGeneration = 0;
25
27
  constructor(deps) {
26
28
  this.deps = deps;
27
29
  this.batchSize = deps.batchSize ?? DEFAULT_BATCH_SIZE;
@@ -50,6 +52,20 @@ export class SyncEngine {
50
52
  this.currentRun = this.run();
51
53
  return this.currentRun;
52
54
  }
55
+ /**
56
+ * Forgets that provisioning was observed complete, so the next cycle runs
57
+ * the `ensureProvisioned` seam again. Call it whenever the account's
58
+ * provisioning state can have changed under this replica (a fresh key set,
59
+ * a re-bound account pointer, a recovery); the memo is otherwise held for
60
+ * the engine's life.
61
+ */
62
+ invalidateProvisioning() {
63
+ this.provisioned = false;
64
+ // An invalidation that lands while a provisioning call is in flight must
65
+ // outlive it: that call observed the state as it stood BEFORE the
66
+ // invalidation, so its completion may not set the memo.
67
+ this.provisioningGeneration += 1;
68
+ }
53
69
  /**
54
70
  * Stops the engine: aborts any in-flight cycle (the injected signal unwinds
55
71
  * pull/push between pages/rows), cancels a pending retry, and resets to idle.
@@ -104,16 +120,31 @@ export class SyncEngine {
104
120
  * cheap no-op when there are none). Steady state is sweep-then-push-then-pull:
105
121
  * our own writes echo back in the same cycle's pull, idempotently.
106
122
  *
107
- * `ensureProvisioned` runs first, unconditionally: everything that mints or
108
- * pushes envelopes is downstream of it, which is what enforces the
109
- * descriptor-before-first-content-push invariant (see its doc on
110
- * {@link SyncEngineDeps}).
123
+ * `ensureProvisioned` runs first (memoized once it has resolved, see its doc
124
+ * on {@link SyncEngineDeps}): everything that mints or pushes envelopes is
125
+ * downstream of it, which is what enforces the
126
+ * descriptor-before-first-content-push invariant. The optional
127
+ * `remintPending` runs right after it, ahead of the sweep and the push, so
128
+ * an eager minter's envelopes sealed under a losing epoch are re-minted
129
+ * under the settled descriptor before anything reaches the feed.
111
130
  */
112
131
  async runCycle(signal) {
113
- await this.deps.ensureProvisioned();
132
+ if (!this.provisioned) {
133
+ const generation = this.provisioningGeneration;
134
+ await this.deps.ensureProvisioned();
135
+ if (generation === this.provisioningGeneration) {
136
+ this.provisioned = true;
137
+ }
138
+ }
114
139
  if (signal.aborted) {
115
140
  return;
116
141
  }
142
+ if (this.deps.remintPending) {
143
+ await this.deps.remintPending(signal);
144
+ if (signal.aborted) {
145
+ return;
146
+ }
147
+ }
117
148
  // Both of a first cycle's pulls count toward the same refetch. The
118
149
  // pre-migration pull is where a freshly enrolled replica applies the whole
119
150
  // remote feed; the post-push pull then applies 0, so gating on it alone
@@ -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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"}
@@ -11,12 +11,10 @@
11
11
  * `WasSyncNotFoundError` / `UnknownEpochError` signals) come from
12
12
  * `@interop/was-client/sync` and are re-exported here so an engine consumer
13
13
  * imports one package.
14
- * - `isSyncConflictError` / `isSyncNotFoundError` / `isUnknownEpochError` are
15
- * how those three signals are classified. They are raised inside the app's
16
- * own injected seams, which may resolve to a second copy of
17
- * `@interop/was-client`, so they are matched on `err.name`; the engine core
18
- * and both apps share these predicates rather than each writing an
19
- * `instanceof` that a duplicated dependency would silently defeat.
14
+ * - The predicates that classify those signals (`isSyncConflictError` /
15
+ * `isSyncNotFoundError` / `isUnknownEpochError`) and the `SyncStatus`
16
+ * vocabulary ship from `@interop/was-client/sync` too. They are imported
17
+ * from there rather than re-exported here: one owner per name.
20
18
  * - `SyncStore` / `SyncedRow` / `ProjectionAction` / `ResolveConflict` are the
21
19
  * replica-side persistence seam.
22
20
  * - `runPull` / `projectionForDoc`, `runPush`, and `SyncEngine` are the pull,
@@ -30,20 +28,19 @@
30
28
  * last-write-wins rule for the one mutable collection (`contacts`), which
31
29
  * needs a `DocCipher` to reach the fields it compares.
32
30
  *
33
- * The RxDB adapter (the web wallet's driver) is intentionally not part of this
34
- * subpath in v0: that app keeps its own `replicateRxCollection` driver, and its
35
- * metadata (`putMeta` / `metaVersion`) push half stays driver-side. See
36
- * `push.ts` for why the metadata half is left out of the shared core.
31
+ * The RxDB driver is intentionally not part of this subpath: it ships from
32
+ * `@interop/was-sync`, and its metadata (`putMeta` / `metaVersion`) push half
33
+ * stays driver-side. See `push.ts` for why the metadata half is left out of
34
+ * the shared core.
37
35
  */
38
36
  export { UnknownEpochError, WasSyncConflictError, WasSyncNotFoundError } from '@interop/was-client/sync';
39
37
  export type { Json, SyncCheckpoint, WireDoc, MasterState, WasSyncPort, DocCipher } from '@interop/was-client/sync';
40
- export { isSyncConflictError, isSyncNotFoundError, isUnknownEpochError } from './types.js';
41
38
  export type { SyncStore, SyncedRow, ProjectionAction, ResolveConflict } from './types.js';
42
39
  export { runPull, projectionForDoc } from './pull.js';
43
40
  export { runPush, formatEtag } from './push.js';
44
41
  export { remintPendingEnvelopes } from './remint.js';
45
42
  export { SyncEngine } from './engine.js';
46
- export type { SyncEngineDeps, SyncStatus } from './engine.js';
43
+ export type { SyncEngineDeps } from './engine.js';
47
44
  export type { SyncedCollectionSpec } from './collections.js';
48
45
  export { contactHeadPayloadOf, resolveContactHeadConflict } from './contactsConflict.js';
49
46
  export type { ContactConflictWinner } from './contactsConflict.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AACnB,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,UAAU,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,WAAW,EACX,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,UAAU,EAAE,MAAM,WAAW,CAAA;AAC/C,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"}
@@ -11,12 +11,10 @@
11
11
  * `WasSyncNotFoundError` / `UnknownEpochError` signals) come from
12
12
  * `@interop/was-client/sync` and are re-exported here so an engine consumer
13
13
  * imports one package.
14
- * - `isSyncConflictError` / `isSyncNotFoundError` / `isUnknownEpochError` are
15
- * how those three signals are classified. They are raised inside the app's
16
- * own injected seams, which may resolve to a second copy of
17
- * `@interop/was-client`, so they are matched on `err.name`; the engine core
18
- * and both apps share these predicates rather than each writing an
19
- * `instanceof` that a duplicated dependency would silently defeat.
14
+ * - The predicates that classify those signals (`isSyncConflictError` /
15
+ * `isSyncNotFoundError` / `isUnknownEpochError`) and the `SyncStatus`
16
+ * vocabulary ship from `@interop/was-client/sync` too. They are imported
17
+ * from there rather than re-exported here: one owner per name.
20
18
  * - `SyncStore` / `SyncedRow` / `ProjectionAction` / `ResolveConflict` are the
21
19
  * replica-side persistence seam.
22
20
  * - `runPull` / `projectionForDoc`, `runPush`, and `SyncEngine` are the pull,
@@ -30,13 +28,12 @@
30
28
  * last-write-wins rule for the one mutable collection (`contacts`), which
31
29
  * needs a `DocCipher` to reach the fields it compares.
32
30
  *
33
- * The RxDB adapter (the web wallet's driver) is intentionally not part of this
34
- * subpath in v0: that app keeps its own `replicateRxCollection` driver, and its
35
- * metadata (`putMeta` / `metaVersion`) push half stays driver-side. See
36
- * `push.ts` for why the metadata half is left out of the shared core.
31
+ * The RxDB driver is intentionally not part of this subpath: it ships from
32
+ * `@interop/was-sync`, and its metadata (`putMeta` / `metaVersion`) push half
33
+ * stays driver-side. See `push.ts` for why the metadata half is left out of
34
+ * the shared core.
37
35
  */
38
36
  export { UnknownEpochError, WasSyncConflictError, WasSyncNotFoundError } from '@interop/was-client/sync';
39
- export { isSyncConflictError, isSyncNotFoundError, isUnknownEpochError } from './types.js';
40
37
  export { runPull, projectionForDoc } from './pull.js';
41
38
  export { runPush, formatEtag } from './push.js';
42
39
  export { remintPendingEnvelopes } from './remint.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AAUjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AAQnB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AAiBjC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/sync/push.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAQ,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM/E,OAAO,EAAE,UAAU,EAAE,CAAA;AA+KrB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,eAAe,EACf,MAAM,EACP,EAAE;IACD,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBzD"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/sync/push.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EACL,UAAU,EAGX,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAQ,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK/E,OAAO,EAAE,UAAU,EAAE,CAAA;AA+KrB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,eAAe,EACf,MAAM,EACP,EAAE;IACD,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBzD"}
package/dist/sync/push.js CHANGED
@@ -25,8 +25,7 @@
25
25
  * no collection to exercise it. The `WasSyncPort.putMeta` capability stays
26
26
  * optional on the port for the driver that needs it.
27
27
  */
28
- import { formatEtag } from '@interop/was-client/sync';
29
- import { isSyncConflictError, isSyncNotFoundError } from './types.js';
28
+ import { formatEtag, isSyncConflictError, isSyncNotFoundError } from '@interop/was-client/sync';
30
29
  // Formats a master revision as the quoted strong ETag the server compares
31
30
  // `If-Match` against (revision `3` becomes `"3"`). Re-exported so callers keep
32
31
  // importing it from here.
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/sync/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/sync/push.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,3 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * The create-loss re-mint: the eager-minter half of the
6
- * descriptor-before-first-content-push ordering invariant.
7
- *
8
- * The invariant: a collection's encryption descriptor -- its key-epoch
9
- * roster -- is published before the collection's first content push, so no
10
- * envelope can reach the feed sealed under an epoch the published descriptor
11
- * does not carry. The engine enforces it structurally: `ensureProvisioned`
12
- * (which publishes the descriptor, create-if-absent) runs before every
13
- * cycle's migration sweep and push, so a lazy minter's envelopes are always
14
- * minted after the published descriptor has settled.
15
- *
16
- * An eager minter -- a replica that mints envelopes at local write time,
17
- * against a cached descriptor -- has one residual hole: envelopes minted
18
- * against a locally-minted epoch[0] while ANOTHER provisioner's descriptor
19
- * create won. At the next sync, provisioning adopts the winner's descriptor
20
- * (the create is compare-and-swap, never clobbering), leaving the pending
21
- * envelopes sealed under an epoch the published descriptor does not carry;
22
- * pushing them would land feed entries no other replica can route. The
23
- * remedy is {@link remintPendingEnvelopes}, run after adoption and before
24
- * the next push: each pending row the adopted cipher cannot route is
25
- * decrypted through the caller's stale-capable seam and re-encrypted under
26
- * the adopted descriptor's current epoch. This is legal exactly because a
27
- * pending row (dirty, never server-acked) has no feed existence -- envelope
28
- * immutability bites only once an envelope is ON the feed -- and the
29
- * re-encryption may therefore re-key the row (a content-derived id hashes
30
- * the ciphertext, so a re-mint mints a new id).
31
- */
32
1
  import type { DocCipher, Json, SyncStore } from './types.js';
33
2
  /**
34
3
  * Re-mints every pending (dirty, never-acked, live) row whose envelope the
@@ -1 +1 @@
1
- {"version":3,"file":"remint.d.ts","sourceRoot":"","sources":["../../src/sync/remint.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAW5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACP,EAAE;IACD,KAAK,EAAE,SAAS,GAAG;QACjB,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAA;KACzD,CAAA;IACD,MAAM,EAAE,SAAS,CAAA;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA4DjD"}
1
+ {"version":3,"file":"remint.d.ts","sourceRoot":"","sources":["../../src/sync/remint.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAU5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACP,EAAE;IACD,KAAK,EAAE,SAAS,GAAG;QACjB,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAA;KACzD,CAAA;IACD,MAAM,EAAE,SAAS,CAAA;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA4DjD"}
@@ -1,4 +1,35 @@
1
- import { isUnknownEpochError } from './types.js';
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * The create-loss re-mint: the eager-minter half of the
6
+ * descriptor-before-first-content-push ordering invariant.
7
+ *
8
+ * The invariant: a collection's encryption descriptor -- its key-epoch
9
+ * roster -- is published before the collection's first content push, so no
10
+ * envelope can reach the feed sealed under an epoch the published descriptor
11
+ * does not carry. The engine enforces it structurally: `ensureProvisioned`
12
+ * (which publishes the descriptor, create-if-absent) runs before every
13
+ * cycle's migration sweep and push, so a lazy minter's envelopes are always
14
+ * minted after the published descriptor has settled.
15
+ *
16
+ * An eager minter -- a replica that mints envelopes at local write time,
17
+ * against a cached descriptor -- has one residual hole: envelopes minted
18
+ * against a locally-minted epoch[0] while ANOTHER provisioner's descriptor
19
+ * create won. At the next sync, provisioning adopts the winner's descriptor
20
+ * (the create is compare-and-swap, never clobbering), leaving the pending
21
+ * envelopes sealed under an epoch the published descriptor does not carry;
22
+ * pushing them would land feed entries no other replica can route. The
23
+ * remedy is {@link remintPendingEnvelopes}, run after adoption and before
24
+ * the next push: each pending row the adopted cipher cannot route is
25
+ * decrypted through the caller's stale-capable seam and re-encrypted under
26
+ * the adopted descriptor's current epoch. This is legal exactly because a
27
+ * pending row (dirty, never server-acked) has no feed existence -- envelope
28
+ * immutability bites only once an envelope is ON the feed -- and the
29
+ * re-encryption may therefore re-key the row (a content-derived id hashes
30
+ * the ciphertext, so a re-mint mints a new id).
31
+ */
32
+ import { isUnknownEpochError } from '@interop/was-client/sync';
2
33
  /**
3
34
  * How many full re-mint passes are attempted before giving up. A pass that
4
35
  * ends with skipped rows (a local write bumped a row's revision between the
@@ -1 +1 @@
1
- {"version":3,"file":"remint.js","sourceRoot":"","sources":["../../src/sync/remint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remint.js","sourceRoot":"","sources":["../../src/sync/remint.ts"],"names":[],"mappings":"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"}
@@ -8,18 +8,10 @@
8
8
  * `MasterState`, `WasSyncPort`, `DocCipher`, and the `WasSyncConflictError` /
9
9
  * `WasSyncNotFoundError` / `UnknownEpochError` signals) come from
10
10
  * `@interop/was-client/sync` and are re-exported here so a single import gives
11
- * a consumer both the wire types and the replica-side seams. Beside the three
12
- * signal classes sit the three predicates that CLASSIFY them
13
- * ({@link isSyncConflictError}, {@link isSyncNotFoundError},
14
- * {@link isUnknownEpochError}): each is raised inside an app-injected seam --
15
- * the port for the two wire signals, the caller's `DocCipher` for the third --
16
- * which can resolve to a second copy of `@interop/was-client` (a `link:` dev
17
- * setup, a dedupe miss through a dependency tree), so they are matched on
18
- * `err.name` and never with `instanceof`. The same rule the resource-log
19
- * refusal classes follow, and for the same reason: an `instanceof` miss here
20
- * turns every push 412 into a fatal cycle error and makes the create-loss
21
- * re-mint rethrow instead of re-minting. Every one of the three classes
22
- * assigns its `name` explicitly, which is what makes the string a contract.
11
+ * a consumer both the wire types and the replica-side seams. The predicates
12
+ * that CLASSIFY those signals ship from `@interop/was-client/sync` too, beside
13
+ * the classes that assign the names they match; `push.ts` and `remint.ts`
14
+ * import them from there.
23
15
  *
24
16
  * The local-persistence seam (`SyncStore`, `SyncedRow`, `ProjectionAction`,
25
17
  * `ResolveConflict`) is the replica's side of the contract: it stands in for a
@@ -35,35 +27,6 @@
35
27
  export { UnknownEpochError, WasSyncConflictError, WasSyncNotFoundError } from '@interop/was-client/sync';
36
28
  export type { Json, SyncCheckpoint, WireDoc, MasterState, WasSyncPort, DocCipher } from '@interop/was-client/sync';
37
29
  import type { Json, MasterState, SyncCheckpoint, WireDoc } from '@interop/was-client/sync';
38
- /**
39
- * Whether an error is the replication port's rejected-conditional-write signal
40
- * (`WasSyncConflictError`, HTTP 412): a lost-update `If-Match` mismatch, or a
41
- * create-if-absent whose target already exists. The push loop's one settle-and-
42
- * reconcile branch; everything else propagates to the engine's backoff.
43
- *
44
- * @param err {unknown}
45
- * @returns {boolean}
46
- */
47
- export declare function isSyncConflictError(err: unknown): boolean;
48
- /**
49
- * Whether an error is the replication port's absent-target signal
50
- * (`WasSyncNotFoundError`, HTTP 404). On a delete that is a settled outcome
51
- * -- already gone, or the write never reached the server -- not a conflict.
52
- *
53
- * @param err {unknown}
54
- * @returns {boolean}
55
- */
56
- export declare function isSyncNotFoundError(err: unknown): boolean;
57
- /**
58
- * Whether an error is the cipher's unknown-epoch signal (`UnknownEpochError`):
59
- * an envelope naming recipient key ids whose epoch the descriptor this reader
60
- * holds does not list at all. Distinct from a key the reader simply does not
61
- * have (`KeyUnwrapError`), which re-reading the descriptor cannot fix.
62
- *
63
- * @param err {unknown}
64
- * @returns {boolean}
65
- */
66
- export declare function isUnknownEpochError(err: unknown): boolean;
67
30
  /**
68
31
  * A dirty local synced-docs row awaiting push. `data` is the stored body (the
69
32
  * EDV envelope on an encrypted collection, or the plaintext JSON on a plaintext