@lix-js/sdk 0.4.3 → 0.4.5
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/change-set/create-change-set.d.ts +13 -1
- package/dist/change-set/create-change-set.d.ts.map +1 -1
- package/dist/change-set/create-change-set.js +30 -7
- package/dist/change-set/create-change-set.js.map +1 -1
- package/dist/change-set/create-change-set.test.js +50 -0
- package/dist/change-set/create-change-set.test.js.map +1 -1
- package/dist/database/init-db.test.js.map +1 -1
- package/dist/database/nano-id.js +1 -1
- package/dist/database/nano-id.js.map +1 -1
- package/dist/file-queue/file-handlers.d.ts.map +1 -1
- package/dist/file-queue/file-handlers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server-protocol-handler/create-server-protocol-handler.d.ts +49 -0
- package/dist/server-protocol-handler/create-server-protocol-handler.d.ts.map +1 -0
- package/dist/{server-api-handler/create-server-api-handler.js → server-protocol-handler/create-server-protocol-handler.js} +12 -10
- package/dist/server-protocol-handler/create-server-protocol-handler.js.map +1 -0
- package/dist/server-protocol-handler/environment/create-in-memory-environment.d.ts +9 -0
- package/dist/server-protocol-handler/environment/create-in-memory-environment.d.ts.map +1 -0
- package/dist/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.js +3 -1
- package/dist/server-protocol-handler/environment/create-in-memory-environment.js.map +1 -0
- package/dist/server-protocol-handler/environment/create-in-memory-environment.test.d.ts.map +1 -0
- package/dist/server-protocol-handler/environment/create-in-memory-environment.test.js.map +1 -0
- package/dist/{server-api-handler → server-protocol-handler}/environment/environment.d.ts +2 -1
- package/dist/server-protocol-handler/environment/environment.d.ts.map +1 -0
- package/dist/server-protocol-handler/environment/environment.js.map +1 -0
- package/dist/server-protocol-handler/index.d.ts +3 -0
- package/dist/server-protocol-handler/index.d.ts.map +1 -0
- package/dist/server-protocol-handler/index.js +3 -0
- package/dist/server-protocol-handler/index.js.map +1 -0
- package/dist/server-protocol-handler/routes/get-v1.d.ts +3 -0
- package/dist/server-protocol-handler/routes/get-v1.d.ts.map +1 -0
- package/dist/server-protocol-handler/routes/get-v1.js.map +1 -0
- package/dist/server-protocol-handler/routes/get-v1.test.d.ts.map +1 -0
- package/dist/{server-api-handler → server-protocol-handler}/routes/get-v1.test.js +16 -16
- package/dist/server-protocol-handler/routes/get-v1.test.js.map +1 -0
- package/dist/server-protocol-handler/routes/new-v1.d.ts +3 -0
- package/dist/server-protocol-handler/routes/new-v1.d.ts.map +1 -0
- package/dist/server-protocol-handler/routes/new-v1.js.map +1 -0
- package/dist/server-protocol-handler/routes/new-v1.test.d.ts.map +1 -0
- package/dist/{server-api-handler → server-protocol-handler}/routes/new-v1.test.js +12 -12
- package/dist/server-protocol-handler/routes/new-v1.test.js.map +1 -0
- package/dist/server-protocol-handler/routes/pull-v1.d.ts +3 -0
- package/dist/server-protocol-handler/routes/pull-v1.d.ts.map +1 -0
- package/dist/server-protocol-handler/routes/pull-v1.js.map +1 -0
- package/dist/server-protocol-handler/routes/pull-v1.test.d.ts.map +1 -0
- package/dist/{server-api-handler → server-protocol-handler}/routes/pull-v1.test.js +12 -13
- package/dist/server-protocol-handler/routes/pull-v1.test.js.map +1 -0
- package/dist/server-protocol-handler/routes/push-v1.d.ts +3 -0
- package/dist/server-protocol-handler/routes/push-v1.d.ts.map +1 -0
- package/dist/server-protocol-handler/routes/push-v1.js.map +1 -0
- package/dist/server-protocol-handler/routes/push-v1.test.d.ts.map +1 -0
- package/dist/{server-api-handler → server-protocol-handler}/routes/push-v1.test.js +12 -13
- package/dist/server-protocol-handler/routes/push-v1.test.js.map +1 -0
- package/dist/services/env-variables/index.js +1 -1
- package/dist/sync/pull-from-server.js +1 -2
- package/dist/sync/pull-from-server.js.map +1 -1
- package/dist/sync/pull-from-server.test.js +27 -27
- package/dist/sync/pull-from-server.test.js.map +1 -1
- package/dist/sync/push-to-server.js +1 -1
- package/dist/sync/push-to-server.test.js +18 -18
- package/dist/sync/push-to-server.test.js.map +1 -1
- package/dist/sync/sync-process.js +1 -1
- package/dist/sync/sync-process.js.map +1 -1
- package/dist/sync/sync-process.test.js +13 -13
- package/dist/sync/sync-process.test.js.map +1 -1
- package/package.json +4 -3
- package/src/change-set/create-change-set.test.ts +64 -0
- package/src/change-set/create-change-set.ts +38 -10
- package/src/database/init-db.test.ts +1 -3
- package/src/database/nano-id.test.ts +1 -1
- package/src/database/nano-id.ts +13 -13
- package/src/file-queue/file-handlers.ts +0 -1
- package/src/index.ts +1 -1
- package/src/{server-api-handler/create-server-api-handler.ts → server-protocol-handler/create-server-protocol-handler.ts} +22 -18
- package/src/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.ts +6 -2
- package/src/{server-api-handler → server-protocol-handler}/environment/environment.ts +4 -1
- package/src/server-protocol-handler/index.ts +5 -0
- package/src/{server-api-handler → server-protocol-handler}/routes/get-v1.test.ts +22 -22
- package/src/{server-api-handler → server-protocol-handler}/routes/get-v1.ts +2 -2
- package/src/{server-api-handler → server-protocol-handler}/routes/new-v1.test.ts +16 -16
- package/src/{server-api-handler → server-protocol-handler}/routes/new-v1.ts +2 -2
- package/src/{server-api-handler → server-protocol-handler}/routes/pull-v1.test.ts +16 -16
- package/src/{server-api-handler → server-protocol-handler}/routes/pull-v1.ts +6 -5
- package/src/{server-api-handler → server-protocol-handler}/routes/push-v1.test.ts +18 -18
- package/src/{server-api-handler → server-protocol-handler}/routes/push-v1.ts +6 -5
- package/src/sync/pull-from-server.test.ts +32 -32
- package/src/sync/pull-from-server.ts +5 -5
- package/src/sync/push-to-server.test.ts +22 -22
- package/src/sync/push-to-server.ts +3 -3
- package/src/sync/sync-process.test.ts +18 -18
- package/src/sync/sync-process.ts +1 -1
- package/dist/server-api-handler/create-server-api-handler.d.ts +0 -48
- package/dist/server-api-handler/create-server-api-handler.d.ts.map +0 -1
- package/dist/server-api-handler/create-server-api-handler.js.map +0 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.d.ts +0 -8
- package/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +0 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.js.map +0 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts.map +0 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +0 -1
- package/dist/server-api-handler/environment/environment.d.ts.map +0 -1
- package/dist/server-api-handler/environment/environment.js.map +0 -1
- package/dist/server-api-handler/index.d.ts +0 -3
- package/dist/server-api-handler/index.d.ts.map +0 -1
- package/dist/server-api-handler/index.js +0 -3
- package/dist/server-api-handler/index.js.map +0 -1
- package/dist/server-api-handler/routes/get-v1.d.ts +0 -3
- package/dist/server-api-handler/routes/get-v1.d.ts.map +0 -1
- package/dist/server-api-handler/routes/get-v1.js.map +0 -1
- package/dist/server-api-handler/routes/get-v1.test.d.ts.map +0 -1
- package/dist/server-api-handler/routes/get-v1.test.js.map +0 -1
- package/dist/server-api-handler/routes/new-v1.d.ts +0 -3
- package/dist/server-api-handler/routes/new-v1.d.ts.map +0 -1
- package/dist/server-api-handler/routes/new-v1.js.map +0 -1
- package/dist/server-api-handler/routes/new-v1.test.d.ts.map +0 -1
- package/dist/server-api-handler/routes/new-v1.test.js.map +0 -1
- package/dist/server-api-handler/routes/pull-v1.d.ts +0 -3
- package/dist/server-api-handler/routes/pull-v1.d.ts.map +0 -1
- package/dist/server-api-handler/routes/pull-v1.js.map +0 -1
- package/dist/server-api-handler/routes/pull-v1.test.d.ts.map +0 -1
- package/dist/server-api-handler/routes/pull-v1.test.js.map +0 -1
- package/dist/server-api-handler/routes/push-v1.d.ts +0 -3
- package/dist/server-api-handler/routes/push-v1.d.ts.map +0 -1
- package/dist/server-api-handler/routes/push-v1.js.map +0 -1
- package/dist/server-api-handler/routes/push-v1.test.d.ts.map +0 -1
- package/dist/server-api-handler/routes/push-v1.test.js.map +0 -1
- package/src/server-api-handler/index.ts +0 -5
- /package/dist/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.test.d.ts +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.test.js +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/environment/environment.js +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/get-v1.js +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/get-v1.test.d.ts +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/new-v1.js +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/new-v1.test.d.ts +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/pull-v1.js +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/pull-v1.test.d.ts +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/push-v1.js +0 -0
- /package/dist/{server-api-handler → server-protocol-handler}/routes/push-v1.test.d.ts +0 -0
- /package/src/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.test.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { test, expect } from "vitest";
|
|
2
|
-
import {
|
|
2
|
+
import { createServerProtocolHandler } from "../create-server-protocol-handler.js";
|
|
3
3
|
import { newLixFile } from "../../lix/new-lix.js";
|
|
4
4
|
import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createLspInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
|
|
6
6
|
import { toBlob } from "../../lix/to-blob.js";
|
|
7
7
|
test("it should fetch the lix file from the server", async () => {
|
|
8
8
|
const lix = await openLixInMemory({
|
|
@@ -17,15 +17,15 @@ test("it should fetch the lix file from the server", async () => {
|
|
|
17
17
|
.insertInto("key_value")
|
|
18
18
|
.values({ key: "mock_key", value: "hello world" })
|
|
19
19
|
.execute();
|
|
20
|
-
const environment =
|
|
21
|
-
const
|
|
20
|
+
const environment = createLspInMemoryEnvironment();
|
|
21
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
22
22
|
// Store the lix file
|
|
23
|
-
await
|
|
23
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
24
24
|
method: "POST",
|
|
25
25
|
body: await toBlob({ lix }),
|
|
26
26
|
}));
|
|
27
27
|
// Fetch the lix file
|
|
28
|
-
const response = await
|
|
28
|
+
const response = await lspHandler(new Request("http://localhost:3000/lsp/get-v1", {
|
|
29
29
|
method: "POST",
|
|
30
30
|
headers: {
|
|
31
31
|
"Content-Type": "application/json",
|
|
@@ -49,9 +49,9 @@ test("it should fetch the lix file from the server", async () => {
|
|
|
49
49
|
expect(mockKey.value).toBe("hello world");
|
|
50
50
|
});
|
|
51
51
|
test("it should return 404 if the lix file does not exist", async () => {
|
|
52
|
-
const environment =
|
|
53
|
-
const
|
|
54
|
-
const response = await
|
|
52
|
+
const environment = createLspInMemoryEnvironment();
|
|
53
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
54
|
+
const response = await lspHandler(new Request("http://localhost:3000/lsp/get-v1", {
|
|
55
55
|
method: "POST",
|
|
56
56
|
headers: {
|
|
57
57
|
"Content-Type": "application/json",
|
|
@@ -63,9 +63,9 @@ test("it should return 404 if the lix file does not exist", async () => {
|
|
|
63
63
|
expect(responseJson.error).toBe("Lix not found");
|
|
64
64
|
});
|
|
65
65
|
test("it should return 400 for a request without lix_id", async () => {
|
|
66
|
-
const environment =
|
|
67
|
-
const
|
|
68
|
-
const response = await
|
|
66
|
+
const environment = createLspInMemoryEnvironment();
|
|
67
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
68
|
+
const response = await lspHandler(new Request("http://localhost:3000/lsp/get-v1", {
|
|
69
69
|
method: "POST",
|
|
70
70
|
headers: {
|
|
71
71
|
"Content-Type": "application/json",
|
|
@@ -77,19 +77,19 @@ test("it should return 400 for a request without lix_id", async () => {
|
|
|
77
77
|
expect(responseJson.error).toBe("Missing required field 'lix_id'");
|
|
78
78
|
});
|
|
79
79
|
test("lix_sync is set to true", async () => {
|
|
80
|
-
const environment =
|
|
81
|
-
const
|
|
80
|
+
const environment = createLspInMemoryEnvironment();
|
|
81
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
82
82
|
const lix = await openLixInMemory({
|
|
83
83
|
blob: await newLixFile(),
|
|
84
84
|
keyValues: [{ key: "lix_sync", value: "false" }],
|
|
85
85
|
});
|
|
86
86
|
// Store the lix file
|
|
87
|
-
const response0 = await
|
|
87
|
+
const response0 = await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
88
88
|
method: "POST",
|
|
89
89
|
body: await toBlob({ lix }),
|
|
90
90
|
}));
|
|
91
91
|
const id = (await response0.json()).id;
|
|
92
|
-
const response1 = await
|
|
92
|
+
const response1 = await lspHandler(new Request("http://localhost:3000/lsp/get-v1", {
|
|
93
93
|
method: "POST",
|
|
94
94
|
headers: {
|
|
95
95
|
"Content-Type": "application/json",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-v1.test.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/get-v1.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-v1.d.ts","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/new-v1.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAE1F,eAAO,MAAM,KAAK,EAAE,6BAyCnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-v1.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/new-v1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIlE,MAAM,CAAC,MAAM,KAAK,GAAkC,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,GAAQ,CAAC;IAEb,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,eAAe,CAAC;YAC3B,IAAI;YACJ,2BAA2B;YAC3B,SAAS,EAAE;gBACV,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE;aAC9D;SACD,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG;SACX,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE;SACxB,UAAU,CAAC,WAAW,CAAC;SACvB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;SAC3B,SAAS,EAAE;SACX,uBAAuB,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAErE,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG;SACX,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;QACxD,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACR,cAAc,EAAE,kBAAkB;SAClC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-v1.test.d.ts","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/new-v1.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { test, expect } from "vitest";
|
|
2
|
-
import {
|
|
2
|
+
import { createServerProtocolHandler } from "../create-server-protocol-handler.js";
|
|
3
3
|
import { newLixFile } from "../../lix/new-lix.js";
|
|
4
4
|
import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
|
|
5
|
-
import {
|
|
5
|
+
import { createLspInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
|
|
6
6
|
import { toBlob } from "../../lix/to-blob.js";
|
|
7
7
|
test("it should store the lix file", async () => {
|
|
8
8
|
const initLix = await openLixInMemory({
|
|
@@ -13,9 +13,9 @@ test("it should store the lix file", async () => {
|
|
|
13
13
|
.where("key", "=", "lix_id")
|
|
14
14
|
.selectAll()
|
|
15
15
|
.executeTakeFirstOrThrow();
|
|
16
|
-
const environment =
|
|
17
|
-
const
|
|
18
|
-
const response = await
|
|
16
|
+
const environment = createLspInMemoryEnvironment();
|
|
17
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
18
|
+
const response = await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
19
19
|
method: "POST",
|
|
20
20
|
body: await toBlob({ lix: initLix }),
|
|
21
21
|
}));
|
|
@@ -45,9 +45,9 @@ test("it should store the lix file", async () => {
|
|
|
45
45
|
test.skip("it should return 400 for an invalid lix file", async () => {
|
|
46
46
|
const invalidLixFile = new Blob(["invalid content"]);
|
|
47
47
|
console.error = () => { };
|
|
48
|
-
const environment =
|
|
49
|
-
const
|
|
50
|
-
const response = await
|
|
48
|
+
const environment = createLspInMemoryEnvironment();
|
|
49
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
50
|
+
const response = await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
51
51
|
method: "POST",
|
|
52
52
|
body: invalidLixFile,
|
|
53
53
|
}));
|
|
@@ -55,15 +55,15 @@ test.skip("it should return 400 for an invalid lix file", async () => {
|
|
|
55
55
|
});
|
|
56
56
|
test("it should return 409 if the lix file already exists", async () => {
|
|
57
57
|
const lixFile = await newLixFile();
|
|
58
|
-
const environment =
|
|
59
|
-
const
|
|
58
|
+
const environment = createLspInMemoryEnvironment();
|
|
59
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
60
60
|
// First request to store the lix file
|
|
61
|
-
await
|
|
61
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
62
62
|
method: "POST",
|
|
63
63
|
body: lixFile,
|
|
64
64
|
}));
|
|
65
65
|
// Second request to store the same lix file
|
|
66
|
-
const response = await
|
|
66
|
+
const response = await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
67
67
|
method: "POST",
|
|
68
68
|
body: lixFile,
|
|
69
69
|
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-v1.test.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/new-v1.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-v1.d.ts","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/pull-v1.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAS1F,eAAO,MAAM,KAAK,EAAE,6BA+CnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-v1.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/pull-v1.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAQhE,MAAM,CAAC,MAAM,KAAK,GAAkC,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAgB,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpE,IAAI,CAAC;QACJ,yEAAyE;QACzE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE,GACpE,MAAM,cAAc,CAAC;YACpB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,iBAAiB,EAAE,IAAI,CAAC,YAAY;SACpC,CAAC,CAAC;QAEJ,8EAA8E;QAC9E,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;YACd,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,iBAAiB;SACsC,CAAC,EAC/D;YACC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;aAClC;SACD,CACD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;YACd,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAG,KAAa,EAAE,OAAO;SAC6B,CAAC,EAC/D;YACC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;aAClC;SACD,CACD,CAAC;IACH,CAAC;YAAS,CAAC;QACV,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-v1.test.d.ts","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/pull-v1.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { test, expect } from "vitest";
|
|
2
|
-
import * as LixServerApi from "@lix-js/server-api-schema";
|
|
3
2
|
import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
|
|
4
|
-
import { createServerApiHandler } from "../create-server-
|
|
3
|
+
import { createServerApiHandler } from "../create-server-protocol-handler.js";
|
|
5
4
|
import { mockJsonSnapshot } from "../../snapshot/mock-json-snapshot.js";
|
|
6
5
|
import { mockChange } from "../../change/mock-change.js";
|
|
7
|
-
import {
|
|
6
|
+
import { createLspInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
|
|
8
7
|
import { toBlob } from "../../lix/to-blob.js";
|
|
9
8
|
test("it should pull rows successfully", async () => {
|
|
10
9
|
const lix = await openLixInMemory({});
|
|
@@ -18,10 +17,10 @@ test("it should pull rows successfully", async () => {
|
|
|
18
17
|
mockChange({ id: "change1" }),
|
|
19
18
|
];
|
|
20
19
|
await lix.db.insertInto("change").values(mockChanges).execute();
|
|
21
|
-
const environment =
|
|
20
|
+
const environment = createLspInMemoryEnvironment();
|
|
22
21
|
await environment.setLix({ id: id.value, blob: await toBlob({ lix }) });
|
|
23
22
|
const lsaHandler = await createServerApiHandler({ environment });
|
|
24
|
-
const response = await lsaHandler(new Request("http://localhost:3000/
|
|
23
|
+
const response = await lsaHandler(new Request("http://localhost:3000/lsp/pull-v1", {
|
|
25
24
|
method: "POST",
|
|
26
25
|
body: JSON.stringify({
|
|
27
26
|
lix_id: id.value,
|
|
@@ -56,10 +55,10 @@ test("it should specifically be able to handle snapshots which use json binary a
|
|
|
56
55
|
.insertInto("snapshot")
|
|
57
56
|
.values([{ content: mockSnapshot.content }])
|
|
58
57
|
.execute();
|
|
59
|
-
const environment =
|
|
58
|
+
const environment = createLspInMemoryEnvironment();
|
|
60
59
|
await environment.setLix({ id, blob: await toBlob({ lix }) });
|
|
61
60
|
const lsa = await createServerApiHandler({ environment });
|
|
62
|
-
const response = await lsa(new Request("http://localhost:3000/
|
|
61
|
+
const response = await lsa(new Request("http://localhost:3000/lsp/pull-v1", {
|
|
63
62
|
method: "POST",
|
|
64
63
|
body: JSON.stringify({
|
|
65
64
|
lix_id: id,
|
|
@@ -83,9 +82,9 @@ test("it should specifically be able to handle snapshots which use json binary a
|
|
|
83
82
|
]));
|
|
84
83
|
});
|
|
85
84
|
test("it should return 404 if the Lix file is not found", async () => {
|
|
86
|
-
const environment =
|
|
85
|
+
const environment = createLspInMemoryEnvironment();
|
|
87
86
|
const lsa = await createServerApiHandler({ environment });
|
|
88
|
-
const response = await lsa(new Request("http://localhost:3000/
|
|
87
|
+
const response = await lsa(new Request("http://localhost:3000/lsp/pull-v1", {
|
|
89
88
|
method: "POST",
|
|
90
89
|
body: JSON.stringify({
|
|
91
90
|
lix_id: "nonexistent-id",
|
|
@@ -98,13 +97,13 @@ test("it should return 404 if the Lix file is not found", async () => {
|
|
|
98
97
|
expect(response.status).toBe(404);
|
|
99
98
|
});
|
|
100
99
|
test("it should return 500 if the Lix file is invalid", async () => {
|
|
101
|
-
const environment =
|
|
100
|
+
const environment = createLspInMemoryEnvironment();
|
|
102
101
|
await environment.setLix({
|
|
103
102
|
id: "invalid-lix",
|
|
104
103
|
blob: new Blob(["invalid data"]),
|
|
105
104
|
});
|
|
106
105
|
const lsaHandler = await createServerApiHandler({ environment });
|
|
107
|
-
const response = await lsaHandler(new Request("http://localhost:3000/
|
|
106
|
+
const response = await lsaHandler(new Request("http://localhost:3000/lsp/pull-v1", {
|
|
108
107
|
method: "POST",
|
|
109
108
|
body: JSON.stringify({
|
|
110
109
|
lix_id: "invalid-lix",
|
|
@@ -122,10 +121,10 @@ test("it should handle empty tables gracefully", async () => {
|
|
|
122
121
|
.where("key", "=", "lix_id")
|
|
123
122
|
.selectAll()
|
|
124
123
|
.executeTakeFirstOrThrow();
|
|
125
|
-
const environment =
|
|
124
|
+
const environment = createLspInMemoryEnvironment();
|
|
126
125
|
await environment.setLix({ id, blob: await toBlob({ lix }) });
|
|
127
126
|
const lsa = await createServerApiHandler({ environment });
|
|
128
|
-
const response = await lsa(new Request("http://localhost:3000/
|
|
127
|
+
const response = await lsa(new Request("http://localhost:3000/lsp/pull-v1", {
|
|
129
128
|
method: "POST",
|
|
130
129
|
body: JSON.stringify({
|
|
131
130
|
lix_id: id,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-v1.test.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/pull-v1.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-v1.d.ts","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/push-v1.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAa1F,eAAO,MAAM,KAAK,EAAE,6BAsKnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-v1.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/push-v1.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,4FAA4F;AAC5F,0FAA0F;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAQvC,MAAM,CAAC,MAAM,KAAK,GAAkC,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAgB,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpE,IAAI,CAAC;QACJ,eAAe;QACf,0EAA0E;QAC1E,qBAAqB;QACrB,KAAK;QAEL,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrD,MAAM,GAAG,CAAC,YAAY,CACrB,aAAa,CAAC,GAAG,CAAC,iCAAiC,CAAC,CACpD,CAAC;YAEF,MAAM,eAAe,CAAC;gBACrB,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;gBAC7B,iBAAiB,EAAE,IAAI,CAAC,YAAY;gBACpC,UAAU,EAAE,IAAI,CAAC,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAa,CAAC;YAEhE,uDAAuD;YACvD,MAAM,sBAAsB,GAA6B,EAAE,CAAC;YAE5D,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAa,EAAE,CAAC;gBAC3D,IAAI,MAAM,CAAC,UAAU,KAAK,0BAA0B,EAAE,CAAC;oBACtD,SAAS;gBACV,CAAC;gBACD,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACrD,CAAC;gBACD,kBAAkB;gBAClB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACxC,CAAC;gBACD,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CACvD,sBAAsB,CACtB,EAAE,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;oBACnC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CACxB,CAAC;oBACF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC/B,sEAAsE;wBACtE,wCAAwC;wBACxC,EAAE;wBACF,eAAe;wBACf,EAAE;wBACF,kDAAkD;wBAClD,kDAAkD;wBAClD,2DAA2D;wBAC3D,MAAM,QAAQ,GAAG,MAAM,GAAG;6BACxB,UAAU,CAAC,QAAQ,CAAC;6BACpB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAS,CAAC;6BAC3B,SAAS,EAAE;6BACX,gBAAgB,EAAE,CAAC;wBACrB,IAAI,QAAQ,EAAE,CAAC;4BACd,OAAO,QAAQ,CAAC;wBACjB,CAAC;6BAAM,CAAC;4BACP,MAAM,IAAI,KAAK,CACd,6FAA6F,CAC7F,CAAC;wBACH,CAAC;oBACF,CAAC;oBACD,OAAO,WAAW,CAAC;gBACpB,CAAC,CAAC,CACF,CAAC;gBACF,MAAM,eAAe,GAAa,EAAE,CAAC;gBAErC,iDAAiD;gBACjD,oDAAoD;gBACpD,MAAM,OAAO,CAAC,GAAG,CAChB,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;oBACpC,MAAM,cAAc,GAAG,MAAM,GAAG;yBAC9B,UAAU,CAAC,gBAAgB,CAAC;yBAC5B,SAAS,CAAC,QAAQ,EAAE,0BAA0B,EAAE,WAAW,CAAC;yBAC5D,KAAK,CAAC,2BAA2B,EAAE,GAAG,EAAE,SAAS,CAAC;yBAClD,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC;yBAC5C,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;yBAClD,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;wBACjD,gEAAgE;yBAC/D,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;yBACnC,SAAS,CAAC,QAAQ,CAAC;yBACnB,gBAAgB,EAAE,CAAC;oBACrB,IAAI,cAAc,EAAE,CAAC;wBACpB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACtC,CAAC;gBACF,CAAC,CAAC,CACF,CAAC;gBAEF,0CAA0C;gBAC1C,GAAG;gBACH,oDAAoD;gBACpD,kCAAkC;gBAClC,0DAA0D;gBAC1D,kCAAkC;gBAClC,sDAAsD;gBACtD,MAAM;gBAEN,8CAA8C;gBAC9C,gCAAgC;gBAChC,mCAAmC;gBACnC,uBAAuB;gBACvB,gCAAgC;gBAChC,kEAAkE;gBAClE,OAAO;gBACP,IAAI;YACL,CAAC;YAED,4BAA4B;YAC5B,+BAA+B;YAC/B,gBAAgB;YAChB,4BAA4B;YAC5B,sEAAsE;YACtE,SAAS;YACT,0BAA0B;YAC1B,eAAe;YAEf,gCAAgC;YAChC,+BAA+B;YAC/B,yBAAyB;YACzB,mEAAmE;YACnE,MAAM;YACN,uBAAuB;YACvB,eAAe;YAEf,eAAe;YACf,mEAAmE;YACnE,gBAAgB;YAChB,kBAAkB;YAClB,KAAK;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG;SACX,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;YACd,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAG,KAAa,EAAE,OAAO;SAC6B,CAAC,EAC/D;YACC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;aAClC;SACD,CACD,CAAC;IACH,CAAC;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-v1.test.d.ts","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/push-v1.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { test, expect, vi } from "vitest";
|
|
2
|
-
import * as LixServerApi from "@lix-js/server-api-schema";
|
|
3
2
|
import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
|
|
4
|
-
import { createServerApiHandler } from "../create-server-
|
|
3
|
+
import { createServerApiHandler } from "../create-server-protocol-handler.js";
|
|
5
4
|
import { mockChange } from "../../change/mock-change.js";
|
|
6
5
|
import { getDiffingRows } from "../../sync/get-diffing-rows.js";
|
|
7
6
|
import { createVersion } from "../../version/create-version.js";
|
|
8
7
|
import { switchVersion } from "../../version/switch-version.js";
|
|
9
8
|
import { pullFromServer } from "../../sync/pull-from-server.js";
|
|
10
|
-
import {
|
|
9
|
+
import { createLspInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
|
|
11
10
|
import { toBlob } from "../../lix/to-blob.js";
|
|
12
11
|
test("it should push data successfully", async () => {
|
|
13
12
|
const lix = await openLixInMemory({});
|
|
@@ -16,11 +15,11 @@ test("it should push data successfully", async () => {
|
|
|
16
15
|
.where("key", "=", "lix_id")
|
|
17
16
|
.selectAll()
|
|
18
17
|
.executeTakeFirstOrThrow();
|
|
19
|
-
const environment =
|
|
18
|
+
const environment = createLspInMemoryEnvironment();
|
|
20
19
|
await environment.setLix({ id, blob: await toBlob({ lix }) });
|
|
21
20
|
const lsaHandler = await createServerApiHandler({ environment });
|
|
22
21
|
const mockChange0 = mockChange({ id: "change0" });
|
|
23
|
-
const response = await lsaHandler(new Request("http://localhost:3000/
|
|
22
|
+
const response = await lsaHandler(new Request("http://localhost:3000/lsp/push-v1", {
|
|
24
23
|
method: "POST",
|
|
25
24
|
body: JSON.stringify({
|
|
26
25
|
lix_id: id,
|
|
@@ -60,9 +59,9 @@ test("it should push data successfully", async () => {
|
|
|
60
59
|
expect(result).toEqual(mockChange0);
|
|
61
60
|
});
|
|
62
61
|
test("it should return 404 if the Lix file is not found", async () => {
|
|
63
|
-
const environment =
|
|
62
|
+
const environment = createLspInMemoryEnvironment();
|
|
64
63
|
const lsaHandler = await createServerApiHandler({ environment });
|
|
65
|
-
const response = await lsaHandler(new Request("http://localhost:3000/
|
|
64
|
+
const response = await lsaHandler(new Request("http://localhost:3000/lsp/push-v1", {
|
|
66
65
|
method: "POST",
|
|
67
66
|
body: JSON.stringify({
|
|
68
67
|
lix_id: "nonexistent-id",
|
|
@@ -76,13 +75,13 @@ test("it should return 404 if the Lix file is not found", async () => {
|
|
|
76
75
|
expect(response.status).toBe(404);
|
|
77
76
|
});
|
|
78
77
|
test("it should return 500 for an invalid Lix file", async () => {
|
|
79
|
-
const environment =
|
|
78
|
+
const environment = createLspInMemoryEnvironment();
|
|
80
79
|
await environment.setLix({
|
|
81
80
|
id: `invalid-lix`,
|
|
82
81
|
blob: new Blob(["invalid data"]),
|
|
83
82
|
});
|
|
84
83
|
const lsa = await createServerApiHandler({ environment });
|
|
85
|
-
const response = await lsa(new Request("http://localhost:3000/
|
|
84
|
+
const response = await lsa(new Request("http://localhost:3000/lsp/push-v1", {
|
|
86
85
|
method: "POST",
|
|
87
86
|
body: JSON.stringify({
|
|
88
87
|
lix_id: "invalid-lix",
|
|
@@ -102,10 +101,10 @@ test("it should return 400 for a failed insert operation", async () => {
|
|
|
102
101
|
.where("key", "=", "lix_id")
|
|
103
102
|
.selectAll()
|
|
104
103
|
.executeTakeFirstOrThrow();
|
|
105
|
-
const environment =
|
|
104
|
+
const environment = createLspInMemoryEnvironment();
|
|
106
105
|
environment.setLix({ id, blob: await toBlob({ lix }) });
|
|
107
106
|
const lsa = await createServerApiHandler({ environment });
|
|
108
|
-
const response = await lsa(new Request("http://localhost:3000/
|
|
107
|
+
const response = await lsa(new Request("http://localhost:3000/lsp/push-v1", {
|
|
109
108
|
method: "POST",
|
|
110
109
|
body: JSON.stringify({
|
|
111
110
|
lix_id: id,
|
|
@@ -141,7 +140,7 @@ test.skip("it should detect conflicts", async () => {
|
|
|
141
140
|
.where("key", "=", "lix_id")
|
|
142
141
|
.selectAll()
|
|
143
142
|
.executeTakeFirstOrThrow();
|
|
144
|
-
const environment =
|
|
143
|
+
const environment = createLspInMemoryEnvironment();
|
|
145
144
|
const lsaHandler = await createServerApiHandler({ environment });
|
|
146
145
|
global.fetch = vi.fn((request) => lsaHandler(request));
|
|
147
146
|
// server has/creates value0 for mock_key
|
|
@@ -162,7 +161,7 @@ test.skip("it should detect conflicts", async () => {
|
|
|
162
161
|
lix: lixOnClient,
|
|
163
162
|
targetVectorClock: [],
|
|
164
163
|
});
|
|
165
|
-
const response = await lsaHandler(new Request("http://localhost:3000/
|
|
164
|
+
const response = await lsaHandler(new Request("http://localhost:3000/lsp/push-v1", {
|
|
166
165
|
method: "POST",
|
|
167
166
|
body: JSON.stringify({
|
|
168
167
|
lix_id: lixId.value,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-v1.test.js","sourceRoot":"","sources":["../../../src/server-protocol-handler/routes/push-v1.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as LixServerApi from "@lix-js/server-api-schema";
|
|
2
1
|
import { mergeTheirState } from "./merge-state.js";
|
|
3
2
|
import { applyChanges } from "../change/apply-changes.js";
|
|
4
3
|
import { CompiledQuery } from "kysely";
|
|
@@ -12,7 +11,7 @@ export async function pullFromServer(args) {
|
|
|
12
11
|
.groupBy("session")
|
|
13
12
|
.execute();
|
|
14
13
|
// 2. query the state from the server using the clients vector clock
|
|
15
|
-
const response = await fetch(new Request(`${args.serverUrl}/
|
|
14
|
+
const response = await fetch(new Request(`${args.serverUrl}/lsp/pull-v1`, {
|
|
16
15
|
method: "POST",
|
|
17
16
|
body: JSON.stringify({
|
|
18
17
|
lix_id: args.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-from-server.js","sourceRoot":"","sources":["../../src/sync/pull-from-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pull-from-server.js","sourceRoot":"","sources":["../../src/sync/pull-from-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { expect, test, vi } from "vitest";
|
|
2
|
-
import {
|
|
2
|
+
import { createServerProtocolHandler } from "../server-protocol-handler/create-server-protocol-handler.js";
|
|
3
3
|
import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
4
4
|
import { pullFromServer } from "./pull-from-server.js";
|
|
5
5
|
import { mockJsonSnapshot } from "../snapshot/mock-json-snapshot.js";
|
|
6
|
-
import {
|
|
6
|
+
import { createLspInMemoryEnvironment } from "../server-protocol-handler/environment/create-in-memory-environment.js";
|
|
7
7
|
import { toBlob } from "../lix/to-blob.js";
|
|
8
8
|
test("pull rows of multiple tables from server successfully and applies them", async () => {
|
|
9
9
|
const lixOnServer = await openLixInMemory({});
|
|
@@ -15,9 +15,9 @@ test("pull rows of multiple tables from server successfully and applies them", a
|
|
|
15
15
|
.where("key", "=", "lix_id")
|
|
16
16
|
.selectAll()
|
|
17
17
|
.executeTakeFirstOrThrow();
|
|
18
|
-
const environment =
|
|
19
|
-
const
|
|
20
|
-
global.fetch = vi.fn((request) =>
|
|
18
|
+
const environment = createLspInMemoryEnvironment();
|
|
19
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
20
|
+
global.fetch = vi.fn((request) => lspHandler(request));
|
|
21
21
|
await lixOnServer.db
|
|
22
22
|
.insertInto("account")
|
|
23
23
|
.values({ id: "account0", name: "test account" })
|
|
@@ -30,7 +30,7 @@ test("pull rows of multiple tables from server successfully and applies them", a
|
|
|
30
30
|
})
|
|
31
31
|
.execute();
|
|
32
32
|
// initialize the lix on the server with the mock data
|
|
33
|
-
await
|
|
33
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
34
34
|
method: "POST",
|
|
35
35
|
body: await toBlob({ lix: lixOnServer }),
|
|
36
36
|
headers: {
|
|
@@ -67,9 +67,9 @@ test("it handles snapshot.content being json binary", async () => {
|
|
|
67
67
|
.where("key", "=", "lix_id")
|
|
68
68
|
.selectAll()
|
|
69
69
|
.executeTakeFirstOrThrow();
|
|
70
|
-
const environment =
|
|
71
|
-
const
|
|
72
|
-
global.fetch = vi.fn((request) =>
|
|
70
|
+
const environment = createLspInMemoryEnvironment();
|
|
71
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
72
|
+
global.fetch = vi.fn((request) => lspHandler(request));
|
|
73
73
|
const mockSnapshot = mockJsonSnapshot({
|
|
74
74
|
location: "Berlin",
|
|
75
75
|
});
|
|
@@ -81,7 +81,7 @@ test("it handles snapshot.content being json binary", async () => {
|
|
|
81
81
|
})
|
|
82
82
|
.execute();
|
|
83
83
|
// initialize the lix on the server with the mock data
|
|
84
|
-
await
|
|
84
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
85
85
|
method: "POST",
|
|
86
86
|
body: await toBlob({ lix: lixOnServer }),
|
|
87
87
|
headers: {
|
|
@@ -118,11 +118,11 @@ test("rows changed on the client more recently should not be updated", async ()
|
|
|
118
118
|
const lix = await openLixInMemory({
|
|
119
119
|
blob: await toBlob({ lix: lixOnServer }),
|
|
120
120
|
});
|
|
121
|
-
const environment =
|
|
122
|
-
const
|
|
123
|
-
global.fetch = vi.fn((request) =>
|
|
121
|
+
const environment = createLspInMemoryEnvironment();
|
|
122
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
123
|
+
global.fetch = vi.fn((request) => lspHandler(request));
|
|
124
124
|
// initialize the lix on the server with the mock data
|
|
125
|
-
await
|
|
125
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
126
126
|
method: "POST",
|
|
127
127
|
body: await toBlob({ lix: lixOnServer }),
|
|
128
128
|
headers: {
|
|
@@ -154,9 +154,9 @@ test("rows changed on the client more recently should not be updated", async ()
|
|
|
154
154
|
// the change table now models "change control". no more last edit wins needed
|
|
155
155
|
test.skip("rows changed on the server more recently should be updated on the client", async () => {
|
|
156
156
|
// setup mock server
|
|
157
|
-
const environment =
|
|
158
|
-
const
|
|
159
|
-
global.fetch = vi.fn((request) =>
|
|
157
|
+
const environment = createLspInMemoryEnvironment();
|
|
158
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
159
|
+
global.fetch = vi.fn((request) => lspHandler(request));
|
|
160
160
|
// create a lix and clone it for the client - so they share the same lix id
|
|
161
161
|
const remoteLix = await openLixInMemory({});
|
|
162
162
|
const localLix = await openLixInMemory({
|
|
@@ -193,7 +193,7 @@ test.skip("rows changed on the server more recently should be updated on the cli
|
|
|
193
193
|
.where("account.id", "=", "account0")
|
|
194
194
|
.execute();
|
|
195
195
|
// initialize the lix on the server with the mock data
|
|
196
|
-
await
|
|
196
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
197
197
|
method: "POST",
|
|
198
198
|
body: await toBlob({ lix: remoteLix }),
|
|
199
199
|
headers: {
|
|
@@ -240,12 +240,12 @@ test.skip("rows changed on the server more recently should be updated on the cli
|
|
|
240
240
|
// .where("key", "=", "lix_id")
|
|
241
241
|
// .selectAll()
|
|
242
242
|
// .executeTakeFirstOrThrow();
|
|
243
|
-
// const environment =
|
|
244
|
-
// const
|
|
245
|
-
// global.fetch = vi.fn((request) =>
|
|
243
|
+
// const environment = createLspInMemoryEnvironment();
|
|
244
|
+
// const lspHandler = await createServerProtocolHandler({ environment });
|
|
245
|
+
// global.fetch = vi.fn((request) => lspHandler(request));
|
|
246
246
|
// // initialize the lix on the server
|
|
247
|
-
// await
|
|
248
|
-
// new Request("http://localhost:3000/
|
|
247
|
+
// await lspHandler(
|
|
248
|
+
// new Request("http://localhost:3000/lsp/new", {
|
|
249
249
|
// method: "POST",
|
|
250
250
|
// body: await lix.toBlob(),
|
|
251
251
|
// })
|
|
@@ -282,9 +282,9 @@ test("non-conflicting changes from the server should for the same version should
|
|
|
282
282
|
.where("key", "=", "lix_id")
|
|
283
283
|
.selectAll()
|
|
284
284
|
.executeTakeFirstOrThrow();
|
|
285
|
-
const environment =
|
|
286
|
-
const
|
|
287
|
-
global.fetch = vi.fn((request) =>
|
|
285
|
+
const environment = createLspInMemoryEnvironment();
|
|
286
|
+
const lspHandler = await createServerProtocolHandler({ environment });
|
|
287
|
+
global.fetch = vi.fn((request) => lspHandler(request));
|
|
288
288
|
const lixOnServer = await openLixInMemory({ blob: await toBlob({ lix }) });
|
|
289
289
|
// insert data on the server that the client does not have yet
|
|
290
290
|
await lixOnServer.db
|
|
@@ -309,7 +309,7 @@ test("non-conflicting changes from the server should for the same version should
|
|
|
309
309
|
}),
|
|
310
310
|
}),
|
|
311
311
|
]));
|
|
312
|
-
await
|
|
312
|
+
await lspHandler(new Request("http://localhost:3000/lsp/new-v1", {
|
|
313
313
|
method: "POST",
|
|
314
314
|
body: await toBlob({ lix: lixOnServer }),
|
|
315
315
|
headers: {
|