@lix-js/sdk 0.0.1 → 0.1.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/LICENSE +21 -0
- package/dist/change/apply-changes.js +9 -9
- package/dist/change/apply-changes.js.map +1 -1
- package/dist/change/apply-changes.test.js +5 -5
- package/dist/change/apply-changes.test.js.map +1 -1
- package/dist/database/apply-schema.d.ts.map +1 -1
- package/dist/database/apply-schema.js +20 -72
- package/dist/database/apply-schema.js.map +1 -1
- package/dist/database/execute-sync.test.js +3 -3
- package/dist/database/execute-sync.test.js.map +1 -1
- package/dist/database/init-db.d.ts.map +1 -1
- package/dist/database/init-db.js +18 -3
- package/dist/database/init-db.js.map +1 -1
- package/dist/database/init-db.test.js +128 -17
- package/dist/database/init-db.test.js.map +1 -1
- package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts.map +1 -1
- package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js +5 -2
- package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js.map +1 -1
- package/dist/database/mutation-log/database-schema.d.ts.map +1 -1
- package/dist/database/mutation-log/database-schema.js +1 -3
- package/dist/database/mutation-log/database-schema.js.map +1 -1
- package/dist/database/nano-id.d.ts +21 -0
- package/dist/database/nano-id.d.ts.map +1 -0
- package/dist/database/nano-id.js +58 -0
- package/dist/database/nano-id.js.map +1 -0
- package/dist/database/nano-id.test.d.ts +2 -0
- package/dist/database/nano-id.test.d.ts.map +1 -0
- package/dist/database/nano-id.test.js +13 -0
- package/dist/database/nano-id.test.js.map +1 -0
- package/dist/database/schema.d.ts +15 -23
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/discussion/create-comment.d.ts +0 -2
- package/dist/discussion/create-comment.d.ts.map +1 -1
- package/dist/discussion/create-comment.js +0 -1
- package/dist/discussion/create-comment.js.map +1 -1
- package/dist/discussion/create-discussion.d.ts +3 -5
- package/dist/discussion/create-discussion.d.ts.map +1 -1
- package/dist/discussion/create-discussion.js +4 -5
- package/dist/discussion/create-discussion.js.map +1 -1
- package/dist/discussion/create-discussion.test.js +8 -34
- package/dist/discussion/create-discussion.test.js.map +1 -1
- package/dist/file-queue/file-handlers.d.ts +24 -0
- package/dist/file-queue/file-handlers.d.ts.map +1 -0
- package/dist/file-queue/file-handlers.js +209 -0
- package/dist/file-queue/file-handlers.js.map +1 -0
- package/dist/file-queue/file-queue-process.d.ts +5 -0
- package/dist/file-queue/file-queue-process.d.ts.map +1 -0
- package/dist/file-queue/file-queue-process.js +85 -0
- package/dist/file-queue/file-queue-process.js.map +1 -0
- package/dist/file-queue/file-queue-process.test.d.ts +2 -0
- package/dist/file-queue/file-queue-process.test.d.ts.map +1 -0
- package/dist/file-queue/file-queue-process.test.js +373 -0
- package/dist/file-queue/file-queue-process.test.js.map +1 -0
- package/dist/file-queue/file-queue-settled.d.ts +13 -0
- package/dist/file-queue/file-queue-settled.d.ts.map +1 -0
- package/dist/file-queue/file-queue-settled.js +25 -0
- package/dist/file-queue/file-queue-settled.js.map +1 -0
- package/dist/file-queue/file-queue-settled.test.d.ts +2 -0
- package/dist/file-queue/file-queue-settled.test.d.ts.map +1 -0
- package/dist/file-queue/file-queue-settled.test.js +47 -0
- package/dist/file-queue/file-queue-settled.test.js.map +1 -0
- package/dist/file-queue/index.d.ts +2 -0
- package/dist/file-queue/index.d.ts.map +1 -0
- package/dist/file-queue/index.js +2 -0
- package/dist/file-queue/index.js.map +1 -0
- package/dist/file-queue/with-skip-file-queue.d.ts +3 -0
- package/dist/file-queue/with-skip-file-queue.d.ts.map +1 -0
- package/dist/file-queue/with-skip-file-queue.js +26 -0
- package/dist/file-queue/with-skip-file-queue.js.map +1 -0
- package/dist/file-queue/with-skip-file-queue.test.d.ts +2 -0
- package/dist/file-queue/with-skip-file-queue.test.d.ts.map +1 -0
- package/dist/file-queue/with-skip-file-queue.test.js +138 -0
- package/dist/file-queue/with-skip-file-queue.test.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/key-value/database-schema.d.ts +11 -2
- package/dist/key-value/database-schema.d.ts.map +1 -1
- package/dist/key-value/database-schema.js +7 -4
- package/dist/key-value/database-schema.js.map +1 -1
- package/dist/key-value/database-schema.test.js +21 -5
- package/dist/key-value/database-schema.test.js.map +1 -1
- package/dist/lix/close-lix.d.ts +8 -0
- package/dist/lix/close-lix.d.ts.map +1 -0
- package/dist/lix/close-lix.js +7 -0
- package/dist/lix/close-lix.js.map +1 -0
- package/dist/lix/index.d.ts +1 -0
- package/dist/lix/index.d.ts.map +1 -1
- package/dist/lix/index.js +1 -0
- package/dist/lix/index.js.map +1 -1
- package/dist/lix/merge.js +3 -3
- package/dist/lix/merge.js.map +1 -1
- package/dist/lix/merge.test.js +7 -18
- package/dist/lix/merge.test.js.map +1 -1
- package/dist/lix/new-lix.d.ts.map +1 -1
- package/dist/lix/new-lix.js +2 -3
- package/dist/lix/new-lix.js.map +1 -1
- package/dist/lix/open-lix-in-memory.test.js +2 -1
- package/dist/lix/open-lix-in-memory.test.js.map +1 -1
- package/dist/lix/open-lix.d.ts +3 -5
- package/dist/lix/open-lix.d.ts.map +1 -1
- package/dist/lix/open-lix.js +4 -18
- package/dist/lix/open-lix.js.map +1 -1
- package/dist/lix/open-lix.test.js +16 -7
- package/dist/lix/open-lix.test.js.map +1 -1
- package/dist/lix/to-blob.d.ts +11 -0
- package/dist/lix/to-blob.d.ts.map +1 -0
- package/dist/lix/to-blob.js +11 -0
- package/dist/lix/to-blob.js.map +1 -0
- package/dist/own-change-control/apply-own-change.d.ts +10 -0
- package/dist/own-change-control/apply-own-change.d.ts.map +1 -0
- package/dist/own-change-control/apply-own-change.js +69 -0
- package/dist/own-change-control/apply-own-change.js.map +1 -0
- package/dist/own-change-control/apply-own-change.test.d.ts +2 -0
- package/dist/own-change-control/apply-own-change.test.d.ts.map +1 -0
- package/dist/own-change-control/apply-own-change.test.js +297 -0
- package/dist/own-change-control/apply-own-change.test.js.map +1 -0
- package/dist/own-change-control/change-controlled-tables.d.ts +60 -0
- package/dist/own-change-control/change-controlled-tables.d.ts.map +1 -0
- package/dist/own-change-control/change-controlled-tables.js +70 -0
- package/dist/own-change-control/change-controlled-tables.js.map +1 -0
- package/dist/own-change-control/change-controlled-tables.test.d.ts +2 -0
- package/dist/own-change-control/change-controlled-tables.test.d.ts.map +1 -0
- package/dist/own-change-control/change-controlled-tables.test.js +48 -0
- package/dist/own-change-control/change-controlled-tables.test.js.map +1 -0
- package/dist/own-change-control/database-triggers.d.ts +5 -0
- package/dist/own-change-control/database-triggers.d.ts.map +1 -0
- package/dist/own-change-control/database-triggers.js +135 -0
- package/dist/own-change-control/database-triggers.js.map +1 -0
- package/dist/own-change-control/database-triggers.test.d.ts +2 -0
- package/dist/own-change-control/database-triggers.test.d.ts.map +1 -0
- package/dist/own-change-control/database-triggers.test.js +214 -0
- package/dist/own-change-control/database-triggers.test.js.map +1 -0
- package/dist/own-change-control/index.d.ts +2 -0
- package/dist/own-change-control/index.d.ts.map +1 -0
- package/dist/own-change-control/index.js +2 -0
- package/dist/own-change-control/index.js.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.d.ts +3 -0
- package/dist/own-change-control/with-skip-own-change-control.d.ts.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.js +28 -0
- package/dist/own-change-control/with-skip-own-change-control.js.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.test.d.ts +2 -0
- package/dist/own-change-control/with-skip-own-change-control.test.d.ts.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.test.js +49 -0
- package/dist/own-change-control/with-skip-own-change-control.test.js.map +1 -0
- package/dist/own-entity-change-control/apply-own-entity-change.js +2 -2
- package/dist/own-entity-change-control/apply-own-entity-change.js.map +1 -1
- package/dist/own-entity-change-control/apply-own-entity-change.test.js +9 -9
- package/dist/own-entity-change-control/apply-own-entity-change.test.js.map +1 -1
- package/dist/own-entity-change-control/database-triggers.js +6 -6
- package/dist/own-entity-change-control/database-triggers.js.map +1 -1
- package/dist/own-entity-change-control/database-triggers.test.js +1 -1
- package/dist/own-entity-change-control/database-triggers.test.js.map +1 -1
- package/dist/query-filter/version-change-in-difference.test.js +37 -29
- package/dist/query-filter/version-change-in-difference.test.js.map +1 -1
- package/dist/query-filter/version-change-in-symmetric-difference.test.js +37 -39
- package/dist/query-filter/version-change-in-symmetric-difference.test.js.map +1 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +1 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.js +7 -3
- package/dist/server-api-handler/environment/create-in-memory-environment.js.map +1 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.test.js +8 -7
- package/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +1 -1
- package/dist/server-api-handler/routes/get-v1.d.ts.map +1 -1
- package/dist/server-api-handler/routes/get-v1.js +1 -2
- package/dist/server-api-handler/routes/get-v1.js.map +1 -1
- package/dist/server-api-handler/routes/get-v1.test.js +6 -5
- package/dist/server-api-handler/routes/get-v1.test.js.map +1 -1
- package/dist/server-api-handler/routes/new-v1.d.ts.map +1 -1
- package/dist/server-api-handler/routes/new-v1.js +3 -1
- package/dist/server-api-handler/routes/new-v1.js.map +1 -1
- package/dist/server-api-handler/routes/new-v1.test.js +2 -1
- package/dist/server-api-handler/routes/new-v1.test.js.map +1 -1
- package/dist/server-api-handler/routes/pull-v1.test.js +4 -3
- package/dist/server-api-handler/routes/pull-v1.test.js.map +1 -1
- package/dist/server-api-handler/routes/push-v1.test.js +5 -4
- package/dist/server-api-handler/routes/push-v1.test.js.map +1 -1
- package/dist/sync/pull-from-server.d.ts.map +1 -1
- package/dist/sync/pull-from-server.js +0 -2
- package/dist/sync/pull-from-server.js.map +1 -1
- package/dist/sync/pull-from-server.test.js +29 -14
- package/dist/sync/pull-from-server.test.js.map +1 -1
- package/dist/sync/push-to-server.test.js +17 -13
- package/dist/sync/push-to-server.test.js.map +1 -1
- package/dist/sync/sync-process.d.ts +2 -4
- package/dist/sync/sync-process.d.ts.map +1 -1
- package/dist/sync/sync-process.js +4 -9
- package/dist/sync/sync-process.js.map +1 -1
- package/dist/sync/sync-process.test.js +26 -38
- package/dist/sync/sync-process.test.js.map +1 -1
- package/dist/version/create-version.d.ts +5 -5
- package/dist/version/create-version.d.ts.map +1 -1
- package/dist/version/create-version.js +23 -11
- package/dist/version/create-version.js.map +1 -1
- package/dist/version/create-version.test.js +2 -2
- package/dist/version/create-version.test.js.map +1 -1
- package/dist/version/merge-version.d.ts.map +1 -1
- package/dist/version/merge-version.js +16 -26
- package/dist/version/merge-version.js.map +1 -1
- package/dist/version/switch-version.js +3 -3
- package/dist/version/switch-version.js.map +1 -1
- package/dist/version/switch-version.test.js +12 -15
- package/dist/version/switch-version.test.js.map +1 -1
- package/dist/version/update-changes-in-version.d.ts.map +1 -1
- package/dist/version/update-changes-in-version.js +11 -31
- package/dist/version/update-changes-in-version.js.map +1 -1
- package/node_modules/@lix-js/server-api-schema/CHANGELOG.md +9 -0
- package/node_modules/@lix-js/server-api-schema/LICENSE +21 -0
- package/node_modules/@lix-js/server-api-schema/dist/schema.js +0 -0
- package/node_modules/@lix-js/server-api-schema/package.json +2 -2
- package/node_modules/sqlite-wasm-kysely/LICENSE +21 -0
- package/package.json +4 -4
- package/src/change/apply-changes.test.ts +7 -7
- package/src/change/apply-changes.ts +9 -9
- package/src/database/apply-schema.ts +20 -73
- package/src/database/execute-sync.test.ts +3 -3
- package/src/database/init-db.test.ts +163 -19
- package/src/database/init-db.ts +20 -3
- package/src/database/kysely-plugin/parse-jsonb-plugin-v1.ts +9 -2
- package/src/database/mutation-log/database-schema.ts +1 -3
- package/src/database/nano-id.test.ts +15 -0
- package/src/database/nano-id.ts +72 -0
- package/src/database/schema.ts +15 -24
- package/src/discussion/create-comment.ts +0 -3
- package/src/discussion/create-discussion.test.ts +8 -39
- package/src/discussion/create-discussion.ts +6 -9
- package/src/{change-queue → file-queue}/file-handlers.ts +27 -27
- package/src/{change-queue/init-change-queue.test.ts → file-queue/file-queue-process.test.ts} +24 -24
- package/src/{change-queue/init-change-queue.ts → file-queue/file-queue-process.ts} +18 -16
- package/src/{change-queue/change-queue-settled.test.ts → file-queue/file-queue-settled.test.ts} +12 -12
- package/src/{change-queue/change-queue-settled.ts → file-queue/file-queue-settled.ts} +4 -4
- package/src/file-queue/index.ts +1 -0
- package/src/{change-queue/with-skip-change-queue.test.ts → file-queue/with-skip-file-queue.test.ts} +9 -9
- package/src/{change-queue/with-skip-change-queue.ts → file-queue/with-skip-file-queue.ts} +3 -3
- package/src/index.ts +2 -2
- package/src/key-value/database-schema.test.ts +26 -5
- package/src/key-value/database-schema.ts +18 -6
- package/src/lix/close-lix.ts +8 -0
- package/src/lix/index.ts +1 -0
- package/src/lix/merge.test.ts +7 -19
- package/src/lix/merge.ts +4 -4
- package/src/lix/new-lix.ts +2 -3
- package/src/lix/open-lix-in-memory.test.ts +5 -1
- package/src/lix/open-lix.test.ts +19 -7
- package/src/lix/open-lix.ts +7 -24
- package/src/lix/to-blob.ts +14 -0
- package/src/{own-entity-change-control/apply-own-entity-change.test.ts → own-change-control/apply-own-change.test.ts} +27 -31
- package/src/{own-entity-change-control/apply-own-entity-change.ts → own-change-control/apply-own-change.ts} +3 -3
- package/src/{own-entity-change-control → own-change-control}/change-controlled-tables.ts +0 -1
- package/src/{own-entity-change-control → own-change-control}/database-triggers.test.ts +7 -7
- package/src/{own-entity-change-control → own-change-control}/database-triggers.ts +11 -11
- package/src/{own-entity-change-control → own-change-control}/with-skip-own-change-control.ts +6 -2
- package/src/query-filter/version-change-in-difference.test.ts +41 -32
- package/src/query-filter/version-change-in-symmetric-difference.test.ts +41 -42
- package/src/server-api-handler/environment/create-in-memory-environment.test.ts +8 -7
- package/src/server-api-handler/environment/create-in-memory-environment.ts +7 -3
- package/src/server-api-handler/routes/get-v1.test.ts +6 -5
- package/src/server-api-handler/routes/get-v1.ts +1 -3
- package/src/server-api-handler/routes/new-v1.test.ts +2 -1
- package/src/server-api-handler/routes/new-v1.ts +3 -1
- package/src/server-api-handler/routes/pull-v1.test.ts +4 -3
- package/src/server-api-handler/routes/push-v1.test.ts +5 -4
- package/src/sync/pull-from-server.test.ts +29 -14
- package/src/sync/pull-from-server.ts +0 -2
- package/src/sync/push-to-server.test.ts +19 -15
- package/src/sync/sync-process.test.ts +37 -43
- package/src/sync/sync-process.ts +6 -18
- package/src/version/create-version.test.ts +2 -2
- package/src/version/create-version.ts +24 -12
- package/src/version/merge-version.ts +18 -26
- package/src/version/switch-version.test.ts +12 -15
- package/src/version/switch-version.ts +3 -3
- package/src/version/update-changes-in-version.ts +11 -30
- package/node_modules/@lix-js/server-api-schema/dist/schema.d.ts +0 -384
- package/src/change-queue/index.ts +0 -1
- /package/src/{own-entity-change-control → own-change-control}/change-controlled-tables.test.ts +0 -0
- /package/src/{own-entity-change-control → own-change-control}/index.ts +0 -0
- /package/src/{own-entity-change-control → own-change-control}/with-skip-own-change-control.test.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-skip-own-change-control.test.d.ts","sourceRoot":"","sources":["../../src/own-change-control/with-skip-own-change-control.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { test, expect } from "vitest";
|
|
2
|
+
import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
3
|
+
import { withSkipOwnChangeControl } from "./with-skip-own-change-control.js";
|
|
4
|
+
test("skipping works", async () => {
|
|
5
|
+
const lix = await openLixInMemory({});
|
|
6
|
+
await withSkipOwnChangeControl(lix.db, async (trx) => {
|
|
7
|
+
await trx
|
|
8
|
+
.insertInto("key_value")
|
|
9
|
+
.values({ key: "foo", value: "bar" })
|
|
10
|
+
.execute();
|
|
11
|
+
await trx
|
|
12
|
+
.insertInto("key_value")
|
|
13
|
+
.values({ key: "foo2", value: "bar2" })
|
|
14
|
+
.execute();
|
|
15
|
+
});
|
|
16
|
+
const keyValues = await lix.db.selectFrom("key_value").selectAll().execute();
|
|
17
|
+
const changes = await lix.db
|
|
18
|
+
.selectFrom("change")
|
|
19
|
+
.where("schema_key", "=", "lix_key_value_table")
|
|
20
|
+
.selectAll()
|
|
21
|
+
.execute();
|
|
22
|
+
expect(keyValues.find((kv) => kv.key === "foo")).toBeDefined();
|
|
23
|
+
expect(keyValues.find((kv) => kv.key === "foo2")).toBeDefined();
|
|
24
|
+
console.log(changes);
|
|
25
|
+
expect(changes).toHaveLength(0);
|
|
26
|
+
});
|
|
27
|
+
test("if an outside transaction sets the value to true, no conflict should arise", async () => {
|
|
28
|
+
const lix = await openLixInMemory({});
|
|
29
|
+
// simulating an outside transaction setting the value to true
|
|
30
|
+
await withSkipOwnChangeControl(lix.db, async (trx) => {
|
|
31
|
+
// and an inside transaction setting the value to true as well
|
|
32
|
+
await withSkipOwnChangeControl(trx, async (trx2) => {
|
|
33
|
+
await trx2
|
|
34
|
+
.insertInto("key_value")
|
|
35
|
+
.values({ key: "foo", value: "bar" })
|
|
36
|
+
.execute();
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
const keyValues = await lix.db.selectFrom("key_value").selectAll().execute();
|
|
40
|
+
const changes = await lix.db
|
|
41
|
+
.selectFrom("change")
|
|
42
|
+
.where("schema_key", "=", "lix_key_value_table")
|
|
43
|
+
.where("entity_id", "=", "foo")
|
|
44
|
+
.selectAll()
|
|
45
|
+
.execute();
|
|
46
|
+
expect(changes).toHaveLength(0);
|
|
47
|
+
expect(keyValues.find((kv) => kv.key === "foo")).toBeDefined();
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=with-skip-own-change-control.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-skip-own-change-control.test.js","sourceRoot":"","sources":["../../src/own-change-control/with-skip-own-change-control.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ export async function applyOwnEntityChanges(args) {
|
|
|
12
12
|
// need to apply the changes in the correct order.
|
|
13
13
|
await trx.executeQuery(CompiledQuery.raw("PRAGMA defer_foreign_keys = ON;"));
|
|
14
14
|
await Promise.all(args.changes.map(async (change) => {
|
|
15
|
-
if (change.plugin_key !== "
|
|
16
|
-
throw new Error("Expected '
|
|
15
|
+
if (change.plugin_key !== "lix_own_change_control") {
|
|
16
|
+
throw new Error("Expected 'lix_own_change_control' as plugin key but received " +
|
|
17
17
|
change.plugin_key);
|
|
18
18
|
}
|
|
19
19
|
const snapshot = await trx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-own-entity-change.js","sourceRoot":"","sources":["../../src/own-entity-change-control/apply-own-entity-change.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,GAKb,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACN,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAG3C;IACA,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAc,EAAE,EAAE;QACrD,MAAM,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjD,oDAAoD;YACpD,wDAAwD;YACxD,kDAAkD;YAClD,MAAM,GAAG,CAAC,YAAY,CACrB,aAAa,CAAC,GAAG,CAAC,iCAAiC,CAAC,CACpD,CAAC;YAEF,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjC,IAAI,MAAM,CAAC,UAAU,KAAK,
|
|
1
|
+
{"version":3,"file":"apply-own-entity-change.js","sourceRoot":"","sources":["../../src/own-entity-change-control/apply-own-entity-change.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ test("it should apply insert changes correctly", async () => {
|
|
|
13
13
|
id: "change1",
|
|
14
14
|
entity_id: "key1",
|
|
15
15
|
schema_key: "lix_key_value_table",
|
|
16
|
-
plugin_key: "
|
|
16
|
+
plugin_key: "lix_own_change_control",
|
|
17
17
|
file_id: "null",
|
|
18
18
|
snapshot_id: snapshot.id,
|
|
19
19
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
@@ -46,7 +46,7 @@ test("it should apply update changes correctly", async () => {
|
|
|
46
46
|
entity_id: "key1",
|
|
47
47
|
file_id: "null",
|
|
48
48
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
49
|
-
plugin_key: "
|
|
49
|
+
plugin_key: "lix_own_change_control",
|
|
50
50
|
snapshot_id: snapshot.id,
|
|
51
51
|
};
|
|
52
52
|
await lix.db
|
|
@@ -75,7 +75,7 @@ test("it should apply delete changes correctly", async () => {
|
|
|
75
75
|
file_id: "null",
|
|
76
76
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
77
77
|
entity_id: "key1",
|
|
78
|
-
plugin_key: "
|
|
78
|
+
plugin_key: "lix_own_change_control",
|
|
79
79
|
snapshot_id: "no-content",
|
|
80
80
|
};
|
|
81
81
|
await applyOwnEntityChanges({ lix, changes: [change] });
|
|
@@ -107,7 +107,7 @@ test("it should throw an error for invalid plugin key", async () => {
|
|
|
107
107
|
content: snapshot.content,
|
|
108
108
|
})
|
|
109
109
|
.execute();
|
|
110
|
-
await expect(applyOwnEntityChanges({ lix, changes: [change] })).rejects.toThrow("Expected '
|
|
110
|
+
await expect(applyOwnEntityChanges({ lix, changes: [change] })).rejects.toThrow("Expected 'lix_own_change_control' as plugin key but received invalid-plugin");
|
|
111
111
|
});
|
|
112
112
|
test("file.data is not changed by applyOwnEntityChanges", async () => {
|
|
113
113
|
const lix = await openLixInMemory({});
|
|
@@ -148,7 +148,7 @@ test("file.data is not changed by applyOwnEntityChanges", async () => {
|
|
|
148
148
|
id: "change1",
|
|
149
149
|
entity_id: file.id,
|
|
150
150
|
schema_key: "lix_file_table",
|
|
151
|
-
plugin_key: "
|
|
151
|
+
plugin_key: "lix_own_change_control",
|
|
152
152
|
file_id: "null",
|
|
153
153
|
snapshot_id: snapshot.id,
|
|
154
154
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
@@ -183,7 +183,7 @@ test("foreign key constraints are deferred to make the order of applying changes
|
|
|
183
183
|
id: "change2",
|
|
184
184
|
entity_id: "change-set-1,change0",
|
|
185
185
|
schema_key: "lix_change_set_element_table",
|
|
186
|
-
plugin_key: "
|
|
186
|
+
plugin_key: "lix_own_change_control",
|
|
187
187
|
file_id: "null",
|
|
188
188
|
snapshot_id: snapshots[1].id,
|
|
189
189
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
@@ -192,7 +192,7 @@ test("foreign key constraints are deferred to make the order of applying changes
|
|
|
192
192
|
id: "change1",
|
|
193
193
|
entity_id: "change-set-1",
|
|
194
194
|
schema_key: "lix_change_set_table",
|
|
195
|
-
plugin_key: "
|
|
195
|
+
plugin_key: "lix_own_change_control",
|
|
196
196
|
file_id: "null",
|
|
197
197
|
snapshot_id: snapshots[0].id,
|
|
198
198
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
@@ -235,7 +235,7 @@ test("foreign key constraints are obeyed", async () => {
|
|
|
235
235
|
// the change set for this change does not exist
|
|
236
236
|
entity_id: "change-set-1,change0",
|
|
237
237
|
schema_key: "lix_change_set_element_table",
|
|
238
|
-
plugin_key: "
|
|
238
|
+
plugin_key: "lix_own_change_control",
|
|
239
239
|
file_id: "null",
|
|
240
240
|
snapshot_id: snapshots[0].id,
|
|
241
241
|
created_at: "2021-01-01T00:00:00.000Z",
|
|
@@ -284,7 +284,7 @@ test("applying own entity changes doesn't lead to the creation of new changes",
|
|
|
284
284
|
id: "change0",
|
|
285
285
|
entity_id: "mock-key",
|
|
286
286
|
file_id: "null",
|
|
287
|
-
plugin_key: "
|
|
287
|
+
plugin_key: "lix_own_change_control",
|
|
288
288
|
schema_key: "lix_key_value_table",
|
|
289
289
|
snapshot_id: snapshot.id,
|
|
290
290
|
created_at: "2021-01-01T00:00:00Z",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-own-entity-change.test.js","sourceRoot":"","sources":["../../src/own-entity-change-control/apply-own-entity-change.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAiB,MAAM,iCAAiC,CAAC;AAEhE,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IAC3D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QACjC,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAW;QACtB,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,qBAAqB;QACjC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"apply-own-entity-change.test.js","sourceRoot":"","sources":["../../src/own-entity-change-control/apply-own-entity-change.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export function applyOwnEntityChangeControlTriggers(sqlite, db) {
|
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
13
|
sqlite.createFunction({
|
|
14
|
-
name: "
|
|
14
|
+
name: "handle_lix_own_change_control",
|
|
15
15
|
arity: -1,
|
|
16
16
|
// @ts-expect-error - dynamic function
|
|
17
17
|
xFunc: (_ctx, tableName, operation, ...value) => {
|
|
@@ -24,7 +24,7 @@ export function applyOwnEntityChangeControlTriggers(sqlite, db) {
|
|
|
24
24
|
CREATE TEMP TRIGGER IF NOT EXISTS ${table}_change_control_insert
|
|
25
25
|
AFTER INSERT ON ${table}
|
|
26
26
|
BEGIN
|
|
27
|
-
SELECT
|
|
27
|
+
SELECT handle_lix_own_change_control('${table}', 'insert', ${tableInfo.map((c) => "NEW." + c.name).join(", ")});
|
|
28
28
|
END;
|
|
29
29
|
|
|
30
30
|
CREATE TEMP TRIGGER IF NOT EXISTS ${table}_change_control_update
|
|
@@ -41,13 +41,13 @@ export function applyOwnEntityChangeControlTriggers(sqlite, db) {
|
|
|
41
41
|
)`
|
|
42
42
|
: ""}
|
|
43
43
|
BEGIN
|
|
44
|
-
SELECT
|
|
44
|
+
SELECT handle_lix_own_change_control('${table}', 'update', ${tableInfo.map((c) => "NEW." + c.name).join(", ")});
|
|
45
45
|
END;
|
|
46
46
|
|
|
47
47
|
CREATE TEMP TRIGGER IF NOT EXISTS ${table}_change_control_delete
|
|
48
48
|
AFTER DELETE ON ${table}
|
|
49
49
|
BEGIN
|
|
50
|
-
SELECT
|
|
50
|
+
SELECT handle_lix_own_change_control('${table}', 'delete', ${tableInfo.map((c) => "OLD." + c.name).join(", ")});
|
|
51
51
|
END;
|
|
52
52
|
`;
|
|
53
53
|
sqlite.exec(sql);
|
|
@@ -77,7 +77,7 @@ function handleLixOwnEntityChange(db, sqlite, tableName, tableInfos, operation,
|
|
|
77
77
|
.where("id", "=", values[0])
|
|
78
78
|
.select("plugin_key"),
|
|
79
79
|
})[0];
|
|
80
|
-
if (change?.plugin_key === "
|
|
80
|
+
if (change?.plugin_key === "lix_own_change_control") {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
83
|
const currentVersion = executeSync({
|
|
@@ -125,7 +125,7 @@ function handleLixOwnEntityChange(db, sqlite, tableName, tableInfos, operation,
|
|
|
125
125
|
version: currentVersion,
|
|
126
126
|
entityId,
|
|
127
127
|
fileId: "null",
|
|
128
|
-
pluginKey: "
|
|
128
|
+
pluginKey: "lix_own_change_control",
|
|
129
129
|
schemaKey: `lix_${tableName}_table`,
|
|
130
130
|
snapshotContent,
|
|
131
131
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-triggers.js","sourceRoot":"","sources":["../../src/own-entity-change-control/database-triggers.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,wBAAwB,EACxB,cAAc,GAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,UAAU,mCAAmC,CAClD,MAAsB,EACtB,EAA6B;IAE7B,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YAC/B,GAAG,EAAE,qBAAqB,KAAK,IAAI;YACnC,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,QAAQ;SACjB,CAAoB,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC;QACrB,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"database-triggers.js","sourceRoot":"","sources":["../../src/own-entity-change-control/database-triggers.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,wBAAwB,EACxB,cAAc,GAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,UAAU,mCAAmC,CAClD,MAAsB,EACtB,EAA6B;IAE7B,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YAC/B,GAAG,EAAE,qBAAqB,KAAK,IAAI;YACnC,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,QAAQ;SACjB,CAAoB,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC;QACrB,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,CAAC,CAAC;QACT,sCAAsC;QACtC,KAAK,EAAE,CACN,IAAY,EACZ,SAAgD,EAChD,SAAyC,EACzC,GAAG,KAAK,EACP,EAAE;YACH,OAAO,wBAAwB,CAC9B,EAAE,EACF,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,GAAG,KAAK,CACR,CAAC;QACH,CAAC;KACD,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAE,CAAC;QAErC,MAAM,GAAG,GAAG;0CAC4B,KAAK;wBACvB,KAAK;;gDAEmB,KAAK,gBAAgB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;0CAG3E,KAAK;wBACvB,KAAK;KACxB;QACD,4DAA4D;QAC5D,yEAAyE;QACzE,KAAK,KAAK,MAAM;YACf,CAAC,CAAC;;;;;KAKF;YACA,CAAC,CAAC,EACJ;;gDAE6C,KAAK,gBAAgB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;0CAG3E,KAAK;wBACvB,KAAK;;gDAEmB,KAAK,gBAAgB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;OAE9G,CAAC;QAEN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB,CAChC,EAA6B,EAC7B,MAAsB,EACtB,SAAgD,EAChD,UAA0E,EAC1E,SAAyC,EACzC,GAAG,MAAa;IAEhB,MAAM,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAE3B,mDAAmD;IACnD,IAAI,SAAS,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO;IACR,CAAC;IAED,MAAM,UAAU,GACf,WAAW,CAAC;QACX,GAAG;QACH,KAAK,EAAE,EAAE;aACP,UAAU,CAAC,WAAW,CAAC;aACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,8BAA8B,CAAC;aACjD,MAAM,CAAC,OAAO,CAAC;KACjB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC;IAEzB,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,qDAAqD;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC;QAC1B,GAAG;QACH,KAAK,EAAE,EAAE;aACP,UAAU,CAAC,QAAQ,CAAC;aACpB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAC3B,MAAM,CAAC,YAAY,CAAC;KACtB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEN,IAAI,MAAM,EAAE,UAAU,KAAK,wBAAwB,EAAE,CAAC;QACrD,OAAO;IACR,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC;QAClC,GAAG;QACH,KAAK,EAAE,EAAE;aACP,UAAU,CAAC,iBAAiB,CAAC;aAC7B,SAAS,CAAC,SAAS,EAAE,oBAAoB,EAAE,YAAY,CAAC;aACxD,SAAS,CAAC,SAAS,CAAC;KACtB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,OAAO,GAAG,WAAW,CAAC;QAC3B,GAAG;QACH,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE;KAClD,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,eAA2C,CAAC;IAEhD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC5B,eAAe,GAAG,IAAI,CAAC;IACxB,CAAC;SAAM,CAAC;QACP,eAAe,GAAG,EAAE,CAAC;QACrB,gDAAgD;QAChD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,CAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAChE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,IAAI,eAAe,EAAE,CAAC;QAC7C,mCAAmC;QACnC,yCAAyC;QACzC,UAAU;QACV,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1C,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;YAChC,WAAW,EAAE,YAAY;SACzB,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;QAEV,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;QAEzD,8EAA8E;QAC9E,OAAO,eAAe,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC;IAEtD,YAAY,CACX;QACC,GAAG;QACH,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,cAAc;QACvB,QAAQ;QACR,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,OAAO,SAAS,QAAQ;QACnC,eAAe;KACf,EACD;QACC,oBAAoB,EAAE,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;KACnE,CACD,CAAC;AACH,CAAC"}
|
|
@@ -28,7 +28,7 @@ test("it works for inserts, updates and deletions", async () => {
|
|
|
28
28
|
for (const change of changes) {
|
|
29
29
|
expect(change.entity_id).toBe("key1");
|
|
30
30
|
expect(change.file_id).toBe("null");
|
|
31
|
-
expect(change.plugin_key).toBe("
|
|
31
|
+
expect(change.plugin_key).toBe("lix_own_change_control");
|
|
32
32
|
expect(change.schema_key).toBe("lix_key_value_table");
|
|
33
33
|
}
|
|
34
34
|
expect(snapshots).toStrictEqual([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-triggers.test.js","sourceRoot":"","sources":["../../src/own-entity-change-control/database-triggers.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,SAAS;IACT,MAAM,GAAG,CAAC,EAAE;SACV,UAAU,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SACxC,OAAO,EAAE,CAAC;IAEZ,SAAS;IACT,MAAM,GAAG,CAAC,EAAE;SACV,WAAW,CAAC,WAAW,CAAC;SACxB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;SACtB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC;SACzB,OAAO,EAAE,CAAC;IAEZ,SAAS;IACT,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAEzE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;SAC1B,UAAU,CAAC,QAAQ,CAAC;SACpB,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,oBAAoB,CAAC;SAC1D,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,qBAAqB,CAAC;SAC/C,SAAS,EAAE;SACX,OAAO,EAAE,CAAC;IAEZ,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"database-triggers.test.js","sourceRoot":"","sources":["../../src/own-entity-change-control/database-triggers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,58 +3,66 @@ import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
|
3
3
|
import { mockChange } from "../change/mock-change.js";
|
|
4
4
|
import { createVersion } from "../version/create-version.js";
|
|
5
5
|
import { versionChangeInDifference } from "./version-change-in-difference.js";
|
|
6
|
+
import { updateChangesInVersion } from "../version/update-changes-in-version.js";
|
|
6
7
|
test("should return the difference between two versions", async () => {
|
|
7
8
|
const lix = await openLixInMemory({});
|
|
8
9
|
const versionA = await createVersion({ lix });
|
|
9
10
|
const versionB = await createVersion({ lix });
|
|
11
|
+
const mockChanges = [
|
|
12
|
+
mockChange({ id: "change0", entity_id: "entity0" }),
|
|
13
|
+
mockChange({ id: "change1", entity_id: "entity1" }),
|
|
14
|
+
mockChange({ id: "change2", entity_id: "entity2" }),
|
|
15
|
+
mockChange({ id: "change3", entity_id: "entity3" }),
|
|
16
|
+
];
|
|
10
17
|
await lix.db
|
|
11
18
|
.insertInto("change")
|
|
12
|
-
.values(
|
|
13
|
-
mockChange({ id: "change1" }),
|
|
14
|
-
mockChange({ id: "change2" }),
|
|
15
|
-
mockChange({ id: "change3" }),
|
|
16
|
-
mockChange({ id: "change4" }),
|
|
17
|
-
])
|
|
19
|
+
.values(mockChanges)
|
|
18
20
|
.returningAll()
|
|
19
21
|
.execute();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.values([...changesA, ...changesB])
|
|
31
|
-
.execute();
|
|
22
|
+
await updateChangesInVersion({
|
|
23
|
+
lix,
|
|
24
|
+
version: versionA,
|
|
25
|
+
changes: [mockChanges[0], mockChanges[1]],
|
|
26
|
+
});
|
|
27
|
+
await updateChangesInVersion({
|
|
28
|
+
lix,
|
|
29
|
+
version: versionB,
|
|
30
|
+
changes: [mockChanges[1], mockChanges[2]],
|
|
31
|
+
});
|
|
32
32
|
const result = await lix.db
|
|
33
33
|
.selectFrom("version_change")
|
|
34
34
|
.where(versionChangeInDifference(versionA, versionB))
|
|
35
|
-
.
|
|
35
|
+
.select("version_id")
|
|
36
|
+
.select("change_id")
|
|
36
37
|
.execute();
|
|
37
38
|
expect(result).toEqual([
|
|
38
|
-
//
|
|
39
|
-
{ version_id: versionA.id, change_id: "
|
|
39
|
+
// change0 is in A but not in B
|
|
40
|
+
expect.objectContaining({ version_id: versionA.id, change_id: "change0" }),
|
|
40
41
|
]);
|
|
41
42
|
});
|
|
42
43
|
test("should return an empty array if there are no differences", async () => {
|
|
43
44
|
const lix = await openLixInMemory({});
|
|
44
45
|
const versionA = await createVersion({ lix });
|
|
45
46
|
const versionB = await createVersion({ lix });
|
|
47
|
+
const mockChanges = [
|
|
48
|
+
mockChange({ id: "change0" }),
|
|
49
|
+
mockChange({ id: "change1" }),
|
|
50
|
+
];
|
|
46
51
|
await lix.db
|
|
47
52
|
.insertInto("change")
|
|
48
|
-
.values(
|
|
53
|
+
.values(mockChanges)
|
|
49
54
|
.returningAll()
|
|
50
55
|
.execute();
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
await updateChangesInVersion({
|
|
57
|
+
lix,
|
|
58
|
+
version: versionA,
|
|
59
|
+
changes: mockChanges,
|
|
60
|
+
});
|
|
61
|
+
await updateChangesInVersion({
|
|
62
|
+
lix,
|
|
63
|
+
version: versionB,
|
|
64
|
+
changes: mockChanges,
|
|
65
|
+
});
|
|
58
66
|
const result = await lix.db
|
|
59
67
|
.selectFrom("version_change")
|
|
60
68
|
.where(versionChangeInDifference(versionA, versionB))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-change-in-difference.test.js","sourceRoot":"","sources":["../../src/query-filter/version-change-in-difference.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"version-change-in-difference.test.js","sourceRoot":"","sources":["../../src/query-filter/version-change-in-difference.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,43 +3,39 @@ import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
|
3
3
|
import { mockChange } from "../change/mock-change.js";
|
|
4
4
|
import { createVersion } from "../version/create-version.js";
|
|
5
5
|
import { versionChangeInSymmetricDifference } from "./version-change-in-symmetric-difference.js";
|
|
6
|
+
import { updateChangesInVersion } from "../version/update-changes-in-version.js";
|
|
6
7
|
test("should return the symmetric difference between two versions", async () => {
|
|
7
8
|
const lix = await openLixInMemory({});
|
|
8
9
|
const versionA = await createVersion({ lix });
|
|
9
10
|
const versionB = await createVersion({ lix });
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
mockChange({ id: "
|
|
14
|
-
mockChange({ id: "
|
|
15
|
-
mockChange({ id: "change3" }),
|
|
16
|
-
mockChange({ id: "change4" }),
|
|
17
|
-
])
|
|
18
|
-
.returningAll()
|
|
19
|
-
.execute();
|
|
20
|
-
const changesA = [
|
|
21
|
-
{ version_id: versionA.id, change_id: "change1" },
|
|
22
|
-
{ version_id: versionA.id, change_id: "change2" },
|
|
23
|
-
];
|
|
24
|
-
const changesB = [
|
|
25
|
-
{ version_id: versionB.id, change_id: "change2" },
|
|
26
|
-
{ version_id: versionB.id, change_id: "change3" },
|
|
11
|
+
const mockChanges = [
|
|
12
|
+
mockChange({ id: "change0", entity_id: "entity0" }),
|
|
13
|
+
mockChange({ id: "change1", entity_id: "entity1" }),
|
|
14
|
+
mockChange({ id: "change2", entity_id: "entity2" }),
|
|
15
|
+
mockChange({ id: "change3", entity_id: "entity3" }),
|
|
27
16
|
];
|
|
28
|
-
await lix.db
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
17
|
+
await lix.db.insertInto("change").values(mockChanges).execute();
|
|
18
|
+
await updateChangesInVersion({
|
|
19
|
+
lix,
|
|
20
|
+
version: versionA,
|
|
21
|
+
changes: [mockChanges[0], mockChanges[1]],
|
|
22
|
+
});
|
|
23
|
+
await updateChangesInVersion({
|
|
24
|
+
lix,
|
|
25
|
+
version: versionB,
|
|
26
|
+
changes: [mockChanges[1], mockChanges[2]],
|
|
27
|
+
});
|
|
32
28
|
const result = await lix.db
|
|
33
29
|
.selectFrom("version_change")
|
|
34
30
|
.where(versionChangeInSymmetricDifference(versionA, versionB))
|
|
35
31
|
.selectAll()
|
|
36
32
|
.execute();
|
|
37
33
|
expect(result).toEqual([
|
|
38
|
-
// change
|
|
39
|
-
{ version_id: versionA.id, change_id: "
|
|
40
|
-
// change
|
|
41
|
-
{ version_id: versionB.id, change_id: "
|
|
42
|
-
// change
|
|
34
|
+
// change 0 is in A but not in B
|
|
35
|
+
expect.objectContaining({ version_id: versionA.id, change_id: "change0" }),
|
|
36
|
+
// change 2 is in B but not in A
|
|
37
|
+
expect.objectContaining({ version_id: versionB.id, change_id: "change2" }),
|
|
38
|
+
// change 3 is in neither A nor B
|
|
43
39
|
// hence not in the symmetric difference
|
|
44
40
|
]);
|
|
45
41
|
});
|
|
@@ -47,23 +43,25 @@ test("should return an empty array if there are no differences", async () => {
|
|
|
47
43
|
const lix = await openLixInMemory({});
|
|
48
44
|
const versionA = await createVersion({ lix });
|
|
49
45
|
const versionB = await createVersion({ lix });
|
|
46
|
+
const mockChanges = [
|
|
47
|
+
mockChange({ id: "change0", entity_id: "entity0" }),
|
|
48
|
+
mockChange({ id: "change1", entity_id: "entity1" }),
|
|
49
|
+
];
|
|
50
50
|
await lix.db
|
|
51
51
|
.insertInto("change")
|
|
52
|
-
.values(
|
|
53
|
-
mockChange({ id: "change1" }),
|
|
54
|
-
mockChange({ id: "change2" }),
|
|
55
|
-
mockChange({ id: "change3" }),
|
|
56
|
-
mockChange({ id: "change4" }),
|
|
57
|
-
])
|
|
52
|
+
.values(mockChanges)
|
|
58
53
|
.returningAll()
|
|
59
54
|
.execute();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
55
|
+
await updateChangesInVersion({
|
|
56
|
+
lix,
|
|
57
|
+
version: versionA,
|
|
58
|
+
changes: [mockChanges[0], mockChanges[1]],
|
|
59
|
+
});
|
|
60
|
+
await updateChangesInVersion({
|
|
61
|
+
lix,
|
|
62
|
+
version: versionB,
|
|
63
|
+
changes: [mockChanges[0], mockChanges[1]],
|
|
64
|
+
});
|
|
67
65
|
const result = await lix.db
|
|
68
66
|
.selectFrom("version_change")
|
|
69
67
|
.where(versionChangeInSymmetricDifference(versionA, versionB))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-change-in-symmetric-difference.test.js","sourceRoot":"","sources":["../../src/query-filter/version-change-in-symmetric-difference.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"version-change-in-symmetric-difference.test.js","sourceRoot":"","sources":["../../src/query-filter/version-change-in-symmetric-difference.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-in-memory-environment.d.ts","sourceRoot":"","sources":["../../../src/server-api-handler/environment/create-in-memory-environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-in-memory-environment.d.ts","sourceRoot":"","sources":["../../../src/server-api-handler/environment/create-in-memory-environment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAAO,cAsG/C,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { fileQueueSettled } from "../../file-queue/file-queue-settled.js";
|
|
2
|
+
import { closeLix } from "../../lix/close-lix.js";
|
|
1
3
|
import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
|
|
4
|
+
import { toBlob } from "../../lix/to-blob.js";
|
|
2
5
|
/**
|
|
3
6
|
* Create an in-memory storage.
|
|
4
7
|
*
|
|
@@ -59,7 +62,7 @@ export const createLsaInMemoryEnvironment = () => {
|
|
|
59
62
|
lix = await openLixInMemory({
|
|
60
63
|
blob,
|
|
61
64
|
// don't sync the server with itself
|
|
62
|
-
keyValues: [{ key: "
|
|
65
|
+
keyValues: [{ key: "lix_sync", value: "false" }],
|
|
63
66
|
});
|
|
64
67
|
lix.sqlite.exec("PRAGMA foreign_keys = OFF;");
|
|
65
68
|
openLixes.set(args.id, lix);
|
|
@@ -81,8 +84,9 @@ export const createLsaInMemoryEnvironment = () => {
|
|
|
81
84
|
if (connections.size === 0) {
|
|
82
85
|
// TODO no concurrency guarantees
|
|
83
86
|
const lix = openLixes.get(args.id);
|
|
84
|
-
|
|
85
|
-
await lix
|
|
87
|
+
await fileQueueSettled({ lix: lix });
|
|
88
|
+
const blob = await toBlob({ lix: lix });
|
|
89
|
+
await closeLix({ lix: lix });
|
|
86
90
|
openConnections.delete(args.id);
|
|
87
91
|
openLixes.delete(args.id);
|
|
88
92
|
store.set(args.id, blob);
|