cojson 0.18.23 → 0.18.25

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.
@@ -33,68 +33,35 @@ export function createTestNode() {
33
33
  return new LocalNode(admin.agentSecret, session, Crypto);
34
34
  }
35
35
  export async function createTwoConnectedNodes(node1Role, node2Role) {
36
- // Connect nodes initially
37
- const [node1ToNode2Peer, node2ToNode1Peer] = connectedPeers("node1ToNode2", "node2ToNode1", {
38
- peer1role: node2Role,
39
- peer2role: node1Role,
40
- });
41
- const node1 = await LocalNode.withNewlyCreatedAccount({
42
- peersToLoadFrom: [node1ToNode2Peer],
43
- crypto: Crypto,
44
- creationProps: { name: "Client" },
45
- });
46
- const node2 = await LocalNode.withNewlyCreatedAccount({
47
- peersToLoadFrom: [node2ToNode1Peer],
48
- crypto: Crypto,
49
- creationProps: { name: "Server" },
50
- });
36
+ const [node1, node2] = await createNConnectedNodes(node1Role, node2Role);
51
37
  return {
52
- node1,
53
- node2,
54
- node1ToNode2Peer,
55
- node2ToNode1Peer,
38
+ node1: node1,
39
+ node2: node2,
56
40
  };
57
41
  }
58
42
  export async function createThreeConnectedNodes(node1Role, node2Role, node3Role) {
59
- const [node1ToNode2Peer, node2ToNode1Peer] = connectedPeers("node1ToNode2", "node2ToNode1", {
60
- peer1role: node2Role,
61
- peer2role: node1Role,
62
- });
63
- const [node1ToNode3Peer, node3ToNode1Peer] = connectedPeers("node1ToNode3", "node3ToNode1", {
64
- peer1role: node3Role,
65
- peer2role: node1Role,
66
- });
67
- const [node2ToNode3Peer, node3ToNode2Peer] = connectedPeers("node2ToNode3", "node3ToNode2", {
68
- peer1role: node3Role,
69
- peer2role: node2Role,
70
- });
71
- const node1 = await LocalNode.withNewlyCreatedAccount({
72
- peersToLoadFrom: [node1ToNode2Peer, node1ToNode3Peer],
73
- crypto: Crypto,
74
- creationProps: { name: "Node 1" },
75
- });
76
- const node2 = await LocalNode.withNewlyCreatedAccount({
77
- peersToLoadFrom: [node2ToNode1Peer, node2ToNode3Peer],
78
- crypto: Crypto,
79
- creationProps: { name: "Node 2" },
80
- });
81
- const node3 = await LocalNode.withNewlyCreatedAccount({
82
- peersToLoadFrom: [node3ToNode1Peer, node3ToNode2Peer],
83
- crypto: Crypto,
84
- creationProps: { name: "Node 3" },
85
- });
43
+ const [node1, node2, node3] = await createNConnectedNodes(node1Role, node2Role, node3Role);
86
44
  return {
87
- node1,
88
- node2,
89
- node3,
90
- node1ToNode2Peer,
91
- node2ToNode1Peer,
92
- node1ToNode3Peer,
93
- node3ToNode1Peer,
94
- node2ToNode3Peer,
95
- node3ToNode2Peer,
45
+ node1: node1,
46
+ node2: node2,
47
+ node3: node3,
96
48
  };
97
49
  }
50
+ export async function createNConnectedNodes(...nodeRoles) {
51
+ const nodes = await Promise.all(Array.from({ length: nodeRoles.length }, async (_, i) => {
52
+ return LocalNode.withNewlyCreatedAccount({
53
+ peers: [],
54
+ crypto: Crypto,
55
+ creationProps: { name: `Node ${i + 1}` },
56
+ });
57
+ }));
58
+ for (let i = 0; i < nodes.length; i++) {
59
+ for (let j = i + 1; j < nodes.length; j++) {
60
+ connectTwoPeers(nodes[i].node, nodes[j].node, nodeRoles[i], nodeRoles[j]);
61
+ }
62
+ }
63
+ return nodes;
64
+ }
98
65
  export function connectTwoPeers(a, b, aRole, bRole) {
99
66
  const [aAsPeer, bAsPeer] = connectedPeers("peer:" + a.currentSessionID, "peer:" + b.currentSessionID, {
100
67
  peer1role: aRole,
@@ -388,7 +355,7 @@ export function setupTestNode(opts = {}) {
388
355
  }
389
356
  export async function setupTestAccount(opts = {}) {
390
357
  const ctx = await LocalNode.withNewlyCreatedAccount({
391
- peersToLoadFrom: [],
358
+ peers: [],
392
359
  crypto: Crypto,
393
360
  creationProps: { name: "Client" },
394
361
  storage: opts.storage,
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAWrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGzE,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;AAEvC,MAAM,UAAU,4BAA4B,CAC1C,MAAiC;IAEjC,MAAM,GAAG,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,GAEZ;IACF,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,UAAU,uBAAuB;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5E,OAAO,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAmB;IAEnB,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,uBAAuB,EAAE,CAAC;IACnD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,uBAAuB,EAAE,CAAC;IACnD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAuB,EACvB,SAAuB;IAEvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEzE,OAAO;QACL,KAAK,EAAE,KAAM;QACb,KAAK,EAAE,KAAM;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAuB,EACvB,SAAuB,EACvB,SAAuB;IAEvB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,qBAAqB,CACvD,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,KAAM;QACb,KAAK,EAAE,KAAM;QACb,KAAK,EAAE,KAAM;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAG,SAAyB;IACtE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtD,OAAO,SAAS,CAAC,uBAAuB,CAAC;YACvC,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;SACzC,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,eAAe,CACb,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EACd,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EACd,SAAS,CAAC,CAAC,CAAE,EACb,SAAS,CAAC,CAAC,CAAE,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,CAAY,EACZ,CAAY,EACZ,KAA0B,EAC1B,KAA0B;IAE1B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,cAAc,CACvC,OAAO,GAAG,CAAC,CAAC,gBAAgB,EAC5B,OAAO,GAAG,CAAC,CAAC,gBAAgB,EAC5B;QACE,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;KACjB,CACF,CAAC;IAEF,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,uBAAuB,EAAE,CAAC;IAErD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE;QACnE,IAAI,EAAE,IAAI;QACV,GAAG,MAAM,CAAC,gBAAgB,EAAE;KAC7B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9C,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,uBAAuB,EAAE,CAAC;IAErD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,cAAc,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEnD,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAErC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAmB,EACnB,GAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO;aACJ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,MAAM,CACJ,IAAI,KAAK,CACP,4CAA4C,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACjE,CACF,CACF;aACA,KAAK,CAAC,MAAM,CAAC,CAAC;QACjB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,QAAwD;IAExD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;YAE1C,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjB,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,CAAC;gBACnB,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAe,EACf,EAAW,EACX,SAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,IAAU,EACV,WAAkC,EAClC,IAGC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAkB,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,MAAM,KAAK,WAAW;YAC1B,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACvC,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,eAAe;QACf,mBAAmB,EAAE,KAAK,IAAI,EAAE;YAC9B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;YACD,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC;QAChC,eAAe;IACjB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,gBAAiB,SAAQ,YAAY;IAA3C;;QACU,cAAS,GAAG,IAAI,sBAAsB,CAC5C,sBAAsB,CAAC,UAAU,CAClC,CAAC;IAuCJ,CAAC;IArCW,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACS,YAAY;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,IAAY,EACZ,aAAiD,EAAE;QAEnD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS;aAC1B,UAAU,EAAE,CAAC,CAAC,CAAC;YAChB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAErE,MAAM,EAAE,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,CAChC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CACrE,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,OAAO,EAAE,EAAE,KAAK,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE;gBACvD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACzB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAC5C,IAAI,aAAa,CAAC;QAChB,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,OAAO,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,OAAO,eAAe;IAG1B,MAAM,CAAC,GAAG,CAAC,OAAwB;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,cAA8C;QAC/D,OAAO,oBAAoB,CAAC,cAAc,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,cAA8C;QACjE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3D,CAAC;;AAhBM,wBAAQ,GAAsB,EAAE,CAAC;AAmB1C,MAAM,UAAU,0BAA0B,CAAC,IAM1C;IACC,MAAM,iBAAiB,GAAG,IAAI,EAAE,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;IAEjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,iBAAiB,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,kCAAkC,CAAC;QAC1D,KAAK,EAAE;YACL,EAAE,EAAE,iBAAiB,CAAC,gBAAgB;YACtC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,cAAc;SAC1B;QACD,KAAK,EAAE;YACL,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,OAAO;SACnB;QACD,UAAU,EAAE,IAAI,EAAE,UAAU;KAC7B,CAAC,CAAC;IAEH,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,iBAAiB,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAE;QACjE,YAAY,EAAE,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,MAAM,UAAU,aAAa,CAC3B,OAII,EAAE;IAEN,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM;QAClC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAE9B,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAE7D,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,SAAS,mBAAmB,CAAC,IAM5B;QACC,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAC7C,0BAA0B,CAAC;YACzB,MAAM,EAAE,OAAO;YACf,cAAc,EAAE,IAAI,EAAE,cAAc;YACpC,OAAO,EAAE,IAAI,EAAE,OAAO;YACtB,UAAU,EAAE,IAAI,EAAE,UAAU;YAC5B,UAAU,EAAE,IAAI,EAAE,UAAU;SAC7B,CAAC,CAAC;QAEL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAEzD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAE;YAC3C,IAAI,EAAE,IAAI;YACV,iBAAiB,EAAE,iBAAiB;YACpC,YAAY,EAAE,YAAY;SAC3B,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,OAAmD,EAAE;QACvE,MAAM,OAAO,GACX,IAAI,CAAC,OAAO;YACZ,iBAAiB,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ;gBAClC,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,UAAU,eAAe,CAC5B,OAAgD,EAAE;QAElD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ;YAClC,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,mBAAmB,EAAE,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG;QACV,IAAI;QACJ,mBAAmB;QACnB,UAAU;QACV,eAAe;QACf,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEpE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,eAAe,EAAE,GAAG,EAAE;YACpB,OAAO,aAAa,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAII,EAAE;IAEN,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC;QAClD,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,SAAS,mBAAmB,CAAC,IAI5B;QACC,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAC7C,0BAA0B,CAAC;YACzB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;YACrC,cAAc,EAAE,IAAI,EAAE,cAAc;YACpC,OAAO,EAAE,IAAI,EAAE,OAAO;YACtB,UAAU,EAAE,IAAI,EAAE,UAAU;SAC7B,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,SAAS,mBAAmB;YAC1B,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,SAAS,EAAE,mBAAmB,EAAE;YAChC,IAAI;YACJ,iBAAiB,EAAE,iBAAiB;YACpC,YAAY,EAAE,YAAY;YAC1B,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,OAAmD,EAAE;QACvE,MAAM,OAAO,GACX,IAAI,CAAC,OAAO;YACZ,iBAAiB,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ;gBAClC,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,OAA6B,EAAE;QAC5D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACvC,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ;YAClC,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,mBAAmB,EAAE,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,GAAG,EAAE;QAClB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,mBAAmB;QACnB,UAAU;QACV,eAAe;QACf,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,kCAAkC,CAAC,IAIlD;IACC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;QAClE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;QAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;QAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;IAEH,uGAAuG;IACvG,6DAA6D;IAC7D,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAEhD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IAClD,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE;QAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBACxC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtC,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,UAAU,CAAC,GAAG,EAAE;gBACd,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE;QAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBACxC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtC,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,UAAU,CAAC,GAAG,EAAE;gBACd,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,MAAM,iBAAiB,GAAG,SAAS,CAAC,qBAAqB,CAAC;QACxD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAE/D,MAAM,OAAO,GACX,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;IAEnE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAErD,OAAO,IAAI,iBAAiB,CAC1B,gBAAgB,CAAC,iBAAiB,EAAgB,EAClD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CACxC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "type": "module",
35
35
  "license": "MIT",
36
- "version": "0.18.23",
36
+ "version": "0.18.25",
37
37
  "devDependencies": {
38
38
  "@opentelemetry/sdk-metrics": "^2.0.0",
39
39
  "libsql": "^0.5.13",
@@ -47,8 +47,8 @@
47
47
  "@scure/base": "1.2.1",
48
48
  "neverthrow": "^7.0.1",
49
49
  "unicode-segmenter": "^0.12.0",
50
- "cojson-core-wasm": "0.18.23",
51
- "cojson-core-napi": "0.18.23"
50
+ "cojson-core-wasm": "0.18.25",
51
+ "cojson-core-napi": "0.18.25"
52
52
  },
53
53
  "gitHead": "33c27053293b4801b968c61d5c4c989f93a67d13",
54
54
  "scripts": {
@@ -24,7 +24,12 @@ import {
24
24
  } from "../ids.js";
25
25
  import { JsonObject } from "../jsonValue.js";
26
26
  import { logger } from "../logger.js";
27
- import { AccountRole, Role, isKeyForKeyField } from "../permissions.js";
27
+ import {
28
+ AccountRole,
29
+ Role,
30
+ isAccountRole,
31
+ isKeyForKeyField,
32
+ } from "../permissions.js";
28
33
  import { accountOrAgentIDfromSessionID } from "../typeUtils/accountOrAgentIDfromSessionID.js";
29
34
  import { expectGroup } from "../typeUtils/expectGroup.js";
30
35
  import { isAccountID } from "../typeUtils/isAccountID.js";
@@ -361,8 +366,9 @@ export class RawGroup<
361
366
  /**
362
367
  * WriteOnly members can only see their own changes.
363
368
  *
364
- * We don't want to reveal the readKey to them so we create a new one specifically for them and also reveal it to everyone else with a reader or higher-capability role (but crucially not to other writer-only members)
365
- * to everyone else.
369
+ * We don't want to reveal the readKey to them so we create a new one specifically for them
370
+ * and also reveal it to everyone else with a reader or higher-capability role
371
+ * (but crucially not to other writer-only members).
366
372
  *
367
373
  * To never reveal the readKey to writeOnly members we also create a dedicated writeKey for the
368
374
  * invite.
@@ -429,10 +435,10 @@ export class RawGroup<
429
435
  }
430
436
  }
431
437
 
432
- internalCreateWriteOnlyKeyForMember(
438
+ private internalCreateWriteOnlyKeyForMember(
433
439
  memberKey: RawAccountID | AgentID,
434
440
  agent: AgentID,
435
- ) {
441
+ ): KeyID {
436
442
  const writeKeyForNewMember = this.crypto.newRandomKeySecret();
437
443
 
438
444
  this.set(`writeKeyFor_${memberKey}`, writeKeyForNewMember.id, "trusting");
@@ -444,6 +450,7 @@ export class RawGroup<
444
450
  writeKeyForNewMember.secret,
445
451
  );
446
452
 
453
+ // Reveal the new writeOnly key to Account members
447
454
  for (const otherMemberKey of this.getMemberKeys()) {
448
455
  const memberRole = this.get(otherMemberKey);
449
456
 
@@ -470,6 +477,18 @@ export class RawGroup<
470
477
  );
471
478
  }
472
479
  }
480
+
481
+ // Reveal the new writeOnly key to parent groups
482
+ for (const parentGroup of this.getParentGroups()) {
483
+ this.revealReadKeyToParentGroup(
484
+ parentGroup,
485
+ writeKeyForNewMember.id,
486
+ writeKeyForNewMember.secret,
487
+ { revealAllWriteOnlyKeys: false },
488
+ );
489
+ }
490
+
491
+ return writeKeyForNewMember.id;
473
492
  }
474
493
 
475
494
  private storeKeyRevelationForMember(
@@ -493,6 +512,28 @@ export class RawGroup<
493
512
  );
494
513
  }
495
514
 
515
+ private storeKeyRevelationForParentGroup(
516
+ parentReadKeyID: KeyID,
517
+ parentReadKeySecret: KeySecret,
518
+ childReadKeyID: KeyID,
519
+ childReadKeySecret: KeySecret,
520
+ ) {
521
+ this.set(
522
+ `${childReadKeyID}_for_${parentReadKeyID}`,
523
+ this.crypto.encryptKeySecret({
524
+ encrypting: {
525
+ id: parentReadKeyID,
526
+ secret: parentReadKeySecret,
527
+ },
528
+ toEncrypt: {
529
+ id: childReadKeyID,
530
+ secret: childReadKeySecret,
531
+ },
532
+ }).encrypted,
533
+ "trusting",
534
+ );
535
+ }
536
+
496
537
  private getWriteOnlyKeys() {
497
538
  const keys: KeyID[] = [];
498
539
 
@@ -551,7 +592,7 @@ export class RawGroup<
551
592
  });
552
593
  }
553
594
 
554
- getAllMemberKeysSet() {
595
+ getAllMemberKeysSet(): Set<RawAccountID | AgentID> {
555
596
  const memberKeys = new Set(this.getMemberKeys());
556
597
 
557
598
  for (const group of this.getParentGroups()) {
@@ -693,7 +734,7 @@ export class RawGroup<
693
734
  return undefined;
694
735
  }
695
736
 
696
- findValidParentKeys(keyID: KeyID, parentGroup: CoValueCore) {
737
+ private findValidParentKeys(keyID: KeyID, parentGroup: CoValueCore) {
697
738
  const validParentKeys: { id: KeyID; secret: KeySecret }[] = [];
698
739
 
699
740
  for (const co of this.keys()) {
@@ -806,6 +847,15 @@ export class RawGroup<
806
847
  writeOnlyKey.secret,
807
848
  );
808
849
  }
850
+
851
+ for (const parentGroup of this.getParentGroups()) {
852
+ this.revealReadKeyToParentGroup(
853
+ parentGroup,
854
+ writeOnlyKey.id,
855
+ writeOnlyKey.secret,
856
+ { revealAllWriteOnlyKeys: false },
857
+ );
858
+ }
809
859
  }
810
860
 
811
861
  this.set(
@@ -837,16 +887,11 @@ export class RawGroup<
837
887
  continue;
838
888
  }
839
889
 
840
- this.set(
841
- `${newReadKey.id}_for_${parentReadKeyID}`,
842
- this.crypto.encryptKeySecret({
843
- encrypting: {
844
- id: parentReadKeyID,
845
- secret: parentReadKeySecret,
846
- },
847
- toEncrypt: newReadKey,
848
- }).encrypted,
849
- "trusting",
890
+ this.storeKeyRevelationForParentGroup(
891
+ parentReadKeyID,
892
+ parentReadKeySecret,
893
+ newReadKey.id,
894
+ newReadKey.secret,
850
895
  );
851
896
  }
852
897
 
@@ -932,14 +977,31 @@ export class RawGroup<
932
977
  parent.set(`child_${this.id}`, "extend", "trusting");
933
978
  this.set(`parent_${parent.id}`, value, "trusting");
934
979
 
935
- if (
936
- parent.myRole() !== "admin" &&
937
- parent.myRole() !== "writer" &&
938
- parent.myRole() !== "reader" &&
939
- parent.myRole() !== "writeOnly"
940
- ) {
980
+ const { id: childReadKeyID, secret: childReadKeySecret } =
981
+ this.getCurrentReadKey();
982
+ if (childReadKeySecret === undefined) {
983
+ throw new Error("Can't extend group without child read key secret");
984
+ }
985
+
986
+ this.revealReadKeyToParentGroup(
987
+ parent,
988
+ childReadKeyID,
989
+ childReadKeySecret,
990
+ { revealAllWriteOnlyKeys: true },
991
+ );
992
+ }
993
+
994
+ private revealReadKeyToParentGroup(
995
+ parent: RawGroup,
996
+ readKeyId: KeyID,
997
+ readKeySecret: KeySecret,
998
+ { revealAllWriteOnlyKeys }: { revealAllWriteOnlyKeys: boolean },
999
+ ) {
1000
+ let writeOnlyKeyID: KeyID | undefined;
1001
+
1002
+ if (!isAccountRole(parent.myRole())) {
941
1003
  // Create a writeOnly key in the parent group to be able to reveal the current child key to the parent group
942
- parent.internalCreateWriteOnlyKeyForMember(
1004
+ writeOnlyKeyID = parent.internalCreateWriteOnlyKeyForMember(
943
1005
  this.core.node.getCurrentAgent().id,
944
1006
  this.core.node.getCurrentAgent().currentAgentID(),
945
1007
  );
@@ -952,26 +1014,35 @@ export class RawGroup<
952
1014
  throw new Error("Can't extend group without parent read key secret");
953
1015
  }
954
1016
 
955
- const { id: childReadKeyID, secret: childReadKeySecret } =
956
- this.getCurrentReadKey();
957
- if (!childReadKeySecret) {
958
- throw new Error("Can't extend group without child read key secret");
959
- }
960
-
961
- this.set(
962
- `${childReadKeyID}_for_${parentReadKeyID}`,
963
- this.crypto.encryptKeySecret({
964
- encrypting: {
965
- id: parentReadKeyID,
966
- secret: parentReadKeySecret,
967
- },
968
- toEncrypt: {
969
- id: childReadKeyID,
970
- secret: childReadKeySecret,
971
- },
972
- }).encrypted,
973
- "trusting",
1017
+ this.storeKeyRevelationForParentGroup(
1018
+ parentReadKeyID,
1019
+ parentReadKeySecret,
1020
+ readKeyId,
1021
+ readKeySecret,
974
1022
  );
1023
+
1024
+ if (revealAllWriteOnlyKeys) {
1025
+ for (const keyID of this.getWriteOnlyKeys()) {
1026
+ // If there's a new writeOnly key, it's already been revealed
1027
+ if (keyID === writeOnlyKeyID) {
1028
+ continue;
1029
+ }
1030
+
1031
+ const secret = this.core.getReadKey(keyID);
1032
+
1033
+ if (!secret) {
1034
+ logger.error("Can't find key " + keyID);
1035
+ continue;
1036
+ }
1037
+
1038
+ this.storeKeyRevelationForParentGroup(
1039
+ parentReadKeyID,
1040
+ parentReadKeySecret,
1041
+ keyID,
1042
+ secret,
1043
+ );
1044
+ }
1045
+ }
975
1046
  }
976
1047
 
977
1048
  revokeExtend(parent: RawGroup) {
@@ -981,12 +1052,7 @@ export class RawGroup<
981
1052
  );
982
1053
  }
983
1054
 
984
- if (
985
- parent.myRole() !== "admin" &&
986
- parent.myRole() !== "writer" &&
987
- parent.myRole() !== "reader" &&
988
- parent.myRole() !== "writeOnly"
989
- ) {
1055
+ if (!isAccountRole(parent.myRole())) {
990
1056
  throw new Error(
991
1057
  "To unextend a group, the current account must be a member of the parent group",
992
1058
  );
package/src/knownState.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { SessionID } from "./exports";
2
- import type { CoValueKnownState } from "./sync";
1
+ import type { SessionID } from "./exports.js";
2
+ import type { CoValueKnownState } from "./sync.js";
3
3
 
4
4
  export function combineKnownStateSessions(
5
5
  a: CoValueKnownState["sessions"],
package/src/localNode.ts CHANGED
@@ -178,13 +178,13 @@ export class LocalNode {
178
178
  static internalCreateAccount(opts: {
179
179
  crypto: CryptoProvider;
180
180
  initialAgentSecret?: AgentSecret;
181
- peersToLoadFrom?: Peer[];
181
+ peers?: Peer[];
182
182
  storage?: StorageAPI;
183
183
  }): RawAccount {
184
184
  const {
185
185
  crypto,
186
186
  initialAgentSecret = crypto.newRandomAgentSecret(),
187
- peersToLoadFrom = [],
187
+ peers = [],
188
188
  } = opts;
189
189
  const accountHeader = accountHeaderForInitialAgentSecret(
190
190
  initialAgentSecret,
@@ -202,7 +202,7 @@ export class LocalNode {
202
202
  node.setStorage(opts.storage);
203
203
  }
204
204
 
205
- for (const peer of peersToLoadFrom) {
205
+ for (const peer of peers) {
206
206
  node.syncManager.addPeer(peer);
207
207
  }
208
208
 
@@ -236,14 +236,14 @@ export class LocalNode {
236
236
  /** @category 2. Node Creation */
237
237
  static async withNewlyCreatedAccount({
238
238
  creationProps,
239
- peersToLoadFrom,
239
+ peers,
240
240
  migration,
241
241
  crypto,
242
242
  initialAgentSecret = crypto.newRandomAgentSecret(),
243
243
  storage,
244
244
  }: {
245
245
  creationProps: { name: string };
246
- peersToLoadFrom?: Peer[];
246
+ peers?: Peer[];
247
247
  migration?: RawAccountMigration<AccountMeta>;
248
248
  crypto: CryptoProvider;
249
249
  initialAgentSecret?: AgentSecret;
@@ -257,7 +257,7 @@ export class LocalNode {
257
257
  const account = LocalNode.internalCreateAccount({
258
258
  crypto,
259
259
  initialAgentSecret,
260
- peersToLoadFrom,
260
+ peers,
261
261
  storage,
262
262
  });
263
263
  const node = account.core.node;
@@ -299,7 +299,7 @@ export class LocalNode {
299
299
  accountID,
300
300
  accountSecret,
301
301
  sessionID,
302
- peersToLoadFrom,
302
+ peers,
303
303
  crypto,
304
304
  migration,
305
305
  storage,
@@ -307,7 +307,7 @@ export class LocalNode {
307
307
  accountID: RawAccountID;
308
308
  accountSecret: AgentSecret;
309
309
  sessionID: SessionID | undefined;
310
- peersToLoadFrom: Peer[];
310
+ peers: Peer[];
311
311
  crypto: CryptoProvider;
312
312
  migration?: RawAccountMigration<AccountMeta>;
313
313
  storage?: StorageAPI;
@@ -323,7 +323,7 @@ export class LocalNode {
323
323
  node.setStorage(storage);
324
324
  }
325
325
 
326
- for (const peer of peersToLoadFrom) {
326
+ for (const peer of peers) {
327
327
  node.syncManager.addPeer(peer);
328
328
  }
329
329
 
@@ -57,6 +57,15 @@ export type Role =
57
57
  | "readerInvite"
58
58
  | "writeOnlyInvite";
59
59
 
60
+ export function isAccountRole(role?: Role): role is AccountRole {
61
+ return (
62
+ role === "admin" ||
63
+ role === "writer" ||
64
+ role === "reader" ||
65
+ role === "writeOnly"
66
+ );
67
+ }
68
+
60
69
  type ValidTransactionsResult = { txID: TransactionID; tx: Transaction };
61
70
  type MemberState = { [agent: RawAccountID | AgentID]: Role; [EVERYONE]?: Role };
62
71
 
@@ -64,7 +64,7 @@ test("Can create account with one node, and then load it on another", async () =
64
64
  accountID,
65
65
  accountSecret,
66
66
  sessionID: Crypto.newRandomSessionID(accountID),
67
- peersToLoadFrom: [node1asPeer],
67
+ peers: [node1asPeer],
68
68
  crypto: Crypto,
69
69
  });
70
70
 
@@ -104,7 +104,7 @@ test("Should migrate the root from private to trusting", async () => {
104
104
  accountID,
105
105
  accountSecret,
106
106
  sessionID: Crypto.newRandomSessionID(accountID),
107
- peersToLoadFrom: [peers1[0]],
107
+ peers: [peers1[0]],
108
108
  crypto: Crypto,
109
109
  });
110
110
 
@@ -126,7 +126,7 @@ test("Should migrate the root from private to trusting", async () => {
126
126
  accountID,
127
127
  accountSecret,
128
128
  sessionID: Crypto.newRandomSessionID(accountID),
129
- peersToLoadFrom: [peers2[0]],
129
+ peers: [peers2[0]],
130
130
  crypto: Crypto,
131
131
  });
132
132