cojson 0.18.6 → 0.18.7
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 +11 -0
- package/dist/coValueContentMessage.d.ts +2 -0
- package/dist/coValueContentMessage.d.ts.map +1 -1
- package/dist/coValueContentMessage.js +7 -0
- package/dist/coValueContentMessage.js.map +1 -1
- package/dist/coValueCore/SessionMap.d.ts +2 -2
- package/dist/coValueCore/SessionMap.d.ts.map +1 -1
- package/dist/coValueCore/SessionMap.js +2 -4
- package/dist/coValueCore/SessionMap.js.map +1 -1
- package/dist/coValueCore/branching.d.ts +31 -9
- package/dist/coValueCore/branching.d.ts.map +1 -1
- package/dist/coValueCore/branching.js +50 -100
- package/dist/coValueCore/branching.js.map +1 -1
- package/dist/coValueCore/coValueCore.d.ts +12 -8
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +93 -23
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/verifiedState.d.ts +4 -2
- package/dist/coValueCore/verifiedState.d.ts.map +1 -1
- package/dist/coValueCore/verifiedState.js +6 -4
- package/dist/coValueCore/verifiedState.js.map +1 -1
- package/dist/coValues/coList.d.ts.map +1 -1
- package/dist/coValues/coList.js +10 -1
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coMap.d.ts +2 -2
- package/dist/coValues/coMap.d.ts.map +1 -1
- package/dist/coValues/coMap.js +8 -8
- package/dist/coValues/coMap.js.map +1 -1
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/group.js +14 -1
- package/dist/coValues/group.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/crypto/PureJSCrypto.d.ts.map +1 -1
- package/dist/crypto/PureJSCrypto.js +14 -6
- package/dist/crypto/PureJSCrypto.js.map +1 -1
- package/dist/exports.d.ts +3 -2
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +2 -2
- package/dist/exports.js.map +1 -1
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +7 -2
- package/dist/localNode.js.map +1 -1
- package/dist/storage/storageAsync.d.ts.map +1 -1
- package/dist/storage/storageAsync.js.map +1 -1
- package/dist/sync.d.ts +1 -3
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +8 -18
- package/dist/sync.js.map +1 -1
- package/dist/tests/branching.test.js +107 -9
- package/dist/tests/branching.test.js.map +1 -1
- package/dist/tests/coValueCore.test.js +45 -1
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/sync.content.test.d.ts +2 -0
- package/dist/tests/sync.content.test.d.ts.map +1 -0
- package/dist/tests/sync.content.test.js +120 -0
- package/dist/tests/sync.content.test.js.map +1 -0
- package/dist/tests/sync.load.test.js +2 -2
- package/dist/tests/sync.storage.test.js +1 -1
- package/dist/tests/sync.upload.test.js +2 -2
- package/package.json +2 -2
- package/src/coValueContentMessage.ts +13 -0
- package/src/coValueCore/SessionMap.ts +2 -2
- package/src/coValueCore/branching.ts +94 -149
- package/src/coValueCore/coValueCore.ts +121 -27
- package/src/coValueCore/verifiedState.ts +8 -0
- package/src/coValues/coList.ts +12 -1
- package/src/coValues/coMap.ts +10 -12
- package/src/coValues/group.ts +14 -1
- package/src/config.ts +9 -0
- package/src/crypto/PureJSCrypto.ts +25 -13
- package/src/exports.ts +7 -1
- package/src/localNode.ts +8 -2
- package/src/storage/storageAsync.ts +0 -1
- package/src/sync.ts +8 -32
- package/src/tests/branching.test.ts +158 -9
- package/src/tests/coValueCore.test.ts +62 -2
- package/src/tests/sync.content.test.ts +153 -0
- package/src/tests/sync.load.test.ts +2 -2
- package/src/tests/sync.storage.test.ts +1 -1
- package/src/tests/sync.upload.test.ts +2 -2
|
@@ -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":"sync.content.test.d.ts","sourceRoot":"","sources":["../../src/tests/sync.content.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, test } from "vitest";
|
|
2
|
+
import { SyncMessagesLog, TEST_NODE_CONFIG, setupTestNode } from "./testUtils";
|
|
3
|
+
// We want to simulate a real world communication that happens asynchronously
|
|
4
|
+
TEST_NODE_CONFIG.withAsyncPeers = true;
|
|
5
|
+
describe("handling content messages", () => {
|
|
6
|
+
beforeEach(async () => {
|
|
7
|
+
SyncMessagesLog.clear();
|
|
8
|
+
});
|
|
9
|
+
test("dependencies are included when syncing new content to clients", async () => {
|
|
10
|
+
/*
|
|
11
|
+
* Initial Setup:
|
|
12
|
+
* core <-- edge <-- client1
|
|
13
|
+
*/
|
|
14
|
+
const core = setupTestNode();
|
|
15
|
+
const edge = setupTestNode();
|
|
16
|
+
edge.connectToSyncServer({
|
|
17
|
+
ourName: "edge",
|
|
18
|
+
syncServerName: "core",
|
|
19
|
+
syncServer: core.node,
|
|
20
|
+
});
|
|
21
|
+
const client1 = setupTestNode();
|
|
22
|
+
client1.connectToSyncServer({
|
|
23
|
+
ourName: "client1",
|
|
24
|
+
syncServerName: "edge",
|
|
25
|
+
syncServer: edge.node,
|
|
26
|
+
});
|
|
27
|
+
// Create a map with a dependency on the client.
|
|
28
|
+
// Everythig will sync all the way back to core.
|
|
29
|
+
const group = client1.node.createGroup();
|
|
30
|
+
const map = group.createMap();
|
|
31
|
+
map.set("hello", "world", "trusting");
|
|
32
|
+
await map.core.waitForSync();
|
|
33
|
+
/*
|
|
34
|
+
* Add another client:
|
|
35
|
+
*
|
|
36
|
+
* |-- client1
|
|
37
|
+
* core <-- edge <--|
|
|
38
|
+
* |-- client2
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
const client2 = setupTestNode();
|
|
42
|
+
const { peerStateOnServer: client2PeerStateOnEdge } = client2.connectToSyncServer({
|
|
43
|
+
ourName: "client2",
|
|
44
|
+
syncServerName: "edge",
|
|
45
|
+
syncServer: edge.node,
|
|
46
|
+
});
|
|
47
|
+
client2PeerStateOnEdge.setOptimisticKnownState(map.core.id, {
|
|
48
|
+
id: map.core.id,
|
|
49
|
+
header: false,
|
|
50
|
+
sessions: {},
|
|
51
|
+
});
|
|
52
|
+
// Update the map on client1.
|
|
53
|
+
// This should sync the map AND its dependencies to the new client.
|
|
54
|
+
map.set("hello2", "world2", "trusting");
|
|
55
|
+
await map.core.waitForSync();
|
|
56
|
+
const syncMessages = SyncMessagesLog.getMessages({
|
|
57
|
+
Group: group.core,
|
|
58
|
+
Map: map.core,
|
|
59
|
+
});
|
|
60
|
+
expect(syncMessages.some((msg) => msg.startsWith("edge -> client2 | CONTENT Map"))).toBe(true);
|
|
61
|
+
expect(syncMessages.some((msg) => msg.startsWith("edge -> client2 | CONTENT Group"))).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
test("dependencies are excluded when syncing new content to servers", async () => {
|
|
64
|
+
/*
|
|
65
|
+
* Initial Setup:
|
|
66
|
+
* core1 <-- edge <-- client
|
|
67
|
+
*/
|
|
68
|
+
const core1 = setupTestNode();
|
|
69
|
+
const edge = setupTestNode();
|
|
70
|
+
edge.connectToSyncServer({
|
|
71
|
+
ourName: "edge",
|
|
72
|
+
syncServerName: "core1",
|
|
73
|
+
syncServer: core1.node,
|
|
74
|
+
});
|
|
75
|
+
const client = setupTestNode();
|
|
76
|
+
client.connectToSyncServer({
|
|
77
|
+
ourName: "client",
|
|
78
|
+
syncServerName: "edge",
|
|
79
|
+
syncServer: edge.node,
|
|
80
|
+
});
|
|
81
|
+
// Create a map with a dependency on the client.
|
|
82
|
+
// Everythig will sync all the way back to core1.
|
|
83
|
+
const group = client.node.createGroup();
|
|
84
|
+
const map = group.createMap();
|
|
85
|
+
map.set("hello", "world", "trusting");
|
|
86
|
+
await map.core.waitForSync();
|
|
87
|
+
/*
|
|
88
|
+
* Add another core:
|
|
89
|
+
*
|
|
90
|
+
* core1 <--
|
|
91
|
+
* |
|
|
92
|
+
* |-- edge <-- client
|
|
93
|
+
* |
|
|
94
|
+
* core2 <--
|
|
95
|
+
*/
|
|
96
|
+
const core2 = setupTestNode();
|
|
97
|
+
const { peerState: core2PeerStateOnEdge } = edge.connectToSyncServer({
|
|
98
|
+
ourName: "edge",
|
|
99
|
+
syncServerName: "core2",
|
|
100
|
+
syncServer: core2.node,
|
|
101
|
+
skipReconciliation: true,
|
|
102
|
+
});
|
|
103
|
+
core2PeerStateOnEdge.setOptimisticKnownState(map.core.id, {
|
|
104
|
+
id: map.core.id,
|
|
105
|
+
header: false,
|
|
106
|
+
sessions: {},
|
|
107
|
+
});
|
|
108
|
+
// Update the map on the client.
|
|
109
|
+
// This should sync ONLY the map back to both cores.
|
|
110
|
+
map.set("hello2", "world2", "trusting");
|
|
111
|
+
await map.core.waitForSync();
|
|
112
|
+
const syncMessages = SyncMessagesLog.getMessages({
|
|
113
|
+
Group: group.core,
|
|
114
|
+
Map: map.core,
|
|
115
|
+
});
|
|
116
|
+
expect(syncMessages.some((msg) => msg.startsWith("edge -> core2 | CONTENT Map"))).toBe(true);
|
|
117
|
+
expect(syncMessages.some((msg) => msg.startsWith("edge -> core2 | CONTENT Group"))).toBe(false);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
//# sourceMappingURL=sync.content.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.content.test.js","sourceRoot":"","sources":["../../src/tests/sync.content.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,10 +105,10 @@ describe("loading coValues from server", () => {
|
|
|
105
105
|
[
|
|
106
106
|
"client -> server | LOAD Branch sessions: empty",
|
|
107
107
|
"server -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
108
|
-
"server -> client | CONTENT Map header: true new: After: 0 New:
|
|
108
|
+
"server -> client | CONTENT Map header: true new: After: 0 New: 3",
|
|
109
109
|
"server -> client | CONTENT Branch header: true new: After: 0 New: 2",
|
|
110
110
|
"client -> server | KNOWN Group sessions: header/5",
|
|
111
|
-
"client -> server | KNOWN Map sessions: header/
|
|
111
|
+
"client -> server | KNOWN Map sessions: header/3",
|
|
112
112
|
"client -> server | KNOWN Branch sessions: header/2",
|
|
113
113
|
]
|
|
114
114
|
`);
|
|
@@ -164,7 +164,7 @@ describe("client with storage syncs with server", () => {
|
|
|
164
164
|
[
|
|
165
165
|
"client -> storage | LOAD Branch sessions: empty",
|
|
166
166
|
"storage -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
167
|
-
"storage -> client | CONTENT Map header: true new: After: 0 New:
|
|
167
|
+
"storage -> client | CONTENT Map header: true new: After: 0 New: 3",
|
|
168
168
|
"storage -> client | CONTENT Branch header: true new: After: 0 New: 2",
|
|
169
169
|
]
|
|
170
170
|
`);
|
|
@@ -62,11 +62,11 @@ describe("client to server upload", () => {
|
|
|
62
62
|
"server -> client | CONTENT Map header: true new: After: 0 New: 2",
|
|
63
63
|
"client -> server | KNOWN Group sessions: header/5",
|
|
64
64
|
"client -> server | KNOWN Map sessions: header/2",
|
|
65
|
-
"client -> server | LOAD Branch sessions: empty",
|
|
66
|
-
"server -> client | KNOWN Branch sessions: empty",
|
|
67
65
|
"client -> server | CONTENT Branch header: true new: After: 0 New: 1",
|
|
66
|
+
"client -> server | CONTENT Map header: false new: After: 0 New: 1",
|
|
68
67
|
"client -> server | CONTENT Branch header: false new: After: 1 New: 1",
|
|
69
68
|
"server -> client | KNOWN Branch sessions: header/1",
|
|
69
|
+
"server -> client | KNOWN Map sessions: header/3",
|
|
70
70
|
"server -> client | KNOWN Branch sessions: header/2",
|
|
71
71
|
]
|
|
72
72
|
`);
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"type": "module",
|
|
27
27
|
"license": "MIT",
|
|
28
|
-
"version": "0.18.
|
|
28
|
+
"version": "0.18.7",
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@opentelemetry/sdk-metrics": "^2.0.0",
|
|
31
31
|
"libsql": "^0.5.13",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@scure/base": "1.2.1",
|
|
40
40
|
"neverthrow": "^7.0.1",
|
|
41
41
|
"unicode-segmenter": "^0.12.0",
|
|
42
|
-
"cojson-core-wasm": "0.18.
|
|
42
|
+
"cojson-core-wasm": "0.18.7"
|
|
43
43
|
},
|
|
44
44
|
"gitHead": "33c27053293b4801b968c61d5c4c989f93a67d13",
|
|
45
45
|
"scripts": {
|
|
@@ -2,6 +2,7 @@ import { CoValueHeader, Transaction } from "./coValueCore/verifiedState.js";
|
|
|
2
2
|
import { TRANSACTION_CONFIG } from "./config.js";
|
|
3
3
|
import { Signature } from "./crypto/crypto.js";
|
|
4
4
|
import { RawCoID, SessionID } from "./ids.js";
|
|
5
|
+
import { JsonValue } from "./jsonValue.js";
|
|
5
6
|
import { getPriorityFromHeader } from "./priority.js";
|
|
6
7
|
import { NewContentMessage, emptyKnownState } from "./sync.js";
|
|
7
8
|
|
|
@@ -59,6 +60,18 @@ export function exceedsRecommendedSize(
|
|
|
59
60
|
);
|
|
60
61
|
}
|
|
61
62
|
|
|
63
|
+
export function validateTxSizeLimitInBytes(changes: JsonValue[]): void {
|
|
64
|
+
const serializedSize = new TextEncoder().encode(
|
|
65
|
+
JSON.stringify(changes),
|
|
66
|
+
).length;
|
|
67
|
+
if (serializedSize > TRANSACTION_CONFIG.MAX_TX_SIZE_BYTES) {
|
|
68
|
+
throw new Error(
|
|
69
|
+
`Transaction is too large to be synced: ${serializedSize} > ${TRANSACTION_CONFIG.MAX_TX_SIZE_BYTES} bytes. ` +
|
|
70
|
+
`Consider breaking your transaction into smaller chunks.`,
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
62
75
|
export function knownStateFromContent(content: NewContentMessage) {
|
|
63
76
|
const knownState = emptyKnownState(content.id);
|
|
64
77
|
knownState.header = Boolean(content.header);
|
|
@@ -92,12 +92,12 @@ export class SessionMap {
|
|
|
92
92
|
keyID: KeyID,
|
|
93
93
|
keySecret: KeySecret,
|
|
94
94
|
meta: JsonObject | undefined,
|
|
95
|
+
madeAt: number,
|
|
95
96
|
): { signature: Signature; transaction: Transaction } {
|
|
96
97
|
const sessionLog = this.getOrCreateSessionLog(
|
|
97
98
|
sessionID,
|
|
98
99
|
signerAgent.currentSignerID(),
|
|
99
100
|
);
|
|
100
|
-
const madeAt = Date.now();
|
|
101
101
|
|
|
102
102
|
const result = sessionLog.impl.addNewPrivateTransaction(
|
|
103
103
|
signerAgent,
|
|
@@ -122,12 +122,12 @@ export class SessionMap {
|
|
|
122
122
|
signerAgent: ControlledAccountOrAgent,
|
|
123
123
|
changes: JsonValue[],
|
|
124
124
|
meta: JsonObject | undefined,
|
|
125
|
+
madeAt: number,
|
|
125
126
|
): { signature: Signature; transaction: Transaction } {
|
|
126
127
|
const sessionLog = this.getOrCreateSessionLog(
|
|
127
128
|
sessionID,
|
|
128
129
|
signerAgent.currentSignerID(),
|
|
129
130
|
);
|
|
130
|
-
const madeAt = Date.now();
|
|
131
131
|
|
|
132
132
|
const result = sessionLog.impl.addNewTrustingTransaction(
|
|
133
133
|
signerAgent,
|
|
@@ -1,9 +1,41 @@
|
|
|
1
|
-
import type { CoValueCore
|
|
2
|
-
import type { RawCoID, SessionID
|
|
1
|
+
import type { CoValueCore } from "../exports.js";
|
|
2
|
+
import type { RawCoID, SessionID } from "../ids.js";
|
|
3
3
|
import { type AvailableCoValueCore, idforHeader } from "./coValueCore.js";
|
|
4
4
|
import type { CoValueHeader } from "./verifiedState.js";
|
|
5
5
|
import type { CoValueKnownState } from "../sync.js";
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Commit to identify the starting point of the branch
|
|
9
|
+
*
|
|
10
|
+
* In case of clonflicts, the first commit of this kind is considered the source of truth
|
|
11
|
+
*/
|
|
12
|
+
export type BranchStartCommit = {
|
|
13
|
+
from: CoValueKnownState["sessions"];
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Commit that tracks a branch creation
|
|
18
|
+
*/
|
|
19
|
+
export type BranchPointerCommit = {
|
|
20
|
+
branch: string;
|
|
21
|
+
ownerId?: RawCoID;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Meta information attached to each merged transaction to retrieve the original transaction ID
|
|
26
|
+
*/
|
|
27
|
+
export type MergedTransactionMetadata = {
|
|
28
|
+
mi: number; // Transaction index and marker of a merge commit
|
|
29
|
+
s?: SessionID;
|
|
30
|
+
b?: RawCoID;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Merge commit located in a branch to track how many transactions have already been merged
|
|
35
|
+
*/
|
|
36
|
+
export type MergeCommit = {
|
|
37
|
+
merged: CoValueKnownState["sessions"];
|
|
38
|
+
};
|
|
7
39
|
|
|
8
40
|
export function getBranchHeader({
|
|
9
41
|
type,
|
|
@@ -49,30 +81,37 @@ export function getBranchId(
|
|
|
49
81
|
);
|
|
50
82
|
}
|
|
51
83
|
|
|
52
|
-
|
|
53
|
-
const header = coValue.verified.header;
|
|
54
|
-
|
|
55
|
-
// Group and account coValues can't have branches, so we return the source id
|
|
56
|
-
if (header.ruleset.type !== "ownedByGroup") {
|
|
57
|
-
return coValue.id;
|
|
58
|
-
}
|
|
84
|
+
const currentOwnerId = ownerId ?? getBranchOwnerId(coValue);
|
|
59
85
|
|
|
60
|
-
|
|
86
|
+
if (!currentOwnerId) {
|
|
87
|
+
return coValue.id;
|
|
61
88
|
}
|
|
62
89
|
|
|
63
90
|
const header = getBranchHeader({
|
|
64
91
|
type: coValue.verified.header.type,
|
|
65
92
|
branchName: name,
|
|
66
|
-
ownerId,
|
|
93
|
+
ownerId: currentOwnerId,
|
|
67
94
|
sourceId: coValue.id,
|
|
68
95
|
});
|
|
69
96
|
|
|
70
97
|
return idforHeader(header, coValue.node.crypto);
|
|
71
98
|
}
|
|
72
99
|
|
|
73
|
-
export
|
|
74
|
-
|
|
75
|
-
|
|
100
|
+
export function getBranchOwnerId(coValue: CoValueCore) {
|
|
101
|
+
if (!coValue.verified) {
|
|
102
|
+
throw new Error(
|
|
103
|
+
"CoValueCore: getBranchOwnerId called on coValue without verified state",
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const header = coValue.verified.header;
|
|
108
|
+
|
|
109
|
+
if (header.ruleset.type !== "ownedByGroup") {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return header.ruleset.group;
|
|
114
|
+
}
|
|
76
115
|
|
|
77
116
|
/**
|
|
78
117
|
* Given a coValue, a branch name and an owner id, creates a new branch CoValue
|
|
@@ -88,32 +127,34 @@ export function createBranch(
|
|
|
88
127
|
);
|
|
89
128
|
}
|
|
90
129
|
|
|
91
|
-
|
|
92
|
-
const header = coValue.verified.header;
|
|
93
|
-
|
|
94
|
-
// Group and account coValues can't have branches, so we return the source coValue
|
|
95
|
-
if (header.ruleset.type !== "ownedByGroup") {
|
|
96
|
-
return coValue;
|
|
97
|
-
}
|
|
130
|
+
const branchOwnerId = ownerId ?? getBranchOwnerId(coValue);
|
|
98
131
|
|
|
99
|
-
|
|
132
|
+
if (!branchOwnerId) {
|
|
133
|
+
return coValue;
|
|
100
134
|
}
|
|
101
135
|
|
|
102
136
|
const header = getBranchHeader({
|
|
103
137
|
type: coValue.verified.header.type,
|
|
104
138
|
branchName: name,
|
|
105
|
-
ownerId,
|
|
139
|
+
ownerId: branchOwnerId,
|
|
106
140
|
sourceId: coValue.id,
|
|
107
141
|
});
|
|
108
142
|
|
|
109
|
-
const
|
|
143
|
+
const branch = coValue.node.createCoValue(header);
|
|
144
|
+
const sessions = { ...coValue.knownState().sessions };
|
|
110
145
|
|
|
111
146
|
// Create a branch commit to identify the starting point of the branch
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
} satisfies
|
|
147
|
+
branch.makeTransaction([], "private", {
|
|
148
|
+
from: sessions,
|
|
149
|
+
} satisfies BranchStartCommit);
|
|
150
|
+
|
|
151
|
+
// Create a branch pointer, to identify that we created a branch
|
|
152
|
+
coValue.makeTransaction([], "private", {
|
|
153
|
+
branch: name,
|
|
154
|
+
ownerId,
|
|
155
|
+
} satisfies BranchPointerCommit);
|
|
115
156
|
|
|
116
|
-
return
|
|
157
|
+
return branch;
|
|
117
158
|
}
|
|
118
159
|
|
|
119
160
|
/**
|
|
@@ -141,15 +182,6 @@ export function getBranchSource(
|
|
|
141
182
|
return source;
|
|
142
183
|
}
|
|
143
184
|
|
|
144
|
-
export type MergeCommit = {
|
|
145
|
-
// The point where the branch was merged
|
|
146
|
-
merge: CoValueKnownState["sessions"];
|
|
147
|
-
// The id of the branch that was merged
|
|
148
|
-
id: RawCoID;
|
|
149
|
-
// The number of transactions that were merged, will be used in the future to handle the edits history properly
|
|
150
|
-
count: number;
|
|
151
|
-
};
|
|
152
|
-
|
|
153
185
|
/**
|
|
154
186
|
* Given a branch coValue, merges the branch into the source coValue
|
|
155
187
|
*/
|
|
@@ -164,12 +196,6 @@ export function mergeBranch(branch: CoValueCore): CoValueCore {
|
|
|
164
196
|
return branch;
|
|
165
197
|
}
|
|
166
198
|
|
|
167
|
-
const sourceId = branch.getCurrentBranchSourceId();
|
|
168
|
-
|
|
169
|
-
if (!sourceId) {
|
|
170
|
-
throw new Error("CoValueCore: mergeBranch called on a non-branch coValue");
|
|
171
|
-
}
|
|
172
|
-
|
|
173
199
|
const target = getBranchSource(branch);
|
|
174
200
|
|
|
175
201
|
if (!target) {
|
|
@@ -178,13 +204,9 @@ export function mergeBranch(branch: CoValueCore): CoValueCore {
|
|
|
178
204
|
|
|
179
205
|
// Look for previous merge commits, to see which transactions needs to be merged
|
|
180
206
|
// Done mostly for performance reasons, as we could merge all the transactions every time and nothing would change
|
|
181
|
-
const mergedTransactions =
|
|
182
|
-
(acc, {
|
|
183
|
-
|
|
184
|
-
return acc;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
for (const [sessionID, count] of Object.entries(commit.merge) as [
|
|
207
|
+
const mergedTransactions = branch.getMergeCommits().reduce(
|
|
208
|
+
(acc, { merged }) => {
|
|
209
|
+
for (const [sessionID, count] of Object.entries(merged) as [
|
|
188
210
|
SessionID,
|
|
189
211
|
number,
|
|
190
212
|
][]) {
|
|
@@ -210,111 +232,34 @@ export function mergeBranch(branch: CoValueCore): CoValueCore {
|
|
|
210
232
|
return target;
|
|
211
233
|
}
|
|
212
234
|
|
|
213
|
-
//
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
} satisfies MergeCommit);
|
|
219
|
-
|
|
220
|
-
const currentSessionID = target.node.currentSessionID;
|
|
235
|
+
// We do track in the meta information the original txID to make sure that
|
|
236
|
+
// the CoList opid still point to the correct transaction
|
|
237
|
+
// To reduce the cost of the meta we skip the repeated information
|
|
238
|
+
let lastSessionId: string | undefined = undefined;
|
|
239
|
+
let lastBranchId: string | undefined = undefined;
|
|
221
240
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const mapping: Record<`${SessionID}:${number}`, number> = {};
|
|
241
|
+
for (const tx of branchValidTransactions) {
|
|
242
|
+
const mergeMeta: MergedTransactionMetadata = {
|
|
243
|
+
mi: tx.txID.txIndex,
|
|
244
|
+
};
|
|
227
245
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
// Create a mapping from the branch transactions to the target transactions
|
|
232
|
-
for (const { txID } of branchValidTransactions) {
|
|
233
|
-
mapping[`${txID.sessionID}:${txID.txIndex}`] = txIdx;
|
|
234
|
-
txIdx++;
|
|
246
|
+
if (lastSessionId !== tx.txID.sessionID) {
|
|
247
|
+
mergeMeta.s = tx.txID.sessionID;
|
|
235
248
|
}
|
|
236
249
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
mapCoListChangesToTarget(
|
|
240
|
-
changes as ListOpPayload<JsonValue>[],
|
|
241
|
-
currentSessionID,
|
|
242
|
-
mapping,
|
|
243
|
-
),
|
|
244
|
-
tx.privacy,
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
} else {
|
|
248
|
-
for (const { tx, changes } of branchValidTransactions) {
|
|
249
|
-
target.makeTransaction(changes, tx.privacy);
|
|
250
|
+
if (lastBranchId !== tx.txID.branch) {
|
|
251
|
+
mergeMeta.b = tx.txID.branch;
|
|
250
252
|
}
|
|
251
|
-
}
|
|
252
253
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Given a list of changes, maps the opIDs to the target transactions
|
|
258
|
-
*/
|
|
259
|
-
function mapCoListChangesToTarget(
|
|
260
|
-
changes: ListOpPayload<JsonValue>[],
|
|
261
|
-
currentSessionID: SessionID,
|
|
262
|
-
mapping: Record<`${SessionID}:${number}`, number>,
|
|
263
|
-
) {
|
|
264
|
-
return changes.map((change) => {
|
|
265
|
-
if (change.op === "app") {
|
|
266
|
-
if (change.after === "start") {
|
|
267
|
-
return change;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
return {
|
|
271
|
-
...change,
|
|
272
|
-
after: convertOpID(change.after, currentSessionID, mapping),
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
if (change.op === "del") {
|
|
277
|
-
return {
|
|
278
|
-
...change,
|
|
279
|
-
insertion: convertOpID(change.insertion, currentSessionID, mapping),
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
if (change.op === "pre") {
|
|
284
|
-
if (change.before === "end") {
|
|
285
|
-
return change;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
return {
|
|
289
|
-
...change,
|
|
290
|
-
before: convertOpID(change.before, currentSessionID, mapping),
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
return change;
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
function convertOpID(
|
|
299
|
-
opID: OpID,
|
|
300
|
-
sessionID: SessionID,
|
|
301
|
-
mapping: Record<`${SessionID}:${number}`, number>,
|
|
302
|
-
) {
|
|
303
|
-
// If the opID comes from the source branch, we don't need to map it
|
|
304
|
-
if (!opID.branch) {
|
|
305
|
-
return opID;
|
|
254
|
+
target.makeTransaction(tx.changes, tx.tx.privacy, mergeMeta, tx.madeAt);
|
|
255
|
+
lastSessionId = tx.txID.sessionID;
|
|
256
|
+
lastBranchId = tx.txID.branch;
|
|
306
257
|
}
|
|
307
258
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
return opID;
|
|
313
|
-
}
|
|
259
|
+
// Track the merged transactions for the branch, so future merges will know which transactions have already been merged
|
|
260
|
+
branch.makeTransaction([], "private", {
|
|
261
|
+
merged: branch.knownState().sessions,
|
|
262
|
+
} satisfies MergeCommit);
|
|
314
263
|
|
|
315
|
-
return
|
|
316
|
-
sessionID: sessionID,
|
|
317
|
-
txIndex: mappedIndex,
|
|
318
|
-
changeIdx: opID.changeIdx,
|
|
319
|
-
};
|
|
264
|
+
return target;
|
|
320
265
|
}
|