@interop/wallet-core 0.65.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +12 -8
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +5 -4
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +32 -50
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +112 -21
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +248 -180
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +2 -6
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +31 -61
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +48 -132
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +88 -221
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts.map +1 -1
  19. package/dist/clientAnnex/gc.js +9 -0
  20. package/dist/clientAnnex/gc.js.map +1 -1
  21. package/dist/clientAnnex/heal.d.ts +97 -13
  22. package/dist/clientAnnex/heal.d.ts.map +1 -1
  23. package/dist/clientAnnex/heal.js +108 -174
  24. package/dist/clientAnnex/heal.js.map +1 -1
  25. package/dist/clientAnnex/index.d.ts +8 -8
  26. package/dist/clientAnnex/index.d.ts.map +1 -1
  27. package/dist/clientAnnex/index.js +6 -6
  28. package/dist/clientAnnex/index.js.map +1 -1
  29. package/dist/clientAnnex/ladder.d.ts +51 -4
  30. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  31. package/dist/clientAnnex/ladder.js +310 -55
  32. package/dist/clientAnnex/ladder.js.map +1 -1
  33. package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
  34. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  35. package/dist/clientAnnex/ladderAnchored.js +69 -34
  36. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  37. package/dist/clientAnnex/log.d.ts +148 -72
  38. package/dist/clientAnnex/log.d.ts.map +1 -1
  39. package/dist/clientAnnex/log.js +211 -137
  40. package/dist/clientAnnex/log.js.map +1 -1
  41. package/dist/clientAnnex/mend.d.ts.map +1 -1
  42. package/dist/clientAnnex/mend.js +63 -81
  43. package/dist/clientAnnex/mend.js.map +1 -1
  44. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
  45. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
  47. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  48. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
  49. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
  50. package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
  51. package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
  52. package/dist/clientAnnex/selfEnroll.js +1 -1
  53. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  54. package/dist/clientAnnex/zcap.d.ts +19 -0
  55. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  56. package/dist/clientAnnex/zcap.js +80 -12
  57. package/dist/clientAnnex/zcap.js.map +1 -1
  58. package/dist/clients/index.d.ts +3 -2
  59. package/dist/clients/index.d.ts.map +1 -1
  60. package/dist/clients/index.js +3 -2
  61. package/dist/clients/index.js.map +1 -1
  62. package/dist/clients/listing.d.ts.map +1 -1
  63. package/dist/clients/listing.js +33 -15
  64. package/dist/clients/listing.js.map +1 -1
  65. package/dist/clients/policy.d.ts +18 -0
  66. package/dist/clients/policy.d.ts.map +1 -1
  67. package/dist/clients/policy.js +22 -8
  68. package/dist/clients/policy.js.map +1 -1
  69. package/dist/clients/revocation.d.ts +18 -30
  70. package/dist/clients/revocation.d.ts.map +1 -1
  71. package/dist/clients/revocation.js +12 -27
  72. package/dist/clients/revocation.js.map +1 -1
  73. package/dist/clients/rosterPolicy.d.ts +6 -1
  74. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  75. package/dist/clients/rosterPolicy.js +27 -30
  76. package/dist/clients/rosterPolicy.js.map +1 -1
  77. package/dist/descriptors/errors.d.ts +6 -5
  78. package/dist/descriptors/errors.d.ts.map +1 -1
  79. package/dist/descriptors/errors.js +6 -5
  80. package/dist/descriptors/errors.js.map +1 -1
  81. package/dist/descriptors/index.d.ts +7 -3
  82. package/dist/descriptors/index.d.ts.map +1 -1
  83. package/dist/descriptors/index.js +7 -3
  84. package/dist/descriptors/index.js.map +1 -1
  85. package/dist/descriptors/logSource.d.ts +28 -6
  86. package/dist/descriptors/logSource.d.ts.map +1 -1
  87. package/dist/descriptors/logSource.js +33 -7
  88. package/dist/descriptors/logSource.js.map +1 -1
  89. package/dist/enrollment/enrollment.d.ts.map +1 -1
  90. package/dist/enrollment/enrollment.js +3 -7
  91. package/dist/enrollment/enrollment.js.map +1 -1
  92. package/dist/genesis/accountGenesis.d.ts +8 -10
  93. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  94. package/dist/genesis/accountGenesis.js +39 -41
  95. package/dist/genesis/accountGenesis.js.map +1 -1
  96. package/dist/genesis/kmsAuthentication.d.ts +50 -0
  97. package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
  98. package/dist/genesis/kmsAuthentication.js +49 -0
  99. package/dist/genesis/kmsAuthentication.js.map +1 -0
  100. package/dist/keyring/kdf.d.ts +16 -20
  101. package/dist/keyring/kdf.d.ts.map +1 -1
  102. package/dist/keyring/kdf.js +2 -2
  103. package/dist/keyring/kdf.js.map +1 -1
  104. package/dist/keyring/unlockSpace.d.ts +8 -30
  105. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  106. package/dist/keyring/unlockSpace.js +8 -31
  107. package/dist/keyring/unlockSpace.js.map +1 -1
  108. package/dist/keys/clientKeyRecord.d.ts +2 -1
  109. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  110. package/dist/keys/clientKeyRecord.js +28 -11
  111. package/dist/keys/clientKeyRecord.js.map +1 -1
  112. package/dist/keys/index.d.ts +19 -5
  113. package/dist/keys/index.d.ts.map +1 -1
  114. package/dist/keys/index.js +17 -3
  115. package/dist/keys/index.js.map +1 -1
  116. package/dist/keys/rosterLogStore.d.ts +3 -1
  117. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  118. package/dist/keys/rosterLogStore.js +20 -8
  119. package/dist/keys/rosterLogStore.js.map +1 -1
  120. package/dist/keys/spaceEpochs.d.ts +92 -3
  121. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  122. package/dist/keys/spaceEpochs.js +110 -4
  123. package/dist/keys/spaceEpochs.js.map +1 -1
  124. package/dist/keys/userKeyCascade.d.ts +8 -5
  125. package/dist/keys/userKeyCascade.d.ts.map +1 -1
  126. package/dist/keys/userKeyCascade.js +7 -6
  127. package/dist/keys/userKeyCascade.js.map +1 -1
  128. package/dist/keys/userKeyRoster.d.ts +68 -4
  129. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  130. package/dist/keys/userKeyRoster.js +146 -33
  131. package/dist/keys/userKeyRoster.js.map +1 -1
  132. package/dist/keys/userKeyRosterCascade.d.ts +110 -10
  133. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  134. package/dist/keys/userKeyRosterCascade.js +184 -40
  135. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  136. package/dist/recovery/continuation.d.ts +255 -0
  137. package/dist/recovery/continuation.d.ts.map +1 -0
  138. package/dist/recovery/continuation.js +471 -0
  139. package/dist/recovery/continuation.js.map +1 -0
  140. package/dist/recovery/index.d.ts +12 -8
  141. package/dist/recovery/index.d.ts.map +1 -1
  142. package/dist/recovery/index.js +11 -7
  143. package/dist/recovery/index.js.map +1 -1
  144. package/dist/recovery/recoveryDelegation.d.ts +40 -120
  145. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  146. package/dist/recovery/recoveryDelegation.js +36 -268
  147. package/dist/recovery/recoveryDelegation.js.map +1 -1
  148. package/dist/recovery/recoveryWebvh.d.ts +42 -83
  149. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  150. package/dist/recovery/recoveryWebvh.js +44 -380
  151. package/dist/recovery/recoveryWebvh.js.map +1 -1
  152. package/dist/request/appKey.d.ts +35 -1
  153. package/dist/request/appKey.d.ts.map +1 -1
  154. package/dist/request/appKey.js +29 -10
  155. package/dist/request/appKey.js.map +1 -1
  156. package/dist/request/classify.d.ts +3 -14
  157. package/dist/request/classify.d.ts.map +1 -1
  158. package/dist/request/classify.js +19 -40
  159. package/dist/request/classify.js.map +1 -1
  160. package/dist/request/index.d.ts +1 -0
  161. package/dist/request/index.d.ts.map +1 -1
  162. package/dist/request/index.js +1 -0
  163. package/dist/request/index.js.map +1 -1
  164. package/dist/request/onboarding.d.ts.map +1 -1
  165. package/dist/request/onboarding.js +19 -27
  166. package/dist/request/onboarding.js.map +1 -1
  167. package/dist/request/parse.d.ts +5 -3
  168. package/dist/request/parse.d.ts.map +1 -1
  169. package/dist/request/parse.js +7 -6
  170. package/dist/request/parse.js.map +1 -1
  171. package/dist/request/processRequest.d.ts.map +1 -1
  172. package/dist/request/processRequest.js +2 -1
  173. package/dist/request/processRequest.js.map +1 -1
  174. package/dist/request/queryPredicates.d.ts +98 -0
  175. package/dist/request/queryPredicates.d.ts.map +1 -0
  176. package/dist/request/queryPredicates.js +107 -0
  177. package/dist/request/queryPredicates.js.map +1 -0
  178. package/dist/resourceLog/document.d.ts +39 -0
  179. package/dist/resourceLog/document.d.ts.map +1 -1
  180. package/dist/resourceLog/document.js +41 -0
  181. package/dist/resourceLog/document.js.map +1 -1
  182. package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
  183. package/dist/resourceLog/ladderRungs.js +3 -2
  184. package/dist/resourceLog/ladderRungs.js.map +1 -1
  185. package/dist/sync/contactsConflict.d.ts.map +1 -1
  186. package/dist/sync/contactsConflict.js +8 -2
  187. package/dist/sync/contactsConflict.js.map +1 -1
  188. package/dist/sync/engine.d.ts +38 -23
  189. package/dist/sync/engine.d.ts.map +1 -1
  190. package/dist/sync/engine.js +36 -5
  191. package/dist/sync/engine.js.map +1 -1
  192. package/dist/sync/index.d.ts +9 -12
  193. package/dist/sync/index.d.ts.map +1 -1
  194. package/dist/sync/index.js +8 -11
  195. package/dist/sync/index.js.map +1 -1
  196. package/dist/sync/push.d.ts.map +1 -1
  197. package/dist/sync/push.js +1 -2
  198. package/dist/sync/push.js.map +1 -1
  199. package/dist/sync/remint.d.ts +0 -31
  200. package/dist/sync/remint.d.ts.map +1 -1
  201. package/dist/sync/remint.js +32 -1
  202. package/dist/sync/remint.js.map +1 -1
  203. package/dist/sync/types.d.ts +4 -41
  204. package/dist/sync/types.d.ts.map +1 -1
  205. package/dist/sync/types.js +4 -47
  206. package/dist/sync/types.js.map +1 -1
  207. package/dist/unlock/index.d.ts +1 -1
  208. package/dist/unlock/index.d.ts.map +1 -1
  209. package/dist/unlock/index.js +1 -1
  210. package/dist/unlock/index.js.map +1 -1
  211. package/dist/unlock/retire.d.ts +16 -56
  212. package/dist/unlock/retire.d.ts.map +1 -1
  213. package/dist/unlock/retire.js +7 -76
  214. package/dist/unlock/retire.js.map +1 -1
  215. package/dist/unlock/standingWebvh.d.ts +20 -40
  216. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  217. package/dist/unlock/standingWebvh.js +35 -76
  218. package/dist/unlock/standingWebvh.js.map +1 -1
  219. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  220. package/dist/unlock/unlockRecord.js +69 -44
  221. package/dist/unlock/unlockRecord.js.map +1 -1
  222. package/dist/webvh/accountEntry.d.ts +63 -7
  223. package/dist/webvh/accountEntry.d.ts.map +1 -1
  224. package/dist/webvh/accountEntry.js +110 -19
  225. package/dist/webvh/accountEntry.js.map +1 -1
  226. package/dist/webvh/delegatedLogStore.d.ts +18 -12
  227. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  228. package/dist/webvh/delegatedLogStore.js +32 -11
  229. package/dist/webvh/delegatedLogStore.js.map +1 -1
  230. package/dist/webvh/didWebvh.d.ts +39 -23
  231. package/dist/webvh/didWebvh.d.ts.map +1 -1
  232. package/dist/webvh/didWebvh.js +63 -45
  233. package/dist/webvh/didWebvh.js.map +1 -1
  234. package/dist/webvh/enrollClient.d.ts.map +1 -1
  235. package/dist/webvh/enrollClient.js +19 -23
  236. package/dist/webvh/enrollClient.js.map +1 -1
  237. package/dist/webvh/index.d.ts +11 -7
  238. package/dist/webvh/index.d.ts.map +1 -1
  239. package/dist/webvh/index.js +9 -6
  240. package/dist/webvh/index.js.map +1 -1
  241. package/dist/webvh/listClients.d.ts.map +1 -1
  242. package/dist/webvh/listClients.js +102 -65
  243. package/dist/webvh/listClients.js.map +1 -1
  244. package/dist/webvh/mergeMethods.d.ts +84 -0
  245. package/dist/webvh/mergeMethods.d.ts.map +1 -0
  246. package/dist/webvh/mergeMethods.js +46 -0
  247. package/dist/webvh/mergeMethods.js.map +1 -0
  248. package/dist/webvh/revokeClient.d.ts +12 -2
  249. package/dist/webvh/revokeClient.d.ts.map +1 -1
  250. package/dist/webvh/revokeClient.js +126 -48
  251. package/dist/webvh/revokeClient.js.map +1 -1
  252. package/dist/webvh/verifyLog.d.ts +21 -0
  253. package/dist/webvh/verifyLog.d.ts.map +1 -1
  254. package/dist/webvh/verifyLog.js +36 -14
  255. package/dist/webvh/verifyLog.js.map +1 -1
  256. package/package.json +11 -11
@@ -255,6 +255,24 @@ async function openMember({ member, keyAgreementKey, keyResolver }) {
255
255
  });
256
256
  return cipher.decrypt({ envelope: member.wrapped });
257
257
  }
258
+ /**
259
+ * One member's plaintext out of a settled concurrent open: the value, or the
260
+ * open's own failure rethrown. The members open together, so their failures
261
+ * are claimed in the order the checks below them run rather than in the order
262
+ * the requests happened to fail.
263
+ *
264
+ * @param settled {PromiseSettledResult<unknown>}
265
+ * @returns {unknown} the member plaintext
266
+ */
267
+ function openedMember(settled) {
268
+ if (settled === undefined) {
269
+ return undefined;
270
+ }
271
+ if (settled.status === 'rejected') {
272
+ throw settled.reason;
273
+ }
274
+ return settled.value;
275
+ }
258
276
  /**
259
277
  * Wraps an unlock record at bind time: the shell (controller, optional
260
278
  * email, pointer, timestamp) sealed to the credential's unlock KAK, the
@@ -295,32 +313,36 @@ export async function wrapUnlockRecord({ controller, email, pointer, delegation,
295
313
  pointer,
296
314
  ...(ladderSeed ? { ladderSeed } : {})
297
315
  });
298
- const shell = await sealMember({
299
- data: {
300
- controller,
301
- ...(email ? { email } : {}),
302
- pointer: {
303
- ...(pointer.did ? { did: pointer.did } : {}),
304
- spaceId: pointer.spaceId,
305
- host: pointer.host
316
+ // The four members seal independently, so they seal concurrently: nothing
317
+ // below reads one member's result to build another's.
318
+ const [shell, bridge, sealedDelegatedClients, ladder] = await Promise.all([
319
+ sealMember({
320
+ data: {
321
+ controller,
322
+ ...(email ? { email } : {}),
323
+ pointer: {
324
+ ...(pointer.did ? { did: pointer.did } : {}),
325
+ spaceId: pointer.spaceId,
326
+ host: pointer.host
327
+ },
328
+ createdAt: recordCreatedAtStamp({ createdAt })
306
329
  },
307
- createdAt: recordCreatedAtStamp({ createdAt })
308
- },
309
- keyAgreementKey
310
- });
311
- const bridge = await sealMember({ data: { delegation }, keyAgreementKey });
312
- const sealedDelegatedClients = delegatedClients
313
- ? await sealMember({
314
- data: { delegation: delegatedClients },
315
- keyAgreementKey
316
- })
317
- : undefined;
318
- const ladder = ladderSeed
319
- ? await sealMember({
320
- data: { ladderSeed: base64urlnopad.encode(ladderSeed) },
321
330
  keyAgreementKey
322
- })
323
- : undefined;
331
+ }),
332
+ sealMember({ data: { delegation }, keyAgreementKey }),
333
+ delegatedClients
334
+ ? sealMember({
335
+ data: { delegation: delegatedClients },
336
+ keyAgreementKey
337
+ })
338
+ : undefined,
339
+ ladderSeed
340
+ ? sealMember({
341
+ data: { ladderSeed: base64urlnopad.encode(ladderSeed) },
342
+ keyAgreementKey
343
+ })
344
+ : undefined
345
+ ]);
324
346
  return (await signRecordFrame({
325
347
  version: KEYRING_RECORD_VERSION,
326
348
  encryption: shell.encryption,
@@ -408,11 +430,26 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
408
430
  });
409
431
  proofState = 'verified';
410
432
  }
411
- const shell = (await openMember({
412
- member: { encryption, wrapped },
413
- keyAgreementKey,
414
- keyResolver
415
- }));
433
+ // The members open independently, so they open concurrently -- started
434
+ // only here, after the proof state above is settled, so nothing is
435
+ // decrypted before the record's authenticity is checked. The checks below
436
+ // stay in their original order over the joined results, so which malformed
437
+ // member's refusal a caller sees is unchanged.
438
+ const [shellOpen, bridgeOpen, delegatedClientsOpen, ladderOpen] = await Promise.allSettled([
439
+ openMember({
440
+ member: { encryption, wrapped },
441
+ keyAgreementKey,
442
+ keyResolver
443
+ }),
444
+ openMember({ member: bridge, keyAgreementKey, keyResolver }),
445
+ delegatedClients
446
+ ? openMember({ member: delegatedClients, keyAgreementKey, keyResolver })
447
+ : undefined,
448
+ ladder
449
+ ? openMember({ member: ladder, keyAgreementKey, keyResolver })
450
+ : undefined
451
+ ]);
452
+ const shell = openedMember(shellOpen);
416
453
  if (typeof shell.controller !== 'string' || !shell.controller) {
417
454
  throw new Error('Unlock record is missing a controller.');
418
455
  }
@@ -424,22 +461,14 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
424
461
  value: shell.createdAt,
425
462
  label: 'Unlock'
426
463
  });
427
- const bridgePlaintext = (await openMember({
428
- member: bridge,
429
- keyAgreementKey,
430
- keyResolver
431
- }));
464
+ const bridgePlaintext = openedMember(bridgeOpen);
432
465
  if (bridgePlaintext.delegation === null ||
433
466
  typeof bridgePlaintext.delegation !== 'object') {
434
467
  throw new Error('Unlock record is missing its did.jsonl delegation.');
435
468
  }
436
469
  let delegatedClientsDelegation;
437
470
  if (delegatedClients) {
438
- const plaintext = (await openMember({
439
- member: delegatedClients,
440
- keyAgreementKey,
441
- keyResolver
442
- }));
471
+ const plaintext = openedMember(delegatedClientsOpen);
443
472
  if (plaintext.delegation === null ||
444
473
  typeof plaintext.delegation !== 'object') {
445
474
  throw new Error('Unlock record has a malformed delegatedClients member.');
@@ -448,11 +477,7 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
448
477
  }
449
478
  let ladderSeed;
450
479
  if (ladder) {
451
- const ladderPlaintext = (await openMember({
452
- member: ladder,
453
- keyAgreementKey,
454
- keyResolver
455
- }));
480
+ const ladderPlaintext = openedMember(ladderOpen);
456
481
  if (typeof ladderPlaintext.ladderSeed !== 'string') {
457
482
  throw new Error('Unlock record has a malformed ladder member.');
458
483
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unlockRecord.js","sourceRoot":"","sources":["../../src/unlock/unlockRecord.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unlockRecord.js","sourceRoot":"","sources":["../../src/unlock/unlockRecord.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAO9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;AAM7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,8BAA8B,CAAA;AAE7D;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAuDD;;;;;GAKG;AACH,SAAS,eAAe,CAAC,EACvB,UAAU,EACV,OAAO,EACP,UAAU,EAKX;IACC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAC7B,IAAI,CAAC,SAAS,CAAC;QACb,sBAAsB;QACtB,UAAU;QACV,OAAO,CAAC,GAAG,IAAI,EAAE;QACjB,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,IAAI;QACZ,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;KACpD,CAAC,CACH,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,aAAa,EACb,UAAU,EACV,OAAO,EACP,UAAU,EAMX;IACC,OAAO,cAAc,CAAC,MAAM,CAC1B,IAAI,CACF,MAAM,EACN,aAAa,EACb,eAAe,CAAC;QACd,UAAU;QACV,OAAO;QACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CACH,CACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,MAAM,EAAuB;IACjE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAA0B,CAAA;IAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,kBAAkB,CAC1B,gEAAgE;YAC9D,0CAA0C,CAC7C,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,MAAM,EAGP;IACC,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,CACtD,CAAA;IACD,kEAAkE;IAClE,uEAAuE;IACvE,sEAAsE;IACtE,yEAAyE;IACzE,0CAA0C;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,iEAAiE;YAC/D,0DAA0D,CAC7D,CAAA;IACH,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;SAC5B,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC;SACxC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;SACzE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,MAAM,EACN,wBAAwB,EAIzB;IACC,MAAM,SAAS,GACb,YAAY,CAAC,wBAAwB,CAAC,IAAI,wBAAwB,CAAA;IACpE,OAAO,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,IAAI,EAIL;IACC,MAAM,MAAM,GAAG,KAA2C,CAAA;IAC1D,IACE,MAAM,KAAK,IAAI;QACf,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,CAAC,UAAU,KAAK,IAAI;QAC1B,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,MAAM,CAAC,OAAO,KAAK,IAAI,EACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,uBAAuB,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,MAA4B,CAAA;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,UAAU,CAAC,EACxB,IAAI,EACJ,eAAe,EAIhB;IACC,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACxC,IAAI,EAAE,IAA+D;KACtE,CAAC,CAAA;IACF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,UAAU,CAAC,EACxB,MAAM,EACN,eAAe,EACf,WAAW,EAKZ;IACC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,eAAe;QACf,WAAW;QACX,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAgB,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CACnB,OAAkD;IAElD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,OAAO,CAAC,MAAM,CAAA;IACtB,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAA;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,UAAU,EACV,KAAK,EACL,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,MAAM,EACN,aAAa,EACb,SAAS,EAYV;IACC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,CAAC;QACnC,aAAa;QACb,UAAU;QACV,OAAO;QACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CAAA;IACF,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxE,UAAU,CAAC;YACT,IAAI,EAAE;gBACJ,UAAU;gBACV,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,OAAO,EAAE;oBACP,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;gBACD,SAAS,EAAE,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;aAC/C;YACD,eAAe;SAChB,CAAC;QACF,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,CAAC;QACrD,gBAAgB;YACd,CAAC,CAAC,UAAU,CAAC;gBACT,IAAI,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;gBACtC,eAAe;aAChB,CAAC;YACJ,CAAC,CAAC,SAAS;QACb,UAAU;YACR,CAAC,CAAC,UAAU,CAAC;gBACT,IAAI,EAAE,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBACvD,eAAe;aAChB,CAAC;YACJ,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;IACF,OAAO,CAAC,MAAM,eAAe,CAAC;QAC5B,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM;QACN,OAAO,EAAE;YACP,OAAO;YACP,MAAM;YACN,GAAG,CAAC,sBAAsB;gBACxB,CAAC,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B;KACF,CAAC,CAAuB,CAAA;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,MAAM,EACN,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,aAAa,EAOd;IAIC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC;QACtD,MAAM;QACN,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/C,MAAM,EACJ,MAAM,EAAE,SAAS,EACjB,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,SAAS,EAClB,GAAG,MAIH,CAAA;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,4CAA4C,CAC/C,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACtE,MAAM,gBAAgB,GACpB,mBAAmB,KAAK,SAAS;QAC/B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iBAAiB,CAAC;YAChB,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAA;IACR,MAAM,MAAM,GACV,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE7D,2EAA2E;IAC3E,sBAAsB;IACtB,MAAM,kBAAkB,GAAG,KAAM,CAAC,kBAAkB,CAAA;IACpD,MAAM,YAAY,GAAG,uBAAuB,CAAC;QAC3C,kBAAkB;QAClB,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IACF,IAAI,UAAU,GAA2B;QACvC,OAAO,EAAE,EAAE,kBAAkB,EAAE,YAAY,EAAE;KAC9C,CAAA;IACD,IAAI,YAAY,KAAK,oBAAoB,EAAE,CAAC;QAC1C,MAAM,iBAAiB,CAAC;YACtB,MAAM;YACN,oBAAoB,EAAE,oBAAoB;YAC1C,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,UAAU,GAAG,UAAU,CAAA;IACzB,CAAC;IAED,uEAAuE;IACvE,mEAAmE;IACnE,0EAA0E;IAC1E,2EAA2E;IAC3E,+CAA+C;IAC/C,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,CAAC,GAC7D,MAAM,OAAO,CAAC,UAAU,CAAC;QACvB,UAAU,CAAC;YACT,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;YAC/B,eAAe;YACf,WAAW;SACZ,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;QAC5D,gBAAgB;YACd,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;YACxE,CAAC,CAAC,SAAS;QACb,MAAM;YACJ,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;YAC9D,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;IAEJ,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAKnC,CAAA;IACD,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,SAAS,GAAG,oBAAoB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC,SAAS;QACtB,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAA6B,CAAA;IAC5E,IACE,eAAe,CAAC,UAAU,KAAK,IAAI;QACnC,OAAO,eAAe,CAAC,UAAU,KAAK,QAAQ,EAC9C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,0BAA6C,CAAA;IACjD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,YAAY,CAAC,oBAAoB,CAElD,CAAA;QACD,IACE,SAAS,CAAC,UAAU,KAAK,IAAI;YAC7B,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EACxC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QACD,0BAA0B,GAAG,SAAS,CAAC,UAAmB,CAAA;IAC5D,CAAC;IAED,IAAI,UAAkC,CAAA;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAE9C,CAAA;QACD,IAAI,OAAO,eAAe,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,CAAC;YACH,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CACtB,MAAM,EACN,aAAa,EACb,eAAe,CAAC;QACd,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO;QACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC,CACH,CAAA;IACD,IAAI,SAA4B,CAAA;IAChC,IAAI,CAAC;QACH,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,0EAA0E;IAC1E,oDAAoD;IACpD,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,kBAAkB,CAC1B,iEAAiE;YAC/D,8CAA8C,CACjD,CAAA;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK;gBAChD,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;gBACxB,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;YACP,UAAU,EAAE,eAAe,CAAC,UAAmB;YAC/C,GAAG,CAAC,0BAA0B;gBAC5B,CAAC,CAAC,EAAE,gBAAgB,EAAE,0BAA0B,EAAE;gBAClD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,SAAS;SACV;QACD,UAAU;KACX,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,EAClD,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,MAAM,EAOP;IACC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;QAC/C,MAAM;QACN,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/C,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,GAChE,MAA0D,CAAA;IAC5D,MAAM,MAAM,GACV,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;IAC1E,MAAM,sBAAsB,GAAG,gBAAgB;QAC7C,CAAC,CAAC,MAAM,UAAU,CAAC;YACf,IAAI,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;YACtC,eAAe;SAChB,CAAC;QACJ,CAAC,CAAC,mBAAmB,KAAK,SAAS;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC;gBAChB,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,kBAAkB;aACzB,CAAC,CAAA;IACR,OAAO,CAAC,MAAM,eAAe,CAAC;QAC5B,OAAO,EAAE,sBAAsB;QAC/B,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO,EAAE;YACP,OAAO;YACP,MAAM;YACN,GAAG,CAAC,sBAAsB;gBACxB,CAAC,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B;KACF,CAAC,CAAuB,CAAA;AAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { UpdateDIDInterface, UpdateDIDResult } from '@interop/did-method-webvh';
1
+ import type { DIDDoc, DIDLog, UpdateDIDInterface, UpdateDIDResult } from '@interop/did-method-webvh';
2
2
  import type { ResourceLogPinStore } from '@interop/vh-resource-log';
3
3
  import type { ClientWebvhUpdateKeys, PublishedWebvhLog, WebvhIdStore } from './didWebvh.js';
4
4
  import type { LadderRung, LadderRungState } from '../clientAnnex/ladder.js';
@@ -6,8 +6,9 @@ import type { LadderRung, LadderRungState } from '../clientAnnex/ladder.js';
6
6
  * Who signs an account-log entry. The client arm carries an enrolled client's
7
7
  * own did:webvh update-key seeds; the ladder arm carries a standing unlock
8
8
  * credential's ladder seed, whose rungs sign through the credential's bridge
9
- * delegation. There is no third arm and no absence: every ceremony body that
10
- * extends the account log states which one it acts as.
9
+ * delegation. A ceremony body accepts no other arm and no absence: every one
10
+ * that extends the account log states which of the two it acts as. The
11
+ * seam's own committed-key arm is {@link AccountEntrySigner}'s.
11
12
  */
12
13
  export type AccountLogSigner = {
13
14
  kind: 'client';
@@ -16,6 +17,16 @@ export type AccountLogSigner = {
16
17
  kind: 'ladder';
17
18
  ladderSeed: Uint8Array;
18
19
  };
20
+ /**
21
+ * Who may sign through {@link signAccountEntry} itself: the two ceremony arms
22
+ * plus the committed-key arm, a bare update-key seed whose key the published
23
+ * log commits or already authorizes. Kept apart from {@link AccountLogSigner}
24
+ * so no ceremony body widens what it accepts by taking the seam's type.
25
+ */
26
+ export type AccountEntrySigner = AccountLogSigner | {
27
+ kind: 'committed';
28
+ updateSeed: Uint8Array;
29
+ };
19
30
  /**
20
31
  * The store an account-log entry is read and published through: the public
21
32
  * log read and the `did.jsonl` PUT. A subset of {@link WebvhIdStore}, so both
@@ -69,6 +80,22 @@ export type AccountEntryOutcome = {
69
80
  updated?: UpdateDIDResult;
70
81
  etag?: string;
71
82
  };
83
+ /**
84
+ * The head an entry leaves standing, assembled from what the entry's own
85
+ * `updateDID` already resolved plus the publish's validator when an entry was
86
+ * published, and the read the entry was built on verbatim when the build
87
+ * declined (the head is then provably unchanged by this call). No second read
88
+ * and no second resolve: the update-key parameters are the ones the entry
89
+ * itself stated, so a caller building its next entry on this head signs
90
+ * against exactly what it published.
91
+ *
92
+ * @param options {object}
93
+ * @param options.outcome {AccountEntryOutcome}
94
+ * @returns {PublishedWebvhLog}
95
+ */
96
+ export declare function accountEntryHead({ outcome }: {
97
+ outcome: AccountEntryOutcome;
98
+ }): PublishedWebvhLog;
72
99
  /**
73
100
  * Signs and publishes one account-log entry, preamble and postamble
74
101
  * included -- the pinned read, the signer arm's own preconditions, the
@@ -87,7 +114,7 @@ export type AccountEntryOutcome = {
87
114
  * @param options {object}
88
115
  * @param options.idStore {AccountLogStore} the log read and the
89
116
  * `did.jsonl` PUT
90
- * @param options.signer {AccountLogSigner} who signs this entry
117
+ * @param options.signer {AccountEntrySigner} who signs this entry
91
118
  * @param options.build {function}
92
119
  * `({ published, rung, state }) => AccountEntryFields | undefined` -- the
93
120
  * entry's own members, or `undefined` to decline
@@ -111,8 +138,12 @@ export type AccountEntryOutcome = {
111
138
  * @param [options.verb] {string} what the caller is doing, for the client
112
139
  * arm's pending-rotation refusal message (e.g. `'revoking a client'`)
113
140
  * @param [options.logOnly] {boolean} publish `did.jsonl` without its
114
- * `did:web` projection. Implied by the ladder arm, whose bridge reaches
115
- * `did.jsonl` alone
141
+ * `did:web` projection. Defaults per arm: `true` on the ladder arm, whose
142
+ * bridge reaches `did.jsonl` alone, and `false` on the client arm, which
143
+ * invokes as the controller. A ladder-signed entry written through a
144
+ * root-invoking store (the establishment's stage 3) passes `false` to
145
+ * republish the projection beside the entry; the committed arm states it,
146
+ * since which store it signs through is the caller's
116
147
  * @param [options.beforePublish] {function} `({ updated }) => Promise<void>`
117
148
  * -- run on the built entry, AFTER `updateDID` and BEFORE the conditional
118
149
  * publish. The seam exists for the `did:web` projection: a ladder-signed
@@ -125,7 +156,7 @@ export type AccountEntryOutcome = {
125
156
  */
126
157
  export declare function signAccountEntry({ idStore, signer, build, skip, published: alreadyRead, expectedDid, pinStore, logId, missingMessage, verb, logOnly, beforePublish }: {
127
158
  idStore: AccountLogStore;
128
- signer: AccountLogSigner;
159
+ signer: AccountEntrySigner;
129
160
  build: (context: {
130
161
  published: PublishedWebvhLog;
131
162
  rung?: LadderRung;
@@ -143,4 +174,29 @@ export declare function signAccountEntry({ idStore, signer, build, skip, publish
143
174
  updated: UpdateDIDResult;
144
175
  }) => Promise<void>;
145
176
  }): Promise<AccountEntryOutcome>;
177
+ /**
178
+ * The head a ceremony concludes on when its entry turns out to be
179
+ * unnecessary -- the client is already enrolled, the removal already landed.
180
+ * There is nothing to publish either way; what differs is the `did:web`
181
+ * projection. The client arm invokes as the account's controller, so it
182
+ * republishes the projection and heals a lag a torn earlier run of the same
183
+ * ceremony left behind. The ladder arm's bridge reaches `did.jsonl` alone, so
184
+ * it takes the read verbatim and leaves the projection to
185
+ * `ensureDidWebProjection`.
186
+ *
187
+ * @param options {object}
188
+ * @param options.idStore {WebvhIdStore}
189
+ * @param options.signer {AccountLogSigner} the arm the ceremony acts as
190
+ * @param options.published {PublishedWebvhLog} the read the build stood on
191
+ * @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog }>}
192
+ */
193
+ export declare function concludeUnchangedAccountEntry({ idStore, signer, published }: {
194
+ idStore: WebvhIdStore;
195
+ signer: AccountLogSigner;
196
+ published: PublishedWebvhLog;
197
+ }): Promise<{
198
+ did: string;
199
+ doc: DIDDoc;
200
+ log: DIDLog;
201
+ }>;
146
202
  //# sourceMappingURL=accountEntry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountEntry.d.ts","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountEntry.d.ts","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@
6
6
  * extends `did.jsonl` writes through, so a ceremony body describes its
7
7
  * document delta once and the signing arm is a parameter.
8
8
  *
9
- * Two arms, discriminated by {@link AccountLogSigner}:
9
+ * Two arms, discriminated by {@link AccountLogSigner}, are what a ceremony
10
+ * body accepts:
10
11
  *
11
12
  * - **client** -- an enrolled client's did:webvh update keys. The active key
12
13
  * is derived from the seed, the published log must authorize it, the
@@ -21,15 +22,27 @@
21
22
  * publishes `did.jsonl` alone -- the bridge's whole reach. The projection is
22
23
  * the ceremony's own pre-entry PUT, or the next visit's ensure.
23
24
  *
25
+ * A third arm is the seam's alone ({@link AccountEntrySigner}):
26
+ *
27
+ * - **committed** -- one bare update-key seed whose key stands committed in
28
+ * `nextKeyHashes` (or already revealed in `updateKeys`), revealing itself:
29
+ * the prerotation reveal with no attribution in front of it. The recovery
30
+ * continuation's two entries are this arm -- the spent code's rung 0 signs
31
+ * the reveal-and-commit entry, and the successor key the reveal committed
32
+ * signs the add-and-retire entry. The reveal union and the carry-over
33
+ * union are the ladder arm's. No ceremony body takes this arm as a
34
+ * parameter, since a committed key carries no ceremony authority of its
35
+ * own beyond the continuation that reveals it.
36
+ *
24
37
  * Four of those steps are load-bearing conventions rather than plumbing:
25
38
  * omitting the reveal union publishes a log whose next entry cannot resolve,
26
39
  * omitting the carry-over hash switches prerotation off, omitting the
27
40
  * carry-over precondition publishes an entry no resolver accepts, and omitting
28
41
  * the pin advance leaves a pin behind an entry this client itself published.
29
42
  *
30
- * One property both arms rest on: an entry keeps its own signer. The ladder
31
- * arm unions the acting rung back into `updateKeys` after the build runs, so
32
- * no entry can remove the key that signed it. A ceremony that must retire a
43
+ * One property every arm rests on: an entry keeps its own signer. The ladder
44
+ * and committed arms union the acting key back into `updateKeys` after the
45
+ * build runs, so no entry can remove the key that signed it. A ceremony that must retire a
33
46
  * rung therefore needs a second entry, signed by the successor (the
34
47
  * two-entry passphrase change, and the recovery spend's reveal-then-retire
35
48
  * pair). The same rule is why a rung is not consumed per ceremony: rung
@@ -44,7 +57,7 @@
44
57
  */
45
58
  import { updateDID } from '@interop/did-method-webvh';
46
59
  import { deriveNextKeyHash } from '@interop/did-method-webvh';
47
- import { assertCarryOverCommitments, assertPublishedLogDid, pinOfLog, putLogResource, readPublishedLogOrThrow, updateKeyMultibase, updateKeySigner } from './didWebvh.js';
60
+ import { advanceLogPin, assertCarryOverCommitments, assertPublishedLogDid, concludeWithPublishedLog, putLogResource, readPublishedLogOrThrow, updateKeyMultibase, updateKeySigner } from './didWebvh.js';
48
61
  import { putDidWebProjection } from './didWebProjection.js';
49
62
  // The one deliberate dependency on the annex subpath, pinned as an exception
50
63
  // in the lint rule (beside `unlock/standingWebvh.ts` and
@@ -52,6 +65,35 @@ import { putDidWebProjection } from './didWebProjection.js';
52
65
  // the log through the shared attribution helper, and touches no annex log
53
66
  // machinery.
54
67
  import { attributeLadderRung } from '../clientAnnex/ladder.js';
68
+ /**
69
+ * The head an entry leaves standing, assembled from what the entry's own
70
+ * `updateDID` already resolved plus the publish's validator when an entry was
71
+ * published, and the read the entry was built on verbatim when the build
72
+ * declined (the head is then provably unchanged by this call). No second read
73
+ * and no second resolve: the update-key parameters are the ones the entry
74
+ * itself stated, so a caller building its next entry on this head signs
75
+ * against exactly what it published.
76
+ *
77
+ * @param options {object}
78
+ * @param options.outcome {AccountEntryOutcome}
79
+ * @returns {PublishedWebvhLog}
80
+ */
81
+ export function accountEntryHead({ outcome }) {
82
+ const { updated } = outcome;
83
+ if (!updated) {
84
+ return outcome.published;
85
+ }
86
+ return {
87
+ log: updated.log,
88
+ did: updated.did,
89
+ // Detached from the entry's own `state`, as every other producer of this
90
+ // type is, so a consumer editing the document cannot edit the log.
91
+ doc: structuredClone(updated.doc),
92
+ updateKeys: updated.meta.updateKeys,
93
+ nextKeyHashes: updated.meta.nextKeyHashes,
94
+ ...(outcome.etag !== undefined ? { etag: outcome.etag } : {})
95
+ };
96
+ }
55
97
  /**
56
98
  * Signs and publishes one account-log entry, preamble and postamble
57
99
  * included -- the pinned read, the signer arm's own preconditions, the
@@ -70,7 +112,7 @@ import { attributeLadderRung } from '../clientAnnex/ladder.js';
70
112
  * @param options {object}
71
113
  * @param options.idStore {AccountLogStore} the log read and the
72
114
  * `did.jsonl` PUT
73
- * @param options.signer {AccountLogSigner} who signs this entry
115
+ * @param options.signer {AccountEntrySigner} who signs this entry
74
116
  * @param options.build {function}
75
117
  * `({ published, rung, state }) => AccountEntryFields | undefined` -- the
76
118
  * entry's own members, or `undefined` to decline
@@ -94,8 +136,12 @@ import { attributeLadderRung } from '../clientAnnex/ladder.js';
94
136
  * @param [options.verb] {string} what the caller is doing, for the client
95
137
  * arm's pending-rotation refusal message (e.g. `'revoking a client'`)
96
138
  * @param [options.logOnly] {boolean} publish `did.jsonl` without its
97
- * `did:web` projection. Implied by the ladder arm, whose bridge reaches
98
- * `did.jsonl` alone
139
+ * `did:web` projection. Defaults per arm: `true` on the ladder arm, whose
140
+ * bridge reaches `did.jsonl` alone, and `false` on the client arm, which
141
+ * invokes as the controller. A ladder-signed entry written through a
142
+ * root-invoking store (the establishment's stage 3) passes `false` to
143
+ * republish the projection beside the entry; the committed arm states it,
144
+ * since which store it signs through is the caller's
99
145
  * @param [options.beforePublish] {function} `({ updated }) => Promise<void>`
100
146
  * -- run on the built entry, AFTER `updateDID` and BEFORE the conditional
101
147
  * publish. The seam exists for the `did:web` projection: a ladder-signed
@@ -106,7 +152,7 @@ import { attributeLadderRung } from '../clientAnnex/ladder.js';
106
152
  * and it must be idempotent
107
153
  * @returns {Promise<AccountEntryOutcome>}
108
154
  */
109
- export async function signAccountEntry({ idStore, signer, build, skip, published: alreadyRead, expectedDid, pinStore, logId, missingMessage, verb = 'extending the account log', logOnly = false, beforePublish }) {
155
+ export async function signAccountEntry({ idStore, signer, build, skip, published: alreadyRead, expectedDid, pinStore, logId, missingMessage, verb = 'extending the account log', logOnly = signer.kind === 'ladder', beforePublish }) {
110
156
  // THE PREAMBLE: each attempt reads for itself unless the caller threaded a
111
157
  // read in, so the continuity check runs on the read the compare-and-swap
112
158
  // publish is conditioned on rather than only on an orchestrator's pre-read.
@@ -165,14 +211,36 @@ export async function signAccountEntry({ idStore, signer, build, skip, published
165
211
  signedHashes = [...new Set([...statedHashes, ...commitHashes])];
166
212
  }
167
213
  else {
168
- entrySigner = await updateKeySigner({ seed: attributed.rung.seed });
169
- // The acting rung reveals itself in the entry it signs (its hash stands
170
- // committed, or the rung is already revealed), and its own hash is kept
214
+ // The revealing key: the attributed rung on the ladder arm, the bare seed's
215
+ // key on the committed arm, which must stand committed or already
216
+ // revealed -- the one precondition the ladder arm's attribution already
217
+ // proved.
218
+ let revealing;
219
+ if (signer.kind === 'ladder') {
220
+ revealing = {
221
+ seed: attributed.rung.seed,
222
+ keyMultibase: attributed.rung.keyMultibase,
223
+ hash: rungHash
224
+ };
225
+ }
226
+ else {
227
+ const keyMultibase = await updateKeyMultibase({ seed: signer.updateSeed });
228
+ const hash = await deriveNextKeyHash(keyMultibase);
229
+ if (!published.updateKeys.includes(keyMultibase) &&
230
+ !published.nextKeyHashes.includes(hash)) {
231
+ throw new Error('did:webvh: the published log neither authorizes this update key ' +
232
+ `nor commits its hash; nothing licenses it to sign while ${verb}.`);
233
+ }
234
+ revealing = { seed: signer.updateSeed, keyMultibase, hash };
235
+ }
236
+ entrySigner = await updateKeySigner({ seed: revealing.seed });
237
+ // The acting key reveals itself in the entry it signs (its hash stands
238
+ // committed, or the key is already revealed), and its own hash is kept
171
239
  // committed so the carry-over convention holds for the next entry.
172
- signedUpdateKeys = [
173
- ...new Set([...statedKeys, attributed.rung.keyMultibase])
240
+ signedUpdateKeys = [...new Set([...statedKeys, revealing.keyMultibase])];
241
+ signedHashes = [
242
+ ...new Set([...statedHashes, revealing.hash, ...commitHashes])
174
243
  ];
175
- signedHashes = [...new Set([...statedHashes, rungHash, ...commitHashes])];
176
244
  }
177
245
  await assertCarryOverCommitments({ published });
178
246
  const updated = await updateDID({
@@ -188,7 +256,7 @@ export async function signAccountEntry({ idStore, signer, build, skip, published
188
256
  idStore,
189
257
  updated,
190
258
  ifMatch: published.etag,
191
- logOnly: logOnly || signer.kind === 'ladder',
259
+ logOnly,
192
260
  pinStore,
193
261
  logId
194
262
  });
@@ -231,9 +299,32 @@ async function publishAccountEntry({ idStore, updated, ifMatch, logOnly, pinStor
231
299
  webDoc: updated.webDoc
232
300
  });
233
301
  }
234
- if (pinStore && logId !== undefined) {
235
- await pinStore.write({ logId, pin: pinOfLog(updated.log) });
236
- }
302
+ await advanceLogPin({ pinStore, logId, log: updated.log });
237
303
  return written;
238
304
  }
305
+ /**
306
+ * The head a ceremony concludes on when its entry turns out to be
307
+ * unnecessary -- the client is already enrolled, the removal already landed.
308
+ * There is nothing to publish either way; what differs is the `did:web`
309
+ * projection. The client arm invokes as the account's controller, so it
310
+ * republishes the projection and heals a lag a torn earlier run of the same
311
+ * ceremony left behind. The ladder arm's bridge reaches `did.jsonl` alone, so
312
+ * it takes the read verbatim and leaves the projection to
313
+ * `ensureDidWebProjection`.
314
+ *
315
+ * @param options {object}
316
+ * @param options.idStore {WebvhIdStore}
317
+ * @param options.signer {AccountLogSigner} the arm the ceremony acts as
318
+ * @param options.published {PublishedWebvhLog} the read the build stood on
319
+ * @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog }>}
320
+ */
321
+ export async function concludeUnchangedAccountEntry({ idStore, signer, published }) {
322
+ if (signer.kind === 'client') {
323
+ return {
324
+ ...(await concludeWithPublishedLog({ idStore, published })),
325
+ log: published.log
326
+ };
327
+ }
328
+ return { did: published.did, doc: published.doc, log: published.log };
329
+ }
239
330
  //# sourceMappingURL=accountEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountEntry.js","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountEntry.js","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,14 @@
8
8
  * through it: the unlock record's `did.jsonl` bridge into the account log
9
9
  * (world-readable, so its reads stay unauthenticated), and the client
10
10
  * annex sibling delegation into a generation's capability-gated `gen-`
11
- * collection (GET and PUT, so its reads invoke the same delegation).
11
+ * collection (GET and PUT, so its reads invoke the same delegation). Which
12
+ * read a store performs is decided here from the wallet Space layout, never
13
+ * by the caller: a world-readable roster collection (`isPublic` on its
14
+ * provisioning spec) is fetched unauthenticated, and every other collection
15
+ * -- an annex generation included, which the roster never lists -- is read
16
+ * through the delegation. An unauthenticated GET at a capability-gated
17
+ * resource, or a delegated GET under a PUT-only bridge, would each fail only
18
+ * at the server.
12
19
  *
13
20
  * URLs are built with was-client's paths helpers, so a sub-path deployment
14
21
  * addresses exactly the resource the delegation's target names -- the
@@ -37,31 +44,30 @@ export type DelegatedWebvhLogStore = Pick<WebvhIdStore, 'getIdResourceRaw' | 'pu
37
44
  /**
38
45
  * Builds a delegated log store over one collection of one Space.
39
46
  *
40
- * Reads: with `publicRead` the GET is an unauthenticated fetch of the
41
- * world-readable resource (the account-log case -- the bridge delegation
42
- * allows PUT only); without it the GET invokes the same delegation (the
43
- * annex inventory -- the collection is capability-gated and the sibling
44
- * delegation allows GET and PUT). Either way a 404 reads as "not published"
45
- * and the response's ETag rides back as the compare-and-swap token.
47
+ * Reads: on a world-readable collection (the `id` collection's account log
48
+ * -- the bridge delegation allows PUT only) the GET is an unauthenticated
49
+ * fetch; on every other collection it invokes the same delegation (the annex
50
+ * inventory -- the generation collection is capability-gated and the sibling
51
+ * delegation allows GET and PUT). The choice is read off the wallet Space
52
+ * roster (`isPublic`), so no caller states it. Either way a 404 reads as
53
+ * "not published" and the response's ETag rides back as the compare-and-swap
54
+ * token.
46
55
  *
47
56
  * @param options {object}
48
57
  * @param options.host {string} the storage server's base URL
49
58
  * @param options.spaceId {string} the Space holding the collection
50
59
  * @param options.collectionId {string} the collection holding the log
51
60
  * @param options.delegation {IZcap} the pre-minted delegation the writes
52
- * (and, without `publicRead`, the reads) invoke
61
+ * (and, on a capability-gated collection, the reads) invoke
53
62
  * @param options.zcapClient {ZcapClient} the ezcap client holding the
54
63
  * invoking signer
55
- * @param [options.publicRead] {boolean} read with an unauthenticated fetch
56
- * instead of invoking the delegation (default `false`)
57
64
  * @returns {DelegatedWebvhLogStore}
58
65
  */
59
- export declare function delegatedWebvhLogStore({ host, spaceId, collectionId, delegation, zcapClient, publicRead }: {
66
+ export declare function delegatedWebvhLogStore({ host, spaceId, collectionId, delegation, zcapClient }: {
60
67
  host: string;
61
68
  spaceId: string;
62
69
  collectionId: string;
63
70
  delegation: IZcap;
64
71
  zcapClient: ZcapClient;
65
- publicRead?: boolean;
66
72
  }): DelegatedWebvhLogStore;
67
73
  //# sourceMappingURL=delegatedLogStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegatedLogStore.d.ts","sourceRoot":"","sources":["../../src/webvh/delegatedLogStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,YAAY,EACZ,kBAAkB,GAAG,eAAe,CACrC,CAAA;AAaD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAkB,EACnB,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,KAAK,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,sBAAsB,CAwFzB"}
1
+ {"version":3,"file":"delegatedLogStore.d.ts","sourceRoot":"","sources":["../../src/webvh/delegatedLogStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,YAAY,EACZ,kBAAkB,GAAG,eAAe,CACrC,CAAA;AAkCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACX,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,KAAK,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;CACvB,GAAG,sBAAsB,CAgGzB"}