cojson 0.8.39 → 0.8.44

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 (42) hide show
  1. package/.turbo/turbo-build.log +12 -0
  2. package/CHANGELOG.md +14 -0
  3. package/dist/native/coValueCore.js +22 -5
  4. package/dist/native/coValueCore.js.map +1 -1
  5. package/dist/native/coValues/coMap.js +98 -103
  6. package/dist/native/coValues/coMap.js.map +1 -1
  7. package/dist/native/coValues/coStream.js +17 -6
  8. package/dist/native/coValues/coStream.js.map +1 -1
  9. package/dist/native/coValues/group.js +127 -39
  10. package/dist/native/coValues/group.js.map +1 -1
  11. package/dist/native/exports.js +2 -0
  12. package/dist/native/exports.js.map +1 -1
  13. package/dist/native/localNode.js +5 -2
  14. package/dist/native/localNode.js.map +1 -1
  15. package/dist/native/permissions.js +77 -19
  16. package/dist/native/permissions.js.map +1 -1
  17. package/dist/web/coValueCore.js +22 -5
  18. package/dist/web/coValueCore.js.map +1 -1
  19. package/dist/web/coValues/coMap.js +98 -103
  20. package/dist/web/coValues/coMap.js.map +1 -1
  21. package/dist/web/coValues/coStream.js +17 -6
  22. package/dist/web/coValues/coStream.js.map +1 -1
  23. package/dist/web/coValues/group.js +127 -39
  24. package/dist/web/coValues/group.js.map +1 -1
  25. package/dist/web/exports.js +2 -0
  26. package/dist/web/exports.js.map +1 -1
  27. package/dist/web/localNode.js +5 -2
  28. package/dist/web/localNode.js.map +1 -1
  29. package/dist/web/permissions.js +77 -19
  30. package/dist/web/permissions.js.map +1 -1
  31. package/package.json +3 -5
  32. package/src/coValueCore.ts +37 -9
  33. package/src/coValues/coMap.ts +126 -127
  34. package/src/coValues/coStream.ts +27 -10
  35. package/src/coValues/group.ts +218 -50
  36. package/src/exports.ts +2 -0
  37. package/src/localNode.ts +5 -2
  38. package/src/permissions.ts +105 -24
  39. package/src/tests/coMap.test.ts +2 -2
  40. package/src/tests/group.test.ts +332 -38
  41. package/src/tests/permissions.test.ts +324 -0
  42. package/src/tests/testUtils.ts +18 -13
@@ -4,6 +4,16 @@ import { getParentGroupId, } from "./ids.js";
4
4
  import { parseJSON } from "./jsonStringify.js";
5
5
  import { accountOrAgentIDfromSessionID } from "./typeUtils/accountOrAgentIDfromSessionID.js";
6
6
  import { expectGroup } from "./typeUtils/expectGroup.js";
7
+ let logPermissionErrors = true;
8
+ export function disablePermissionErrors() {
9
+ logPermissionErrors = false;
10
+ }
11
+ function logPermissionError(...args) {
12
+ if (logPermissionErrors === false) {
13
+ return;
14
+ }
15
+ console.warn(...args);
16
+ }
7
17
  export function determineValidTransactions(coValue) {
8
18
  if (coValue.header.ruleset.type === "group") {
9
19
  const initialAdmin = coValue.header.ruleset.initialAdmin;
@@ -32,7 +42,8 @@ export function determineValidTransactions(coValue) {
32
42
  const transactorRoleAtTxTime = groupAtTime.roleOfInternal(effectiveTransactor)?.role ||
33
43
  groupAtTime.roleOfInternal(EVERYONE)?.role;
34
44
  if (transactorRoleAtTxTime !== "admin" &&
35
- transactorRoleAtTxTime !== "writer") {
45
+ transactorRoleAtTxTime !== "writer" &&
46
+ transactorRoleAtTxTime !== "writeOnly") {
36
47
  return;
37
48
  }
38
49
  validTransactions.push({ txID: { sessionID, txIndex }, tx });
@@ -96,6 +107,8 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
96
107
  });
97
108
  const memberState = {};
98
109
  const validTransactions = [];
110
+ const keyRevelations = new Set();
111
+ const writeKeys = new Set();
99
112
  for (const { sessionID, txIndex, tx } of allTransactionsSorted) {
100
113
  // console.log("before", { memberState, validTransactions });
101
114
  const transactor = accountOrAgentIDfromSessionID(sessionID);
@@ -108,7 +121,7 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
108
121
  continue;
109
122
  }
110
123
  else {
111
- console.warn("Only admins can make private transactions in groups");
124
+ logPermissionError("Only admins can make private transactions in groups");
112
125
  continue;
113
126
  }
114
127
  }
@@ -117,23 +130,23 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
117
130
  changes = parseJSON(tx.changes);
118
131
  }
119
132
  catch (e) {
120
- console.warn(coValue.id, "Invalid JSON in transaction", e, tx, JSON.stringify(tx.changes, (k, v) => k === "changes" || k === "encryptedChanges"
133
+ logPermissionError(coValue.id, "Invalid JSON in transaction", e, tx, JSON.stringify(tx.changes, (k, v) => k === "changes" || k === "encryptedChanges"
121
134
  ? v.slice(0, 20) + "..."
122
135
  : v));
123
136
  continue;
124
137
  }
125
138
  const change = changes[0];
126
139
  if (changes.length !== 1) {
127
- console.warn("Group transaction must have exactly one change");
140
+ logPermissionError("Group transaction must have exactly one change");
128
141
  continue;
129
142
  }
130
143
  if (change.op !== "set") {
131
- console.warn("Group transaction must set a role or readKey");
144
+ logPermissionError("Group transaction must set a role or readKey");
132
145
  continue;
133
146
  }
134
147
  if (change.key === "readKey") {
135
148
  if (memberState[transactor] !== "admin") {
136
- console.warn("Only admins can set readKeys");
149
+ logPermissionError("Only admins can set readKeys");
137
150
  continue;
138
151
  }
139
152
  validTransactions.push({ txID: { sessionID, txIndex }, tx });
@@ -141,7 +154,7 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
141
154
  }
142
155
  else if (change.key === "profile") {
143
156
  if (memberState[transactor] !== "admin") {
144
- console.warn("Only admins can set profile");
157
+ logPermissionError("Only admins can set profile");
145
158
  continue;
146
159
  }
147
160
  validTransactions.push({ txID: { sessionID, txIndex }, tx });
@@ -152,17 +165,29 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
152
165
  if (memberState[transactor] !== "admin" &&
153
166
  memberState[transactor] !== "adminInvite" &&
154
167
  memberState[transactor] !== "writerInvite" &&
155
- memberState[transactor] !== "readerInvite") {
156
- console.warn("Only admins can reveal keys");
168
+ memberState[transactor] !== "readerInvite" &&
169
+ memberState[transactor] !== "writeOnlyInvite") {
170
+ logPermissionError("Only admins can reveal keys");
157
171
  continue;
158
172
  }
173
+ /**
174
+ * We don't want to give the ability to invite members to override
175
+ * key revelations, otherwise they could hide a key revelation to any user
176
+ * blocking them from accessing the group.
177
+ */
178
+ if (keyRevelations.has(change.key) &&
179
+ memberState[transactor] !== "admin") {
180
+ logPermissionError("Key revelation already exists and can't be overridden by invite");
181
+ continue;
182
+ }
183
+ keyRevelations.add(change.key);
159
184
  // TODO: check validity of agents who the key is revealed to?
160
185
  validTransactions.push({ txID: { sessionID, txIndex }, tx });
161
186
  continue;
162
187
  }
163
188
  else if (isParentExtension(change.key)) {
164
189
  if (memberState[transactor] !== "admin") {
165
- console.warn("Only admins can set parent extensions");
190
+ logPermissionError("Only admins can set parent extensions");
166
191
  continue;
167
192
  }
168
193
  resolveMemberStateFromParentReference(coValue, memberState, change.key);
@@ -171,9 +196,31 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
171
196
  }
172
197
  else if (isChildExtension(change.key)) {
173
198
  if (memberState[transactor] !== "admin") {
174
- console.warn("Only admins can set child extensions");
199
+ logPermissionError("Only admins can set child extensions");
200
+ continue;
201
+ }
202
+ validTransactions.push({ txID: { sessionID, txIndex }, tx });
203
+ continue;
204
+ }
205
+ else if (isWriteKeyForMember(change.key)) {
206
+ if (memberState[transactor] !== "admin" &&
207
+ memberState[transactor] !== "writeOnlyInvite") {
208
+ logPermissionError("Only admins can set writeKeys");
209
+ continue;
210
+ }
211
+ /**
212
+ * writeOnlyInvite need to be able to set writeKeys because every new writeOnly
213
+ * member comes with their own write key.
214
+ *
215
+ * We don't want to give the ability to invite members to override
216
+ * write keys, otherwise they could hide a write key to other writeOnly users
217
+ * blocking them from accessing the group.ß
218
+ */
219
+ if (writeKeys.has(change.key) && memberState[transactor] !== "admin") {
220
+ logPermissionError("Write key already exists and can't be overridden by invite");
175
221
  continue;
176
222
  }
223
+ writeKeys.add(change.key);
177
224
  validTransactions.push({ txID: { sessionID, txIndex }, tx });
178
225
  continue;
179
226
  }
@@ -182,18 +229,20 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
182
229
  if (change.value !== "admin" &&
183
230
  change.value !== "writer" &&
184
231
  change.value !== "reader" &&
232
+ change.value !== "writeOnly" &&
185
233
  change.value !== "revoked" &&
186
234
  change.value !== "adminInvite" &&
187
235
  change.value !== "writerInvite" &&
188
- change.value !== "readerInvite") {
189
- console.warn("Group transaction must set a valid role");
236
+ change.value !== "readerInvite" &&
237
+ change.value !== "writeOnlyInvite") {
238
+ logPermissionError("Group transaction must set a valid role");
190
239
  continue;
191
240
  }
192
241
  if (affectedMember === EVERYONE &&
193
242
  !(change.value === "reader" ||
194
243
  change.value === "writer" ||
195
244
  change.value === "revoked")) {
196
- console.warn("Everyone can only be set to reader, writer or revoked");
245
+ logPermissionError("Everyone can only be set to reader, writer or revoked");
197
246
  continue;
198
247
  }
199
248
  const isFirstSelfAppointment = !memberState[transactor] &&
@@ -206,30 +255,36 @@ function determineValidTransactionsForGroup(coValue, initialAdmin) {
206
255
  if (memberState[affectedMember] === "admin" &&
207
256
  affectedMember !== transactor &&
208
257
  assignedRole !== "admin") {
209
- console.warn("Admins can only demote themselves.");
258
+ logPermissionError("Admins can only demote themselves.");
210
259
  continue;
211
260
  }
212
261
  }
213
262
  else if (memberState[transactor] === "adminInvite") {
214
263
  if (change.value !== "admin") {
215
- console.warn("AdminInvites can only create admins.");
264
+ logPermissionError("AdminInvites can only create admins.");
216
265
  continue;
217
266
  }
218
267
  }
219
268
  else if (memberState[transactor] === "writerInvite") {
220
269
  if (change.value !== "writer") {
221
- console.warn("WriterInvites can only create writers.");
270
+ logPermissionError("WriterInvites can only create writers.");
222
271
  continue;
223
272
  }
224
273
  }
225
274
  else if (memberState[transactor] === "readerInvite") {
226
275
  if (change.value !== "reader") {
227
- console.warn("ReaderInvites can only create reader.");
276
+ logPermissionError("ReaderInvites can only create reader.");
277
+ continue;
278
+ }
279
+ }
280
+ else if (memberState[transactor] === "writeOnlyInvite") {
281
+ if (change.value !== "writeOnly") {
282
+ logPermissionError("WriteOnlyInvites can only create writeOnly.");
228
283
  continue;
229
284
  }
230
285
  }
231
286
  else {
232
- console.warn("Group transaction must be made by current admin or invite");
287
+ logPermissionError("Group transaction must be made by current admin or invite");
233
288
  continue;
234
289
  }
235
290
  }
@@ -248,6 +303,9 @@ function agentInAccountOrMemberInGroup(transactor, groupAtTime) {
248
303
  }
249
304
  return transactor;
250
305
  }
306
+ export function isWriteKeyForMember(co) {
307
+ return co.startsWith("writeKeyFor_");
308
+ }
251
309
  export function isKeyForKeyField(co) {
252
310
  return co.startsWith("key_") && co.includes("_for_key");
253
311
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/permissions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -19,11 +19,11 @@
19
19
  },
20
20
  "type": "module",
21
21
  "license": "MIT",
22
- "version": "0.8.39",
22
+ "version": "0.8.44",
23
23
  "devDependencies": {
24
24
  "@opentelemetry/sdk-metrics": "^1.29.0",
25
25
  "@types/jest": "^29.5.3",
26
- "typescript": "^5.3.3",
26
+ "typescript": "~5.6.2",
27
27
  "vitest": "1.5.3"
28
28
  },
29
29
  "dependencies": {
@@ -31,14 +31,12 @@
31
31
  "@noble/ciphers": "^0.1.3",
32
32
  "@noble/curves": "^1.3.0",
33
33
  "@noble/hashes": "^1.4.0",
34
+ "@opentelemetry/api": "^1.0.0",
34
35
  "@scure/base": "^1.1.1",
35
36
  "hash-wasm": "^4.9.0",
36
37
  "neverthrow": "^7.0.1",
37
38
  "queueueue": "^4.1.2"
38
39
  },
39
- "peerDependencies": {
40
- "@opentelemetry/api": "^1.0.0"
41
- },
42
40
  "gitHead": "33c27053293b4801b968c61d5c4c989f93a67d13",
43
41
  "scripts": {
44
42
  "dev": "tsc --watch --sourceMap --outDir dist/web -p tsconfig.web.json",
@@ -443,7 +443,16 @@ export class CoValueCore {
443
443
  signatureAfter: signatureAfter,
444
444
  });
445
445
 
446
- this._cachedContent = undefined;
446
+ if (
447
+ this._cachedContent &&
448
+ "processNewTransactions" in this._cachedContent &&
449
+ typeof this._cachedContent.processNewTransactions === "function"
450
+ ) {
451
+ this._cachedContent.processNewTransactions();
452
+ } else {
453
+ this._cachedContent = undefined;
454
+ }
455
+
447
456
  this._cachedKnownState = undefined;
448
457
  this._cachedDependentOn = undefined;
449
458
  this._cachedNewContentSinceEmpty = undefined;
@@ -616,14 +625,19 @@ export class CoValueCore {
616
625
  return newContent;
617
626
  }
618
627
 
619
- getValidSortedTransactions(options?: {
628
+ getValidTransactions(options?: {
620
629
  ignorePrivateTransactions: boolean;
630
+ knownTransactions?: CoValueKnownState["sessions"];
621
631
  }): DecryptedTransaction[] {
622
632
  const validTransactions = determineValidTransactions(this);
623
633
 
624
634
  const allTransactions: DecryptedTransaction[] = [];
625
635
 
626
636
  for (const { txID, tx } of validTransactions) {
637
+ if (options?.knownTransactions?.[txID.sessionID]! >= txID.txIndex) {
638
+ continue;
639
+ }
640
+
627
641
  if (tx.privacy === "trusting") {
628
642
  allTransactions.push({
629
643
  txID,
@@ -670,21 +684,35 @@ export class CoValueCore {
670
684
  });
671
685
  }
672
686
 
673
- allTransactions.sort(
674
- (a, b) =>
675
- a.madeAt - b.madeAt ||
676
- (a.txID.sessionID < b.txID.sessionID ? -1 : 1) ||
677
- a.txID.txIndex - b.txID.txIndex,
678
- );
687
+ return allTransactions;
688
+ }
689
+
690
+ getValidSortedTransactions(options?: {
691
+ ignorePrivateTransactions: boolean;
692
+ }): DecryptedTransaction[] {
693
+ const allTransactions = this.getValidTransactions(options);
694
+
695
+ allTransactions.sort(this.compareTransactions);
679
696
 
680
697
  return allTransactions;
681
698
  }
682
699
 
700
+ compareTransactions(
701
+ a: Pick<DecryptedTransaction, "madeAt" | "txID">,
702
+ b: Pick<DecryptedTransaction, "madeAt" | "txID">,
703
+ ) {
704
+ return (
705
+ a.madeAt - b.madeAt ||
706
+ (a.txID.sessionID < b.txID.sessionID ? -1 : 1) ||
707
+ a.txID.txIndex - b.txID.txIndex
708
+ );
709
+ }
710
+
683
711
  getCurrentReadKey(): { secret: KeySecret | undefined; id: KeyID } {
684
712
  if (this.header.ruleset.type === "group") {
685
713
  const content = expectGroup(this.getCurrentContent());
686
714
 
687
- const currentKeyId = content.get("readKey");
715
+ const currentKeyId = content.getCurrentReadKeyId();
688
716
 
689
717
  if (!currentKeyId) {
690
718
  throw new Error("No readKey set");