@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/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Opral US Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../src/account/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,cAAc,GACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../src/account/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,cAAc,GACpB,cAAc,CA+BhB;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb,CAAC"}
|
|
@@ -15,10 +15,6 @@ export function applyAccountDatabaseSchema(sqlite) {
|
|
|
15
15
|
name TEXT NOT NULL
|
|
16
16
|
) STRICT;
|
|
17
17
|
|
|
18
|
-
-- default anonymous account
|
|
19
|
-
-- INSERT OR IGNORE INTO account (id, name)
|
|
20
|
-
-- VALUES ('anonymous', 'anonymous');
|
|
21
|
-
|
|
22
18
|
-- current account(s)
|
|
23
19
|
-- temp table because current accounts are session
|
|
24
20
|
-- specific and should not be persisted
|
|
@@ -28,8 +24,8 @@ export function applyAccountDatabaseSchema(sqlite) {
|
|
|
28
24
|
-- can't use foreign keys in temp tables... :(
|
|
29
25
|
) STRICT;
|
|
30
26
|
|
|
31
|
-
-- default to
|
|
32
|
-
INSERT INTO active_account (id, name) values (
|
|
27
|
+
-- default to a new account
|
|
28
|
+
INSERT INTO active_account (id, name) values (uuid_v7(), '${anonymousAccountName}');
|
|
33
29
|
`;
|
|
34
30
|
return sqlite.exec(sql);
|
|
35
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../src/account/database-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,UAAU,0BAA0B,CACzC,MAAsB;IAEtB,MAAM,oBAAoB,GAAG,aAAa,OAAO,CAAC;QACjD,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,GAAG;KACd,CAAC;QACD,8CAA8C;SAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE;QACf,sEAAsE;SACrE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjB,MAAM,GAAG,GAAG
|
|
1
|
+
{"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../src/account/database-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,UAAU,0BAA0B,CACzC,MAAsB;IAEtB,MAAM,oBAAoB,GAAG,aAAa,OAAO,CAAC;QACjD,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,GAAG;KACd,CAAC;QACD,8CAA8C;SAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE;QACf,sEAAsE;SACrE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjB,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;8DAgBiD,oBAAoB;CACjF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { contentFromDatabase, createDialect, createInMemoryDatabase, loadDatabas
|
|
|
3
3
|
import { expect, test } from "vitest";
|
|
4
4
|
import { applyAccountDatabaseSchema, } from "./database-schema.js";
|
|
5
5
|
import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
6
|
-
test("account table should have no entry
|
|
6
|
+
test("account table should have no entry but an active account", async () => {
|
|
7
7
|
const sqlite = await createInMemoryDatabase({
|
|
8
8
|
readOnly: false,
|
|
9
9
|
});
|
|
@@ -19,17 +19,13 @@ test("account table should have no entry in the beginning and activte account sh
|
|
|
19
19
|
database: sqlite,
|
|
20
20
|
}),
|
|
21
21
|
});
|
|
22
|
-
const account = await db
|
|
23
|
-
.selectFrom("account")
|
|
24
|
-
.selectAll()
|
|
25
|
-
.where("id", "=", "anonymous")
|
|
26
|
-
.execute();
|
|
22
|
+
const account = await db.selectFrom("account").selectAll().execute();
|
|
27
23
|
expect(account?.length).toBe(0);
|
|
28
24
|
const active_account = await db
|
|
29
25
|
.selectFrom("active_account")
|
|
30
26
|
.selectAll()
|
|
31
27
|
.executeTakeFirst();
|
|
32
|
-
expect(active_account?.id).toBe("
|
|
28
|
+
expect(active_account?.id).toBe("mock_uuid_v7");
|
|
33
29
|
});
|
|
34
30
|
test("account.id should default to uuid_v7", async () => {
|
|
35
31
|
const sqlite = await createInMemoryDatabase({
|
|
@@ -114,7 +110,7 @@ test('it should drop the temp "current_account" table on reboot to not persist t
|
|
|
114
110
|
.selectAll()
|
|
115
111
|
.executeTakeFirst();
|
|
116
112
|
expect(account2).toMatchObject({
|
|
117
|
-
id: "
|
|
113
|
+
id: "mock_uuid_v7-2",
|
|
118
114
|
});
|
|
119
115
|
});
|
|
120
116
|
test("should generate different anonymous account names", async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-schema.test.js","sourceRoot":"","sources":["../../src/account/database-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACN,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACN,0BAA0B,GAG1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO/D,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"database-schema.test.js","sourceRoot":"","sources":["../../src/account/database-schema.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { withSkipFileQueue } from "../file-queue/with-skip-file-queue.js";
|
|
2
|
+
import { applyOwnChanges } from "../own-change-control/apply-own-change.js";
|
|
3
3
|
/**
|
|
4
4
|
* Applies the given changes to the lix.
|
|
5
5
|
*
|
|
@@ -26,23 +26,23 @@ export async function applyChanges(args) {
|
|
|
26
26
|
// Plugin changes depend on lix changes like the file
|
|
27
27
|
// data for example. Therefore, the lix changes need
|
|
28
28
|
// to be applied first.
|
|
29
|
-
const lixOwnChanges = groupByFile["
|
|
30
|
-
delete groupByFile["
|
|
29
|
+
const lixOwnChanges = groupByFile["lix_own_change_control"] ?? [];
|
|
30
|
+
delete groupByFile["lix_own_change_control"];
|
|
31
31
|
const plugins = await args.lix.plugin.getAll();
|
|
32
32
|
// TODO make detection of which plugin to use easier
|
|
33
33
|
// https://linear.app/opral/issue/LIXDK-104/add-detectedchangeschema
|
|
34
34
|
for (const [fileId, changes] of [
|
|
35
35
|
// applying lix own changes first
|
|
36
|
-
["
|
|
36
|
+
["lix_own_change_control", lixOwnChanges],
|
|
37
37
|
...Object.entries(groupByFile),
|
|
38
38
|
]) {
|
|
39
39
|
if (changes === undefined || changes.length === 0) {
|
|
40
40
|
continue;
|
|
41
41
|
}
|
|
42
42
|
// Skip own entity changes which have a file id 'null' and
|
|
43
|
-
// plugin key '
|
|
44
|
-
if (fileId === "
|
|
45
|
-
await
|
|
43
|
+
// plugin key 'lix_own_change_control' as they are not associated with a file
|
|
44
|
+
if (fileId === "lix_own_change_control") {
|
|
45
|
+
await applyOwnChanges({ lix: { ...args.lix, db: trx }, changes });
|
|
46
46
|
continue;
|
|
47
47
|
}
|
|
48
48
|
const groupByPlugin = Object.groupBy(changes, (c) => c.plugin_key);
|
|
@@ -78,7 +78,7 @@ export async function applyChanges(args) {
|
|
|
78
78
|
file,
|
|
79
79
|
changes,
|
|
80
80
|
});
|
|
81
|
-
await
|
|
81
|
+
await withSkipFileQueue(trx, async (trx) => {
|
|
82
82
|
await trx
|
|
83
83
|
.updateTable("file")
|
|
84
84
|
.set({ data: fileData })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-changes.js","sourceRoot":"","sources":["../../src/change/apply-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"apply-changes.js","sourceRoot":"","sources":["../../src/change/apply-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAE5E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAGlC;IACA,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAc,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CACjC,IAAI,CAAC,OAAO,EACZ,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,CAAC;QAEF,4CAA4C;QAC5C,EAAE;QACF,qDAAqD;QACrD,oDAAoD;QACpD,uBAAuB;QACvB,MAAM,aAAa,GAAG,WAAW,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAE/C,oDAAoD;QACpD,oEAAoE;QACpE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;YAC/B,iCAAiC;YACjC,CAAC,wBAAwB,EAAE,aAAa,CAAuB;YAC/D,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC9B,EAAE,CAAC;YACH,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,SAAS;YACV,CAAC;YACD,0DAA0D;YAC1D,6EAA6E;YAC7E,IAAI,MAAM,KAAK,wBAAwB,EAAE,CAAC;gBACzC,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClE,SAAS;YACV,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAEnE,uDAAuD;YACvD,sCAAsC;YACtC,MAAM,IAAI,GAAG,MAAM,GAAG;iBACpB,UAAU,CAAC,MAAM,CAAC;iBAClB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;iBACxB,SAAS,EAAE;iBACX,gBAAgB,EAAE,CAAC;YAErB,0CAA0C;YAC1C,mCAAmC;YACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACV,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACvC,gEAAgE;gBAChE,OAAO,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3B,SAAS;gBACV,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;gBAClE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACd,mBAAmB,SAAS,oCAAoC,CAChE,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;oBAC9C,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;oBAC7B,IAAI;oBACJ,OAAO;iBACP,CAAC,CAAC;gBAEH,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC1C,MAAM,GAAG;yBACP,WAAW,CAAC,MAAM,CAAC;yBACnB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;yBACvB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;yBACxB,OAAO,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;AACF,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { expect, test, vi } from "vitest";
|
|
|
2
2
|
import { openLixInMemory } from "../lix/open-lix-in-memory.js";
|
|
3
3
|
import { applyChanges } from "./apply-changes.js";
|
|
4
4
|
import { mockJsonSnapshot } from "../snapshot/mock-json-snapshot.js";
|
|
5
|
-
import {
|
|
5
|
+
import { fileQueueSettled } from "../file-queue/file-queue-settled.js";
|
|
6
6
|
test("it applies the given changes", async () => {
|
|
7
7
|
const lix = await openLixInMemory({});
|
|
8
8
|
// Prepare mock plugin
|
|
@@ -125,8 +125,8 @@ test("it applies own entity changes", async () => {
|
|
|
125
125
|
{
|
|
126
126
|
id: "change0",
|
|
127
127
|
entity_id: "mock-key",
|
|
128
|
-
file_id: "
|
|
129
|
-
plugin_key: "
|
|
128
|
+
file_id: "lix_own_change_control",
|
|
129
|
+
plugin_key: "lix_own_change_control",
|
|
130
130
|
schema_key: "lix_key_value_table",
|
|
131
131
|
snapshot_id: snapshot.id,
|
|
132
132
|
created_at: "2021-01-01T00:00:00Z",
|
|
@@ -138,7 +138,7 @@ test("it applies own entity changes", async () => {
|
|
|
138
138
|
.where("key", "=", "mock-key")
|
|
139
139
|
.selectAll()
|
|
140
140
|
.executeTakeFirst();
|
|
141
|
-
expect(keyValue).
|
|
141
|
+
expect(keyValue).toMatchObject({
|
|
142
142
|
key: "mock-key",
|
|
143
143
|
value: "1+1=2",
|
|
144
144
|
});
|
|
@@ -186,7 +186,7 @@ test("applies an insert change for a file if the file does not exist", async ()
|
|
|
186
186
|
})
|
|
187
187
|
.returningAll()
|
|
188
188
|
.executeTakeFirstOrThrow();
|
|
189
|
-
await
|
|
189
|
+
await fileQueueSettled({ lix });
|
|
190
190
|
const changes1 = await lix.db
|
|
191
191
|
.selectFrom("change")
|
|
192
192
|
.orderBy("id desc")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-changes.test.js","sourceRoot":"","sources":["../../src/change/apply-changes.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"apply-changes.test.js","sourceRoot":"","sources":["../../src/change/apply-changes.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-schema.d.ts","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"apply-schema.d.ts","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,cAAc,CAqQ5E"}
|
|
@@ -16,7 +16,7 @@ export function applySchema(args) {
|
|
|
16
16
|
-- file
|
|
17
17
|
|
|
18
18
|
CREATE TABLE IF NOT EXISTS file (
|
|
19
|
-
id TEXT PRIMARY KEY DEFAULT (
|
|
19
|
+
id TEXT PRIMARY KEY DEFAULT (nano_id(10)),
|
|
20
20
|
path TEXT NOT NULL UNIQUE,
|
|
21
21
|
data BLOB NOT NULL,
|
|
22
22
|
metadata BLOB,
|
|
@@ -25,7 +25,7 @@ export function applySchema(args) {
|
|
|
25
25
|
CHECK (is_valid_file_path(path))
|
|
26
26
|
) STRICT;
|
|
27
27
|
|
|
28
|
-
CREATE TABLE IF NOT EXISTS
|
|
28
|
+
CREATE TABLE IF NOT EXISTS file_queue (
|
|
29
29
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
30
30
|
file_id TEXT NOT NULL,
|
|
31
31
|
data_before BLOB,
|
|
@@ -38,18 +38,18 @@ export function applySchema(args) {
|
|
|
38
38
|
|
|
39
39
|
CREATE TRIGGER IF NOT EXISTS file_insert BEFORE INSERT ON file
|
|
40
40
|
BEGIN
|
|
41
|
-
INSERT INTO
|
|
41
|
+
INSERT INTO file_queue(
|
|
42
42
|
file_id, path_after, data_after, metadata_after
|
|
43
43
|
)
|
|
44
44
|
VALUES (
|
|
45
45
|
NEW.id, NEW.path, NEW.data, NEW.metadata
|
|
46
46
|
);
|
|
47
|
-
SELECT
|
|
47
|
+
SELECT triggerFileQueue();
|
|
48
48
|
END;
|
|
49
49
|
|
|
50
50
|
CREATE TRIGGER IF NOT EXISTS file_update BEFORE UPDATE ON file
|
|
51
51
|
BEGIN
|
|
52
|
-
INSERT INTO
|
|
52
|
+
INSERT INTO file_queue(
|
|
53
53
|
file_id,
|
|
54
54
|
path_before, data_before, metadata_before,
|
|
55
55
|
path_after, data_after, metadata_after
|
|
@@ -61,14 +61,14 @@ export function applySchema(args) {
|
|
|
61
61
|
NEW.path, NEW.data, NEW.metadata
|
|
62
62
|
);
|
|
63
63
|
|
|
64
|
-
SELECT
|
|
64
|
+
SELECT triggerFileQueue();
|
|
65
65
|
END;
|
|
66
66
|
|
|
67
67
|
CREATE TRIGGER IF NOT EXISTS file_delete BEFORE DELETE ON file
|
|
68
68
|
BEGIN
|
|
69
|
-
INSERT INTO
|
|
69
|
+
INSERT INTO file_queue(file_id)
|
|
70
70
|
VALUES (OLD.id);
|
|
71
|
-
SELECT
|
|
71
|
+
SELECT triggerFileQueue();
|
|
72
72
|
END;
|
|
73
73
|
|
|
74
74
|
CREATE TABLE IF NOT EXISTS change (
|
|
@@ -141,7 +141,7 @@ export function applySchema(args) {
|
|
|
141
141
|
-- change sets
|
|
142
142
|
|
|
143
143
|
CREATE TABLE IF NOT EXISTS change_set (
|
|
144
|
-
id TEXT PRIMARY KEY DEFAULT (
|
|
144
|
+
id TEXT PRIMARY KEY DEFAULT (nano_id(16))
|
|
145
145
|
) STRICT;
|
|
146
146
|
|
|
147
147
|
CREATE TABLE IF NOT EXISTS change_set_element (
|
|
@@ -162,34 +162,21 @@ export function applySchema(args) {
|
|
|
162
162
|
FOREIGN KEY(change_set_id) REFERENCES change_set(id)
|
|
163
163
|
) STRICT;
|
|
164
164
|
|
|
165
|
-
CREATE TABLE IF NOT EXISTS change_set_label_author (
|
|
166
|
-
label_id TEXT NOT NULL,
|
|
167
|
-
change_set_id TEXT NOT NULL,
|
|
168
|
-
account_id TEXT NOT NULL,
|
|
169
|
-
|
|
170
|
-
PRIMARY KEY(label_id, change_set_id, account_id),
|
|
171
|
-
FOREIGN KEY(label_id, change_set_id) REFERENCES change_set_label(label_id, change_set_id),
|
|
172
|
-
FOREIGN KEY(account_id) REFERENCES account(id)
|
|
173
|
-
) STRICT;
|
|
174
|
-
|
|
175
165
|
-- discussions
|
|
176
166
|
|
|
177
167
|
CREATE TABLE IF NOT EXISTS discussion (
|
|
178
|
-
id TEXT PRIMARY KEY DEFAULT (
|
|
168
|
+
id TEXT PRIMARY KEY DEFAULT (nano_id(12)),
|
|
179
169
|
change_set_id TEXT NOT NULL,
|
|
180
170
|
|
|
181
171
|
FOREIGN KEY(change_set_id) REFERENCES change_set(id)
|
|
182
172
|
) STRICT;
|
|
183
173
|
|
|
184
174
|
CREATE TABLE IF NOT EXISTS comment (
|
|
185
|
-
id TEXT PRIMARY KEY DEFAULT (
|
|
175
|
+
id TEXT PRIMARY KEY DEFAULT (nano_id(14)),
|
|
186
176
|
parent_id TEXT,
|
|
187
177
|
discussion_id TEXT NULL,
|
|
188
|
-
created_at TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
189
178
|
content TEXT NOT NULL,
|
|
190
|
-
created_by TEXT NOT NULL,
|
|
191
179
|
|
|
192
|
-
FOREIGN KEY(created_by) REFERENCES account(id),
|
|
193
180
|
FOREIGN KEY(discussion_id) REFERENCES discussion(id),
|
|
194
181
|
FOREIGN KEY(parent_id) REFERENCES comment(id)
|
|
195
182
|
) STRICT;
|
|
@@ -197,7 +184,7 @@ export function applySchema(args) {
|
|
|
197
184
|
-- labels
|
|
198
185
|
|
|
199
186
|
CREATE TABLE IF NOT EXISTS label (
|
|
200
|
-
id TEXT PRIMARY KEY DEFAULT (
|
|
187
|
+
id TEXT PRIMARY KEY DEFAULT (nano_id(8)),
|
|
201
188
|
|
|
202
189
|
name TEXT NOT NULL UNIQUE -- e.g., 'confirmed', 'reviewed'
|
|
203
190
|
|
|
@@ -211,23 +198,22 @@ export function applySchema(args) {
|
|
|
211
198
|
CREATE TABLE IF NOT EXISTS version (
|
|
212
199
|
id TEXT PRIMARY KEY DEFAULT (uuid_v7()),
|
|
213
200
|
|
|
214
|
-
|
|
215
|
-
--
|
|
216
|
-
-- "anonymous" versiones can ease workflows.
|
|
217
|
-
-- For example, a user can create a version
|
|
218
|
-
-- without a name to experiment with
|
|
219
|
-
-- changes with no mental overhead of
|
|
220
|
-
-- naming the version.
|
|
221
|
-
name TEXT
|
|
201
|
+
name TEXT NOT NULL UNIQUE DEFAULT (human_id())
|
|
222
202
|
) STRICT;
|
|
223
203
|
|
|
224
204
|
CREATE TABLE IF NOT EXISTS version_change (
|
|
225
205
|
version_id TEXT NOT NULL,
|
|
226
206
|
change_id TEXT NOT NULL,
|
|
227
207
|
|
|
208
|
+
entity_id TEXT NOT NULL,
|
|
209
|
+
schema_key TEXT NOT NULL,
|
|
210
|
+
file_id TEXT NOT NULL,
|
|
211
|
+
|
|
228
212
|
PRIMARY KEY (version_id, change_id),
|
|
229
213
|
FOREIGN KEY (version_id) REFERENCES version(id) ON DELETE CASCADE,
|
|
230
|
-
FOREIGN KEY (change_id) REFERENCES change(id) ON DELETE CASCADE
|
|
214
|
+
FOREIGN KEY (change_id, entity_id, schema_key, file_id) REFERENCES change(id, entity_id, schema_key, file_id) ON DELETE CASCADE,
|
|
215
|
+
|
|
216
|
+
UNIQUE (version_id, entity_id, schema_key, file_id)
|
|
231
217
|
) STRICT;
|
|
232
218
|
|
|
233
219
|
CREATE TABLE IF NOT EXISTS version_change_conflict (
|
|
@@ -273,45 +259,7 @@ export function applySchema(args) {
|
|
|
273
259
|
WHERE id = NEW.account_id;
|
|
274
260
|
END;
|
|
275
261
|
|
|
276
|
-
CREATE TEMP TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_change_set_label_author
|
|
277
|
-
BEFORE INSERT ON change_set_label_author
|
|
278
|
-
FOR EACH ROW
|
|
279
|
-
WHEN NEW.account_id NOT IN (SELECT id FROM account) AND NEW.account_id IN (SELECT id FROM temp.active_account)
|
|
280
|
-
BEGIN
|
|
281
|
-
INSERT OR IGNORE INTO account
|
|
282
|
-
SELECT
|
|
283
|
-
*
|
|
284
|
-
FROM active_account
|
|
285
|
-
WHERE id = NEW.account_id;
|
|
286
|
-
END;
|
|
287
|
-
|
|
288
|
-
CREATE TEMP TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_comment
|
|
289
|
-
BEFORE INSERT ON comment
|
|
290
|
-
FOR EACH ROW
|
|
291
|
-
WHEN NEW.created_by NOT IN (SELECT id FROM account) AND NEW.created_by IN (SELECT id FROM temp.active_account)
|
|
292
|
-
BEGIN
|
|
293
|
-
INSERT OR IGNORE INTO account
|
|
294
|
-
SELECT
|
|
295
|
-
*
|
|
296
|
-
FROM active_account
|
|
297
|
-
WHERE id = NEW.created_by;
|
|
298
|
-
END;
|
|
299
|
-
|
|
300
|
-
|
|
301
262
|
`;
|
|
302
|
-
// CREATE TRIGGER IF NOT EXISTS insert_account_if_not_exists_on_change_set_label_author
|
|
303
|
-
// BEFORE INSERT ON change_set_label_author
|
|
304
|
-
// FOR EACH ROW
|
|
305
|
-
// BEGIN
|
|
306
|
-
// INSERT OR IGNORE INTO account (id, name)
|
|
307
|
-
// VALUES (
|
|
308
|
-
// NEW.account_id,
|
|
309
|
-
// CASE
|
|
310
|
-
// WHEN NEW.account_id LIKE 'anonymous_%' THEN 'anonymous'
|
|
311
|
-
// ELSE NEW.account_id
|
|
312
|
-
// END
|
|
313
|
-
// );
|
|
314
|
-
// END;
|
|
315
263
|
applyMutationLogDatabaseSchema(args.sqlite);
|
|
316
264
|
return args.sqlite;
|
|
317
265
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-schema.js","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgC;IAC3D,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzC,oEAAoE;IACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA
|
|
1
|
+
{"version":3,"file":"apply-schema.js","sourceRoot":"","sources":["../../src/database/apply-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgC;IAC3D,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzC,oEAAoE;IACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2Pd,CAAC;IAEH,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC"}
|
|
@@ -19,7 +19,7 @@ test("handles joins", async () => {
|
|
|
19
19
|
const mockFile0 = {
|
|
20
20
|
id: "file-0",
|
|
21
21
|
path: "/file-0",
|
|
22
|
-
data: new
|
|
22
|
+
data: new Uint8Array(),
|
|
23
23
|
metadata: {},
|
|
24
24
|
};
|
|
25
25
|
const mockChange0 = mockChange({ id: "change-0", file_id: "file-0" });
|
|
@@ -41,7 +41,7 @@ test("does not transform the query or results (json parsing)", async () => {
|
|
|
41
41
|
const mockFile0 = {
|
|
42
42
|
id: "file-0",
|
|
43
43
|
path: "/file-0",
|
|
44
|
-
data: new
|
|
44
|
+
data: new Uint8Array(),
|
|
45
45
|
metadata: {
|
|
46
46
|
foo: "bar",
|
|
47
47
|
},
|
|
@@ -74,7 +74,7 @@ test("using executeSync with a 'fake async' function should work", async () => {
|
|
|
74
74
|
return executeSync({ lix, query });
|
|
75
75
|
}
|
|
76
76
|
const result = await fakeAyncQuery(lix);
|
|
77
|
-
expect(result).
|
|
77
|
+
expect(result).toMatchObject([{ key: "foo", value: "bar" }]);
|
|
78
78
|
});
|
|
79
79
|
test("it works with kysely transactions", async () => {
|
|
80
80
|
const lix = await openLixInMemory({});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-sync.test.js","sourceRoot":"","sources":["../../src/database/execute-sync.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACpF,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAE,EAAE,CAC1B,GAAG,CAAC,EAAE;SACJ,UAAU,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACpC,YAAY,EAAE,CAAC;IAElB,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IAChC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAY;QAC1B,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"execute-sync.test.js","sourceRoot":"","sources":["../../src/database/execute-sync.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-db.d.ts","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"init-db.d.ts","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWrD,wBAAgB,MAAM,CAAC,IAAI,EAAE;IAC5B,MAAM,EAAE,cAAc,CAAC;CACvB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAsB5B"}
|
package/dist/database/init-db.js
CHANGED
|
@@ -7,7 +7,9 @@ import { jsonSha256 } from "../snapshot/json-sha-256.js";
|
|
|
7
7
|
import { ParseJsonBPluginV1 } from "./kysely-plugin/parse-jsonb-plugin-v1.js";
|
|
8
8
|
import { SerializeJsonBPlugin } from "./kysely-plugin/serialize-jsonb-plugin.js";
|
|
9
9
|
import { createSession } from "./mutation-log/lix-session.js";
|
|
10
|
-
import {
|
|
10
|
+
import { applyOwnChangeControlTriggers } from "../own-change-control/database-triggers.js";
|
|
11
|
+
import { humanId } from "human-id";
|
|
12
|
+
import { nanoid } from "./nano-id.js";
|
|
11
13
|
export function initDb(args) {
|
|
12
14
|
initFunctions({ sqlite: args.sqlite });
|
|
13
15
|
applySchema({ sqlite: args.sqlite });
|
|
@@ -19,7 +21,7 @@ export function initDb(args) {
|
|
|
19
21
|
ParseJsonBPluginV1({
|
|
20
22
|
// jsonb columns
|
|
21
23
|
file: ["metadata"],
|
|
22
|
-
|
|
24
|
+
file_queue: ["metadata_before", "metadata_after"],
|
|
23
25
|
snapshot: ["content"],
|
|
24
26
|
mutation_log: ["row_id"],
|
|
25
27
|
}),
|
|
@@ -27,7 +29,7 @@ export function initDb(args) {
|
|
|
27
29
|
],
|
|
28
30
|
});
|
|
29
31
|
// need to apply it here because db object needs to be available
|
|
30
|
-
|
|
32
|
+
applyOwnChangeControlTriggers(args.sqlite, db);
|
|
31
33
|
return db;
|
|
32
34
|
}
|
|
33
35
|
function initFunctions(args) {
|
|
@@ -76,5 +78,18 @@ function initFunctions(args) {
|
|
|
76
78
|
arity: 0,
|
|
77
79
|
xFunc: () => lixSession.sessionClockTick(),
|
|
78
80
|
});
|
|
81
|
+
args.sqlite.createFunction({
|
|
82
|
+
name: "human_id",
|
|
83
|
+
arity: 0,
|
|
84
|
+
xFunc: () => humanId({ separator: "-", capitalize: false }),
|
|
85
|
+
});
|
|
86
|
+
args.sqlite.createFunction({
|
|
87
|
+
name: "nano_id",
|
|
88
|
+
arity: 1,
|
|
89
|
+
// @ts-expect-error - not sure why this is not working
|
|
90
|
+
xFunc: (_ctx, length) => {
|
|
91
|
+
return nanoid(length);
|
|
92
|
+
},
|
|
93
|
+
});
|
|
79
94
|
}
|
|
80
95
|
//# sourceMappingURL=init-db.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-db.js","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAuB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init-db.js","sourceRoot":"","sources":["../../src/database/init-db.ts"],"names":[],"mappings":"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"}
|