@lix-js/sdk 0.6.0-preview.0 → 0.6.0-preview.2
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 +9 -0
- package/SKILL.md +468 -0
- package/dist/engine-wasm/index.d.ts +15 -11
- package/dist/engine-wasm/index.js +105 -38
- package/dist/engine-wasm/wasm/lix_engine.d.ts +14 -2
- package/dist/engine-wasm/wasm/lix_engine.js +18 -17
- package/dist/engine-wasm/wasm/lix_engine.wasm +0 -0
- package/dist/engine-wasm/wasm/lix_engine.wasm.d.ts +2 -1
- package/dist/generated/builtin-schemas.d.ts +31 -41
- package/dist/generated/builtin-schemas.js +52 -56
- package/dist/open-lix.d.ts +141 -24
- package/dist/open-lix.js +199 -35
- package/dist/sqlite/index.js +99 -22
- package/dist-engine-src/README.md +18 -0
- package/dist-engine-src/src/backend/kv.rs +358 -0
- package/dist-engine-src/src/backend/mod.rs +12 -0
- package/dist-engine-src/src/backend/testing.rs +658 -0
- package/dist-engine-src/src/backend/types.rs +96 -0
- package/dist-engine-src/src/binary_cas/chunking.rs +31 -0
- package/dist-engine-src/src/binary_cas/codec.rs +346 -0
- package/dist-engine-src/src/binary_cas/context.rs +139 -0
- package/dist-engine-src/src/binary_cas/kv.rs +1063 -0
- package/dist-engine-src/src/binary_cas/mod.rs +11 -0
- package/dist-engine-src/src/binary_cas/types.rs +127 -0
- package/dist-engine-src/src/cel/context.rs +86 -0
- package/dist-engine-src/src/cel/error.rs +19 -0
- package/dist-engine-src/src/cel/mod.rs +8 -0
- package/dist-engine-src/src/cel/provider.rs +9 -0
- package/dist-engine-src/src/cel/runtime.rs +167 -0
- package/dist-engine-src/src/cel/value.rs +50 -0
- package/dist-engine-src/src/changelog/codec.rs +321 -0
- package/dist-engine-src/src/changelog/context.rs +92 -0
- package/dist-engine-src/src/changelog/materialization.rs +121 -0
- package/dist-engine-src/src/changelog/mod.rs +13 -0
- package/dist-engine-src/src/changelog/reader.rs +20 -0
- package/dist-engine-src/src/changelog/storage.rs +220 -0
- package/dist-engine-src/src/changelog/types.rs +38 -0
- package/dist-engine-src/src/commit_graph/context.rs +1588 -0
- package/dist-engine-src/src/commit_graph/mod.rs +12 -0
- package/dist-engine-src/src/commit_graph/types.rs +145 -0
- package/dist-engine-src/src/commit_graph/walker.rs +780 -0
- package/dist-engine-src/src/common/error.rs +313 -0
- package/dist-engine-src/src/common/fingerprint.rs +3 -0
- package/dist-engine-src/src/common/fs_path.rs +1336 -0
- package/dist-engine-src/src/common/identity.rs +135 -0
- package/dist-engine-src/src/common/metadata.rs +35 -0
- package/dist-engine-src/src/common/mod.rs +23 -0
- package/dist-engine-src/src/common/types.rs +105 -0
- package/dist-engine-src/src/common/wire.rs +222 -0
- package/dist-engine-src/src/engine.rs +239 -0
- package/dist-engine-src/src/entity_identity.rs +285 -0
- package/dist-engine-src/src/functions/context.rs +327 -0
- package/dist-engine-src/src/functions/deterministic.rs +113 -0
- package/dist-engine-src/src/functions/mod.rs +18 -0
- package/dist-engine-src/src/functions/provider.rs +130 -0
- package/dist-engine-src/src/functions/state.rs +363 -0
- package/dist-engine-src/src/functions/types.rs +37 -0
- package/dist-engine-src/src/init.rs +505 -0
- package/dist-engine-src/src/json_store/compression.rs +77 -0
- package/dist-engine-src/src/json_store/context.rs +129 -0
- package/dist-engine-src/src/json_store/encoded.rs +15 -0
- package/dist-engine-src/src/json_store/mod.rs +9 -0
- package/dist-engine-src/src/json_store/store.rs +236 -0
- package/dist-engine-src/src/json_store/types.rs +52 -0
- package/dist-engine-src/src/lib.rs +61 -0
- package/dist-engine-src/src/live_state/context.rs +2241 -0
- package/dist-engine-src/src/live_state/mod.rs +15 -0
- package/dist-engine-src/src/live_state/overlay.rs +75 -0
- package/dist-engine-src/src/live_state/reader.rs +23 -0
- package/dist-engine-src/src/live_state/types.rs +239 -0
- package/dist-engine-src/src/live_state/visibility.rs +218 -0
- package/dist-engine-src/src/plugin/archive.rs +441 -0
- package/dist-engine-src/src/plugin/component.rs +183 -0
- package/dist-engine-src/src/plugin/install.rs +637 -0
- package/dist-engine-src/src/plugin/manifest.rs +516 -0
- package/dist-engine-src/src/plugin/materializer.rs +477 -0
- package/dist-engine-src/src/plugin/mod.rs +33 -0
- package/dist-engine-src/src/plugin/plugin_manifest.json +119 -0
- package/dist-engine-src/src/plugin/storage.rs +74 -0
- package/dist-engine-src/src/schema/annotations/defaults.rs +280 -0
- package/dist-engine-src/src/schema/annotations/mod.rs +1 -0
- package/dist-engine-src/src/schema/builtin/lix_account.json +22 -0
- package/dist-engine-src/src/schema/builtin/lix_active_account.json +30 -0
- package/dist-engine-src/src/schema/builtin/lix_binary_blob_ref.json +30 -0
- package/dist-engine-src/src/schema/builtin/lix_change.json +62 -0
- package/dist-engine-src/src/schema/builtin/lix_change_author.json +46 -0
- package/dist-engine-src/src/schema/builtin/lix_change_set.json +18 -0
- package/dist-engine-src/src/schema/builtin/lix_change_set_element.json +75 -0
- package/dist-engine-src/src/schema/builtin/lix_commit.json +62 -0
- package/dist-engine-src/src/schema/builtin/lix_commit_edge.json +46 -0
- package/dist-engine-src/src/schema/builtin/lix_directory_descriptor.json +53 -0
- package/dist-engine-src/src/schema/builtin/lix_entity_label.json +63 -0
- package/dist-engine-src/src/schema/builtin/lix_file_descriptor.json +53 -0
- package/dist-engine-src/src/schema/builtin/lix_key_value.json +41 -0
- package/dist-engine-src/src/schema/builtin/lix_label.json +22 -0
- package/dist-engine-src/src/schema/builtin/lix_registered_schema.json +31 -0
- package/dist-engine-src/src/schema/builtin/lix_version_descriptor.json +35 -0
- package/dist-engine-src/src/schema/builtin/lix_version_ref.json +49 -0
- package/dist-engine-src/src/schema/builtin/mod.rs +271 -0
- package/dist-engine-src/src/schema/definition.json +157 -0
- package/dist-engine-src/src/schema/definition.rs +636 -0
- package/dist-engine-src/src/schema/key.rs +206 -0
- package/dist-engine-src/src/schema/mod.rs +20 -0
- package/dist-engine-src/src/schema/seed.rs +14 -0
- package/dist-engine-src/src/schema/tests.rs +739 -0
- package/dist-engine-src/src/schema_registry.rs +294 -0
- package/dist-engine-src/src/session/context.rs +366 -0
- package/dist-engine-src/src/session/create_version.rs +80 -0
- package/dist-engine-src/src/session/execute.rs +447 -0
- package/dist-engine-src/src/session/merge/analysis.rs +102 -0
- package/dist-engine-src/src/session/merge/apply.rs +23 -0
- package/dist-engine-src/src/session/merge/conflicts.rs +62 -0
- package/dist-engine-src/src/session/merge/mod.rs +11 -0
- package/dist-engine-src/src/session/merge/stats.rs +65 -0
- package/dist-engine-src/src/session/merge/version.rs +437 -0
- package/dist-engine-src/src/session/mod.rs +25 -0
- package/dist-engine-src/src/session/switch_version.rs +121 -0
- package/dist-engine-src/src/sql2/change_provider.rs +337 -0
- package/dist-engine-src/src/sql2/classify.rs +147 -0
- package/dist-engine-src/src/sql2/commit_derived_provider.rs +591 -0
- package/dist-engine-src/src/sql2/context.rs +307 -0
- package/dist-engine-src/src/sql2/directory_history_provider.rs +623 -0
- package/dist-engine-src/src/sql2/directory_provider.rs +2405 -0
- package/dist-engine-src/src/sql2/dml.rs +148 -0
- package/dist-engine-src/src/sql2/entity_history_provider.rs +444 -0
- package/dist-engine-src/src/sql2/entity_provider.rs +2700 -0
- package/dist-engine-src/src/sql2/error.rs +196 -0
- package/dist-engine-src/src/sql2/execute.rs +3379 -0
- package/dist-engine-src/src/sql2/file_history_provider.rs +902 -0
- package/dist-engine-src/src/sql2/file_provider.rs +3254 -0
- package/dist-engine-src/src/sql2/filesystem_planner.rs +1526 -0
- package/dist-engine-src/src/sql2/filesystem_predicates.rs +159 -0
- package/dist-engine-src/src/sql2/filesystem_visibility.rs +369 -0
- package/dist-engine-src/src/sql2/history_projection.rs +80 -0
- package/dist-engine-src/src/sql2/history_provider.rs +418 -0
- package/dist-engine-src/src/sql2/history_route.rs +643 -0
- package/dist-engine-src/src/sql2/lix_state_provider.rs +2430 -0
- package/dist-engine-src/src/sql2/mod.rs +43 -0
- package/dist-engine-src/src/sql2/read_only.rs +65 -0
- package/dist-engine-src/src/sql2/record_batch.rs +17 -0
- package/dist-engine-src/src/sql2/result_metadata.rs +29 -0
- package/dist-engine-src/src/sql2/runtime.rs +60 -0
- package/dist-engine-src/src/sql2/session.rs +135 -0
- package/dist-engine-src/src/sql2/udfs/common.rs +295 -0
- package/dist-engine-src/src/sql2/udfs/lix_active_version_commit_id.rs +53 -0
- package/dist-engine-src/src/sql2/udfs/lix_empty_blob.rs +47 -0
- package/dist-engine-src/src/sql2/udfs/lix_json.rs +100 -0
- package/dist-engine-src/src/sql2/udfs/lix_json_get.rs +99 -0
- package/dist-engine-src/src/sql2/udfs/lix_json_get_text.rs +99 -0
- package/dist-engine-src/src/sql2/udfs/lix_text_decode.rs +82 -0
- package/dist-engine-src/src/sql2/udfs/lix_text_encode.rs +85 -0
- package/dist-engine-src/src/sql2/udfs/lix_uuid_v7.rs +76 -0
- package/dist-engine-src/src/sql2/udfs/mod.rs +82 -0
- package/dist-engine-src/src/sql2/version_provider.rs +1187 -0
- package/dist-engine-src/src/sql2/version_scope.rs +394 -0
- package/dist-engine-src/src/sql2/write_normalization.rs +345 -0
- package/dist-engine-src/src/storage/context.rs +356 -0
- package/dist-engine-src/src/storage/mod.rs +14 -0
- package/dist-engine-src/src/storage/read_scope.rs +88 -0
- package/dist-engine-src/src/storage/types.rs +501 -0
- package/dist-engine-src/src/storage_bench.rs +3406 -0
- package/dist-engine-src/src/test_support.rs +81 -0
- package/dist-engine-src/src/tracked_state/by_file_index.rs +102 -0
- package/dist-engine-src/src/tracked_state/codec.rs +747 -0
- package/dist-engine-src/src/tracked_state/context.rs +983 -0
- package/dist-engine-src/src/tracked_state/diff.rs +494 -0
- package/dist-engine-src/src/tracked_state/materialization.rs +141 -0
- package/dist-engine-src/src/tracked_state/merge.rs +474 -0
- package/dist-engine-src/src/tracked_state/mod.rs +31 -0
- package/dist-engine-src/src/tracked_state/rebuild.rs +771 -0
- package/dist-engine-src/src/tracked_state/storage.rs +243 -0
- package/dist-engine-src/src/tracked_state/tree.rs +2744 -0
- package/dist-engine-src/src/tracked_state/tree_types.rs +176 -0
- package/dist-engine-src/src/tracked_state/types.rs +61 -0
- package/dist-engine-src/src/transaction/commit.rs +1224 -0
- package/dist-engine-src/src/transaction/context.rs +1307 -0
- package/dist-engine-src/src/transaction/live_state_overlay.rs +34 -0
- package/dist-engine-src/src/transaction/mod.rs +11 -0
- package/dist-engine-src/src/transaction/normalization.rs +1026 -0
- package/dist-engine-src/src/transaction/schema_resolver.rs +127 -0
- package/dist-engine-src/src/transaction/staging.rs +1436 -0
- package/dist-engine-src/src/transaction/types.rs +351 -0
- package/dist-engine-src/src/transaction/validation.rs +4811 -0
- package/dist-engine-src/src/untracked_state/codec.rs +363 -0
- package/dist-engine-src/src/untracked_state/context.rs +82 -0
- package/dist-engine-src/src/untracked_state/materialization.rs +157 -0
- package/dist-engine-src/src/untracked_state/mod.rs +17 -0
- package/dist-engine-src/src/untracked_state/storage.rs +348 -0
- package/dist-engine-src/src/untracked_state/types.rs +96 -0
- package/dist-engine-src/src/version/context.rs +52 -0
- package/dist-engine-src/src/version/mod.rs +12 -0
- package/dist-engine-src/src/version/refs.rs +421 -0
- package/dist-engine-src/src/version/stage_rows.rs +71 -0
- package/dist-engine-src/src/version/types.rs +21 -0
- package/dist-engine-src/src/wasm/mod.rs +60 -0
- package/package.json +68 -63
|
@@ -52,30 +52,6 @@ export const LixActiveAccountSchema = {
|
|
|
52
52
|
],
|
|
53
53
|
"additionalProperties": false
|
|
54
54
|
};
|
|
55
|
-
export const LixActiveVersionSchema = {
|
|
56
|
-
"x-lix-key": "lix_active_version",
|
|
57
|
-
"x-lix-version": "1",
|
|
58
|
-
"description": "Singleton tracking which version is currently checked out in the local runtime. Exactly one row exists at all times; writing to this surface is how clients switch versions.",
|
|
59
|
-
"x-lix-primary-key": [
|
|
60
|
-
"/id"
|
|
61
|
-
],
|
|
62
|
-
"type": "object",
|
|
63
|
-
"properties": {
|
|
64
|
-
"id": {
|
|
65
|
-
"type": "string",
|
|
66
|
-
"description": "Fixed singleton key (constant, not a UUID); the primary-key column exists to satisfy entity-model requirements and enforces the one-row invariant."
|
|
67
|
-
},
|
|
68
|
-
"version_id": {
|
|
69
|
-
"type": "string",
|
|
70
|
-
"description": "The currently active version; references `lix_version_descriptor.id` and drives the default scope for reads and writes in the session."
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
"required": [
|
|
74
|
-
"id",
|
|
75
|
-
"version_id"
|
|
76
|
-
],
|
|
77
|
-
"additionalProperties": false
|
|
78
|
-
};
|
|
79
55
|
export const LixBinaryBlobRefSchema = {
|
|
80
56
|
"x-lix-key": "lix_binary_blob_ref",
|
|
81
57
|
"x-lix-version": "1",
|
|
@@ -109,7 +85,7 @@ export const LixBinaryBlobRefSchema = {
|
|
|
109
85
|
export const LixChangeSchema = {
|
|
110
86
|
"x-lix-key": "lix_change",
|
|
111
87
|
"x-lix-version": "1",
|
|
112
|
-
"description": "Canonical immutable change fact. This surface represents the authoritative stream of journaled change facts. Commit lineage and non-commit scope are modeled separately around these facts.
|
|
88
|
+
"description": "Canonical immutable change fact. This surface represents the authoritative stream of journaled change facts. Commit lineage and non-commit scope are modeled separately around these facts.",
|
|
113
89
|
"x-lix-primary-key": [
|
|
114
90
|
"/id"
|
|
115
91
|
],
|
|
@@ -139,13 +115,6 @@ export const LixChangeSchema = {
|
|
|
139
115
|
],
|
|
140
116
|
"description": "Filesystem-scoped file identifier when the change belongs to a file; NULL for engine-internal entities (commits, versions, settings)."
|
|
141
117
|
},
|
|
142
|
-
"plugin_key": {
|
|
143
|
-
"type": [
|
|
144
|
-
"string",
|
|
145
|
-
"null"
|
|
146
|
-
],
|
|
147
|
-
"description": "Plugin that authored the change; NULL for engine-internal changes."
|
|
148
|
-
},
|
|
149
118
|
"metadata": {
|
|
150
119
|
"type": [
|
|
151
120
|
"object",
|
|
@@ -157,10 +126,6 @@ export const LixChangeSchema = {
|
|
|
157
126
|
"type": "string",
|
|
158
127
|
"description": "ISO-8601 timestamp at which the change was recorded (set via `lix_timestamp()` at write time)."
|
|
159
128
|
},
|
|
160
|
-
"untracked": {
|
|
161
|
-
"type": "boolean",
|
|
162
|
-
"description": "Public convenience field indicating that the change currently participates in non-commit visibility rather than commit lineage. This is intended to become derived metadata rather than intrinsic canonical storage truth."
|
|
163
|
-
},
|
|
164
129
|
"snapshot_content": {
|
|
165
130
|
"type": [
|
|
166
131
|
"object",
|
|
@@ -175,9 +140,7 @@ export const LixChangeSchema = {
|
|
|
175
140
|
"schema_key",
|
|
176
141
|
"schema_version",
|
|
177
142
|
"file_id",
|
|
178
|
-
"
|
|
179
|
-
"created_at",
|
|
180
|
-
"untracked"
|
|
143
|
+
"created_at"
|
|
181
144
|
],
|
|
182
145
|
"additionalProperties": false
|
|
183
146
|
};
|
|
@@ -248,7 +211,7 @@ export const LixChangeSetSchema = {
|
|
|
248
211
|
export const LixChangeSetElementSchema = {
|
|
249
212
|
"x-lix-key": "lix_change_set_element",
|
|
250
213
|
"x-lix-version": "1",
|
|
251
|
-
"description": "Derived relational index mapping a change_set to the canonical changes
|
|
214
|
+
"description": "Derived relational index mapping a change_set to the canonical changes introduced by its commit relative to the commit's first parent. Rebuildable from `lix_commit.change_ids` plus the referenced `lix_change` rows; the unique constraint enforces at most one change per (entity, schema, file) tuple within a single change_set.",
|
|
252
215
|
"x-lix-primary-key": [
|
|
253
216
|
"/change_set_id",
|
|
254
217
|
"/change_id"
|
|
@@ -293,7 +256,7 @@ export const LixChangeSetElementSchema = {
|
|
|
293
256
|
},
|
|
294
257
|
"change_id": {
|
|
295
258
|
"type": "string",
|
|
296
|
-
"description": "The canonical change
|
|
259
|
+
"description": "The canonical change introduced/adopted by the change_set's commit (references `lix_change.id`)."
|
|
297
260
|
},
|
|
298
261
|
"entity_id": {
|
|
299
262
|
"type": "string",
|
|
@@ -323,7 +286,7 @@ export const LixChangeSetElementSchema = {
|
|
|
323
286
|
export const LixCommitSchema = {
|
|
324
287
|
"x-lix-key": "lix_commit",
|
|
325
288
|
"x-lix-version": "1",
|
|
326
|
-
"description": "Commit header change. Canonical commit membership is stored in change_ids as the ordered list of
|
|
289
|
+
"description": "Commit header change. Canonical commit membership is stored in change_ids as the ordered list of canonical changes whose effects this commit introduces relative to its first parent. A merge commit may reference canonical changes originally authored in another parent instead of copying them. Derived projections such as lix_change_set_element must be rebuildable from this header plus the referenced change rows. Version head pointers such as lix_version_ref are maintained separately and are not commit members.",
|
|
327
290
|
"x-lix-primary-key": [
|
|
328
291
|
"/id"
|
|
329
292
|
],
|
|
@@ -357,7 +320,7 @@ export const LixCommitSchema = {
|
|
|
357
320
|
"items": {
|
|
358
321
|
"type": "string"
|
|
359
322
|
},
|
|
360
|
-
"description": "Canonical ordered membership list of non-header change IDs
|
|
323
|
+
"description": "Canonical ordered membership list of non-header change IDs whose effects this commit introduces relative to its first parent. Merge commits may reference existing changes from another parent instead of minting equivalent copies. Derived indexes such as lix_change_set_element must be rebuildable from this list. This does not include lix_version_ref pointer rows."
|
|
361
324
|
},
|
|
362
325
|
"author_account_ids": {
|
|
363
326
|
"type": "array",
|
|
@@ -440,6 +403,19 @@ export const LixDirectoryDescriptorSchema = {
|
|
|
440
403
|
"/name"
|
|
441
404
|
]
|
|
442
405
|
],
|
|
406
|
+
"x-lix-foreign-keys": [
|
|
407
|
+
{
|
|
408
|
+
"properties": [
|
|
409
|
+
"/parent_id"
|
|
410
|
+
],
|
|
411
|
+
"references": {
|
|
412
|
+
"schemaKey": "lix_directory_descriptor",
|
|
413
|
+
"properties": [
|
|
414
|
+
"/id"
|
|
415
|
+
]
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
],
|
|
443
419
|
"type": "object",
|
|
444
420
|
"properties": {
|
|
445
421
|
"id": {
|
|
@@ -540,10 +516,22 @@ export const LixFileDescriptorSchema = {
|
|
|
540
516
|
"x-lix-unique": [
|
|
541
517
|
[
|
|
542
518
|
"/directory_id",
|
|
543
|
-
"/name"
|
|
544
|
-
"/extension"
|
|
519
|
+
"/name"
|
|
545
520
|
]
|
|
546
521
|
],
|
|
522
|
+
"x-lix-foreign-keys": [
|
|
523
|
+
{
|
|
524
|
+
"properties": [
|
|
525
|
+
"/directory_id"
|
|
526
|
+
],
|
|
527
|
+
"references": {
|
|
528
|
+
"schemaKey": "lix_directory_descriptor",
|
|
529
|
+
"properties": [
|
|
530
|
+
"/id"
|
|
531
|
+
]
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
],
|
|
547
535
|
"type": "object",
|
|
548
536
|
"properties": {
|
|
549
537
|
"id": {
|
|
@@ -558,14 +546,7 @@ export const LixFileDescriptorSchema = {
|
|
|
558
546
|
},
|
|
559
547
|
"name": {
|
|
560
548
|
"type": "string",
|
|
561
|
-
"pattern": "^[^/\\\\]+$"
|
|
562
|
-
},
|
|
563
|
-
"extension": {
|
|
564
|
-
"type": [
|
|
565
|
-
"string",
|
|
566
|
-
"null"
|
|
567
|
-
],
|
|
568
|
-
"pattern": "^[^./\\\\]+$"
|
|
549
|
+
"pattern": "^(?!\\.{1,2}$)[^/\\\\]+$"
|
|
569
550
|
},
|
|
570
551
|
"hidden": {
|
|
571
552
|
"type": "boolean",
|
|
@@ -575,8 +556,7 @@ export const LixFileDescriptorSchema = {
|
|
|
575
556
|
"required": [
|
|
576
557
|
"id",
|
|
577
558
|
"directory_id",
|
|
578
|
-
"name"
|
|
579
|
-
"extension"
|
|
559
|
+
"name"
|
|
580
560
|
],
|
|
581
561
|
"additionalProperties": false
|
|
582
562
|
};
|
|
@@ -681,12 +661,17 @@ export const LixVersionDescriptorSchema = {
|
|
|
681
661
|
"x-lix-primary-key": [
|
|
682
662
|
"/id"
|
|
683
663
|
],
|
|
664
|
+
"x-lix-unique": [
|
|
665
|
+
[
|
|
666
|
+
"/name"
|
|
667
|
+
]
|
|
668
|
+
],
|
|
684
669
|
"type": "object",
|
|
685
670
|
"properties": {
|
|
686
671
|
"id": {
|
|
687
672
|
"type": "string",
|
|
688
673
|
"x-lix-default": "lix_uuid_v7()",
|
|
689
|
-
"description": "Stable version identifier (UUIDv7). Referenced by `lix_version_ref.id
|
|
674
|
+
"description": "Stable version identifier (UUIDv7). Referenced by `lix_version_ref.id`."
|
|
690
675
|
},
|
|
691
676
|
"name": {
|
|
692
677
|
"type": "string",
|
|
@@ -712,6 +697,17 @@ export const LixVersionRefSchema = {
|
|
|
712
697
|
"/id"
|
|
713
698
|
],
|
|
714
699
|
"x-lix-foreign-keys": [
|
|
700
|
+
{
|
|
701
|
+
"properties": [
|
|
702
|
+
"/id"
|
|
703
|
+
],
|
|
704
|
+
"references": {
|
|
705
|
+
"schemaKey": "lix_version_descriptor",
|
|
706
|
+
"properties": [
|
|
707
|
+
"/id"
|
|
708
|
+
]
|
|
709
|
+
}
|
|
710
|
+
},
|
|
715
711
|
{
|
|
716
712
|
"properties": [
|
|
717
713
|
"/commit_id"
|
package/dist/open-lix.d.ts
CHANGED
|
@@ -3,19 +3,34 @@ export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
|
3
3
|
[key: string]: JsonValue;
|
|
4
4
|
};
|
|
5
5
|
export type LixRuntimeValue = JsonValue | Uint8Array | ArrayBuffer | Value;
|
|
6
|
-
export type
|
|
6
|
+
export type LixNativeValue = JsonValue | Uint8Array;
|
|
7
|
+
export type ExecuteResult = {
|
|
7
8
|
columns: string[];
|
|
8
|
-
rows:
|
|
9
|
+
rows: Row[];
|
|
10
|
+
rowsAffected: number;
|
|
11
|
+
notices: LixNotice[];
|
|
9
12
|
};
|
|
10
|
-
export type
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
kind: "affectedRows";
|
|
15
|
-
affectedRows: number;
|
|
13
|
+
export type LixNotice = {
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
hint?: string;
|
|
16
17
|
};
|
|
17
|
-
export
|
|
18
|
-
|
|
18
|
+
export declare class Row {
|
|
19
|
+
readonly columns: string[];
|
|
20
|
+
private readonly valuesByIndex;
|
|
21
|
+
constructor(columns: string[], values: Value[]);
|
|
22
|
+
get(columnName: string): LixNativeValue;
|
|
23
|
+
tryGet(columnName: string): LixNativeValue | undefined;
|
|
24
|
+
value(columnName: string): Value;
|
|
25
|
+
tryValue(columnName: string): Value | undefined;
|
|
26
|
+
getAt(index: number): LixNativeValue;
|
|
27
|
+
valueAt(index: number): Value;
|
|
28
|
+
values(): Value[];
|
|
29
|
+
toObject(): Record<string, LixNativeValue>;
|
|
30
|
+
toValueMap(): Record<string, Value>;
|
|
31
|
+
private availableColumns;
|
|
32
|
+
}
|
|
33
|
+
export type BackendKvScanRange = {
|
|
19
34
|
kind: "prefix";
|
|
20
35
|
prefix: Uint8Array;
|
|
21
36
|
} | {
|
|
@@ -23,22 +38,78 @@ export type KvScanRange = {
|
|
|
23
38
|
start: Uint8Array;
|
|
24
39
|
end: Uint8Array;
|
|
25
40
|
};
|
|
26
|
-
export type
|
|
41
|
+
export type BackendKvGetRequest = {
|
|
42
|
+
groups: BackendKvGetGroup[];
|
|
43
|
+
};
|
|
44
|
+
export type BackendKvGetGroup = {
|
|
45
|
+
namespace: string;
|
|
46
|
+
keys: Uint8Array[];
|
|
47
|
+
};
|
|
48
|
+
export type BackendKvValueBatch = {
|
|
49
|
+
groups: BackendKvValueGroup[];
|
|
50
|
+
};
|
|
51
|
+
export type BackendKvValueGroup = {
|
|
52
|
+
namespace: string;
|
|
53
|
+
values: Array<Uint8Array | null>;
|
|
54
|
+
};
|
|
55
|
+
export type BackendKvExistsBatch = {
|
|
56
|
+
groups: BackendKvExistsGroup[];
|
|
57
|
+
};
|
|
58
|
+
export type BackendKvExistsGroup = {
|
|
59
|
+
namespace: string;
|
|
60
|
+
exists: boolean[];
|
|
61
|
+
};
|
|
62
|
+
export type BackendKvScanRequest = {
|
|
63
|
+
namespace: string;
|
|
64
|
+
range: BackendKvScanRange;
|
|
65
|
+
after?: Uint8Array | null;
|
|
66
|
+
limit: number;
|
|
67
|
+
};
|
|
68
|
+
export type BackendKvKeyPage = {
|
|
69
|
+
keys: Uint8Array[];
|
|
70
|
+
resumeAfter?: Uint8Array | null;
|
|
71
|
+
};
|
|
72
|
+
export type BackendKvValuePage = {
|
|
73
|
+
values: Uint8Array[];
|
|
74
|
+
resumeAfter?: Uint8Array | null;
|
|
75
|
+
};
|
|
76
|
+
export type BackendKvEntryPage = {
|
|
77
|
+
keys: Uint8Array[];
|
|
78
|
+
values: Uint8Array[];
|
|
79
|
+
resumeAfter?: Uint8Array | null;
|
|
80
|
+
};
|
|
81
|
+
export type BackendKvPut = {
|
|
27
82
|
key: Uint8Array;
|
|
28
83
|
value: Uint8Array;
|
|
29
84
|
};
|
|
30
|
-
export type
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
85
|
+
export type BackendKvWriteBatch = {
|
|
86
|
+
groups: BackendKvWriteGroup[];
|
|
87
|
+
};
|
|
88
|
+
export type BackendKvWriteGroup = {
|
|
89
|
+
namespace: string;
|
|
90
|
+
puts: BackendKvPut[];
|
|
91
|
+
deletes: Uint8Array[];
|
|
92
|
+
};
|
|
93
|
+
export type BackendKvWriteStats = {
|
|
94
|
+
puts: number;
|
|
95
|
+
deletes: number;
|
|
96
|
+
bytesWritten: number;
|
|
97
|
+
};
|
|
98
|
+
export type LixBackendReadTransaction = {
|
|
99
|
+
getValues(request: BackendKvGetRequest): BackendKvValueBatch;
|
|
100
|
+
existsMany(request: BackendKvGetRequest): BackendKvExistsBatch;
|
|
101
|
+
scanKeys(request: BackendKvScanRequest): BackendKvKeyPage;
|
|
102
|
+
scanValues(request: BackendKvScanRequest): BackendKvValuePage;
|
|
103
|
+
scanEntries(request: BackendKvScanRequest): BackendKvEntryPage;
|
|
36
104
|
rollback(): void;
|
|
37
105
|
};
|
|
106
|
+
export type LixBackendWriteTransaction = LixBackendReadTransaction & {
|
|
107
|
+
writeKvBatch(batch: BackendKvWriteBatch): BackendKvWriteStats;
|
|
108
|
+
commit(): void;
|
|
109
|
+
};
|
|
38
110
|
export type LixBackend = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
kvScan?(namespace: string, range: KvScanRange, limit?: number | null): KvPair[];
|
|
111
|
+
beginReadTransaction(): LixBackendReadTransaction;
|
|
112
|
+
beginWriteTransaction(): LixBackendWriteTransaction;
|
|
42
113
|
close?(): void;
|
|
43
114
|
};
|
|
44
115
|
export type OpenLixOptions = {
|
|
@@ -47,9 +118,13 @@ export type OpenLixOptions = {
|
|
|
47
118
|
export type CreateVersionOptions = {
|
|
48
119
|
id?: string;
|
|
49
120
|
name: string;
|
|
121
|
+
fromCommitId?: string;
|
|
50
122
|
};
|
|
51
123
|
export type CreateVersionResult = {
|
|
52
|
-
|
|
124
|
+
id: string;
|
|
125
|
+
name: string;
|
|
126
|
+
hidden: boolean;
|
|
127
|
+
commitId: string;
|
|
53
128
|
};
|
|
54
129
|
export type SwitchVersionOptions = {
|
|
55
130
|
versionId: string;
|
|
@@ -60,23 +135,65 @@ export type SwitchVersionResult = {
|
|
|
60
135
|
export type MergeVersionOptions = {
|
|
61
136
|
sourceVersionId: string;
|
|
62
137
|
};
|
|
63
|
-
export type MergeVersionOutcome = "alreadyUpToDate" | "mergeCommitted";
|
|
138
|
+
export type MergeVersionOutcome = "alreadyUpToDate" | "fastForward" | "mergeCommitted";
|
|
64
139
|
export type MergeVersionResult = {
|
|
140
|
+
/**
|
|
141
|
+
* How the merge was applied. `fastForward` advances the target ref without
|
|
142
|
+
* creating a merge commit, but can still make source changes visible.
|
|
143
|
+
*/
|
|
65
144
|
outcome: MergeVersionOutcome;
|
|
66
145
|
targetVersionId: string;
|
|
67
146
|
sourceVersionId: string;
|
|
68
|
-
|
|
147
|
+
baseCommitId: string;
|
|
69
148
|
targetHeadBeforeCommitId: string;
|
|
70
149
|
sourceHeadBeforeCommitId: string;
|
|
71
150
|
targetHeadAfterCommitId: string;
|
|
72
151
|
createdMergeCommitId: string | null;
|
|
73
|
-
|
|
152
|
+
changeStats: MergeChangeStats;
|
|
153
|
+
};
|
|
154
|
+
export type MergeVersionPreviewResult = {
|
|
155
|
+
outcome: MergeVersionOutcome;
|
|
156
|
+
targetVersionId: string;
|
|
157
|
+
sourceVersionId: string;
|
|
158
|
+
baseCommitId: string;
|
|
159
|
+
targetHeadCommitId: string;
|
|
160
|
+
sourceHeadCommitId: string;
|
|
161
|
+
changeStats: MergeChangeStats;
|
|
162
|
+
conflicts: MergeConflict[];
|
|
163
|
+
};
|
|
164
|
+
export type MergeChangeStats = {
|
|
165
|
+
total: number;
|
|
166
|
+
added: number;
|
|
167
|
+
modified: number;
|
|
168
|
+
removed: number;
|
|
169
|
+
};
|
|
170
|
+
export type MergeConflict = {
|
|
171
|
+
kind: "sameEntityChanged";
|
|
172
|
+
schemaKey: string;
|
|
173
|
+
entityId: string;
|
|
174
|
+
fileId: string | null;
|
|
175
|
+
target: MergeConflictSide;
|
|
176
|
+
source: MergeConflictSide;
|
|
177
|
+
};
|
|
178
|
+
export type MergeConflictSide = {
|
|
179
|
+
kind: "added" | "modified" | "removed";
|
|
180
|
+
beforeChangeId: string | null;
|
|
181
|
+
afterChangeId: string | null;
|
|
74
182
|
};
|
|
75
183
|
export type Lix = {
|
|
184
|
+
/**
|
|
185
|
+
* Executes one DataFusion SQL statement against this Lix session.
|
|
186
|
+
*
|
|
187
|
+
* This is not SQLite SQL. Use the DataFusion SQL dialect; positional
|
|
188
|
+
* placeholders are `$1`, `$2`, and so on. SQLite-specific catalog tables and
|
|
189
|
+
* transaction statements such as `sqlite_master`, `BEGIN`, and `COMMIT` are
|
|
190
|
+
* not available. Use `information_schema` for catalog inspection.
|
|
191
|
+
*/
|
|
76
192
|
execute(sql: string, params?: ReadonlyArray<LixRuntimeValue>): Promise<ExecuteResult>;
|
|
77
193
|
activeVersionId(): Promise<string>;
|
|
78
194
|
createVersion(options: CreateVersionOptions): Promise<CreateVersionResult>;
|
|
79
195
|
switchVersion(options: SwitchVersionOptions): Promise<SwitchVersionResult>;
|
|
196
|
+
mergeVersionPreview(options: MergeVersionOptions): Promise<MergeVersionPreviewResult>;
|
|
80
197
|
mergeVersion(options: MergeVersionOptions): Promise<MergeVersionResult>;
|
|
81
198
|
close(): Promise<void>;
|
|
82
199
|
};
|