cojson 0.16.4 → 0.16.6

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 (150) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +23 -0
  3. package/dist/GarbageCollector.d.ts +12 -0
  4. package/dist/GarbageCollector.d.ts.map +1 -0
  5. package/dist/GarbageCollector.js +37 -0
  6. package/dist/GarbageCollector.js.map +1 -0
  7. package/dist/coValue.d.ts +1 -1
  8. package/dist/coValue.d.ts.map +1 -1
  9. package/dist/coValue.js.map +1 -1
  10. package/dist/coValueContentMessage.d.ts +1 -0
  11. package/dist/coValueContentMessage.d.ts.map +1 -1
  12. package/dist/coValueContentMessage.js +11 -3
  13. package/dist/coValueContentMessage.js.map +1 -1
  14. package/dist/coValueCore/coValueCore.d.ts +8 -11
  15. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  16. package/dist/coValueCore/coValueCore.js +30 -122
  17. package/dist/coValueCore/coValueCore.js.map +1 -1
  18. package/dist/coValueCore/utils.d.ts.map +1 -1
  19. package/dist/coValueCore/utils.js.map +1 -1
  20. package/dist/coValueCore/verifiedState.d.ts +1 -0
  21. package/dist/coValueCore/verifiedState.d.ts.map +1 -1
  22. package/dist/coValueCore/verifiedState.js.map +1 -1
  23. package/dist/coValues/coMap.d.ts +3 -3
  24. package/dist/coValues/coPlainText.d.ts +1 -0
  25. package/dist/coValues/coPlainText.d.ts.map +1 -1
  26. package/dist/coValues/coPlainText.js +27 -8
  27. package/dist/coValues/coPlainText.js.map +1 -1
  28. package/dist/coValues/coStream.d.ts +2 -2
  29. package/dist/coValues/group.d.ts +19 -11
  30. package/dist/coValues/group.d.ts.map +1 -1
  31. package/dist/coValues/group.js +221 -59
  32. package/dist/coValues/group.js.map +1 -1
  33. package/dist/config.d.ts +10 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +16 -1
  36. package/dist/config.js.map +1 -1
  37. package/dist/exports.d.ts +11 -4
  38. package/dist/exports.d.ts.map +1 -1
  39. package/dist/exports.js +8 -3
  40. package/dist/exports.js.map +1 -1
  41. package/dist/ids.d.ts +3 -3
  42. package/dist/ids.d.ts.map +1 -1
  43. package/dist/ids.js.map +1 -1
  44. package/dist/localNode.d.ts +8 -5
  45. package/dist/localNode.d.ts.map +1 -1
  46. package/dist/localNode.js +11 -0
  47. package/dist/localNode.js.map +1 -1
  48. package/dist/queue/LocalTransactionsSyncQueue.js +1 -1
  49. package/dist/queue/LocalTransactionsSyncQueue.js.map +1 -1
  50. package/dist/queue/StoreQueue.d.ts +7 -1
  51. package/dist/queue/StoreQueue.d.ts.map +1 -1
  52. package/dist/queue/StoreQueue.js +35 -13
  53. package/dist/queue/StoreQueue.js.map +1 -1
  54. package/dist/storage/sqlite/client.d.ts +4 -4
  55. package/dist/storage/sqlite/client.d.ts.map +1 -1
  56. package/dist/storage/sqlite/client.js +13 -4
  57. package/dist/storage/sqlite/client.js.map +1 -1
  58. package/dist/storage/sqliteAsync/client.d.ts +3 -3
  59. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  60. package/dist/storage/sqliteAsync/client.js +12 -3
  61. package/dist/storage/sqliteAsync/client.js.map +1 -1
  62. package/dist/storage/storageAsync.d.ts.map +1 -1
  63. package/dist/storage/storageAsync.js +2 -7
  64. package/dist/storage/storageAsync.js.map +1 -1
  65. package/dist/storage/storageSync.d.ts.map +1 -1
  66. package/dist/storage/storageSync.js +2 -7
  67. package/dist/storage/storageSync.js.map +1 -1
  68. package/dist/storage/types.d.ts +2 -2
  69. package/dist/storage/types.d.ts.map +1 -1
  70. package/dist/sync.d.ts.map +1 -1
  71. package/dist/sync.js +17 -3
  72. package/dist/sync.js.map +1 -1
  73. package/dist/tests/GarbageCollector.test.d.ts +2 -0
  74. package/dist/tests/GarbageCollector.test.d.ts.map +1 -0
  75. package/dist/tests/GarbageCollector.test.js +85 -0
  76. package/dist/tests/GarbageCollector.test.js.map +1 -0
  77. package/dist/tests/coPlainText.test.js +142 -4
  78. package/dist/tests/coPlainText.test.js.map +1 -1
  79. package/dist/tests/coStream.test.js +3 -3
  80. package/dist/tests/coStream.test.js.map +1 -1
  81. package/dist/tests/group.inheritance.test.js +195 -0
  82. package/dist/tests/group.inheritance.test.js.map +1 -1
  83. package/dist/tests/group.removeMember.test.js +152 -1
  84. package/dist/tests/group.removeMember.test.js.map +1 -1
  85. package/dist/tests/group.roleOf.test.js +2 -2
  86. package/dist/tests/group.roleOf.test.js.map +1 -1
  87. package/dist/tests/group.test.js +81 -3
  88. package/dist/tests/group.test.js.map +1 -1
  89. package/dist/tests/sync.garbageCollection.test.d.ts +2 -0
  90. package/dist/tests/sync.garbageCollection.test.d.ts.map +1 -0
  91. package/dist/tests/sync.garbageCollection.test.js +133 -0
  92. package/dist/tests/sync.garbageCollection.test.js.map +1 -0
  93. package/dist/tests/sync.load.test.js +6 -3
  94. package/dist/tests/sync.load.test.js.map +1 -1
  95. package/dist/tests/sync.mesh.test.js +48 -34
  96. package/dist/tests/sync.mesh.test.js.map +1 -1
  97. package/dist/tests/sync.storage.test.js +31 -21
  98. package/dist/tests/sync.storage.test.js.map +1 -1
  99. package/dist/tests/sync.storageAsync.test.js +76 -29
  100. package/dist/tests/sync.storageAsync.test.js.map +1 -1
  101. package/dist/tests/testStorage.d.ts +1 -0
  102. package/dist/tests/testStorage.d.ts.map +1 -1
  103. package/dist/tests/testStorage.js +1 -1
  104. package/dist/tests/testStorage.js.map +1 -1
  105. package/dist/tests/testUtils.d.ts +2 -0
  106. package/dist/tests/testUtils.d.ts.map +1 -1
  107. package/dist/tests/testUtils.js +6 -0
  108. package/dist/tests/testUtils.js.map +1 -1
  109. package/dist/typeUtils/accountOrAgentIDfromSessionID.d.ts +2 -2
  110. package/dist/typeUtils/accountOrAgentIDfromSessionID.d.ts.map +1 -1
  111. package/dist/typeUtils/expectGroup.d.ts.map +1 -1
  112. package/dist/typeUtils/expectGroup.js +6 -5
  113. package/dist/typeUtils/expectGroup.js.map +1 -1
  114. package/package.json +1 -1
  115. package/src/GarbageCollector.ts +48 -0
  116. package/src/coValue.ts +1 -4
  117. package/src/coValueContentMessage.ts +16 -3
  118. package/src/coValueCore/coValueCore.ts +50 -198
  119. package/src/coValueCore/utils.ts +1 -0
  120. package/src/coValueCore/verifiedState.ts +1 -0
  121. package/src/coValues/coPlainText.ts +40 -8
  122. package/src/coValues/group.ts +310 -91
  123. package/src/config.ts +20 -1
  124. package/src/exports.ts +13 -5
  125. package/src/ids.ts +3 -3
  126. package/src/localNode.ts +22 -8
  127. package/src/queue/LocalTransactionsSyncQueue.ts +1 -1
  128. package/src/queue/StoreQueue.ts +45 -12
  129. package/src/storage/sqlite/client.ts +24 -10
  130. package/src/storage/sqliteAsync/client.ts +26 -5
  131. package/src/storage/storageAsync.ts +5 -9
  132. package/src/storage/storageSync.ts +2 -9
  133. package/src/storage/types.ts +7 -4
  134. package/src/sync.ts +19 -3
  135. package/src/tests/GarbageCollector.test.ts +127 -0
  136. package/src/tests/coPlainText.test.ts +176 -4
  137. package/src/tests/coStream.test.ts +7 -3
  138. package/src/tests/group.inheritance.test.ts +279 -0
  139. package/src/tests/group.removeMember.test.ts +244 -1
  140. package/src/tests/group.roleOf.test.ts +2 -2
  141. package/src/tests/group.test.ts +105 -5
  142. package/src/tests/sync.garbageCollection.test.ts +178 -0
  143. package/src/tests/sync.load.test.ts +6 -3
  144. package/src/tests/sync.mesh.test.ts +49 -34
  145. package/src/tests/sync.storage.test.ts +31 -21
  146. package/src/tests/sync.storageAsync.test.ts +81 -29
  147. package/src/tests/testStorage.ts +11 -3
  148. package/src/tests/testUtils.ts +9 -1
  149. package/src/typeUtils/accountOrAgentIDfromSessionID.ts +2 -2
  150. package/src/typeUtils/expectGroup.ts +8 -5
@@ -1,9 +1,50 @@
1
1
  import { base58 } from "@scure/base";
2
2
  import { getChildGroupId, getParentGroupId, isAgentID, isChildGroupReference, isParentGroupReference, } from "../ids.js";
3
3
  import { logger } from "../logger.js";
4
+ import { isKeyForKeyField } from "../permissions.js";
5
+ import { accountOrAgentIDfromSessionID } from "../typeUtils/accountOrAgentIDfromSessionID.js";
4
6
  import { expectGroup } from "../typeUtils/expectGroup.js";
7
+ import { isAccountID } from "../typeUtils/isAccountID.js";
5
8
  import { RawCoMap } from "./coMap.js";
6
9
  export const EVERYONE = "everyone";
10
+ // We had a bug on key rotation, where the new read key was not revealed to everyone
11
+ // TODO: remove this when we hit the 0.18.0 release (either the groups are healed or they are not used often, it's a minor issue anyway)
12
+ function healMissingKeyForEveryone(group) {
13
+ const readKeyId = group.get("readKey");
14
+ if (!readKeyId ||
15
+ !canRead(group, EVERYONE) ||
16
+ group.get(`${readKeyId}_for_${EVERYONE}`)) {
17
+ return;
18
+ }
19
+ const hasAccessToReadKey = canRead(group, group.core.node.getCurrentAgent().id);
20
+ // If the current account has access to the read key, we can fix the group
21
+ if (hasAccessToReadKey) {
22
+ const secret = group.getReadKey(readKeyId);
23
+ if (secret) {
24
+ group.set(`${readKeyId}_for_${EVERYONE}`, secret, "trusting");
25
+ }
26
+ return;
27
+ }
28
+ // Fallback to the latest readable key for everyone
29
+ const keys = group
30
+ .keys()
31
+ .filter((key) => key.startsWith("key_") && key.endsWith("_for_everyone"));
32
+ let latestKey = keys[0];
33
+ for (const key of keys) {
34
+ if (!latestKey) {
35
+ latestKey = key;
36
+ continue;
37
+ }
38
+ const keyEntry = group.getRaw(key);
39
+ const latestKeyEntry = group.getRaw(latestKey);
40
+ if (keyEntry && latestKeyEntry && keyEntry.madeAt > latestKeyEntry.madeAt) {
41
+ latestKey = key;
42
+ }
43
+ }
44
+ if (latestKey) {
45
+ group._lastReadableKeyId = latestKey.replace("_for_everyone", "");
46
+ }
47
+ }
7
48
  /** A `Group` is a scope for permissions of its members (`"reader" | "writer" | "admin"`), applying to objects owned by that group.
8
49
  *
9
50
  * A `Group` object exposes methods for permission management and allows you to create new CoValues owned by that group.
@@ -29,6 +70,7 @@ export class RawGroup extends RawCoMap {
29
70
  constructor(core, options) {
30
71
  super(core, options);
31
72
  this.crypto = core.node.crypto;
73
+ healMissingKeyForEveryone(this);
32
74
  }
33
75
  /**
34
76
  * Returns the current role of a given account.
@@ -103,42 +145,30 @@ export class RawGroup extends RawCoMap {
103
145
  }
104
146
  return groups;
105
147
  }
106
- loadAllChildGroups() {
107
- const requests = [];
108
- const peers = this.core.node.syncManager.getServerPeers();
109
- for (const key of this.keys()) {
110
- if (!isChildGroupReference(key)) {
111
- continue;
112
- }
113
- const id = getChildGroupId(key);
114
- const child = this.core.node.getCoValue(id);
115
- if (child.loadingState === "unknown" ||
116
- child.loadingState === "unavailable") {
117
- child.load(peers);
118
- }
119
- requests.push(child.waitForAvailableOrUnavailable().then((coValue) => {
120
- if (!coValue.isAvailable()) {
121
- throw new Error(`Child group ${child.id} is unavailable`);
122
- }
123
- // Recursively load child groups
124
- return expectGroup(coValue.getCurrentContent()).loadAllChildGroups();
125
- }));
126
- }
127
- return Promise.all(requests);
128
- }
129
- getChildGroups() {
130
- const groups = [];
148
+ forEachChildGroup(callback) {
131
149
  for (const key of this.keys()) {
132
150
  if (isChildGroupReference(key)) {
133
151
  // Check if the child group reference is revoked
134
152
  if (this.get(key) === "revoked") {
135
153
  continue;
136
154
  }
137
- const child = this.core.node.expectCoValueLoaded(getChildGroupId(key), "Expected child group to be loaded");
138
- groups.push(expectGroup(child.getCurrentContent()));
155
+ const id = getChildGroupId(key);
156
+ const child = this.core.node.getCoValue(id);
157
+ if (child.isAvailable()) {
158
+ callback(expectGroup(child.getCurrentContent()));
159
+ }
160
+ else {
161
+ this.core.node.load(id).then((child) => {
162
+ if (child !== "unavailable") {
163
+ callback(expectGroup(child));
164
+ }
165
+ else {
166
+ logger.warn(`Unable to load child group ${id}, skipping`);
167
+ }
168
+ });
169
+ }
139
170
  }
140
171
  }
141
- return groups;
142
172
  }
143
173
  /**
144
174
  * Returns the role of the current account in the group.
@@ -163,7 +193,7 @@ export class RawGroup extends RawCoMap {
163
193
  if (!(role === "reader" || role === "writer" || role === "writeOnly")) {
164
194
  throw new Error("Can't make everyone something other than reader, writer or writeOnly");
165
195
  }
166
- const currentReadKey = this.core.getCurrentReadKey();
196
+ const currentReadKey = this.getCurrentReadKey();
167
197
  if (!currentReadKey.secret) {
168
198
  throw new Error("Can't add member without read key secret");
169
199
  }
@@ -183,7 +213,7 @@ export class RawGroup extends RawCoMap {
183
213
  }
184
214
  if (role === "writeOnly") {
185
215
  if (previousRole === "reader" || previousRole === "writer") {
186
- this.rotateReadKey();
216
+ this.rotateReadKey("everyone");
187
217
  }
188
218
  this.delete(`${currentReadKey.id}_for_${EVERYONE}`);
189
219
  }
@@ -214,7 +244,7 @@ export class RawGroup extends RawCoMap {
214
244
  this.internalCreateWriteOnlyKeyForMember(memberKey, agent);
215
245
  }
216
246
  else {
217
- const currentReadKey = this.core.getCurrentReadKey();
247
+ const currentReadKey = this.getCurrentReadKey();
218
248
  if (!currentReadKey.secret) {
219
249
  throw new Error("Can't add member without read key secret");
220
250
  }
@@ -278,6 +308,9 @@ export class RawGroup extends RawCoMap {
278
308
  return keys;
279
309
  }
280
310
  getCurrentReadKeyId() {
311
+ if (this._lastReadableKeyId) {
312
+ return this._lastReadableKeyId;
313
+ }
281
314
  const myRole = this.myRole();
282
315
  if (myRole === "writeOnly") {
283
316
  const accountId = this.core.node.getCurrentAgent().id;
@@ -312,28 +345,129 @@ export class RawGroup extends RawCoMap {
312
345
  }
313
346
  return memberKeys;
314
347
  }
348
+ getReadKey(keyID) {
349
+ const cache = this.core.readKeyCache;
350
+ let key = cache.get(keyID);
351
+ if (!key) {
352
+ key = this.getUncachedReadKey(keyID);
353
+ if (key) {
354
+ cache.set(keyID, key);
355
+ }
356
+ }
357
+ return key;
358
+ }
359
+ getUncachedReadKey(keyID) {
360
+ const core = this.core;
361
+ const keyForEveryone = this.get(`${keyID}_for_everyone`);
362
+ if (keyForEveryone) {
363
+ return keyForEveryone;
364
+ }
365
+ // Try to find key revelation for us
366
+ const currentAgentOrAccountID = accountOrAgentIDfromSessionID(core.node.currentSessionID);
367
+ // being careful here to avoid recursion
368
+ const lookupAccountOrAgentID = isAccountID(currentAgentOrAccountID)
369
+ ? core.id === currentAgentOrAccountID
370
+ ? core.node.crypto.getAgentID(core.node.agentSecret) // in accounts, the read key is revealed for the primitive agent
371
+ : currentAgentOrAccountID // current account ID
372
+ : currentAgentOrAccountID; // current agent ID
373
+ const lastReadyKeyEdit = this.lastEditAt(`${keyID}_for_${lookupAccountOrAgentID}`);
374
+ if (lastReadyKeyEdit?.value) {
375
+ const revealer = lastReadyKeyEdit.by;
376
+ const revealerAgent = core.node
377
+ .resolveAccountAgent(revealer, "Expected to know revealer")
378
+ ._unsafeUnwrap({ withStackTrace: true });
379
+ const secret = this.crypto.unseal(lastReadyKeyEdit.value, this.crypto.getAgentSealerSecret(core.node.agentSecret), // being careful here to avoid recursion
380
+ this.crypto.getAgentSealerID(revealerAgent), {
381
+ in: this.id,
382
+ tx: lastReadyKeyEdit.tx,
383
+ });
384
+ if (secret) {
385
+ return secret;
386
+ }
387
+ }
388
+ // Try to find indirect revelation through previousKeys
389
+ for (const co of this.keys()) {
390
+ if (isKeyForKeyField(co) && co.startsWith(keyID)) {
391
+ const encryptingKeyID = co.split("_for_")[1];
392
+ const encryptingKeySecret = this.getReadKey(encryptingKeyID);
393
+ if (!encryptingKeySecret) {
394
+ continue;
395
+ }
396
+ const encryptedPreviousKey = this.get(co);
397
+ const secret = this.crypto.decryptKeySecret({
398
+ encryptedID: keyID,
399
+ encryptingID: encryptingKeyID,
400
+ encrypted: encryptedPreviousKey,
401
+ }, encryptingKeySecret);
402
+ if (secret) {
403
+ return secret;
404
+ }
405
+ else {
406
+ logger.warn(`Encrypting ${encryptingKeyID} key didn't decrypt ${keyID}`);
407
+ }
408
+ }
409
+ }
410
+ // try to find revelation to parent group read keys
411
+ for (const co of this.keys()) {
412
+ if (isParentGroupReference(co)) {
413
+ const parentGroupID = getParentGroupId(co);
414
+ const parentGroup = core.node.expectCoValueLoaded(parentGroupID, "Expected parent group to be loaded");
415
+ const parentKeys = this.findValidParentKeys(keyID, parentGroup);
416
+ for (const parentKey of parentKeys) {
417
+ const revelationForParentKey = this.get(`${keyID}_for_${parentKey.id}`);
418
+ if (revelationForParentKey) {
419
+ const secret = parentGroup.node.crypto.decryptKeySecret({
420
+ encryptedID: keyID,
421
+ encryptingID: parentKey.id,
422
+ encrypted: revelationForParentKey,
423
+ }, parentKey.secret);
424
+ if (secret) {
425
+ return secret;
426
+ }
427
+ else {
428
+ logger.warn(`Encrypting parent ${parentKey.id} key didn't decrypt ${keyID}`);
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
434
+ return undefined;
435
+ }
436
+ findValidParentKeys(keyID, parentGroup) {
437
+ const validParentKeys = [];
438
+ for (const co of this.keys()) {
439
+ if (isKeyForKeyField(co) && co.startsWith(keyID)) {
440
+ const encryptingKeyID = co.split("_for_")[1];
441
+ const encryptingKeySecret = parentGroup.getReadKey(encryptingKeyID);
442
+ if (!encryptingKeySecret) {
443
+ continue;
444
+ }
445
+ validParentKeys.push({
446
+ id: encryptingKeyID,
447
+ secret: encryptingKeySecret,
448
+ });
449
+ }
450
+ }
451
+ return validParentKeys;
452
+ }
315
453
  /** @internal */
316
454
  rotateReadKey(removedMemberKey) {
455
+ if (removedMemberKey !== EVERYONE && canRead(this, EVERYONE)) {
456
+ // When everyone has access to the group, rotating the key is useless
457
+ // because it would be stored unencrypted and available to everyone
458
+ return;
459
+ }
317
460
  const memberKeys = this.getMemberKeys().filter((key) => key !== removedMemberKey);
318
- const currentlyPermittedReaders = memberKeys.filter((key) => {
319
- const role = this.get(key);
320
- return (role === "admin" ||
321
- role === "writer" ||
322
- role === "reader" ||
323
- role === "adminInvite" ||
324
- role === "writerInvite" ||
325
- role === "readerInvite");
326
- });
461
+ const currentlyPermittedReaders = memberKeys.filter((key) => canRead(this, key));
327
462
  const writeOnlyMembers = memberKeys.filter((key) => {
328
463
  const role = this.get(key);
329
464
  return role === "writeOnly" || role === "writeOnlyInvite";
330
465
  });
331
466
  // Get these early, so we fail fast if they are unavailable
332
467
  const parentGroups = this.getParentGroups();
333
- const childGroups = this.getChildGroups();
334
- const maybeCurrentReadKey = this.core.getCurrentReadKey();
468
+ const maybeCurrentReadKey = this.getCurrentReadKey();
335
469
  if (!maybeCurrentReadKey.secret) {
336
- throw new Error("Can't rotate read key secret we don't have access to");
470
+ throw new NoReadKeyAccessError("Can't rotate read key secret we don't have access to");
337
471
  }
338
472
  const currentReadKey = {
339
473
  id: maybeCurrentReadKey.id,
@@ -375,7 +509,7 @@ export class RawGroup extends RawCoMap {
375
509
  * This way the members from the parent groups can still have access to this group
376
510
  */
377
511
  for (const parent of parentGroups) {
378
- const { id: parentReadKeyID, secret: parentReadKeySecret } = parent.core.getCurrentReadKey();
512
+ const { id: parentReadKeyID, secret: parentReadKeySecret } = parent.getCurrentReadKey();
379
513
  if (!parentReadKeySecret) {
380
514
  // We can't reveal the new child key to the parent group where we don't have access to the parent read key
381
515
  // TODO: This will be fixed with: https://github.com/garden-co/jazz/issues/1979
@@ -390,15 +524,25 @@ export class RawGroup extends RawCoMap {
390
524
  toEncrypt: newReadKey,
391
525
  }).encrypted, "trusting");
392
526
  }
393
- for (const child of childGroups) {
527
+ this.forEachChildGroup((child) => {
394
528
  // Since child references are mantained only for the key rotation,
395
529
  // circular references are skipped here because it's more performant
396
530
  // than always checking for circular references in childs inside the permission checks
397
531
  if (child.isSelfExtension(this)) {
398
- continue;
532
+ return;
399
533
  }
400
- child.rotateReadKey(removedMemberKey);
401
- }
534
+ try {
535
+ child.rotateReadKey(removedMemberKey);
536
+ }
537
+ catch (error) {
538
+ if (error instanceof NoReadKeyAccessError) {
539
+ logger.warn(`Can't rotate read key on child ${child.id} because we don't have access to the read key`);
540
+ }
541
+ else {
542
+ throw error;
543
+ }
544
+ }
545
+ });
402
546
  }
403
547
  /** Detect circular references in group inheritance */
404
548
  isSelfExtension(parent) {
@@ -421,6 +565,16 @@ export class RawGroup extends RawCoMap {
421
565
  }
422
566
  }
423
567
  }
568
+ getCurrentReadKey() {
569
+ const keyId = this.getCurrentReadKeyId();
570
+ if (!keyId) {
571
+ throw new Error("No readKey set");
572
+ }
573
+ return {
574
+ secret: this.getReadKey(keyId),
575
+ id: keyId,
576
+ };
577
+ }
424
578
  extend(parent, role = "inherit") {
425
579
  if (this.isSelfExtension(parent)) {
426
580
  return;
@@ -438,11 +592,11 @@ export class RawGroup extends RawCoMap {
438
592
  // Create a writeOnly key in the parent group to be able to reveal the current child key to the parent group
439
593
  parent.internalCreateWriteOnlyKeyForMember(this.core.node.getCurrentAgent().id, this.core.node.getCurrentAgent().currentAgentID());
440
594
  }
441
- const { id: parentReadKeyID, secret: parentReadKeySecret } = parent.core.getCurrentReadKey();
595
+ let { id: parentReadKeyID, secret: parentReadKeySecret } = parent.getCurrentReadKey();
442
596
  if (!parentReadKeySecret) {
443
597
  throw new Error("Can't extend group without parent read key secret");
444
598
  }
445
- const { id: childReadKeyID, secret: childReadKeySecret } = this.core.getCurrentReadKey();
599
+ const { id: childReadKeyID, secret: childReadKeySecret } = this.getCurrentReadKey();
446
600
  if (!childReadKeySecret) {
447
601
  throw new Error("Can't extend group without child read key secret");
448
602
  }
@@ -457,7 +611,7 @@ export class RawGroup extends RawCoMap {
457
611
  },
458
612
  }).encrypted, "trusting");
459
613
  }
460
- async revokeExtend(parent) {
614
+ revokeExtend(parent) {
461
615
  if (this.myRole() !== "admin") {
462
616
  throw new Error("To unextend a group, the current account must be an admin in the child group");
463
617
  }
@@ -475,7 +629,6 @@ export class RawGroup extends RawCoMap {
475
629
  this.set(`parent_${parent.id}`, "revoked", "trusting");
476
630
  // Set the child key on the parent group to `revoked`
477
631
  parent.set(`child_${this.id}`, "revoked", "trusting");
478
- await this.loadAllChildGroups();
479
632
  // Rotate the keys on the child group
480
633
  this.rotateReadKey();
481
634
  }
@@ -486,13 +639,7 @@ export class RawGroup extends RawCoMap {
486
639
  *
487
640
  * @category 2. Role changing
488
641
  */
489
- async removeMember(account) {
490
- // Ensure all child groups are loaded before removing a member
491
- await this.loadAllChildGroups();
492
- this.removeMemberInternal(account);
493
- }
494
- /** @internal */
495
- removeMemberInternal(account) {
642
+ removeMember(account) {
496
643
  const memberKey = typeof account === "string" ? account : account.id;
497
644
  if (this.myRole() === "admin") {
498
645
  this.rotateReadKey(memberKey);
@@ -645,4 +792,19 @@ export function secretSeedFromInviteSecret(inviteSecret) {
645
792
  }
646
793
  return base58.decode(inviteSecret.slice("inviteSecret_z".length));
647
794
  }
795
+ const canRead = (group, key) => {
796
+ const role = group.get(key);
797
+ return (role === "admin" ||
798
+ role === "writer" ||
799
+ role === "reader" ||
800
+ role === "adminInvite" ||
801
+ role === "writerInvite" ||
802
+ role === "readerInvite");
803
+ };
804
+ class NoReadKeyAccessError extends Error {
805
+ constructor(message) {
806
+ super(message);
807
+ this.name = "NoReadKeyAccessError";
808
+ }
809
+ }
648
810
  //# sourceMappingURL=group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/coValues/group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/coValues/group.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -5,7 +5,10 @@
5
5
  This also means that we want to keep signatures roughly after each MAX_RECOMMENDED_TX size chunk,
6
6
  to be able to verify partially loaded CoValues or CoValues that are still being created (like a video live stream).
7
7
  **/
8
- export declare const MAX_RECOMMENDED_TX_SIZE: number;
8
+ export declare const TRANSACTION_CONFIG: {
9
+ MAX_RECOMMENDED_TX_SIZE: number;
10
+ };
11
+ export declare function setMaxRecommendedTxSize(size: number): void;
9
12
  export declare const CO_VALUE_LOADING_CONFIG: {
10
13
  MAX_RETRIES: number;
11
14
  TIMEOUT: number;
@@ -18,4 +21,10 @@ export declare const SYNC_SCHEDULER_CONFIG: {
18
21
  INCOMING_MESSAGES_TIME_BUDGET: number;
19
22
  };
20
23
  export declare function setIncomingMessagesTimeBudget(budget: number): void;
24
+ export declare const GARBAGE_COLLECTOR_CONFIG: {
25
+ MAX_AGE: number;
26
+ INTERVAL: number;
27
+ };
28
+ export declare function setGarbageCollectorMaxAge(maxAge: number): void;
29
+ export declare function setGarbageCollectorInterval(interval: number): void;
21
30
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,eAAO,MAAM,uBAAuB;;;;CAInC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,QAE7D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,QAEvD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,QAExD;AAED,eAAO,MAAM,qBAAqB;;CAEjC,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,QAE3D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,QAEnD;AAED,eAAO,MAAM,uBAAuB;;;;CAInC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,QAE7D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,QAEvD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,QAExD;AAED,eAAO,MAAM,qBAAqB;;CAEjC,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,QAE3D;AAED,eAAO,MAAM,wBAAwB;;;CAGpC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,QAEvD;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,QAE3D"}
package/dist/config.js CHANGED
@@ -5,7 +5,12 @@
5
5
  This also means that we want to keep signatures roughly after each MAX_RECOMMENDED_TX size chunk,
6
6
  to be able to verify partially loaded CoValues or CoValues that are still being created (like a video live stream).
7
7
  **/
8
- export const MAX_RECOMMENDED_TX_SIZE = 100 * 1024;
8
+ export const TRANSACTION_CONFIG = {
9
+ MAX_RECOMMENDED_TX_SIZE: 100 * 1024,
10
+ };
11
+ export function setMaxRecommendedTxSize(size) {
12
+ TRANSACTION_CONFIG.MAX_RECOMMENDED_TX_SIZE = size;
13
+ }
9
14
  export const CO_VALUE_LOADING_CONFIG = {
10
15
  MAX_RETRIES: 1,
11
16
  TIMEOUT: 30000,
@@ -26,4 +31,14 @@ export const SYNC_SCHEDULER_CONFIG = {
26
31
  export function setIncomingMessagesTimeBudget(budget) {
27
32
  SYNC_SCHEDULER_CONFIG.INCOMING_MESSAGES_TIME_BUDGET = budget;
28
33
  }
34
+ export const GARBAGE_COLLECTOR_CONFIG = {
35
+ MAX_AGE: 1000 * 60 * 10, // 10 minutes
36
+ INTERVAL: 1000 * 60 * 5, // 5 minutes
37
+ };
38
+ export function setGarbageCollectorMaxAge(maxAge) {
39
+ GARBAGE_COLLECTOR_CONFIG.MAX_AGE = maxAge;
40
+ }
41
+ export function setGarbageCollectorInterval(interval) {
42
+ GARBAGE_COLLECTOR_CONFIG.INTERVAL = interval;
43
+ }
29
44
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,GAAG,IAAI,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,KAAM;IACf,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,UAAkB;IAC5D,uBAAuB,CAAC,WAAW,GAAG,UAAU,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,uBAAuB,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,6BAA6B,EAAE,EAAE;CAClC,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,qBAAqB,CAAC,6BAA6B,GAAG,MAAM,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,uBAAuB,EAAE,GAAG,GAAG,IAAI;CACpC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,kBAAkB,CAAC,uBAAuB,GAAG,IAAI,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,KAAM;IACf,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,UAAkB;IAC5D,uBAAuB,CAAC,WAAW,GAAG,UAAU,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,uBAAuB,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,6BAA6B,EAAE,EAAE;CAClC,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,qBAAqB,CAAC,6BAA6B,GAAG,MAAM,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,aAAa;IACtC,QAAQ,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY;CACtC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,wBAAwB,CAAC,OAAO,GAAG,MAAM,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,wBAAwB,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/C,CAAC"}
package/dist/exports.d.ts CHANGED
@@ -29,13 +29,14 @@ import type * as Media from "./media.js";
29
29
  import { disablePermissionErrors } from "./permissions.js";
30
30
  import type { Peer, SyncMessage } from "./sync.js";
31
31
  import { DisconnectedError, SyncManager, emptyKnownState } from "./sync.js";
32
- type Value = JsonValue | AnyRawCoValue;
33
- export { PriorityBasedMessageQueue } from "./queue/PriorityBasedMessageQueue.js";
32
+ import { getContentMessageSize, getTransactionSize } from "./coValueContentMessage.js";
34
33
  import { getDependedOnCoValuesFromRawData } from "./coValueCore/utils.js";
35
- import { MAX_RECOMMENDED_TX_SIZE, setCoValueLoadingRetryDelay, setIncomingMessagesTimeBudget } from "./config.js";
34
+ import { setCoValueLoadingRetryDelay, setIncomingMessagesTimeBudget, setMaxRecommendedTxSize } from "./config.js";
36
35
  import { LogLevel, logger } from "./logger.js";
37
36
  import { getPriorityFromHeader } from "./priority.js";
38
37
  import { getDependedOnCoValues } from "./storage/syncUtils.js";
38
+ type Value = JsonValue | AnyRawCoValue;
39
+ export { PriorityBasedMessageQueue } from "./queue/PriorityBasedMessageQueue.js";
39
40
  /** @hidden */
40
41
  export declare const cojsonInternals: {
41
42
  connectedPeers: typeof connectedPeers;
@@ -75,8 +76,14 @@ export declare const cojsonInternals: {
75
76
  ConnectedPeerChannel: typeof ConnectedPeerChannel;
76
77
  textEncoder: import("util").TextEncoder;
77
78
  textDecoder: import("util").TextDecoder;
79
+ getTransactionSize: typeof getTransactionSize;
80
+ getContentMessageSize: typeof getContentMessageSize;
81
+ TRANSACTION_CONFIG: {
82
+ MAX_RECOMMENDED_TX_SIZE: number;
83
+ };
84
+ setMaxRecommendedTxSize: typeof setMaxRecommendedTxSize;
78
85
  };
79
- export { LocalNode, RawGroup, Role, EVERYONE, Everyone, RawCoMap, RawCoList, RawCoStream, RawBinaryCoStream, RawCoValue, RawCoID, CoID, AnyRawCoValue, RawAccount, RawAccountID, ControlledAccount, AccountMeta, RawAccountMigration, RawProfile as Profile, SessionID, Media, CoValueCore, ControlledAgent, MAX_RECOMMENDED_TX_SIZE, JsonObject, JsonValue, Peer, BinaryStreamInfo, BinaryCoStreamMeta, AgentID, AgentSecret, InviteSecret, CryptoProvider, SyncMessage, isRawCoID, emptyKnownState, RawCoPlainText, stringifyOpID, logger, LogLevel, base64URLtoBytes, bytesToBase64url, };
86
+ export { LocalNode, RawGroup, Role, EVERYONE, Everyone, RawCoMap, RawCoList, RawCoStream, RawBinaryCoStream, RawCoValue, RawCoID, CoID, AnyRawCoValue, RawAccount, RawAccountID, ControlledAccount, AccountMeta, RawAccountMigration, RawProfile as Profile, SessionID, Media, CoValueCore, ControlledAgent, JsonObject, JsonValue, Peer, BinaryStreamInfo, BinaryCoStreamMeta, AgentID, AgentSecret, InviteSecret, CryptoProvider, SyncMessage, isRawCoID, emptyKnownState, RawCoPlainText, stringifyOpID, logger, LogLevel, base64URLtoBytes, bytesToBase64url, };
80
87
  export type { Value, DisconnectedError, CoValueUniqueness, Stringified, CoStreamItem, BinaryStreamItem, BinaryStreamStart, OpID, AccountRole, };
81
88
  export * from "./storage/index.js";
82
89
  export declare namespace CojsonInternalTypes {
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}