@lix-js/sdk 0.4.4 → 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.
Files changed (132) hide show
  1. package/dist/change-set/create-change-set.d.ts +13 -1
  2. package/dist/change-set/create-change-set.d.ts.map +1 -1
  3. package/dist/change-set/create-change-set.js +30 -7
  4. package/dist/change-set/create-change-set.js.map +1 -1
  5. package/dist/change-set/create-change-set.test.js +50 -0
  6. package/dist/change-set/create-change-set.test.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/server-protocol-handler/create-server-protocol-handler.d.ts +49 -0
  12. package/dist/server-protocol-handler/create-server-protocol-handler.d.ts.map +1 -0
  13. package/dist/{server-api-handler/create-server-api-handler.js → server-protocol-handler/create-server-protocol-handler.js} +12 -10
  14. package/dist/server-protocol-handler/create-server-protocol-handler.js.map +1 -0
  15. package/dist/server-protocol-handler/environment/create-in-memory-environment.d.ts +9 -0
  16. package/dist/server-protocol-handler/environment/create-in-memory-environment.d.ts.map +1 -0
  17. package/dist/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.js +3 -1
  18. package/dist/server-protocol-handler/environment/create-in-memory-environment.js.map +1 -0
  19. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.d.ts.map +1 -0
  20. package/dist/server-protocol-handler/environment/create-in-memory-environment.test.js.map +1 -0
  21. package/dist/{server-api-handler → server-protocol-handler}/environment/environment.d.ts +2 -1
  22. package/dist/server-protocol-handler/environment/environment.d.ts.map +1 -0
  23. package/dist/server-protocol-handler/environment/environment.js.map +1 -0
  24. package/dist/server-protocol-handler/index.d.ts +3 -0
  25. package/dist/server-protocol-handler/index.d.ts.map +1 -0
  26. package/dist/server-protocol-handler/index.js +3 -0
  27. package/dist/server-protocol-handler/index.js.map +1 -0
  28. package/dist/server-protocol-handler/routes/get-v1.d.ts +3 -0
  29. package/dist/server-protocol-handler/routes/get-v1.d.ts.map +1 -0
  30. package/dist/server-protocol-handler/routes/get-v1.js.map +1 -0
  31. package/dist/server-protocol-handler/routes/get-v1.test.d.ts.map +1 -0
  32. package/dist/{server-api-handler → server-protocol-handler}/routes/get-v1.test.js +16 -16
  33. package/dist/server-protocol-handler/routes/get-v1.test.js.map +1 -0
  34. package/dist/server-protocol-handler/routes/new-v1.d.ts +3 -0
  35. package/dist/server-protocol-handler/routes/new-v1.d.ts.map +1 -0
  36. package/dist/server-protocol-handler/routes/new-v1.js.map +1 -0
  37. package/dist/server-protocol-handler/routes/new-v1.test.d.ts.map +1 -0
  38. package/dist/{server-api-handler → server-protocol-handler}/routes/new-v1.test.js +12 -12
  39. package/dist/server-protocol-handler/routes/new-v1.test.js.map +1 -0
  40. package/dist/server-protocol-handler/routes/pull-v1.d.ts +3 -0
  41. package/dist/server-protocol-handler/routes/pull-v1.d.ts.map +1 -0
  42. package/dist/server-protocol-handler/routes/pull-v1.js.map +1 -0
  43. package/dist/server-protocol-handler/routes/pull-v1.test.d.ts.map +1 -0
  44. package/dist/{server-api-handler → server-protocol-handler}/routes/pull-v1.test.js +12 -13
  45. package/dist/server-protocol-handler/routes/pull-v1.test.js.map +1 -0
  46. package/dist/server-protocol-handler/routes/push-v1.d.ts +3 -0
  47. package/dist/server-protocol-handler/routes/push-v1.d.ts.map +1 -0
  48. package/dist/server-protocol-handler/routes/push-v1.js.map +1 -0
  49. package/dist/server-protocol-handler/routes/push-v1.test.d.ts.map +1 -0
  50. package/dist/{server-api-handler → server-protocol-handler}/routes/push-v1.test.js +12 -13
  51. package/dist/server-protocol-handler/routes/push-v1.test.js.map +1 -0
  52. package/dist/services/env-variables/index.js +1 -1
  53. package/dist/sync/pull-from-server.js +1 -2
  54. package/dist/sync/pull-from-server.js.map +1 -1
  55. package/dist/sync/pull-from-server.test.js +27 -27
  56. package/dist/sync/pull-from-server.test.js.map +1 -1
  57. package/dist/sync/push-to-server.js +1 -1
  58. package/dist/sync/push-to-server.test.js +18 -18
  59. package/dist/sync/push-to-server.test.js.map +1 -1
  60. package/dist/sync/sync-process.js +1 -1
  61. package/dist/sync/sync-process.js.map +1 -1
  62. package/dist/sync/sync-process.test.js +13 -13
  63. package/dist/sync/sync-process.test.js.map +1 -1
  64. package/package.json +3 -3
  65. package/src/change-set/create-change-set.test.ts +64 -0
  66. package/src/change-set/create-change-set.ts +38 -10
  67. package/src/index.ts +1 -1
  68. package/src/{server-api-handler/create-server-api-handler.ts → server-protocol-handler/create-server-protocol-handler.ts} +22 -18
  69. package/src/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.ts +6 -2
  70. package/src/{server-api-handler → server-protocol-handler}/environment/environment.ts +4 -1
  71. package/src/server-protocol-handler/index.ts +5 -0
  72. package/src/{server-api-handler → server-protocol-handler}/routes/get-v1.test.ts +22 -22
  73. package/src/{server-api-handler → server-protocol-handler}/routes/get-v1.ts +2 -2
  74. package/src/{server-api-handler → server-protocol-handler}/routes/new-v1.test.ts +16 -16
  75. package/src/{server-api-handler → server-protocol-handler}/routes/new-v1.ts +2 -2
  76. package/src/{server-api-handler → server-protocol-handler}/routes/pull-v1.test.ts +16 -16
  77. package/src/{server-api-handler → server-protocol-handler}/routes/pull-v1.ts +6 -5
  78. package/src/{server-api-handler → server-protocol-handler}/routes/push-v1.test.ts +18 -18
  79. package/src/{server-api-handler → server-protocol-handler}/routes/push-v1.ts +6 -5
  80. package/src/sync/pull-from-server.test.ts +32 -32
  81. package/src/sync/pull-from-server.ts +5 -5
  82. package/src/sync/push-to-server.test.ts +22 -22
  83. package/src/sync/push-to-server.ts +3 -3
  84. package/src/sync/sync-process.test.ts +18 -18
  85. package/src/sync/sync-process.ts +1 -1
  86. package/dist/server-api-handler/create-server-api-handler.d.ts +0 -48
  87. package/dist/server-api-handler/create-server-api-handler.d.ts.map +0 -1
  88. package/dist/server-api-handler/create-server-api-handler.js.map +0 -1
  89. package/dist/server-api-handler/environment/create-in-memory-environment.d.ts +0 -8
  90. package/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +0 -1
  91. package/dist/server-api-handler/environment/create-in-memory-environment.js.map +0 -1
  92. package/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts.map +0 -1
  93. package/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +0 -1
  94. package/dist/server-api-handler/environment/environment.d.ts.map +0 -1
  95. package/dist/server-api-handler/environment/environment.js.map +0 -1
  96. package/dist/server-api-handler/index.d.ts +0 -3
  97. package/dist/server-api-handler/index.d.ts.map +0 -1
  98. package/dist/server-api-handler/index.js +0 -3
  99. package/dist/server-api-handler/index.js.map +0 -1
  100. package/dist/server-api-handler/routes/get-v1.d.ts +0 -3
  101. package/dist/server-api-handler/routes/get-v1.d.ts.map +0 -1
  102. package/dist/server-api-handler/routes/get-v1.js.map +0 -1
  103. package/dist/server-api-handler/routes/get-v1.test.d.ts.map +0 -1
  104. package/dist/server-api-handler/routes/get-v1.test.js.map +0 -1
  105. package/dist/server-api-handler/routes/new-v1.d.ts +0 -3
  106. package/dist/server-api-handler/routes/new-v1.d.ts.map +0 -1
  107. package/dist/server-api-handler/routes/new-v1.js.map +0 -1
  108. package/dist/server-api-handler/routes/new-v1.test.d.ts.map +0 -1
  109. package/dist/server-api-handler/routes/new-v1.test.js.map +0 -1
  110. package/dist/server-api-handler/routes/pull-v1.d.ts +0 -3
  111. package/dist/server-api-handler/routes/pull-v1.d.ts.map +0 -1
  112. package/dist/server-api-handler/routes/pull-v1.js.map +0 -1
  113. package/dist/server-api-handler/routes/pull-v1.test.d.ts.map +0 -1
  114. package/dist/server-api-handler/routes/pull-v1.test.js.map +0 -1
  115. package/dist/server-api-handler/routes/push-v1.d.ts +0 -3
  116. package/dist/server-api-handler/routes/push-v1.d.ts.map +0 -1
  117. package/dist/server-api-handler/routes/push-v1.js.map +0 -1
  118. package/dist/server-api-handler/routes/push-v1.test.d.ts.map +0 -1
  119. package/dist/server-api-handler/routes/push-v1.test.js.map +0 -1
  120. package/src/server-api-handler/index.ts +0 -5
  121. /package/dist/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.test.d.ts +0 -0
  122. /package/dist/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.test.js +0 -0
  123. /package/dist/{server-api-handler → server-protocol-handler}/environment/environment.js +0 -0
  124. /package/dist/{server-api-handler → server-protocol-handler}/routes/get-v1.js +0 -0
  125. /package/dist/{server-api-handler → server-protocol-handler}/routes/get-v1.test.d.ts +0 -0
  126. /package/dist/{server-api-handler → server-protocol-handler}/routes/new-v1.js +0 -0
  127. /package/dist/{server-api-handler → server-protocol-handler}/routes/new-v1.test.d.ts +0 -0
  128. /package/dist/{server-api-handler → server-protocol-handler}/routes/pull-v1.js +0 -0
  129. /package/dist/{server-api-handler → server-protocol-handler}/routes/pull-v1.test.d.ts +0 -0
  130. /package/dist/{server-api-handler → server-protocol-handler}/routes/push-v1.js +0 -0
  131. /package/dist/{server-api-handler → server-protocol-handler}/routes/push-v1.test.d.ts +0 -0
  132. /package/src/{server-api-handler → server-protocol-handler}/environment/create-in-memory-environment.test.ts +0 -0
@@ -48,7 +48,7 @@ export async function initSyncProcess(args) {
48
48
  }
49
49
  catch (e) {
50
50
  // likely that lix didn't exist on the server
51
- const response = await fetch(new Request(url.value + "/lsa/new-v1", {
51
+ const response = await fetch(new Request(`${url.value}/lsp/new-v1`, {
52
52
  method: "POST",
53
53
  body: await toBlob({ lix: args.lix }),
54
54
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"sync-process.js","sourceRoot":"","sources":["../../src/sync/sync-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-process.js","sourceRoot":"","sources":["../../src/sync/sync-process.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { test, expect, vi } from "vitest";
2
2
  import { openLixInMemory } from "../lix/open-lix-in-memory.js";
3
- import { createLsaInMemoryEnvironment, createServerApiHandler, } from "../server-api-handler/index.js";
3
+ import { createLspInMemoryEnvironment, createServerProtocolHandler, } from "../server-protocol-handler/index.js";
4
4
  import { createVersion } from "../version/create-version.js";
5
5
  import { switchVersion } from "../version/switch-version.js";
6
6
  import { executeSync } from "../database/execute-sync.js";
7
7
  import { toBlob } from "../lix/to-blob.js";
8
8
  test("versions should be synced", async () => {
9
- const environment = createLsaInMemoryEnvironment();
10
- const lsaHandler = await createServerApiHandler({ environment });
11
- global.fetch = vi.fn((request) => lsaHandler(request));
9
+ const environment = createLspInMemoryEnvironment();
10
+ const lspHandler = await createServerProtocolHandler({ environment });
11
+ global.fetch = vi.fn((request) => lspHandler(request));
12
12
  const lix0 = await openLixInMemory({
13
13
  keyValues: [{ key: "lix_server_url", value: "http://mock.com" }],
14
14
  });
@@ -20,7 +20,7 @@ test("versions should be synced", async () => {
20
20
  .selectAll()
21
21
  .executeTakeFirstOrThrow();
22
22
  // initialize lix on the server
23
- await lsaHandler(new Request("http://mock.com/lsa/new-v1", {
23
+ await lspHandler(new Request("http://mock.com/lsp/new-v1", {
24
24
  method: "POST",
25
25
  body: await toBlob({ lix: lix0 }),
26
26
  }));
@@ -90,9 +90,9 @@ test("versions should be synced", async () => {
90
90
  expect(lix0VersionChanges).toEqual(lix1VersionChanges);
91
91
  });
92
92
  test("switching synced versions should work", async () => {
93
- const environment = createLsaInMemoryEnvironment();
94
- const lsaHandler = await createServerApiHandler({ environment });
95
- global.fetch = vi.fn((request) => lsaHandler(request));
93
+ const environment = createLspInMemoryEnvironment();
94
+ const lspHandler = await createServerProtocolHandler({ environment });
95
+ global.fetch = vi.fn((request) => lspHandler(request));
96
96
  // @ts-expect-error - eases debugging
97
97
  global.executeSync = executeSync;
98
98
  const lix0 = await openLixInMemory({
@@ -107,7 +107,7 @@ test("switching synced versions should work", async () => {
107
107
  .executeTakeFirstOrThrow();
108
108
  const server = await environment.openLix({ id: lixId.value });
109
109
  // initialize lix on the server
110
- await lsaHandler(new Request("http://mock.com/lsa/new-v1", {
110
+ await lspHandler(new Request("http://mock.com/lsp/new-v1", {
111
111
  method: "POST",
112
112
  body: await toBlob({ lix: lix0 }),
113
113
  }));
@@ -184,9 +184,9 @@ test("switching synced versions should work", async () => {
184
184
  });
185
185
  });
186
186
  test("doesnt sync if lix_sync is not true", async () => {
187
- const environment = createLsaInMemoryEnvironment();
188
- const lsaHandler = await createServerApiHandler({ environment });
189
- global.fetch = vi.fn((request) => lsaHandler(request));
187
+ const environment = createLspInMemoryEnvironment();
188
+ const lspHandler = await createServerProtocolHandler({ environment });
189
+ global.fetch = vi.fn((request) => lspHandler(request));
190
190
  const lix = await openLixInMemory({});
191
191
  const lixId = await lix.db
192
192
  .selectFrom("key_value")
@@ -194,7 +194,7 @@ test("doesnt sync if lix_sync is not true", async () => {
194
194
  .selectAll()
195
195
  .executeTakeFirstOrThrow();
196
196
  // initialize lix on the server
197
- await lsaHandler(new Request("http://mock.com/lsa/new-v1", {
197
+ await lspHandler(new Request("http://mock.com/lsp/new-v1", {
198
198
  method: "POST",
199
199
  body: await toBlob({ lix }),
200
200
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"sync-process.test.js","sourceRoot":"","sources":["../../src/sync/sync-process.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-process.test.js","sourceRoot":"","sources":["../../src/sync/sync-process.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lix-js/sdk",
3
3
  "type": "module",
4
- "version": "0.4.4",
4
+ "version": "0.4.5",
5
5
  "license": "Apache-2.0",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
@@ -23,8 +23,8 @@
23
23
  "js-sha256": "^0.11.0",
24
24
  "kysely": "^0.27.4",
25
25
  "uuid": "^10.0.0",
26
- "@lix-js/server-api-schema": "0.1.1",
27
- "sqlite-wasm-kysely": "0.3.0"
26
+ "sqlite-wasm-kysely": "0.3.0",
27
+ "@lix-js/server-protocol-schema": "0.1.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@eslint/js": "^9.12.0",
@@ -41,3 +41,67 @@ test("creating a change set should succeed", async () => {
41
41
  expect.arrayContaining([mockChanges[0]?.id, mockChanges[1]?.id])
42
42
  );
43
43
  });
44
+
45
+ test("creating a change set with empty changes array should succeed", async () => {
46
+ const lix = await openLixInMemory({});
47
+
48
+ // Create a change set with an empty changes array
49
+ const changeSet = await createChangeSet({
50
+ lix: lix,
51
+ changes: [],
52
+ });
53
+
54
+ // Verify the change set was created
55
+ expect(changeSet.id).toBeDefined();
56
+
57
+ // Verify no change_set_element records were created
58
+ const changeSetMembers = await lix.db
59
+ .selectFrom("change_set_element")
60
+ .selectAll()
61
+ .where("change_set_id", "=", changeSet.id)
62
+ .execute();
63
+
64
+ expect(changeSetMembers).toHaveLength(0);
65
+ });
66
+
67
+ test("creating a change set with labels should associate the labels with the change set", async () => {
68
+ const lix = await openLixInMemory({});
69
+
70
+ // Get existing labels
71
+ const checkpointLabel = await lix.db
72
+ .selectFrom("label")
73
+ .selectAll()
74
+ .where("name", "=", "checkpoint")
75
+ .executeTakeFirstOrThrow();
76
+
77
+ // Create a new label
78
+ const testLabel = await lix.db
79
+ .insertInto("label")
80
+ .values({ name: "test-label" })
81
+ .returningAll()
82
+ .executeTakeFirstOrThrow();
83
+
84
+ // Create a change set with labels
85
+ const changeSet = await createChangeSet({
86
+ lix: lix,
87
+ changes: [],
88
+ labels: [checkpointLabel, testLabel],
89
+ });
90
+
91
+ // Verify the change set was created
92
+ expect(changeSet.id).toBeDefined();
93
+
94
+ // Get the labels associated with the change set
95
+ const changeSetLabels = await lix.db
96
+ .selectFrom("change_set_label")
97
+ .innerJoin("label", "label.id", "change_set_label.label_id")
98
+ .select(["label.name"])
99
+ .where("change_set_id", "=", changeSet.id)
100
+ .execute();
101
+
102
+ // Verify both labels are associated with the change set
103
+ expect(changeSetLabels).toHaveLength(2);
104
+ expect(changeSetLabels.map((label) => label.name)).toEqual(
105
+ expect.arrayContaining(["test-label", "checkpoint"])
106
+ );
107
+ });
@@ -1,4 +1,4 @@
1
- import type { Change, ChangeSet } from "../database/schema.js";
1
+ import type { Change, ChangeSet, Label } from "../database/schema.js";
2
2
  import type { Lix } from "../lix/open-lix.js";
3
3
 
4
4
  /**
@@ -9,10 +9,22 @@ import type { Lix } from "../lix/open-lix.js";
9
9
  * const changes = await lix.db.selectFrom("change").selectAll().execute();
10
10
  * const changeSet = await createChangeSet({ db: lix.db, changes });
11
11
  * ```
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * // Create a change set with labels
16
+ * const labels = await lix.db.selectFrom("label").selectAll().execute();
17
+ * const changeSet = await createChangeSet({
18
+ * lix,
19
+ * changes: [],
20
+ * labels
21
+ * });
22
+ * ```
12
23
  */
13
24
  export async function createChangeSet(args: {
14
25
  lix: Pick<Lix, "db">;
15
26
  changes: Pick<Change, "id">[];
27
+ labels?: Pick<Label, "id">[];
16
28
  }): Promise<ChangeSet> {
17
29
  const executeInTransaction = async (trx: Lix["db"]) => {
18
30
  const changeSet = await trx
@@ -21,15 +33,31 @@ export async function createChangeSet(args: {
21
33
  .returningAll()
22
34
  .executeTakeFirstOrThrow();
23
35
 
24
- await trx
25
- .insertInto("change_set_element")
26
- .values(
27
- args.changes.map((change) => ({
28
- change_id: change.id,
29
- change_set_id: changeSet.id,
30
- }))
31
- )
32
- .execute();
36
+ if (args.changes.length > 0) {
37
+ await trx
38
+ .insertInto("change_set_element")
39
+ .values(
40
+ args.changes.map((change) => ({
41
+ change_id: change.id,
42
+ change_set_id: changeSet.id,
43
+ }))
44
+ )
45
+ .execute();
46
+ }
47
+
48
+ // Add labels if provided
49
+ if (args.labels && args.labels.length > 0) {
50
+ await trx
51
+ .insertInto("change_set_label")
52
+ .values(
53
+ args.labels.map((label) => ({
54
+ label_id: label.id,
55
+ change_set_id: changeSet.id,
56
+ }))
57
+ )
58
+ .execute();
59
+ }
60
+
33
61
  return changeSet;
34
62
  };
35
63
 
package/src/index.ts CHANGED
@@ -11,6 +11,6 @@ export * from "./lix/index.js";
11
11
  export * from "./own-change-control/index.js";
12
12
  export * from "./plugin/index.js";
13
13
  export * from "./query-filter/index.js";
14
- export * from "./server-api-handler/index.js";
14
+ export * from "./server-protocol-handler/index.js";
15
15
  export * from "./snapshot/index.js";
16
16
  export * from "./version/index.js";
@@ -2,18 +2,18 @@ import { route as newRouteV1 } from "./routes/new-v1.js";
2
2
  import { route as pushRouteV1 } from "./routes/push-v1.js";
3
3
  import { route as pullRouteV1 } from "./routes/pull-v1.js";
4
4
  import { route as getRouteV1 } from "./routes/get-v1.js";
5
- import type { LsaEnvironment } from "./environment/environment.js";
5
+ import type { LspEnvironment } from "./environment/environment.js";
6
6
 
7
- export type LixServerApiHandler = (request: Request) => Promise<Response>;
8
-
9
- export type LixServerApiHandlerContext = {
7
+ export type LixServerProtocolHandler = (request: Request) => Promise<Response>;
8
+ // Keep old name for backward compatibility
9
+ export type LixServerProtocolHandlerContext = {
10
10
  request: Request;
11
- environment: LsaEnvironment;
11
+ environment: LspEnvironment;
12
12
  params?: Record<string, string | undefined>;
13
13
  };
14
14
 
15
- export type LixServerApiHandlerRoute = (
16
- context: LixServerApiHandlerContext
15
+ export type LixServerProtocolHandlerRoute = (
16
+ context: LixServerProtocolHandlerContext
17
17
  ) => Promise<Response>;
18
18
 
19
19
  /**
@@ -30,10 +30,10 @@ export type LixServerApiHandlerRoute = (
30
30
  * // objects will need to be mapped.
31
31
  * const app = new Hono();
32
32
  *
33
- * const lsaHandler = createServerApiHandler({ storage });
33
+ * const lspHandler = createServerProtocolHandler({ storage });
34
34
  *
35
35
  * app.use('/lsp/*', async (req) => {
36
- * await lsaHandler(req);
36
+ * await lspHandler(req);
37
37
  * });
38
38
  * ```
39
39
  *
@@ -41,35 +41,35 @@ export type LixServerApiHandlerRoute = (
41
41
  * Testing the handler.
42
42
  *
43
43
  * ```ts
44
- * const lsaHandler = createServerApiHandler({ storage });
44
+ * const lspHandler = createServerProtocolHandler({ storage });
45
45
  * const request = new Request('/lsp/new', {
46
46
  * method: 'POST',
47
47
  * body: new Blob(['...']),
48
48
  * });
49
49
  *
50
- * const response = await lsaHandler(request);
50
+ * const response = await lspHandler(request);
51
51
  *
52
52
  * expect(response).to(...);
53
53
  * ```
54
54
  */
55
- export async function createServerApiHandler(args: {
56
- environment: LsaEnvironment;
57
- }): Promise<LixServerApiHandler> {
55
+ export async function createServerProtocolHandler(args: {
56
+ environment: LspEnvironment;
57
+ }): Promise<LixServerProtocolHandler> {
58
58
  const context = { environment: args.environment };
59
59
 
60
60
  return async (request) => {
61
61
  try {
62
62
  const path = new URL(request.url).pathname;
63
- if (path === "/lsa/get-v1") {
63
+ if (path === "/lsp/get-v1") {
64
64
  return await getRouteV1({ ...context, request });
65
65
  }
66
- if (path === "/lsa/new-v1") {
66
+ if (path === "/lsp/new-v1") {
67
67
  return await newRouteV1({ ...context, request });
68
68
  }
69
- if (path === "/lsa/push-v1") {
69
+ if (path === "/lsp/push-v1") {
70
70
  return await pushRouteV1({ ...context, request });
71
71
  }
72
- if (path === "/lsa/pull-v1") {
72
+ if (path === "/lsp/pull-v1") {
73
73
  return await pullRouteV1({ ...context, request });
74
74
  }
75
75
 
@@ -82,3 +82,7 @@ export async function createServerApiHandler(args: {
82
82
  }
83
83
  };
84
84
  }
85
+
86
+ // Keep old name for backward compatibility
87
+ export const createServerApiHandler: typeof createServerProtocolHandler =
88
+ createServerProtocolHandler;
@@ -3,14 +3,14 @@ import { closeLix } from "../../lix/close-lix.js";
3
3
  import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
4
4
  import type { Lix } from "../../lix/open-lix.js";
5
5
  import { toBlob } from "../../lix/to-blob.js";
6
- import type { LsaEnvironment } from "./environment.js";
6
+ import type { LspEnvironment } from "./environment.js";
7
7
 
8
8
  /**
9
9
  * Create an in-memory storage.
10
10
  *
11
11
  * Great for testing or quick prototyping.
12
12
  */
13
- export const createLsaInMemoryEnvironment = (): LsaEnvironment => {
13
+ export const createLspInMemoryEnvironment = (): LspEnvironment => {
14
14
  const store = new Map<string, Blob>();
15
15
 
16
16
  /**
@@ -113,3 +113,7 @@ export const createLsaInMemoryEnvironment = (): LsaEnvironment => {
113
113
  },
114
114
  };
115
115
  };
116
+
117
+ // For backward compatibility
118
+ export const createLsaInMemoryEnvironment: typeof createLspInMemoryEnvironment =
119
+ createLspInMemoryEnvironment;
@@ -3,7 +3,7 @@ import type { Lix } from "../../lix/open-lix.js";
3
3
  /**
4
4
  * Key value storage interface.
5
5
  */
6
- export type LsaEnvironment = {
6
+ export type LspEnvironment = {
7
7
  get(key: string): Promise<Blob | undefined>;
8
8
  set(key: string, value: Blob): Promise<void>;
9
9
  has(key: string): Promise<boolean>;
@@ -41,3 +41,6 @@ export type LsaEnvironment = {
41
41
  */
42
42
  closeLix(args: { id: string; connectionId: string }): Promise<void>;
43
43
  };
44
+
45
+ // For backward compatibility
46
+ export type LsaEnvironment = LspEnvironment;
@@ -0,0 +1,5 @@
1
+ export {
2
+ createServerProtocolHandler,
3
+ type LixServerProtocolHandlerContext,
4
+ } from "./create-server-protocol-handler.js";
5
+ export { createLspInMemoryEnvironment } from "./environment/create-in-memory-environment.js";
@@ -1,8 +1,8 @@
1
1
  import { test, expect } from "vitest";
2
- import { createServerApiHandler } from "../create-server-api-handler.js";
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 { createLsaInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
5
+ import { createLspInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
6
6
  import { toBlob } from "../../lix/to-blob.js";
7
7
 
8
8
  test("it should fetch the lix file from the server", async () => {
@@ -20,20 +20,20 @@ test("it should fetch the lix file from the server", async () => {
20
20
  .values({ key: "mock_key", value: "hello world" })
21
21
  .execute();
22
22
 
23
- const environment = createLsaInMemoryEnvironment();
24
- const lsaHandler = await createServerApiHandler({ environment });
23
+ const environment = createLspInMemoryEnvironment();
24
+ const lspHandler = await createServerProtocolHandler({ environment });
25
25
 
26
26
  // Store the lix file
27
- await lsaHandler(
28
- new Request("http://localhost:3000/lsa/new-v1", {
27
+ await lspHandler(
28
+ new Request("http://localhost:3000/lsp/new-v1", {
29
29
  method: "POST",
30
30
  body: await toBlob({ lix }),
31
31
  })
32
32
  );
33
33
 
34
34
  // Fetch the lix file
35
- const response = await lsaHandler(
36
- new Request("http://localhost:3000/lsa/get-v1", {
35
+ const response = await lspHandler(
36
+ new Request("http://localhost:3000/lsp/get-v1", {
37
37
  method: "POST",
38
38
  headers: {
39
39
  "Content-Type": "application/json",
@@ -64,12 +64,12 @@ test("it should fetch the lix file from the server", async () => {
64
64
  });
65
65
 
66
66
  test("it should return 404 if the lix file does not exist", async () => {
67
- const environment = createLsaInMemoryEnvironment();
67
+ const environment = createLspInMemoryEnvironment();
68
68
 
69
- const lsaHandler = await createServerApiHandler({ environment });
69
+ const lspHandler = await createServerProtocolHandler({ environment });
70
70
 
71
- const response = await lsaHandler(
72
- new Request("http://localhost:3000/lsa/get-v1", {
71
+ const response = await lspHandler(
72
+ new Request("http://localhost:3000/lsp/get-v1", {
73
73
  method: "POST",
74
74
  headers: {
75
75
  "Content-Type": "application/json",
@@ -85,11 +85,11 @@ test("it should return 404 if the lix file does not exist", async () => {
85
85
  });
86
86
 
87
87
  test("it should return 400 for a request without lix_id", async () => {
88
- const environment = createLsaInMemoryEnvironment();
89
- const lsaHandler = await createServerApiHandler({ environment });
88
+ const environment = createLspInMemoryEnvironment();
89
+ const lspHandler = await createServerProtocolHandler({ environment });
90
90
 
91
- const response = await lsaHandler(
92
- new Request("http://localhost:3000/lsa/get-v1", {
91
+ const response = await lspHandler(
92
+ new Request("http://localhost:3000/lsp/get-v1", {
93
93
  method: "POST",
94
94
  headers: {
95
95
  "Content-Type": "application/json",
@@ -105,8 +105,8 @@ test("it should return 400 for a request without lix_id", async () => {
105
105
  });
106
106
 
107
107
  test("lix_sync is set to true", async () => {
108
- const environment = createLsaInMemoryEnvironment();
109
- const lsaHandler = await createServerApiHandler({ environment });
108
+ const environment = createLspInMemoryEnvironment();
109
+ const lspHandler = await createServerProtocolHandler({ environment });
110
110
 
111
111
  const lix = await openLixInMemory({
112
112
  blob: await newLixFile(),
@@ -114,8 +114,8 @@ test("lix_sync is set to true", async () => {
114
114
  });
115
115
 
116
116
  // Store the lix file
117
- const response0 = await lsaHandler(
118
- new Request("http://localhost:3000/lsa/new-v1", {
117
+ const response0 = await lspHandler(
118
+ new Request("http://localhost:3000/lsp/new-v1", {
119
119
  method: "POST",
120
120
  body: await toBlob({ lix }),
121
121
  })
@@ -123,8 +123,8 @@ test("lix_sync is set to true", async () => {
123
123
 
124
124
  const id = (await response0.json()).id;
125
125
 
126
- const response1 = await lsaHandler(
127
- new Request("http://localhost:3000/lsa/get-v1", {
126
+ const response1 = await lspHandler(
127
+ new Request("http://localhost:3000/lsp/get-v1", {
128
128
  method: "POST",
129
129
  headers: {
130
130
  "Content-Type": "application/json",
@@ -3,9 +3,9 @@ import {
3
3
  createInMemoryDatabase,
4
4
  importDatabase,
5
5
  } from "sqlite-wasm-kysely";
6
- import type { LixServerApiHandlerRoute } from "../create-server-api-handler.js";
6
+ import type { LixServerProtocolHandlerRoute } from "../create-server-protocol-handler.js";
7
7
 
8
- export const route: LixServerApiHandlerRoute = async (context) => {
8
+ export const route: LixServerProtocolHandlerRoute = async (context) => {
9
9
  const { lix_id } = await context.request.json();
10
10
 
11
11
  if (!lix_id) {
@@ -1,8 +1,8 @@
1
1
  import { test, expect } from "vitest";
2
- import { createServerApiHandler } from "../create-server-api-handler.js";
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 { createLsaInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
5
+ import { createLspInMemoryEnvironment } from "../environment/create-in-memory-environment.js";
6
6
  import { toBlob } from "../../lix/to-blob.js";
7
7
 
8
8
  test("it should store the lix file", async () => {
@@ -16,12 +16,12 @@ test("it should store the lix file", async () => {
16
16
  .selectAll()
17
17
  .executeTakeFirstOrThrow();
18
18
 
19
- const environment = createLsaInMemoryEnvironment();
19
+ const environment = createLspInMemoryEnvironment();
20
20
 
21
- const lsaHandler = await createServerApiHandler({ environment });
21
+ const lspHandler = await createServerProtocolHandler({ environment });
22
22
 
23
- const response = await lsaHandler(
24
- new Request("http://localhost:3000/lsa/new-v1", {
23
+ const response = await lspHandler(
24
+ new Request("http://localhost:3000/lsp/new-v1", {
25
25
  method: "POST",
26
26
  body: await toBlob({ lix: initLix }),
27
27
  })
@@ -62,12 +62,12 @@ test.skip("it should return 400 for an invalid lix file", async () => {
62
62
 
63
63
  console.error = () => {};
64
64
 
65
- const environment = createLsaInMemoryEnvironment();
65
+ const environment = createLspInMemoryEnvironment();
66
66
 
67
- const lsaHandler = await createServerApiHandler({ environment });
67
+ const lspHandler = await createServerProtocolHandler({ environment });
68
68
 
69
- const response = await lsaHandler(
70
- new Request("http://localhost:3000/lsa/new-v1", {
69
+ const response = await lspHandler(
70
+ new Request("http://localhost:3000/lsp/new-v1", {
71
71
  method: "POST",
72
72
  body: invalidLixFile,
73
73
  })
@@ -79,21 +79,21 @@ test.skip("it should return 400 for an invalid lix file", async () => {
79
79
  test("it should return 409 if the lix file already exists", async () => {
80
80
  const lixFile = await newLixFile();
81
81
 
82
- const environment = createLsaInMemoryEnvironment();
82
+ const environment = createLspInMemoryEnvironment();
83
83
 
84
- const lsaHandler = await createServerApiHandler({ environment });
84
+ const lspHandler = await createServerProtocolHandler({ environment });
85
85
 
86
86
  // First request to store the lix file
87
- await lsaHandler(
88
- new Request("http://localhost:3000/lsa/new-v1", {
87
+ await lspHandler(
88
+ new Request("http://localhost:3000/lsp/new-v1", {
89
89
  method: "POST",
90
90
  body: lixFile,
91
91
  })
92
92
  );
93
93
 
94
94
  // Second request to store the same lix file
95
- const response = await lsaHandler(
96
- new Request("http://localhost:3000/lsa/new-v1", {
95
+ const response = await lspHandler(
96
+ new Request("http://localhost:3000/lsp/new-v1", {
97
97
  method: "POST",
98
98
  body: lixFile,
99
99
  })
@@ -1,8 +1,8 @@
1
1
  import { openLixInMemory } from "../../lix/open-lix-in-memory.js";
2
2
  import type { Lix } from "../../lix/open-lix.js";
3
- import type { LixServerApiHandlerRoute } from "../create-server-api-handler.js";
3
+ import type { LixServerProtocolHandlerRoute } from "../create-server-protocol-handler.js";
4
4
 
5
- export const route: LixServerApiHandlerRoute = async (context) => {
5
+ export const route: LixServerProtocolHandlerRoute = async (context) => {
6
6
  const blob = await context.request.blob();
7
7
 
8
8
  let lix: Lix;