cojson 0.13.17 → 0.13.20
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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/PeerState.d.ts +4 -1
- package/dist/PeerState.d.ts.map +1 -1
- package/dist/PeerState.js +16 -36
- package/dist/PeerState.js.map +1 -1
- package/dist/SyncStateManager.d.ts.map +1 -1
- package/dist/SyncStateManager.js +2 -3
- package/dist/SyncStateManager.js.map +1 -1
- package/dist/coValue.d.ts +4 -4
- package/dist/coValue.d.ts.map +1 -1
- package/dist/coValue.js +4 -4
- package/dist/coValue.js.map +1 -1
- package/dist/coValueCore/coValueCore.d.ts +143 -0
- package/dist/coValueCore/coValueCore.d.ts.map +1 -0
- package/dist/{coValueCore.js → coValueCore/coValueCore.js} +325 -253
- package/dist/coValueCore/coValueCore.js.map +1 -0
- package/dist/coValueCore/verifiedState.d.ts +65 -0
- package/dist/coValueCore/verifiedState.d.ts.map +1 -0
- package/dist/coValueCore/verifiedState.js +210 -0
- package/dist/coValueCore/verifiedState.js.map +1 -0
- package/dist/coValues/account.d.ts +8 -10
- package/dist/coValues/account.d.ts.map +1 -1
- package/dist/coValues/account.js +12 -13
- package/dist/coValues/account.js.map +1 -1
- package/dist/coValues/coList.d.ts +3 -3
- package/dist/coValues/coList.d.ts.map +1 -1
- package/dist/coValues/coList.js +6 -3
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coMap.d.ts +3 -3
- package/dist/coValues/coMap.d.ts.map +1 -1
- package/dist/coValues/coMap.js +3 -3
- package/dist/coValues/coMap.js.map +1 -1
- package/dist/coValues/coPlainText.d.ts +2 -2
- package/dist/coValues/coPlainText.d.ts.map +1 -1
- package/dist/coValues/coPlainText.js +4 -4
- package/dist/coValues/coPlainText.js.map +1 -1
- package/dist/coValues/coStream.d.ts +3 -3
- package/dist/coValues/coStream.d.ts.map +1 -1
- package/dist/coValues/coStream.js +3 -3
- package/dist/coValues/coStream.js.map +1 -1
- package/dist/coValues/group.d.ts +7 -2
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/group.js +29 -26
- package/dist/coValues/group.js.map +1 -1
- package/dist/coreToCoValue.d.ts +2 -2
- package/dist/coreToCoValue.d.ts.map +1 -1
- package/dist/coreToCoValue.js +10 -14
- package/dist/coreToCoValue.js.map +1 -1
- package/dist/exports.d.ts +6 -5
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +3 -4
- package/dist/exports.js.map +1 -1
- package/dist/localNode.d.ts +30 -24
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +147 -173
- package/dist/localNode.js.map +1 -1
- package/dist/permissions.d.ts +2 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +15 -11
- package/dist/permissions.js.map +1 -1
- package/dist/priority.d.ts +1 -1
- package/dist/priority.d.ts.map +1 -1
- package/dist/streamUtils.d.ts +5 -5
- package/dist/streamUtils.d.ts.map +1 -1
- package/dist/streamUtils.js +5 -20
- package/dist/streamUtils.js.map +1 -1
- package/dist/sync.d.ts +8 -6
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +121 -74
- package/dist/sync.js.map +1 -1
- package/dist/tests/PeerState.test.js +0 -31
- package/dist/tests/PeerState.test.js.map +1 -1
- package/dist/tests/SyncStateManager.test.js +41 -6
- package/dist/tests/SyncStateManager.test.js.map +1 -1
- package/dist/tests/account.test.js +16 -0
- package/dist/tests/account.test.js.map +1 -1
- package/dist/tests/coList.test.js +19 -16
- package/dist/tests/coList.test.js.map +1 -1
- package/dist/tests/coMap.test.js +12 -13
- package/dist/tests/coMap.test.js.map +1 -1
- package/dist/tests/coPlainText.test.js +9 -10
- package/dist/tests/coPlainText.test.js.map +1 -1
- package/dist/tests/coStream.test.js +22 -17
- package/dist/tests/coStream.test.js.map +1 -1
- package/dist/tests/coValueCore.test.js +22 -28
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/coValueCoreLoadingState.test.d.ts +2 -0
- package/dist/tests/coValueCoreLoadingState.test.d.ts.map +1 -0
- package/dist/tests/{coValueState.test.js → coValueCoreLoadingState.test.js} +62 -46
- package/dist/tests/coValueCoreLoadingState.test.js.map +1 -0
- package/dist/tests/group.test.js +42 -43
- package/dist/tests/group.test.js.map +1 -1
- package/dist/tests/messagesTestUtils.d.ts +2 -2
- package/dist/tests/messagesTestUtils.d.ts.map +1 -1
- package/dist/tests/messagesTestUtils.js +1 -1
- package/dist/tests/messagesTestUtils.js.map +1 -1
- package/dist/tests/permissions.test.js +224 -292
- package/dist/tests/permissions.test.js.map +1 -1
- package/dist/tests/priority.test.js +13 -14
- package/dist/tests/priority.test.js.map +1 -1
- package/dist/tests/sync.auth.test.d.ts +2 -0
- package/dist/tests/sync.auth.test.d.ts.map +1 -0
- package/dist/tests/sync.auth.test.js +190 -0
- package/dist/tests/sync.auth.test.js.map +1 -0
- package/dist/tests/sync.load.test.js +6 -6
- package/dist/tests/sync.load.test.js.map +1 -1
- package/dist/tests/sync.mesh.test.js +25 -12
- package/dist/tests/sync.mesh.test.js.map +1 -1
- package/dist/tests/sync.peerReconciliation.test.js +19 -19
- package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
- package/dist/tests/sync.storage.test.js +20 -13
- package/dist/tests/sync.storage.test.js.map +1 -1
- package/dist/tests/sync.test.js +32 -39
- package/dist/tests/sync.test.js.map +1 -1
- package/dist/tests/sync.upload.test.js +126 -37
- package/dist/tests/sync.upload.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +35 -17
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +103 -79
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/typeUtils/expectGroup.js +1 -1
- package/dist/typeUtils/expectGroup.js.map +1 -1
- package/package.json +1 -1
- package/src/PeerState.ts +19 -40
- package/src/SyncStateManager.ts +2 -3
- package/src/coValue.ts +11 -8
- package/src/{coValueCore.ts → coValueCore/coValueCore.ts} +478 -422
- package/src/coValueCore/verifiedState.ts +376 -0
- package/src/coValues/account.ts +20 -25
- package/src/coValues/coList.ts +12 -6
- package/src/coValues/coMap.ts +9 -6
- package/src/coValues/coPlainText.ts +9 -6
- package/src/coValues/coStream.ts +9 -6
- package/src/coValues/group.ts +50 -28
- package/src/coreToCoValue.ts +14 -15
- package/src/exports.ts +9 -7
- package/src/localNode.ts +236 -275
- package/src/permissions.ts +18 -12
- package/src/priority.ts +1 -1
- package/src/streamUtils.ts +7 -34
- package/src/sync.ts +146 -84
- package/src/tests/PeerState.test.ts +0 -37
- package/src/tests/SyncStateManager.test.ts +56 -6
- package/src/tests/account.test.ts +24 -0
- package/src/tests/coList.test.ts +21 -15
- package/src/tests/coMap.test.ts +12 -13
- package/src/tests/coPlainText.test.ts +12 -9
- package/src/tests/coStream.test.ts +25 -16
- package/src/tests/coValueCore.test.ts +30 -27
- package/src/tests/{coValueState.test.ts → coValueCoreLoadingState.test.ts} +67 -57
- package/src/tests/group.test.ts +44 -69
- package/src/tests/messagesTestUtils.ts +3 -8
- package/src/tests/permissions.test.ts +283 -449
- package/src/tests/priority.test.ts +17 -13
- package/src/tests/sync.auth.test.ts +246 -0
- package/src/tests/sync.load.test.ts +7 -6
- package/src/tests/sync.mesh.test.ts +25 -12
- package/src/tests/sync.peerReconciliation.test.ts +25 -25
- package/src/tests/sync.storage.test.ts +20 -13
- package/src/tests/sync.test.ts +43 -43
- package/src/tests/sync.upload.test.ts +157 -37
- package/src/tests/testUtils.ts +143 -96
- package/src/typeUtils/expectGroup.ts +1 -1
- package/dist/CoValuesStore.d.ts +0 -14
- package/dist/CoValuesStore.d.ts.map +0 -1
- package/dist/CoValuesStore.js +0 -32
- package/dist/CoValuesStore.js.map +0 -1
- package/dist/coValueCore.d.ts +0 -142
- package/dist/coValueCore.d.ts.map +0 -1
- package/dist/coValueCore.js.map +0 -1
- package/dist/coValueState.d.ts +0 -34
- package/dist/coValueState.d.ts.map +0 -1
- package/dist/coValueState.js +0 -190
- package/dist/coValueState.js.map +0 -1
- package/dist/tests/coValueState.test.d.ts +0 -2
- package/dist/tests/coValueState.test.d.ts.map +0 -1
- package/dist/tests/coValueState.test.js.map +0 -1
- package/src/CoValuesStore.ts +0 -41
- package/src/coValueState.ts +0 -245
|
@@ -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.
|
|
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 =
|
|
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 |
|
|
119
|
-
"server -> client |
|
|
120
|
-
"client -> server |
|
|
121
|
-
"server -> client |
|
|
122
|
-
"client -> server |
|
|
123
|
-
"server -> client |
|
|
124
|
-
"client -> server |
|
|
125
|
-
"server -> client |
|
|
126
|
-
"client -> server |
|
|
127
|
-
"server -> client |
|
|
128
|
-
"client -> server |
|
|
129
|
-
"server -> client |
|
|
130
|
-
"client -> server |
|
|
131
|
-
"server -> client |
|
|
132
|
-
"client -> server |
|
|
133
|
-
"server -> client |
|
|
134
|
-
"client -> server |
|
|
135
|
-
"server -> client |
|
|
136
|
-
"client -> server |
|
|
137
|
-
"server -> client |
|
|
138
|
-
"client -> server |
|
|
139
|
-
"server -> client |
|
|
140
|
-
"client -> server |
|
|
141
|
-
"server -> client |
|
|
142
|
-
"client -> server |
|
|
143
|
-
"server -> client |
|
|
144
|
-
"client -> server |
|
|
145
|
-
"server -> client |
|
|
146
|
-
"client -> server |
|
|
147
|
-
"server -> client |
|
|
148
|
-
"client -> server |
|
|
149
|
-
"server -> client |
|
|
150
|
-
"client -> server |
|
|
151
|
-
"server -> client |
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
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
|
|
8
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
60
|
+
groupCore: import("../coValueCore/coValueCore.js").AvailableCoValueCore;
|
|
63
61
|
admin: ControlledAgent;
|
|
64
|
-
otherAdmin:
|
|
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:
|
|
74
|
+
otherAdmin: ControlledAccount;
|
|
77
75
|
};
|
|
78
76
|
export declare function shouldNotResolve<T>(promise: Promise<T>, ops: {
|
|
79
77
|
timeout: number;
|
|
@@ -115,6 +113,23 @@ 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
|
+
};
|
|
126
|
+
export declare function createMockStoragePeer(opts: {
|
|
127
|
+
ourName?: string;
|
|
128
|
+
peerId: string;
|
|
129
|
+
}): {
|
|
130
|
+
storage: LocalNode;
|
|
131
|
+
peer: Peer;
|
|
132
|
+
};
|
|
118
133
|
export declare function setupTestNode(opts?: {
|
|
119
134
|
isSyncServer?: boolean;
|
|
120
135
|
connected?: boolean;
|
|
@@ -133,8 +148,9 @@ export declare function setupTestNode(opts?: {
|
|
|
133
148
|
addStoragePeer: (opts?: {
|
|
134
149
|
ourName?: string;
|
|
135
150
|
}) => {
|
|
151
|
+
peer: Peer;
|
|
152
|
+
peerState: import("../PeerState.js").PeerState;
|
|
136
153
|
storage: LocalNode;
|
|
137
|
-
peer: import("../PeerState.js").PeerState;
|
|
138
154
|
};
|
|
139
155
|
restart: () => LocalNode;
|
|
140
156
|
};
|
|
@@ -158,8 +174,9 @@ export declare function setupTestAccount(opts?: {
|
|
|
158
174
|
addStoragePeer: (opts?: {
|
|
159
175
|
ourName?: string;
|
|
160
176
|
}) => {
|
|
177
|
+
peer: Peer;
|
|
178
|
+
peerState: import("../PeerState.js").PeerState;
|
|
161
179
|
storage: LocalNode;
|
|
162
|
-
peer: import("../PeerState.js").PeerState;
|
|
163
180
|
};
|
|
164
181
|
}>;
|
|
165
182
|
export type SyncTestMessage = {
|
|
@@ -182,5 +199,6 @@ export declare function connectedPeersWithMessagesTracking(opts: {
|
|
|
182
199
|
peer1: Peer;
|
|
183
200
|
peer2: Peer;
|
|
184
201
|
};
|
|
202
|
+
export declare function createAccountInNode(node: LocalNode): ControlledAccount;
|
|
185
203
|
export {};
|
|
186
204
|
//# sourceMappingURL=testUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
|