cojson 0.17.9 → 0.17.11
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/coValueCore/SessionMap.d.ts +45 -0
- package/dist/coValueCore/SessionMap.d.ts.map +1 -0
- package/dist/coValueCore/SessionMap.js +118 -0
- package/dist/coValueCore/SessionMap.js.map +1 -0
- package/dist/coValueCore/coValueCore.d.ts +10 -4
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +55 -68
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/verifiedState.d.ts +15 -19
- package/dist/coValueCore/verifiedState.d.ts.map +1 -1
- package/dist/coValueCore/verifiedState.js +24 -87
- package/dist/coValueCore/verifiedState.js.map +1 -1
- package/dist/coValues/account.d.ts +4 -0
- package/dist/coValues/account.d.ts.map +1 -1
- package/dist/coValues/account.js +24 -4
- package/dist/coValues/account.js.map +1 -1
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/group.js +6 -2
- package/dist/coValues/group.js.map +1 -1
- package/dist/crypto/PureJSCrypto.d.ts +31 -3
- package/dist/crypto/PureJSCrypto.d.ts.map +1 -1
- package/dist/crypto/PureJSCrypto.js +115 -0
- package/dist/crypto/PureJSCrypto.js.map +1 -1
- package/dist/crypto/WasmCrypto.d.ts +23 -4
- package/dist/crypto/WasmCrypto.d.ts.map +1 -1
- package/dist/crypto/WasmCrypto.js +44 -2
- package/dist/crypto/WasmCrypto.js.map +1 -1
- package/dist/crypto/crypto.d.ts +17 -1
- package/dist/crypto/crypto.d.ts.map +1 -1
- package/dist/crypto/crypto.js.map +1 -1
- package/dist/localNode.d.ts +1 -0
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +10 -5
- package/dist/localNode.js.map +1 -1
- package/dist/permissions.d.ts +17 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js.map +1 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +55 -49
- package/dist/sync.js.map +1 -1
- package/dist/tests/PureJSCrypto.test.d.ts +2 -0
- package/dist/tests/PureJSCrypto.test.d.ts.map +1 -0
- package/dist/tests/PureJSCrypto.test.js +102 -0
- package/dist/tests/PureJSCrypto.test.js.map +1 -0
- package/dist/tests/WasmCrypto.test.d.ts +2 -0
- package/dist/tests/WasmCrypto.test.d.ts.map +1 -0
- package/dist/tests/WasmCrypto.test.js +88 -0
- package/dist/tests/WasmCrypto.test.js.map +1 -0
- package/dist/tests/coValueCore.test.js +62 -187
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/coreWasm.test.d.ts +2 -0
- package/dist/tests/coreWasm.test.d.ts.map +1 -0
- package/dist/tests/coreWasm.test.js +80 -0
- package/dist/tests/coreWasm.test.js.map +1 -0
- package/dist/tests/group.addMember.test.js +6 -11
- package/dist/tests/group.addMember.test.js.map +1 -1
- package/dist/tests/sync.load.test.js +40 -1
- package/dist/tests/sync.load.test.js.map +1 -1
- package/dist/tests/sync.test.js +1 -1
- package/dist/tests/sync.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +3 -0
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +4 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/coValueCore/SessionMap.ts +229 -0
- package/src/coValueCore/coValueCore.ts +106 -121
- package/src/coValueCore/verifiedState.ts +61 -132
- package/src/coValues/account.ts +28 -4
- package/src/coValues/group.ts +10 -2
- package/src/crypto/PureJSCrypto.ts +206 -2
- package/src/crypto/WasmCrypto.ts +95 -4
- package/src/crypto/crypto.ts +38 -1
- package/src/localNode.ts +18 -10
- package/src/permissions.ts +17 -1
- package/src/sync.ts +63 -59
- package/src/tests/PureJSCrypto.test.ts +153 -0
- package/src/tests/WasmCrypto.test.ts +128 -0
- package/src/tests/coValueCore.test.ts +81 -293
- package/src/tests/coreWasm.test.ts +142 -0
- package/src/tests/group.addMember.test.ts +69 -63
- package/src/tests/sync.load.test.ts +52 -0
- package/src/tests/sync.test.ts +0 -2
- package/src/tests/testUtils.ts +9 -1
|
@@ -1,44 +1,20 @@
|
|
|
1
|
-
import { encrypt } from "jazz-crypto-rs";
|
|
2
1
|
import { assert, afterEach, beforeEach, describe, expect, test, vi, } from "vitest";
|
|
3
|
-
import { bytesToBase64url } from "../base64url.js";
|
|
4
2
|
import { CoValueCore } from "../coValueCore/coValueCore.js";
|
|
5
3
|
import { WasmCrypto } from "../crypto/WasmCrypto.js";
|
|
6
4
|
import { stableStringify } from "../jsonStringify.js";
|
|
7
5
|
import { LocalNode } from "../localNode.js";
|
|
8
|
-
import { createTestMetricReader, createTestNode, createTwoConnectedNodes, loadCoValueOrFail, nodeWithRandomAgentAndSessionID, randomAgentAndSessionID, tearDownTestMetricReader, } from "./testUtils.js";
|
|
6
|
+
import { agentAndSessionIDFromSecret, createTestMetricReader, createTestNode, createTwoConnectedNodes, loadCoValueOrFail, nodeWithRandomAgentAndSessionID, randomAgentAndSessionID, tearDownTestMetricReader, } from "./testUtils.js";
|
|
7
|
+
import { CO_VALUE_PRIORITY } from "../priority.js";
|
|
9
8
|
const Crypto = await WasmCrypto.create();
|
|
10
9
|
let metricReader;
|
|
10
|
+
const agentSecret = "sealerSecret_zE3Nr7YFr1KkVbJSx4JDCzYn4ApYdm8kJ5ghNBxREHQya/signerSecret_z9fEu4eNG1eXHMak3YSzY7uLdoG8HESSJ8YW4xWdNNDSP";
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
metricReader = createTestMetricReader();
|
|
13
13
|
});
|
|
14
14
|
afterEach(() => {
|
|
15
15
|
tearDownTestMetricReader();
|
|
16
16
|
});
|
|
17
|
-
test("Can create coValue with new agent credentials and add transaction to it", () => {
|
|
18
|
-
const [agent, sessionID] = randomAgentAndSessionID();
|
|
19
|
-
const node = new LocalNode(agent.agentSecret, sessionID, Crypto);
|
|
20
|
-
const coValue = node.createCoValue({
|
|
21
|
-
type: "costream",
|
|
22
|
-
ruleset: { type: "unsafeAllowAll" },
|
|
23
|
-
meta: null,
|
|
24
|
-
...Crypto.createdNowUnique(),
|
|
25
|
-
});
|
|
26
|
-
const transaction = {
|
|
27
|
-
privacy: "trusting",
|
|
28
|
-
madeAt: Date.now(),
|
|
29
|
-
changes: stableStringify([
|
|
30
|
-
{
|
|
31
|
-
hello: "world",
|
|
32
|
-
},
|
|
33
|
-
]),
|
|
34
|
-
};
|
|
35
|
-
const { expectedNewHash } = coValue.verified.expectedNewHashAfter(node.currentSessionID, [transaction]);
|
|
36
|
-
expect(coValue
|
|
37
|
-
.tryAddTransactions(node.currentSessionID, [transaction], expectedNewHash, Crypto.sign(agent.currentSignerSecret(), expectedNewHash), "immediate")
|
|
38
|
-
._unsafeUnwrap()).toBe(true);
|
|
39
|
-
});
|
|
40
17
|
test("transactions with wrong signature are rejected", () => {
|
|
41
|
-
const wrongAgent = Crypto.newRandomAgentSecret();
|
|
42
18
|
const node = nodeWithRandomAgentAndSessionID();
|
|
43
19
|
const coValue = node.createCoValue({
|
|
44
20
|
type: "costream",
|
|
@@ -46,86 +22,52 @@ test("transactions with wrong signature are rejected", () => {
|
|
|
46
22
|
meta: null,
|
|
47
23
|
...Crypto.createdNowUnique(),
|
|
48
24
|
});
|
|
49
|
-
const transaction = {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
coValue
|
|
61
|
-
.tryAddTransactions(node.currentSessionID, [transaction], expectedNewHash, Crypto.sign(Crypto.getAgentSignerSecret(wrongAgent), expectedNewHash), "immediate")
|
|
62
|
-
._unsafeUnwrapErr({ withStackTrace: true });
|
|
63
|
-
});
|
|
64
|
-
test("transactions with correctly signed, but wrong hash are rejected", () => {
|
|
65
|
-
const [agent, sessionID] = randomAgentAndSessionID();
|
|
66
|
-
const node = new LocalNode(agent.agentSecret, sessionID, Crypto);
|
|
67
|
-
const coValue = node.createCoValue({
|
|
68
|
-
type: "costream",
|
|
69
|
-
ruleset: { type: "unsafeAllowAll" },
|
|
70
|
-
meta: null,
|
|
71
|
-
...Crypto.createdNowUnique(),
|
|
72
|
-
});
|
|
73
|
-
const transaction = {
|
|
74
|
-
privacy: "trusting",
|
|
75
|
-
madeAt: Date.now(),
|
|
76
|
-
changes: stableStringify([
|
|
77
|
-
{
|
|
78
|
-
hello: "world",
|
|
79
|
-
},
|
|
80
|
-
]),
|
|
81
|
-
};
|
|
82
|
-
const { expectedNewHash } = coValue.verified.expectedNewHashAfter(node.currentSessionID, [
|
|
83
|
-
{
|
|
84
|
-
privacy: "trusting",
|
|
85
|
-
madeAt: Date.now(),
|
|
86
|
-
changes: stableStringify([
|
|
87
|
-
{
|
|
88
|
-
hello: "wrong",
|
|
89
|
-
},
|
|
90
|
-
]),
|
|
91
|
-
},
|
|
92
|
-
]);
|
|
25
|
+
const { transaction, signature } = coValue.verified.makeNewTrustingTransaction(node.currentSessionID, node.getCurrentAgent(), [{ hello: "world" }]);
|
|
26
|
+
transaction.madeAt = Date.now() + 1000;
|
|
27
|
+
// Delete the transaction from the coValue
|
|
28
|
+
node.internalDeleteCoValue(coValue.id);
|
|
29
|
+
node.syncManager.handleNewContent({
|
|
30
|
+
action: "content",
|
|
31
|
+
id: coValue.id,
|
|
32
|
+
header: coValue.verified.header,
|
|
33
|
+
priority: CO_VALUE_PRIORITY.LOW,
|
|
34
|
+
new: {},
|
|
35
|
+
}, "import");
|
|
36
|
+
const newEntry = node.getCoValue(coValue.id);
|
|
93
37
|
// eslint-disable-next-line neverthrow/must-use-result
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
38
|
+
const result = newEntry.tryAddTransactions(node.currentSessionID, [transaction], signature);
|
|
39
|
+
expect(result.isErr()).toBe(true);
|
|
40
|
+
expect(newEntry.getValidSortedTransactions().length).toBe(0);
|
|
97
41
|
});
|
|
98
42
|
test("New transactions in a group correctly update owned values, including subscriptions", async () => {
|
|
99
43
|
const [agent, sessionID] = randomAgentAndSessionID();
|
|
100
44
|
const node = new LocalNode(agent.agentSecret, sessionID, Crypto);
|
|
45
|
+
const timeBeforeEdit = Date.now() - 1000;
|
|
46
|
+
const dateNowMock = vi
|
|
47
|
+
.spyOn(Date, "now")
|
|
48
|
+
.mockImplementation(() => timeBeforeEdit);
|
|
101
49
|
const group = node.createGroup();
|
|
102
|
-
const timeBeforeEdit = Date.now();
|
|
103
50
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
104
51
|
const map = group.createMap();
|
|
105
52
|
map.set("hello", "world");
|
|
106
53
|
const listener = vi.fn();
|
|
107
|
-
map.subscribe(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
madeAt: timeBeforeEdit,
|
|
112
|
-
changes: stableStringify([
|
|
113
|
-
{
|
|
114
|
-
op: "set",
|
|
115
|
-
key: agent.id,
|
|
116
|
-
value: "revoked",
|
|
117
|
-
},
|
|
118
|
-
]),
|
|
119
|
-
};
|
|
120
|
-
const { expectedNewHash } = group.core.verified.expectedNewHashAfter(sessionID, [resignationThatWeJustLearnedAbout]);
|
|
121
|
-
const signature = Crypto.sign(node.getCurrentAgent().currentSignerSecret(), expectedNewHash);
|
|
54
|
+
map.subscribe((map) => {
|
|
55
|
+
listener(map.get("hello"));
|
|
56
|
+
});
|
|
57
|
+
expect(listener).toHaveBeenLastCalledWith("world");
|
|
122
58
|
expect(map.core.getValidSortedTransactions().length).toBe(1);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
59
|
+
expect(group.get(agent.id)).toBe("admin");
|
|
60
|
+
group.core.makeTransaction([
|
|
61
|
+
{
|
|
62
|
+
op: "set",
|
|
63
|
+
key: agent.id,
|
|
64
|
+
value: "revoked",
|
|
65
|
+
},
|
|
66
|
+
], "trusting");
|
|
67
|
+
expect(group.get(agent.id)).toBe("revoked");
|
|
68
|
+
dateNowMock.mockReset();
|
|
69
|
+
expect(listener).toHaveBeenCalledTimes(2);
|
|
70
|
+
expect(listener).toHaveBeenLastCalledWith(undefined);
|
|
129
71
|
expect(map.core.getValidSortedTransactions().length).toBe(0);
|
|
130
72
|
});
|
|
131
73
|
test("correctly records transactions", async () => {
|
|
@@ -219,102 +161,35 @@ test("listeners are notified even if the previous listener threw an error", asyn
|
|
|
219
161
|
expect(mapOnNode2.get("hello")).toBe("world");
|
|
220
162
|
errorLog.mockRestore();
|
|
221
163
|
});
|
|
222
|
-
test("getValidTransactions should skip
|
|
223
|
-
const [agent, sessionID] =
|
|
164
|
+
test("getValidTransactions should skip private transactions with invalid JSON", () => {
|
|
165
|
+
const [agent, sessionID] = agentAndSessionIDFromSecret(agentSecret);
|
|
224
166
|
const node = new LocalNode(agent.agentSecret, sessionID, Crypto);
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
coValue
|
|
241
|
-
.tryAddTransactions(node.currentSessionID, [validTransaction], expectedNewHash1, Crypto.sign(agent.currentSignerSecret(), expectedNewHash1), "immediate")
|
|
242
|
-
._unsafeUnwrap();
|
|
243
|
-
// Create an invalid transaction with malformed JSON
|
|
244
|
-
const invalidTransaction = {
|
|
245
|
-
privacy: "trusting",
|
|
246
|
-
madeAt: Date.now() + 1,
|
|
247
|
-
changes: '{"invalid": json}', // Invalid JSON string
|
|
167
|
+
const fixtures = {
|
|
168
|
+
id: "co_zWwrEiushQLvbkWd6Z3L8WxTU1r",
|
|
169
|
+
signature: "signature_z3ktW7wxMnW7VYExCGZv4Ug2UJSW3ag6zLDiP8GpZThzif6veJt7JipYpUgshhuGbgHtLcWywWSWysV7hChxFypDt",
|
|
170
|
+
decrypted: '[{"after":"start","op":"app","value":"co_zMphsnYN6GU8nn2HDY5suvyGufY"}]',
|
|
171
|
+
key: {
|
|
172
|
+
secret: "keySecret_z3dU66SsyQkkGKpNCJW6NX74MnfVGHUyY7r85b4M8X88L",
|
|
173
|
+
id: "key_z5XUAHyoqUV9zXWvMK",
|
|
174
|
+
},
|
|
175
|
+
transaction: {
|
|
176
|
+
privacy: "private",
|
|
177
|
+
madeAt: 0,
|
|
178
|
+
encryptedChanges: "encrypted_UNAxqdUSGRZ2rzuLU99AFPKCe2C0HwsTzMWQreXZqLr6RpWrSMa-5lwgwIev7xPHTgZFq5UyUgMFrO9zlHJHJGgjJcDzFihY=",
|
|
179
|
+
keyUsed: "key_z5XUAHyoqUV9zXWvMK",
|
|
180
|
+
},
|
|
181
|
+
session: "sealer_z5yhsCCe2XwLTZC4254mUoMASshm3Diq49JrefPpjTktp/signer_z7gVGDpNz9qUtsRxAkHMuu4DYdtVVCG4XELTKPYdoYLPr_session_z9mDP8FoonSA",
|
|
248
182
|
};
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
183
|
+
const group = node.createGroup();
|
|
184
|
+
const map = group.createMap();
|
|
185
|
+
map.set("hello", "world");
|
|
186
|
+
// This should fail silently, because the encryptedChanges will be outputted as gibberish
|
|
187
|
+
map.core
|
|
188
|
+
.tryAddTransactions(fixtures.session, [fixtures.transaction], fixtures.signature)
|
|
254
189
|
._unsafeUnwrap();
|
|
255
190
|
// Get valid transactions - should only include the valid one
|
|
256
|
-
const validTransactions =
|
|
191
|
+
const validTransactions = map.core.getValidTransactions();
|
|
257
192
|
expect(validTransactions).toHaveLength(1);
|
|
258
|
-
expect(validTransactions[0]?.changes).toEqual([{ hello: "world" }]);
|
|
259
|
-
});
|
|
260
|
-
test("getValidTransactions should skip private transactions with invalid JSON", () => {
|
|
261
|
-
const [agent, sessionID] = randomAgentAndSessionID();
|
|
262
|
-
const node = new LocalNode(agent.agentSecret, sessionID, Crypto);
|
|
263
|
-
const group = node.createGroup();
|
|
264
|
-
group.addMember("everyone", "writer");
|
|
265
|
-
const coValue = node.createCoValue({
|
|
266
|
-
type: "costream",
|
|
267
|
-
ruleset: { type: "ownedByGroup", group: group.id },
|
|
268
|
-
meta: null,
|
|
269
|
-
...Crypto.createdNowUnique(),
|
|
270
|
-
});
|
|
271
|
-
const { secret: keySecret, id: keyID } = coValue.getCurrentReadKey();
|
|
272
|
-
assert(keySecret);
|
|
273
|
-
const encrypted = Crypto.encryptForTransaction([{ hello: "world" }], keySecret, {
|
|
274
|
-
in: coValue.id,
|
|
275
|
-
tx: coValue.nextTransactionID(),
|
|
276
|
-
});
|
|
277
|
-
// Create a valid private transaction first
|
|
278
|
-
const validTransaction = {
|
|
279
|
-
privacy: "private",
|
|
280
|
-
madeAt: Date.now(),
|
|
281
|
-
keyUsed: keyID,
|
|
282
|
-
encryptedChanges: encrypted,
|
|
283
|
-
};
|
|
284
|
-
const { expectedNewHash: expectedNewHash1 } = coValue.verified.expectedNewHashAfter(node.currentSessionID, [
|
|
285
|
-
validTransaction,
|
|
286
|
-
]);
|
|
287
|
-
coValue
|
|
288
|
-
.tryAddTransactions(node.currentSessionID, [validTransaction], expectedNewHash1, Crypto.sign(agent.currentSignerSecret(), expectedNewHash1), "immediate")
|
|
289
|
-
._unsafeUnwrap();
|
|
290
|
-
const textEncoder = new TextEncoder();
|
|
291
|
-
const brokenChange = `encrypted_U${bytesToBase64url(encrypt(textEncoder.encode('{"invalid": json}'), keySecret, textEncoder.encode(stableStringify({
|
|
292
|
-
in: coValue.id,
|
|
293
|
-
tx: coValue.nextTransactionID(),
|
|
294
|
-
}))))}`;
|
|
295
|
-
// Create an invalid private transaction with malformed JSON after decryption
|
|
296
|
-
const invalidTransaction = {
|
|
297
|
-
privacy: "private",
|
|
298
|
-
madeAt: Date.now() + 1,
|
|
299
|
-
keyUsed: keyID,
|
|
300
|
-
encryptedChanges: brokenChange,
|
|
301
|
-
};
|
|
302
|
-
const { expectedNewHash: expectedNewHash2 } = coValue.verified.expectedNewHashAfter(node.currentSessionID, [
|
|
303
|
-
invalidTransaction,
|
|
304
|
-
]);
|
|
305
|
-
coValue
|
|
306
|
-
.tryAddTransactions(node.currentSessionID, [invalidTransaction], expectedNewHash2, Crypto.sign(agent.currentSignerSecret(), expectedNewHash2), "immediate")
|
|
307
|
-
._unsafeUnwrap();
|
|
308
|
-
// Get valid transactions - should skip the invalid one
|
|
309
|
-
const validTransactions = coValue.getValidTransactions({
|
|
310
|
-
ignorePrivateTransactions: false,
|
|
311
|
-
});
|
|
312
|
-
// Since we can't easily create valid private transactions in this test setup,
|
|
313
|
-
// we just verify that the method doesn't crash and handles the invalid JSON gracefully
|
|
314
|
-
expect(validTransactions).toBeDefined();
|
|
315
|
-
expect(Array.isArray(validTransactions)).toBe(true);
|
|
316
|
-
expect(validTransactions.length).toBe(1);
|
|
317
|
-
expect(validTransactions[0]?.changes).toEqual([{ hello: "world" }]);
|
|
318
193
|
});
|
|
319
194
|
describe("markErrored and isErroredInPeer", () => {
|
|
320
195
|
test("markErrored should mark a peer as errored with the provided error", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coValueCore.test.js","sourceRoot":"","sources":["../../src/tests/coValueCore.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coValueCore.test.js","sourceRoot":"","sources":["../../src/tests/coValueCore.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreWasm.test.d.ts","sourceRoot":"","sources":["../../src/tests/coreWasm.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { assert, describe, expect, it } from "vitest";
|
|
2
|
+
import { WasmCrypto } from "../crypto/WasmCrypto";
|
|
3
|
+
import { LocalNode } from "../exports";
|
|
4
|
+
import { agentAndSessionIDFromSecret, } from "./testUtils";
|
|
5
|
+
import { PureJSCrypto } from "../crypto/PureJSCrypto";
|
|
6
|
+
const wasmCrypto = await WasmCrypto.create();
|
|
7
|
+
const jsCrypto = await PureJSCrypto.create();
|
|
8
|
+
const agentSecret = "sealerSecret_zE3Nr7YFr1KkVbJSx4JDCzYn4ApYdm8kJ5ghNBxREHQya/signerSecret_z9fEu4eNG1eXHMak3YSzY7uLdoG8HESSJ8YW4xWdNNDSP";
|
|
9
|
+
function createTestNode() {
|
|
10
|
+
const [agent, session] = agentAndSessionIDFromSecret(agentSecret);
|
|
11
|
+
return {
|
|
12
|
+
agent,
|
|
13
|
+
session,
|
|
14
|
+
node: new LocalNode(agent.agentSecret, session, jsCrypto),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
describe("SessionLog WASM", () => {
|
|
18
|
+
it("it works", () => {
|
|
19
|
+
const [agent, sessionId] = agentAndSessionIDFromSecret(agentSecret);
|
|
20
|
+
const session = wasmCrypto.createSessionLog("co_test1", sessionId, agent.currentSignerID());
|
|
21
|
+
expect(session).toBeDefined();
|
|
22
|
+
});
|
|
23
|
+
it("test_add_from_example_json", () => {
|
|
24
|
+
const { agent, session, node } = createTestNode();
|
|
25
|
+
const group = node.createGroup();
|
|
26
|
+
const sessionContent = group.core.verified.newContentSince(undefined)?.[0]?.new[session];
|
|
27
|
+
assert(sessionContent);
|
|
28
|
+
let log = wasmCrypto.createSessionLog(group.id, session, agent.currentSignerID());
|
|
29
|
+
log.tryAdd(sessionContent.newTransactions, sessionContent.lastSignature, false);
|
|
30
|
+
});
|
|
31
|
+
it("test_add_new_transaction", () => {
|
|
32
|
+
const { agent, session, node } = createTestNode();
|
|
33
|
+
const group = node.createGroup();
|
|
34
|
+
const sessionContent = group.core.verified.newContentSince(undefined)?.[0]?.new[session];
|
|
35
|
+
assert(sessionContent);
|
|
36
|
+
let log = wasmCrypto.createSessionLog(group.id, session, agent.currentSignerID());
|
|
37
|
+
const changesJson = [
|
|
38
|
+
{ after: "start", op: "app", value: "co_zMphsnYN6GU8nn2HDY5suvyGufY" },
|
|
39
|
+
];
|
|
40
|
+
const key = group.getCurrentReadKey();
|
|
41
|
+
assert(key);
|
|
42
|
+
assert(key.secret);
|
|
43
|
+
const { signature, transaction } = log.addNewPrivateTransaction(agent, changesJson, key.id, key.secret, 0);
|
|
44
|
+
expect(signature).toMatch(/^signature_z[a-zA-Z0-9]+$/);
|
|
45
|
+
expect(transaction).toEqual({
|
|
46
|
+
encryptedChanges: expect.stringMatching(/^encrypted_U/),
|
|
47
|
+
keyUsed: expect.stringMatching(/^key_z/),
|
|
48
|
+
madeAt: 0,
|
|
49
|
+
privacy: "private",
|
|
50
|
+
});
|
|
51
|
+
const decrypted = log.decryptNextTransactionChangesJson(0, key.secret);
|
|
52
|
+
expect(decrypted).toEqual('[{"after":"start","op":"app","value":"co_zMphsnYN6GU8nn2HDY5suvyGufY"}]');
|
|
53
|
+
});
|
|
54
|
+
it("test_decrypt + clone", () => {
|
|
55
|
+
const [agent] = agentAndSessionIDFromSecret(agentSecret);
|
|
56
|
+
const fixtures = {
|
|
57
|
+
id: "co_zWwrEiushQLvbkWd6Z3L8WxTU1r",
|
|
58
|
+
signature: "signature_z3ktW7wxMnW7VYExCGZv4Ug2UJSW3ag6zLDiP8GpZThzif6veJt7JipYpUgshhuGbgHtLcWywWSWysV7hChxFypDt",
|
|
59
|
+
decrypted: '[{"after":"start","op":"app","value":"co_zMphsnYN6GU8nn2HDY5suvyGufY"}]',
|
|
60
|
+
key: {
|
|
61
|
+
secret: "keySecret_z3dU66SsyQkkGKpNCJW6NX74MnfVGHUyY7r85b4M8X88L",
|
|
62
|
+
id: "key_z5XUAHyoqUV9zXWvMK",
|
|
63
|
+
},
|
|
64
|
+
transaction: {
|
|
65
|
+
privacy: "private",
|
|
66
|
+
madeAt: 0,
|
|
67
|
+
encryptedChanges: "encrypted_UNAxqdUSGRZ2rzuLU99AFPKCe2C0HwsTzMWQreXZqLr6RpWrSMa-5lwgwIev7xPHTgZFq5UyUgMFrO9zlHJHJGgjJcDzFihY=",
|
|
68
|
+
keyUsed: "key_z5XUAHyoqUV9zXWvMK",
|
|
69
|
+
},
|
|
70
|
+
session: "sealer_z5yhsCCe2XwLTZC4254mUoMASshm3Diq49JrefPpjTktp/signer_z7gVGDpNz9qUtsRxAkHMuu4DYdtVVCG4XELTKPYdoYLPr_session_z9mDP8FoonSA",
|
|
71
|
+
};
|
|
72
|
+
let log = wasmCrypto.createSessionLog(fixtures.id, fixtures.session, agent.currentSignerID());
|
|
73
|
+
log.tryAdd([fixtures.transaction], fixtures.signature, true);
|
|
74
|
+
const decrypted = log
|
|
75
|
+
.clone()
|
|
76
|
+
.decryptNextTransactionChangesJson(0, fixtures.key.secret);
|
|
77
|
+
expect(decrypted).toEqual(fixtures.decrypted);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=coreWasm.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreWasm.test.js","sourceRoot":"","sources":["../../src/tests/coreWasm.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,7 +133,7 @@ describe("Group.addMember", () => {
|
|
|
133
133
|
const personOnReaderNode = await loadCoValueOrFail(reader.node, person.id);
|
|
134
134
|
expect(personOnReaderNode.get("name")).toEqual(undefined);
|
|
135
135
|
});
|
|
136
|
-
test("an admin should not be able downgrade an admin", async () => {
|
|
136
|
+
test.each(["writer", "reader", "writeOnly"])("an admin should not be able to downgrade an admin to %s", async (targetRole) => {
|
|
137
137
|
const admin = await setupTestAccount({
|
|
138
138
|
connected: true,
|
|
139
139
|
});
|
|
@@ -147,12 +147,7 @@ describe("Group.addMember", () => {
|
|
|
147
147
|
const otherAdminOnAdminNode = await loadCoValueOrFail(admin.node, otherAdmin.accountID);
|
|
148
148
|
group.addMember(otherAdminOnAdminNode, "admin");
|
|
149
149
|
// Try to downgrade other admin
|
|
150
|
-
|
|
151
|
-
group.addMember(otherAdminOnAdminNode, "writer");
|
|
152
|
-
}
|
|
153
|
-
catch (e) {
|
|
154
|
-
expect(e).toBeDefined();
|
|
155
|
-
}
|
|
150
|
+
expect(() => group.addMember(otherAdminOnAdminNode, targetRole)).toThrow("Administrators cannot demote other administrators in a group");
|
|
156
151
|
expect(group.roleOf(otherAdmin.accountID)).toEqual("admin");
|
|
157
152
|
// Verify other admin still has admin access by adding a new member
|
|
158
153
|
const reader = await setupTestAccount({
|
|
@@ -165,15 +160,15 @@ describe("Group.addMember", () => {
|
|
|
165
160
|
expect(expectMap(personOnReaderNode.core.getCurrentContent()).get("name")).toEqual("John Doe");
|
|
166
161
|
});
|
|
167
162
|
});
|
|
168
|
-
test("an admin should be able downgrade themselves", async () => {
|
|
163
|
+
test.each(["writer", "reader", "writeOnly"])("an admin should be able downgrade themselves to %s", async (targetRole) => {
|
|
169
164
|
const admin = await setupTestAccount({
|
|
170
165
|
connected: true,
|
|
171
166
|
});
|
|
172
167
|
const group = admin.node.createGroup();
|
|
173
168
|
const account = await loadCoValueOrFail(admin.node, admin.accountID);
|
|
174
|
-
// Downgrade self to
|
|
175
|
-
group.addMember(account,
|
|
176
|
-
expect(group.roleOf(admin.accountID)).toEqual(
|
|
169
|
+
// Downgrade self to target role
|
|
170
|
+
group.addMember(account, targetRole);
|
|
171
|
+
expect(group.roleOf(admin.accountID)).toEqual(targetRole);
|
|
177
172
|
});
|
|
178
173
|
test("an admin should be able downgrade a writeOnly to reader", async () => {
|
|
179
174
|
const admin = await setupTestAccount({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.addMember.test.js","sourceRoot":"","sources":["../../src/tests/group.addMember.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"group.addMember.test.js","sourceRoot":"","sources":["../../src/tests/group.addMember.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
2
2
|
import { expectMap } from "../coValue";
|
|
3
3
|
import { CO_VALUE_LOADING_CONFIG, setCoValueLoadingRetryDelay, } from "../config";
|
|
4
|
-
import { SyncMessagesLog, TEST_NODE_CONFIG, blockMessageTypeOnOutgoingPeer, loadCoValueOrFail, setupTestAccount, setupTestNode, waitFor, } from "./testUtils";
|
|
4
|
+
import { SyncMessagesLog, TEST_NODE_CONFIG, blockMessageTypeOnOutgoingPeer, getSyncServerConnectedPeer, loadCoValueOrFail, setupTestAccount, setupTestNode, waitFor, } from "./testUtils";
|
|
5
5
|
let jazzCloud;
|
|
6
6
|
// Set a short timeout to make the tests on unavailable complete faster
|
|
7
7
|
setCoValueLoadingRetryDelay(100);
|
|
@@ -762,5 +762,44 @@ describe("loading coValues from server", () => {
|
|
|
762
762
|
`);
|
|
763
763
|
vi.useRealTimers();
|
|
764
764
|
});
|
|
765
|
+
test("should not request dependencies if transaction verification is disabled", async () => {
|
|
766
|
+
// Create a disconnected client
|
|
767
|
+
const { node: client, accountID } = await setupTestAccount({
|
|
768
|
+
connected: false,
|
|
769
|
+
});
|
|
770
|
+
const account = client.expectCurrentAccount(accountID);
|
|
771
|
+
// Prepare a group -- this will be a non-account dependency of a forthcoming map.
|
|
772
|
+
const group = client.createGroup();
|
|
773
|
+
group.addMember("everyone", "writer");
|
|
774
|
+
// Create a sync server and disable transaction verification
|
|
775
|
+
const syncServer = await setupTestAccount({ isSyncServer: true });
|
|
776
|
+
syncServer.node.syncManager.disableTransactionVerification();
|
|
777
|
+
// Connect the client, but don't setup syncing just yet...
|
|
778
|
+
const { peer } = getSyncServerConnectedPeer({
|
|
779
|
+
peerId: client.getCurrentAgent().id,
|
|
780
|
+
syncServer: syncServer.node,
|
|
781
|
+
});
|
|
782
|
+
// Disable reconciliation while we setup syncing because we don't want the
|
|
783
|
+
// server to know about our forthcoming map's dependencies (group + account).
|
|
784
|
+
const blocker = blockMessageTypeOnOutgoingPeer(peer, "load", {});
|
|
785
|
+
client.syncManager.addPeer(peer);
|
|
786
|
+
blocker.unblock();
|
|
787
|
+
// Create a map and set a value on it.
|
|
788
|
+
// If transaction verification were enabled, this would trigger LOAD messages
|
|
789
|
+
// from the server to the client asking for the group and account. However, we
|
|
790
|
+
// don't expect to see those messages since we disabled transaction verification.
|
|
791
|
+
const map = group.createMap();
|
|
792
|
+
map.set("hello", "world");
|
|
793
|
+
await map.core.waitForSync();
|
|
794
|
+
const syncMessages = SyncMessagesLog.getMessages({
|
|
795
|
+
Account: account.core,
|
|
796
|
+
Group: group.core,
|
|
797
|
+
Map: map.core,
|
|
798
|
+
});
|
|
799
|
+
expect(syncMessages.some((msg) => msg.includes("LOAD Account") || msg.includes("LOAD Group"))).toBe(false);
|
|
800
|
+
// Verify the map is available on the server (transaction was accepted)
|
|
801
|
+
const mapOnServerCore = await syncServer.node.loadCoValueCore(map.core.id);
|
|
802
|
+
expect(mapOnServerCore.isAvailable()).toBe(true);
|
|
803
|
+
});
|
|
765
804
|
});
|
|
766
805
|
//# sourceMappingURL=sync.load.test.js.map
|