@lix-js/sdk 0.5.0 → 0.5.1

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 (37) hide show
  1. package/README.md +38 -289
  2. package/dist/environment/load-from-string.d.ts.map +1 -1
  3. package/dist/environment/load-from-string.js +9 -2
  4. package/dist/environment/load-from-string.js.map +1 -1
  5. package/dist/filesystem/file/schema.d.ts +7 -0
  6. package/dist/filesystem/file/schema.d.ts.map +1 -1
  7. package/dist/filesystem/file/schema.js +11 -1
  8. package/dist/filesystem/file/schema.js.map +1 -1
  9. package/dist/lix/open-lix.d.ts +18 -5
  10. package/dist/lix/open-lix.d.ts.map +1 -1
  11. package/dist/lix/open-lix.js.map +1 -1
  12. package/dist/observe/create-observe.d.ts.map +1 -1
  13. package/dist/observe/create-observe.js +19 -0
  14. package/dist/observe/create-observe.js.map +1 -1
  15. package/dist/observe/create-observe.test.js +73 -0
  16. package/dist/observe/create-observe.test.js.map +1 -1
  17. package/dist/observe/determine-schema-keys.d.ts +1 -0
  18. package/dist/observe/determine-schema-keys.d.ts.map +1 -1
  19. package/dist/observe/determine-schema-keys.js +110 -37
  20. package/dist/observe/determine-schema-keys.js.map +1 -1
  21. package/dist/observe/determine-schema-keys.test.js +23 -0
  22. package/dist/observe/determine-schema-keys.test.js.map +1 -1
  23. package/dist/services/env-variables/index.d.ts +1 -1
  24. package/dist/services/env-variables/index.js +2 -2
  25. package/dist/services/env-variables/index.js.map +1 -1
  26. package/dist/state-history/schema.test.js +1 -1
  27. package/dist/state-history/schema.test.js.map +1 -1
  28. package/package.json +3 -3
  29. package/src/environment/load-from-string.ts +11 -2
  30. package/src/filesystem/file/schema.ts +11 -1
  31. package/src/lix/open-lix.ts +18 -5
  32. package/src/observe/create-observe.test.ts +89 -0
  33. package/src/observe/create-observe.ts +25 -0
  34. package/src/observe/determine-schema-keys.test.ts +31 -0
  35. package/src/observe/determine-schema-keys.ts +136 -37
  36. package/src/state-history/schema.test.ts +1 -1
  37. package/src/database/sqlite/sqlite-wasm-binary.js +0 -42835
package/README.md CHANGED
@@ -1,318 +1,67 @@
1
- > [!NOTE]
2
- > The readme is mirrored from [opral/lix-sdk](https://github.com/opral/lix-sdk). The source code is in the [opral/monorepo](https://github.com/opral/monorepo/tree/main/packages/lix/sdk).
3
-
4
- > [!NOTE]
5
- > This repository serves as an issue tracker and documentation storage. The source code is in [opral/monorepo](https://github.com/opral/monorepo/tree/main/packages/lix/sdk).
6
-
7
- # Lix SDK
8
-
9
- [![NPM Downloads](https://img.shields.io/npm/dw/%40lix-js%2Fsdk?logo=npm&logoColor=red&label=npm%20downloads)](https://www.npmjs.com/package/@lix-js/sdk) [![Discord](https://img.shields.io/discord/897438559458430986?style=flat&logo=discord&labelColor=white)](https://discord.gg/xjQA897RyK)
10
-
1
+ # Lix JS SDK
11
2
 
12
- ![Lix SDK](https://cdn.jsdelivr.net/gh/opral/monorepo/packages/lix/sdk/assets/banner.png)
3
+ [![NPM Downloads](https://img.shields.io/npm/dw/%40lix-js%2Fsdk?logo=npm&logoColor=red&label=npm%20downloads)](https://www.npmjs.com/package/@lix-js/sdk) [![Discord](https://img.shields.io/discord/897438559458430986?style=flat&logo=discord&labelColor=white)](https://discord.gg/gdMPPWy57R) [![X (Twitter)](https://img.shields.io/badge/Follow-@lixCCS-black?logo=x&logoColor=white)](https://x.com/lixCCS)
13
4
 
14
- ## Introduction
15
-
16
- Lix is a change control system that runs in the browser and an SDK to build web apps.
17
-
18
- A change control system allows storing, tracking, querying, and reviewing changes in different file formats, e.g., `.xlsx`, `.sqlite`, or `.inlang`. Compared to a version control system, a change control system understands “what” changed in a file, e.g., cell C43 in the financials spreadsheet changed.
19
-
20
- Lix is not a git replacement, nor is it designed for software engineering. The goal is to bring change control workflows to industries other than software engineering like health, finance, policy making, design, etc.
5
+ > [!NOTE]
6
+ > **Lix is in beta** · [Follow progress to v1.0 →](https://github.com/opral/lix-sdk/issues/374)
21
7
 
22
- Try a [demo lix app](https://lix.opral.com/app/fm).
8
+ Lix is an embeddable change control system that enables Git-like features such as [history](https://lix.dev/docs/history), [versions](https://lix.dev/docs/versions) (branches), [diffs](https://lix.dev/docs/), or [blame](https://lix.dev/docs/attribution) for any file format.
23
9
 
24
- ## Features
10
+ **What makes Lix unique:**
25
11
 
26
- - **📌 Versioning**: The possibility to create divergent states (branches in Git).
27
- - **⚡ CI/CD**: Automations as we know them from software engineering.
28
- - **🔀 Change Proposals**: (WIP [#242](https://github.com/opral/lix-sdk/issues/242)) Similar workflow to pull requests in Git.
29
- - **🤝 Collaboration**: Lix comes with built-in sync, enabling asynchronous (Git-like) and real-time collaboration (Google Docs-like) capabilities.
30
- - **✅ Validation Rules**: (WIP [#239](https://github.com/opral/lix-sdk/issues/239)) Define and enforce validation rules for your data.
31
-
12
+ - **Supports any file format** - Track changes in `.xlsx`, `.pdf`, `.json` etc. via plugins.
13
+ - **SQL powered** - History, versions, and diffs are all queryable via SQL.
14
+ - **Embedded** - Runs as a single SQLite file, persistable anywhere (local FS, S3, your database).
32
15
 
33
- ### Good to know
16
+ ---
34
17
 
35
- - 🔍 **Everything is SQL**: Querying lix happens via SQL. No new query language to learn. The lix SDK conveniently exposes [Kysely](https://kysely.dev/), a type-safe SQL query builder.
36
- - 🌐 **Browser-based**: Lix targets the browser as target platform. Node/unix dependencies are ruled out.
18
+ **📖 [Go to lix.dev for more information ](https://lix.dev)**
37
19
 
38
- ## Getting Started
20
+ ---
39
21
 
40
- > [!TIP]
41
- > The documentation is a work in progress. If you have any questions, please open issues in the [GitHub repository](https://github.com/opral/lix-sdk).
22
+ ## Use Cases
42
23
 
43
- > [!NOTE]
44
- > The getting started uses a JSON file but you can store any file in lix, even a SQLite database, as long as a plugin for the file format is provided.
24
+ - **AI agent sandboxing** - Agents propose changes, humans review and approve before applying.
25
+ - **Applications with change control** - Branch/merge-style reviews, audit trails, and versioning for structured data.
45
26
 
46
- ### Installation
47
27
 
48
- Install the Lix SDK package:
28
+ ## Quick Start
49
29
 
50
30
  ```bash
51
- npm install @lix-js/sdk
31
+ npm install @lix-js/sdk @lix-js/plugin-json
52
32
  ```
53
33
 
54
- ### Open a lix
55
-
56
- > [!NOTE]
57
- > We plan to have locally installed plugins in the future with no need to provide them upfront, see [#241](https://github.com/opral/lix-sdk/issues/241).
58
-
59
- Create and open a new Lix file:
60
-
61
- ```javascript
62
- import { newLixFile, openLixInMemory } from "@lix-js/sdk";
63
- import { plugin as jsonPlugin } from "@lix-js/plugin-json";
64
-
65
- // Create a new empty Lix file
66
- const lixFile = await newLixFile();
34
+ ```ts
35
+ import { openLix, selectWorkingDiff, InMemoryEnvironment } from "@lix-js/sdk";
36
+ import { plugin as json } from "@lix-js/plugin-json";
67
37
 
68
- // Open the Lix file in memory
69
- const lix = await openLixInMemory({
70
- blob: lixFile,
71
- providePlugins: [jsonPlugin],
38
+ // 1) Open a lix with plugins
39
+ const lix = await openLix({
40
+ environment: new InMemoryEnvironment(),
41
+ providePlugins: [json],
72
42
  });
73
- ```
74
43
 
75
- ### Insert files
76
-
77
- Inserting an examplary JSON file into lix:
78
-
79
- ```javascript
80
- const json = {
81
- name: "Hello World",
82
- version: "1.0.0",
83
- settings: {
84
- enableFeatureX: true,
85
- maxUsers: 10,
86
- },
87
- };
88
-
89
- // Insert the file
90
- const file = await lix.db
44
+ // 2) Write a file via SQL
45
+ await lix.db
91
46
  .insertInto("file")
92
47
  .values({
93
- path: "/example.json",
94
- data: new TextEncoder().encode(JSON.stringify(json)),
48
+ path: "/settings.json",
49
+ data: new TextEncoder().encode(JSON.stringify({ theme: "light" })),
95
50
  })
96
- .returningAll()
97
- .executeTakeFirstOrThrow();
98
-
99
- console.log("JSON file inserted with ID:", file.id);
100
- ```
101
-
102
- ### Update Files
103
-
104
- Let's update our JSON file with some changes:
105
-
106
- ```diff
107
- {
108
- name: "Hello World",
109
- - version: "1.0.0",
110
- + version: "1.1.0",
111
- settings: {
112
- enableFeatureX: true,
113
- - maxUsers: 10,
114
- + maxUsers: 20,
115
- },
116
- };
117
- ```
118
-
119
- ```javascript
120
- // updating the json from the previous example
121
- json["version"] = "1.1.0";
122
- json["settings"]["maxUsers"] = 20;
123
-
124
- // Update the file
125
- await lix.db
126
- .updateTable("file")
127
- .set({
128
- data: new TextEncoder().encode(JSON.stringify(updatedJson)),
129
- })
130
- .where("path", "=", "/example.json")
131
- .execute();
132
-
133
- ```
134
-
135
- Lix detect changes in file updates via the [file-queue](https://github.com/opral/monorepo/tree/main/packages/lix/sdk/src/file-queue) and the provided plugin which detects changes.
136
-
137
- ### Query Changes
138
-
139
- Now we can query the changes that were made to the JSON file:
140
-
141
- ```javascript
142
- // Get all changes for this file
143
- const changes = await lix.db
144
- .selectFrom("change")
145
- .where("file_id", "=", file.id)
146
- .innerJoin("snapshot", "snapshot.id", "change.snapshot_id")
147
51
  .execute();
148
52
 
149
- console.log("Changes for the JSON file:", changes);
53
+ // 3) Query the changes
54
+ const diff = await selectWorkingDiff({ lix }).execute();
55
+ console.log(diff);
150
56
  ```
151
57
 
152
- ### Create and switch a version
153
-
154
- ```javascript
155
- const versionB = await createVersion({ lix, name: "B" });
156
-
157
- // Create a new version based on the parent version
158
- await switchVersion({ lix, to: versionB });
159
-
160
- console.log("New version created:", versionB.id);
161
- ```
162
-
163
- ### Querying changes in a specific version
164
-
165
- We'll update the JSON again by bumping the version to 1.2.0 with a new maxUsers count of 30:
166
-
167
- ```diff
168
- {
169
- name: "Hello World",
170
- - version: "1.1.0",
171
- + version: "1.2.0",
172
- settings: {
173
- enableFeatureX: true,
174
- - maxUsers: 20,
175
- + maxUsers: 30,
176
- },
177
- };
178
- ```
179
-
180
- Querying changes in a specific version is simple by using the `changeInVersion()` filter:
181
-
182
- ```javascript
183
- import { createChange } from "@lix-js/sdk";
184
-
185
- const changes = await lix.db
186
- .selectFrom("change")
187
- .where("file_id", "=", file.id)
188
- .where(changeInVersion(versionB))
189
- .innerJoin("snapshot", "snapshot.id", "change.snapshot_id")
190
- .execute();
191
-
192
- console.log(
193
- `Changes for the JSON file in version ${versionB.name}:`, changes
194
- );
195
- ```
196
-
197
- ### Querying a file
198
-
199
- The file table is derived from the changes in the current version. Hence, querying the file after updating the json in the previous step will return the updated file:
200
-
201
- ```ts
202
- const file = await lix.db
203
- .selectFrom("file")
204
- .where("path", "=", "/example.json")
205
- .selectAll()
206
- .executeTakeFirstOrThrow();
207
-
208
- console.log(file)
209
- ```
210
-
211
- ```json
212
- {
213
- "name": "Hello World",
214
- "version": "1.2.0",
215
- "settings": {
216
- "enableFeatureX": true,
217
- "maxUsers": 30,
218
- },
219
- }
220
- ```
221
-
222
- ### Switch Back
223
-
224
- Switch back to version A and you will see that the changes of version B are not present:
225
-
226
- ```javascript
227
- await switchVersion({ lix, to: versionA })
228
-
229
- console.log("Switched to version: main");
230
-
231
- // Get the file data in this version
232
- const originalFile = lix.db
233
- .selectFrom("file")
234
- .where("path", "=", "/example.json")
235
- .selectAll()
236
- .executeTakeFirstOrThrow();
237
-
238
- const originalContent = JSON.parse(originalFile.content);
239
- console.log("Original content in main version:", originalContent);
240
- ```
241
-
242
- ```json
243
- {
244
- "name": "Hello World",
245
- "version": "1.1.0",
246
- "settings": {
247
- "enableFeatureX": true,
248
- "maxUsers": 20,
249
- },
250
- }
251
- ```
252
-
253
- ### Merge Changes
254
-
255
- Merge changes from version B into version A:
256
-
257
- ```javascript
258
- await mergeVersion({lix, sourceVersion: versionB, targetVersion: versionA});
259
-
260
- // Check the merged state
261
- const file_after_merge = lix.db
262
- .selectFrom("file")
263
- .where("id", "=", file.id)
264
- .select("data")
265
- .executeTakeFirstOrThrow();
266
-
267
- console.log("File state after merge:", JSON.parse(file_after_merge.data));
268
- ```
269
-
270
- ```json
271
- {
272
- "name": "Hello World",
273
- "version": "1.2.0",
274
- "settings": {
275
- "enableFeatureX": true,
276
- "maxUsers": 30,
277
- },
278
- }
279
- ```
280
-
281
- ## Plugins
282
-
283
- Lix uses plugins to understand and track changes in different file formats. Documentation is work in progress. Find example plugins here:
284
-
285
- - [JSON Plugin](https://github.com/opral/monorepo/tree/main/packages/lix-plugin-json)
286
- - [CSV plugin](https://github.com/opral/monorepo/tree/main/packages/lix-plugin-csv)
287
-
288
- ## Building apps
289
-
290
- ### Example use cases
291
-
292
- Apps that revolve around changes are prime use cases to be built on lix. Having an “edit -> review -> automate” workflow is a good indicator for an app that revolves around changes:
293
-
294
- - document editors (markdown, PDF, etc.)
295
- - accounting solutions (auditing)
296
- - content creation tools (Figma, Adobe Premiere)
297
- - spreadsheets (Excel, Google Sheets)
298
- - CAD software (Fusion 360, Autodesk)
299
- - data science (Jupyter Notebooks)
300
- - dashboards (Analytics, Infrastructure)
301
-
302
- ### Advantages
303
-
304
- Developing a web app with lix is reduced to providing a user interface that opens and saves a file.
305
-
306
- ![Open a file, provide a UI, done](https://cdn.jsdelivr.net/gh/opral/monorepo/packages/lix/sdk/assets/open_file.png)
307
-
308
- Backend features like auth, permissions, change control, and automations are solved on a file rather than an application-specific level. Lix knows who the actors are (auth), allows actors to conduct changes (permissions), is aware of how data changes over time (change history), can merge changes (collaboration), and uses the knowledge of changes to trigger automations (automation pipelines).
58
+ ## Learn More
309
59
 
310
- ![Backend features for files](https://cdn.jsdelivr.net/gh/opral/monorepo/packages/lix/sdk/assets/backend_features_to_files.png)
60
+ - **[Getting Started Guide](https://lix.dev/docs/getting-started)** - Build your first app with Lix
61
+ - **[Documentation](https://lix.dev/docs)** - Full API reference and guides
62
+ - **[Discord](https://discord.gg/gdMPPWy57R)** - Get help and join the community
63
+ - **[GitHub](https://github.com/opral/lix-sdk)** - Report issues and contribute
311
64
 
312
- In contrast, cloud-based apps are substantially more difficult to build because they require:
65
+ ## License
313
66
 
314
- - Auth (could be solved with a backend as a service)
315
- - Integrations (no interop between apps)
316
- - Ensure data privacy and security
317
- - Scaling complexity of storing all customer data
318
- - Replicating change control features like history, branching, etc.
67
+ [MIT](https://github.com/opral/monorepo/blob/main/packages/lix/sdk/LICENSE)
@@ -1 +1 @@
1
- {"version":3,"file":"load-from-string.d.ts","sourceRoot":"","sources":["../../src/environment/load-from-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAWzD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAiE3E"}
1
+ {"version":3,"file":"load-from-string.d.ts","sourceRoot":"","sources":["../../src/environment/load-from-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgBzD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqE3E"}
@@ -4,6 +4,11 @@
4
4
  * Uses a Blob URL + dynamic import. Requires a browser/worker environment
5
5
  * with Blob and URL.createObjectURL support. In Node, falls back to data: URL
6
6
  * with base64 encoding via global Buffer.
7
+ *
8
+ * @example
9
+ * const pluginCode = "export const plugin = { id: 'demo', name: 'Demo' };";
10
+ * const plugin = await loadPluginFromString(pluginCode);
11
+ * console.log(plugin.id); // "demo"
7
12
  */
8
13
  let __lixInlinePluginCounter = 0;
9
14
  export async function loadPluginFromString(code) {
@@ -17,7 +22,8 @@ export async function loadPluginFromString(code) {
17
22
  const base64 = BufferAny.from(code, "utf-8").toString("base64");
18
23
  const dataUrl = `data:text/javascript;base64,${base64}`;
19
24
  try {
20
- const mod = await import(/* @vite-ignore */ dataUrl);
25
+ const mod = await import(
26
+ /* @vite-ignore */ /* webpackIgnore: true */ dataUrl);
21
27
  return (mod.plugin ?? mod.default ?? mod);
22
28
  }
23
29
  catch (e) {
@@ -40,7 +46,8 @@ export async function loadPluginFromString(code) {
40
46
  const blob = new Blob([withSourceURL], { type: "application/javascript" });
41
47
  const url = URL.createObjectURL(blob);
42
48
  try {
43
- const mod = await import(/* @vite-ignore */ url);
49
+ const mod = await import(
50
+ /* @vite-ignore */ /* webpackIgnore: true */ url);
44
51
  return (mod.plugin ?? mod.default ?? mod);
45
52
  }
46
53
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"load-from-string.js","sourceRoot":"","sources":["../../src/environment/load-from-string.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-from-string.js","sourceRoot":"","sources":["../../src/environment/load-from-string.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import type { LixEngine } from "../../engine/boot.js";
2
2
  import { type LixFileDescriptor } from "./schema-definition.js";
3
+ /**
4
+ * Applies file-related database schema, including the file_history view.
5
+ *
6
+ * Consumers of file_history should always scope queries with
7
+ * lixcol_root_commit_id (and typically lixcol_depth = 0) to avoid mixing
8
+ * multiple timelines in one result set.
9
+ */
3
10
  export declare function applyFileDatabaseSchema(args: {
4
11
  engine: LixEngine;
5
12
  }): void;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/filesystem/file/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQtD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAwmBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,MAAM,OAAO,GAAG,iBAAiB,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/filesystem/file/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQtD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CA2mBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,MAAM,OAAO,GAAG,iBAAiB,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACjB,CAAC"}
@@ -5,6 +5,13 @@ import { selectFileData } from "./select-file-data.js";
5
5
  import { selectFileLixcol } from "./select-file-lixcol.js";
6
6
  import { composeFilePathFromDescriptor, composeFilePathAtCommit, } from "./descriptor-utils.js";
7
7
  import {} from "./schema-definition.js";
8
+ /**
9
+ * Applies file-related database schema, including the file_history view.
10
+ *
11
+ * Consumers of file_history should always scope queries with
12
+ * lixcol_root_commit_id (and typically lixcol_depth = 0) to avoid mixing
13
+ * multiple timelines in one result set.
14
+ */
8
15
  export function applyFileDatabaseSchema(args) {
9
16
  const engine = args.engine;
10
17
  // applied in databse itself before state because commit
@@ -429,7 +436,10 @@ export function applyFileDatabaseSchema(args) {
429
436
  AND version_id = OLD.lixcol_version_id;
430
437
  END;
431
438
 
432
- CREATE VIEW IF NOT EXISTS file_history AS
439
+ -- file_history exposes file snapshots per commit. When querying, always filter by
440
+ -- lixcol_root_commit_id (and usually lixcol_depth = 0) to scope results to a single
441
+ -- checkpoint/root commit and avoid mixing multiple timelines in one result set.
442
+ CREATE VIEW IF NOT EXISTS file_history AS
433
443
  WITH
434
444
  -- Inline entity views to avoid preprocessor dependencies
435
445
  _commit_by_version AS (
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/filesystem/file/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/filesystem/file/schema.ts"],"names":[],"mappings":"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"}
@@ -35,13 +35,26 @@ export type Lix = {
35
35
  * Serialises the Lix into a {@link Blob}.
36
36
  *
37
37
  * Use this helper to persist the current state to disk or send it to a
38
- * server. The blob contains the raw SQLite file representing the Lix
39
- * project.
38
+ * server. By convention, persisted Lix files use the `.lix` extension.
39
+ *
40
+ * @example Persist to disk in Node
41
+ *
42
+ * ```ts
43
+ * import { writeFile } from "node:fs/promises";
44
+ * const blob = await lix.toBlob();
45
+ * await writeFile("repo.lix", Buffer.from(await blob.arrayBuffer()));
46
+ * ```
47
+ *
48
+ * @example Trigger a browser download
40
49
  *
41
- * @example
42
50
  * ```ts
43
- * const blob = await lix.toBlob()
44
- * download(blob)
51
+ * const blob = await lix.toBlob();
52
+ * const url = URL.createObjectURL(blob);
53
+ * const a = document.createElement("a");
54
+ * a.href = url;
55
+ * a.download = "repo.lix";
56
+ * a.click();
57
+ * URL.revokeObjectURL(url);
45
58
  * ```
46
59
  */
47
60
  toBlob: () => Promise<Blob>;
@@ -1 +1 @@
1
- {"version":3,"file":"open-lix.d.ts","sourceRoot":"","sources":["../../src/lix/open-lix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,MAAM,MAAM,GAAG,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC9B,MAAM,EAAE;QACP,MAAM,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;KACnC,CAAC;IACF;;;;;OAKG;IACH,KAAK,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IAE1C;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE;IACnC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAE7B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;CAC7C,GAAG,OAAO,CAAC,GAAG,CAAC,CAwFf;AA8CD;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAC3B,OAAO,CAAC,GAAG,CAAC,CAwBd"}
1
+ {"version":3,"file":"open-lix.d.ts","sourceRoot":"","sources":["../../src/lix/open-lix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,MAAM,MAAM,GAAG,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC9B,MAAM,EAAE;QACP,MAAM,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;KACnC,CAAC;IACF;;;;;OAKG;IACH,KAAK,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IAE1C;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE;IACnC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAE7B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;CAC7C,GAAG,OAAO,CAAC,GAAG,CAAC,CAwFf;AA8CD;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAC3B,OAAO,CAAC,GAAG,CAAC,CAwBd"}
@@ -1 +1 @@
1
- {"version":3,"file":"open-lix.js","sourceRoot":"","sources":["../../src/lix/open-lix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-lix.js","sourceRoot":"","sources":["../../src/lix/open-lix.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-observe.d.ts","sourceRoot":"","sources":["../../src/observe/create-observe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,cAAc,CAAC;CAC1C;AA+DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAuC5B,CAAC,EACxB,OAAO,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EACtC,UAAS,cAAkC,KACzC,aAAa,CAAC,CAAC,CAAC,CA0KnB"}
1
+ {"version":3,"file":"create-observe.d.ts","sourceRoot":"","sources":["../../src/observe/create-observe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,cAAc,CAAC;CAC1C;AA+DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAuC5B,CAAC,EACxB,OAAO,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EACtC,UAAS,cAAkC,KACzC,aAAa,CAAC,CAAC,CAAC,CAmMnB"}
@@ -149,6 +149,13 @@ export function createObserve(lix) {
149
149
  const filters = extractLiteralFilters(recompiled);
150
150
  const watchedVersions = new Set(filters.versionIds);
151
151
  const watchedEntityIds = new Set(filters.entityIds);
152
+ const watchedFileIds = new Set(filters.fileIds);
153
+ const targetsFileTable = schemaKeys.includes("lix_file_descriptor");
154
+ const previousFileIds = targetsFileTable && previousResult
155
+ ? new Set(previousResult
156
+ .map((row) => row?.file_id ?? row?.id)
157
+ .filter((id) => typeof id === "string"))
158
+ : new Set();
152
159
  const targetsActiveVersion = watchedVersions.size === 0 &&
153
160
  (schemaKeys.includes("state") ||
154
161
  schemaKeys.some((key) => entityViewSchemaKeys.has(key)));
@@ -180,6 +187,18 @@ export function createObserve(lix) {
180
187
  const schemaKey = change[2] || change.schema_key;
181
188
  const changeVid = change.lixcol_version_id ||
182
189
  change.version_id;
190
+ const changeFileId = change.file_id;
191
+ // File reads depend on all schema keys touching the same file id.
192
+ if (targetsFileTable && changeFileId) {
193
+ if (watchedFileIds.size > 0 && watchedFileIds.has(changeFileId)) {
194
+ return true;
195
+ }
196
+ if (watchedFileIds.size === 0 &&
197
+ previousFileIds.size > 0 &&
198
+ previousFileIds.has(changeFileId)) {
199
+ return true;
200
+ }
201
+ }
183
202
  // Special case: queries with 'change' schema should always re-execute
184
203
  if (schemaKeys.includes("change")) {
185
204
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"create-observe.js","sourceRoot":"","sources":["../../src/observe/create-observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-observe.js","sourceRoot":"","sources":["../../src/observe/create-observe.ts"],"names":[],"mappings":"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"}