@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.
- package/README.md +38 -289
- package/dist/environment/load-from-string.d.ts.map +1 -1
- package/dist/environment/load-from-string.js +9 -2
- package/dist/environment/load-from-string.js.map +1 -1
- package/dist/filesystem/file/schema.d.ts +7 -0
- package/dist/filesystem/file/schema.d.ts.map +1 -1
- package/dist/filesystem/file/schema.js +11 -1
- package/dist/filesystem/file/schema.js.map +1 -1
- package/dist/lix/open-lix.d.ts +18 -5
- package/dist/lix/open-lix.d.ts.map +1 -1
- package/dist/lix/open-lix.js.map +1 -1
- package/dist/observe/create-observe.d.ts.map +1 -1
- package/dist/observe/create-observe.js +19 -0
- package/dist/observe/create-observe.js.map +1 -1
- package/dist/observe/create-observe.test.js +73 -0
- package/dist/observe/create-observe.test.js.map +1 -1
- package/dist/observe/determine-schema-keys.d.ts +1 -0
- package/dist/observe/determine-schema-keys.d.ts.map +1 -1
- package/dist/observe/determine-schema-keys.js +110 -37
- package/dist/observe/determine-schema-keys.js.map +1 -1
- package/dist/observe/determine-schema-keys.test.js +23 -0
- package/dist/observe/determine-schema-keys.test.js.map +1 -1
- package/dist/services/env-variables/index.d.ts +1 -1
- package/dist/services/env-variables/index.js +2 -2
- package/dist/services/env-variables/index.js.map +1 -1
- package/dist/state-history/schema.test.js +1 -1
- package/dist/state-history/schema.test.js.map +1 -1
- package/package.json +3 -3
- package/src/environment/load-from-string.ts +11 -2
- package/src/filesystem/file/schema.ts +11 -1
- package/src/lix/open-lix.ts +18 -5
- package/src/observe/create-observe.test.ts +89 -0
- package/src/observe/create-observe.ts +25 -0
- package/src/observe/determine-schema-keys.test.ts +31 -0
- package/src/observe/determine-schema-keys.ts +136 -37
- package/src/state-history/schema.test.ts +1 -1
- package/src/database/sqlite/sqlite-wasm-binary.js +0 -42835
package/README.md
CHANGED
|
@@ -1,318 +1,67 @@
|
|
|
1
|
-
|
|
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
|
-
[](https://www.npmjs.com/package/@lix-js/sdk) [](https://discord.gg/xjQA897RyK)
|
|
10
|
-
|
|
1
|
+
# Lix JS SDK
|
|
11
2
|
|
|
12
|
-
](https://www.npmjs.com/package/@lix-js/sdk) [](https://discord.gg/gdMPPWy57R) [](https://x.com/lixCCS)
|
|
13
4
|
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
10
|
+
**What makes Lix unique:**
|
|
25
11
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
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
|
-
|
|
16
|
+
---
|
|
34
17
|
|
|
35
|
-
|
|
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
|
-
|
|
20
|
+
---
|
|
39
21
|
|
|
40
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
|
69
|
-
const lix = await
|
|
70
|
-
|
|
71
|
-
providePlugins: [
|
|
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
|
-
|
|
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: "/
|
|
94
|
-
data: new TextEncoder().encode(JSON.stringify(
|
|
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
|
-
|
|
53
|
+
// 3) Query the changes
|
|
54
|
+
const diff = await selectWorkingDiff({ lix }).execute();
|
|
55
|
+
console.log(diff);
|
|
150
56
|
```
|
|
151
57
|
|
|
152
|
-
|
|
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
|
-

|
|
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
|
-
|
|
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
|
-
|
|
65
|
+
## License
|
|
313
66
|
|
|
314
|
-
|
|
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;
|
|
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(
|
|
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(
|
|
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":"AAEA
|
|
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,
|
|
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
|
-
|
|
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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"}
|
package/dist/lix/open-lix.d.ts
CHANGED
|
@@ -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.
|
|
39
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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"}
|
package/dist/lix/open-lix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-lix.js","sourceRoot":"","sources":["../../src/lix/open-lix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAA0B,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;
|
|
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,
|
|
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":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACN,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CACnC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CACpE,CAAC;AAgBF;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,OAA4B;IACzD,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,YAAY;YAAE,SAAS;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAEhB,CAAC;QACT,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YAC3D,CAAC,CAAC,QAAS,CAAC,iBAAiB,CAAC,MAAM,CAClC,CAAC,MAAM,EAAoB,EAAE,CAC5B,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAChD;YACF,CAAC,CAAC,EAAE,CAAC;QACN,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAED,IAAI,0BAA0B,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,iBAAiB;YAAE,SAAS;QACtD,MAAM,QAAQ,GAAI,MAAM,CAAC,gBAAwB,EAAE,SAAS,CAAC;QAC7D,IACC,OAAO,QAAQ,KAAK,QAAQ;YAC5B,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,EACvC,CAAC;YACF,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAI,CAAM,EAAE,CAAM;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAExC,4CAA4C;IAC5C,6EAA6E;IAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAuB;IACpD,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAwC,CAAC;IAE9E,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,SAAS,OAAO,CACtB,KAAsC,EACtC,UAA0B,EAAE,IAAI,EAAE,OAAO,EAAE;QAE3C,wEAAwE;QACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAEjF,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAiC,CAAC;QACnE,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAQ9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC/C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,cAA+B,CAAC;QACpC,IAAI,0BAAoD,CAAC;QAEzD,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,EAAE;YAChC,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,8BAA8B;QAC9B,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,IAAI,CAAC;gBACJ,6DAA6D;gBAC7D,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;oBACjD,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAQ,CAAC;gBACxC,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,MAAM,IAAI,GAAG,MAAa,CAAC;gBAC3B,MAAM,OAAO,GACZ,CAAC,cAAc,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC3D,IAAI,OAAO,EAAE,CAAC;oBACb,cAAc,GAAG,IAAI,CAAC;oBACtB,UAAU,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,WAAW,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,CAAC,IAAsC,EAAE,EAAE;YAClE,0CAA0C;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAEnC,uDAAuD;YACvD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC;YACb,CAAC;YAED,6CAA6C;YAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,oBAAoB,GACzB,eAAe,CAAC,IAAI,KAAK,CAAC;gBAC1B,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC5B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAE3D,4DAA4D;YAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,qEAAqE;YACrE,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBACpC,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC;YACF,CAAC;YAED,4EAA4E;YAC5E,IACC,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,oBAAoB,CAAC,EACnE,CAAC;gBACF,OAAO,IAAI,CAAC;YACb,CAAC;YAED,qEAAqE;YACrE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE;gBACnC,kFAAkF;gBAClF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC;gBACjD,MAAM,SAAS,GACb,MAAM,CAAC,iBAAwC;oBAC/C,MAAM,CAAC,UAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-observe.js","sourceRoot":"","sources":["../../src/observe/create-observe.ts"],"names":[],"mappings":"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"}
|