- 1c84afb: disabled plugin loading from the file table because unused and led to opral/inlang-paraglide-js#350
-
175f7f9: @lix-js/sdk:
- define UiDiffComponent type
- diff components can now consume multiple diffs
@lix-js/plugin-csv:
- update to use new diff component type
- display multiple diffs in a single component
- add rowId to snapshot content
- group diffs by rowId
lix-file-manager:
- add checkpoint timeline instead of change list
- refactor API diff component rendering
- refactor queries to use new UiDiffComponent type
PR URL: #3377
- @lix-js/[email protected]
- Updated dependencies [b87f8a8]
- Updated dependencies [31e8fb8]
- 7fd8092: fix: account for db close via "driver has already been destroyed" in file queue
- d71b3c7: move @lix-js/server-api-schema to regular dependencies
- c3d2d8e: Refactor: change "confirmed" to "checkpoint" and "unconfirmed" to "intermediate"
-
657bdc4: adds a telemetry event for opening a lix as well as the option to disable telemetry
-
0de2866: refactor: removes the
anonymous_
prefix from "anonymous accounts".Closes opral/lix-sdk#233.
There is no difference between an account prefixed with
anonymous
and one that is not. This change removes the prefix to avoid confusion. -
03e746d: add the option to open a lix with an existing account
const account = localStorage.getItem("account"); await openLix({ account });
-
48fac78: fix: sync process does not create new intervals after the database has been closed
this bug hindered node processes to exit opral/inlang-sdk#155
-
Updated dependencies [7046bc3]
-
4d9d980: adds unique and default human readable version names
- removes nullability of
version.name
which eases conditional logic. - apps don't need custom default version naming logic anymore
- removes nullability of
-
cc93bd9: Refactor: Use nano-ids for change controlled tables like discussions, comments, and labels.
- severely shortens the length of shareable URLs
- closes opral/lix-sdk#189.
-http://localhost:3005/app/fm/?f=0193f041-21ce-7ffc-ba6e-d2d62b399383&d=0193f041-2457-7ffc-ba7e-494efc37b1b8&l=55a7bcc8-63d8-43b7-af0b-3916618fc258 +http://localhost:3005/app/fm/?f=tUYFRUe4lb&d=rrzumhqqTOwq&l=MftKxYHfDw2bSVr8Bs
Additional information
The pattern is still not human readable. I assume that we will introduce a human readable pattern in the future in addition to permalinks. This change is a incremental step towards better link sharing and good enough for now.
Performance implications
Nano IDs are not sortable and theoretically make insertions slower. However, until we get lix'es that have billions of rows we need to get users first. Sharing is a key feature to get users.
-
85eb03e: refactor: remove
comment.created_at
andcomment.created_by
opral/lix-sdk#175Comments and discussions are now change controlled. Hence, knowing when a comment or discussion has been created can be queried via the changes. This removes the need for the
created_at
andcreated_by
fields on theComment
andDiscussion
entities, and thereby simplifies the schema, avoids duplicate date, and reduces the risk of inconsistencies. -
2d3ab95: refactor: explicit
firstComment
argument increateDiscussion()
opral/lix-sdk#164It was unclear that the
content
argument increateDiscussion()
was meant to be the first comment. This change makes it explicit by renaming the argument tofirstComment
.- createDiscussion({ discussion, content: "first comment" }) + createDiscussion({ discussion, firstComment: { content: "first commment" } }})
-
d78a1bf: improve: remove top level await in json parsing
required for lix apps that transpile to CJS. CJS does not support top level await. see evanw/esbuild#253
-
6b14433: refactor: rename
change_queue
tofile_queue
opral/lix-sdk#168-db.selectFrom("change_queue") +db.selectFrom("file_queue")
-
9f1765a: refactor: rename plugin_key:
lix_own_entity
tolix_own_change_control
Closes opral/lix-sdk#197
-
c494dca: refactor: remove
change_set_label_author
table.Closes opral/lix-sdk#227
Change set labels are now under own change control. Querying who created a label can happen via the change table itself.
-
fc5a5dd: fix: duplicate version changes
Closes opral/lix-sdk#217 by making version changes have a unique (entity_id, file_id, schema_key).
Sync was buggy because the sync process is an async process. A client received multiple version changes for the same entity and inserted them opral/lix-sdk#217 (comment) without checking if the version change for the entity already exists.
-
8c4ac57: refactor: rename
parent
tofrom
increateVersion()
opral/lix-sdk#213-await createVersion({ lix, parent: currentVersion }) +await createVersion({ lix, from: currentVersion })
-
8629faa: fix: queries against closed database
closes opral/lix-sdk#226
-
de6d717: fix: type mismatch of
file.data
The type of
file.data
inFile
interface is changed fromArrayBuffer
toUint8Array
to match the type ofUint8Array
returned by SQLite and various file related APIs.-file.data: ArrayBuffer +file.data: Uint8Array
-
be9effa: Extract
toBlob()
fromlix.*
object opral/lix-sdk#196- await lix.toBlob() + await toBlob({ lix })
-
b74e982: refactor: replace
#*
key syntax withskip_change_control
columncloses opral/lix-sdk#191
Enables matching of flags and avoids re-names of keys. This change replaces the
#*
key syntax with askip_change_control
column in theflags
table.key_value = { - key: "#mock_key", + key: "mock_key", + skip_change_control: true, value: "mock_value", }
-
5eecc61: refactor: rename
file_id
of own changes fromnull
tolix_own_change_control
to avoid debugging confusions opral/lix-sdk#194- file_id: null + file_id: lix_own_change_control
- 400db21: preview of lix