@lix-js/sdk 0.0.1 → 0.2.0
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/LICENSE +21 -0
- package/dist/account/database-schema.d.ts.map +1 -1
- package/dist/account/database-schema.js +2 -6
- package/dist/account/database-schema.js.map +1 -1
- package/dist/account/database-schema.test.js +4 -8
- package/dist/account/database-schema.test.js.map +1 -1
- package/dist/change/apply-changes.js +9 -9
- package/dist/change/apply-changes.js.map +1 -1
- package/dist/change/apply-changes.test.js +5 -5
- package/dist/change/apply-changes.test.js.map +1 -1
- package/dist/database/apply-schema.d.ts.map +1 -1
- package/dist/database/apply-schema.js +20 -72
- package/dist/database/apply-schema.js.map +1 -1
- package/dist/database/execute-sync.test.js +3 -3
- package/dist/database/execute-sync.test.js.map +1 -1
- package/dist/database/init-db.d.ts.map +1 -1
- package/dist/database/init-db.js +18 -3
- package/dist/database/init-db.js.map +1 -1
- package/dist/database/init-db.test.js +128 -17
- package/dist/database/init-db.test.js.map +1 -1
- package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts.map +1 -1
- package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js +5 -2
- package/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js.map +1 -1
- package/dist/database/mutation-log/database-schema.d.ts.map +1 -1
- package/dist/database/mutation-log/database-schema.js +1 -3
- package/dist/database/mutation-log/database-schema.js.map +1 -1
- package/dist/database/nano-id.d.ts +21 -0
- package/dist/database/nano-id.d.ts.map +1 -0
- package/dist/database/nano-id.js +58 -0
- package/dist/database/nano-id.js.map +1 -0
- package/dist/database/nano-id.test.d.ts +2 -0
- package/dist/database/nano-id.test.d.ts.map +1 -0
- package/dist/database/nano-id.test.js +13 -0
- package/dist/database/nano-id.test.js.map +1 -0
- package/dist/database/schema.d.ts +15 -23
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/discussion/create-comment.d.ts +0 -2
- package/dist/discussion/create-comment.d.ts.map +1 -1
- package/dist/discussion/create-comment.js +0 -1
- package/dist/discussion/create-comment.js.map +1 -1
- package/dist/discussion/create-discussion.d.ts +3 -5
- package/dist/discussion/create-discussion.d.ts.map +1 -1
- package/dist/discussion/create-discussion.js +4 -5
- package/dist/discussion/create-discussion.js.map +1 -1
- package/dist/discussion/create-discussion.test.js +8 -34
- package/dist/discussion/create-discussion.test.js.map +1 -1
- package/dist/file-queue/file-handlers.d.ts +24 -0
- package/dist/file-queue/file-handlers.d.ts.map +1 -0
- package/dist/file-queue/file-handlers.js +209 -0
- package/dist/file-queue/file-handlers.js.map +1 -0
- package/dist/file-queue/file-queue-process.d.ts +5 -0
- package/dist/file-queue/file-queue-process.d.ts.map +1 -0
- package/dist/file-queue/file-queue-process.js +88 -0
- package/dist/file-queue/file-queue-process.js.map +1 -0
- package/dist/file-queue/file-queue-process.test.d.ts +2 -0
- package/dist/file-queue/file-queue-process.test.d.ts.map +1 -0
- package/dist/file-queue/file-queue-process.test.js +372 -0
- package/dist/file-queue/file-queue-process.test.js.map +1 -0
- package/dist/file-queue/file-queue-settled.d.ts +13 -0
- package/dist/file-queue/file-queue-settled.d.ts.map +1 -0
- package/dist/file-queue/file-queue-settled.js +25 -0
- package/dist/file-queue/file-queue-settled.js.map +1 -0
- package/dist/file-queue/file-queue-settled.test.d.ts +2 -0
- package/dist/file-queue/file-queue-settled.test.d.ts.map +1 -0
- package/dist/file-queue/file-queue-settled.test.js +47 -0
- package/dist/file-queue/file-queue-settled.test.js.map +1 -0
- package/dist/file-queue/index.d.ts +2 -0
- package/dist/file-queue/index.d.ts.map +1 -0
- package/dist/file-queue/index.js +2 -0
- package/dist/file-queue/index.js.map +1 -0
- package/dist/file-queue/with-skip-file-queue.d.ts +3 -0
- package/dist/file-queue/with-skip-file-queue.d.ts.map +1 -0
- package/dist/file-queue/with-skip-file-queue.js +26 -0
- package/dist/file-queue/with-skip-file-queue.js.map +1 -0
- package/dist/file-queue/with-skip-file-queue.test.d.ts +2 -0
- package/dist/file-queue/with-skip-file-queue.test.d.ts.map +1 -0
- package/dist/file-queue/with-skip-file-queue.test.js +138 -0
- package/dist/file-queue/with-skip-file-queue.test.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/key-value/database-schema.d.ts +11 -2
- package/dist/key-value/database-schema.d.ts.map +1 -1
- package/dist/key-value/database-schema.js +7 -4
- package/dist/key-value/database-schema.js.map +1 -1
- package/dist/key-value/database-schema.test.js +21 -5
- package/dist/key-value/database-schema.test.js.map +1 -1
- package/dist/lix/close-lix.d.ts +8 -0
- package/dist/lix/close-lix.d.ts.map +1 -0
- package/dist/lix/close-lix.js +7 -0
- package/dist/lix/close-lix.js.map +1 -0
- package/dist/lix/index.d.ts +1 -0
- package/dist/lix/index.d.ts.map +1 -1
- package/dist/lix/index.js +1 -0
- package/dist/lix/index.js.map +1 -1
- package/dist/lix/merge.js +3 -3
- package/dist/lix/merge.js.map +1 -1
- package/dist/lix/merge.test.js +7 -18
- package/dist/lix/merge.test.js.map +1 -1
- package/dist/lix/new-lix.d.ts.map +1 -1
- package/dist/lix/new-lix.js +2 -3
- package/dist/lix/new-lix.js.map +1 -1
- package/dist/lix/open-lix-in-memory.test.js +2 -1
- package/dist/lix/open-lix-in-memory.test.js.map +1 -1
- package/dist/lix/open-lix.d.ts +19 -6
- package/dist/lix/open-lix.d.ts.map +1 -1
- package/dist/lix/open-lix.js +80 -18
- package/dist/lix/open-lix.js.map +1 -1
- package/dist/lix/open-lix.test.js +70 -7
- package/dist/lix/open-lix.test.js.map +1 -1
- package/dist/lix/to-blob.d.ts +11 -0
- package/dist/lix/to-blob.d.ts.map +1 -0
- package/dist/lix/to-blob.js +11 -0
- package/dist/lix/to-blob.js.map +1 -0
- package/dist/own-change-control/apply-own-change.d.ts +10 -0
- package/dist/own-change-control/apply-own-change.d.ts.map +1 -0
- package/dist/own-change-control/apply-own-change.js +69 -0
- package/dist/own-change-control/apply-own-change.js.map +1 -0
- package/dist/own-change-control/apply-own-change.test.d.ts +2 -0
- package/dist/own-change-control/apply-own-change.test.d.ts.map +1 -0
- package/dist/own-change-control/apply-own-change.test.js +297 -0
- package/dist/own-change-control/apply-own-change.test.js.map +1 -0
- package/dist/own-change-control/change-controlled-tables.d.ts +60 -0
- package/dist/own-change-control/change-controlled-tables.d.ts.map +1 -0
- package/dist/own-change-control/change-controlled-tables.js +70 -0
- package/dist/own-change-control/change-controlled-tables.js.map +1 -0
- package/dist/own-change-control/change-controlled-tables.test.d.ts +2 -0
- package/dist/own-change-control/change-controlled-tables.test.d.ts.map +1 -0
- package/dist/own-change-control/change-controlled-tables.test.js +48 -0
- package/dist/own-change-control/change-controlled-tables.test.js.map +1 -0
- package/dist/own-change-control/database-triggers.d.ts +5 -0
- package/dist/own-change-control/database-triggers.d.ts.map +1 -0
- package/dist/own-change-control/database-triggers.js +135 -0
- package/dist/own-change-control/database-triggers.js.map +1 -0
- package/dist/own-change-control/database-triggers.test.d.ts +2 -0
- package/dist/own-change-control/database-triggers.test.d.ts.map +1 -0
- package/dist/own-change-control/database-triggers.test.js +214 -0
- package/dist/own-change-control/database-triggers.test.js.map +1 -0
- package/dist/own-change-control/index.d.ts +2 -0
- package/dist/own-change-control/index.d.ts.map +1 -0
- package/dist/own-change-control/index.js +2 -0
- package/dist/own-change-control/index.js.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.d.ts +3 -0
- package/dist/own-change-control/with-skip-own-change-control.d.ts.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.js +28 -0
- package/dist/own-change-control/with-skip-own-change-control.js.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.test.d.ts +2 -0
- package/dist/own-change-control/with-skip-own-change-control.test.d.ts.map +1 -0
- package/dist/own-change-control/with-skip-own-change-control.test.js +49 -0
- package/dist/own-change-control/with-skip-own-change-control.test.js.map +1 -0
- package/dist/own-entity-change-control/apply-own-entity-change.js +2 -2
- package/dist/own-entity-change-control/apply-own-entity-change.js.map +1 -1
- package/dist/own-entity-change-control/apply-own-entity-change.test.js +9 -9
- package/dist/own-entity-change-control/apply-own-entity-change.test.js.map +1 -1
- package/dist/own-entity-change-control/database-triggers.js +6 -6
- package/dist/own-entity-change-control/database-triggers.js.map +1 -1
- package/dist/own-entity-change-control/database-triggers.test.js +1 -1
- package/dist/own-entity-change-control/database-triggers.test.js.map +1 -1
- package/dist/query-filter/version-change-in-difference.test.js +37 -29
- package/dist/query-filter/version-change-in-difference.test.js.map +1 -1
- package/dist/query-filter/version-change-in-symmetric-difference.test.js +37 -39
- package/dist/query-filter/version-change-in-symmetric-difference.test.js.map +1 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +1 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.js +7 -3
- package/dist/server-api-handler/environment/create-in-memory-environment.js.map +1 -1
- package/dist/server-api-handler/environment/create-in-memory-environment.test.js +8 -7
- package/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +1 -1
- package/dist/server-api-handler/routes/get-v1.d.ts.map +1 -1
- package/dist/server-api-handler/routes/get-v1.js +1 -2
- package/dist/server-api-handler/routes/get-v1.js.map +1 -1
- package/dist/server-api-handler/routes/get-v1.test.js +6 -5
- package/dist/server-api-handler/routes/get-v1.test.js.map +1 -1
- package/dist/server-api-handler/routes/new-v1.d.ts.map +1 -1
- package/dist/server-api-handler/routes/new-v1.js +3 -1
- package/dist/server-api-handler/routes/new-v1.js.map +1 -1
- package/dist/server-api-handler/routes/new-v1.test.js +2 -1
- package/dist/server-api-handler/routes/new-v1.test.js.map +1 -1
- package/dist/server-api-handler/routes/pull-v1.test.js +4 -3
- package/dist/server-api-handler/routes/pull-v1.test.js.map +1 -1
- package/dist/server-api-handler/routes/push-v1.test.js +5 -4
- package/dist/server-api-handler/routes/push-v1.test.js.map +1 -1
- package/dist/services/env-variables/index.d.ts +5 -0
- package/dist/services/env-variables/index.d.ts.map +1 -0
- package/dist/services/env-variables/index.js +5 -0
- package/dist/services/env-variables/index.js.map +1 -0
- package/dist/services/telemetry/capture.d.ts +30 -0
- package/dist/services/telemetry/capture.d.ts.map +1 -0
- package/dist/services/telemetry/capture.js +71 -0
- package/dist/services/telemetry/capture.js.map +1 -0
- package/dist/services/telemetry/capture.test.d.ts +2 -0
- package/dist/services/telemetry/capture.test.d.ts.map +1 -0
- package/dist/services/telemetry/capture.test.js +37 -0
- package/dist/services/telemetry/capture.test.js.map +1 -0
- package/dist/sync/pull-from-server.d.ts.map +1 -1
- package/dist/sync/pull-from-server.js +0 -2
- package/dist/sync/pull-from-server.js.map +1 -1
- package/dist/sync/pull-from-server.test.js +29 -14
- package/dist/sync/pull-from-server.test.js.map +1 -1
- package/dist/sync/push-to-server.test.js +17 -13
- package/dist/sync/push-to-server.test.js.map +1 -1
- package/dist/sync/sync-process.d.ts +2 -4
- package/dist/sync/sync-process.d.ts.map +1 -1
- package/dist/sync/sync-process.js +14 -13
- package/dist/sync/sync-process.js.map +1 -1
- package/dist/sync/sync-process.test.js +26 -38
- package/dist/sync/sync-process.test.js.map +1 -1
- package/dist/version/create-version.d.ts +5 -5
- package/dist/version/create-version.d.ts.map +1 -1
- package/dist/version/create-version.js +23 -11
- package/dist/version/create-version.js.map +1 -1
- package/dist/version/create-version.test.js +2 -2
- package/dist/version/create-version.test.js.map +1 -1
- package/dist/version/merge-version.d.ts.map +1 -1
- package/dist/version/merge-version.js +16 -26
- package/dist/version/merge-version.js.map +1 -1
- package/dist/version/switch-version.js +3 -3
- package/dist/version/switch-version.js.map +1 -1
- package/dist/version/switch-version.test.js +12 -15
- package/dist/version/switch-version.test.js.map +1 -1
- package/dist/version/update-changes-in-version.d.ts.map +1 -1
- package/dist/version/update-changes-in-version.js +11 -31
- package/dist/version/update-changes-in-version.js.map +1 -1
- package/package.json +7 -9
- package/src/account/database-schema.test.ts +6 -9
- package/src/account/database-schema.ts +2 -6
- package/src/change/apply-changes.test.ts +7 -7
- package/src/change/apply-changes.ts +9 -9
- package/src/database/apply-schema.ts +20 -73
- package/src/database/execute-sync.test.ts +3 -3
- package/src/database/init-db.test.ts +163 -19
- package/src/database/init-db.ts +20 -3
- package/src/database/kysely-plugin/parse-jsonb-plugin-v1.ts +9 -2
- package/src/database/mutation-log/database-schema.ts +1 -3
- package/src/database/nano-id.test.ts +15 -0
- package/src/database/nano-id.ts +72 -0
- package/src/database/schema.ts +15 -24
- package/src/discussion/create-comment.ts +0 -3
- package/src/discussion/create-discussion.test.ts +8 -39
- package/src/discussion/create-discussion.ts +6 -9
- package/src/{change-queue → file-queue}/file-handlers.ts +27 -27
- package/src/{change-queue/init-change-queue.test.ts → file-queue/file-queue-process.test.ts} +28 -29
- package/src/{change-queue/init-change-queue.ts → file-queue/file-queue-process.ts} +21 -16
- package/src/{change-queue/change-queue-settled.test.ts → file-queue/file-queue-settled.test.ts} +12 -12
- package/src/{change-queue/change-queue-settled.ts → file-queue/file-queue-settled.ts} +4 -4
- package/src/file-queue/index.ts +1 -0
- package/src/{change-queue/with-skip-change-queue.test.ts → file-queue/with-skip-file-queue.test.ts} +9 -9
- package/src/{change-queue/with-skip-change-queue.ts → file-queue/with-skip-file-queue.ts} +3 -3
- package/src/index.ts +2 -2
- package/src/key-value/database-schema.test.ts +26 -5
- package/src/key-value/database-schema.ts +18 -6
- package/src/lix/close-lix.ts +8 -0
- package/src/lix/index.ts +1 -0
- package/src/lix/merge.test.ts +7 -19
- package/src/lix/merge.ts +4 -4
- package/src/lix/new-lix.ts +2 -3
- package/src/lix/open-lix-in-memory.test.ts +5 -1
- package/src/lix/open-lix.test.ts +82 -7
- package/src/lix/open-lix.ts +104 -24
- package/src/lix/to-blob.ts +14 -0
- package/src/{own-entity-change-control/apply-own-entity-change.test.ts → own-change-control/apply-own-change.test.ts} +27 -31
- package/src/{own-entity-change-control/apply-own-entity-change.ts → own-change-control/apply-own-change.ts} +3 -3
- package/src/{own-entity-change-control → own-change-control}/change-controlled-tables.ts +0 -1
- package/src/{own-entity-change-control → own-change-control}/database-triggers.test.ts +7 -7
- package/src/{own-entity-change-control → own-change-control}/database-triggers.ts +11 -11
- package/src/{own-entity-change-control → own-change-control}/with-skip-own-change-control.ts +6 -2
- package/src/query-filter/version-change-in-difference.test.ts +41 -32
- package/src/query-filter/version-change-in-symmetric-difference.test.ts +41 -42
- package/src/server-api-handler/environment/create-in-memory-environment.test.ts +8 -7
- package/src/server-api-handler/environment/create-in-memory-environment.ts +7 -3
- package/src/server-api-handler/routes/get-v1.test.ts +6 -5
- package/src/server-api-handler/routes/get-v1.ts +1 -3
- package/src/server-api-handler/routes/new-v1.test.ts +2 -1
- package/src/server-api-handler/routes/new-v1.ts +3 -1
- package/src/server-api-handler/routes/pull-v1.test.ts +4 -3
- package/src/server-api-handler/routes/push-v1.test.ts +5 -4
- package/src/services/env-variables/create-index-file.js +35 -0
- package/src/services/env-variables/index.d.ts +15 -0
- package/src/services/telemetry/capture.test.ts +44 -0
- package/src/services/telemetry/capture.ts +99 -0
- package/src/sync/pull-from-server.test.ts +29 -14
- package/src/sync/pull-from-server.ts +0 -2
- package/src/sync/push-to-server.test.ts +19 -15
- package/src/sync/sync-process.test.ts +37 -43
- package/src/sync/sync-process.ts +16 -23
- package/src/version/create-version.test.ts +2 -2
- package/src/version/create-version.ts +24 -12
- package/src/version/merge-version.ts +18 -26
- package/src/version/switch-version.test.ts +12 -15
- package/src/version/switch-version.ts +3 -3
- package/src/version/update-changes-in-version.ts +11 -30
- package/node_modules/@lix-js/server-api-schema/.prettierrc.json +0 -3
- package/node_modules/@lix-js/server-api-schema/.vscode/extensions.json +0 -3
- package/node_modules/@lix-js/server-api-schema/dist/schema.d.ts +0 -384
- package/node_modules/@lix-js/server-api-schema/package.json +0 -21
- package/node_modules/@lix-js/server-api-schema/src/schema.yaml +0 -290
- package/node_modules/@lix-js/server-api-schema/tsconfig.json +0 -20
- package/node_modules/sqlite-wasm-kysely/README.md +0 -11
- package/node_modules/sqlite-wasm-kysely/dist/dialect.d.ts +0 -11
- package/node_modules/sqlite-wasm-kysely/dist/dialect.js +0 -13
- package/node_modules/sqlite-wasm-kysely/dist/dialect.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/index.d.ts +0 -2
- package/node_modules/sqlite-wasm-kysely/dist/index.js +0 -3
- package/node_modules/sqlite-wasm-kysely/dist/index.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.d.ts +0 -5
- package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.js +0 -34
- package/node_modules/sqlite-wasm-kysely/dist/kysely/ConnectionMutex.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.d.ts +0 -8
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.js +0 -57
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmConnection.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.d.ts +0 -18
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.js +0 -2
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDialectConfig.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.d.ts +0 -13
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.js +0 -57
- package/node_modules/sqlite-wasm-kysely/dist/kysely/SqliteWasmDriver.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/kysely/index.d.ts +0 -4
- package/node_modules/sqlite-wasm-kysely/dist/kysely/index.js +0 -4
- package/node_modules/sqlite-wasm-kysely/dist/kysely/index.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.d.ts +0 -3
- package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.js +0 -5
- package/node_modules/sqlite-wasm-kysely/dist/kysely/sqliteModule.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.d.ts +0 -9
- package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.js +0 -12
- package/node_modules/sqlite-wasm-kysely/dist/util/contentFromDatabase.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.d.ts +0 -3
- package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.js +0 -22
- package/node_modules/sqlite-wasm-kysely/dist/util/createInMemoryDatabase.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.d.ts +0 -7
- package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.js +0 -15
- package/node_modules/sqlite-wasm-kysely/dist/util/importDatabase.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/index.d.ts +0 -5
- package/node_modules/sqlite-wasm-kysely/dist/util/index.js +0 -5
- package/node_modules/sqlite-wasm-kysely/dist/util/index.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.d.ts +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.js +0 -13
- package/node_modules/sqlite-wasm-kysely/dist/util/loadDatabaseInMemory.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.d.ts +0 -7
- package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.js +0 -17
- package/node_modules/sqlite-wasm-kysely/dist/util/sqliteWasmBinary.js.map +0 -1
- package/node_modules/sqlite-wasm-kysely/package.json +0 -34
- package/node_modules/sqlite-wasm-kysely/src/dialect.ts +0 -15
- package/node_modules/sqlite-wasm-kysely/src/index.ts +0 -2
- package/node_modules/sqlite-wasm-kysely/src/kysely/ConnectionMutex.ts +0 -23
- package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmConnection.ts +0 -57
- package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmDialectConfig.ts +0 -19
- package/node_modules/sqlite-wasm-kysely/src/kysely/SqliteWasmDriver.ts +0 -58
- package/node_modules/sqlite-wasm-kysely/src/kysely/index.ts +0 -4
- package/node_modules/sqlite-wasm-kysely/src/kysely/sqliteModule.ts +0 -7
- package/node_modules/sqlite-wasm-kysely/src/util/contentFromDatabase.ts +0 -13
- package/node_modules/sqlite-wasm-kysely/src/util/createInMemoryDatabase.ts +0 -30
- package/node_modules/sqlite-wasm-kysely/src/util/importDatabase.ts +0 -34
- package/node_modules/sqlite-wasm-kysely/src/util/index.ts +0 -5
- package/node_modules/sqlite-wasm-kysely/src/util/loadDatabaseInMemory.ts +0 -13
- package/node_modules/sqlite-wasm-kysely/src/util/sqliteWasmBinary.ts +0 -20
- package/src/change-queue/index.ts +0 -1
- /package/src/{own-entity-change-control → own-change-control}/change-controlled-tables.test.ts +0 -0
- /package/src/{own-entity-change-control → own-change-control}/index.ts +0 -0
- /package/src/{own-entity-change-control → own-change-control}/with-skip-own-change-control.test.ts +0 -0
package/src/database/schema.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type LixDatabaseSchema = {
|
|
|
17
17
|
|
|
18
18
|
// file
|
|
19
19
|
file: LixFileTable;
|
|
20
|
-
|
|
20
|
+
file_queue: FileQueueTable;
|
|
21
21
|
|
|
22
22
|
// change
|
|
23
23
|
change: ChangeTable;
|
|
@@ -28,7 +28,6 @@ export type LixDatabaseSchema = {
|
|
|
28
28
|
change_set: ChangeSetTable;
|
|
29
29
|
change_set_element: ChangeSetElementTable;
|
|
30
30
|
change_set_label: ChangeSetLabelTable;
|
|
31
|
-
change_set_label_author: ChangeSetLabelAuthorTable;
|
|
32
31
|
|
|
33
32
|
// key value
|
|
34
33
|
key_value: KeyValueTable;
|
|
@@ -50,16 +49,16 @@ export type LixDatabaseSchema = {
|
|
|
50
49
|
mutation_log: MutationLogTable;
|
|
51
50
|
};
|
|
52
51
|
|
|
53
|
-
export type
|
|
54
|
-
export type
|
|
55
|
-
export type
|
|
56
|
-
type
|
|
52
|
+
export type FileQueueEntry = Selectable<FileQueueTable>;
|
|
53
|
+
export type NewFileQueueEntry = Insertable<FileQueueTable>;
|
|
54
|
+
export type FileQueueEntryUpdate = Updateable<FileQueueTable>;
|
|
55
|
+
type FileQueueTable = {
|
|
57
56
|
id: Generated<number>;
|
|
58
57
|
file_id: string;
|
|
59
58
|
path_before: string | null;
|
|
60
59
|
path_after: string | null;
|
|
61
|
-
data_before:
|
|
62
|
-
data_after:
|
|
60
|
+
data_before: Uint8Array | null;
|
|
61
|
+
data_after: Uint8Array | null;
|
|
63
62
|
metadata_before: Record<string, any> | null;
|
|
64
63
|
metadata_after: Record<string, any> | null;
|
|
65
64
|
};
|
|
@@ -80,7 +79,7 @@ type LixFileTable = {
|
|
|
80
79
|
* - `/path/to/file.txt`
|
|
81
80
|
*/
|
|
82
81
|
path: string;
|
|
83
|
-
data:
|
|
82
|
+
data: Uint8Array;
|
|
84
83
|
metadata: Record<string, any> | null;
|
|
85
84
|
};
|
|
86
85
|
|
|
@@ -175,8 +174,6 @@ type CommentTable = {
|
|
|
175
174
|
id: Generated<string>;
|
|
176
175
|
parent_id: string | null;
|
|
177
176
|
discussion_id: string;
|
|
178
|
-
created_at: Generated<string>;
|
|
179
|
-
created_by: string;
|
|
180
177
|
content: string;
|
|
181
178
|
};
|
|
182
179
|
|
|
@@ -198,15 +195,6 @@ type ChangeSetLabelTable = {
|
|
|
198
195
|
label_id: string;
|
|
199
196
|
};
|
|
200
197
|
|
|
201
|
-
export type ChangeSetLabelAuthor = Selectable<ChangeSetLabelAuthorTable>;
|
|
202
|
-
export type NewChangeSetLabelAuthor = Insertable<ChangeSetLabelAuthorTable>;
|
|
203
|
-
export type ChangeSetLabelAuthorUpdate = Updateable<ChangeSetLabelAuthorTable>;
|
|
204
|
-
type ChangeSetLabelAuthorTable = {
|
|
205
|
-
change_set_id: string;
|
|
206
|
-
label_id: string;
|
|
207
|
-
account_id: string;
|
|
208
|
-
};
|
|
209
|
-
|
|
210
198
|
// ------ versiones ------
|
|
211
199
|
|
|
212
200
|
export type Version = Selectable<VersionTable>;
|
|
@@ -214,7 +202,7 @@ export type Newversion = Insertable<VersionTable>;
|
|
|
214
202
|
export type VersionUpdate = Updateable<VersionTable>;
|
|
215
203
|
type VersionTable = {
|
|
216
204
|
id: Generated<string>;
|
|
217
|
-
name: string
|
|
205
|
+
name: Generated<string>;
|
|
218
206
|
};
|
|
219
207
|
|
|
220
208
|
export type VersionChange = Selectable<VersionChangeTable>;
|
|
@@ -223,6 +211,9 @@ export type VersionChangeUpdate = Updateable<VersionChangeTable>;
|
|
|
223
211
|
type VersionChangeTable = {
|
|
224
212
|
version_id: string;
|
|
225
213
|
change_id: string;
|
|
214
|
+
entity_id: string;
|
|
215
|
+
file_id: string;
|
|
216
|
+
schema_key: string;
|
|
226
217
|
};
|
|
227
218
|
|
|
228
219
|
export type VersionChangeConflict = Selectable<VersionChangeConflictTable>;
|
|
@@ -234,9 +225,9 @@ type VersionChangeConflictTable = {
|
|
|
234
225
|
change_conflict_id: string;
|
|
235
226
|
};
|
|
236
227
|
|
|
237
|
-
export type
|
|
238
|
-
export type
|
|
239
|
-
export type
|
|
228
|
+
export type CurrentVersion = Selectable<CurrentVersionTable>;
|
|
229
|
+
export type NewCurrentVersion = Insertable<CurrentVersionTable>;
|
|
230
|
+
export type CurrentVersionUpdate = Updateable<CurrentVersionTable>;
|
|
240
231
|
type CurrentVersionTable = {
|
|
241
232
|
id: string;
|
|
242
233
|
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Account } from "../account/database-schema.js";
|
|
2
1
|
import type { Comment } from "../database/schema.js";
|
|
3
2
|
import type { Lix } from "../lix/open-lix.js";
|
|
4
3
|
|
|
@@ -6,7 +5,6 @@ export async function createComment(args: {
|
|
|
6
5
|
lix: Pick<Lix, "db">;
|
|
7
6
|
parentComment: Pick<Comment, "id" | "discussion_id">;
|
|
8
7
|
content: string;
|
|
9
|
-
createdBy: Pick<Account, "id">;
|
|
10
8
|
}): Promise<Comment> {
|
|
11
9
|
return args.lix.db
|
|
12
10
|
.insertInto("comment")
|
|
@@ -14,7 +12,6 @@ export async function createComment(args: {
|
|
|
14
12
|
discussion_id: args.parentComment.discussion_id,
|
|
15
13
|
parent_id: args.parentComment.id,
|
|
16
14
|
content: args.content,
|
|
17
|
-
created_by: args.createdBy.id,
|
|
18
15
|
})
|
|
19
16
|
.returningAll()
|
|
20
17
|
.executeTakeFirstOrThrow();
|
|
@@ -1,50 +1,20 @@
|
|
|
1
1
|
import { expect, test } from "vitest";
|
|
2
2
|
import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
3
|
-
import { newLixFile } from "../lix/new-lix.js";
|
|
4
|
-
import type { DetectedChange, LixPlugin } from "../plugin/lix-plugin.js";
|
|
5
3
|
import { createDiscussion } from "./create-discussion.js";
|
|
6
4
|
import { createChangeSet } from "../change-set/create-change-set.js";
|
|
7
|
-
import { changeQueueSettled } from "../change-queue/change-queue-settled.js";
|
|
8
|
-
|
|
9
|
-
const mockPlugin: LixPlugin = {
|
|
10
|
-
key: "mock-plugin",
|
|
11
|
-
detectChangesGlob: "*",
|
|
12
|
-
detectChanges: async ({ after }) => {
|
|
13
|
-
return [
|
|
14
|
-
{
|
|
15
|
-
schema: {
|
|
16
|
-
key: "text",
|
|
17
|
-
type: "json",
|
|
18
|
-
},
|
|
19
|
-
entity_id: "test",
|
|
20
|
-
snapshot: {
|
|
21
|
-
text: after ? new TextDecoder().decode(after.data) : undefined,
|
|
22
|
-
},
|
|
23
|
-
} satisfies DetectedChange,
|
|
24
|
-
];
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
5
|
|
|
28
6
|
test("should be able to start a discussion on changes", async () => {
|
|
29
|
-
const lix = await openLixInMemory({
|
|
30
|
-
blob: await newLixFile(),
|
|
31
|
-
providePlugins: [mockPlugin],
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const enc = new TextEncoder();
|
|
7
|
+
const lix = await openLixInMemory({});
|
|
35
8
|
|
|
9
|
+
// produce a change
|
|
36
10
|
await lix.db
|
|
37
|
-
.insertInto("
|
|
38
|
-
.values({
|
|
11
|
+
.insertInto("key_value")
|
|
12
|
+
.values({
|
|
13
|
+
key: "mock_key",
|
|
14
|
+
value: "mock_value",
|
|
15
|
+
})
|
|
39
16
|
.execute();
|
|
40
17
|
|
|
41
|
-
await changeQueueSettled({ lix });
|
|
42
|
-
|
|
43
|
-
const current_author = await lix.db
|
|
44
|
-
.selectFrom("active_account")
|
|
45
|
-
.selectAll()
|
|
46
|
-
.executeTakeFirstOrThrow();
|
|
47
|
-
|
|
48
18
|
const changes = await lix.db
|
|
49
19
|
.selectFrom("change")
|
|
50
20
|
.selectAll("change")
|
|
@@ -53,9 +23,8 @@ test("should be able to start a discussion on changes", async () => {
|
|
|
53
23
|
await lix.db.transaction().execute(async (trx) => {
|
|
54
24
|
await createDiscussion({
|
|
55
25
|
lix: { db: trx },
|
|
26
|
+
firstComment: { content: "Hello, world!" },
|
|
56
27
|
changeSet: await createChangeSet({ lix: { db: trx }, changes }),
|
|
57
|
-
content: "comment on a change",
|
|
58
|
-
createdBy: { id: current_author.id },
|
|
59
28
|
});
|
|
60
29
|
});
|
|
61
30
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Account } from "../account/database-schema.js";
|
|
2
1
|
import type { ChangeSet, Comment, Discussion } from "../database/schema.js";
|
|
3
2
|
import type { Lix } from "../lix/open-lix.js";
|
|
4
3
|
|
|
@@ -8,7 +7,7 @@ import type { Lix } from "../lix/open-lix.js";
|
|
|
8
7
|
* @example
|
|
9
8
|
* ```ts
|
|
10
9
|
* const changeSet = await createChangeSet({ lix, changes: ["change1", "change2"] });
|
|
11
|
-
* const discussion = await createDiscussion({ lix, changeSet,
|
|
10
|
+
* const discussion = await createDiscussion({ lix, changeSet, firstComment: { content: "first comment" } });
|
|
12
11
|
* ```
|
|
13
12
|
*
|
|
14
13
|
* @returns the created discussion
|
|
@@ -16,9 +15,8 @@ import type { Lix } from "../lix/open-lix.js";
|
|
|
16
15
|
export async function createDiscussion(args: {
|
|
17
16
|
lix: Pick<Lix, "db">;
|
|
18
17
|
changeSet: Pick<ChangeSet, "id">;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}): Promise<Discussion & { comment: Comment }> {
|
|
18
|
+
firstComment: Pick<Comment, "content">;
|
|
19
|
+
}): Promise<Discussion & { firstComment: Comment }> {
|
|
22
20
|
const executeInTransaction = async (trx: Lix["db"]) => {
|
|
23
21
|
const discussion = await trx
|
|
24
22
|
.insertInto("discussion")
|
|
@@ -28,18 +26,17 @@ export async function createDiscussion(args: {
|
|
|
28
26
|
.returningAll()
|
|
29
27
|
.executeTakeFirstOrThrow();
|
|
30
28
|
|
|
31
|
-
const
|
|
29
|
+
const firstComment = await trx
|
|
32
30
|
.insertInto("comment")
|
|
33
31
|
.values({
|
|
34
32
|
parent_id: null,
|
|
35
33
|
discussion_id: discussion.id,
|
|
36
|
-
content: args.content,
|
|
37
|
-
created_by: args.createdBy.id,
|
|
34
|
+
content: args.firstComment.content,
|
|
38
35
|
})
|
|
39
36
|
.returningAll()
|
|
40
37
|
.executeTakeFirstOrThrow();
|
|
41
38
|
|
|
42
|
-
return { ...discussion,
|
|
39
|
+
return { ...discussion, firstComment };
|
|
43
40
|
};
|
|
44
41
|
|
|
45
42
|
// user provided an open transaction
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FileQueueEntry } from "../database/schema.js";
|
|
2
2
|
import type { DetectedChange } from "../plugin/lix-plugin.js";
|
|
3
3
|
import type { Lix } from "../lix/open-lix.js";
|
|
4
4
|
import { sql } from "kysely";
|
|
@@ -31,7 +31,7 @@ async function glob(args: {
|
|
|
31
31
|
// creates initial changes for new files
|
|
32
32
|
export async function handleFileInsert(args: {
|
|
33
33
|
lix: Pick<Lix, "db" | "plugin" | "sqlite">;
|
|
34
|
-
|
|
34
|
+
fileQueueEntry: FileQueueEntry;
|
|
35
35
|
}): Promise<void> {
|
|
36
36
|
const detectedChanges: Array<DetectedChange & { pluginKey: string }> = [];
|
|
37
37
|
|
|
@@ -40,7 +40,7 @@ export async function handleFileInsert(args: {
|
|
|
40
40
|
// the path of the file is either the after path or the before path
|
|
41
41
|
// depending on whether the file was deleted, updated, or created
|
|
42
42
|
const path =
|
|
43
|
-
args.
|
|
43
|
+
args.fileQueueEntry.path_after ?? args.fileQueueEntry.path_before;
|
|
44
44
|
|
|
45
45
|
if (path === null) {
|
|
46
46
|
throw new Error("Both before and after paths are null");
|
|
@@ -67,7 +67,7 @@ export async function handleFileInsert(args: {
|
|
|
67
67
|
throw error;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
if (args.
|
|
70
|
+
if (args.fileQueueEntry.data_after === null) {
|
|
71
71
|
throw new Error("Data after is null");
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -75,10 +75,10 @@ export async function handleFileInsert(args: {
|
|
|
75
75
|
lix: args.lix,
|
|
76
76
|
before: undefined,
|
|
77
77
|
after: {
|
|
78
|
-
id: args.
|
|
78
|
+
id: args.fileQueueEntry.file_id,
|
|
79
79
|
path,
|
|
80
|
-
metadata: args.
|
|
81
|
-
data: args.
|
|
80
|
+
metadata: args.fileQueueEntry.metadata_after,
|
|
81
|
+
data: args.fileQueueEntry.data_after,
|
|
82
82
|
},
|
|
83
83
|
})) {
|
|
84
84
|
detectedChanges.push({
|
|
@@ -107,7 +107,7 @@ export async function handleFileInsert(args: {
|
|
|
107
107
|
authors: currentAuthors,
|
|
108
108
|
version: currentVersion,
|
|
109
109
|
entityId: detectedChange.entity_id,
|
|
110
|
-
fileId: args.
|
|
110
|
+
fileId: args.fileQueueEntry.file_id,
|
|
111
111
|
pluginKey: detectedChange.pluginKey,
|
|
112
112
|
schemaKey: detectedChange.schema.key,
|
|
113
113
|
snapshotContent: detectedChange.snapshot,
|
|
@@ -116,15 +116,15 @@ export async function handleFileInsert(args: {
|
|
|
116
116
|
);
|
|
117
117
|
|
|
118
118
|
await trx
|
|
119
|
-
.deleteFrom("
|
|
120
|
-
.where("id", "=", args.
|
|
119
|
+
.deleteFrom("file_queue")
|
|
120
|
+
.where("id", "=", args.fileQueueEntry.id)
|
|
121
121
|
.execute();
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
export async function handleFileUpdate(args: {
|
|
126
126
|
lix: Pick<Lix, "db" | "plugin" | "sqlite">;
|
|
127
|
-
|
|
127
|
+
fileQueueEntry: FileQueueEntry;
|
|
128
128
|
}): Promise<void> {
|
|
129
129
|
const detectedChanges: Array<DetectedChange & { pluginKey: string }> = [];
|
|
130
130
|
|
|
@@ -133,7 +133,7 @@ export async function handleFileUpdate(args: {
|
|
|
133
133
|
// the path of the file is either the after path or the before path
|
|
134
134
|
// depending on whether the file was deleted, updated, or created
|
|
135
135
|
const path =
|
|
136
|
-
args.
|
|
136
|
+
args.fileQueueEntry.path_after ?? args.fileQueueEntry.path_before;
|
|
137
137
|
|
|
138
138
|
if (path === null) {
|
|
139
139
|
throw new Error("Both before and after paths are null");
|
|
@@ -160,19 +160,19 @@ export async function handleFileUpdate(args: {
|
|
|
160
160
|
}
|
|
161
161
|
for (const change of await plugin.detectChanges({
|
|
162
162
|
lix: args.lix,
|
|
163
|
-
before: args.
|
|
163
|
+
before: args.fileQueueEntry.data_before
|
|
164
164
|
? {
|
|
165
|
-
id: args.
|
|
165
|
+
id: args.fileQueueEntry.file_id,
|
|
166
166
|
path: path,
|
|
167
|
-
metadata: args.
|
|
168
|
-
data: args.
|
|
167
|
+
metadata: args.fileQueueEntry.metadata_before,
|
|
168
|
+
data: args.fileQueueEntry.data_before,
|
|
169
169
|
}
|
|
170
170
|
: undefined,
|
|
171
171
|
after: {
|
|
172
|
-
id: args.
|
|
172
|
+
id: args.fileQueueEntry.file_id,
|
|
173
173
|
path,
|
|
174
|
-
metadata: args.
|
|
175
|
-
data: args.
|
|
174
|
+
metadata: args.fileQueueEntry.metadata_after,
|
|
175
|
+
data: args.fileQueueEntry.data_after!,
|
|
176
176
|
},
|
|
177
177
|
})) {
|
|
178
178
|
detectedChanges.push({
|
|
@@ -201,7 +201,7 @@ export async function handleFileUpdate(args: {
|
|
|
201
201
|
authors: currentAuthors,
|
|
202
202
|
version: currentVersion,
|
|
203
203
|
entityId: detectedChange.entity_id,
|
|
204
|
-
fileId: args.
|
|
204
|
+
fileId: args.fileQueueEntry.file_id,
|
|
205
205
|
pluginKey: detectedChange.pluginKey,
|
|
206
206
|
schemaKey: detectedChange.schema.key,
|
|
207
207
|
snapshotContent: detectedChange.snapshot,
|
|
@@ -210,8 +210,8 @@ export async function handleFileUpdate(args: {
|
|
|
210
210
|
);
|
|
211
211
|
|
|
212
212
|
await trx
|
|
213
|
-
.deleteFrom("
|
|
214
|
-
.where("id", "=", args.
|
|
213
|
+
.deleteFrom("file_queue")
|
|
214
|
+
.where("id", "=", args.fileQueueEntry.id)
|
|
215
215
|
.execute();
|
|
216
216
|
});
|
|
217
217
|
}
|
|
@@ -227,7 +227,7 @@ export async function handleFileUpdate(args: {
|
|
|
227
227
|
*/
|
|
228
228
|
export async function handleFileDelete(args: {
|
|
229
229
|
lix: Pick<Lix, "db" | "plugin" | "sqlite">;
|
|
230
|
-
|
|
230
|
+
fileQueueEntry: FileQueueEntry;
|
|
231
231
|
}): Promise<void> {
|
|
232
232
|
await args.lix.db.transaction().execute(async (trx) => {
|
|
233
233
|
const currentVersion = await trx
|
|
@@ -238,7 +238,7 @@ export async function handleFileDelete(args: {
|
|
|
238
238
|
|
|
239
239
|
const toBeDeletedEntities = await trx
|
|
240
240
|
.selectFrom("change")
|
|
241
|
-
.where("file_id", "=", args.
|
|
241
|
+
.where("file_id", "=", args.fileQueueEntry.file_id)
|
|
242
242
|
.where(changeIsLeafInVersion(currentVersion))
|
|
243
243
|
.select("entity_id")
|
|
244
244
|
.select("schema_key")
|
|
@@ -257,7 +257,7 @@ export async function handleFileDelete(args: {
|
|
|
257
257
|
authors: currentAuthors,
|
|
258
258
|
version: currentVersion,
|
|
259
259
|
entityId: change.entity_id,
|
|
260
|
-
fileId: args.
|
|
260
|
+
fileId: args.fileQueueEntry.file_id,
|
|
261
261
|
pluginKey: change.plugin_key,
|
|
262
262
|
schemaKey: change.schema_key,
|
|
263
263
|
snapshotContent: null, // Snapshot is null for deletions
|
|
@@ -266,8 +266,8 @@ export async function handleFileDelete(args: {
|
|
|
266
266
|
);
|
|
267
267
|
|
|
268
268
|
await trx
|
|
269
|
-
.deleteFrom("
|
|
270
|
-
.where("id", "=", args.
|
|
269
|
+
.deleteFrom("file_queue")
|
|
270
|
+
.where("id", "=", args.fileQueueEntry.id)
|
|
271
271
|
.execute();
|
|
272
272
|
});
|
|
273
273
|
}
|
package/src/{change-queue/init-change-queue.test.ts → file-queue/file-queue-process.test.ts}
RENAMED
|
@@ -2,8 +2,8 @@ import { expect, test, vi } from "vitest";
|
|
|
2
2
|
import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
3
3
|
import { newLixFile } from "../lix/new-lix.js";
|
|
4
4
|
import type { DetectedChange, LixPlugin } from "../plugin/lix-plugin.js";
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
5
|
+
import type { FileQueueEntry, LixFile } from "../database/schema.js";
|
|
6
|
+
import { fileQueueSettled } from "./file-queue-settled.js";
|
|
7
7
|
|
|
8
8
|
test("should use queue and settled correctly", async () => {
|
|
9
9
|
const mockPlugin: LixPlugin = {
|
|
@@ -52,7 +52,7 @@ test("should use queue and settled correctly", async () => {
|
|
|
52
52
|
.values({ id: "test", path: "/test.txt", data: dataInitial })
|
|
53
53
|
.execute();
|
|
54
54
|
|
|
55
|
-
const queue = await lix.db.selectFrom("
|
|
55
|
+
const queue = await lix.db.selectFrom("file_queue").selectAll().execute();
|
|
56
56
|
|
|
57
57
|
expect(queue).toEqual([
|
|
58
58
|
expect.objectContaining({
|
|
@@ -61,13 +61,13 @@ test("should use queue and settled correctly", async () => {
|
|
|
61
61
|
path_after: "/test.txt",
|
|
62
62
|
data_after: dataInitial,
|
|
63
63
|
data_before: null,
|
|
64
|
-
} satisfies Partial<
|
|
64
|
+
} satisfies Partial<FileQueueEntry>),
|
|
65
65
|
]);
|
|
66
66
|
|
|
67
|
-
await
|
|
67
|
+
await fileQueueSettled({ lix });
|
|
68
68
|
|
|
69
69
|
expect(
|
|
70
|
-
(await lix.db.selectFrom("
|
|
70
|
+
(await lix.db.selectFrom("file_queue").selectAll().execute()).length
|
|
71
71
|
).toBe(0);
|
|
72
72
|
|
|
73
73
|
// TODO QUEUE check if the replacement of file_internal was expected
|
|
@@ -104,8 +104,7 @@ test("should use queue and settled correctly", async () => {
|
|
|
104
104
|
content: {
|
|
105
105
|
text: "insert text",
|
|
106
106
|
},
|
|
107
|
-
|
|
108
|
-
account_id: expect.stringMatching(/^anonymous_/),
|
|
107
|
+
account_id: expect.stringMatching(/./),
|
|
109
108
|
}),
|
|
110
109
|
])
|
|
111
110
|
);
|
|
@@ -118,14 +117,14 @@ test("should use queue and settled correctly", async () => {
|
|
|
118
117
|
.execute();
|
|
119
118
|
|
|
120
119
|
// const beforeQueueTick = await lix.db
|
|
121
|
-
// .selectFrom("
|
|
120
|
+
// .selectFrom("file_queue")
|
|
122
121
|
// .selectAll()
|
|
123
122
|
// .execute();
|
|
124
123
|
|
|
125
124
|
// expect(beforeQueueTick.length).toBe(1);
|
|
126
125
|
|
|
127
126
|
// const afterQueueTick = await lix.db
|
|
128
|
-
// .selectFrom("
|
|
127
|
+
// .selectFrom("file_queue")
|
|
129
128
|
// .selectAll()
|
|
130
129
|
// .execute();
|
|
131
130
|
|
|
@@ -149,11 +148,11 @@ test("should use queue and settled correctly", async () => {
|
|
|
149
148
|
.where("id", "=", "test")
|
|
150
149
|
.execute();
|
|
151
150
|
|
|
152
|
-
const queue2 = await lix.db.selectFrom("
|
|
151
|
+
const queue2 = await lix.db.selectFrom("file_queue").selectAll().execute();
|
|
153
152
|
|
|
154
153
|
expect(queue2).toEqual([
|
|
155
154
|
// change update 1 is the same as change update 2
|
|
156
|
-
// hence, only 2
|
|
155
|
+
// hence, only 2 fil queue entries are expected
|
|
157
156
|
expect.objectContaining({
|
|
158
157
|
id: 3,
|
|
159
158
|
file_id: "test",
|
|
@@ -161,7 +160,7 @@ test("should use queue and settled correctly", async () => {
|
|
|
161
160
|
metadata_after: null,
|
|
162
161
|
data_before: dataUpdate1,
|
|
163
162
|
data_after: dataUpdate2,
|
|
164
|
-
} satisfies Partial<
|
|
163
|
+
} satisfies Partial<FileQueueEntry>),
|
|
165
164
|
expect.objectContaining({
|
|
166
165
|
id: 4,
|
|
167
166
|
file_id: "test",
|
|
@@ -169,13 +168,13 @@ test("should use queue and settled correctly", async () => {
|
|
|
169
168
|
metadata_after: null,
|
|
170
169
|
data_before: dataUpdate2,
|
|
171
170
|
data_after: dataUpdate3,
|
|
172
|
-
} satisfies Partial<
|
|
171
|
+
} satisfies Partial<FileQueueEntry>),
|
|
173
172
|
]);
|
|
174
173
|
|
|
175
|
-
await
|
|
174
|
+
await fileQueueSettled({ lix });
|
|
176
175
|
|
|
177
176
|
expect(
|
|
178
|
-
(await lix.db.selectFrom("
|
|
177
|
+
(await lix.db.selectFrom("file_queue").selectAll().execute()).length
|
|
179
178
|
).toBe(0);
|
|
180
179
|
|
|
181
180
|
const updatedChanges = await lix.db
|
|
@@ -209,7 +208,7 @@ test("should use queue and settled correctly", async () => {
|
|
|
209
208
|
content: {
|
|
210
209
|
text: "insert text",
|
|
211
210
|
},
|
|
212
|
-
account_id: expect.stringMatching(
|
|
211
|
+
account_id: expect.stringMatching(/./),
|
|
213
212
|
}),
|
|
214
213
|
expect.objectContaining({
|
|
215
214
|
entity_id: "test",
|
|
@@ -219,7 +218,7 @@ test("should use queue and settled correctly", async () => {
|
|
|
219
218
|
content: {
|
|
220
219
|
text: "updated text",
|
|
221
220
|
},
|
|
222
|
-
account_id: expect.stringMatching(
|
|
221
|
+
account_id: expect.stringMatching(/./),
|
|
223
222
|
}),
|
|
224
223
|
expect.objectContaining({
|
|
225
224
|
file_id: "test",
|
|
@@ -229,7 +228,7 @@ test("should use queue and settled correctly", async () => {
|
|
|
229
228
|
content: {
|
|
230
229
|
text: "second text update",
|
|
231
230
|
},
|
|
232
|
-
account_id: expect.stringMatching(
|
|
231
|
+
account_id: expect.stringMatching(/./),
|
|
233
232
|
}),
|
|
234
233
|
])
|
|
235
234
|
);
|
|
@@ -303,7 +302,7 @@ test.todo("changes should contain the author", async () => {
|
|
|
303
302
|
})
|
|
304
303
|
.execute();
|
|
305
304
|
|
|
306
|
-
await
|
|
305
|
+
await fileQueueSettled({ lix });
|
|
307
306
|
|
|
308
307
|
// const changes1 = await lix.db.selectFrom("change").selectAll().execute();
|
|
309
308
|
|
|
@@ -319,7 +318,7 @@ test.todo("changes should contain the author", async () => {
|
|
|
319
318
|
.where("id", "=", "mock")
|
|
320
319
|
.execute();
|
|
321
320
|
|
|
322
|
-
await
|
|
321
|
+
await fileQueueSettled({ lix });
|
|
323
322
|
|
|
324
323
|
// const changes2 = await lix.db.selectFrom("change").selectAll().execute();
|
|
325
324
|
|
|
@@ -333,7 +332,7 @@ test.todo("changes should contain the author", async () => {
|
|
|
333
332
|
.where("id", "=", "mock")
|
|
334
333
|
.execute();
|
|
335
334
|
|
|
336
|
-
await
|
|
335
|
+
await fileQueueSettled({ lix });
|
|
337
336
|
|
|
338
337
|
// const changes3 = await lix.db.selectFrom("change").selectAll().execute();
|
|
339
338
|
|
|
@@ -378,7 +377,7 @@ test("should handle file deletions correctly", async () => {
|
|
|
378
377
|
.execute();
|
|
379
378
|
|
|
380
379
|
// Queue deletion
|
|
381
|
-
await
|
|
380
|
+
await fileQueueSettled({ lix });
|
|
382
381
|
|
|
383
382
|
const changesAfterInsert = await lix.db
|
|
384
383
|
.selectFrom("change")
|
|
@@ -404,7 +403,7 @@ test("should handle file deletions correctly", async () => {
|
|
|
404
403
|
await lix.db.deleteFrom("file").where("id", "=", "file0").execute();
|
|
405
404
|
|
|
406
405
|
// Ensure the queue reflects the deletion entry
|
|
407
|
-
const queue = await lix.db.selectFrom("
|
|
406
|
+
const queue = await lix.db.selectFrom("file_queue").selectAll().execute();
|
|
408
407
|
|
|
409
408
|
expect(queue).toEqual([
|
|
410
409
|
expect.objectContaining({
|
|
@@ -413,15 +412,15 @@ test("should handle file deletions correctly", async () => {
|
|
|
413
412
|
data_before: null,
|
|
414
413
|
path_after: null,
|
|
415
414
|
data_after: null,
|
|
416
|
-
} satisfies Partial<
|
|
415
|
+
} satisfies Partial<FileQueueEntry>),
|
|
417
416
|
]);
|
|
418
417
|
|
|
419
|
-
// Run the
|
|
420
|
-
await
|
|
418
|
+
// Run the fil queue settlement process
|
|
419
|
+
await fileQueueSettled({ lix });
|
|
421
420
|
|
|
422
|
-
// Verify the
|
|
421
|
+
// Verify the fil queue is empty
|
|
423
422
|
expect(
|
|
424
|
-
(await lix.db.selectFrom("
|
|
423
|
+
(await lix.db.selectFrom("file_queue").selectAll().execute()).length
|
|
425
424
|
).toBe(0);
|
|
426
425
|
|
|
427
426
|
// Verify the changes reflect the deletion
|