@evolu/common 6.0.1-preview.11 → 6.0.1-preview.13
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/Evolu/Db.d.ts +1 -6
- package/dist/src/Evolu/Db.d.ts.map +1 -1
- package/dist/src/Evolu/Db.js +8 -58
- package/dist/src/Evolu/Evolu.d.ts +126 -6
- package/dist/src/Evolu/Evolu.d.ts.map +1 -1
- package/dist/src/Evolu/Evolu.js +18 -4
- package/dist/src/Evolu/Schema.d.ts +23 -5
- package/dist/src/Evolu/Schema.d.ts.map +1 -1
- package/dist/src/Evolu/Schema.js +27 -5
- package/dist/src/Type.d.ts +5 -1
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +10 -6
- package/package.json +1 -1
- package/src/Evolu/Db.ts +7 -93
- package/src/Evolu/Evolu.ts +148 -10
- package/src/Evolu/Schema.ts +38 -7
- package/src/Type.ts +10 -6
package/dist/src/Evolu/Db.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ import { BinaryOwnerId, CrdtMessage, DbChange, ProtocolError, Storage } from "./
|
|
|
18
18
|
import { Query } from "./Query.js";
|
|
19
19
|
import { SqliteStorageBase } from "./Storage.js";
|
|
20
20
|
import { CreateSyncDep } from "./Sync.js";
|
|
21
|
-
import {
|
|
21
|
+
import { TimestampError } from "./Timestamp.js";
|
|
22
22
|
export declare const DbTable: import("../Type.js").ObjectType<{
|
|
23
23
|
name: import("../Type.js").BrandType<import("../Type.js").Type<"Brand", string & import("../Types.js").Brand<"Base64Url">, string, import("../Type.js").RegexError<"Base64Url">, string, import("../Type.js").StringError>, "MaxLength256", import("../Type.js").MaxLengthError<256>, import("../Type.js").StringError | import("../Type.js").RegexError<"Base64Url">>;
|
|
24
24
|
columns: import("../Type.js").ArrayType<import("../Type.js").BrandType<import("../Type.js").Type<"Brand", string & import("../Types.js").Brand<"Base64Url">, string, import("../Type.js").RegexError<"Base64Url">, string, import("../Type.js").StringError>, "MaxLength256", import("../Type.js").MaxLengthError<256>, import("../Type.js").StringError | import("../Type.js").RegexError<"Base64Url">>>;
|
|
@@ -121,11 +121,6 @@ export interface DbSnapshot {
|
|
|
121
121
|
export declare const getDbSnapshot: (deps: SqliteDep) => DbSnapshot;
|
|
122
122
|
export declare const createAppTable: (tableName: string, columns: ReadonlyArray<string>) => SafeSql;
|
|
123
123
|
export declare const applyMessageToTimestampAndHistoryTables: (deps: SqliteDep & ClientStorageDep) => (ownerId: BinaryOwnerId, message: CrdtMessage) => Result<void, SqliteError>;
|
|
124
|
-
export declare const maybeMigrateToVersion0: (deps: SqliteDep) => (schema: DbSchema) => Result<{
|
|
125
|
-
readonly messages: ReadonlyArray<CrdtMessage>;
|
|
126
|
-
readonly mnemonic: Mnemonic;
|
|
127
|
-
readonly lastTimestamp: Timestamp;
|
|
128
|
-
} | null, SqliteError>;
|
|
129
124
|
export interface ClientStorage extends SqliteStorageBase, Storage {
|
|
130
125
|
}
|
|
131
126
|
export interface ClientStorageDep {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAEpB,2BAA2B,EAE5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAa,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Db.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Evolu/Db.js
CHANGED
|
@@ -5,7 +5,7 @@ import { eqArrayNumber } from "../Eq.js";
|
|
|
5
5
|
import { constFalse, exhaustiveCheck } from "../Function.js";
|
|
6
6
|
import { objectToEntries } from "../Object.js";
|
|
7
7
|
import { createRef } from "../Ref.js";
|
|
8
|
-
import {
|
|
8
|
+
import { ok } from "../Result.js";
|
|
9
9
|
import { createSqlite, explainSqliteQueryPlan, sql, } from "../Sqlite.js";
|
|
10
10
|
import { array, object, String } from "../Type.js";
|
|
11
11
|
import { createInitializedWorker, } from "../Worker.js";
|
|
@@ -14,7 +14,7 @@ import { createAppOwner, createOwnerRow, } from "./Owner.js";
|
|
|
14
14
|
import { applyProtocolMessageAsClient, Base64Url256, binaryIdToId, createProtocolMessageForSync, createProtocolMessageFromCrdtMessages, decryptAndDecodeDbChange, encodeAndEncryptDbChange, idToBinaryId, ownerIdToBinaryOwnerId, protocolVersion, } from "./Protocol.js";
|
|
15
15
|
import { createQueryRowsCache, deserializeQuery, emptyRows, } from "./Query.js";
|
|
16
16
|
import { createSqliteStorageBase, } from "./Storage.js";
|
|
17
|
-
import {
|
|
17
|
+
import { receiveTimestamp, sendTimestamp, timestampStringToTimestamp, timestampToBinaryTimestamp, timestampToTimestampString, } from "./Timestamp.js";
|
|
18
18
|
export const DbTable = object({
|
|
19
19
|
name: Base64Url256,
|
|
20
20
|
columns: array(Base64Url256),
|
|
@@ -50,14 +50,10 @@ export const createDbWorkerForPlatform = (platformDeps) => {
|
|
|
50
50
|
const ensureDbSchemaResult = ensureDbSchema({ sqlite })(initMessage.dbSchema, currentDbSchema.value);
|
|
51
51
|
if (!ensureDbSchemaResult.ok)
|
|
52
52
|
return ensureDbSchemaResult;
|
|
53
|
-
const maybeMigrateToVersion0Result = maybeMigrateToVersion0({ sqlite })(currentDbSchema.value);
|
|
54
|
-
if (!maybeMigrateToVersion0Result.ok)
|
|
55
|
-
return maybeMigrateToVersion0Result;
|
|
56
53
|
const ownerExists = currentDbSchema.value.tables.some((table) => table.name === "evolu_owner");
|
|
57
54
|
const appOwnerAndOwnerRow = ownerExists
|
|
58
55
|
? selectAppOwner({ sqlite })
|
|
59
|
-
: initializeDb({ ...platformDeps, sqlite })(
|
|
60
|
-
initMessage.config.mnemonic);
|
|
56
|
+
: initializeDb({ ...platformDeps, sqlite })(initMessage.config.mnemonic);
|
|
61
57
|
if (!appOwnerAndOwnerRow.ok)
|
|
62
58
|
return appOwnerAndOwnerRow;
|
|
63
59
|
const [appOwner, ownerRow] = appOwnerAndOwnerRow.value;
|
|
@@ -81,11 +77,6 @@ export const createDbWorkerForPlatform = (platformDeps) => {
|
|
|
81
77
|
...depsWithoutSyncAndStorage,
|
|
82
78
|
storage: storage.value,
|
|
83
79
|
};
|
|
84
|
-
if (maybeMigrateToVersion0Result.value) {
|
|
85
|
-
const result = applyMessages(depsWithoutSync)(maybeMigrateToVersion0Result.value.messages, maybeMigrateToVersion0Result.value.lastTimestamp);
|
|
86
|
-
if (!result.ok)
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
80
|
if (!ownerExists && isNonEmptyReadonlyArray(initMessage.initialData)) {
|
|
90
81
|
const result = applyChanges(depsWithoutSync)(initMessage.initialData);
|
|
91
82
|
if (!result.ok)
|
|
@@ -129,13 +120,7 @@ export const createDbWorkerForPlatform = (platformDeps) => {
|
|
|
129
120
|
return result;
|
|
130
121
|
}
|
|
131
122
|
else {
|
|
132
|
-
const
|
|
133
|
-
if (!millis.ok) {
|
|
134
|
-
return err({
|
|
135
|
-
type: "TimestampTimeOutOfRangeError",
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
const date = new Date(millis.value).toISOString();
|
|
123
|
+
const date = new Date(deps.time.now()).toISOString();
|
|
139
124
|
for (const [column, value] of objectToEntries(change.values)) {
|
|
140
125
|
const result = deps.sqlite.exec(sql.prepared `
|
|
141
126
|
insert into ${sql.identifier(change.table)}
|
|
@@ -553,8 +538,8 @@ const applyMessages = (deps) => (messages, lastTimestamp) => {
|
|
|
553
538
|
return ok();
|
|
554
539
|
};
|
|
555
540
|
const applyMessageToAppTable = (deps) => (ownerId, message) => {
|
|
556
|
-
const date = new Date(message.timestamp.millis).toISOString();
|
|
557
541
|
const timestamp = timestampToBinaryTimestamp(message.timestamp);
|
|
542
|
+
const updatedAt = new Date(message.timestamp.millis).toISOString();
|
|
558
543
|
for (const [column, value] of objectToEntries(message.change.values)) {
|
|
559
544
|
const result = deps.sqlite.exec(sql.prepared `
|
|
560
545
|
with
|
|
@@ -570,15 +555,15 @@ const applyMessageToAppTable = (deps) => (ownerId, message) => {
|
|
|
570
555
|
limit 1
|
|
571
556
|
)
|
|
572
557
|
insert into ${sql.identifier(message.change.table)}
|
|
573
|
-
("id", ${sql.identifier(column)},
|
|
574
|
-
select ${message.change.id}, ${value}, ${
|
|
558
|
+
("id", ${sql.identifier(column)}, updatedAt)
|
|
559
|
+
select ${message.change.id}, ${value}, ${updatedAt}
|
|
575
560
|
where
|
|
576
561
|
(select "timestamp" from lastTimestamp) is null
|
|
577
562
|
or (select "timestamp" from lastTimestamp) < ${timestamp}
|
|
578
563
|
on conflict ("id") do update
|
|
579
564
|
set
|
|
580
565
|
${sql.identifier(column)} = ${value},
|
|
581
|
-
updatedAt = ${
|
|
566
|
+
updatedAt = ${updatedAt}
|
|
582
567
|
where
|
|
583
568
|
(select "timestamp" from lastTimestamp) is null
|
|
584
569
|
or (select "timestamp" from lastTimestamp) < ${timestamp};
|
|
@@ -636,41 +621,6 @@ const loadQueries = (deps) => (tabId, queries) => {
|
|
|
636
621
|
}));
|
|
637
622
|
return ok(queryPatchesArray);
|
|
638
623
|
};
|
|
639
|
-
export const maybeMigrateToVersion0 = (deps) => (schema) => {
|
|
640
|
-
// evolu_history is a new table
|
|
641
|
-
const hasOwnerButNoHistory = schema.tables.some((t) => t.name === "evolu_owner") &&
|
|
642
|
-
!schema.tables.some((t) => t.name === "evolu_history");
|
|
643
|
-
if (!hasOwnerButNoHistory) {
|
|
644
|
-
return ok(null);
|
|
645
|
-
}
|
|
646
|
-
const mnemonicAndLastTimestamp = deps.sqlite.exec(sql ` select mnemonic, timestamp from evolu_owner limit 1; `);
|
|
647
|
-
if (!mnemonicAndLastTimestamp.ok)
|
|
648
|
-
return mnemonicAndLastTimestamp;
|
|
649
|
-
const messagesRows = deps.sqlite.exec(sql `
|
|
650
|
-
select "timestamp", "table", "id", "column", "value" from evolu_message;
|
|
651
|
-
`);
|
|
652
|
-
if (!messagesRows.ok)
|
|
653
|
-
return messagesRows;
|
|
654
|
-
for (const query of [
|
|
655
|
-
sql `drop table evolu_owner;`,
|
|
656
|
-
sql `drop table evolu_message;`,
|
|
657
|
-
]) {
|
|
658
|
-
const result = deps.sqlite.exec(query);
|
|
659
|
-
if (!result.ok)
|
|
660
|
-
return result;
|
|
661
|
-
}
|
|
662
|
-
const messages = messagesRows.value.rows.map((message) => ({
|
|
663
|
-
timestamp: timestampStringToTimestamp(message.timestamp),
|
|
664
|
-
change: {
|
|
665
|
-
id: message.id,
|
|
666
|
-
table: message.table,
|
|
667
|
-
values: { [message.column]: message.value },
|
|
668
|
-
},
|
|
669
|
-
}));
|
|
670
|
-
const { rows: [{ mnemonic, timestamp }], } = mnemonicAndLastTimestamp.value;
|
|
671
|
-
const lastTimestamp = timestampStringToTimestamp(timestamp);
|
|
672
|
-
return ok({ messages, mnemonic, lastTimestamp });
|
|
673
|
-
};
|
|
674
624
|
const dropAllTables = (deps) => {
|
|
675
625
|
const schema = getDbSchema(deps)();
|
|
676
626
|
if (!schema.ok)
|
|
@@ -194,32 +194,152 @@ export interface Evolu<S extends EvoluSchema = EvoluSchema> {
|
|
|
194
194
|
*/
|
|
195
195
|
readonly getSyncState: () => SyncState;
|
|
196
196
|
/**
|
|
197
|
-
* Inserts a row
|
|
197
|
+
* Inserts a row into the database and returns a {@link Result} with the new
|
|
198
|
+
* {@link Id}.
|
|
199
|
+
*
|
|
200
|
+
* The first argument is the table name, and the second is an object
|
|
201
|
+
* containing the row data. An optional third argument provides mutation
|
|
202
|
+
* options including an `onComplete` callback and `onlyValidate` flag.
|
|
203
|
+
*
|
|
204
|
+
* Returns a Result type - use `.ok` to check if the insertion succeeded, and
|
|
205
|
+
* `.value.id` to access the generated ID on success, or `.error` to handle
|
|
206
|
+
* validation errors.
|
|
207
|
+
*
|
|
208
|
+
* Evolu does not use SQL for mutations to ensure data can be safely and
|
|
209
|
+
* predictably merged without conflicts. Explicit mutations also allow Evolu
|
|
210
|
+
* to automatically add and update {@link DefaultColumns}.
|
|
198
211
|
*
|
|
199
212
|
* ### Example
|
|
200
213
|
*
|
|
201
214
|
* ```ts
|
|
202
|
-
*
|
|
215
|
+
* const result = evolu.insert("todo", {
|
|
216
|
+
* title: "Learn Evolu",
|
|
217
|
+
* isCompleted: false,
|
|
218
|
+
* });
|
|
219
|
+
*
|
|
220
|
+
* if (result.ok) {
|
|
221
|
+
* console.log("Todo created with ID:", result.value.id);
|
|
222
|
+
* } else {
|
|
223
|
+
* console.error("Validation error:", result.error);
|
|
224
|
+
* }
|
|
225
|
+
*
|
|
226
|
+
* // With onComplete callback
|
|
227
|
+
* evolu.insert(
|
|
228
|
+
* "todo",
|
|
229
|
+
* { title: "Another todo" },
|
|
230
|
+
* {
|
|
231
|
+
* onComplete: () => {
|
|
232
|
+
* console.log("Insert completed");
|
|
233
|
+
* },
|
|
234
|
+
* },
|
|
235
|
+
* );
|
|
203
236
|
* ```
|
|
204
237
|
*/
|
|
205
238
|
insert: Mutation<S, "insert">;
|
|
206
239
|
/**
|
|
207
|
-
* Updates a row
|
|
240
|
+
* Updates a row in the database and returns a {@link Result} with the existing
|
|
241
|
+
* {@link Id}.
|
|
242
|
+
*
|
|
243
|
+
* The first argument is the table name, and the second is an object
|
|
244
|
+
* containing the row data including the required `id` field. An optional
|
|
245
|
+
* third argument provides mutation options including an `onComplete` callback
|
|
246
|
+
* and `onlyValidate` flag.
|
|
247
|
+
*
|
|
248
|
+
* Returns a Result type - use `.ok` to check if the update succeeded, and
|
|
249
|
+
* `.value.id` to access the ID on success, or `.error` to handle validation
|
|
250
|
+
* errors.
|
|
251
|
+
*
|
|
252
|
+
* Evolu does not use SQL for mutations to ensure data can be safely and
|
|
253
|
+
* predictably merged without conflicts. Explicit mutations also allow Evolu
|
|
254
|
+
* to automatically add and update {@link DefaultColumns}.
|
|
208
255
|
*
|
|
209
256
|
* ### Example
|
|
210
257
|
*
|
|
211
258
|
* ```ts
|
|
212
|
-
*
|
|
259
|
+
* const result = evolu.update("todo", {
|
|
260
|
+
* id: todoId,
|
|
261
|
+
* title: "Updated title",
|
|
262
|
+
* isCompleted: true,
|
|
263
|
+
* });
|
|
264
|
+
*
|
|
265
|
+
* if (result.ok) {
|
|
266
|
+
* console.log("Todo updated with ID:", result.value.id);
|
|
267
|
+
* } else {
|
|
268
|
+
* console.error("Validation error:", result.error);
|
|
269
|
+
* }
|
|
270
|
+
*
|
|
271
|
+
* // To delete a row, set isDeleted to true
|
|
272
|
+
* evolu.update("todo", { id: todoId, isDeleted: true });
|
|
273
|
+
*
|
|
274
|
+
* // With onComplete callback
|
|
275
|
+
* evolu.update(
|
|
276
|
+
* "todo",
|
|
277
|
+
* { id: todoId, title: "New title" },
|
|
278
|
+
* {
|
|
279
|
+
* onComplete: () => {
|
|
280
|
+
* console.log("Update completed");
|
|
281
|
+
* },
|
|
282
|
+
* },
|
|
283
|
+
* );
|
|
213
284
|
* ```
|
|
214
285
|
*/
|
|
215
286
|
update: Mutation<S, "update">;
|
|
216
287
|
/**
|
|
217
|
-
* Upserts a row
|
|
288
|
+
* Upserts a row in the database and returns a {@link Result} with the existing
|
|
289
|
+
* {@link Id}.
|
|
290
|
+
*
|
|
291
|
+
* The first argument is the table name, and the second is an object
|
|
292
|
+
* containing the row data including the required `id` field. An optional
|
|
293
|
+
* third argument provides mutation options including an `onComplete` callback
|
|
294
|
+
* and `onlyValidate` flag.
|
|
295
|
+
*
|
|
296
|
+
* This function allows you to use custom IDs and optionally set `createdAt`,
|
|
297
|
+
* which is useful for external systems, data migrations, or when the same row
|
|
298
|
+
* may already be created on a different device.
|
|
299
|
+
*
|
|
300
|
+
* Returns a Result type - use `.ok` to check if the upsert succeeded, and
|
|
301
|
+
* `.value.id` to access the ID on success, or `.error` to handle validation
|
|
302
|
+
* errors.
|
|
303
|
+
*
|
|
304
|
+
* Evolu does not use SQL for mutations to ensure data can be safely and
|
|
305
|
+
* predictably merged without conflicts. Explicit mutations also allow Evolu
|
|
306
|
+
* to automatically add and update {@link DefaultColumns}.
|
|
218
307
|
*
|
|
219
308
|
* ### Example
|
|
220
309
|
*
|
|
221
310
|
* ```ts
|
|
222
|
-
* //
|
|
311
|
+
* // Use deterministic ID for stable upserts across devices
|
|
312
|
+
* const stableId = createIdFromString("my-todo-1");
|
|
313
|
+
*
|
|
314
|
+
* const result = evolu.upsert("todo", {
|
|
315
|
+
* id: stableId,
|
|
316
|
+
* title: "Learn Evolu",
|
|
317
|
+
* isCompleted: false,
|
|
318
|
+
* });
|
|
319
|
+
*
|
|
320
|
+
* if (result.ok) {
|
|
321
|
+
* console.log("Todo upserted with ID:", result.value.id);
|
|
322
|
+
* } else {
|
|
323
|
+
* console.error("Validation error:", result.error);
|
|
324
|
+
* }
|
|
325
|
+
*
|
|
326
|
+
* // Data migration with custom createdAt
|
|
327
|
+
* evolu.upsert("todo", {
|
|
328
|
+
* id: externalId,
|
|
329
|
+
* title: "Migrated todo",
|
|
330
|
+
* createdAt: new Date("2023-01-01"), // Preserve original timestamp
|
|
331
|
+
* });
|
|
332
|
+
*
|
|
333
|
+
* // With onComplete callback
|
|
334
|
+
* evolu.upsert(
|
|
335
|
+
* "todo",
|
|
336
|
+
* { id: stableId, title: "Updated title" },
|
|
337
|
+
* {
|
|
338
|
+
* onComplete: () => {
|
|
339
|
+
* console.log("Upsert completed");
|
|
340
|
+
* },
|
|
341
|
+
* },
|
|
342
|
+
* );
|
|
223
343
|
* ```
|
|
224
344
|
*/
|
|
225
345
|
upsert: Mutation<S, "upsert">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Evolu.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAA0B,WAAW,EAAe,MAAM,cAAc,CAAC;AAChF,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAML,QAAQ,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAEL,aAAa,EACb,+BAA+B,EAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,OAAO,EACP,0BAA0B,EAC1B,KAAK,EACL,SAAS,EAET,GAAG,EAGJ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Evolu.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Evolu/Evolu.js
CHANGED
|
@@ -186,7 +186,11 @@ const createEvoluInstance = (deps) => (schema, evoluConfig) => {
|
|
|
186
186
|
const id = createId(deps);
|
|
187
187
|
const values = getMutationType(table, "insert").fromUnknown(props);
|
|
188
188
|
if (values.ok) {
|
|
189
|
-
const
|
|
189
|
+
const valuesWithCreatedAt = {
|
|
190
|
+
...values.value,
|
|
191
|
+
createdAt: new Date(deps.time.now()).toISOString(),
|
|
192
|
+
};
|
|
193
|
+
const dbChange = { table, id, values: valuesWithCreatedAt };
|
|
190
194
|
assertValidDbChange(dbChange);
|
|
191
195
|
initialDataDbChanges.push(dbChange);
|
|
192
196
|
return ok({ id });
|
|
@@ -215,9 +219,19 @@ const createEvoluInstance = (deps) => (schema, evoluConfig) => {
|
|
|
215
219
|
mutateMicrotaskQueue.push([undefined, undefined]);
|
|
216
220
|
}
|
|
217
221
|
else {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
222
|
+
const values = { ...result.value };
|
|
223
|
+
delete values.id;
|
|
224
|
+
if (kind === "insert" || kind === "upsert") {
|
|
225
|
+
// Only set createdAt if not provided by user
|
|
226
|
+
if (!("createdAt" in values)) {
|
|
227
|
+
values.createdAt = new Date(deps.time.now()).toISOString();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
const dbChange = {
|
|
231
|
+
table,
|
|
232
|
+
id,
|
|
233
|
+
values,
|
|
234
|
+
};
|
|
221
235
|
assertValidDbChange(dbChange);
|
|
222
236
|
mutateMicrotaskQueue.push([dbChange, options?.onComplete]);
|
|
223
237
|
}
|
|
@@ -2,7 +2,7 @@ import { Kysely, SelectQueryBuilder } from "kysely";
|
|
|
2
2
|
import { ReadonlyRecord } from "../Object.js";
|
|
3
3
|
import { Result } from "../Result.js";
|
|
4
4
|
import { SqliteBoolean, SqliteQueryOptions, SqliteValue } from "../Sqlite.js";
|
|
5
|
-
import { AnyType, BrandType, IdType, InferErrors, InferInput, InferType, MergeObjectTypeErrors, NullableToOptionalProps, ObjectType, OptionalType, Type, TypeError } from "../Type.js";
|
|
5
|
+
import { AnyType, BrandType, DateIso, IdType, InferErrors, InferInput, InferType, MergeObjectTypeErrors, NullableToOptionalProps, ObjectType, OptionalType, Type, TypeError } from "../Type.js";
|
|
6
6
|
import { Simplify } from "../Types.js";
|
|
7
7
|
import { DbSchema } from "./Db.js";
|
|
8
8
|
import { DbIndexesBuilder } from "./Kysely.js";
|
|
@@ -79,6 +79,16 @@ export type CreateQuery<S extends EvoluSchema> = <R extends Row>(queryCallback:
|
|
|
79
79
|
readonly value: SqliteValue;
|
|
80
80
|
};
|
|
81
81
|
}>, "selectFrom" | "fn" | "with" | "withRecursive">) => SelectQueryBuilder<any, any, R>, options?: SqliteQueryOptions) => Query<Simplify<R>>;
|
|
82
|
+
/**
|
|
83
|
+
* Default columns automatically added to all tables.
|
|
84
|
+
*
|
|
85
|
+
* - `createdAt`: Set by Evolu when `insert` is called, or can be custom with
|
|
86
|
+
* `upsert`.
|
|
87
|
+
* - `updatedAt`: Always set by Evolu, derived from {@link CrdtMessage} timestamp.
|
|
88
|
+
* If you defer sync to avoid leaking time activity, use a custom column to
|
|
89
|
+
* preserve real update time.
|
|
90
|
+
* - `isDeleted`: Soft delete flag.
|
|
91
|
+
*/
|
|
82
92
|
export declare const DefaultColumns: ObjectType<{
|
|
83
93
|
createdAt: BrandType<Type<"String", string, string, import("../Type.js").StringError, string, import("../Type.js").StringError>, "DateIso", import("../Type.js").DateIsoStringError, import("../Type.js").StringError>;
|
|
84
94
|
updatedAt: BrandType<Type<"String", string, string, import("../Type.js").StringError, string, import("../Type.js").StringError>, "DateIso", import("../Type.js").DateIsoStringError, import("../Type.js").StringError>;
|
|
@@ -160,20 +170,28 @@ export type UpdateableProps<Props extends Record<string, AnyType>> = {
|
|
|
160
170
|
};
|
|
161
171
|
export type Updateable<Props extends Record<string, AnyType>> = InferInput<ObjectType<UpdateableProps<Props>>>;
|
|
162
172
|
/**
|
|
163
|
-
* Type Factory to create upsertable Type. It makes nullable Types optional
|
|
164
|
-
* ensures the
|
|
173
|
+
* Type Factory to create upsertable Type. It makes nullable Types optional,
|
|
174
|
+
* includes optional default columns (createdAt, isDeleted), and ensures the
|
|
175
|
+
* {@link maxMutationSize}.
|
|
165
176
|
*
|
|
166
177
|
* ### Example
|
|
167
178
|
*
|
|
168
179
|
* ```ts
|
|
169
180
|
* const UpsertableTodo = upsertable(Schema.todo);
|
|
170
181
|
* type UpsertableTodo = typeof UpsertableTodo.Type;
|
|
171
|
-
* const todo = UpsertableTodo.from({
|
|
182
|
+
* const todo = UpsertableTodo.from({
|
|
183
|
+
* id,
|
|
184
|
+
* title,
|
|
185
|
+
* createdAt: "2023-01-01T00:00:00.000Z",
|
|
186
|
+
* });
|
|
172
187
|
* if (!todo.ok) return; // handle errors
|
|
173
188
|
* ```
|
|
174
189
|
*/
|
|
175
190
|
export declare const upsertable: <Props extends Record<string, AnyType>>(props: Props) => ValidMutationSize<UpsertableProps<Props>>;
|
|
176
|
-
export type UpsertableProps<Props extends Record<string, AnyType>> = NullableToOptionalProps<Props
|
|
191
|
+
export type UpsertableProps<Props extends Record<string, AnyType>> = NullableToOptionalProps<Props & {
|
|
192
|
+
createdAt: OptionalType<typeof DateIso>;
|
|
193
|
+
isDeleted: OptionalType<typeof SqliteBoolean>;
|
|
194
|
+
}>;
|
|
177
195
|
export type Upsertable<Props extends Record<string, AnyType>> = InferInput<ObjectType<UpsertableProps<Props>>>;
|
|
178
196
|
export type InferEvoluSchemaError<S extends EvoluSchema> = {
|
|
179
197
|
[Table in keyof S]: InferMutationTypeErrors<S[Table]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAGpD,OAAO,EAA8B,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAW,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EACL,OAAO,EAEP,SAAS,
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Schema.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Evolu/Schema.js
CHANGED
|
@@ -3,7 +3,7 @@ import { assert } from "../Assert.js";
|
|
|
3
3
|
import { mapObject, objectToEntries } from "../Object.js";
|
|
4
4
|
import { err, ok } from "../Result.js";
|
|
5
5
|
import { SqliteBoolean } from "../Sqlite.js";
|
|
6
|
-
import { brand, createTypeErrorFormatter, DateIsoString, nullableToOptional, nullOr, object, omit, optional, } from "../Type.js";
|
|
6
|
+
import { brand, createTypeErrorFormatter, DateIso, DateIsoString, nullableToOptional, nullOr, object, omit, optional, } from "../Type.js";
|
|
7
7
|
import { DbSchema } from "./Db.js";
|
|
8
8
|
import { createIndexes } from "./Kysely.js";
|
|
9
9
|
export const evoluSchemaToDbSchema = (schema, indexes) => {
|
|
@@ -17,6 +17,16 @@ export const evoluSchemaToDbSchema = (schema, indexes) => {
|
|
|
17
17
|
assert(DbSchema.is(dbSchema), "Invalid EvoluSchema: Table and column names must use only characters A-Za-z0-9_- and be at most 256 characters long.");
|
|
18
18
|
return dbSchema;
|
|
19
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Default columns automatically added to all tables.
|
|
22
|
+
*
|
|
23
|
+
* - `createdAt`: Set by Evolu when `insert` is called, or can be custom with
|
|
24
|
+
* `upsert`.
|
|
25
|
+
* - `updatedAt`: Always set by Evolu, derived from {@link CrdtMessage} timestamp.
|
|
26
|
+
* If you defer sync to avoid leaking time activity, use a custom column to
|
|
27
|
+
* preserve real update time.
|
|
28
|
+
* - `isDeleted`: Soft delete flag.
|
|
29
|
+
*/
|
|
20
30
|
export const DefaultColumns = object({
|
|
21
31
|
createdAt: DateIsoString,
|
|
22
32
|
updatedAt: DateIsoString,
|
|
@@ -76,16 +86,28 @@ export const updateable = (props) => {
|
|
|
76
86
|
return validMutationSize(object(updateableProps));
|
|
77
87
|
};
|
|
78
88
|
/**
|
|
79
|
-
* Type Factory to create upsertable Type. It makes nullable Types optional
|
|
80
|
-
* ensures the
|
|
89
|
+
* Type Factory to create upsertable Type. It makes nullable Types optional,
|
|
90
|
+
* includes optional default columns (createdAt, isDeleted), and ensures the
|
|
91
|
+
* {@link maxMutationSize}.
|
|
81
92
|
*
|
|
82
93
|
* ### Example
|
|
83
94
|
*
|
|
84
95
|
* ```ts
|
|
85
96
|
* const UpsertableTodo = upsertable(Schema.todo);
|
|
86
97
|
* type UpsertableTodo = typeof UpsertableTodo.Type;
|
|
87
|
-
* const todo = UpsertableTodo.from({
|
|
98
|
+
* const todo = UpsertableTodo.from({
|
|
99
|
+
* id,
|
|
100
|
+
* title,
|
|
101
|
+
* createdAt: "2023-01-01T00:00:00.000Z",
|
|
102
|
+
* });
|
|
88
103
|
* if (!todo.ok) return; // handle errors
|
|
89
104
|
* ```
|
|
90
105
|
*/
|
|
91
|
-
export const upsertable = (props) =>
|
|
106
|
+
export const upsertable = (props) => {
|
|
107
|
+
const propsWithDefaults = {
|
|
108
|
+
...props,
|
|
109
|
+
createdAt: optional(DateIso),
|
|
110
|
+
isDeleted: optional(SqliteBoolean),
|
|
111
|
+
};
|
|
112
|
+
return validMutationSize(nullableToOptional(propsWithDefaults));
|
|
113
|
+
};
|
package/dist/src/Type.d.ts
CHANGED
|
@@ -1218,7 +1218,11 @@ export declare const TrimString: TransformType<Type<"String", string, string, St
|
|
|
1218
1218
|
*
|
|
1219
1219
|
* ### Example
|
|
1220
1220
|
*
|
|
1221
|
-
*
|
|
1221
|
+
* ```ts
|
|
1222
|
+
* DateIso.from(new Date("2023-12-25T10:30:00.000Z")); // ok("2023-12-25T10:30:00.000Z")
|
|
1223
|
+
* DateIso.to("2023-12-25T10:30:00.000Z"); // Date object
|
|
1224
|
+
* DateIso.from(new Date("invalid")); // err({ type: "DateIsoString", value: "Invalid Date" })
|
|
1225
|
+
* ```
|
|
1222
1226
|
*
|
|
1223
1227
|
* @category String
|
|
1224
1228
|
*/
|
package/dist/src/Type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../src/Type.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../src/Type.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Type.js
CHANGED
|
@@ -620,16 +620,16 @@ export const createId = (deps) => deps.nanoIdLib.nanoid();
|
|
|
620
620
|
* @category String
|
|
621
621
|
*/
|
|
622
622
|
export const createIdFromString = (value) => {
|
|
623
|
-
const hash = sha256(utf8ToBytes(value));
|
|
623
|
+
const hash = sha256(utf8ToBytes(value));
|
|
624
624
|
let output = "";
|
|
625
625
|
let buffer = 0;
|
|
626
626
|
let bits = 0;
|
|
627
|
-
for (
|
|
628
|
-
buffer = (buffer << 8) |
|
|
627
|
+
for (const byte of hash) {
|
|
628
|
+
buffer = (buffer << 8) | byte;
|
|
629
629
|
bits += 8;
|
|
630
|
-
while (bits >= 6 && output.length <
|
|
630
|
+
while (bits >= 6 && output.length < idTypeValueLength) {
|
|
631
631
|
bits -= 6;
|
|
632
|
-
const index = (buffer >> bits) & 0b111111;
|
|
632
|
+
const index = (buffer >> bits) & 0b111111;
|
|
633
633
|
output += base64UrlAlphabet[index];
|
|
634
634
|
}
|
|
635
635
|
}
|
|
@@ -943,7 +943,11 @@ export const TrimString = trim(String);
|
|
|
943
943
|
*
|
|
944
944
|
* ### Example
|
|
945
945
|
*
|
|
946
|
-
*
|
|
946
|
+
* ```ts
|
|
947
|
+
* DateIso.from(new Date("2023-12-25T10:30:00.000Z")); // ok("2023-12-25T10:30:00.000Z")
|
|
948
|
+
* DateIso.to("2023-12-25T10:30:00.000Z"); // Date object
|
|
949
|
+
* DateIso.from(new Date("invalid")); // err({ type: "DateIsoString", value: "Invalid Date" })
|
|
950
|
+
* ```
|
|
947
951
|
*
|
|
948
952
|
* @category String
|
|
949
953
|
*/
|
package/package.json
CHANGED
package/src/Evolu/Db.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { NanoIdLibDep } from "../NanoId.js";
|
|
|
20
20
|
import { objectToEntries } from "../Object.js";
|
|
21
21
|
import { RandomDep } from "../Random.js";
|
|
22
22
|
import { createRef, Ref } from "../Ref.js";
|
|
23
|
-
import {
|
|
23
|
+
import { ok, Result } from "../Result.js";
|
|
24
24
|
import {
|
|
25
25
|
createSqlite,
|
|
26
26
|
CreateSqliteDriverDep,
|
|
@@ -82,7 +82,6 @@ import {
|
|
|
82
82
|
} from "./Storage.js";
|
|
83
83
|
import { CreateSyncDep, SyncConfig, SyncDep } from "./Sync.js";
|
|
84
84
|
import {
|
|
85
|
-
Millis,
|
|
86
85
|
receiveTimestamp,
|
|
87
86
|
sendTimestamp,
|
|
88
87
|
Timestamp,
|
|
@@ -90,7 +89,6 @@ import {
|
|
|
90
89
|
TimestampCounterOverflowError,
|
|
91
90
|
TimestampDriftError,
|
|
92
91
|
TimestampError,
|
|
93
|
-
TimestampString,
|
|
94
92
|
timestampStringToTimestamp,
|
|
95
93
|
TimestampTimeOutOfRangeError,
|
|
96
94
|
timestampToBinaryTimestamp,
|
|
@@ -263,12 +261,6 @@ export const createDbWorkerForPlatform = (
|
|
|
263
261
|
);
|
|
264
262
|
if (!ensureDbSchemaResult.ok) return ensureDbSchemaResult;
|
|
265
263
|
|
|
266
|
-
const maybeMigrateToVersion0Result = maybeMigrateToVersion0({ sqlite })(
|
|
267
|
-
currentDbSchema.value,
|
|
268
|
-
);
|
|
269
|
-
if (!maybeMigrateToVersion0Result.ok)
|
|
270
|
-
return maybeMigrateToVersion0Result;
|
|
271
|
-
|
|
272
264
|
const ownerExists = currentDbSchema.value.tables.some(
|
|
273
265
|
(table) => table.name === "evolu_owner",
|
|
274
266
|
);
|
|
@@ -276,8 +268,7 @@ export const createDbWorkerForPlatform = (
|
|
|
276
268
|
const appOwnerAndOwnerRow = ownerExists
|
|
277
269
|
? selectAppOwner({ sqlite })
|
|
278
270
|
: initializeDb({ ...platformDeps, sqlite })(
|
|
279
|
-
|
|
280
|
-
initMessage.config.mnemonic,
|
|
271
|
+
initMessage.config.mnemonic,
|
|
281
272
|
);
|
|
282
273
|
if (!appOwnerAndOwnerRow.ok) return appOwnerAndOwnerRow;
|
|
283
274
|
|
|
@@ -305,14 +296,6 @@ export const createDbWorkerForPlatform = (
|
|
|
305
296
|
storage: storage.value,
|
|
306
297
|
};
|
|
307
298
|
|
|
308
|
-
if (maybeMigrateToVersion0Result.value) {
|
|
309
|
-
const result = applyMessages(depsWithoutSync)(
|
|
310
|
-
maybeMigrateToVersion0Result.value.messages,
|
|
311
|
-
maybeMigrateToVersion0Result.value.lastTimestamp,
|
|
312
|
-
);
|
|
313
|
-
if (!result.ok) return result;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
299
|
if (!ownerExists && isNonEmptyReadonlyArray(initMessage.initialData)) {
|
|
317
300
|
const result = applyChanges(depsWithoutSync)(initMessage.initialData);
|
|
318
301
|
if (!result.ok) return result;
|
|
@@ -361,13 +344,7 @@ export const createDbWorkerForPlatform = (
|
|
|
361
344
|
`);
|
|
362
345
|
if (!result.ok) return result;
|
|
363
346
|
} else {
|
|
364
|
-
const
|
|
365
|
-
if (!millis.ok) {
|
|
366
|
-
return err<TimestampTimeOutOfRangeError>({
|
|
367
|
-
type: "TimestampTimeOutOfRangeError",
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
const date = new Date(millis.value).toISOString();
|
|
347
|
+
const date = new Date(deps.time.now()).toISOString();
|
|
371
348
|
for (const [column, value] of objectToEntries(change.values)) {
|
|
372
349
|
const result = deps.sqlite.exec(sql.prepared`
|
|
373
350
|
insert into ${sql.identifier(change.table)}
|
|
@@ -943,8 +920,8 @@ const applyMessages =
|
|
|
943
920
|
const applyMessageToAppTable =
|
|
944
921
|
(deps: SqliteDep & OwnerRowRefDep) =>
|
|
945
922
|
(ownerId: BinaryOwnerId, message: CrdtMessage): Result<void, SqliteError> => {
|
|
946
|
-
const date = new Date(message.timestamp.millis).toISOString();
|
|
947
923
|
const timestamp = timestampToBinaryTimestamp(message.timestamp);
|
|
924
|
+
const updatedAt = new Date(message.timestamp.millis).toISOString();
|
|
948
925
|
|
|
949
926
|
for (const [column, value] of objectToEntries(message.change.values)) {
|
|
950
927
|
const result = deps.sqlite.exec(sql.prepared`
|
|
@@ -961,15 +938,15 @@ const applyMessageToAppTable =
|
|
|
961
938
|
limit 1
|
|
962
939
|
)
|
|
963
940
|
insert into ${sql.identifier(message.change.table)}
|
|
964
|
-
("id", ${sql.identifier(column)},
|
|
965
|
-
select ${message.change.id}, ${value}, ${
|
|
941
|
+
("id", ${sql.identifier(column)}, updatedAt)
|
|
942
|
+
select ${message.change.id}, ${value}, ${updatedAt}
|
|
966
943
|
where
|
|
967
944
|
(select "timestamp" from lastTimestamp) is null
|
|
968
945
|
or (select "timestamp" from lastTimestamp) < ${timestamp}
|
|
969
946
|
on conflict ("id") do update
|
|
970
947
|
set
|
|
971
948
|
${sql.identifier(column)} = ${value},
|
|
972
|
-
updatedAt = ${
|
|
949
|
+
updatedAt = ${updatedAt}
|
|
973
950
|
where
|
|
974
951
|
(select "timestamp" from lastTimestamp) is null
|
|
975
952
|
or (select "timestamp" from lastTimestamp) < ${timestamp};
|
|
@@ -1049,69 +1026,6 @@ const loadQueries =
|
|
|
1049
1026
|
return ok(queryPatchesArray);
|
|
1050
1027
|
};
|
|
1051
1028
|
|
|
1052
|
-
export const maybeMigrateToVersion0 =
|
|
1053
|
-
(deps: SqliteDep) =>
|
|
1054
|
-
(
|
|
1055
|
-
schema: DbSchema,
|
|
1056
|
-
): Result<
|
|
1057
|
-
{
|
|
1058
|
-
readonly messages: ReadonlyArray<CrdtMessage>;
|
|
1059
|
-
readonly mnemonic: Mnemonic;
|
|
1060
|
-
readonly lastTimestamp: Timestamp;
|
|
1061
|
-
} | null,
|
|
1062
|
-
SqliteError
|
|
1063
|
-
> => {
|
|
1064
|
-
// evolu_history is a new table
|
|
1065
|
-
const hasOwnerButNoHistory =
|
|
1066
|
-
schema.tables.some((t) => t.name === "evolu_owner") &&
|
|
1067
|
-
!schema.tables.some((t) => t.name === "evolu_history");
|
|
1068
|
-
if (!hasOwnerButNoHistory) {
|
|
1069
|
-
return ok(null);
|
|
1070
|
-
}
|
|
1071
|
-
|
|
1072
|
-
const mnemonicAndLastTimestamp = deps.sqlite.exec<{
|
|
1073
|
-
mnemonic: Mnemonic;
|
|
1074
|
-
timestamp: TimestampString;
|
|
1075
|
-
}>(sql` select mnemonic, timestamp from evolu_owner limit 1; `);
|
|
1076
|
-
if (!mnemonicAndLastTimestamp.ok) return mnemonicAndLastTimestamp;
|
|
1077
|
-
|
|
1078
|
-
const messagesRows = deps.sqlite.exec<{
|
|
1079
|
-
timestamp: TimestampString;
|
|
1080
|
-
table: Base64Url256;
|
|
1081
|
-
id: Id;
|
|
1082
|
-
column: Base64Url256;
|
|
1083
|
-
value: SqliteValue;
|
|
1084
|
-
}>(sql`
|
|
1085
|
-
select "timestamp", "table", "id", "column", "value" from evolu_message;
|
|
1086
|
-
`);
|
|
1087
|
-
|
|
1088
|
-
if (!messagesRows.ok) return messagesRows;
|
|
1089
|
-
|
|
1090
|
-
for (const query of [
|
|
1091
|
-
sql`drop table evolu_owner;`,
|
|
1092
|
-
sql`drop table evolu_message;`,
|
|
1093
|
-
]) {
|
|
1094
|
-
const result = deps.sqlite.exec(query);
|
|
1095
|
-
if (!result.ok) return result;
|
|
1096
|
-
}
|
|
1097
|
-
|
|
1098
|
-
const messages = messagesRows.value.rows.map((message) => ({
|
|
1099
|
-
timestamp: timestampStringToTimestamp(message.timestamp),
|
|
1100
|
-
change: {
|
|
1101
|
-
id: message.id,
|
|
1102
|
-
table: message.table,
|
|
1103
|
-
values: { [message.column]: message.value },
|
|
1104
|
-
},
|
|
1105
|
-
}));
|
|
1106
|
-
|
|
1107
|
-
const {
|
|
1108
|
-
rows: [{ mnemonic, timestamp }],
|
|
1109
|
-
} = mnemonicAndLastTimestamp.value;
|
|
1110
|
-
const lastTimestamp = timestampStringToTimestamp(timestamp);
|
|
1111
|
-
|
|
1112
|
-
return ok({ messages, mnemonic, lastTimestamp });
|
|
1113
|
-
};
|
|
1114
|
-
|
|
1115
1029
|
const dropAllTables = (deps: SqliteDep): Result<void, SqliteError> => {
|
|
1116
1030
|
const schema = getDbSchema(deps)();
|
|
1117
1031
|
if (!schema.ok) return schema;
|
package/src/Evolu/Evolu.ts
CHANGED
|
@@ -45,6 +45,7 @@ import {
|
|
|
45
45
|
} from "./Query.js";
|
|
46
46
|
import {
|
|
47
47
|
CreateQuery,
|
|
48
|
+
DefaultColumns,
|
|
48
49
|
EvoluSchema,
|
|
49
50
|
evoluSchemaToDbSchema,
|
|
50
51
|
insertable,
|
|
@@ -253,34 +254,154 @@ export interface Evolu<S extends EvoluSchema = EvoluSchema> {
|
|
|
253
254
|
readonly getSyncState: () => SyncState;
|
|
254
255
|
|
|
255
256
|
/**
|
|
256
|
-
* Inserts a row
|
|
257
|
+
* Inserts a row into the database and returns a {@link Result} with the new
|
|
258
|
+
* {@link Id}.
|
|
259
|
+
*
|
|
260
|
+
* The first argument is the table name, and the second is an object
|
|
261
|
+
* containing the row data. An optional third argument provides mutation
|
|
262
|
+
* options including an `onComplete` callback and `onlyValidate` flag.
|
|
263
|
+
*
|
|
264
|
+
* Returns a Result type - use `.ok` to check if the insertion succeeded, and
|
|
265
|
+
* `.value.id` to access the generated ID on success, or `.error` to handle
|
|
266
|
+
* validation errors.
|
|
267
|
+
*
|
|
268
|
+
* Evolu does not use SQL for mutations to ensure data can be safely and
|
|
269
|
+
* predictably merged without conflicts. Explicit mutations also allow Evolu
|
|
270
|
+
* to automatically add and update {@link DefaultColumns}.
|
|
257
271
|
*
|
|
258
272
|
* ### Example
|
|
259
273
|
*
|
|
260
274
|
* ```ts
|
|
261
|
-
*
|
|
275
|
+
* const result = evolu.insert("todo", {
|
|
276
|
+
* title: "Learn Evolu",
|
|
277
|
+
* isCompleted: false,
|
|
278
|
+
* });
|
|
279
|
+
*
|
|
280
|
+
* if (result.ok) {
|
|
281
|
+
* console.log("Todo created with ID:", result.value.id);
|
|
282
|
+
* } else {
|
|
283
|
+
* console.error("Validation error:", result.error);
|
|
284
|
+
* }
|
|
285
|
+
*
|
|
286
|
+
* // With onComplete callback
|
|
287
|
+
* evolu.insert(
|
|
288
|
+
* "todo",
|
|
289
|
+
* { title: "Another todo" },
|
|
290
|
+
* {
|
|
291
|
+
* onComplete: () => {
|
|
292
|
+
* console.log("Insert completed");
|
|
293
|
+
* },
|
|
294
|
+
* },
|
|
295
|
+
* );
|
|
262
296
|
* ```
|
|
263
297
|
*/
|
|
264
298
|
insert: Mutation<S, "insert">;
|
|
265
299
|
|
|
266
300
|
/**
|
|
267
|
-
* Updates a row
|
|
301
|
+
* Updates a row in the database and returns a {@link Result} with the existing
|
|
302
|
+
* {@link Id}.
|
|
303
|
+
*
|
|
304
|
+
* The first argument is the table name, and the second is an object
|
|
305
|
+
* containing the row data including the required `id` field. An optional
|
|
306
|
+
* third argument provides mutation options including an `onComplete` callback
|
|
307
|
+
* and `onlyValidate` flag.
|
|
308
|
+
*
|
|
309
|
+
* Returns a Result type - use `.ok` to check if the update succeeded, and
|
|
310
|
+
* `.value.id` to access the ID on success, or `.error` to handle validation
|
|
311
|
+
* errors.
|
|
312
|
+
*
|
|
313
|
+
* Evolu does not use SQL for mutations to ensure data can be safely and
|
|
314
|
+
* predictably merged without conflicts. Explicit mutations also allow Evolu
|
|
315
|
+
* to automatically add and update {@link DefaultColumns}.
|
|
268
316
|
*
|
|
269
317
|
* ### Example
|
|
270
318
|
*
|
|
271
319
|
* ```ts
|
|
272
|
-
*
|
|
320
|
+
* const result = evolu.update("todo", {
|
|
321
|
+
* id: todoId,
|
|
322
|
+
* title: "Updated title",
|
|
323
|
+
* isCompleted: true,
|
|
324
|
+
* });
|
|
325
|
+
*
|
|
326
|
+
* if (result.ok) {
|
|
327
|
+
* console.log("Todo updated with ID:", result.value.id);
|
|
328
|
+
* } else {
|
|
329
|
+
* console.error("Validation error:", result.error);
|
|
330
|
+
* }
|
|
331
|
+
*
|
|
332
|
+
* // To delete a row, set isDeleted to true
|
|
333
|
+
* evolu.update("todo", { id: todoId, isDeleted: true });
|
|
334
|
+
*
|
|
335
|
+
* // With onComplete callback
|
|
336
|
+
* evolu.update(
|
|
337
|
+
* "todo",
|
|
338
|
+
* { id: todoId, title: "New title" },
|
|
339
|
+
* {
|
|
340
|
+
* onComplete: () => {
|
|
341
|
+
* console.log("Update completed");
|
|
342
|
+
* },
|
|
343
|
+
* },
|
|
344
|
+
* );
|
|
273
345
|
* ```
|
|
274
346
|
*/
|
|
275
347
|
update: Mutation<S, "update">;
|
|
276
348
|
|
|
277
349
|
/**
|
|
278
|
-
* Upserts a row
|
|
350
|
+
* Upserts a row in the database and returns a {@link Result} with the existing
|
|
351
|
+
* {@link Id}.
|
|
352
|
+
*
|
|
353
|
+
* The first argument is the table name, and the second is an object
|
|
354
|
+
* containing the row data including the required `id` field. An optional
|
|
355
|
+
* third argument provides mutation options including an `onComplete` callback
|
|
356
|
+
* and `onlyValidate` flag.
|
|
357
|
+
*
|
|
358
|
+
* This function allows you to use custom IDs and optionally set `createdAt`,
|
|
359
|
+
* which is useful for external systems, data migrations, or when the same row
|
|
360
|
+
* may already be created on a different device.
|
|
361
|
+
*
|
|
362
|
+
* Returns a Result type - use `.ok` to check if the upsert succeeded, and
|
|
363
|
+
* `.value.id` to access the ID on success, or `.error` to handle validation
|
|
364
|
+
* errors.
|
|
365
|
+
*
|
|
366
|
+
* Evolu does not use SQL for mutations to ensure data can be safely and
|
|
367
|
+
* predictably merged without conflicts. Explicit mutations also allow Evolu
|
|
368
|
+
* to automatically add and update {@link DefaultColumns}.
|
|
279
369
|
*
|
|
280
370
|
* ### Example
|
|
281
371
|
*
|
|
282
372
|
* ```ts
|
|
283
|
-
* //
|
|
373
|
+
* // Use deterministic ID for stable upserts across devices
|
|
374
|
+
* const stableId = createIdFromString("my-todo-1");
|
|
375
|
+
*
|
|
376
|
+
* const result = evolu.upsert("todo", {
|
|
377
|
+
* id: stableId,
|
|
378
|
+
* title: "Learn Evolu",
|
|
379
|
+
* isCompleted: false,
|
|
380
|
+
* });
|
|
381
|
+
*
|
|
382
|
+
* if (result.ok) {
|
|
383
|
+
* console.log("Todo upserted with ID:", result.value.id);
|
|
384
|
+
* } else {
|
|
385
|
+
* console.error("Validation error:", result.error);
|
|
386
|
+
* }
|
|
387
|
+
*
|
|
388
|
+
* // Data migration with custom createdAt
|
|
389
|
+
* evolu.upsert("todo", {
|
|
390
|
+
* id: externalId,
|
|
391
|
+
* title: "Migrated todo",
|
|
392
|
+
* createdAt: new Date("2023-01-01"), // Preserve original timestamp
|
|
393
|
+
* });
|
|
394
|
+
*
|
|
395
|
+
* // With onComplete callback
|
|
396
|
+
* evolu.upsert(
|
|
397
|
+
* "todo",
|
|
398
|
+
* { id: stableId, title: "Updated title" },
|
|
399
|
+
* {
|
|
400
|
+
* onComplete: () => {
|
|
401
|
+
* console.log("Upsert completed");
|
|
402
|
+
* },
|
|
403
|
+
* },
|
|
404
|
+
* );
|
|
284
405
|
* ```
|
|
285
406
|
*/
|
|
286
407
|
upsert: Mutation<S, "upsert">;
|
|
@@ -594,7 +715,11 @@ const createEvoluInstance =
|
|
|
594
715
|
const values = getMutationType(table, "insert").fromUnknown(props);
|
|
595
716
|
|
|
596
717
|
if (values.ok) {
|
|
597
|
-
const
|
|
718
|
+
const valuesWithCreatedAt = {
|
|
719
|
+
...values.value,
|
|
720
|
+
createdAt: new Date(deps.time.now()).toISOString(),
|
|
721
|
+
};
|
|
722
|
+
const dbChange = { table, id, values: valuesWithCreatedAt };
|
|
598
723
|
assertValidDbChange(dbChange);
|
|
599
724
|
initialDataDbChanges.push(dbChange);
|
|
600
725
|
return ok({ id });
|
|
@@ -646,10 +771,23 @@ const createEvoluInstance =
|
|
|
646
771
|
// We insert `undefined` to detect such a situation.
|
|
647
772
|
mutateMicrotaskQueue.push([undefined, undefined]);
|
|
648
773
|
} else {
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
774
|
+
const values = { ...result.value };
|
|
775
|
+
|
|
776
|
+
delete values.id;
|
|
777
|
+
if (kind === "insert" || kind === "upsert") {
|
|
778
|
+
// Only set createdAt if not provided by user
|
|
779
|
+
if (!("createdAt" in values)) {
|
|
780
|
+
values.createdAt = new Date(deps.time.now()).toISOString();
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
const dbChange = {
|
|
785
|
+
table,
|
|
786
|
+
id,
|
|
787
|
+
values,
|
|
788
|
+
};
|
|
652
789
|
assertValidDbChange(dbChange);
|
|
790
|
+
|
|
653
791
|
mutateMicrotaskQueue.push([dbChange, options?.onComplete]);
|
|
654
792
|
}
|
|
655
793
|
|
package/src/Evolu/Schema.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
brand,
|
|
10
10
|
BrandType,
|
|
11
11
|
createTypeErrorFormatter,
|
|
12
|
+
DateIso,
|
|
12
13
|
DateIsoString,
|
|
13
14
|
IdType,
|
|
14
15
|
InferErrors,
|
|
@@ -30,7 +31,11 @@ import { Simplify } from "../Types.js";
|
|
|
30
31
|
import { DbSchema } from "./Db.js";
|
|
31
32
|
import { createIndexes, DbIndexesBuilder } from "./Kysely.js";
|
|
32
33
|
import { AppOwner, ShardOwner, SharedOwner } from "./Owner.js";
|
|
33
|
-
import {
|
|
34
|
+
import {
|
|
35
|
+
BinaryId,
|
|
36
|
+
maxProtocolMessageRangesSize,
|
|
37
|
+
CrdtMessage,
|
|
38
|
+
} from "./Protocol.js";
|
|
34
39
|
import { Query, Row } from "./Query.js";
|
|
35
40
|
import { BinaryTimestamp } from "./Timestamp.js";
|
|
36
41
|
|
|
@@ -198,6 +203,16 @@ export type CreateQuery<S extends EvoluSchema> = <R extends Row>(
|
|
|
198
203
|
options?: SqliteQueryOptions,
|
|
199
204
|
) => Query<Simplify<R>>;
|
|
200
205
|
|
|
206
|
+
/**
|
|
207
|
+
* Default columns automatically added to all tables.
|
|
208
|
+
*
|
|
209
|
+
* - `createdAt`: Set by Evolu when `insert` is called, or can be custom with
|
|
210
|
+
* `upsert`.
|
|
211
|
+
* - `updatedAt`: Always set by Evolu, derived from {@link CrdtMessage} timestamp.
|
|
212
|
+
* If you defer sync to avoid leaking time activity, use a custom column to
|
|
213
|
+
* preserve real update time.
|
|
214
|
+
* - `isDeleted`: Soft delete flag.
|
|
215
|
+
*/
|
|
201
216
|
export const DefaultColumns = object({
|
|
202
217
|
createdAt: DateIsoString,
|
|
203
218
|
updatedAt: DateIsoString,
|
|
@@ -346,25 +361,41 @@ export type Updateable<Props extends Record<string, AnyType>> = InferInput<
|
|
|
346
361
|
>;
|
|
347
362
|
|
|
348
363
|
/**
|
|
349
|
-
* Type Factory to create upsertable Type. It makes nullable Types optional
|
|
350
|
-
* ensures the
|
|
364
|
+
* Type Factory to create upsertable Type. It makes nullable Types optional,
|
|
365
|
+
* includes optional default columns (createdAt, isDeleted), and ensures the
|
|
366
|
+
* {@link maxMutationSize}.
|
|
351
367
|
*
|
|
352
368
|
* ### Example
|
|
353
369
|
*
|
|
354
370
|
* ```ts
|
|
355
371
|
* const UpsertableTodo = upsertable(Schema.todo);
|
|
356
372
|
* type UpsertableTodo = typeof UpsertableTodo.Type;
|
|
357
|
-
* const todo = UpsertableTodo.from({
|
|
373
|
+
* const todo = UpsertableTodo.from({
|
|
374
|
+
* id,
|
|
375
|
+
* title,
|
|
376
|
+
* createdAt: "2023-01-01T00:00:00.000Z",
|
|
377
|
+
* });
|
|
358
378
|
* if (!todo.ok) return; // handle errors
|
|
359
379
|
* ```
|
|
360
380
|
*/
|
|
361
381
|
export const upsertable = <Props extends Record<string, AnyType>>(
|
|
362
382
|
props: Props,
|
|
363
|
-
): ValidMutationSize<UpsertableProps<Props>> =>
|
|
364
|
-
|
|
383
|
+
): ValidMutationSize<UpsertableProps<Props>> => {
|
|
384
|
+
const propsWithDefaults = {
|
|
385
|
+
...props,
|
|
386
|
+
createdAt: optional(DateIso),
|
|
387
|
+
isDeleted: optional(SqliteBoolean),
|
|
388
|
+
};
|
|
389
|
+
return validMutationSize(nullableToOptional(propsWithDefaults));
|
|
390
|
+
};
|
|
365
391
|
|
|
366
392
|
export type UpsertableProps<Props extends Record<string, AnyType>> =
|
|
367
|
-
NullableToOptionalProps<
|
|
393
|
+
NullableToOptionalProps<
|
|
394
|
+
Props & {
|
|
395
|
+
createdAt: OptionalType<typeof DateIso>;
|
|
396
|
+
isDeleted: OptionalType<typeof SqliteBoolean>;
|
|
397
|
+
}
|
|
398
|
+
>;
|
|
368
399
|
|
|
369
400
|
export type Upsertable<Props extends Record<string, AnyType>> = InferInput<
|
|
370
401
|
ObjectType<UpsertableProps<Props>>
|
package/src/Type.ts
CHANGED
|
@@ -1377,19 +1377,19 @@ export const createId = <B extends string = never>(
|
|
|
1377
1377
|
export const createIdFromString = <B extends string = never>(
|
|
1378
1378
|
value: string,
|
|
1379
1379
|
): [B] extends [never] ? Id : Id & Brand<B> => {
|
|
1380
|
-
const hash = sha256(utf8ToBytes(value));
|
|
1380
|
+
const hash = sha256(utf8ToBytes(value));
|
|
1381
1381
|
|
|
1382
1382
|
let output = "";
|
|
1383
1383
|
let buffer = 0;
|
|
1384
1384
|
let bits = 0;
|
|
1385
1385
|
|
|
1386
|
-
for (
|
|
1387
|
-
buffer = (buffer << 8) |
|
|
1386
|
+
for (const byte of hash) {
|
|
1387
|
+
buffer = (buffer << 8) | byte;
|
|
1388
1388
|
bits += 8;
|
|
1389
1389
|
|
|
1390
|
-
while (bits >= 6 && output.length <
|
|
1390
|
+
while (bits >= 6 && output.length < idTypeValueLength) {
|
|
1391
1391
|
bits -= 6;
|
|
1392
|
-
const index = (buffer >> bits) & 0b111111;
|
|
1392
|
+
const index = (buffer >> bits) & 0b111111;
|
|
1393
1393
|
output += base64UrlAlphabet[index];
|
|
1394
1394
|
}
|
|
1395
1395
|
}
|
|
@@ -1994,7 +1994,11 @@ export const TrimString = trim(String);
|
|
|
1994
1994
|
*
|
|
1995
1995
|
* ### Example
|
|
1996
1996
|
*
|
|
1997
|
-
*
|
|
1997
|
+
* ```ts
|
|
1998
|
+
* DateIso.from(new Date("2023-12-25T10:30:00.000Z")); // ok("2023-12-25T10:30:00.000Z")
|
|
1999
|
+
* DateIso.to("2023-12-25T10:30:00.000Z"); // Date object
|
|
2000
|
+
* DateIso.from(new Date("invalid")); // err({ type: "DateIsoString", value: "Invalid Date" })
|
|
2001
|
+
* ```
|
|
1998
2002
|
*
|
|
1999
2003
|
* @category String
|
|
2000
2004
|
*/
|