cojson 0.18.27 → 0.18.28
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 +10 -0
- package/dist/coValueCore/branching.d.ts +2 -1
- package/dist/coValueCore/branching.d.ts.map +1 -1
- package/dist/coValueCore/branching.js +20 -2
- package/dist/coValueCore/branching.js.map +1 -1
- package/dist/coValueCore/coValueCore.d.ts +26 -23
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +161 -123
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/decryptTransactionChangesAndMeta.d.ts +3 -0
- package/dist/coValueCore/decryptTransactionChangesAndMeta.d.ts.map +1 -0
- package/dist/coValueCore/decryptTransactionChangesAndMeta.js +34 -0
- package/dist/coValueCore/decryptTransactionChangesAndMeta.js.map +1 -0
- package/dist/localNode.js +1 -1
- package/dist/localNode.js.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +18 -20
- package/dist/permissions.js.map +1 -1
- package/dist/sync.js +2 -2
- package/dist/sync.js.map +1 -1
- package/dist/tests/branching.test.js +237 -28
- package/dist/tests/branching.test.js.map +1 -1
- package/dist/tests/coValueCore.loadFromStorage.test.d.ts +2 -0
- package/dist/tests/coValueCore.loadFromStorage.test.d.ts.map +1 -0
- package/dist/tests/coValueCore.loadFromStorage.test.js +395 -0
- package/dist/tests/coValueCore.loadFromStorage.test.js.map +1 -0
- package/dist/tests/coValueCore.loadingState.test.d.ts +2 -0
- package/dist/tests/coValueCore.loadingState.test.d.ts.map +1 -0
- package/dist/tests/{coValueCoreLoadingState.test.js → coValueCore.loadingState.test.js} +4 -12
- package/dist/tests/coValueCore.loadingState.test.js.map +1 -0
- package/dist/tests/coValueCore.test.js +2 -5
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/sync.mesh.test.js +4 -34
- package/dist/tests/sync.mesh.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +7 -1
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +12 -0
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/coValueCore/branching.ts +28 -3
- package/src/coValueCore/coValueCore.ts +215 -167
- package/src/coValueCore/decryptTransactionChangesAndMeta.ts +56 -0
- package/src/localNode.ts +1 -1
- package/src/permissions.ts +21 -19
- package/src/sync.ts +2 -2
- package/src/tests/branching.test.ts +392 -45
- package/src/tests/coValueCore.loadFromStorage.test.ts +540 -0
- package/src/tests/{coValueCoreLoadingState.test.ts → coValueCore.loadingState.test.ts} +3 -16
- package/src/tests/coValueCore.test.ts +2 -5
- package/src/tests/sync.mesh.test.ts +11 -38
- package/src/tests/testUtils.ts +21 -0
- package/dist/coValueCore/decodeTransactionChangesAndMeta.d.ts +0 -3
- package/dist/coValueCore/decodeTransactionChangesAndMeta.d.ts.map +0 -1
- package/dist/coValueCore/decodeTransactionChangesAndMeta.js +0 -59
- package/dist/coValueCore/decodeTransactionChangesAndMeta.js.map +0 -1
- package/dist/tests/coValueCoreLoadingState.test.d.ts +0 -2
- package/dist/tests/coValueCoreLoadingState.test.d.ts.map +0 -1
- package/dist/tests/coValueCoreLoadingState.test.js.map +0 -1
- package/src/coValueCore/decodeTransactionChangesAndMeta.ts +0 -81
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# cojson
|
|
2
2
|
|
|
3
|
+
## 0.18.28
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e8880dc: Fix write permissions checks on merged transactions by checking membership on merge time instead of original transaction time
|
|
8
|
+
- d83b5e3: Allow the creation of branch pointers to accounts with reader access
|
|
9
|
+
- 5320349: Fix concurrent loading from storage
|
|
10
|
+
- cojson-core-wasm@0.18.28
|
|
11
|
+
- cojson-core-napi@0.18.28
|
|
12
|
+
|
|
3
13
|
## 0.18.27
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CoValueCore } from "../exports.js";
|
|
2
2
|
import type { RawCoID, SessionID } from "../ids.js";
|
|
3
3
|
import { type AvailableCoValueCore } from "./coValueCore.js";
|
|
4
4
|
import type { CoValueHeader } from "./verifiedState.js";
|
|
@@ -23,6 +23,7 @@ export type BranchPointerCommit = {
|
|
|
23
23
|
*/
|
|
24
24
|
export type MergedTransactionMetadata = {
|
|
25
25
|
mi: number;
|
|
26
|
+
t?: number;
|
|
26
27
|
s?: SessionID;
|
|
27
28
|
b?: RawCoID;
|
|
28
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branching.d.ts","sourceRoot":"","sources":["../../src/coValueCore/branching.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"branching.d.ts","sourceRoot":"","sources":["../../src/coValueCore/branching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,KAAK,oBAAoB,EAAe,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAEL,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,SAAS,CAAC;IACd,CAAC,CAAC,EAAE,OAAO,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,UAAU,EACV,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,aAAa,CAkBhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAqBT;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,+BAcpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,GAChB,WAAW,CAiDb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,GACnB,oBAAoB,GAAG,SAAS,CAkBlC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAgG5D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { logger } from "../exports.js";
|
|
1
2
|
import { idforHeader } from "./coValueCore.js";
|
|
2
3
|
import { combineKnownStateSessions, } from "../knownState.js";
|
|
3
4
|
export function getBranchHeader({ type, branchName, ownerId, sourceId, }) {
|
|
@@ -65,6 +66,15 @@ export function createBranch(coValue, name, ownerId) {
|
|
|
65
66
|
if (!branchOwnerId) {
|
|
66
67
|
return coValue;
|
|
67
68
|
}
|
|
69
|
+
const myRole = coValue.safeGetGroup()?.myRole();
|
|
70
|
+
// We allow branch creation to accounts with at least read access to the source group
|
|
71
|
+
if (!myRole || (myRole === "reader" && !ownerId)) {
|
|
72
|
+
logger.warn("Trying to create a branch without enough access rights, returning the source coValue");
|
|
73
|
+
return coValue;
|
|
74
|
+
}
|
|
75
|
+
// Accounts without write access store the branch pointer unencrypted to make it possible to handle it as a special case
|
|
76
|
+
// in the permissions checks
|
|
77
|
+
const privacy = myRole === "reader" ? "trusting" : "private";
|
|
68
78
|
const header = getBranchHeader({
|
|
69
79
|
type: coValue.verified.header.type,
|
|
70
80
|
branchName: name,
|
|
@@ -78,7 +88,7 @@ export function createBranch(coValue, name, ownerId) {
|
|
|
78
88
|
from: sessions,
|
|
79
89
|
});
|
|
80
90
|
// Create a branch pointer, to identify that we created a branch
|
|
81
|
-
coValue.makeTransaction([],
|
|
91
|
+
coValue.makeTransaction([], privacy, {
|
|
82
92
|
branch: name,
|
|
83
93
|
ownerId,
|
|
84
94
|
});
|
|
@@ -140,19 +150,27 @@ export function mergeBranch(branch) {
|
|
|
140
150
|
// To reduce the cost of the meta we skip the repeated information
|
|
141
151
|
let lastSessionId = undefined;
|
|
142
152
|
let lastBranchId = undefined;
|
|
153
|
+
let lastOriginalMadeAt = 0;
|
|
154
|
+
const now = Date.now();
|
|
143
155
|
for (const tx of branchValidTransactions) {
|
|
144
156
|
const mergeMeta = {
|
|
145
157
|
mi: tx.txID.txIndex,
|
|
146
158
|
};
|
|
159
|
+
// We compress the original made at, to reduce the size of the meta information
|
|
160
|
+
if (tx.madeAt !== lastOriginalMadeAt) {
|
|
161
|
+
// Storing the diff with madeAt to consume less bytes in the meta information
|
|
162
|
+
mergeMeta.t = now - tx.madeAt;
|
|
163
|
+
}
|
|
147
164
|
if (lastSessionId !== tx.txID.sessionID) {
|
|
148
165
|
mergeMeta.s = tx.txID.sessionID;
|
|
149
166
|
}
|
|
150
167
|
if (lastBranchId !== tx.txID.branch) {
|
|
151
168
|
mergeMeta.b = tx.txID.branch;
|
|
152
169
|
}
|
|
153
|
-
target.makeTransaction(tx.changes, tx.tx.privacy, mergeMeta,
|
|
170
|
+
target.makeTransaction(tx.changes, tx.tx.privacy, mergeMeta, now);
|
|
154
171
|
lastSessionId = tx.txID.sessionID;
|
|
155
172
|
lastBranchId = tx.txID.branch;
|
|
173
|
+
lastOriginalMadeAt = tx.madeAt;
|
|
156
174
|
}
|
|
157
175
|
// Track the merged transactions for the branch, so future merges will know which transactions have already been merged
|
|
158
176
|
// Store only the diff of sessions between the branch and already merged transactions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branching.js","sourceRoot":"","sources":["../../src/coValueCore/branching.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branching.js","sourceRoot":"","sources":["../../src/coValueCore/branching.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,25 +13,33 @@ import { MergeCommit, BranchPointerCommit, BranchStartCommit } from "./branching
|
|
|
13
13
|
import { type RawAccountID } from "../coValues/account.js";
|
|
14
14
|
import { CoValueKnownState, KnownStateSessions } from "../knownState.js";
|
|
15
15
|
export declare function idforHeader(header: CoValueHeader, crypto: CryptoProvider): RawCoID;
|
|
16
|
-
export
|
|
16
|
+
export declare class VerifiedTransaction {
|
|
17
17
|
author: RawAccountID | AgentID;
|
|
18
|
-
|
|
18
|
+
currentTxID: TransactionID;
|
|
19
|
+
sourceTxID: TransactionID | undefined;
|
|
19
20
|
tx: Transaction;
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
currentMadeAt: number;
|
|
22
|
+
sourceTxMadeAt: number | undefined;
|
|
22
23
|
changes: JsonValue[] | undefined;
|
|
23
24
|
meta: JsonObject | undefined;
|
|
24
25
|
isValid: boolean;
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
isValidated: boolean;
|
|
27
|
+
isDecrypted: boolean;
|
|
27
28
|
hasMetaBeenParsed: boolean;
|
|
28
29
|
previous: VerifiedTransaction | undefined;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
constructor(sessionID: SessionID, txIndex: number, tx: Transaction, branchId: RawCoID | undefined, parsingCache: {
|
|
31
|
+
changes: JsonValue[];
|
|
32
|
+
meta: JsonObject | undefined;
|
|
33
|
+
} | undefined, previous: VerifiedTransaction | undefined);
|
|
34
|
+
get txID(): TransactionID;
|
|
35
|
+
get madeAt(): number;
|
|
36
|
+
isValidTransactionWithChanges(): this is {
|
|
37
|
+
changes: JsonValue[];
|
|
38
|
+
isValid: true;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export type DecryptedTransaction = Omit<VerifiedTransaction, "changes"> & {
|
|
32
42
|
changes: JsonValue[];
|
|
33
|
-
madeAt: number;
|
|
34
|
-
tx: Transaction;
|
|
35
43
|
};
|
|
36
44
|
export type AvailableCoValueCore = CoValueCore & {
|
|
37
45
|
verified: VerifiedState;
|
|
@@ -54,27 +62,21 @@ export declare class CoValueCore {
|
|
|
54
62
|
* In this case, it acts as a centralised entry to keep track of peer loading
|
|
55
63
|
* state and to subscribe to its content when it does become available. */
|
|
56
64
|
get verified(): VerifiedState | null;
|
|
57
|
-
private readonly
|
|
65
|
+
private readonly loadingStatuses;
|
|
58
66
|
private _cachedContent?;
|
|
59
67
|
readonly listeners: Set<(core: CoValueCore, unsub: () => void) => void>;
|
|
60
68
|
private counter;
|
|
61
|
-
|
|
62
|
-
static fromID(id: RawCoID, node: LocalNode): CoValueCore;
|
|
63
|
-
static fromHeader(header: CoValueHeader, node: LocalNode): AvailableCoValueCore;
|
|
69
|
+
constructor(id: RawCoID, node: LocalNode);
|
|
64
70
|
get loadingState(): "unavailable" | "available" | "unknown" | "loading";
|
|
65
71
|
hasMissingDependencies(): boolean;
|
|
66
72
|
isAvailable(): this is AvailableCoValueCore;
|
|
67
73
|
hasVerifiedContent(): this is AvailableCoValueCore;
|
|
68
74
|
isErroredInPeer(peerId: PeerID): boolean;
|
|
75
|
+
waitFor(callback: (value: CoValueCore) => boolean): Promise<CoValueCore>;
|
|
69
76
|
waitForAvailableOrUnavailable(): Promise<CoValueCore>;
|
|
70
77
|
waitForAvailable(): Promise<CoValueCore>;
|
|
71
78
|
waitForFullStreaming(): Promise<CoValueCore>;
|
|
72
|
-
|
|
73
|
-
type: "unknown" | "pending" | "available" | "unavailable";
|
|
74
|
-
} | {
|
|
75
|
-
type: "errored";
|
|
76
|
-
error: TryAddTransactionsError;
|
|
77
|
-
} | undefined;
|
|
79
|
+
getLoadingStateForPeer(peerId: PeerID): "unavailable" | "available" | "unknown" | "pending" | "errored";
|
|
78
80
|
private updateCounter;
|
|
79
81
|
unmount(garbageCollectGroups?: boolean): boolean;
|
|
80
82
|
markNotFoundInPeer(peerId: PeerID): void;
|
|
@@ -173,13 +175,14 @@ export declare class CoValueCore {
|
|
|
173
175
|
ignorePrivateTransactions: boolean;
|
|
174
176
|
knownTransactions?: Set<Transaction>;
|
|
175
177
|
}): DecryptedTransaction[];
|
|
176
|
-
compareTransactions(a: Pick<
|
|
178
|
+
compareTransactions(a: Pick<VerifiedTransaction, "madeAt" | "txID">, b: Pick<VerifiedTransaction, "madeAt" | "txID">): number;
|
|
177
179
|
getCurrentReadKey(): {
|
|
178
180
|
secret: KeySecret | undefined;
|
|
179
181
|
id: KeyID;
|
|
180
182
|
};
|
|
181
183
|
readKeyCache: Map<`key_z${string}`, `keySecret_z${string}`>;
|
|
182
184
|
getReadKey(keyID: KeyID): KeySecret | undefined;
|
|
185
|
+
safeGetGroup(): RawGroup | undefined;
|
|
183
186
|
getGroup(): RawGroup;
|
|
184
187
|
getTx(txID: TransactionID): Transaction | undefined;
|
|
185
188
|
getDependedOnCoValues(): Set<RawCoID>;
|
|
@@ -189,7 +192,7 @@ export declare class CoValueCore {
|
|
|
189
192
|
load(peers: PeerState[]): void;
|
|
190
193
|
loadFromStorage(done?: (found: boolean) => void): void;
|
|
191
194
|
loadFromPeers(peers: PeerState[]): void;
|
|
192
|
-
internalLoadFromPeer(peer: PeerState):
|
|
195
|
+
internalLoadFromPeer(peer: PeerState): void;
|
|
193
196
|
}
|
|
194
197
|
export type InvalidHashError = {
|
|
195
198
|
type: "InvalidHash";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coValueCore.d.ts","sourceRoot":"","sources":["../../src/coValueCore/coValueCore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EACL,cAAc,EACd,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAQvD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EACL,WAAW,EACX,mBAAmB,EAOnB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAEL,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"coValueCore.d.ts","sourceRoot":"","sources":["../../src/coValueCore/coValueCore.ts"],"names":[],"mappings":"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"}
|