@evolu/common 7.2.3 → 7.4.0
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/dist/src/Buffer.d.ts +2 -1
- package/dist/src/Buffer.d.ts.map +1 -1
- package/dist/src/Buffer.js +1 -0
- package/dist/src/Callbacks.d.ts +1 -1
- package/dist/src/Callbacks.d.ts.map +1 -1
- package/dist/src/Callbacks.js +1 -1
- package/dist/src/Console.d.ts +1 -9
- package/dist/src/Console.d.ts.map +1 -1
- package/dist/src/Console.js +1 -41
- package/dist/src/Function.d.ts +61 -0
- package/dist/src/Function.d.ts.map +1 -1
- package/dist/src/Function.js +19 -0
- package/dist/src/Object.d.ts +16 -0
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/Object.js +16 -0
- package/dist/src/Redacted.d.ts +89 -0
- package/dist/src/Redacted.d.ts.map +1 -0
- package/dist/src/Redacted.js +48 -0
- package/dist/src/Result.d.ts +36 -29
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Sqlite.d.ts +9 -7
- package/dist/src/Sqlite.d.ts.map +1 -1
- package/dist/src/Sqlite.js +8 -0
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +6 -4
- package/dist/src/Type.d.ts +34 -10
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +82 -202
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/local-first/Db.d.ts +1 -5
- package/dist/src/local-first/Db.d.ts.map +1 -1
- package/dist/src/local-first/Db.js +109 -108
- package/dist/src/local-first/Evolu.d.ts +3 -0
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Evolu.js +6 -7
- package/dist/src/local-first/LocalAuth.d.ts +2 -2
- package/dist/src/local-first/Owner.d.ts +7 -0
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Protocol.d.ts.map +1 -1
- package/dist/src/local-first/Protocol.js +10 -10
- package/dist/src/local-first/Public.d.ts +6 -1
- package/dist/src/local-first/Public.d.ts.map +1 -1
- package/dist/src/local-first/Public.js +6 -1
- package/dist/src/local-first/PublicKysely.js +1 -1
- package/dist/src/local-first/Query.d.ts +54 -6
- package/dist/src/local-first/Query.d.ts.map +1 -1
- package/dist/src/local-first/Query.js +130 -11
- package/dist/src/local-first/Relay.d.ts.map +1 -1
- package/dist/src/local-first/Relay.js +17 -18
- package/dist/src/local-first/Schema.d.ts +15 -14
- package/dist/src/local-first/Schema.d.ts.map +1 -1
- package/dist/src/local-first/Schema.js +43 -51
- package/dist/src/local-first/Storage.d.ts +2 -2
- package/dist/src/local-first/Storage.d.ts.map +1 -1
- package/dist/src/local-first/Storage.js +2 -6
- package/dist/src/local-first/Sync.d.ts +9 -4
- package/dist/src/local-first/Sync.d.ts.map +1 -1
- package/dist/src/local-first/Sync.js +132 -59
- package/dist/src/local-first/index.d.ts +9 -2
- package/dist/src/local-first/index.d.ts.map +1 -1
- package/dist/src/local-first/index.js +9 -2
- package/package.json +3 -4
- package/src/Buffer.ts +2 -1
- package/src/Callbacks.ts +1 -1
- package/src/Console.ts +1 -10
- package/src/Function.ts +74 -0
- package/src/Object.ts +20 -0
- package/src/Redacted.ts +118 -0
- package/src/Result.ts +38 -29
- package/src/Sqlite.ts +18 -7
- package/src/Task.ts +6 -4
- package/src/Type.ts +148 -20
- package/src/index.ts +1 -0
- package/src/local-first/Db.ts +181 -209
- package/src/local-first/Evolu.ts +9 -6
- package/src/local-first/LocalAuth.ts +2 -2
- package/src/local-first/Owner.ts +8 -0
- package/src/local-first/Protocol.ts +10 -16
- package/src/local-first/Public.ts +6 -1
- package/src/local-first/PublicKysely.ts +1 -1
- package/src/local-first/Query.ts +216 -21
- package/src/local-first/Relay.ts +20 -24
- package/src/local-first/Schema.ts +83 -70
- package/src/local-first/Storage.ts +3 -8
- package/src/local-first/Sync.ts +190 -66
- package/src/local-first/index.ts +9 -2
- package/dist/src/local-first/Diff.d.ts +0 -43
- package/dist/src/local-first/Diff.d.ts.map +0 -1
- package/dist/src/local-first/Diff.js +0 -97
- package/src/local-first/Diff.ts +0 -144
|
@@ -9,10 +9,9 @@ import { TimeDep } from "../Time.js";
|
|
|
9
9
|
import { Id, Mnemonic, SimpleName } from "../Type.js";
|
|
10
10
|
import { CreateWebSocketDep } from "../WebSocket.js";
|
|
11
11
|
import { Worker } from "../Worker.js";
|
|
12
|
-
import { QueryPatches } from "./Diff.js";
|
|
13
12
|
import { AppOwner, OwnerTransport } from "./Owner.js";
|
|
14
13
|
import { ProtocolError } from "./Protocol.js";
|
|
15
|
-
import { Query } from "./Query.js";
|
|
14
|
+
import { Query, QueryPatches } from "./Query.js";
|
|
16
15
|
import { DbSchema, MutationChange } from "./Schema.js";
|
|
17
16
|
import { SyncOwner } from "./Sync.js";
|
|
18
17
|
import { TimestampConfig, TimestampError } from "./Timestamp.js";
|
|
@@ -215,8 +214,5 @@ export type DbWorkerPlatformDeps = ConsoleDep & CreateSqliteDriverDep & CreateWe
|
|
|
215
214
|
export interface PostMessageDep {
|
|
216
215
|
readonly postMessage: (message: DbWorkerOutput) => void;
|
|
217
216
|
}
|
|
218
|
-
export interface AppOwnerDep {
|
|
219
|
-
readonly appOwner: AppOwner;
|
|
220
|
-
}
|
|
221
217
|
export declare const createDbWorkerForPlatform: (platformDeps: DbWorkerPlatformDeps) => DbWorker;
|
|
222
218
|
//# sourceMappingURL=Db.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/local-first/Db.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/local-first/Db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { isNonEmptyArray } from "../Array.js";
|
|
1
|
+
import { firstInArray, isNonEmptyArray, } from "../Array.js";
|
|
2
|
+
import { assertNonEmptyReadonlyArray } from "../Assert.js";
|
|
2
3
|
import { createSymmetricCrypto, } from "../Crypto.js";
|
|
3
4
|
import { ok } from "../Result.js";
|
|
4
|
-
import { createSqlite,
|
|
5
|
+
import { createSqlite, sql, } from "../Sqlite.js";
|
|
5
6
|
import { SimpleName } from "../Type.js";
|
|
6
7
|
import { createInitializedWorkerWithHandlers, } from "../Worker.js";
|
|
7
|
-
import { makePatches } from "./Diff.js";
|
|
8
8
|
import { createAppOwner, createOwnerSecret, mnemonicToOwnerSecret, } from "./Owner.js";
|
|
9
9
|
import { protocolVersion } from "./Protocol.js";
|
|
10
|
-
import {
|
|
10
|
+
import { createGetQueryRowsCache, loadQueries, } from "./Query.js";
|
|
11
11
|
import { ensureDbSchema, getDbSchema, } from "./Schema.js";
|
|
12
12
|
import { createBaseSqliteStorageTables } from "./Storage.js";
|
|
13
|
-
import { applyLocalOnlyChange, createClock, createSync, } from "./Sync.js";
|
|
13
|
+
import { applyLocalOnlyChange, createClock, createSync, tryApplyQuarantinedMessages, } from "./Sync.js";
|
|
14
14
|
import { timestampBytesToTimestamp, timestampToTimestampBytes, } from "./Timestamp.js";
|
|
15
15
|
export const defaultDbConfig = {
|
|
16
16
|
name: SimpleName.orThrow("Evolu"),
|
|
@@ -19,44 +19,50 @@ export const defaultDbConfig = {
|
|
|
19
19
|
enableLogging: false,
|
|
20
20
|
};
|
|
21
21
|
export const createDbWorkerForPlatform = (platformDeps) => createInitializedWorkerWithHandlers({
|
|
22
|
-
init:
|
|
22
|
+
init: async (initMessage, postMessage) => {
|
|
23
|
+
platformDeps.console.enabled = initMessage.config.enableLogging ?? false;
|
|
24
|
+
const deps = await createDbWorkerDeps(platformDeps, initMessage, postMessage);
|
|
25
|
+
if (!deps.ok) {
|
|
26
|
+
postMessage({ type: "onError", error: deps.error });
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return deps.value;
|
|
30
|
+
},
|
|
23
31
|
handlers,
|
|
24
32
|
});
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
const sqliteResult = await createSqlite(platformDeps)(initMessage.config.name, {
|
|
33
|
+
const createDbWorkerDeps = async (platformDeps, initMessage, postMessage) => {
|
|
34
|
+
const sqlite = await createSqlite(platformDeps)(initMessage.config.name, {
|
|
28
35
|
memory: initMessage.config.inMemory ?? false,
|
|
29
36
|
encryptionKey: initMessage.config.encryptionKey ?? undefined,
|
|
30
37
|
});
|
|
31
|
-
if (!
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return currentDbSchema;
|
|
38
|
+
if (!sqlite.ok)
|
|
39
|
+
return sqlite;
|
|
40
|
+
const deps = { ...platformDeps, sqlite: sqlite.value };
|
|
41
|
+
return deps.sqlite.transaction(() => {
|
|
42
|
+
const dbSchema = getDbSchema(deps)();
|
|
43
|
+
if (!dbSchema.ok)
|
|
44
|
+
return dbSchema;
|
|
45
|
+
const dbIsInitialized = "evolu_version" in dbSchema.value.tables;
|
|
40
46
|
let appOwner;
|
|
41
47
|
let clock;
|
|
42
|
-
const dbIsInitialized = currentDbSchema.value.tables.some((table) => table.name === "evolu_version");
|
|
43
48
|
if (dbIsInitialized) {
|
|
44
|
-
const currentVersion = sqlite.exec(sql `select protocolVersion from evolu_version limit 1;`);
|
|
49
|
+
const currentVersion = deps.sqlite.exec(sql `select protocolVersion from evolu_version limit 1;`);
|
|
45
50
|
if (!currentVersion.ok)
|
|
46
51
|
return currentVersion;
|
|
47
|
-
const configResult = sqlite.exec(sql `
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
const configResult = deps.sqlite.exec(sql `
|
|
53
|
+
select
|
|
54
|
+
clock,
|
|
55
|
+
appOwnerId,
|
|
56
|
+
appOwnerEncryptionKey,
|
|
57
|
+
appOwnerWriteKey,
|
|
58
|
+
appOwnerMnemonic
|
|
59
|
+
from evolu_config
|
|
60
|
+
limit 1;
|
|
61
|
+
`);
|
|
57
62
|
if (!configResult.ok)
|
|
58
63
|
return configResult;
|
|
59
|
-
|
|
64
|
+
assertNonEmptyReadonlyArray(configResult.value.rows);
|
|
65
|
+
const config = firstInArray(configResult.value.rows);
|
|
60
66
|
appOwner = {
|
|
61
67
|
type: "AppOwner",
|
|
62
68
|
id: config.appOwnerId,
|
|
@@ -64,27 +70,33 @@ const createInit = (platformDeps) => async (initMessage, postMessage) => {
|
|
|
64
70
|
writeKey: config.appOwnerWriteKey,
|
|
65
71
|
mnemonic: config.appOwnerMnemonic,
|
|
66
72
|
};
|
|
67
|
-
clock = createClock(
|
|
73
|
+
clock = createClock(deps)(timestampBytesToTimestamp(config.clock));
|
|
68
74
|
}
|
|
69
75
|
else {
|
|
70
76
|
appOwner =
|
|
71
77
|
initMessage.config.externalAppOwner ??
|
|
72
78
|
createAppOwner(createOwnerSecret(platformDeps));
|
|
73
|
-
clock = createClock(
|
|
74
|
-
const result = initializeDb(
|
|
79
|
+
clock = createClock(deps)();
|
|
80
|
+
const result = initializeDb(deps)(appOwner, clock.get());
|
|
81
|
+
if (!result.ok)
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
{
|
|
85
|
+
const result = ensureDbSchema(deps)(initMessage.dbSchema, dbSchema.value);
|
|
86
|
+
if (!result.ok)
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
{
|
|
90
|
+
const result = ensureMessageQuarantineTable(deps);
|
|
75
91
|
if (!result.ok)
|
|
76
92
|
return result;
|
|
77
93
|
}
|
|
78
|
-
const result = ensureDbSchema({ sqlite })(initMessage.dbSchema, currentDbSchema.value);
|
|
79
|
-
if (!result.ok)
|
|
80
|
-
return result;
|
|
81
94
|
const sync = createSync({
|
|
82
|
-
...
|
|
95
|
+
...deps,
|
|
83
96
|
clock,
|
|
84
|
-
sqlite,
|
|
85
97
|
symmetricCrypto: createSymmetricCrypto(platformDeps),
|
|
86
98
|
timestampConfig: initMessage.config,
|
|
87
|
-
|
|
99
|
+
dbSchema: initMessage.dbSchema,
|
|
88
100
|
})({
|
|
89
101
|
appOwner,
|
|
90
102
|
transports: initMessage.config.transports,
|
|
@@ -97,31 +109,23 @@ const createInit = (platformDeps) => async (initMessage, postMessage) => {
|
|
|
97
109
|
});
|
|
98
110
|
if (!sync.ok)
|
|
99
111
|
return sync;
|
|
112
|
+
{
|
|
113
|
+
const result = tryApplyQuarantinedMessages({
|
|
114
|
+
...deps,
|
|
115
|
+
dbSchema: initMessage.dbSchema,
|
|
116
|
+
})();
|
|
117
|
+
if (!result.ok)
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
100
120
|
sync.value.useOwner(true, appOwner);
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (!cache) {
|
|
105
|
-
cache = createQueryRowsCache();
|
|
106
|
-
tabQueryRowsCacheMap.set(tabId, cache);
|
|
107
|
-
}
|
|
108
|
-
return cache;
|
|
109
|
-
};
|
|
110
|
-
const deps = {
|
|
111
|
-
...platformDeps,
|
|
112
|
-
getQueryRowsCache,
|
|
121
|
+
return ok({
|
|
122
|
+
...deps,
|
|
123
|
+
getQueryRowsCache: createGetQueryRowsCache(),
|
|
113
124
|
postMessage,
|
|
114
|
-
sqlite,
|
|
115
125
|
sync: sync.value,
|
|
116
126
|
appOwner,
|
|
117
|
-
};
|
|
118
|
-
return ok(deps);
|
|
127
|
+
});
|
|
119
128
|
});
|
|
120
|
-
if (!deps.ok) {
|
|
121
|
-
postMessage({ type: "onError", error: deps.error });
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
return deps.value;
|
|
125
129
|
};
|
|
126
130
|
const initializeDb = (deps) => (initialAppOwner, initialClock) => {
|
|
127
131
|
for (const query of [
|
|
@@ -183,7 +187,6 @@ const initializeDb = (deps) => (initialAppOwner, initialClock) => {
|
|
|
183
187
|
strict;
|
|
184
188
|
`,
|
|
185
189
|
// Index for reading database changes by owner and timestamp.
|
|
186
|
-
// Timestamp always corresponds to a DbChange.
|
|
187
190
|
sql `
|
|
188
191
|
create index evolu_history_ownerId_timestamp on evolu_history (
|
|
189
192
|
"ownerId",
|
|
@@ -209,6 +212,39 @@ const initializeDb = (deps) => (initialAppOwner, initialClock) => {
|
|
|
209
212
|
return result;
|
|
210
213
|
return ok();
|
|
211
214
|
};
|
|
215
|
+
/**
|
|
216
|
+
* Ensures the quarantine table exists for storing messages with unknown schema.
|
|
217
|
+
*
|
|
218
|
+
* When a device receives sync messages containing tables or columns that don't
|
|
219
|
+
* exist in its current schema (e.g., from a newer app version), those messages
|
|
220
|
+
* are stored here instead of being discarded. This enables forward
|
|
221
|
+
* compatibility:
|
|
222
|
+
*
|
|
223
|
+
* 1. Unknown data is preserved and can be applied when the app is updated
|
|
224
|
+
* 2. Messages are still propagated to other devices that may understand them
|
|
225
|
+
* 3. Partial messages work - known columns go to app tables, unknown to quarantine
|
|
226
|
+
*
|
|
227
|
+
* The `union all` query in `readDbChange` combines `evolu_history` and this
|
|
228
|
+
* table, ensuring all data (known and unknown) is included when syncing to
|
|
229
|
+
* other devices.
|
|
230
|
+
*/
|
|
231
|
+
const ensureMessageQuarantineTable = (deps) => {
|
|
232
|
+
const result = deps.sqlite.exec(sql `
|
|
233
|
+
create table if not exists evolu_message_quarantine (
|
|
234
|
+
"ownerId" blob not null,
|
|
235
|
+
"timestamp" blob not null,
|
|
236
|
+
"table" text not null,
|
|
237
|
+
"id" blob not null,
|
|
238
|
+
"column" text not null,
|
|
239
|
+
"value" any,
|
|
240
|
+
primary key ("ownerId", "timestamp", "table", "id", "column")
|
|
241
|
+
)
|
|
242
|
+
strict;
|
|
243
|
+
`);
|
|
244
|
+
if (!result.ok)
|
|
245
|
+
return result;
|
|
246
|
+
return ok();
|
|
247
|
+
};
|
|
212
248
|
const handlers = {
|
|
213
249
|
getAppOwner: (deps) => () => {
|
|
214
250
|
deps.postMessage({
|
|
@@ -269,11 +305,11 @@ const handlers = {
|
|
|
269
305
|
});
|
|
270
306
|
},
|
|
271
307
|
reset: (deps) => (message) => {
|
|
272
|
-
const
|
|
308
|
+
const result = deps.sqlite.transaction(() => {
|
|
273
309
|
const dbSchema = getDbSchema(deps)();
|
|
274
310
|
if (!dbSchema.ok)
|
|
275
311
|
return dbSchema;
|
|
276
|
-
for (const
|
|
312
|
+
for (const tableName in dbSchema.value.tables) {
|
|
277
313
|
/**
|
|
278
314
|
* The dropped table is completely removed from the database schema and
|
|
279
315
|
* the disk file. The table can not be recovered. All indices and
|
|
@@ -281,29 +317,24 @@ const handlers = {
|
|
|
281
317
|
* https://sqlite.org/lang_droptable.html
|
|
282
318
|
*/
|
|
283
319
|
const result = deps.sqlite.exec(sql `
|
|
284
|
-
drop table ${sql.identifier(
|
|
320
|
+
drop table ${sql.identifier(tableName)};
|
|
285
321
|
`);
|
|
286
322
|
if (!result.ok)
|
|
287
323
|
return result;
|
|
288
324
|
}
|
|
289
325
|
if (message.restore) {
|
|
290
|
-
const
|
|
291
|
-
if (!
|
|
292
|
-
return
|
|
293
|
-
const ensureDbSchemaResult = ensureDbSchema(deps)(message.restore.dbSchema, dbSchema.value);
|
|
294
|
-
if (!ensureDbSchemaResult.ok)
|
|
295
|
-
return ensureDbSchemaResult;
|
|
326
|
+
const result = ensureDbSchema(deps)(message.restore.dbSchema);
|
|
327
|
+
if (!result.ok)
|
|
328
|
+
return result;
|
|
296
329
|
const secret = mnemonicToOwnerSecret(message.restore.mnemonic);
|
|
297
330
|
const appOwner = createAppOwner(secret);
|
|
298
331
|
const clock = createClock(deps)();
|
|
299
|
-
|
|
300
|
-
if (!initializeDbResult.ok)
|
|
301
|
-
return initializeDbResult;
|
|
332
|
+
return initializeDb(deps)(appOwner, clock.get());
|
|
302
333
|
}
|
|
303
334
|
return ok();
|
|
304
335
|
});
|
|
305
|
-
if (!
|
|
306
|
-
deps.postMessage({ type: "onError", error:
|
|
336
|
+
if (!result.ok) {
|
|
337
|
+
deps.postMessage({ type: "onError", error: result.error });
|
|
307
338
|
return;
|
|
308
339
|
}
|
|
309
340
|
deps.postMessage({
|
|
@@ -313,17 +344,9 @@ const handlers = {
|
|
|
313
344
|
});
|
|
314
345
|
},
|
|
315
346
|
ensureDbSchema: (deps) => (message) => {
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
return dbSchema;
|
|
320
|
-
const ensureDbSchemaResult = ensureDbSchema(deps)(message.dbSchema, dbSchema.value);
|
|
321
|
-
if (!ensureDbSchemaResult.ok)
|
|
322
|
-
return ensureDbSchemaResult;
|
|
323
|
-
return ok();
|
|
324
|
-
});
|
|
325
|
-
if (!ensureSchema.ok) {
|
|
326
|
-
deps.postMessage({ type: "onError", error: ensureSchema.error });
|
|
347
|
+
const result = deps.sqlite.transaction(() => ensureDbSchema(deps)(message.dbSchema));
|
|
348
|
+
if (!result.ok) {
|
|
349
|
+
deps.postMessage({ type: "onError", error: result.error });
|
|
327
350
|
return;
|
|
328
351
|
}
|
|
329
352
|
},
|
|
@@ -343,25 +366,3 @@ const handlers = {
|
|
|
343
366
|
deps.sync.useOwner(message.use, message.owner);
|
|
344
367
|
},
|
|
345
368
|
};
|
|
346
|
-
const loadQueries = (deps) => (tabId, queries) => {
|
|
347
|
-
const queriesRows = [];
|
|
348
|
-
for (const query of queries) {
|
|
349
|
-
const sqlQuery = deserializeQuery(query);
|
|
350
|
-
const result = deps.sqlite.exec(sqlQuery);
|
|
351
|
-
if (!result.ok)
|
|
352
|
-
return result;
|
|
353
|
-
queriesRows.push([query, result.value.rows]);
|
|
354
|
-
if (sqlQuery.options?.logExplainQueryPlan) {
|
|
355
|
-
explainSqliteQueryPlan(deps)(sqlQuery);
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
const queryRowsCache = deps.getQueryRowsCache(tabId);
|
|
359
|
-
const previousState = queryRowsCache.get();
|
|
360
|
-
queryRowsCache.set(queriesRows);
|
|
361
|
-
const currentState = queryRowsCache.get();
|
|
362
|
-
const queryPatchesArray = queries.map((query) => ({
|
|
363
|
-
query,
|
|
364
|
-
patches: makePatches(previousState.get(query), currentState.get(query) ?? emptyRows),
|
|
365
|
-
}));
|
|
366
|
-
return ok(queryPatchesArray);
|
|
367
|
-
};
|
|
@@ -39,6 +39,9 @@ export interface EvoluConfig extends Partial<DbConfig> {
|
|
|
39
39
|
* URL to reload browser tabs after reset or restore.
|
|
40
40
|
*
|
|
41
41
|
* The default value is `/`.
|
|
42
|
+
*
|
|
43
|
+
* Note: This option will be moved to web platform deps in the next major
|
|
44
|
+
* version.
|
|
42
45
|
*/
|
|
43
46
|
readonly reloadUrl?: string;
|
|
44
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../../src/local-first/Evolu.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAKL,WAAW,EAEZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAML,QAAQ,EAKT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../../src/local-first/Evolu.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,7 @@ import { isSqlMutation, SqliteBoolean, sqliteBooleanToBoolean, } from "../Sqlite
|
|
|
10
10
|
import { createStore } from "../Store.js";
|
|
11
11
|
import { createId, } from "../Type.js";
|
|
12
12
|
import { defaultDbConfig } from "./Db.js";
|
|
13
|
-
import { applyPatches } from "./
|
|
14
|
-
import { createSubscribedQueries, emptyRows, serializeQuery, } from "./Query.js";
|
|
13
|
+
import { applyPatches, createSubscribedQueries, emptyRows, serializeQuery, } from "./Query.js";
|
|
15
14
|
import { evoluSchemaToDbSchema, insertable, kysely, updateable, upsertable, } from "./Schema.js";
|
|
16
15
|
import { DbChange } from "./Storage.js";
|
|
17
16
|
import { initialSyncState } from "./Sync.js";
|
|
@@ -271,16 +270,16 @@ const createEvoluInstance = (deps) => (schema, config) => {
|
|
|
271
270
|
loadQueries: (queries) => queries.map(evolu.loadQuery),
|
|
272
271
|
subscribeQuery: (query) => (listener) => {
|
|
273
272
|
// Call the listener only if the result has been changed.
|
|
274
|
-
let
|
|
273
|
+
let previousRows = null;
|
|
275
274
|
const unsubscribe = subscribedQueries.subscribe(query)(() => {
|
|
276
|
-
const
|
|
277
|
-
if (
|
|
275
|
+
const rows = evolu.getQueryRows(query);
|
|
276
|
+
if (previousRows === rows)
|
|
278
277
|
return;
|
|
279
|
-
|
|
278
|
+
previousRows = rows;
|
|
280
279
|
listener();
|
|
281
280
|
});
|
|
282
281
|
return () => {
|
|
283
|
-
|
|
282
|
+
previousRows = null;
|
|
284
283
|
unsubscribe();
|
|
285
284
|
};
|
|
286
285
|
},
|
|
@@ -27,9 +27,9 @@ export interface LocalAuthDep {
|
|
|
27
27
|
readonly localAuth: LocalAuth;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* - **⚠️
|
|
31
|
-
*
|
|
32
30
|
* Secure storage interface that must be implemented by each platform.
|
|
31
|
+
*
|
|
32
|
+
* @experimental
|
|
33
33
|
*/
|
|
34
34
|
export interface SecureStorage {
|
|
35
35
|
setItem: (key: string, value: string, options?: LocalAuthOptions) => Promise<MutationResult>;
|
|
@@ -9,6 +9,7 @@ import { TimestampBytes } from "./Timestamp.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export interface ReadonlyOwner {
|
|
11
11
|
readonly id: OwnerId;
|
|
12
|
+
/** TODO: Wrap with `Redacted` in the next major version. */
|
|
12
13
|
readonly encryptionKey: OwnerEncryptionKey;
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
@@ -43,6 +44,7 @@ export interface ReadonlyOwner {
|
|
|
43
44
|
* @see {@link createSharedReadonlyOwner}
|
|
44
45
|
*/
|
|
45
46
|
export interface Owner extends ReadonlyOwner {
|
|
47
|
+
/** TODO: Wrap with `Redacted` in the next major version. */
|
|
46
48
|
readonly writeKey: OwnerWriteKey;
|
|
47
49
|
}
|
|
48
50
|
/** OwnerId is a branded {@link Id} that uniquely identifies an {@link Owner}. */
|
|
@@ -124,9 +126,14 @@ export interface AppOwner extends Owner {
|
|
|
124
126
|
* The mnemonic that was used to derive the AppOwner keys. Optional when the
|
|
125
127
|
* AppOwner is created from external keys to avoid sharing the mnemonic with
|
|
126
128
|
* the Evolu app.
|
|
129
|
+
*
|
|
130
|
+
* TODO: Wrap with `Redacted` in the next major version.
|
|
127
131
|
*/
|
|
128
132
|
readonly mnemonic?: Mnemonic | null;
|
|
129
133
|
}
|
|
134
|
+
export interface AppOwnerDep {
|
|
135
|
+
readonly appOwner: AppOwner;
|
|
136
|
+
}
|
|
130
137
|
/** Creates an {@link AppOwner} from an {@link OwnerSecret}. */
|
|
131
138
|
export declare const createAppOwner: (secret: OwnerSecret) => AppOwner;
|
|
132
139
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Owner.d.ts","sourceRoot":"","sources":["../../../src/local-first/Owner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAKL,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAML,QAAQ,EACR,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,iFAAiF;AACjF,eAAO,MAAM,OAAO,mZAAuB,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAE1C,+CAA+C;AAC/C,eAAO,MAAM,YAAY,uvBAAiC,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AAEpD,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,KAAG,YACnB,CAAC;AAEvC,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,GAAI,cAAc,YAAY,KAAG,OAClB,CAAC;AAElD,eAAO,MAAM,mBAAmB,0FAA6B,CAAC;AAE9D,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,8/BAA6C,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,aAAa,wrBAAoC,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,cAAc,KAAG,aACb,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,WAAW,orBAAkC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAElD,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,GAAI,MAAM,cAAc,KAAG,WACb,CAAC;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,GAAI,QAAQ,WAAW,KAAG,QACL,CAAC;AAExD,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,GAAI,UAAU,QAAQ,KAAG,WACC,CAAC;AAsB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B
|
|
1
|
+
{"version":3,"file":"Owner.d.ts","sourceRoot":"","sources":["../../../src/local-first/Owner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -586,9 +586,9 @@ export const applyProtocolMessageAsClient = (deps) => async (inputMessage, optio
|
|
|
586
586
|
const messages = decodeMessages(input);
|
|
587
587
|
const ownerIdBytes = ownerIdToOwnerIdBytes(ownerId);
|
|
588
588
|
if (isNonEmptyReadonlyArray(messages)) {
|
|
589
|
-
const
|
|
589
|
+
const result = await deps.storage.writeMessages(ownerIdBytes, messages);
|
|
590
590
|
// Errors are handled by the Storage. Here we just stop syncing.
|
|
591
|
-
if (!
|
|
591
|
+
if (!result.ok)
|
|
592
592
|
return ok({ type: "no-response" });
|
|
593
593
|
}
|
|
594
594
|
// Now: No writeKey, no sync.
|
|
@@ -612,9 +612,9 @@ export const applyProtocolMessageAsClient = (deps) => async (inputMessage, optio
|
|
|
612
612
|
writeKey,
|
|
613
613
|
rangesMaxSize: options.rangesMaxSize,
|
|
614
614
|
});
|
|
615
|
-
const
|
|
615
|
+
const result = sync(deps)(ranges, output, ownerIdBytes);
|
|
616
616
|
// Client sync error (handled via Storage) or no changes.
|
|
617
|
-
if (!
|
|
617
|
+
if (!result.ok || !result.value) {
|
|
618
618
|
return ok({ type: "no-response" });
|
|
619
619
|
}
|
|
620
620
|
return ok({ type: "response", message: output.unwrap() });
|
|
@@ -685,9 +685,9 @@ version = protocolVersion) => {
|
|
|
685
685
|
}).unwrap(),
|
|
686
686
|
});
|
|
687
687
|
}
|
|
688
|
-
const
|
|
689
|
-
if (!
|
|
690
|
-
const errorCode =
|
|
688
|
+
const result = await deps.storage.writeMessages(ownerIdBytes, messages);
|
|
689
|
+
if (!result.ok) {
|
|
690
|
+
const errorCode = result.error.type === "StorageWriteError"
|
|
691
691
|
? ProtocolErrorCode.WriteError
|
|
692
692
|
: ProtocolErrorCode.QuotaError;
|
|
693
693
|
const message = createProtocolMessageBuffer(ownerId, {
|
|
@@ -738,12 +738,12 @@ version = protocolVersion) => {
|
|
|
738
738
|
if (!isNonEmptyReadonlyArray(ranges)) {
|
|
739
739
|
return ok({ type: "response", message: output.unwrap() });
|
|
740
740
|
}
|
|
741
|
-
const
|
|
742
|
-
const message =
|
|
741
|
+
const result = sync(deps)(ranges, output, ownerIdBytes);
|
|
742
|
+
const message = result.ok
|
|
743
743
|
? output.unwrap()
|
|
744
744
|
: createProtocolMessageBuffer(ownerId, {
|
|
745
745
|
messageType: MessageType.Response,
|
|
746
|
-
errorCode:
|
|
746
|
+
errorCode: result.error,
|
|
747
747
|
}).unwrap();
|
|
748
748
|
// Non-initiators always respond to provide sync completion feedback,
|
|
749
749
|
return ok({ type: "response", message });
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Public local-first API exported from "@evolu/common"
|
|
3
|
+
*
|
|
4
|
+
* This module provides the supported consumer-facing API for Evolu's
|
|
5
|
+
* local-first system: prefer importing from `@evolu/common` (this module) when
|
|
6
|
+
* using Evolu in applications. If you require access to lower level internals,
|
|
7
|
+
* consider importing from `@evolu/common/local-first`.
|
|
3
8
|
*
|
|
4
9
|
* @module
|
|
5
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Public.d.ts","sourceRoot":"","sources":["../../../src/local-first/Public.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Public.d.ts","sourceRoot":"","sources":["../../../src/local-first/Public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,EACd,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Public local-first API exported from "@evolu/common"
|
|
3
|
+
*
|
|
4
|
+
* This module provides the supported consumer-facing API for Evolu's
|
|
5
|
+
* local-first system: prefer importing from `@evolu/common` (this module) when
|
|
6
|
+
* using Evolu in applications. If you require access to lower level internals,
|
|
7
|
+
* consider importing from `@evolu/common/local-first`.
|
|
3
8
|
*
|
|
4
9
|
* @module
|
|
5
10
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AliasNode, ColumnNode, ExpressionWrapper, IdentifierNode, ReferenceNode, sql, TableNode, ValueNode, } from "kysely";
|
|
2
|
-
import { kyselyJsonIdentifier } from "./
|
|
2
|
+
import { kyselyJsonIdentifier } from "./Query.js";
|
|
3
3
|
export { sql } from "kysely";
|
|
4
4
|
/**
|
|
5
5
|
* A SQLite helper for aggregating a subquery into a JSON array.
|