@interop/wallet-core 0.61.0 → 0.65.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 (313) hide show
  1. package/README.md +41 -16
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +46 -26
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +91 -39
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +55 -34
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +102 -56
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +16 -2
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +11 -9
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +126 -35
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +208 -60
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts +3 -2
  19. package/dist/clientAnnex/gc.d.ts.map +1 -1
  20. package/dist/clientAnnex/gc.js +7 -7
  21. package/dist/clientAnnex/gc.js.map +1 -1
  22. package/dist/clientAnnex/heal.d.ts +101 -33
  23. package/dist/clientAnnex/heal.d.ts.map +1 -1
  24. package/dist/clientAnnex/heal.js +559 -212
  25. package/dist/clientAnnex/heal.js.map +1 -1
  26. package/dist/clientAnnex/index.d.ts +21 -5
  27. package/dist/clientAnnex/index.d.ts.map +1 -1
  28. package/dist/clientAnnex/index.js +24 -5
  29. package/dist/clientAnnex/index.js.map +1 -1
  30. package/dist/clientAnnex/ladder.d.ts +304 -18
  31. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  32. package/dist/clientAnnex/ladder.js +942 -64
  33. package/dist/clientAnnex/ladder.js.map +1 -1
  34. package/dist/clientAnnex/ladderAnchored.d.ts +261 -28
  35. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  36. package/dist/clientAnnex/ladderAnchored.js +521 -295
  37. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  38. package/dist/clientAnnex/log.d.ts +193 -38
  39. package/dist/clientAnnex/log.d.ts.map +1 -1
  40. package/dist/clientAnnex/log.js +445 -190
  41. package/dist/clientAnnex/log.js.map +1 -1
  42. package/dist/clientAnnex/mend.d.ts +12 -6
  43. package/dist/clientAnnex/mend.d.ts.map +1 -1
  44. package/dist/clientAnnex/mend.js +26 -12
  45. package/dist/clientAnnex/mend.js.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +38 -11
  47. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  48. package/dist/clientAnnex/recoveryLadderAnchored.js +177 -55
  49. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  50. package/dist/clientAnnex/spaceCapability.d.ts +123 -0
  51. package/dist/clientAnnex/spaceCapability.d.ts.map +1 -0
  52. package/dist/clientAnnex/spaceCapability.js +152 -0
  53. package/dist/clientAnnex/spaceCapability.js.map +1 -0
  54. package/dist/clientAnnex/stages.d.ts +63 -0
  55. package/dist/clientAnnex/stages.d.ts.map +1 -0
  56. package/dist/clientAnnex/stages.js +64 -0
  57. package/dist/clientAnnex/stages.js.map +1 -0
  58. package/dist/clientAnnex/zcap.d.ts +1 -1
  59. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  60. package/dist/clientAnnex/zcap.js +42 -35
  61. package/dist/clientAnnex/zcap.js.map +1 -1
  62. package/dist/clients/policy.d.ts +15 -1
  63. package/dist/clients/policy.d.ts.map +1 -1
  64. package/dist/clients/policy.js +12 -6
  65. package/dist/clients/policy.js.map +1 -1
  66. package/dist/clients/revocation.d.ts +18 -10
  67. package/dist/clients/revocation.d.ts.map +1 -1
  68. package/dist/clients/revocation.js +13 -5
  69. package/dist/clients/revocation.js.map +1 -1
  70. package/dist/clients/rosterPolicy.d.ts +10 -2
  71. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  72. package/dist/clients/rosterPolicy.js +41 -24
  73. package/dist/clients/rosterPolicy.js.map +1 -1
  74. package/dist/descriptors/acquire.d.ts.map +1 -1
  75. package/dist/descriptors/acquire.js +6 -23
  76. package/dist/descriptors/acquire.js.map +1 -1
  77. package/dist/descriptors/cipher.d.ts.map +1 -1
  78. package/dist/descriptors/cipher.js +5 -0
  79. package/dist/descriptors/cipher.js.map +1 -1
  80. package/dist/descriptors/errors.d.ts +43 -0
  81. package/dist/descriptors/errors.d.ts.map +1 -0
  82. package/dist/descriptors/errors.js +45 -0
  83. package/dist/descriptors/errors.js.map +1 -0
  84. package/dist/descriptors/index.d.ts +5 -0
  85. package/dist/descriptors/index.d.ts.map +1 -1
  86. package/dist/descriptors/index.js +5 -0
  87. package/dist/descriptors/index.js.map +1 -1
  88. package/dist/enrollment/enrollment.d.ts +37 -10
  89. package/dist/enrollment/enrollment.d.ts.map +1 -1
  90. package/dist/enrollment/enrollment.js +52 -15
  91. package/dist/enrollment/enrollment.js.map +1 -1
  92. package/dist/genesis/accountGenesis.d.ts +42 -11
  93. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  94. package/dist/genesis/accountGenesis.js +80 -22
  95. package/dist/genesis/accountGenesis.js.map +1 -1
  96. package/dist/genesis/index.d.ts +3 -1
  97. package/dist/genesis/index.d.ts.map +1 -1
  98. package/dist/genesis/index.js +3 -1
  99. package/dist/genesis/index.js.map +1 -1
  100. package/dist/identity/agents.d.ts +17 -1
  101. package/dist/identity/agents.d.ts.map +1 -1
  102. package/dist/identity/agents.js +24 -8
  103. package/dist/identity/agents.js.map +1 -1
  104. package/dist/identity/index.d.ts +3 -1
  105. package/dist/identity/index.d.ts.map +1 -1
  106. package/dist/identity/index.js +3 -1
  107. package/dist/identity/index.js.map +1 -1
  108. package/dist/index.d.ts +6 -3
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +6 -3
  111. package/dist/index.js.map +1 -1
  112. package/dist/keyring/index.d.ts +2 -1
  113. package/dist/keyring/index.d.ts.map +1 -1
  114. package/dist/keyring/index.js +2 -1
  115. package/dist/keyring/index.js.map +1 -1
  116. package/dist/keyring/record.d.ts.map +1 -1
  117. package/dist/keyring/record.js +3 -6
  118. package/dist/keyring/record.js.map +1 -1
  119. package/dist/keyring/unlockSpace.d.ts +14 -5
  120. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  121. package/dist/keyring/unlockSpace.js +31 -36
  122. package/dist/keyring/unlockSpace.js.map +1 -1
  123. package/dist/keys/index.d.ts +10 -6
  124. package/dist/keys/index.d.ts.map +1 -1
  125. package/dist/keys/index.js +9 -5
  126. package/dist/keys/index.js.map +1 -1
  127. package/dist/keys/rosterLogStore.d.ts +12 -11
  128. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  129. package/dist/keys/rosterLogStore.js +15 -13
  130. package/dist/keys/rosterLogStore.js.map +1 -1
  131. package/dist/keys/rosterStore.d.ts +3 -6
  132. package/dist/keys/rosterStore.d.ts.map +1 -1
  133. package/dist/keys/rosterStore.js +10 -9
  134. package/dist/keys/rosterStore.js.map +1 -1
  135. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  136. package/dist/keys/spaceEpochs.js +2 -3
  137. package/dist/keys/spaceEpochs.js.map +1 -1
  138. package/dist/keys/userKeyRoster.d.ts +89 -9
  139. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  140. package/dist/keys/userKeyRoster.js +262 -19
  141. package/dist/keys/userKeyRoster.js.map +1 -1
  142. package/dist/keys/userKeyRosterCascade.d.ts +7 -6
  143. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  144. package/dist/keys/userKeyRosterCascade.js +7 -6
  145. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  146. package/dist/keys/wasLabelsStore.d.ts +9 -2
  147. package/dist/keys/wasLabelsStore.d.ts.map +1 -1
  148. package/dist/keys/wasLabelsStore.js +14 -6
  149. package/dist/keys/wasLabelsStore.js.map +1 -1
  150. package/dist/log.d.ts +7 -2
  151. package/dist/log.d.ts.map +1 -1
  152. package/dist/log.js +6 -1
  153. package/dist/log.js.map +1 -1
  154. package/dist/recovery/index.d.ts +12 -8
  155. package/dist/recovery/index.d.ts.map +1 -1
  156. package/dist/recovery/index.js +11 -7
  157. package/dist/recovery/index.js.map +1 -1
  158. package/dist/recovery/recoveryCode.d.ts +27 -7
  159. package/dist/recovery/recoveryCode.d.ts.map +1 -1
  160. package/dist/recovery/recoveryCode.js +18 -6
  161. package/dist/recovery/recoveryCode.js.map +1 -1
  162. package/dist/recovery/recoveryDelegation.d.ts +4 -1
  163. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  164. package/dist/recovery/recoveryDelegation.js +25 -36
  165. package/dist/recovery/recoveryDelegation.js.map +1 -1
  166. package/dist/recovery/recoveryWebvh.d.ts +117 -65
  167. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  168. package/dist/recovery/recoveryWebvh.js +279 -126
  169. package/dist/recovery/recoveryWebvh.js.map +1 -1
  170. package/dist/request/classify.d.ts +32 -8
  171. package/dist/request/classify.d.ts.map +1 -1
  172. package/dist/request/classify.js +39 -14
  173. package/dist/request/classify.js.map +1 -1
  174. package/dist/request/ephemeralExchange.d.ts +1 -6
  175. package/dist/request/ephemeralExchange.d.ts.map +1 -1
  176. package/dist/request/ephemeralExchange.js.map +1 -1
  177. package/dist/request/onboarding.d.ts.map +1 -1
  178. package/dist/request/onboarding.js +2 -2
  179. package/dist/request/onboarding.js.map +1 -1
  180. package/dist/request/parse.d.ts.map +1 -1
  181. package/dist/request/parse.js +2 -3
  182. package/dist/request/parse.js.map +1 -1
  183. package/dist/resourceLog/controller.d.ts +34 -12
  184. package/dist/resourceLog/controller.d.ts.map +1 -1
  185. package/dist/resourceLog/controller.js +79 -86
  186. package/dist/resourceLog/controller.js.map +1 -1
  187. package/dist/resourceLog/document.d.ts +182 -0
  188. package/dist/resourceLog/document.d.ts.map +1 -0
  189. package/dist/resourceLog/document.js +159 -0
  190. package/dist/resourceLog/document.js.map +1 -0
  191. package/dist/resourceLog/errors.d.ts +47 -8
  192. package/dist/resourceLog/errors.d.ts.map +1 -1
  193. package/dist/resourceLog/errors.js +54 -8
  194. package/dist/resourceLog/errors.js.map +1 -1
  195. package/dist/resourceLog/index.d.ts +7 -3
  196. package/dist/resourceLog/index.d.ts.map +1 -1
  197. package/dist/resourceLog/index.js +7 -3
  198. package/dist/resourceLog/index.js.map +1 -1
  199. package/dist/resourceLog/ladderRungs.d.ts +35 -0
  200. package/dist/resourceLog/ladderRungs.d.ts.map +1 -0
  201. package/dist/resourceLog/ladderRungs.js +352 -0
  202. package/dist/resourceLog/ladderRungs.js.map +1 -0
  203. package/dist/resourceLog/license.d.ts +42 -17
  204. package/dist/resourceLog/license.d.ts.map +1 -1
  205. package/dist/resourceLog/license.js +38 -24
  206. package/dist/resourceLog/license.js.map +1 -1
  207. package/dist/space/activity.d.ts +15 -15
  208. package/dist/space/activity.d.ts.map +1 -1
  209. package/dist/space/activity.js +15 -15
  210. package/dist/space/activity.js.map +1 -1
  211. package/dist/space/collections.d.ts +11 -0
  212. package/dist/space/collections.d.ts.map +1 -1
  213. package/dist/space/collections.js +13 -0
  214. package/dist/space/collections.js.map +1 -1
  215. package/dist/space/deleteSpace.d.ts +28 -0
  216. package/dist/space/deleteSpace.d.ts.map +1 -0
  217. package/dist/space/deleteSpace.js +44 -0
  218. package/dist/space/deleteSpace.js.map +1 -0
  219. package/dist/space/errors.d.ts.map +1 -1
  220. package/dist/space/errors.js +0 -1
  221. package/dist/space/errors.js.map +1 -1
  222. package/dist/space/index.d.ts +6 -0
  223. package/dist/space/index.d.ts.map +1 -1
  224. package/dist/space/index.js +6 -0
  225. package/dist/space/index.js.map +1 -1
  226. package/dist/space/plaintextCollection.d.ts +43 -0
  227. package/dist/space/plaintextCollection.d.ts.map +1 -0
  228. package/dist/space/plaintextCollection.js +17 -0
  229. package/dist/space/plaintextCollection.js.map +1 -0
  230. package/dist/stages.d.ts +23 -0
  231. package/dist/stages.d.ts.map +1 -0
  232. package/dist/stages.js +23 -0
  233. package/dist/stages.js.map +1 -0
  234. package/dist/sync/index.d.ts +7 -0
  235. package/dist/sync/index.d.ts.map +1 -1
  236. package/dist/sync/index.js +7 -0
  237. package/dist/sync/index.js.map +1 -1
  238. package/dist/sync/push.js +4 -4
  239. package/dist/sync/push.js.map +1 -1
  240. package/dist/sync/remint.js +2 -2
  241. package/dist/sync/remint.js.map +1 -1
  242. package/dist/sync/types.d.ts +41 -1
  243. package/dist/sync/types.d.ts.map +1 -1
  244. package/dist/sync/types.js +47 -1
  245. package/dist/sync/types.js.map +1 -1
  246. package/dist/unlock/index.d.ts +6 -2
  247. package/dist/unlock/index.d.ts.map +1 -1
  248. package/dist/unlock/index.js +5 -1
  249. package/dist/unlock/index.js.map +1 -1
  250. package/dist/unlock/retire.d.ts +95 -14
  251. package/dist/unlock/retire.d.ts.map +1 -1
  252. package/dist/unlock/retire.js +102 -10
  253. package/dist/unlock/retire.js.map +1 -1
  254. package/dist/unlock/standingClient.d.ts.map +1 -1
  255. package/dist/unlock/standingClient.js +5 -1
  256. package/dist/unlock/standingClient.js.map +1 -1
  257. package/dist/unlock/standingWebvh.d.ts +341 -49
  258. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  259. package/dist/unlock/standingWebvh.js +608 -164
  260. package/dist/unlock/standingWebvh.js.map +1 -1
  261. package/dist/webvh/accountEntry.d.ts +146 -0
  262. package/dist/webvh/accountEntry.d.ts.map +1 -0
  263. package/dist/webvh/accountEntry.js +239 -0
  264. package/dist/webvh/accountEntry.js.map +1 -0
  265. package/dist/webvh/didWeb.d.ts +12 -7
  266. package/dist/webvh/didWeb.d.ts.map +1 -1
  267. package/dist/webvh/didWeb.js +2 -2
  268. package/dist/webvh/didWeb.js.map +1 -1
  269. package/dist/webvh/didWebProjection.d.ts +164 -0
  270. package/dist/webvh/didWebProjection.d.ts.map +1 -0
  271. package/dist/webvh/didWebProjection.js +230 -0
  272. package/dist/webvh/didWebProjection.js.map +1 -0
  273. package/dist/webvh/didWebvh.d.ts +278 -138
  274. package/dist/webvh/didWebvh.d.ts.map +1 -1
  275. package/dist/webvh/didWebvh.js +314 -345
  276. package/dist/webvh/didWebvh.js.map +1 -1
  277. package/dist/webvh/enrollClient.d.ts +65 -0
  278. package/dist/webvh/enrollClient.d.ts.map +1 -0
  279. package/dist/webvh/enrollClient.js +172 -0
  280. package/dist/webvh/enrollClient.js.map +1 -0
  281. package/dist/webvh/index.d.ts +37 -12
  282. package/dist/webvh/index.d.ts.map +1 -1
  283. package/dist/webvh/index.js +33 -10
  284. package/dist/webvh/index.js.map +1 -1
  285. package/dist/webvh/listClients.d.ts +1 -33
  286. package/dist/webvh/listClients.d.ts.map +1 -1
  287. package/dist/webvh/listClients.js +2 -28
  288. package/dist/webvh/listClients.js.map +1 -1
  289. package/dist/webvh/revokeClient.d.ts +89 -11
  290. package/dist/webvh/revokeClient.d.ts.map +1 -1
  291. package/dist/webvh/revokeClient.js +182 -47
  292. package/dist/webvh/revokeClient.js.map +1 -1
  293. package/dist/webvh/standingZcap.d.ts +61 -14
  294. package/dist/webvh/standingZcap.d.ts.map +1 -1
  295. package/dist/webvh/standingZcap.js +91 -0
  296. package/dist/webvh/standingZcap.js.map +1 -1
  297. package/dist/webvh/verifyLog.d.ts +59 -5
  298. package/dist/webvh/verifyLog.d.ts.map +1 -1
  299. package/dist/webvh/verifyLog.js +76 -11
  300. package/dist/webvh/verifyLog.js.map +1 -1
  301. package/dist/webvh/wasIdStore.d.ts +8 -8
  302. package/dist/webvh/wasIdStore.d.ts.map +1 -1
  303. package/dist/webvh/wasIdStore.js +39 -14
  304. package/dist/webvh/wasIdStore.js.map +1 -1
  305. package/dist/webvh/zcap.d.ts +14 -1
  306. package/dist/webvh/zcap.d.ts.map +1 -1
  307. package/dist/webvh/zcap.js +3 -27
  308. package/dist/webvh/zcap.js.map +1 -1
  309. package/package.json +5 -5
  310. package/dist/webvh/keyAgreement.d.ts +0 -72
  311. package/dist/webvh/keyAgreement.d.ts.map +0 -1
  312. package/dist/webvh/keyAgreement.js +0 -47
  313. package/dist/webvh/keyAgreement.js.map +0 -1
@@ -1,5 +1,4 @@
1
1
  import type { DIDDoc, DIDLog, Signer, VerificationMethod } from '@interop/did-method-webvh';
2
- import type { KeystoreAgent } from '@interop/webkms-client';
3
2
  import { type ResourceLogHeadPin, type ResourceLogPinStore } from '@interop/vh-resource-log';
4
3
  import type { DidWebKeyMap } from './didWeb.js';
5
4
  /**
@@ -40,6 +39,14 @@ export interface WebvhIdStore {
40
39
  * `'PreconditionFailedError'` (was-client's class; any implementation may
41
40
  * throw its own error carrying that name), which this module maps to
42
41
  * {@link WebvhLogConflictError}.
42
+ *
43
+ * The returned `etag` is the new validator of the resource just written --
44
+ * the `ifMatch` token for the next entry built on it, so a ceremony that
45
+ * publishes can hand a compare-and-swap-capable head to the stage after it
46
+ * rather than re-reading the log it just wrote. It is absent against a
47
+ * backend that does not version resources, and an implementation that
48
+ * resolves `void` is accepted verbatim (the head it produced then carries
49
+ * no ETag and the next publish degrades to an unconditional write).
43
50
  */
44
51
  putIdResource(options: {
45
52
  resourceId: string;
@@ -47,13 +54,40 @@ export interface WebvhIdStore {
47
54
  contentType?: string;
48
55
  ifMatch?: string;
49
56
  ifNoneMatch?: boolean;
50
- }): Promise<void>;
57
+ }): Promise<{
58
+ etag?: string;
59
+ } | void>;
51
60
  /**
52
- * Writes (upserts) `keys.json` in the private `key-map` collection.
61
+ * The parsed `keys.json` body together with its ETag validator, or
62
+ * `undefined` when the map is not written yet. Optional: a store that does
63
+ * not offer it keeps the pre-convergence behavior -- the genesis' rewrite
64
+ * has no served map to re-read, so a lost precondition propagates, and the
65
+ * adopt branch backfills no `webvh` block.
66
+ */
67
+ getKeyMapRaw?(): Promise<{
68
+ content: unknown;
69
+ etag?: string;
70
+ } | undefined>;
71
+ /**
72
+ * Writes `keys.json` in the private `key-map` collection, under the write
73
+ * precondition the caller states: `ifNoneMatch` for the KMS stage's
74
+ * create-if-absent write, `ifMatch` for the genesis' rewrite of the map
75
+ * that write produced. Neither stated, the write is unconditional.
76
+ *
77
+ * The returned `etag` is the new validator of the resource just written --
78
+ * the `ifMatch` token for the rewrite built on it, so the stage that
79
+ * records the KMS binding hands a compare-and-swap-capable map to the
80
+ * stage that adds the account DID. It is absent against a backend that
81
+ * does not version resources, and an implementation that resolves `void`
82
+ * is accepted verbatim (the rewrite then degrades to unconditional).
53
83
  */
54
84
  putKeyMap(options: {
55
85
  content: object;
56
- }): Promise<void>;
86
+ ifMatch?: string;
87
+ ifNoneMatch?: boolean;
88
+ }): Promise<{
89
+ etag?: string;
90
+ } | void>;
57
91
  }
58
92
  /**
59
93
  * The Multikey verification-method type the did:webvh data model uses for both
@@ -251,8 +285,9 @@ export declare function assertCanonicalClientKeys({ signingKeyMultibase, keyAgre
251
285
  /**
252
286
  * The one builder of the ladder VM's published verification method -- the
253
287
  * STABLE SIBLING key a standing credential derives from its ladder seed
254
- * (`@interop/wallet-core/unlock`, `ladderVmKeyMultibase`), published while
255
- * the account has no enrolled client. The shape is forced, not
288
+ * (`@interop/wallet-core/unlock`, `ladderVmKeyMultibase`), published for as
289
+ * long as that credential stands and co-resident with whatever clients the
290
+ * account has enrolled. The shape is forced, not
256
291
  * preferred: @interop/zcap's `isController` flat-compares the delegating VM's
257
292
  * `controller` string against the parent capability's controller (which the
258
293
  * server synthesizes as the account did:webvh), and only an
@@ -263,9 +298,9 @@ export declare function assertCanonicalClientKeys({ signingKeyMultibase, keyAgre
263
298
  * The method is listed under `assertionMethod` and `capabilityDelegation`
264
299
  * ONLY -- no `authentication`, no `capabilityInvocation`, no `keyAgreement`
265
300
  * twin, and no marker property. Recognition is by that relation asymmetry
266
- * (`ladderVmIds` in the listings module): a `capabilityDelegation` member
267
- * absent from `capabilityInvocation` is the ladder VM, which also keeps it
268
- * structurally out of every client listing.
301
+ * (`ladderVmIds`, in the shared account-document readers): a
302
+ * `capabilityDelegation` member absent from `capabilityInvocation` is the
303
+ * ladder VM, which also keeps it structurally out of every client listing.
269
304
  *
270
305
  * Because the key is derived, a reinstall republishes the SAME key under the
271
306
  * SAME id, and a still-unexpired delegation it signed resumes verifying the
@@ -293,13 +328,25 @@ export interface DidWebvhBlock {
293
328
  did?: string;
294
329
  }
295
330
  /**
296
- * `keys.json` v2: the did:web key map plus the optional `webvh` block. The
297
- * did:web parse/guard tolerates and preserves the block, so a round-trip
298
- * through the did:web provisioning never strips it.
331
+ * `keys.json` v2: the KMS binding map plus the optional `webvh` block. The
332
+ * parse/guard tolerates and preserves the block, so a round-trip through the
333
+ * KMS-authentication stage never strips it.
299
334
  */
300
335
  export type DidWebKeyMapV2 = DidWebKeyMap & {
301
336
  webvh?: DidWebvhBlock;
302
337
  };
338
+ /**
339
+ * What the KMS-authentication stage hands the genesis: the key map to fold
340
+ * into the genesis entry, and the `keys.json` ETag the stage's own write
341
+ * produced, which the genesis' rewrite carries as its `ifMatch`. The ETag is
342
+ * absent when the stage wrote nothing (it adopted a served map) or when the
343
+ * backend versions no resources, and the rewrite then degrades to an
344
+ * unconditional write.
345
+ */
346
+ export interface KmsAuthenticationBinding {
347
+ keys: DidWebKeyMapV2;
348
+ etag?: string;
349
+ }
303
350
  /**
304
351
  * The `did:webvh:{SCID}:<host>:space:<spaceId>:<collectionId>` controller
305
352
  * template, with the literal `{SCID}` placeholder the library replaces at
@@ -356,6 +403,25 @@ export declare function updateKeyMultibase({ seed }: {
356
403
  export declare function updateKeySigner({ seed }: {
357
404
  seed: Uint8Array;
358
405
  }): Promise<Signer>;
406
+ /**
407
+ * What a create path hands back: the log, its `did:web` projection, and the
408
+ * resolved state `createDID` already returned. The three resolved members are
409
+ * what let a caller that publishes this log assemble a
410
+ * {@link PublishedWebvhLog} for the head it just wrote -- pairing them with
411
+ * the publish's own ETag -- rather than resolving the log a second time.
412
+ */
413
+ export interface CreatedWebvhLog {
414
+ log: DIDLog;
415
+ webDoc: object;
416
+ did: string;
417
+ /**
418
+ * The resolved document, detached from the genesis entry's own `state`, so
419
+ * it aliases exactly as a read-side head's document does.
420
+ */
421
+ doc: DIDDoc;
422
+ updateKeys: string[];
423
+ nextKeyHashes: string[];
424
+ }
359
425
  /**
360
426
  * Builds a genesis entry's `nextKeyHashes`: the active update key's own
361
427
  * carry-over hash beside the staged key's (the carry-over convention in the
@@ -409,7 +475,7 @@ export declare function genesisNextKeyHashes({ activeKeyMultibase, stagedKeyMult
409
475
  * @param options.updateKeyPublicKeyMultibase {string} ladder rung 0's key
410
476
  * @param options.nextKeyHashes {string[]} [hash(rung 0), hash(rung 1)]
411
477
  * @param options.signer {Signer} ladder rung 0's signer
412
- * @returns {Promise<{ log: DIDLog; webDoc: object; did: string }>}
478
+ * @returns {Promise<CreatedWebvhLog>}
413
479
  */
414
480
  export declare function createLadderAnchoredWebvhLog({ wasServerUrl, spaceId, didWebKeys, ladderVmKeyMultibase, credentialKeyAgreementMethod, updateKeyPublicKeyMultibase, nextKeyHashes, signer }: {
415
481
  wasServerUrl: string;
@@ -420,11 +486,7 @@ export declare function createLadderAnchoredWebvhLog({ wasServerUrl, spaceId, di
420
486
  updateKeyPublicKeyMultibase: string;
421
487
  nextKeyHashes: string[];
422
488
  signer: Signer;
423
- }): Promise<{
424
- log: DIDLog;
425
- webDoc: object;
426
- did: string;
427
- }>;
489
+ }): Promise<CreatedWebvhLog>;
428
490
  /**
429
491
  * Thrown when a conditional publish of `did.jsonl` lost a race to a concurrent
430
492
  * ceremony: the log moved on between the read this ceremony built its entry on
@@ -465,14 +527,59 @@ export declare function withLogConflictRetry<T>(run: () => Promise<T>): Promise<
465
527
  * @param options.log {DIDLog}
466
528
  * @param [options.ifMatch] {string} publish only if the log is unchanged
467
529
  * @param [options.ifNoneMatch] {boolean} publish only if the log is absent
468
- * @returns {Promise<void>}
530
+ * @returns {Promise<{ etag?: string }>} the new validator of the log just
531
+ * written, for a stage building its entry on this head; absent against a
532
+ * backend that serves no ETags
469
533
  */
470
534
  export declare function putLogResource({ store, log, ifMatch, ifNoneMatch }: {
471
535
  store: Pick<WebvhIdStore, 'putIdResource'>;
472
536
  log: DIDLog;
473
537
  ifMatch?: string;
474
538
  ifNoneMatch?: boolean;
475
- }): Promise<void>;
539
+ }): Promise<{
540
+ etag?: string;
541
+ }>;
542
+ /**
543
+ * THE POSTAMBLE: publishes `did.jsonl` -- the log only, never `did.json` (a
544
+ * caller writing through a bridge delegation is authorized for nothing else)
545
+ * -- and advances the caller's chain-head pin to what it just published, so a
546
+ * host rolling the log back straight afterwards is refused on the next read.
547
+ *
548
+ * So an entry published here leaves the `did:web` projection standing at
549
+ * whatever it said before: a ceremony whose entry REMOVES inventory (a
550
+ * removal, a retirement) must republish the projection itself before the
551
+ * entry lands, and a projection left behind by one that did not is mended by
552
+ * `ensureDidWebProjection` at the next visit holding a writer for the `id`
553
+ * collection (a controller-invoking client, or a transient visit under its
554
+ * generation delegation).
555
+ * The publish is conditional on the read the entry was built on; a lost race
556
+ * surfaces as a {@link WebvhLogConflictError} (the mapping lives in
557
+ * {@link putLogResource}).
558
+ *
559
+ * The two halves are one function on purpose. Separating them is what leaves
560
+ * a pin standing behind an entry this client itself published, the gap that
561
+ * already forced `BuiltOnHeadNotReachedError` into existence as a
562
+ * compensating class.
563
+ *
564
+ * @param options {object}
565
+ * @param options.store {object} anything with the seam's `putIdResource`
566
+ * @param options.log {DIDLog} the log this entry produced
567
+ * @param [options.ifMatch] {string} publish only if `did.jsonl` is unchanged
568
+ * @param [options.pinStore] {ResourceLogPinStore} the caller's chain-head
569
+ * pins; the pin advances only when a `logId` names its slot
570
+ * @param [options.logId] {string} the log's pin slot
571
+ * @returns {Promise<{ etag?: string }>} the new validator of the log this
572
+ * entry just published, for a stage building on the post-entry head
573
+ */
574
+ export declare function publishEntryPinned({ store, log, ifMatch, pinStore, logId }: {
575
+ store: Pick<WebvhIdStore, 'putIdResource'>;
576
+ log: DIDLog;
577
+ ifMatch?: string;
578
+ pinStore?: ResourceLogPinStore;
579
+ logId?: string;
580
+ }): Promise<{
581
+ etag?: string;
582
+ }>;
476
583
  /**
477
584
  * Publishes an already-created log: PUT `did.jsonl` (`text/jsonl`) then PUT
478
585
  * `did.json` from `webDoc` (`application/did+json`, adopting the webvh
@@ -489,8 +596,11 @@ export declare function putLogResource({ store, log, ifMatch, ifNoneMatch }: {
489
596
  * after the log's compare-and-swap was WON, so it is already serialized behind
490
597
  * that win; the log is the source of truth and the projection a derived cache;
491
598
  * and {@link concludeWithPublishedLog} re-derives and republishes the
492
- * projection from the resolved log on every ceremony's no-op path, healing any
493
- * lag a race or a torn publish leaves behind.
599
+ * projection from the resolved log on the no-op path of every ceremony that
600
+ * reaches this function, so a torn publish on one of those paths is healed by
601
+ * the next run of the same ceremony. That reach is the controller-invoking
602
+ * paths alone; `ensureDidWebProjection` is what mends a projection a
603
+ * ladder-signed entry ({@link publishEntryPinned}) left behind.
494
604
  *
495
605
  * @param options {object}
496
606
  * @param options.idStore {WebvhIdStore}
@@ -498,7 +608,9 @@ export declare function putLogResource({ store, log, ifMatch, ifNoneMatch }: {
498
608
  * @param options.webDoc {object}
499
609
  * @param [options.ifMatch] {string} publish only if `did.jsonl` is unchanged
500
610
  * @param [options.ifNoneMatch] {boolean} publish only if `did.jsonl` is absent
501
- * @returns {Promise<void>}
611
+ * @returns {Promise<{ etag?: string }>} the LOG's new validator, never the
612
+ * projection's: the projection is a derived cache, and only the log's ETag
613
+ * is a precondition anything is built on
502
614
  */
503
615
  export declare function publishWebvhLog({ idStore, log, webDoc, ifMatch, ifNoneMatch }: {
504
616
  idStore: WebvhIdStore;
@@ -506,7 +618,9 @@ export declare function publishWebvhLog({ idStore, log, webDoc, ifMatch, ifNoneM
506
618
  webDoc: object;
507
619
  ifMatch?: string;
508
620
  ifNoneMatch?: boolean;
509
- }): Promise<void>;
621
+ }): Promise<{
622
+ etag?: string;
623
+ }>;
510
624
  /**
511
625
  * The shared guard-and-publish tail of every ceremony that extends the log
512
626
  * through `updateDID`: the parallel `webDoc` must be there (it is, whenever
@@ -520,7 +634,7 @@ export declare function publishWebvhLog({ idStore, log, webDoc, ifMatch, ifNoneM
520
634
  * @param [options.updated.webDoc] {object}
521
635
  * @param [options.ifMatch] {string} the ETag of the read this entry was built
522
636
  * on
523
- * @returns {Promise<void>}
637
+ * @returns {Promise<{ etag?: string }>} the log's new validator
524
638
  */
525
639
  export declare function publishUpdatedLog({ idStore, updated, ifMatch }: {
526
640
  idStore: WebvhIdStore;
@@ -529,23 +643,64 @@ export declare function publishUpdatedLog({ idStore, updated, ifMatch }: {
529
643
  webDoc?: object;
530
644
  };
531
645
  ifMatch?: string;
532
- }): Promise<void>;
646
+ }): Promise<{
647
+ etag?: string;
648
+ }>;
533
649
  /**
534
- * Writes `keys.json` v2: the did:web relationship map plus the `webvh` block,
535
- * preserving the three did:web relationships. Exported for the ladder-anchored
536
- * ensure, whose create path records the account DID the same way the
537
- * enrolled-client one does.
650
+ * Writes `keys.json` v2: the KMS binding plus the `webvh` block. Exported for
651
+ * the ladder-anchored ensure, whose create path records the account DID the
652
+ * same way the enrolled-client one does.
653
+ *
654
+ * The body is CONSTRUCTED from the two members the map carries rather than
655
+ * spread from the caller's, so a legacy `keyAgreement` binding a stored map
656
+ * still holds is dropped by this rewrite.
657
+ *
658
+ * This is the genesis' rewrite of the map the KMS stage created one stage
659
+ * earlier, so it carries that write's ETag as its `ifMatch`. A caller holding
660
+ * no ETag (a backend that versions nothing) writes unconditionally.
661
+ *
662
+ * A lost precondition CONVERGES rather than propagating, since the genesis
663
+ * entry has already published by the time this runs and a bookkeeping resource
664
+ * must not fail a ceremony standing behind it: the served map is re-read, a
665
+ * map already naming this DID under this binding is left alone, and anything
666
+ * else is rewritten once under the served ETag. A second lost precondition
667
+ * propagates. Without the store's optional read there is nothing to converge
668
+ * on, and the first failure propagates.
538
669
  *
539
670
  * @param options {object}
540
671
  * @param options.idStore {WebvhIdStore}
541
- * @param options.didWebKeys {DidWebKeyMap}
672
+ * @param options.didWebKeys {DidWebKeyMap} the binding to record, which on
673
+ * the create path is the one this run published in the genesis entry
542
674
  * @param options.webvh {DidWebvhBlock}
675
+ * @param [options.ifMatch] {string} the ETag the KMS stage's own write
676
+ * returned
543
677
  * @returns {Promise<void>}
544
678
  */
545
- export declare function writeKeysJson({ idStore, didWebKeys, webvh }: {
679
+ export declare function writeKeysJson({ idStore, didWebKeys, webvh, ifMatch }: {
546
680
  idStore: WebvhIdStore;
547
681
  didWebKeys: DidWebKeyMap;
548
682
  webvh: DidWebvhBlock;
683
+ ifMatch?: string;
684
+ }): Promise<void>;
685
+ /**
686
+ * Records the account DID into a `keys.json` carrying a KMS binding and no (or
687
+ * a stale) `webvh` block -- the state a run torn between its genesis entry and
688
+ * its rewrite leaves behind. It is the adoption path's half of that rewrite,
689
+ * and the binding comes from the SERVED map: the run that published the log
690
+ * recorded it, while this run's own map may name a key that log never
691
+ * published.
692
+ *
693
+ * A no-op when the store offers no read, when the served map carries no
694
+ * binding, and when it already names this DID.
695
+ *
696
+ * @param options {object}
697
+ * @param options.idStore {WebvhIdStore}
698
+ * @param options.did {string} the DID the adopted log resolves to
699
+ * @returns {Promise<void>}
700
+ */
701
+ export declare function backfillKeyMapWebvhBlock({ idStore, did }: {
702
+ idStore: WebvhIdStore;
703
+ did: string;
549
704
  }): Promise<void>;
550
705
  /**
551
706
  * The verified state of the published log: the log itself, the resolved DID
@@ -592,7 +747,9 @@ export interface PublishedWebvhLog {
592
747
  * refused as a `rollback` instead of read as `undefined`.
593
748
  *
594
749
  * @param options {object}
595
- * @param options.idStore {WebvhIdStore}
750
+ * @param options.idStore {Pick<WebvhIdStore, 'getIdResourceRaw'>} the read
751
+ * half of the seam alone, so a caller holding a narrower store (a bridge
752
+ * delegation's read + PUT pair) passes it directly
596
753
  * @param [options.expectedDid] {string} the DID the log must resolve to
597
754
  * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
598
755
  * pins for the account log
@@ -601,11 +758,65 @@ export interface PublishedWebvhLog {
601
758
  * @returns {Promise<PublishedWebvhLog | undefined>}
602
759
  */
603
760
  export declare function readPublishedLog({ idStore, expectedDid, pinStore, logId }: {
604
- idStore: WebvhIdStore;
761
+ idStore: Pick<WebvhIdStore, 'getIdResourceRaw'>;
605
762
  expectedDid?: string;
606
763
  pinStore?: ResourceLogPinStore;
607
764
  logId?: string;
608
765
  }): Promise<PublishedWebvhLog | undefined>;
766
+ /**
767
+ * The substituted-account refusal on its own: a resolved head that is not the
768
+ * DID the caller expected is refused rather than built on. Stated once so a
769
+ * fresh read and a caller-threaded head refuse identically.
770
+ *
771
+ * A ceremony that takes an already-read head from its caller (the transient
772
+ * visit's one-read composition, where the readiness stage hands its verified
773
+ * head to the enrollment) runs this explicitly: the read that would otherwise
774
+ * have run it never happened, and a head resolving to another DID must not
775
+ * become the entry's basis just because it arrived by parameter.
776
+ *
777
+ * @param options {object}
778
+ * @param options.published {PublishedWebvhLog} the resolved head
779
+ * @param [options.expectedDid] {string} the DID it must resolve to; absent,
780
+ * the head is accepted (the caller discovering the DID from the log itself)
781
+ * @returns {PublishedWebvhLog} the head verbatim
782
+ */
783
+ export declare function assertPublishedLogDid({ published, expectedDid }: {
784
+ published: PublishedWebvhLog;
785
+ expectedDid?: string;
786
+ }): PublishedWebvhLog;
787
+ /**
788
+ * {@link readPublishedLog} for the ceremonies whose premise is a log that
789
+ * already exists: an absent `did.jsonl` is a refusal rather than a state to
790
+ * branch on, so the caller gets a `PublishedWebvhLog` or an error. The
791
+ * `missingMessage` is the caller's own phrasing of what there is nothing to do
792
+ * against ("nothing to enroll into", "nothing to recover"), since the read
793
+ * itself cannot know which ceremony is standing on it.
794
+ *
795
+ * Every other option, and every check behind them -- the `expectedDid`
796
+ * refusal and the chain-head pin's rollback / fork / identity-switch
797
+ * refusals -- is {@link readPublishedLog}'s verbatim. Each attempt of a
798
+ * conflict-retried ceremony reads for itself, so the continuity check runs on
799
+ * the read the compare-and-swap publish is conditioned on rather than only on
800
+ * an orchestrator's pre-read.
801
+ *
802
+ * @param options {object}
803
+ * @param options.idStore {Pick<WebvhIdStore, 'getIdResourceRaw'>}
804
+ * @param [options.expectedDid] {string} the DID the log must resolve to
805
+ * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
806
+ * pins for the log being read
807
+ * @param [options.logId] {string} the log's pin-slot key; required whenever
808
+ * a `pinStore` is supplied
809
+ * @param [options.missingMessage] {string} the thrown `Error`'s message when
810
+ * the log is absent
811
+ * @returns {Promise<PublishedWebvhLog>}
812
+ */
813
+ export declare function readPublishedLogOrThrow({ idStore, expectedDid, pinStore, logId, missingMessage }: {
814
+ idStore: Pick<WebvhIdStore, 'getIdResourceRaw'>;
815
+ expectedDid?: string;
816
+ pinStore?: ResourceLogPinStore;
817
+ logId?: string;
818
+ missingMessage?: string;
819
+ }): Promise<PublishedWebvhLog>;
609
820
  /**
610
821
  * The chain-head pin a log establishes: the genesis entry's method and SCID
611
822
  * plus the head entry's `versionId`. Used where this client is the one that
@@ -634,16 +845,22 @@ export declare function servedHead(log: DIDLog): {
634
845
  * already-revoked no-op. All of them used to infer completion from `did.jsonl`
635
846
  * alone, which is a half of the state: {@link publishWebvhLog} writes the log
636
847
  * and its `did:web` projection in two non-atomic PUTs, so a crash between them
637
- * leaves a `did.jsonl` that is complete beside a `did.json` that lags it
638
- * forever (nothing else republishes the projection).
848
+ * leaves a `did.jsonl` that is complete beside a `did.json` that lags it.
639
849
  *
640
850
  * So the projection is re-derived from the resolved log and re-PUT
641
851
  * unconditionally rather than compared first: the write is idempotent and one
642
852
  * request either way, and the resolved log is the source of truth for what the
643
853
  * projection must say. A ceremony that no-ops on the log therefore still heals
644
- * a torn earlier publish. The projection PUT is deliberately unconditional
645
- * here too: healing it is the whole point, and the log it was derived from is
646
- * the state this call just read and resolved.
854
+ * a torn earlier publish OF THAT CEREMONY. The projection PUT is deliberately
855
+ * unconditional here too: healing it is the whole point, and the log it was
856
+ * derived from is the state this call just read and resolved.
857
+ *
858
+ * The reach is what to hold on to: every caller here invokes as the account's
859
+ * controller, so this heals nothing for the ladder-signed entries that publish
860
+ * through {@link publishEntryPinned} and write the log alone. Those are mended
861
+ * by their own ceremony's pre-entry projection PUT and, failing that, by
862
+ * `ensureDidWebProjection` at the next visit that holds an `id`-collection
863
+ * writer.
647
864
  *
648
865
  * @param options {object}
649
866
  * @param options.idStore {WebvhIdStore}
@@ -672,6 +889,24 @@ export declare function effectiveParameters(log: DIDLog): Array<{
672
889
  updateKeys: string[];
673
890
  nextKeyHashes: string[];
674
891
  }>;
892
+ /**
893
+ * The log's current `updateKeys` / `nextKeyHashes` view: the last entry's
894
+ * effective parameters, or the empty pair for a log with no entries.
895
+ *
896
+ * The empty default is a policy choice, not a convenience: it is what makes
897
+ * an unresolvable log attribute as "no rung standing" rather than throw, so
898
+ * it is stated here once rather than at each attribution site.
899
+ *
900
+ * @param published {object}
901
+ * @param published.log {DIDLog}
902
+ * @returns {object}
903
+ */
904
+ export declare function currentLogParameters(published: {
905
+ log: DIDLog;
906
+ }): {
907
+ updateKeys: string[];
908
+ nextKeyHashes: string[];
909
+ };
675
910
  /**
676
911
  * Idempotently provisions and publishes the user's did:webvh DID log. A wallet
677
912
  * that keeps a KMS runs it directly after the did:web provisioning (non-fatal)
@@ -715,8 +950,10 @@ export declare function effectiveParameters(log: DIDLog): Array<{
715
950
  * @param options.wasServerUrl {string}
716
951
  * @param options.spaceId {string}
717
952
  * @param [options.didWebKeys] {DidWebKeyMapV2} the parsed keys.json (with any
718
- * webvh block) returned by the did:web provisioning; absent on a
953
+ * webvh block) returned by the KMS-authentication stage; absent on a
719
954
  * client-keys-only genesis (no KMS anywhere in the path)
955
+ * @param [options.keysJsonEtag] {string} the ETag that stage's own write
956
+ * returned, carried as the `ifMatch` of the rewrite that records the DID
720
957
  * @param options.clientKeys {WebvhClientKeys} this client's published keys
721
958
  * @param options.updateKeys {ClientWebvhUpdateKeys} already persisted
722
959
  * client-local
@@ -732,6 +969,7 @@ export declare function ensureDidWebvh(options: {
732
969
  wasServerUrl: string;
733
970
  spaceId: string;
734
971
  didWebKeys?: DidWebKeyMapV2;
972
+ keysJsonEtag?: string;
735
973
  clientKeys: WebvhClientKeys;
736
974
  updateKeys: ClientWebvhUpdateKeys;
737
975
  expectedDid?: string;
@@ -825,102 +1063,4 @@ export interface WebvhEnrollmentKeys extends WebvhClientKeys {
825
1063
  updateKeyMultibase: string;
826
1064
  stagedUpdateKeyMultibase: string;
827
1065
  }
828
- /**
829
- * The relationship references of a resolved document as verification-method
830
- * ids, tolerating embedded objects beside string references.
831
- *
832
- * @param relation {Array} the relationship array, when present
833
- * @returns {string[]}
834
- */
835
- export declare function relationIds(relation: Array<string | {
836
- id?: string;
837
- }> | undefined): string[];
838
- /**
839
- * Enrolls a second wallet client into the published did:webvh document -- the
840
- * log half of the enrollment ceremony (the user key roster wrap happens first,
841
- * outside this module). Two entries, forced by prerotation (a new update key
842
- * must hash into the PREVIOUS entry's `nextKeyHashes`):
843
- *
844
- * 1. **Commit**: a sparse entry extending `nextKeyHashes` with the new
845
- * client's update-key and staged-key hashes (document and `updateKeys`
846
- * untouched).
847
- * 2. **Add**: an entry adding the new client's verification methods (its
848
- * Ed25519 key under the four signing relationships, its X25519 twin under
849
- * `keyAgreement`) and its update key to `updateKeys`.
850
- *
851
- * Both entries are signed by THIS client's active update key (quorum-of-one:
852
- * any single enrolled client can enroll). The ceremony is resumable from
853
- * durable state alone: a tear after the commit is detected by its hashes
854
- * already standing in `nextKeyHashes` (skip to the add entry), and a
855
- * completed enrollment is detected by the update key already being authorized
856
- * (no-op). Re-running with the same key set converges without forking the
857
- * log.
858
- *
859
- * Each entry publishes conditionally on the read it was built on (the add
860
- * entry on the mid-ceremony re-read), so a concurrent ceremony -- a revocation,
861
- * another enrollment -- can never be erased by this one; a lost race re-runs
862
- * from the top (see {@link withLogConflictRetry}) and rebases on the new head.
863
- *
864
- * @param options {object}
865
- * @param options.idStore {WebvhIdStore}
866
- * @param options.updateKeys {ClientWebvhUpdateKeys} THIS client's seeds
867
- * @param options.newClient {WebvhEnrollmentKeys} the enrollee's public halves
868
- * @returns {Promise<{ did: string }>}
869
- */
870
- export declare function enrollWebvhClient(options: {
871
- idStore: WebvhIdStore;
872
- updateKeys: ClientWebvhUpdateKeys;
873
- newClient: WebvhEnrollmentKeys;
874
- }): Promise<{
875
- did: string;
876
- }>;
877
- /**
878
- * Rebuilds `keys.json` from the published artifacts plus a WebKMS key listing
879
- * -- the recovery path for a lost or rolled-back `keys.json`. List Keys is
880
- * authorized as `read` against the keystore controller, which only the
881
- * root-controlled keystore agent can invoke.
882
- *
883
- * KMS key local ids are server-generated random and appear in no published
884
- * artifact, so the bindings are rediscovered by public key material instead.
885
- * List the keystore once -- each listed description carries `keyUrl`, the
886
- * key's canonical invocation URL (the signable handle its alias-overridden
887
- * `id` erases) -- then match `did.json`'s relationship verification methods
888
- * by `publicKeyMultibase` and rewrite `keys.json` from what matched. The
889
- * `authentication` and `keyAgreement` bindings are required; `assertionMethod`
890
- * lists client keys only, so no KMS binding exists there and none is rebuilt.
891
- * When `did.jsonl` is published, its resolved DID is recorded in the `webvh`
892
- * block; there is nothing else to repair there, since the log's update keys are
893
- * client-held seeds that no keystore listing could recover.
894
- *
895
- * An unmatchable binding is unrepairable and throws: a published artifact
896
- * depends on a key the keystore no longer lists.
897
- *
898
- * The log read takes the same checks every other ceremony read does, and for
899
- * the same reason: what it reads is written straight back into the rebuilt
900
- * `keys.json`, so a substituted log would rewrite the `webvh` block to a wrong
901
- * DID and a truncated one would be adopted as this account's history. A caller
902
- * that still holds the account pointer passes `expectedDid` and its
903
- * `pinStore`; the pure-recovery caller that has lost everything but the
904
- * keystore has no DID to expect and passes neither, which is the one read here
905
- * that legitimately discovers the DID from the log itself.
906
- *
907
- * @param options {object}
908
- * @param options.keystoreAgent {KeystoreAgent}
909
- * @param options.idStore {WebvhIdStore}
910
- * @param [options.expectedDid] {string} the DID the published log must
911
- * resolve to
912
- * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
913
- * pins for the account log
914
- * @param [options.logId] {string} the account log's pin-slot key, built by
915
- * the caller with `accountLogPinId({ spaceId })`; required whenever a
916
- * `pinStore` is supplied
917
- * @returns {Promise<DidWebKeyMapV2>} the rebuilt, persisted keys.json
918
- */
919
- export declare function repairKeyBindings({ keystoreAgent, idStore, expectedDid, pinStore, logId }: {
920
- keystoreAgent: KeystoreAgent;
921
- idStore: WebvhIdStore;
922
- expectedDid?: string;
923
- pinStore?: ResourceLogPinStore;
924
- logId?: string;
925
- }): Promise<DidWebKeyMapV2>;
926
1066
  //# sourceMappingURL=didWebvh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"didWebvh.d.ts","sourceRoot":"","sources":["../../src/webvh/didWebvh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"didWebvh.d.ts","sourceRoot":"","sources":["../../src/webvh/didWebvh.ts"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EACN,MAAM,EACN,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAelC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO/C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAO,EAAE;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;IACxD;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,OAAO,EAAE;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;QACxB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,GAAG,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACrC;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;IACzE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,OAAO,EAAE;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,GAAG,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;CACtC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAA;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,6BAAoB,CAAA;AAOjD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,iBAAiB,CAAC,EAAE,UAAU,CAAA;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,wBAAwB,EAAE,MAAM,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,mBAAmB,EACpB,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;CAC5B,GAAG,MAAM,CAET;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,mBAAmB,EACpB,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;CAC5B,GAAG,MAAM,CAGT;AAiCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,wBAAwB,EACzB,EAAE;IACD,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,wBAAwB,EACzB,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,OAAO,CAIV;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACZ,EAAE;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,GAAG,CAAC,wBAAwB,EAAE,MAAM,KAAK,OAAO,CA4BhD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACzB,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,kBAAkB,EAAE,CAgBvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,mBAAmB,EACnB,wBAAwB,EACzB,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,IAAI,CAWP;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,UAAU,EACV,kBAAkB,EACnB,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,kBAAkB,CAOrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,CAAA;AAErE;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,OAAO,EACP,YAA+B,EAChC,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,MAAM,CAGT;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAKhF;AAWD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACL,EAAE;IACD,IAAI,EAAE,UAAU,CAAA;CACjB,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACL,EAAE;IACD,IAAI,EAAE,UAAU,CAAA;CACjB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBlB;AAyKD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAiGD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,kBAAkB,EAClB,kBAAkB,EACnB,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,4BAA4B,CAAC,EACjD,YAAY,EACZ,OAAO,EACP,UAAU,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,aAAa,EACb,MAAM,EACP,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,4BAA4B,EAAE,kBAAkB,CAAA;IAChD,2BAA2B,EAAE,MAAM,CAAA;IACnC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,eAAe,CAAC,CAa3B;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAE5C,OAAO,SACkE,EACzE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAKhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAAC,EACnC,KAAK,EACL,GAAG,EACH,OAAO,EACP,WAAW,EACZ,EAAE;IACD,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,GAAG,EACH,OAAO,EACP,QAAQ,EACR,KAAK,EACN,EAAE;IACD,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAM7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,GAAG,EACH,MAAM,EACN,OAAO,EACP,WAAW,EACZ,EAAE;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAS7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,OAAO,EACR,EAAE;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAY7B;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,aAAa,CAAC,EAClC,OAAO,EACP,UAAU,EACV,KAAK,EACL,OAAO,EACR,EAAE;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,YAAY,CAAA;IACxB,KAAK,EAAE,aAAa,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,GAAG,EACJ,EAAE;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,IAAI,CAAC,CAehB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,WAAW,EACX,QAAQ,EACR,KAAK,EACN,EAAE;IACD,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA8CzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,WAAW,EACZ,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,iBAAiB,CAQpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,KAAK,EACL,cAAmD,EACpD,EAAE;IACD,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAW7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAG3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,SAAS,EACV,EAAE;IACD,OAAO,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,iBAAiB,CAAA;CAC7B,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAMxC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GACV,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAc1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAChE,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,CAGA;AA6DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,OAAO,EAAE,YAAY,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,eAAe,CAAA;IAC3B,UAAU,EAAE,qBAAqB,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC/B,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAE3B;AAmHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,qBAAqB,CAAA;IACjC,iBAAiB,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAE3B;AAyID;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAAC,EAC/C,SAAS,EACV,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAA;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,wBAAwB,EAAE,MAAM,CAAA;CACjC"}