cojson 0.13.16 → 0.13.18

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 (168) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/dist/PeerState.d.ts +3 -0
  4. package/dist/PeerState.d.ts.map +1 -1
  5. package/dist/PeerState.js +9 -0
  6. package/dist/PeerState.js.map +1 -1
  7. package/dist/SyncStateManager.d.ts.map +1 -1
  8. package/dist/SyncStateManager.js +2 -3
  9. package/dist/SyncStateManager.js.map +1 -1
  10. package/dist/coValue.d.ts +6 -4
  11. package/dist/coValue.d.ts.map +1 -1
  12. package/dist/coValue.js +5 -4
  13. package/dist/coValue.js.map +1 -1
  14. package/dist/coValueCore/coValueCore.d.ts +143 -0
  15. package/dist/coValueCore/coValueCore.d.ts.map +1 -0
  16. package/dist/{coValueCore.js → coValueCore/coValueCore.js} +314 -246
  17. package/dist/coValueCore/coValueCore.js.map +1 -0
  18. package/dist/coValueCore/verifiedState.d.ts +65 -0
  19. package/dist/coValueCore/verifiedState.d.ts.map +1 -0
  20. package/dist/coValueCore/verifiedState.js +210 -0
  21. package/dist/coValueCore/verifiedState.js.map +1 -0
  22. package/dist/coValues/account.d.ts +8 -10
  23. package/dist/coValues/account.d.ts.map +1 -1
  24. package/dist/coValues/account.js +12 -13
  25. package/dist/coValues/account.js.map +1 -1
  26. package/dist/coValues/coList.d.ts +10 -6
  27. package/dist/coValues/coList.d.ts.map +1 -1
  28. package/dist/coValues/coList.js +41 -15
  29. package/dist/coValues/coList.js.map +1 -1
  30. package/dist/coValues/coMap.d.ts +4 -3
  31. package/dist/coValues/coMap.d.ts.map +1 -1
  32. package/dist/coValues/coMap.js +5 -3
  33. package/dist/coValues/coMap.js.map +1 -1
  34. package/dist/coValues/coPlainText.d.ts +2 -2
  35. package/dist/coValues/coPlainText.d.ts.map +1 -1
  36. package/dist/coValues/coPlainText.js +5 -5
  37. package/dist/coValues/coPlainText.js.map +1 -1
  38. package/dist/coValues/coStream.d.ts +5 -4
  39. package/dist/coValues/coStream.d.ts.map +1 -1
  40. package/dist/coValues/coStream.js +5 -3
  41. package/dist/coValues/coStream.js.map +1 -1
  42. package/dist/coValues/group.d.ts +7 -2
  43. package/dist/coValues/group.d.ts.map +1 -1
  44. package/dist/coValues/group.js +29 -26
  45. package/dist/coValues/group.js.map +1 -1
  46. package/dist/coreToCoValue.d.ts +4 -3
  47. package/dist/coreToCoValue.d.ts.map +1 -1
  48. package/dist/coreToCoValue.js +10 -14
  49. package/dist/coreToCoValue.js.map +1 -1
  50. package/dist/exports.d.ts +6 -5
  51. package/dist/exports.d.ts.map +1 -1
  52. package/dist/exports.js +3 -4
  53. package/dist/exports.js.map +1 -1
  54. package/dist/localNode.d.ts +30 -24
  55. package/dist/localNode.d.ts.map +1 -1
  56. package/dist/localNode.js +153 -177
  57. package/dist/localNode.js.map +1 -1
  58. package/dist/permissions.d.ts +2 -1
  59. package/dist/permissions.d.ts.map +1 -1
  60. package/dist/permissions.js +15 -11
  61. package/dist/permissions.js.map +1 -1
  62. package/dist/priority.d.ts +1 -1
  63. package/dist/priority.d.ts.map +1 -1
  64. package/dist/sync.d.ts +2 -2
  65. package/dist/sync.d.ts.map +1 -1
  66. package/dist/sync.js +86 -55
  67. package/dist/sync.js.map +1 -1
  68. package/dist/tests/coList.test.js +133 -13
  69. package/dist/tests/coList.test.js.map +1 -1
  70. package/dist/tests/coMap.test.js +43 -14
  71. package/dist/tests/coMap.test.js.map +1 -1
  72. package/dist/tests/coPlainText.test.js +9 -10
  73. package/dist/tests/coPlainText.test.js.map +1 -1
  74. package/dist/tests/coStream.test.js +49 -18
  75. package/dist/tests/coStream.test.js.map +1 -1
  76. package/dist/tests/coValueCore.test.js +22 -28
  77. package/dist/tests/coValueCore.test.js.map +1 -1
  78. package/dist/tests/coValueCoreLoadingState.test.d.ts +2 -0
  79. package/dist/tests/coValueCoreLoadingState.test.d.ts.map +1 -0
  80. package/dist/tests/coValueCoreLoadingState.test.js +227 -0
  81. package/dist/tests/coValueCoreLoadingState.test.js.map +1 -0
  82. package/dist/tests/group.test.js +42 -43
  83. package/dist/tests/group.test.js.map +1 -1
  84. package/dist/tests/messagesTestUtils.d.ts +2 -2
  85. package/dist/tests/messagesTestUtils.d.ts.map +1 -1
  86. package/dist/tests/messagesTestUtils.js +1 -1
  87. package/dist/tests/messagesTestUtils.js.map +1 -1
  88. package/dist/tests/permissions.test.js +224 -292
  89. package/dist/tests/permissions.test.js.map +1 -1
  90. package/dist/tests/priority.test.js +13 -14
  91. package/dist/tests/priority.test.js.map +1 -1
  92. package/dist/tests/sync.auth.test.d.ts +2 -0
  93. package/dist/tests/sync.auth.test.d.ts.map +1 -0
  94. package/dist/tests/sync.auth.test.js +141 -0
  95. package/dist/tests/sync.auth.test.js.map +1 -0
  96. package/dist/tests/sync.load.test.js +60 -2
  97. package/dist/tests/sync.load.test.js.map +1 -1
  98. package/dist/tests/sync.mesh.test.js +70 -10
  99. package/dist/tests/sync.mesh.test.js.map +1 -1
  100. package/dist/tests/sync.peerReconciliation.test.js +19 -19
  101. package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
  102. package/dist/tests/sync.storage.test.js +20 -13
  103. package/dist/tests/sync.storage.test.js.map +1 -1
  104. package/dist/tests/sync.test.js +32 -39
  105. package/dist/tests/sync.test.js.map +1 -1
  106. package/dist/tests/sync.upload.test.js +126 -37
  107. package/dist/tests/sync.upload.test.js.map +1 -1
  108. package/dist/tests/testUtils.d.ts +24 -15
  109. package/dist/tests/testUtils.d.ts.map +1 -1
  110. package/dist/tests/testUtils.js +88 -61
  111. package/dist/tests/testUtils.js.map +1 -1
  112. package/dist/typeUtils/expectGroup.js +1 -1
  113. package/dist/typeUtils/expectGroup.js.map +1 -1
  114. package/package.json +1 -1
  115. package/src/PeerState.ts +11 -0
  116. package/src/SyncStateManager.ts +2 -3
  117. package/src/coValue.ts +14 -8
  118. package/src/{coValueCore.ts → coValueCore/coValueCore.ts} +470 -413
  119. package/src/coValueCore/verifiedState.ts +376 -0
  120. package/src/coValues/account.ts +20 -25
  121. package/src/coValues/coList.ts +63 -29
  122. package/src/coValues/coMap.ts +13 -6
  123. package/src/coValues/coPlainText.ts +10 -8
  124. package/src/coValues/coStream.ts +12 -7
  125. package/src/coValues/group.ts +50 -28
  126. package/src/coreToCoValue.ts +14 -15
  127. package/src/exports.ts +9 -7
  128. package/src/localNode.ts +248 -283
  129. package/src/permissions.ts +18 -12
  130. package/src/priority.ts +1 -1
  131. package/src/sync.ts +96 -63
  132. package/src/tests/coList.test.ts +200 -12
  133. package/src/tests/coMap.test.ts +65 -14
  134. package/src/tests/coPlainText.test.ts +12 -9
  135. package/src/tests/coStream.test.ts +80 -17
  136. package/src/tests/coValueCore.test.ts +30 -27
  137. package/src/tests/coValueCoreLoadingState.test.ts +337 -0
  138. package/src/tests/group.test.ts +44 -68
  139. package/src/tests/messagesTestUtils.ts +3 -8
  140. package/src/tests/permissions.test.ts +283 -449
  141. package/src/tests/priority.test.ts +17 -13
  142. package/src/tests/sync.auth.test.ts +188 -0
  143. package/src/tests/sync.load.test.ts +79 -2
  144. package/src/tests/sync.mesh.test.ts +89 -9
  145. package/src/tests/sync.peerReconciliation.test.ts +25 -25
  146. package/src/tests/sync.storage.test.ts +20 -13
  147. package/src/tests/sync.test.ts +43 -43
  148. package/src/tests/sync.upload.test.ts +157 -37
  149. package/src/tests/testUtils.ts +120 -74
  150. package/src/typeUtils/expectGroup.ts +1 -1
  151. package/dist/CoValuesStore.d.ts +0 -14
  152. package/dist/CoValuesStore.d.ts.map +0 -1
  153. package/dist/CoValuesStore.js +0 -32
  154. package/dist/CoValuesStore.js.map +0 -1
  155. package/dist/coValueCore.d.ts +0 -141
  156. package/dist/coValueCore.d.ts.map +0 -1
  157. package/dist/coValueCore.js.map +0 -1
  158. package/dist/coValueState.d.ts +0 -34
  159. package/dist/coValueState.d.ts.map +0 -1
  160. package/dist/coValueState.js +0 -228
  161. package/dist/coValueState.js.map +0 -1
  162. package/dist/tests/coValueState.test.d.ts +0 -2
  163. package/dist/tests/coValueState.test.d.ts.map +0 -1
  164. package/dist/tests/coValueState.test.js +0 -344
  165. package/dist/tests/coValueState.test.js.map +0 -1
  166. package/src/CoValuesStore.ts +0 -41
  167. package/src/coValueState.ts +0 -300
  168. package/src/tests/coValueState.test.ts +0 -525
@@ -1,6 +1,8 @@
1
1
  import { beforeEach, describe, expect, test } from "vitest";
2
- import { expectMap } from "../coValue";
2
+ import { expectList, expectMap } from "../coValue";
3
+ import { WasmCrypto } from "../crypto/WasmCrypto";
3
4
  import { SyncMessagesLog, loadCoValueOrFail, setupTestNode, waitFor, } from "./testUtils";
5
+ const Crypto = await WasmCrypto.create();
4
6
  let jazzCloud = setupTestNode({ isSyncServer: true });
5
7
  beforeEach(async () => {
6
8
  SyncMessagesLog.clear();
@@ -57,6 +59,35 @@ describe("client to server upload", () => {
57
59
  ]
58
60
  `);
59
61
  });
62
+ test("coValue uploading with a missing dependency", async () => {
63
+ const client = setupTestNode({
64
+ connected: true,
65
+ });
66
+ const group = client.node.createGroup();
67
+ const map = group.createMap();
68
+ map.set("hello", "world", "trusting");
69
+ await group.core.waitForSync();
70
+ await map.core.waitForSync();
71
+ map.set("hello", "new world", "trusting");
72
+ // Testing that with a missing group the sync will not fail
73
+ client.node.internalDeleteCoValue(group.id);
74
+ await map.core.waitForSync();
75
+ const mapOnServer = await loadCoValueOrFail(jazzCloud.node, map.id);
76
+ expect(mapOnServer.get("hello")).toEqual("new world");
77
+ expect(SyncMessagesLog.getMessages({
78
+ Group: group.core,
79
+ Map: map.core,
80
+ })).toMatchInlineSnapshot(`
81
+ [
82
+ "client -> server | CONTENT Group header: true new: After: 0 New: 3",
83
+ "server -> client | KNOWN Group sessions: header/3",
84
+ "client -> server | CONTENT Map header: true new: After: 0 New: 1",
85
+ "server -> client | KNOWN Map sessions: header/1",
86
+ "client -> server | CONTENT Map header: false new: After: 1 New: 1",
87
+ "server -> client | KNOWN Map sessions: header/2",
88
+ ]
89
+ `);
90
+ });
60
91
  test("wrong optimistic known state should be corrected", async () => {
61
92
  const client = setupTestNode({
62
93
  connected: true,
@@ -70,7 +101,7 @@ describe("client to server upload", () => {
70
101
  // Load the coValue on the client
71
102
  await map.core.waitForSync();
72
103
  // Forcefully delete the coValue from the client (simulating some data loss)
73
- jazzCloud.node.coValuesStore.coValues.delete(map.id);
104
+ jazzCloud.node.internalDeleteCoValue(map.id);
74
105
  map.set("fromClient", "updated", "trusting");
75
106
  await waitFor(() => {
76
107
  const coValue = expectMap(jazzCloud.node.expectCoValueLoaded(map.id).getCurrentContent());
@@ -92,11 +123,68 @@ describe("client to server upload", () => {
92
123
  ]
93
124
  `);
94
125
  });
126
+ test("syncing changes between two clients with a sync server in the middle", async () => {
127
+ const client = setupTestNode({
128
+ connected: true,
129
+ });
130
+ const otherClient = setupTestNode({});
131
+ const otherClientConnection = otherClient.connectToSyncServer({
132
+ ourName: "otherClient",
133
+ });
134
+ const coValue = client.node.createCoValue({
135
+ type: "colist",
136
+ ruleset: { type: "unsafeAllowAll" },
137
+ meta: null,
138
+ ...Crypto.createdNowUnique(),
139
+ });
140
+ const list = expectList(coValue.getCurrentContent());
141
+ list.append(1, undefined, "trusting");
142
+ const listOnOtherClient = await loadCoValueOrFail(otherClient.node, list.id);
143
+ otherClientConnection.peerState.gracefulShutdown();
144
+ listOnOtherClient.append(1, undefined, "trusting");
145
+ await new Promise((resolve) => setTimeout(resolve, 50));
146
+ list.append(1, undefined, "trusting");
147
+ await new Promise((resolve) => setTimeout(resolve, 50));
148
+ listOnOtherClient.append(1, undefined, "trusting");
149
+ await new Promise((resolve) => setTimeout(resolve, 50));
150
+ list.append(1, undefined, "trusting");
151
+ otherClient.connectToSyncServer({
152
+ ourName: "otherClient",
153
+ });
154
+ await waitFor(() => {
155
+ expect(list.toJSON()).toEqual([1, 1, 1, 1, 1]);
156
+ });
157
+ expect(SyncMessagesLog.getMessages({
158
+ Colist: coValue,
159
+ })).toMatchInlineSnapshot(`
160
+ [
161
+ "otherClient -> server | LOAD Colist sessions: empty",
162
+ "client -> server | CONTENT Colist header: true new: After: 0 New: 1",
163
+ "server -> otherClient | KNOWN Colist sessions: empty",
164
+ "server -> client | KNOWN Colist sessions: header/1",
165
+ "server -> otherClient | CONTENT Colist header: true new: After: 0 New: 1",
166
+ "otherClient -> server | KNOWN Colist sessions: header/1",
167
+ "client -> server | CONTENT Colist header: false new: After: 1 New: 1",
168
+ "server -> client | KNOWN Colist sessions: header/2",
169
+ "otherClient -> server | LOAD Colist sessions: header/3",
170
+ "client -> server | CONTENT Colist header: false new: After: 2 New: 1",
171
+ "server -> otherClient | CONTENT Colist header: false new: After: 1 New: 1",
172
+ "server -> client | KNOWN Colist sessions: header/3",
173
+ "otherClient -> server | KNOWN Colist sessions: header/4",
174
+ "server -> otherClient | CONTENT Colist header: false new: After: 2 New: 1",
175
+ "otherClient -> server | CONTENT Colist header: false new: After: 0 New: 2",
176
+ "server -> otherClient | KNOWN Colist sessions: header/5",
177
+ "server -> client | CONTENT Colist header: false new: After: 0 New: 2",
178
+ "otherClient -> server | KNOWN Colist sessions: header/5",
179
+ "client -> server | KNOWN Colist sessions: header/5",
180
+ ]
181
+ `);
182
+ });
95
183
  test("large coValue upload streaming", async () => {
96
184
  const client = setupTestNode({
97
185
  connected: true,
98
186
  });
99
- const group = client.node.createGroup();
187
+ const group = jazzCloud.node.createGroup();
100
188
  group.addMember("everyone", "writer");
101
189
  const largeMap = group.createMap();
102
190
  // Generate a large amount of data (about 100MB)
@@ -115,40 +203,41 @@ describe("client to server upload", () => {
115
203
  Map: largeMap.core,
116
204
  })).toMatchInlineSnapshot(`
117
205
  [
118
- "client -> server | CONTENT Group header: true new: After: 0 New: 5",
119
- "server -> client | KNOWN Group sessions: header/5",
120
- "client -> server | CONTENT Map header: true new: ",
121
- "server -> client | KNOWN Map sessions: header/0",
122
- "client -> server | CONTENT Map header: false new: After: 0 New: 73",
123
- "server -> client | KNOWN Map sessions: header/73",
124
- "client -> server | CONTENT Map header: false new: After: 73 New: 73",
125
- "server -> client | KNOWN Map sessions: header/146",
126
- "client -> server | CONTENT Map header: false new: After: 146 New: 73",
127
- "server -> client | KNOWN Map sessions: header/219",
128
- "client -> server | CONTENT Map header: false new: After: 219 New: 73",
129
- "server -> client | KNOWN Map sessions: header/292",
130
- "client -> server | CONTENT Map header: false new: After: 292 New: 73",
131
- "server -> client | KNOWN Map sessions: header/365",
132
- "client -> server | CONTENT Map header: false new: After: 365 New: 73",
133
- "server -> client | KNOWN Map sessions: header/438",
134
- "client -> server | CONTENT Map header: false new: After: 438 New: 73",
135
- "server -> client | KNOWN Map sessions: header/511",
136
- "client -> server | CONTENT Map header: false new: After: 511 New: 73",
137
- "server -> client | KNOWN Map sessions: header/584",
138
- "client -> server | CONTENT Map header: false new: After: 584 New: 73",
139
- "server -> client | KNOWN Map sessions: header/657",
140
- "client -> server | CONTENT Map header: false new: After: 657 New: 73",
141
- "server -> client | KNOWN Map sessions: header/730",
142
- "client -> server | CONTENT Map header: false new: After: 730 New: 73",
143
- "server -> client | KNOWN Map sessions: header/803",
144
- "client -> server | CONTENT Map header: false new: After: 803 New: 73",
145
- "server -> client | KNOWN Map sessions: header/876",
146
- "client -> server | CONTENT Map header: false new: After: 876 New: 73",
147
- "server -> client | KNOWN Map sessions: header/949",
148
- "client -> server | CONTENT Map header: false new: After: 949 New: 73",
149
- "server -> client | KNOWN Map sessions: header/1022",
150
- "client -> server | CONTENT Map header: false new: After: 1022 New: 2",
151
- "server -> client | KNOWN Map sessions: header/1024",
206
+ "client -> server | LOAD Map sessions: empty",
207
+ "server -> client | CONTENT Group header: true new: After: 0 New: 5",
208
+ "client -> server | KNOWN Group sessions: header/5",
209
+ "server -> client | CONTENT Map header: true new: ",
210
+ "client -> server | KNOWN Map sessions: header/0",
211
+ "server -> client | CONTENT Map header: false new: After: 0 New: 73",
212
+ "client -> server | KNOWN Map sessions: header/73",
213
+ "server -> client | CONTENT Map header: false new: After: 73 New: 73",
214
+ "client -> server | KNOWN Map sessions: header/146",
215
+ "server -> client | CONTENT Map header: false new: After: 146 New: 73",
216
+ "client -> server | KNOWN Map sessions: header/219",
217
+ "server -> client | CONTENT Map header: false new: After: 219 New: 73",
218
+ "client -> server | KNOWN Map sessions: header/292",
219
+ "server -> client | CONTENT Map header: false new: After: 292 New: 73",
220
+ "client -> server | KNOWN Map sessions: header/365",
221
+ "server -> client | CONTENT Map header: false new: After: 365 New: 73",
222
+ "client -> server | KNOWN Map sessions: header/438",
223
+ "server -> client | CONTENT Map header: false new: After: 438 New: 73",
224
+ "client -> server | KNOWN Map sessions: header/511",
225
+ "server -> client | CONTENT Map header: false new: After: 511 New: 73",
226
+ "client -> server | KNOWN Map sessions: header/584",
227
+ "server -> client | CONTENT Map header: false new: After: 584 New: 73",
228
+ "client -> server | KNOWN Map sessions: header/657",
229
+ "server -> client | CONTENT Map header: false new: After: 657 New: 73",
230
+ "client -> server | KNOWN Map sessions: header/730",
231
+ "server -> client | CONTENT Map header: false new: After: 730 New: 73",
232
+ "client -> server | KNOWN Map sessions: header/803",
233
+ "server -> client | CONTENT Map header: false new: After: 803 New: 73",
234
+ "client -> server | KNOWN Map sessions: header/876",
235
+ "server -> client | CONTENT Map header: false new: After: 876 New: 73",
236
+ "client -> server | KNOWN Map sessions: header/949",
237
+ "server -> client | CONTENT Map header: false new: After: 949 New: 73",
238
+ "client -> server | KNOWN Map sessions: header/1022",
239
+ "server -> client | CONTENT Map header: false new: After: 1022 New: 2",
240
+ "client -> server | KNOWN Map sessions: header/1024",
152
241
  ]
153
242
  `);
154
243
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sync.upload.test.js","sourceRoot":"","sources":["../../src/tests/sync.upload.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.upload.test.js","sourceRoot":"","sources":["../../src/tests/sync.upload.test.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,23 @@
1
1
  import { MetricReader } from "@opentelemetry/sdk-metrics";
2
- import { ControlledAgent } from "../coValues/account.js";
3
- import type { CoID, CoValueCore, RawCoValue } from "../exports.js";
2
+ import { ControlledAccount, ControlledAgent } from "../coValues/account.js";
3
+ import type { AgentSecret, CoID, CoValueCore, RawCoValue } from "../exports.js";
4
4
  import type { SessionID } from "../ids.js";
5
5
  import { LocalNode } from "../localNode.js";
6
6
  import type { Peer, SyncMessage } from "../sync.js";
7
- export declare function randomAnonymousAccountAndSessionID(): [
8
- ControlledAgent,
9
- SessionID
10
- ];
7
+ export declare function randomAgentAndSessionID(): [ControlledAgent, SessionID];
8
+ export declare function nodeWithRandomAgentAndSessionID(): LocalNode;
11
9
  export declare function createTestNode(): LocalNode;
12
10
  export declare function createTwoConnectedNodes(node1Role: Peer["role"], node2Role: Peer["role"]): Promise<{
13
11
  node1: {
14
12
  node: LocalNode;
15
13
  accountID: import("../exports.js").RawAccountID;
16
- accountSecret: import("../exports.js").AgentSecret;
14
+ accountSecret: AgentSecret;
17
15
  sessionID: SessionID;
18
16
  };
19
17
  node2: {
20
18
  node: LocalNode;
21
19
  accountID: import("../exports.js").RawAccountID;
22
- accountSecret: import("../exports.js").AgentSecret;
20
+ accountSecret: AgentSecret;
23
21
  sessionID: SessionID;
24
22
  };
25
23
  node1ToNode2Peer: Peer;
@@ -29,19 +27,19 @@ export declare function createThreeConnectedNodes(node1Role: Peer["role"], node2
29
27
  node1: {
30
28
  node: LocalNode;
31
29
  accountID: import("../exports.js").RawAccountID;
32
- accountSecret: import("../exports.js").AgentSecret;
30
+ accountSecret: AgentSecret;
33
31
  sessionID: SessionID;
34
32
  };
35
33
  node2: {
36
34
  node: LocalNode;
37
35
  accountID: import("../exports.js").RawAccountID;
38
- accountSecret: import("../exports.js").AgentSecret;
36
+ accountSecret: AgentSecret;
39
37
  sessionID: SessionID;
40
38
  };
41
39
  node3: {
42
40
  node: LocalNode;
43
41
  accountID: import("../exports.js").RawAccountID;
44
- accountSecret: import("../exports.js").AgentSecret;
42
+ accountSecret: AgentSecret;
45
43
  sessionID: SessionID;
46
44
  };
47
45
  node1ToNode2Peer: Peer;
@@ -54,14 +52,14 @@ export declare function createThreeConnectedNodes(node1Role: Peer["role"], node2
54
52
  export declare function connectTwoPeers(a: LocalNode, b: LocalNode, aRole: "client" | "server", bRole: "client" | "server"): void;
55
53
  export declare function newGroup(): {
56
54
  node: LocalNode;
57
- groupCore: CoValueCore;
55
+ groupCore: import("../coValueCore/coValueCore.js").AvailableCoValueCore;
58
56
  admin: ControlledAgent;
59
57
  };
60
58
  export declare function groupWithTwoAdmins(): {
61
59
  group: import("../exports.js").RawGroup<import("../jsonValue.js").JsonObject | null>;
62
- groupCore: CoValueCore;
60
+ groupCore: import("../coValueCore/coValueCore.js").AvailableCoValueCore;
63
61
  admin: ControlledAgent;
64
- otherAdmin: import("../exports.js").RawControlledAccount<import("../exports.js").AccountMeta>;
62
+ otherAdmin: ControlledAccount;
65
63
  node: LocalNode;
66
64
  };
67
65
  export declare function newGroupHighLevel(): {
@@ -73,7 +71,7 @@ export declare function groupWithTwoAdminsHighLevel(): {
73
71
  admin: ControlledAgent;
74
72
  node: LocalNode;
75
73
  group: import("../exports.js").RawGroup<import("../jsonValue.js").JsonObject | null>;
76
- otherAdmin: import("../exports.js").RawControlledAccount<import("../exports.js").AccountMeta>;
74
+ otherAdmin: ControlledAccount;
77
75
  };
78
76
  export declare function shouldNotResolve<T>(promise: Promise<T>, ops: {
79
77
  timeout: number;
@@ -115,6 +113,16 @@ export declare class SyncMessagesLog {
115
113
  [key: string]: CoValueCore;
116
114
  }): void;
117
115
  }
116
+ export declare function getSyncServerConnectedPeer(opts: {
117
+ syncServerName?: string;
118
+ ourName?: string;
119
+ syncServer?: LocalNode;
120
+ peerId: string;
121
+ }): {
122
+ peer: Peer;
123
+ peerStateOnServer: import("../PeerState.js").PeerState;
124
+ peerOnServer: Peer;
125
+ };
118
126
  export declare function setupTestNode(opts?: {
119
127
  isSyncServer?: boolean;
120
128
  connected?: boolean;
@@ -182,5 +190,6 @@ export declare function connectedPeersWithMessagesTracking(opts: {
182
190
  peer1: Peer;
183
191
  peer2: Peer;
184
192
  };
193
+ export declare function createAccountInNode(node: LocalNode): ControlledAccount;
185
194
  export {};
186
195
  //# sourceMappingURL=testUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { metrics } from "@opentelemetry/api";
2
2
  import { AggregationTemporality, InMemoryMetricExporter, MeterProvider, MetricReader, } from "@opentelemetry/sdk-metrics";
3
3
  import { expect, onTestFinished, vi } from "vitest";
4
- import { ControlledAgent } from "../coValues/account.js";
4
+ import { ControlledAccount, ControlledAgent } from "../coValues/account.js";
5
5
  import { WasmCrypto } from "../crypto/WasmCrypto.js";
6
6
  import { LocalNode } from "../localNode.js";
7
7
  import { connectedPeers } from "../streamUtils.js";
@@ -11,14 +11,18 @@ const Crypto = await WasmCrypto.create();
11
11
  const syncServer = {
12
12
  current: undefined,
13
13
  };
14
- export function randomAnonymousAccountAndSessionID() {
14
+ export function randomAgentAndSessionID() {
15
15
  const agentSecret = Crypto.newRandomAgentSecret();
16
16
  const sessionID = Crypto.newRandomSessionID(Crypto.getAgentID(agentSecret));
17
17
  return [new ControlledAgent(agentSecret, Crypto), sessionID];
18
18
  }
19
+ export function nodeWithRandomAgentAndSessionID() {
20
+ const [agent, session] = randomAgentAndSessionID();
21
+ return new LocalNode(agent.agentSecret, session, Crypto);
22
+ }
19
23
  export function createTestNode() {
20
- const [admin, session] = randomAnonymousAccountAndSessionID();
21
- return new LocalNode(admin, session, Crypto);
24
+ const [admin, session] = randomAgentAndSessionID();
25
+ return new LocalNode(admin.agentSecret, session, Crypto);
22
26
  }
23
27
  export async function createTwoConnectedNodes(node1Role, node2Role) {
24
28
  // Connect nodes initially
@@ -84,7 +88,7 @@ export async function createThreeConnectedNodes(node1Role, node2Role, node3Role)
84
88
  };
85
89
  }
86
90
  export function connectTwoPeers(a, b, aRole, bRole) {
87
- const [aAsPeer, bAsPeer] = connectedPeers("peer:" + a.account.id, "peer:" + b.account.id, {
91
+ const [aAsPeer, bAsPeer] = connectedPeers("peer:" + a.getCurrentAgent().id, "peer:" + b.getCurrentAgent().id, {
88
92
  peer1role: aRole,
89
93
  peer2role: bRole,
90
94
  });
@@ -92,22 +96,22 @@ export function connectTwoPeers(a, b, aRole, bRole) {
92
96
  b.syncManager.addPeer(aAsPeer);
93
97
  }
94
98
  export function newGroup() {
95
- const [admin, sessionID] = randomAnonymousAccountAndSessionID();
96
- const node = new LocalNode(admin, sessionID, Crypto);
99
+ const [admin, sessionID] = randomAgentAndSessionID();
100
+ const node = new LocalNode(admin.agentSecret, sessionID, Crypto);
97
101
  const groupCore = node.createCoValue({
98
102
  type: "comap",
99
- ruleset: { type: "group", initialAdmin: admin.id },
103
+ ruleset: { type: "group", initialAdmin: node.getCurrentAgent().id },
100
104
  meta: null,
101
105
  ...Crypto.createdNowUnique(),
102
106
  });
103
107
  const group = expectGroup(groupCore.getCurrentContent());
104
- group.set(admin.id, "admin", "trusting");
105
- expect(group.get(admin.id)).toEqual("admin");
108
+ group.set(node.getCurrentAgent().id, "admin", "trusting");
109
+ expect(group.get(node.getCurrentAgent().id)).toEqual("admin");
106
110
  return { node, groupCore, admin };
107
111
  }
108
112
  export function groupWithTwoAdmins() {
109
113
  const { groupCore, admin, node } = newGroup();
110
- const otherAdmin = node.createAccount();
114
+ const otherAdmin = createAccountInNode(node);
111
115
  const group = expectGroup(groupCore.getCurrentContent());
112
116
  group.set(otherAdmin.id, "admin", "trusting");
113
117
  expect(group.get(otherAdmin.id)).toEqual("admin");
@@ -118,8 +122,8 @@ export function groupWithTwoAdmins() {
118
122
  return { group, groupCore, admin, otherAdmin, node };
119
123
  }
120
124
  export function newGroupHighLevel() {
121
- const [admin, sessionID] = randomAnonymousAccountAndSessionID();
122
- const node = new LocalNode(admin, sessionID, Crypto);
125
+ const [admin, sessionID] = randomAgentAndSessionID();
126
+ const node = new LocalNode(admin.agentSecret, sessionID, Crypto);
123
127
  const group = node.createGroup();
124
128
  onTestFinished(() => {
125
129
  node.gracefulShutdown();
@@ -128,7 +132,7 @@ export function newGroupHighLevel() {
128
132
  }
129
133
  export function groupWithTwoAdminsHighLevel() {
130
134
  const { admin, node, group } = newGroupHighLevel();
131
- const otherAdmin = node.createAccount();
135
+ const otherAdmin = createAccountInNode(node);
132
136
  group.addMember(otherAdmin, "admin");
133
137
  return { admin, node, group, otherAdmin };
134
138
  }
@@ -267,42 +271,63 @@ export class SyncMessagesLog {
267
271
  }
268
272
  }
269
273
  SyncMessagesLog.messages = [];
274
+ export function getSyncServerConnectedPeer(opts) {
275
+ const currentSyncServer = opts?.syncServer ?? syncServer.current;
276
+ if (!currentSyncServer) {
277
+ throw new Error("Sync server not initialized");
278
+ }
279
+ if (currentSyncServer.getCurrentAgent().id === opts.peerId) {
280
+ throw new Error("Cannot connect to self");
281
+ }
282
+ const { peer1, peer2 } = connectedPeersWithMessagesTracking({
283
+ peer1: {
284
+ id: currentSyncServer.getCurrentAgent().id,
285
+ role: "server",
286
+ name: opts.syncServerName,
287
+ },
288
+ peer2: {
289
+ id: opts.peerId,
290
+ role: "client",
291
+ name: opts.ourName,
292
+ },
293
+ });
294
+ currentSyncServer.syncManager.addPeer(peer2);
295
+ return {
296
+ peer: peer1,
297
+ peerStateOnServer: currentSyncServer.syncManager.peers[peer2.id],
298
+ peerOnServer: peer2,
299
+ };
300
+ }
270
301
  export function setupTestNode(opts = {}) {
271
- const [admin, session] = randomAnonymousAccountAndSessionID();
272
- let node = new LocalNode(admin, session, Crypto);
302
+ const [admin, session] = randomAgentAndSessionID();
303
+ let node = new LocalNode(admin.agentSecret, session, Crypto);
273
304
  if (opts.isSyncServer) {
274
305
  syncServer.current = node;
275
306
  }
276
307
  function connectToSyncServer(opts) {
277
- const currentSyncServer = opts?.syncServer ?? syncServer.current;
278
- if (!currentSyncServer) {
279
- throw new Error("Sync server not initialized");
280
- }
281
- if (currentSyncServer.account.id === node.account.id) {
282
- throw new Error("Cannot connect to self");
283
- }
284
- const { peer1, peer2 } = connectedPeersWithMessagesTracking({
285
- peer1: {
286
- id: currentSyncServer.account.id,
287
- role: "server",
288
- name: opts?.syncServerName,
289
- },
290
- peer2: { id: node.account.id, role: "client", name: opts?.ourName },
308
+ const { peer, peerStateOnServer, peerOnServer } = getSyncServerConnectedPeer({
309
+ peerId: node.getCurrentAgent().id,
310
+ syncServerName: opts?.syncServerName,
311
+ ourName: opts?.ourName,
312
+ syncServer: opts?.syncServer,
291
313
  });
292
- node.syncManager.addPeer(peer1);
293
- currentSyncServer.syncManager.addPeer(peer2);
314
+ node.syncManager.addPeer(peer);
294
315
  return {
295
- peerState: node.syncManager.peers[peer1.id],
296
- peer: peer1,
297
- peerStateOnServer: currentSyncServer.syncManager.peers[peer2.id],
298
- peerOnServer: peer2,
316
+ peerState: node.syncManager.peers[peer.id],
317
+ peer: peer,
318
+ peerStateOnServer: peerStateOnServer,
319
+ peerOnServer: peerOnServer,
299
320
  };
300
321
  }
301
322
  function addStoragePeer(opts = {}) {
302
323
  const storage = createTestNode();
303
324
  const { peer1, peer2 } = connectedPeersWithMessagesTracking({
304
- peer1: { id: storage.account.id, role: "storage" },
305
- peer2: { id: node.account.id, role: "client", name: opts.ourName },
325
+ peer1: { id: storage.getCurrentAgent().id, role: "storage" },
326
+ peer2: {
327
+ id: node.getCurrentAgent().id,
328
+ role: "client",
329
+ name: opts.ourName,
330
+ },
306
331
  });
307
332
  peer1.priority = 100;
308
333
  node.syncManager.addPeer(peer1);
@@ -321,7 +346,7 @@ export function setupTestNode(opts = {}) {
321
346
  addStoragePeer,
322
347
  restart: () => {
323
348
  node.gracefulShutdown();
324
- ctx.node = node = new LocalNode(admin, session, Crypto);
349
+ ctx.node = node = new LocalNode(admin.agentSecret, session, Crypto);
325
350
  if (opts.isSyncServer) {
326
351
  syncServer.current = node;
327
352
  }
@@ -340,39 +365,33 @@ export async function setupTestAccount(opts = {}) {
340
365
  syncServer.current = ctx.node;
341
366
  }
342
367
  function connectToSyncServer(opts) {
343
- const currentSyncServer = opts?.syncServer ?? syncServer.current;
344
- if (!currentSyncServer) {
345
- throw new Error("Sync server not initialized");
346
- }
347
- if (currentSyncServer.account.id === ctx.node.account.id) {
348
- throw new Error("Cannot connect to self");
349
- }
350
- const { peer1, peer2 } = connectedPeersWithMessagesTracking({
351
- peer1: {
352
- id: currentSyncServer.account.id,
353
- role: "server",
354
- name: opts?.syncServerName,
355
- },
356
- peer2: { id: ctx.node.account.id, role: "client", name: opts?.ourName },
368
+ const { peer, peerStateOnServer, peerOnServer } = getSyncServerConnectedPeer({
369
+ peerId: ctx.node.getCurrentAgent().id,
370
+ syncServerName: opts?.syncServerName,
371
+ ourName: opts?.ourName,
372
+ syncServer: opts?.syncServer,
357
373
  });
358
- ctx.node.syncManager.addPeer(peer1);
359
- currentSyncServer.syncManager.addPeer(peer2);
374
+ ctx.node.syncManager.addPeer(peer);
360
375
  function getCurrentPeerState() {
361
- return ctx.node.syncManager.peers[peer1.id];
376
+ return ctx.node.syncManager.peers[peer.id];
362
377
  }
363
378
  return {
364
379
  peerState: getCurrentPeerState(),
365
- peer: peer1,
366
- peerStateOnServer: currentSyncServer.syncManager.peers[peer2.id],
367
- peerOnServer: peer2,
380
+ peer,
381
+ peerStateOnServer: peerStateOnServer,
382
+ peerOnServer: peerOnServer,
368
383
  getCurrentPeerState,
369
384
  };
370
385
  }
371
386
  function addStoragePeer(opts = {}) {
372
387
  const storage = createTestNode();
373
388
  const { peer1, peer2 } = connectedPeersWithMessagesTracking({
374
- peer1: { id: storage.account.id, role: "storage" },
375
- peer2: { id: ctx.node.account.id, role: "client", name: opts.ourName },
389
+ peer1: { id: storage.getCurrentAgent().id, role: "storage" },
390
+ peer2: {
391
+ id: ctx.node.getCurrentAgent().id,
392
+ role: "client",
393
+ name: opts.ourName,
394
+ },
376
395
  });
377
396
  peer1.priority = 100;
378
397
  ctx.node.syncManager.addPeer(peer1);
@@ -420,4 +439,12 @@ export function connectedPeersWithMessagesTracking(opts) {
420
439
  peer2,
421
440
  };
422
441
  }
442
+ export function createAccountInNode(node) {
443
+ const accountOnTempNode = LocalNode.internalCreateAccount({
444
+ crypto: node.crypto,
445
+ });
446
+ const accountCoreEntry = node.getCoValue(accountOnTempNode.id);
447
+ accountCoreEntry.internalMarkMagicallyAvailable(accountOnTempNode.core.verified);
448
+ return new ControlledAccount(accountCoreEntry.getCurrentContent(), accountOnTempNode.core.node.agentSecret);
449
+ }
423
450
  //# sourceMappingURL=testUtils.js.map