@evolu/common 1.0.9 → 1.0.10

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.
@@ -0,0 +1,78 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import { Brand, Context, Effect, Layer, Option } from "effect";
3
+ import { Config } from "./Config.js";
4
+ import { NanoId, NodeId } from "./Crypto.js";
5
+ export interface Timestamp {
6
+ readonly node: NodeId;
7
+ readonly millis: Millis;
8
+ readonly counter: Counter;
9
+ }
10
+ export declare const AllowedTimeRange: {
11
+ greaterThan: number;
12
+ lessThan: number;
13
+ };
14
+ /**
15
+ * Millis represents a time that is valid for usage with the Merkle tree.
16
+ * It must be between Apr 13, 1997, and Nov 05, 2051, to ensure MinutesBase3
17
+ * length equals 16. We can find diff for two Merkle trees only within this range.
18
+ * If the device clock is out of range, Evolu will not store data until it's fixed.
19
+ */
20
+ export declare const Millis: Schema.BrandSchema<number, number & Brand.Brand<"Millis">>;
21
+ export type Millis = Schema.Schema.To<typeof Millis>;
22
+ export declare const initialMillis: number & Brand.Brand<"Millis">;
23
+ export declare const Counter: Schema.BrandSchema<number, number & Brand.Brand<"Counter">>;
24
+ export type Counter = Schema.Schema.To<typeof Counter>;
25
+ export type TimestampHash = number & Brand.Brand<"TimestampHash">;
26
+ export type TimestampString = string & Brand.Brand<"TimestampString">;
27
+ export declare const timestampToString: (t: Timestamp) => TimestampString;
28
+ export declare const unsafeTimestampFromString: (s: TimestampString) => Timestamp;
29
+ export declare const timestampToHash: (t: Timestamp) => TimestampHash;
30
+ export declare const makeSyncTimestamp: (millis?: Millis) => Timestamp;
31
+ export declare const makeInitialTimestamp: Effect.Effect<NanoId, never, Timestamp>;
32
+ export interface Time {
33
+ readonly now: Effect.Effect<never, TimestampTimeOutOfRangeError, Millis>;
34
+ }
35
+ export declare const Time: Context.Tag<Time, Time>;
36
+ export declare const TimeLive: Layer.Layer<never, never, Time>;
37
+ export type TimestampError = TimestampDriftError | TimestampCounterOverflowError | TimestampDuplicateNodeError | TimestampTimeOutOfRangeError;
38
+ export interface TimestampDriftError {
39
+ readonly _tag: "TimestampDriftError";
40
+ readonly next: Millis;
41
+ readonly now: Millis;
42
+ }
43
+ export interface TimestampCounterOverflowError {
44
+ readonly _tag: "TimestampCounterOverflowError";
45
+ }
46
+ export interface TimestampDuplicateNodeError {
47
+ readonly _tag: "TimestampDuplicateNodeError";
48
+ readonly node: NodeId;
49
+ }
50
+ export interface TimestampTimeOutOfRangeError {
51
+ readonly _tag: "TimestampTimeOutOfRangeError";
52
+ }
53
+ export declare const sendTimestamp: (timestamp: Timestamp) => Effect.Effect<Time | Config, TimestampDriftError | TimestampCounterOverflowError | TimestampTimeOutOfRangeError, Timestamp>;
54
+ export declare const receiveTimestamp: ({ local, remote, }: {
55
+ readonly local: Timestamp;
56
+ readonly remote: Timestamp;
57
+ }) => Effect.Effect<Time | Config, TimestampDriftError | TimestampCounterOverflowError | TimestampDuplicateNodeError | TimestampTimeOutOfRangeError, Timestamp>;
58
+ /**
59
+ * It's actually not Merkle Tree but a Merkleized prefix tree, aka Merkle Trie.
60
+ * https://decomposition.al/blog/2019/05/31/how-i-learned-about-merklix-trees-without-having-to-become-a-cryptocurrency-enthusiast
61
+ */
62
+ export interface MerkleTree {
63
+ readonly hash?: TimestampHash;
64
+ readonly "0"?: MerkleTree;
65
+ readonly "1"?: MerkleTree;
66
+ readonly "2"?: MerkleTree;
67
+ }
68
+ export type MerkleTreeString = string & Brand.Brand<"MerkleTreeString">;
69
+ export declare const initialMerkleTree: MerkleTree;
70
+ type MerkleTreeKey = keyof Omit<MerkleTree, "hash">;
71
+ type MerkleTreePath = ReadonlyArray<MerkleTreeKey>;
72
+ export declare const millisToMerkleTreePath: (millis: Millis) => MerkleTreePath;
73
+ export declare const insertIntoMerkleTree: (timestamp: Timestamp) => (tree: MerkleTree) => MerkleTree;
74
+ export declare const diffMerkleTrees: (tree1: MerkleTree, tree2: MerkleTree) => Option.Option<Millis>;
75
+ export declare const merkleTreeToString: (m: MerkleTree) => MerkleTreeString;
76
+ export declare const unsafeMerkleTreeFromString: (m: MerkleTreeString) => MerkleTree;
77
+ export {};
78
+ //# sourceMappingURL=Crdt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crdt.d.ts","sourceRoot":"","sources":["../../src/Crdt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import { Context, Effect, Either, Layer, Number, Option, ReadonlyArray, String, pipe, } from "effect";
3
+ import { Config } from "./Config.js";
4
+ import { NanoId, NodeId } from "./Crypto.js";
5
+ import { murmurhash } from "./Murmurhash.js";
6
+ export const AllowedTimeRange = {
7
+ greaterThan: 860934419999,
8
+ lessThan: 2582803260000,
9
+ };
10
+ /**
11
+ * Millis represents a time that is valid for usage with the Merkle tree.
12
+ * It must be between Apr 13, 1997, and Nov 05, 2051, to ensure MinutesBase3
13
+ * length equals 16. We can find diff for two Merkle trees only within this range.
14
+ * If the device clock is out of range, Evolu will not store data until it's fixed.
15
+ */
16
+ export const Millis = Schema.number.pipe(Schema.greaterThan(AllowedTimeRange.greaterThan), Schema.lessThan(AllowedTimeRange.lessThan), Schema.brand("Millis"));
17
+ export const initialMillis = Schema.parseSync(Millis)(AllowedTimeRange.greaterThan + 1);
18
+ export const Counter = Schema.number.pipe(Schema.between(0, 65535), Schema.brand("Counter"));
19
+ const initialCounter = Schema.parseSync(Counter)(0);
20
+ export const timestampToString = (t) => [
21
+ new Date(t.millis).toISOString(),
22
+ t.counter.toString(16).toUpperCase().padStart(4, "0"),
23
+ t.node,
24
+ ].join("-");
25
+ // TODO: Replace with safe.
26
+ export const unsafeTimestampFromString = (s) => {
27
+ const a = s.split("-");
28
+ return {
29
+ millis: Date.parse(a.slice(0, 3).join("-")).valueOf(),
30
+ counter: parseInt(a[3], 16),
31
+ node: a[4],
32
+ };
33
+ };
34
+ export const timestampToHash = (t) => murmurhash(timestampToString(t));
35
+ const syncNodeId = Schema.parseSync(NodeId)("0000000000000000");
36
+ export const makeSyncTimestamp = (millis = initialMillis) => ({
37
+ millis,
38
+ counter: initialCounter,
39
+ node: syncNodeId,
40
+ });
41
+ export const makeInitialTimestamp = NanoId.pipe(Effect.flatMap(({ nanoidAsNodeId }) => nanoidAsNodeId), Effect.map((node) => ({
42
+ millis: initialMillis,
43
+ counter: initialCounter,
44
+ node,
45
+ })));
46
+ export const Time = Context.Tag("evolu/Time");
47
+ export const TimeLive = Layer.succeed(Time, Time.of({
48
+ now: Effect.suspend(() => Schema.parse(Millis)(Date.now())).pipe(Effect.catchTag("ParseError", () => Effect.fail({
49
+ _tag: "TimestampTimeOutOfRangeError",
50
+ }))),
51
+ }));
52
+ const getNextMillis = (millis) => Effect.gen(function* (_) {
53
+ const time = yield* _(Time);
54
+ const config = yield* _(Config);
55
+ const now = yield* _(time.now);
56
+ const next = Math.max(now, ...millis);
57
+ if (next - now > config.maxDrift)
58
+ yield* _(Effect.fail({
59
+ _tag: "TimestampDriftError",
60
+ now,
61
+ next,
62
+ }));
63
+ return next;
64
+ });
65
+ const incrementCounter = (counter) => pipe(Number.increment(counter), Schema.parseEither(Counter), Either.mapLeft(() => ({ _tag: "TimestampCounterOverflowError" })));
66
+ const counterMin = Schema.parseSync(Counter)(0);
67
+ export const sendTimestamp = (timestamp) => Effect.gen(function* (_) {
68
+ const millis = yield* _(getNextMillis([timestamp.millis]));
69
+ const counter = millis === timestamp.millis
70
+ ? yield* _(incrementCounter(timestamp.counter))
71
+ : counterMin;
72
+ return { ...timestamp, millis, counter };
73
+ });
74
+ export const receiveTimestamp = ({ local, remote, }) => Effect.gen(function* (_) {
75
+ if (local.node === remote.node)
76
+ yield* _(Effect.fail({
77
+ _tag: "TimestampDuplicateNodeError",
78
+ node: local.node,
79
+ }));
80
+ const millis = yield* _(getNextMillis([local.millis, remote.millis]));
81
+ const counter = yield* _(millis === local.millis && millis === remote.millis
82
+ ? incrementCounter(Math.max(local.counter, remote.counter))
83
+ : millis === local.millis
84
+ ? incrementCounter(local.counter)
85
+ : millis === remote.millis
86
+ ? incrementCounter(remote.counter)
87
+ : Either.right(counterMin));
88
+ return { ...local, millis, counter };
89
+ });
90
+ export const initialMerkleTree = Object.create(null);
91
+ export const millisToMerkleTreePath = (millis) => Math.floor(millis / 1000 / 60)
92
+ .toString(3)
93
+ .split("");
94
+ const merkleTreePathToMillis = (path) => path.length === 0
95
+ ? initialMillis
96
+ : // 16 is the length of the base 3 value of the current time in minutes.
97
+ // Ensure it's padded to create the full value.
98
+ (parseInt(path.join("").padEnd(16, "0"), 3) * 1000 * 60);
99
+ const xorTimestampHashes = (a, b) => ((a || 0) ^ b);
100
+ const insertKey = (tree, path, hash) => {
101
+ if (path.length === 0)
102
+ return tree;
103
+ const key = path[0];
104
+ const child = tree[key] || {};
105
+ return {
106
+ ...tree,
107
+ [key]: {
108
+ ...child,
109
+ ...insertKey(child, path.slice(1), hash),
110
+ hash: xorTimestampHashes(child.hash, hash),
111
+ },
112
+ };
113
+ };
114
+ export const insertIntoMerkleTree = (timestamp) => (tree) => {
115
+ const path = millisToMerkleTreePath(timestamp.millis);
116
+ const hash = timestampToHash(timestamp);
117
+ return insertKey({ ...tree, hash: xorTimestampHashes(tree.hash, hash) }, path, hash);
118
+ };
119
+ const sortedMerkleTreeKeys = ["0", "1", "2"];
120
+ const getSortedMerkleTreeKeys = (tree) => sortedMerkleTreeKeys.filter((key) => key in tree);
121
+ export const diffMerkleTrees = (tree1, tree2) => {
122
+ if (tree1.hash === tree2.hash)
123
+ return Option.none();
124
+ let node1 = tree1;
125
+ let node2 = tree2;
126
+ let diffPath = [];
127
+ // This loop will eventually stop when it traverses down to find
128
+ // where the hashes differ, or otherwise when there are no leaves
129
+ // left (this shouldn't happen, if that's the case the hash check at
130
+ // the top of this function should pass)
131
+ // eslint-disable-next-line no-constant-condition
132
+ while (1) {
133
+ const keys = ReadonlyArray.dedupeWith(getSortedMerkleTreeKeys(node1).concat(getSortedMerkleTreeKeys(node2)), String.Equivalence);
134
+ let diffKey = null;
135
+ // Traverse down the trie through keys that are different. We
136
+ // traverse down the keys in order. Stop in two cases: either one
137
+ // of the nodes doesn't have the key or a different key isn't
138
+ // found. For the former case, we have to do that because pruning is
139
+ // lossy. We don't know if we've pruned off a changed key, so we
140
+ // can't traverse down anymore. For the latter case, it means two
141
+ // things: either we've hit the bottom of the tree, or the changed
142
+ // key has been pruned off. In the latter case, we have a "partial"
143
+ // key and will fill the rest with 0s. If multiple older
144
+ // messages were added into one trie, we might likely
145
+ // generate a time that only encompasses *some* of those
146
+ // messages. Pruning is lossy, and we traverse down the left-most
147
+ // changed time that we know of, because of pruning, it might take
148
+ // multiple passes to sync up a trie.
149
+ for (let i = 0; i < keys.length; i++) {
150
+ const key = keys[i];
151
+ const next1 = node1[key];
152
+ const next2 = node2[key];
153
+ if (!next1 || !next2)
154
+ break;
155
+ if (next1.hash !== next2.hash) {
156
+ diffKey = key;
157
+ break;
158
+ }
159
+ }
160
+ if (!diffKey) {
161
+ return Option.some(merkleTreePathToMillis(diffPath));
162
+ }
163
+ diffPath = [...diffPath, diffKey];
164
+ node1 = node1[diffKey] || initialMerkleTree;
165
+ node2 = node2[diffKey] || initialMerkleTree;
166
+ }
167
+ return Option.none();
168
+ };
169
+ export const merkleTreeToString = (m) => JSON.stringify(m);
170
+ export const unsafeMerkleTreeFromString = (m) => JSON.parse(m);
@@ -29,7 +29,7 @@ export declare const NanoIdLive: Layer.Layer<never, never, NanoId>;
29
29
  * SLIP-21 implementation
30
30
  * https://github.com/satoshilabs/slips/blob/master/slip-0021.md
31
31
  */
32
- export declare const slip21Derive: (seed: Uint8Array, path: string[]) => Effect.Effect<never, never, Uint8Array>;
32
+ export declare const slip21Derive: (seed: Uint8Array, path: ReadonlyArray<string>) => Effect.Effect<never, never, Uint8Array>;
33
33
  /**
34
34
  * Alias to xsalsa20poly1305, for compatibility with libsodium / nacl
35
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../src/Crypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAMhD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGvD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,QAAQ,KACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,KAAK,EAAE,CACd,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,KAAK,2BAAoC,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAExD,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,MAAM,6BAAsC,CAAC;AAE1D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,WAAW,CACrC,MAAM,EACN,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC6C,CAAC;AAC9E,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC;AAIrD,eAAO,MAAM,UAAU,mCAMtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,SACjB,UAAU,QACV,MAAM,EAAE,KACb,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAWrC,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,UAAU,KAClB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,UAAU,KACnB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,SAAS,mCAA4C,CAAC;AAEnE,eAAO,MAAM,aAAa,sCAgBzB,CAAC"}
1
+ {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../src/Crypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAMhD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGvD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,QAAQ,KACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,KAAK,EAAE,CACd,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,KAAK,2BAAoC,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAExD,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,MAAM,6BAAsC,CAAC;AAE1D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,WAAW,CACrC,MAAM,EACN,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC6C,CAAC;AAC9E,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC;AAIrD,eAAO,MAAM,UAAU,mCAMtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,SACjB,UAAU,QACV,cAAc,MAAM,CAAC,KAC1B,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAWrC,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,UAAU,KAClB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,UAAU,KACnB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,SAAS,mCAA4C,CAAC;AAEnE,eAAO,MAAM,aAAa,sCAgBzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
package/dist/src/Db.js CHANGED
@@ -4,11 +4,10 @@ import { bytesToHex } from "@noble/ciphers/utils";
4
4
  import { Context, Effect, Exit, Option, Predicate, ReadonlyArray, ReadonlyRecord, String, pipe, } from "effect";
5
5
  import * as Kysely from "kysely";
6
6
  import { urlAlphabet } from "nanoid";
7
+ import { initialMerkleTree, makeInitialTimestamp, merkleTreeToString, timestampToString, } from "./Crdt.js";
7
8
  import { Bip39, slip21Derive } from "./Crypto.js";
8
- import { initialMerkleTree, merkleTreeToString } from "./MerkleTree.js";
9
9
  import { createMessageTable, createMessageTableIndex, createOwnerTable, insertOwner, } from "./Sql.js";
10
10
  import { Sqlite, queryObjectToQuery, } from "./Sqlite.js";
11
- import { makeInitialTimestamp, timestampToString } from "./Timestamp.js";
12
11
  const commonColumns = ["createdAt", "updatedAt", "isDeleted"];
13
12
  const kysely = new Kysely.Kysely({
14
13
  dialect: {
@@ -1 +1 @@
1
- {"version":3,"file":"DbWorker.d.ts","sourceRoot":"","sources":["../../src/DbWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DbWorker.d.ts","sourceRoot":"","sources":["../../src/DbWorker.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import { hexToBytes } from "@noble/ciphers/utils";
2
2
  import { Context, Effect, Function, Layer, Option, ReadonlyArray, Ref, pipe, } from "effect";
3
3
  import { Config, ConfigLive } from "./Config.js";
4
+ import { Time, TimeLive, diffMerkleTrees, insertIntoMerkleTree, makeSyncTimestamp, merkleTreeToString, receiveTimestamp, sendTimestamp, timestampToString, unsafeTimestampFromString, } from "./Crdt.js";
4
5
  import { Bip39, NanoId } from "./Crypto.js";
5
6
  import { Owner, ensureSchema, lazyInit, someDefectToNoSuchTableOrColumnError, transaction, } from "./Db.js";
6
7
  import { makePatches } from "./Diff.js";
7
8
  import { makeUnexpectedError } from "./Errors.js";
8
- import { diffMerkleTrees, insertIntoMerkleTree, merkleTreeToString, } from "./MerkleTree.js";
9
9
  import { cast } from "./Model.js";
10
10
  import { insertIntoMessagesIfNew, insertValueIntoTableRowColumn, selectLastTimestampForTableRowColumn, selectMessagesToSync, selectOwner, selectOwnerTimestampAndMerkleTree, updateOwnerTimestampAndMerkleTree, } from "./Sql.js";
11
11
  import { Sqlite, queryObjectFromQuery } from "./Sqlite.js";
12
12
  import { SyncWorker, SyncWorkerPostMessage, } from "./SyncWorker.js";
13
- import { Time, TimeLive, makeSyncTimestamp, receiveTimestamp, sendTimestamp, timestampToString, unsafeTimestampFromString, } from "./Timestamp.js";
14
13
  export const DbWorker = Context.Tag("evolu/DbWorker");
15
14
  const DbWorkerOnMessage = Context.Tag("evolu/DbWorkerOnMessage");
16
15
  const init = (input) => Effect.gen(function* (_) {
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import { TimestampError } from "./Timestamp.js";
2
+ import { TimestampError } from "./Crdt.js";
3
3
  export type EvoluError = UnexpectedError | TimestampError;
4
4
  /**
5
5
  * We can't use the whole error because of WebWorker postMessage DataCloneError
@@ -1 +1 @@
1
- {"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../src/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D;;;;GAIG;AACH,UAAU,iBAAiB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,eAAO,MAAM,mBAAmB,UACvB,OAAO,KACb,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAU7C,CAAC"}
1
+ {"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../src/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;AAE1D;;;;GAIG;AACH,UAAU,iBAAiB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,eAAO,MAAM,mBAAmB,UACvB,OAAO,KACb,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAU7C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Context, Either, Layer } from "effect";
2
2
  import { Simplify } from "kysely";
3
3
  import { Config } from "./Config.js";
4
+ import { Time } from "./Crdt.js";
4
5
  import { Bip39, NanoId } from "./Crypto.js";
5
6
  import { CommonColumns, CreateQuery, Owner, Schema, Tables } from "./Db.js";
6
7
  import { DbWorker, DbWorkerOutputOnQuery } from "./DbWorker.js";
@@ -10,7 +11,6 @@ import { AppState, FlushSync } from "./Platform.js";
10
11
  import { Query, Row } from "./Sqlite.js";
11
12
  import { Store, StoreListener, StoreUnsubscribe } from "./Store.js";
12
13
  import { SyncState } from "./SyncWorker.js";
13
- import { Time } from "./Timestamp.js";
14
14
  export interface Evolu<S extends Schema> {
15
15
  readonly subscribeError: ErrorStore["subscribe"];
16
16
  readonly getError: ErrorStore["getState"];
@@ -1 +1 @@
1
- {"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../src/Evolu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../src/Evolu.ts"],"names":[],"mappings":"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"}
package/dist/src/Evolu.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Context, Effect, Either, Function, Layer, Number, Option, ReadonlyArray, absurd, pipe, } from "effect";
2
2
  import { Config, ConfigLive } from "./Config.js";
3
+ import { Time, TimeLive } from "./Crdt.js";
3
4
  import { Bip39, NanoId } from "./Crypto.js";
4
5
  import { makeCreateQuery, } from "./Db.js";
5
6
  import { DbWorker, } from "./DbWorker.js";
@@ -7,7 +8,6 @@ import { applyPatches } from "./Diff.js";
7
8
  import { cast } from "./Model.js";
8
9
  import { AppState, FlushSync } from "./Platform.js";
9
10
  import { makeStore } from "./Store.js";
10
- import { Time, TimeLive } from "./Timestamp.js";
11
11
  export const Evolu = () => Context.Tag("evolu/Evolu");
12
12
  const QueryStore = Context.Tag("evolu/QueryStore");
13
13
  const Mutate = () => Context.Tag("evolu/Mutate");
@@ -1,8 +1,7 @@
1
1
  import { MessageType } from "@protobuf-ts/runtime";
2
- import { MerkleTreeString } from "./MerkleTree.js";
3
- import { OwnerId } from "./Db.js";
2
+ import { MerkleTreeString, TimestampString } from "./Crdt.js";
4
3
  import { NodeId } from "./Crypto.js";
5
- import { TimestampString } from "./Timestamp.js";
4
+ import { OwnerId } from "./Db.js";
6
5
  import { Id } from "./Model.js";
7
6
  /**
8
7
  * @generated from protobuf message SyncRequest
@@ -1 +1 @@
1
- {"version":3,"file":"Protobuf.d.ts","sourceRoot":"","sources":["../../src/Protobuf.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1C;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AACD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1C;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AACD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;CACrB;AACD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,GAAG,EAAE,EAAE,CAAC;IACR;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,EACD;QACE,SAAS,EAAE,aAAa,CAAC;QACzB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;KACrB,GACD;QACE,SAAS,EAAE,aAAa,CAAC;QACzB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;KACrB,GACD;QACE,SAAS,EAAE,YAAY,CAAC;QACxB;;WAEG;QACH,UAAU,EAAE,UAAU,CAAC;KACxB,GACD;QACE,SAAS,EAAE,WAAW,CAAC;QACvB;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;KACnB,GACD;QACE,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;CACP;AAED,cAAM,gBAAiB,SAAQ,WAAW,CAAC,WAAW,CAAC;;CAetD;AACD;;GAEG;AACH,eAAO,MAAM,WAAW,kBAAyB,CAAC;AAElD,cAAM,iBAAkB,SAAQ,WAAW,CAAC,YAAY,CAAC;;CAaxD;AACD;;GAEG;AACH,eAAO,MAAM,YAAY,mBAA0B,CAAC;AAEpD,cAAM,qBAAsB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;;CAOhE;AACD;;GAEG;AACH,eAAO,MAAM,gBAAgB,uBAA8B,CAAC;AAE5D,cAAM,mBAAoB,SAAQ,WAAW,CAAC,cAAc,CAAC;;CAoC5D;AACD;;GAEG;AACH,eAAO,MAAM,cAAc,qBAA4B,CAAC"}
1
+ {"version":3,"file":"Protobuf.d.ts","sourceRoot":"","sources":["../../src/Protobuf.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1C;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AACD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1C;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AACD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;CACrB;AACD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,GAAG,EAAE,EAAE,CAAC;IACR;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,EACD;QACE,SAAS,EAAE,aAAa,CAAC;QACzB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;KACrB,GACD;QACE,SAAS,EAAE,aAAa,CAAC;QACzB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;KACrB,GACD;QACE,SAAS,EAAE,YAAY,CAAC;QACxB;;WAEG;QACH,UAAU,EAAE,UAAU,CAAC;KACxB,GACD;QACE,SAAS,EAAE,WAAW,CAAC;QACvB;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;KACnB,GACD;QACE,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;CACP;AAED,cAAM,gBAAiB,SAAQ,WAAW,CAAC,WAAW,CAAC;;CAetD;AACD;;GAEG;AACH,eAAO,MAAM,WAAW,kBAAyB,CAAC;AAElD,cAAM,iBAAkB,SAAQ,WAAW,CAAC,YAAY,CAAC;;CAaxD;AACD;;GAEG;AACH,eAAO,MAAM,YAAY,mBAA0B,CAAC;AAEpD,cAAM,qBAAsB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;;CAOhE;AACD;;GAEG;AACH,eAAO,MAAM,gBAAgB,uBAA8B,CAAC;AAE5D,cAAM,mBAAoB,SAAQ,WAAW,CAAC,cAAc,CAAC;;CAoC5D;AACD;;GAEG;AACH,eAAO,MAAM,cAAc,qBAA4B,CAAC"}
@@ -1,12 +1,11 @@
1
1
  import { Context, Layer } from "effect";
2
+ import { MerkleTree, Millis, Timestamp, TimestampString } from "./Crdt.js";
2
3
  import { SecretBox } from "./Crypto.js";
3
4
  import { Owner } from "./Db.js";
4
5
  import { UnexpectedError } from "./Errors.js";
5
- import { MerkleTree } from "./MerkleTree.js";
6
6
  import { Id } from "./Model.js";
7
7
  import { Fetch, SyncLock } from "./Platform.js";
8
8
  import { Value } from "./Sqlite.js";
9
- import { Millis, Timestamp, TimestampString } from "./Timestamp.js";
10
9
  export interface SyncWorker {
11
10
  readonly postMessage: (input: SyncWorkerInput) => void;
12
11
  onMessage: (output: SyncWorkerOutput) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SyncWorker.d.ts","sourceRoot":"","sources":["../../src/SyncWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncWorker.d.ts","sourceRoot":"","sources":["../../src/SyncWorker.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { concatBytes } from "@noble/ciphers/utils";
2
2
  import { BinaryReader, BinaryWriter } from "@protobuf-ts/runtime";
3
3
  import { Context, Effect, Function, Layer, Option, Predicate, ReadonlyArray, absurd, identity, } from "effect";
4
+ import { merkleTreeToString, unsafeMerkleTreeFromString, } from "./Crdt.js";
4
5
  import { SecretBox } from "./Crypto.js";
5
6
  import { makeUnexpectedError } from "./Errors.js";
6
- import { merkleTreeToString, unsafeMerkleTreeFromString, } from "./MerkleTree.js";
7
7
  import { Fetch, SyncLock } from "./Platform.js";
8
8
  import { MessageContent, SyncRequest, SyncResponse, } from "./Protobuf.js";
9
9
  export const SyncWorker = Context.Tag("evolu/SyncWorker");
@@ -1,12 +1,12 @@
1
1
  export { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite";
2
2
  export * from "./Config.js";
3
+ export * from "./Crdt.js";
3
4
  export * from "./Crypto.js";
4
5
  export * from "./Db.js";
5
6
  export * from "./DbWorker.js";
6
7
  export * from "./Diff.js";
7
8
  export * from "./Errors.js";
8
9
  export * from "./Evolu.js";
9
- export * from "./MerkleTree.js";
10
10
  export * from "./Model.js";
11
11
  export * from "./Murmurhash.js";
12
12
  export * from "./Platform.js";
@@ -15,5 +15,4 @@ export * from "./Sql.js";
15
15
  export * from "./Sqlite.js";
16
16
  export * from "./Store.js";
17
17
  export * from "./SyncWorker.js";
18
- export * from "./Timestamp.js";
19
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtE,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtE,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite";
2
2
  export * from "./Config.js";
3
+ export * from "./Crdt.js";
3
4
  export * from "./Crypto.js";
4
5
  export * from "./Db.js";
5
6
  export * from "./DbWorker.js";
6
7
  export * from "./Diff.js";
7
8
  export * from "./Errors.js";
8
9
  export * from "./Evolu.js";
9
- export * from "./MerkleTree.js";
10
10
  export * from "./Model.js";
11
11
  export * from "./Murmurhash.js";
12
12
  export * from "./Platform.js";
@@ -15,4 +15,3 @@ export * from "./Sql.js";
15
15
  export * from "./Sqlite.js";
16
16
  export * from "./Store.js";
17
17
  export * from "./SyncWorker.js";
18
- export * from "./Timestamp.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evolu/common",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "Local-first platform designed for privacy, ease of use, and no vendor lock-in to sync and backup people's lifetime data",
5
5
  "keywords": [
6
6
  "evolu",
@@ -34,7 +34,7 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@noble/ciphers": "^0.3.0",
37
+ "@noble/ciphers": "^0.4.0",
38
38
  "@noble/hashes": "^1.3.2",
39
39
  "@protobuf-ts/runtime": "^2.9.1",
40
40
  "@scure/bip39": "^1.2.1",
@@ -42,11 +42,11 @@
42
42
  "nanoid": "^5.0.2"
43
43
  },
44
44
  "devDependencies": {
45
- "@effect/schema": "0.44.0",
45
+ "@effect/schema": "0.45.5",
46
46
  "@protobuf-ts/plugin": "^2.9.1",
47
47
  "@protobuf-ts/protoc": "^2.9.1",
48
48
  "array-shuffle": "^3.0.0",
49
- "effect": "2.0.0-next.49",
49
+ "effect": "2.0.0-next.50",
50
50
  "eslint": "^8.51.0",
51
51
  "typescript": "^5.2.2",
52
52
  "vitest": "^0.34.6",
@@ -54,8 +54,8 @@
54
54
  "eslint-config-evolu": "0.0.2"
55
55
  },
56
56
  "peerDependencies": {
57
- "@effect/schema": "0.44.0",
58
- "effect": "2.0.0-next.49"
57
+ "@effect/schema": "0.45.5",
58
+ "effect": "2.0.0-next.50"
59
59
  },
60
60
  "publishConfig": {
61
61
  "access": "public"