@inlang/sdk 2.0.0-prerelease.0 → 2.0.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 -201
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/lix/index.d.ts +2 -0
- package/dist/lix/index.d.ts.map +1 -0
- package/dist/lix/index.js +5 -0
- package/dist/lix/index.js.map +1 -0
- package/dist/project/api.d.ts +0 -4
- package/dist/project/api.d.ts.map +1 -1
- package/dist/project/api.js +2 -2
- package/dist/project/api.js.map +1 -1
- package/dist/project/initHandleSaveToLixOnChange.d.ts.map +1 -1
- package/dist/project/initHandleSaveToLixOnChange.js +16 -10
- package/dist/project/initHandleSaveToLixOnChange.js.map +1 -1
- package/dist/project/loadProject.d.ts +11 -1
- package/dist/project/loadProject.d.ts.map +1 -1
- package/dist/project/loadProject.js +79 -16
- package/dist/project/loadProject.js.map +1 -1
- package/dist/project/loadProject.test.js +45 -22
- package/dist/project/loadProject.test.js.map +1 -1
- package/dist/project/loadProjectFromDirectory.d.ts +0 -10
- package/dist/project/loadProjectFromDirectory.d.ts.map +1 -1
- package/dist/project/loadProjectFromDirectory.js +30 -39
- package/dist/project/loadProjectFromDirectory.js.map +1 -1
- package/dist/project/loadProjectFromDirectory.test.js +32 -11
- package/dist/project/loadProjectFromDirectory.test.js.map +1 -1
- package/dist/project/loadProjectInMemory.d.ts.map +1 -1
- package/dist/project/loadProjectInMemory.js +3 -2
- package/dist/project/loadProjectInMemory.js.map +1 -1
- package/dist/project/maybeCaptureTelemetry.d.ts +8 -2
- package/dist/project/maybeCaptureTelemetry.d.ts.map +1 -1
- package/dist/project/maybeCaptureTelemetry.js +49 -37
- package/dist/project/maybeCaptureTelemetry.js.map +1 -1
- package/dist/project/maybeCaptureTelemetry.test.js +14 -3
- package/dist/project/maybeCaptureTelemetry.test.js.map +1 -1
- package/dist/project/newProject.d.ts.map +1 -1
- package/dist/project/newProject.js +6 -5
- package/dist/project/newProject.js.map +1 -1
- package/dist/project/saveProjectToDirectory.test.js +3 -3
- package/dist/project/saveProjectToDirectory.test.js.map +1 -1
- package/dist/query-utilities/index.d.ts +0 -1
- package/dist/query-utilities/index.d.ts.map +1 -1
- package/dist/query-utilities/index.js +2 -3
- package/dist/query-utilities/index.js.map +1 -1
- package/dist/services/env-variables/index.js +3 -3
- package/dist/services/env-variables/index.js.map +1 -1
- package/dist/services/telemetry/capture.d.ts +1 -0
- package/dist/services/telemetry/capture.d.ts.map +1 -1
- package/dist/services/telemetry/capture.js +5 -6
- package/dist/services/telemetry/capture.js.map +1 -1
- package/dist/services/telemetry/capture.test.js +4 -2
- package/dist/services/telemetry/capture.test.js.map +1 -1
- package/package.json +6 -11
- package/src/index.ts +0 -2
- package/src/lix/index.ts +1 -0
- package/src/project/api.ts +0 -4
- package/src/project/initHandleSaveToLixOnChange.ts +13 -8
- package/src/project/loadProject.test.ts +51 -23
- package/src/project/loadProject.ts +108 -15
- package/src/project/loadProjectFromDirectory.test.ts +44 -9
- package/src/project/loadProjectFromDirectory.ts +32 -47
- package/src/project/loadProjectInMemory.ts +1 -0
- package/src/project/maybeCaptureTelemetry.test.ts +16 -2
- package/src/project/maybeCaptureTelemetry.ts +55 -37
- package/src/project/newProject.ts +4 -3
- package/src/project/saveProjectToDirectory.test.ts +1 -1
- package/src/query-utilities/index.ts +0 -1
- package/src/services/telemetry/capture.test.ts +2 -0
- package/src/services/telemetry/capture.ts +5 -4
- package/dist/project/state/id$.d.ts +0 -6
- package/dist/project/state/id$.d.ts.map +0 -1
- package/dist/project/state/id$.js +0 -19
- package/dist/project/state/id$.js.map +0 -1
- package/dist/project/state/id$.test.d.ts +0 -2
- package/dist/project/state/id$.test.d.ts.map +0 -1
- package/dist/project/state/id$.test.js +0 -36
- package/dist/project/state/id$.test.js.map +0 -1
- package/dist/project/state/setSettings.d.ts +0 -7
- package/dist/project/state/setSettings.d.ts.map +0 -1
- package/dist/project/state/setSettings.js +0 -16
- package/dist/project/state/setSettings.js.map +0 -1
- package/dist/project/state/setSettings.test.d.ts +0 -2
- package/dist/project/state/setSettings.test.d.ts.map +0 -1
- package/dist/project/state/setSettings.test.js +0 -58
- package/dist/project/state/setSettings.test.js.map +0 -1
- package/dist/project/state/settings$.d.ts +0 -7
- package/dist/project/state/settings$.d.ts.map +0 -1
- package/dist/project/state/settings$.js +0 -21
- package/dist/project/state/settings$.js.map +0 -1
- package/dist/project/state/settings$.test.d.ts +0 -2
- package/dist/project/state/settings$.test.d.ts.map +0 -1
- package/dist/project/state/settings$.test.js +0 -51
- package/dist/project/state/settings$.test.js.map +0 -1
- package/dist/project/state/state.d.ts +0 -58
- package/dist/project/state/state.d.ts.map +0 -1
- package/dist/project/state/state.js +0 -67
- package/dist/project/state/state.js.map +0 -1
- package/dist/project/state/state.test.d.ts +0 -2
- package/dist/project/state/state.test.d.ts.map +0 -1
- package/dist/project/state/state.test.js +0 -103
- package/dist/project/state/state.test.js.map +0 -1
- package/dist/query-utilities/pollQuery.d.ts +0 -14
- package/dist/query-utilities/pollQuery.d.ts.map +0 -1
- package/dist/query-utilities/pollQuery.js +0 -22
- package/dist/query-utilities/pollQuery.js.map +0 -1
- package/dist/query-utilities/pollQuery.test.d.ts +0 -2
- package/dist/query-utilities/pollQuery.test.d.ts.map +0 -1
- package/dist/query-utilities/pollQuery.test.js +0 -67
- package/dist/query-utilities/pollQuery.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/LICENSE +0 -21
- package/node_modules/@lix-js/sdk/README.md +0 -68
- package/node_modules/@lix-js/sdk/dist/account/create-account.d.ts +0 -7
- package/node_modules/@lix-js/sdk/dist/account/create-account.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/create-account.js +0 -20
- package/node_modules/@lix-js/sdk/dist/account/create-account.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/create-account.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/account/create-account.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/create-account.test.js +0 -22
- package/node_modules/@lix-js/sdk/dist/account/create-account.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/database-schema.d.ts +0 -18
- package/node_modules/@lix-js/sdk/dist/account/database-schema.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/database-schema.js +0 -36
- package/node_modules/@lix-js/sdk/dist/account/database-schema.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/database-schema.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/account/database-schema.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/database-schema.test.js +0 -139
- package/node_modules/@lix-js/sdk/dist/account/database-schema.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/index.d.ts +0 -4
- package/node_modules/@lix-js/sdk/dist/account/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/index.js +0 -4
- package/node_modules/@lix-js/sdk/dist/account/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/switch-account.d.ts +0 -26
- package/node_modules/@lix-js/sdk/dist/account/switch-account.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/switch-account.js +0 -34
- package/node_modules/@lix-js/sdk/dist/account/switch-account.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/switch-account.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/account/switch-account.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/account/switch-account.test.js +0 -48
- package/node_modules/@lix-js/sdk/dist/account/switch-account.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.d.ts +0 -25
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.js +0 -98
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.js +0 -222
- package/node_modules/@lix-js/sdk/dist/change/apply-changes.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/create-change.d.ts +0 -27
- package/node_modules/@lix-js/sdk/dist/change/create-change.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/create-change.js +0 -97
- package/node_modules/@lix-js/sdk/dist/change/create-change.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/create-change.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change/create-change.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/create-change.test.js +0 -235
- package/node_modules/@lix-js/sdk/dist/change/create-change.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/index.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/change/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/index.js +0 -3
- package/node_modules/@lix-js/sdk/dist/change/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/mock-change.d.ts +0 -10
- package/node_modules/@lix-js/sdk/dist/change/mock-change.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change/mock-change.js +0 -20
- package/node_modules/@lix-js/sdk/dist/change/mock-change.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.d.ts +0 -15
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.js +0 -67
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.js +0 -145
- package/node_modules/@lix-js/sdk/dist/change-conflict/create-change-conflict.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.d.ts +0 -23
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.js +0 -50
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.js +0 -182
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-change-conflicts.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.d.ts +0 -32
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.js +0 -66
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.js +0 -201
- package/node_modules/@lix-js/sdk/dist/change-conflict/detect-diverging-entity-conflict.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.d.ts +0 -14
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.js +0 -67
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.js +0 -182
- package/node_modules/@lix-js/sdk/dist/change-conflict/garbage-collect-change-conflicts.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/index.d.ts +0 -4
- package/node_modules/@lix-js/sdk/dist/change-conflict/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/index.js +0 -4
- package/node_modules/@lix-js/sdk/dist/change-conflict/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.d.ts +0 -12
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.js +0 -48
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.js +0 -95
- package/node_modules/@lix-js/sdk/dist/change-conflict/resolve-conflict-by-selecting.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.js +0 -72
- package/node_modules/@lix-js/sdk/dist/change-conflict/update-change-conflicts.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.d.ts +0 -13
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.js +0 -25
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.js +0 -47
- package/node_modules/@lix-js/sdk/dist/change-queue/change-queue-settled.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.d.ts +0 -24
- package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.js +0 -209
- package/node_modules/@lix-js/sdk/dist/change-queue/file-handlers.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-queue/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/change-queue/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.d.ts +0 -7
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.js +0 -80
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.js +0 -373
- package/node_modules/@lix-js/sdk/dist/change-queue/init-change-queue.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.js +0 -26
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.js +0 -138
- package/node_modules/@lix-js/sdk/dist/change-queue/with-skip-change-queue.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-schema/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-schema/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-schema/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/change-schema/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-schema/types.d.ts +0 -40
- package/node_modules/@lix-js/sdk/dist/change-schema/types.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-schema/types.js +0 -2
- package/node_modules/@lix-js/sdk/dist/change-schema/types.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.js +0 -34
- package/node_modules/@lix-js/sdk/dist/change-schema/types.test-d.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.d.ts +0 -19
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.js +0 -36
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.js +0 -106
- package/node_modules/@lix-js/sdk/dist/change-set/change-set-element-in-symmetric-difference.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.js +0 -33
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.js +0 -37
- package/node_modules/@lix-js/sdk/dist/change-set/create-change-set.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/index.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/change-set/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/change-set/index.js +0 -3
- package/node_modules/@lix-js/sdk/dist/change-set/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/apply-schema.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/database/apply-schema.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/apply-schema.js +0 -266
- package/node_modules/@lix-js/sdk/dist/database/apply-schema.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.d.ts +0 -18
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.js +0 -36
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.js +0 -118
- package/node_modules/@lix-js/sdk/dist/database/execute-sync.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/index.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/database/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/index.js +0 -5
- package/node_modules/@lix-js/sdk/dist/database/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/init-db.d.ts +0 -7
- package/node_modules/@lix-js/sdk/dist/database/init-db.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/init-db.js +0 -95
- package/node_modules/@lix-js/sdk/dist/database/init-db.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/init-db.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/database/init-db.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/init-db.test.js +0 -497
- package/node_modules/@lix-js/sdk/dist/database/init-db.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js +0 -44
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.js +0 -162
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v1.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.d.ts +0 -12
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.js +0 -149
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.js +0 -162
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.js +0 -100
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.js +0 -107
- package/node_modules/@lix-js/sdk/dist/database/kysely-plugin/serialize-jsonb-plugin.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.js +0 -101
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/database-schema.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.js +0 -18
- package/node_modules/@lix-js/sdk/dist/database/mutation-log/lix-session.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/nano-id.d.ts +0 -21
- package/node_modules/@lix-js/sdk/dist/database/nano-id.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/nano-id.js +0 -58
- package/node_modules/@lix-js/sdk/dist/database/nano-id.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/nano-id.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/database/nano-id.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/nano-id.test.js +0 -13
- package/node_modules/@lix-js/sdk/dist/database/nano-id.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/schema.d.ts +0 -212
- package/node_modules/@lix-js/sdk/dist/database/schema.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/database/schema.js +0 -2
- package/node_modules/@lix-js/sdk/dist/database/schema.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/create-comment.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/discussion/create-comment.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/create-comment.js +0 -12
- package/node_modules/@lix-js/sdk/dist/discussion/create-comment.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.d.ts +0 -21
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.js +0 -40
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.js +0 -38
- package/node_modules/@lix-js/sdk/dist/discussion/create-discussion.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/index.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/discussion/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/discussion/index.js +0 -3
- package/node_modules/@lix-js/sdk/dist/discussion/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/file/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/file/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.js +0 -44
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.js +0 -36
- package/node_modules/@lix-js/sdk/dist/file/validate-file-path.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.d.ts +0 -24
- package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.js +0 -209
- package/node_modules/@lix-js/sdk/dist/file-queue/file-handlers.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.js +0 -85
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.js +0 -373
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-process.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.d.ts +0 -13
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.js +0 -25
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.js +0 -47
- package/node_modules/@lix-js/sdk/dist/file-queue/file-queue-settled.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/file-queue/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/file-queue/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.js +0 -26
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.js +0 -138
- package/node_modules/@lix-js/sdk/dist/file-queue/with-skip-file-queue.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/index.d.ts +0 -17
- package/node_modules/@lix-js/sdk/dist/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/index.js +0 -17
- package/node_modules/@lix-js/sdk/dist/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.d.ts +0 -42
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.js +0 -21
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.js +0 -114
- package/node_modules/@lix-js/sdk/dist/key-value/database-schema.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/close-lix.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/lix/close-lix.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/close-lix.js +0 -7
- package/node_modules/@lix-js/sdk/dist/lix/close-lix.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/index.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/lix/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/index.js +0 -8
- package/node_modules/@lix-js/sdk/dist/lix/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.d.ts +0 -9
- package/node_modules/@lix-js/sdk/dist/lix/merge.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.d.ts +0 -15
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.js +0 -34
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.js +0 -121
- package/node_modules/@lix-js/sdk/dist/lix/merge.get-leaf-changes-only-in-source.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.js +0 -195
- package/node_modules/@lix-js/sdk/dist/lix/merge.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/lix/merge.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/merge.test.js +0 -689
- package/node_modules/@lix-js/sdk/dist/lix/merge.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.js +0 -26
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.js +0 -21
- package/node_modules/@lix-js/sdk/dist/lix/new-lix.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.d.ts +0 -12
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.js +0 -19
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.js +0 -30
- package/node_modules/@lix-js/sdk/dist/lix/open-lix-in-memory.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.d.ts +0 -50
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.js +0 -33
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.js +0 -38
- package/node_modules/@lix-js/sdk/dist/lix/open-lix.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/to-blob.d.ts +0 -11
- package/node_modules/@lix-js/sdk/dist/lix/to-blob.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/lix/to-blob.js +0 -11
- package/node_modules/@lix-js/sdk/dist/lix/to-blob.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.d.ts +0 -10
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.js +0 -69
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.js +0 -297
- package/node_modules/@lix-js/sdk/dist/own-change-control/apply-own-change.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.d.ts +0 -60
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.js +0 -70
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.js +0 -48
- package/node_modules/@lix-js/sdk/dist/own-change-control/change-controlled-tables.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.js +0 -135
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.js +0 -214
- package/node_modules/@lix-js/sdk/dist/own-change-control/database-triggers.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-change-control/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/own-change-control/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.js +0 -28
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.js +0 -49
- package/node_modules/@lix-js/sdk/dist/own-change-control/with-skip-own-change-control.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.d.ts +0 -10
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.js +0 -69
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.js +0 -297
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/apply-own-entity-change.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.d.ts +0 -61
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.js +0 -71
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.js +0 -48
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/change-controlled-tables.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.js +0 -135
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.js +0 -214
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/database-triggers.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.js +0 -24
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.js +0 -49
- package/node_modules/@lix-js/sdk/dist/own-entity-change-control/with-skip-own-change-control.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/index.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/plugin/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/index.js +0 -2
- package/node_modules/@lix-js/sdk/dist/plugin/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.d.ts +0 -114
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.js +0 -2
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.js +0 -40
- package/node_modules/@lix-js/sdk/dist/plugin/lix-plugin.test-d.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.js +0 -20
- package/node_modules/@lix-js/sdk/dist/plugin/load-plugin.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.d.ts +0 -11
- package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.js +0 -15
- package/node_modules/@lix-js/sdk/dist/plugin/with-transaction.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.d.ts +0 -15
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.js +0 -18
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.js +0 -55
- package/node_modules/@lix-js/sdk/dist/query-filter/change-conflict-in-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.d.ts +0 -25
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.js +0 -30
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.js +0 -46
- package/node_modules/@lix-js/sdk/dist/query-filter/change-has-label.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.js +0 -29
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.js +0 -75
- package/node_modules/@lix-js/sdk/dist/query-filter/change-in-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.js +0 -35
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.js +0 -70
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-in-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.js +0 -132
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.bench.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.d.ts +0 -29
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.js +0 -44
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.js +0 -71
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf-of.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.d.ts +0 -18
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.js +0 -18
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.js +0 -122
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-leaf.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.js +0 -55
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.js +0 -155
- package/node_modules/@lix-js/sdk/dist/query-filter/change-is-lowest-common-ancestor-of.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.d.ts +0 -25
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.js +0 -29
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.js +0 -43
- package/node_modules/@lix-js/sdk/dist/query-filter/change-set-has-label.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/index.d.ts +0 -9
- package/node_modules/@lix-js/sdk/dist/query-filter/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/index.js +0 -9
- package/node_modules/@lix-js/sdk/dist/query-filter/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.d.ts +0 -18
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.js +0 -25
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.js +0 -85
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-difference.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.d.ts +0 -19
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.js +0 -36
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.js +0 -84
- package/node_modules/@lix-js/sdk/dist/query-filter/version-change-in-symmetric-difference.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.d.ts +0 -48
- package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.js +0 -68
- package/node_modules/@lix-js/sdk/dist/server-api-handler/create-server-api-handler.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.js +0 -97
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.js +0 -103
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/create-in-memory-environment.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.d.ts +0 -53
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.js +0 -2
- package/node_modules/@lix-js/sdk/dist/server-api-handler/environment/environment.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/index.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/server-api-handler/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/index.js +0 -3
- package/node_modules/@lix-js/sdk/dist/server-api-handler/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.js +0 -44
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.js +0 -108
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/get-v1.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.js +0 -38
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.js +0 -72
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/new-v1.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.js +0 -41
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.js +0 -146
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/pull-v1.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.js +0 -142
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.js +0 -231
- package/node_modules/@lix-js/sdk/dist/server-api-handler/routes/push-v1.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.d.ts +0 -18
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.js +0 -33
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.js +0 -54
- package/node_modules/@lix-js/sdk/dist/snapshot/create-snapshot.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/index.d.ts +0 -3
- package/node_modules/@lix-js/sdk/dist/snapshot/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/index.js +0 -3
- package/node_modules/@lix-js/sdk/dist/snapshot/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.js +0 -29
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.js +0 -10
- package/node_modules/@lix-js/sdk/dist/snapshot/json-sha-256.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.js +0 -13
- package/node_modules/@lix-js/sdk/dist/snapshot/mock-json-snapshot.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.d.ts +0 -16
- package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.js +0 -62
- package/node_modules/@lix-js/sdk/dist/sync/get-diffing-rows.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/merge-state.d.ts +0 -20
- package/node_modules/@lix-js/sdk/dist/sync/merge-state.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/merge-state.js +0 -237
- package/node_modules/@lix-js/sdk/dist/sync/merge-state.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.js +0 -113
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.js +0 -340
- package/node_modules/@lix-js/sdk/dist/sync/pull-from-server.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.d.ts +0 -12
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.js +0 -35
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.js +0 -308
- package/node_modules/@lix-js/sdk/dist/sync/push-to-server.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.d.ts +0 -5
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.js +0 -74
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.js +0 -243
- package/node_modules/@lix-js/sdk/dist/sync/sync-process.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/create-version.d.ts +0 -27
- package/node_modules/@lix-js/sdk/dist/version/create-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/create-version.js +0 -74
- package/node_modules/@lix-js/sdk/dist/version/create-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/create-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/version/create-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/create-version.test.js +0 -126
- package/node_modules/@lix-js/sdk/dist/version/create-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/index.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/version/index.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/index.js +0 -8
- package/node_modules/@lix-js/sdk/dist/version/index.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/merge-version.d.ts +0 -8
- package/node_modules/@lix-js/sdk/dist/version/merge-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/merge-version.js +0 -67
- package/node_modules/@lix-js/sdk/dist/version/merge-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/merge-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/version/merge-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/merge-version.test.js +0 -434
- package/node_modules/@lix-js/sdk/dist/version/merge-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/switch-version.d.ts +0 -27
- package/node_modules/@lix-js/sdk/dist/version/switch-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/switch-version.js +0 -91
- package/node_modules/@lix-js/sdk/dist/version/switch-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/switch-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/version/switch-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/switch-version.test.js +0 -227
- package/node_modules/@lix-js/sdk/dist/version/switch-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.d.ts +0 -13
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.js +0 -36
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.js.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.d.ts +0 -2
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.d.ts.map +0 -1
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.js +0 -323
- package/node_modules/@lix-js/sdk/dist/version/update-changes-in-version.test.js.map +0 -1
- package/node_modules/@lix-js/sdk/package.json +0 -52
- package/node_modules/@lix-js/sdk/src/account/create-account.test.ts +0 -26
- package/node_modules/@lix-js/sdk/src/account/create-account.ts +0 -26
- package/node_modules/@lix-js/sdk/src/account/database-schema.test.ts +0 -187
- package/node_modules/@lix-js/sdk/src/account/database-schema.ts +0 -58
- package/node_modules/@lix-js/sdk/src/account/index.ts +0 -3
- package/node_modules/@lix-js/sdk/src/account/switch-account.test.ts +0 -63
- package/node_modules/@lix-js/sdk/src/account/switch-account.ts +0 -39
- package/node_modules/@lix-js/sdk/src/change/apply-changes.test.ts +0 -268
- package/node_modules/@lix-js/sdk/src/change/apply-changes.ts +0 -114
- package/node_modules/@lix-js/sdk/src/change/create-change.test.ts +0 -296
- package/node_modules/@lix-js/sdk/src/change/create-change.ts +0 -129
- package/node_modules/@lix-js/sdk/src/change/index.ts +0 -2
- package/node_modules/@lix-js/sdk/src/change/mock-change.ts +0 -21
- package/node_modules/@lix-js/sdk/src/change-conflict/create-change-conflict.test.ts +0 -173
- package/node_modules/@lix-js/sdk/src/change-conflict/create-change-conflict.ts +0 -105
- package/node_modules/@lix-js/sdk/src/change-conflict/detect-change-conflicts.test.ts +0 -215
- package/node_modules/@lix-js/sdk/src/change-conflict/detect-change-conflicts.ts +0 -65
- package/node_modules/@lix-js/sdk/src/change-conflict/detect-diverging-entity-conflict.test.ts +0 -228
- package/node_modules/@lix-js/sdk/src/change-conflict/detect-diverging-entity-conflict.ts +0 -82
- package/node_modules/@lix-js/sdk/src/change-conflict/garbage-collect-change-conflicts.test.ts +0 -219
- package/node_modules/@lix-js/sdk/src/change-conflict/garbage-collect-change-conflicts.ts +0 -96
- package/node_modules/@lix-js/sdk/src/change-conflict/index.ts +0 -3
- package/node_modules/@lix-js/sdk/src/change-conflict/resolve-conflict-by-selecting.test.ts +0 -118
- package/node_modules/@lix-js/sdk/src/change-conflict/resolve-conflict-by-selecting.ts +0 -66
- package/node_modules/@lix-js/sdk/src/change-conflict/update-change-conflicts.ts +0 -79
- package/node_modules/@lix-js/sdk/src/change-schema/README.md +0 -3
- package/node_modules/@lix-js/sdk/src/change-schema/index.ts +0 -4
- package/node_modules/@lix-js/sdk/src/change-schema/types.test-d.ts +0 -52
- package/node_modules/@lix-js/sdk/src/change-schema/types.ts +0 -53
- package/node_modules/@lix-js/sdk/src/change-set/change-set-element-in-symmetric-difference.test.ts +0 -128
- package/node_modules/@lix-js/sdk/src/change-set/change-set-element-in-symmetric-difference.ts +0 -52
- package/node_modules/@lix-js/sdk/src/change-set/create-change-set.test.ts +0 -43
- package/node_modules/@lix-js/sdk/src/change-set/create-change-set.ts +0 -41
- package/node_modules/@lix-js/sdk/src/change-set/index.ts +0 -2
- package/node_modules/@lix-js/sdk/src/database/apply-schema.ts +0 -270
- package/node_modules/@lix-js/sdk/src/database/execute-sync.test.ts +0 -152
- package/node_modules/@lix-js/sdk/src/database/execute-sync.ts +0 -47
- package/node_modules/@lix-js/sdk/src/database/index.ts +0 -4
- package/node_modules/@lix-js/sdk/src/database/init-db.test.ts +0 -628
- package/node_modules/@lix-js/sdk/src/database/init-db.ts +0 -111
- package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v1.test.ts +0 -204
- package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v1.ts +0 -55
- package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v2.no_test.ts +0 -204
- package/node_modules/@lix-js/sdk/src/database/kysely-plugin/parse-jsonb-plugin-v2.ts +0 -194
- package/node_modules/@lix-js/sdk/src/database/kysely-plugin/serialize-jsonb-plugin.test.ts +0 -132
- package/node_modules/@lix-js/sdk/src/database/kysely-plugin/serialize-jsonb-plugin.ts +0 -122
- package/node_modules/@lix-js/sdk/src/database/mutation-log/database-schema.ts +0 -126
- package/node_modules/@lix-js/sdk/src/database/mutation-log/lix-session.ts +0 -19
- package/node_modules/@lix-js/sdk/src/database/nano-id.test.ts +0 -15
- package/node_modules/@lix-js/sdk/src/database/nano-id.ts +0 -72
- package/node_modules/@lix-js/sdk/src/database/schema.ts +0 -273
- package/node_modules/@lix-js/sdk/src/discussion/create-comment.ts +0 -18
- package/node_modules/@lix-js/sdk/src/discussion/create-discussion.test.ts +0 -45
- package/node_modules/@lix-js/sdk/src/discussion/create-discussion.ts +0 -48
- package/node_modules/@lix-js/sdk/src/discussion/index.ts +0 -2
- package/node_modules/@lix-js/sdk/src/file/index.ts +0 -1
- package/node_modules/@lix-js/sdk/src/file/validate-file-path.test.ts +0 -44
- package/node_modules/@lix-js/sdk/src/file/validate-file-path.ts +0 -60
- package/node_modules/@lix-js/sdk/src/file-queue/file-handlers.ts +0 -273
- package/node_modules/@lix-js/sdk/src/file-queue/file-queue-process.test.ts +0 -457
- package/node_modules/@lix-js/sdk/src/file-queue/file-queue-process.ts +0 -101
- package/node_modules/@lix-js/sdk/src/file-queue/file-queue-settled.test.ts +0 -56
- package/node_modules/@lix-js/sdk/src/file-queue/file-queue-settled.ts +0 -31
- package/node_modules/@lix-js/sdk/src/file-queue/index.ts +0 -1
- package/node_modules/@lix-js/sdk/src/file-queue/with-skip-file-queue.test.ts +0 -158
- package/node_modules/@lix-js/sdk/src/file-queue/with-skip-file-queue.ts +0 -33
- package/node_modules/@lix-js/sdk/src/index.ts +0 -16
- package/node_modules/@lix-js/sdk/src/key-value/database-schema.test.ts +0 -140
- package/node_modules/@lix-js/sdk/src/key-value/database-schema.ts +0 -66
- package/node_modules/@lix-js/sdk/src/lix/close-lix.ts +0 -8
- package/node_modules/@lix-js/sdk/src/lix/index.ts +0 -7
- package/node_modules/@lix-js/sdk/src/lix/merge.get-leaf-changes-only-in-source.test.ts +0 -143
- package/node_modules/@lix-js/sdk/src/lix/merge.get-leaf-changes-only-in-source.ts +0 -46
- package/node_modules/@lix-js/sdk/src/lix/merge.test.ts +0 -858
- package/node_modules/@lix-js/sdk/src/lix/merge.ts +0 -244
- package/node_modules/@lix-js/sdk/src/lix/new-lix.test.ts +0 -23
- package/node_modules/@lix-js/sdk/src/lix/new-lix.ts +0 -29
- package/node_modules/@lix-js/sdk/src/lix/open-lix-in-memory.test.ts +0 -34
- package/node_modules/@lix-js/sdk/src/lix/open-lix-in-memory.ts +0 -28
- package/node_modules/@lix-js/sdk/src/lix/open-lix.test.ts +0 -45
- package/node_modules/@lix-js/sdk/src/lix/open-lix.ts +0 -86
- package/node_modules/@lix-js/sdk/src/lix/to-blob.ts +0 -14
- package/node_modules/@lix-js/sdk/src/own-change-control/apply-own-change.test.ts +0 -361
- package/node_modules/@lix-js/sdk/src/own-change-control/apply-own-change.ts +0 -110
- package/node_modules/@lix-js/sdk/src/own-change-control/change-controlled-tables.test.ts +0 -69
- package/node_modules/@lix-js/sdk/src/own-change-control/change-controlled-tables.ts +0 -102
- package/node_modules/@lix-js/sdk/src/own-change-control/database-triggers.test.ts +0 -259
- package/node_modules/@lix-js/sdk/src/own-change-control/database-triggers.ts +0 -189
- package/node_modules/@lix-js/sdk/src/own-change-control/index.ts +0 -1
- package/node_modules/@lix-js/sdk/src/own-change-control/with-skip-own-change-control.test.ts +0 -57
- package/node_modules/@lix-js/sdk/src/own-change-control/with-skip-own-change-control.ts +0 -34
- package/node_modules/@lix-js/sdk/src/plugin/index.ts +0 -6
- package/node_modules/@lix-js/sdk/src/plugin/lix-plugin.test-d.ts +0 -45
- package/node_modules/@lix-js/sdk/src/plugin/lix-plugin.ts +0 -128
- package/node_modules/@lix-js/sdk/src/plugin/load-plugin.ts +0 -28
- package/node_modules/@lix-js/sdk/src/plugin/with-transaction.ts +0 -22
- package/node_modules/@lix-js/sdk/src/query-filter/change-conflict-in-version.test.ts +0 -62
- package/node_modules/@lix-js/sdk/src/query-filter/change-conflict-in-version.ts +0 -25
- package/node_modules/@lix-js/sdk/src/query-filter/change-has-label.test.ts +0 -52
- package/node_modules/@lix-js/sdk/src/query-filter/change-has-label.ts +0 -41
- package/node_modules/@lix-js/sdk/src/query-filter/change-in-version.test.ts +0 -82
- package/node_modules/@lix-js/sdk/src/query-filter/change-in-version.ts +0 -31
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-in-version.test.ts +0 -77
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-in-version.ts +0 -36
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-of.bench.ts +0 -175
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-of.test.ts +0 -84
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf-of.ts +0 -46
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf.test.ts +0 -140
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-leaf.ts +0 -25
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-lowest-common-ancestor-of.test.ts +0 -173
- package/node_modules/@lix-js/sdk/src/query-filter/change-is-lowest-common-ancestor-of.ts +0 -57
- package/node_modules/@lix-js/sdk/src/query-filter/change-set-has-label.test.ts +0 -50
- package/node_modules/@lix-js/sdk/src/query-filter/change-set-has-label.ts +0 -36
- package/node_modules/@lix-js/sdk/src/query-filter/index.ts +0 -8
- package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-difference.test.ts +0 -105
- package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-difference.ts +0 -37
- package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-symmetric-difference.test.ts +0 -104
- package/node_modules/@lix-js/sdk/src/query-filter/version-change-in-symmetric-difference.ts +0 -52
- package/node_modules/@lix-js/sdk/src/server-api-handler/create-server-api-handler.ts +0 -84
- package/node_modules/@lix-js/sdk/src/server-api-handler/environment/create-in-memory-environment.test.ts +0 -131
- package/node_modules/@lix-js/sdk/src/server-api-handler/environment/create-in-memory-environment.ts +0 -115
- package/node_modules/@lix-js/sdk/src/server-api-handler/environment/environment.ts +0 -43
- package/node_modules/@lix-js/sdk/src/server-api-handler/index.ts +0 -5
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/get-v1.test.ts +0 -147
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/get-v1.ts +0 -61
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/new-v1.test.ts +0 -103
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/new-v1.ts +0 -46
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/pull-v1.test.ts +0 -201
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/pull-v1.ts +0 -57
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/push-v1.test.ts +0 -302
- package/node_modules/@lix-js/sdk/src/server-api-handler/routes/push-v1.ts +0 -180
- package/node_modules/@lix-js/sdk/src/snapshot/create-snapshot.test.ts +0 -68
- package/node_modules/@lix-js/sdk/src/snapshot/create-snapshot.ts +0 -40
- package/node_modules/@lix-js/sdk/src/snapshot/index.ts +0 -2
- package/node_modules/@lix-js/sdk/src/snapshot/json-sha-256.test.ts +0 -12
- package/node_modules/@lix-js/sdk/src/snapshot/json-sha-256.ts +0 -35
- package/node_modules/@lix-js/sdk/src/snapshot/mock-json-snapshot.ts +0 -14
- package/node_modules/@lix-js/sdk/src/sync/get-diffing-rows.ts +0 -96
- package/node_modules/@lix-js/sdk/src/sync/merge-state.ts +0 -310
- package/node_modules/@lix-js/sdk/src/sync/pull-from-server.test.ts +0 -425
- package/node_modules/@lix-js/sdk/src/sync/pull-from-server.ts +0 -144
- package/node_modules/@lix-js/sdk/src/sync/push-to-server.test.ts +0 -391
- package/node_modules/@lix-js/sdk/src/sync/push-to-server.ts +0 -47
- package/node_modules/@lix-js/sdk/src/sync/sync-process.test.ts +0 -321
- package/node_modules/@lix-js/sdk/src/sync/sync-process.ts +0 -85
- package/node_modules/@lix-js/sdk/src/version/create-version.test.ts +0 -149
- package/node_modules/@lix-js/sdk/src/version/create-version.ts +0 -88
- package/node_modules/@lix-js/sdk/src/version/index.ts +0 -8
- package/node_modules/@lix-js/sdk/src/version/merge-version.test.ts +0 -530
- package/node_modules/@lix-js/sdk/src/version/merge-version.ts +0 -88
- package/node_modules/@lix-js/sdk/src/version/switch-version.test.ts +0 -292
- package/node_modules/@lix-js/sdk/src/version/switch-version.ts +0 -110
- package/node_modules/@lix-js/sdk/src/version/update-changes-in-version.test.ts +0 -371
- package/node_modules/@lix-js/sdk/src/version/update-changes-in-version.ts +0 -47
- package/node_modules/sqlite-wasm-kysely/LICENSE +0 -21
- 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/project/state/README.md +0 -22
- package/src/project/state/id$.test.ts +0 -40
- package/src/project/state/id$.ts +0 -21
- package/src/project/state/setSettings.test.ts +0 -73
- package/src/project/state/setSettings.ts +0 -19
- package/src/project/state/settings$.test.ts +0 -63
- package/src/project/state/settings$.ts +0 -26
- package/src/project/state/state.test.ts +0 -128
- package/src/project/state/state.ts +0 -94
- package/src/query-utilities/pollQuery.test.ts +0 -88
- package/src/query-utilities/pollQuery.ts +0 -26
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
2
|
|
|
4
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f4f0657b-efd6-57ad-929c-9ac84897bf71")}catch(e){}}();
|
|
5
4
|
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
6
5
|
import { ProjectSettings } from "../json-schema/settings.js";
|
|
7
6
|
import { fs, vol, Volume } from "memfs";
|
|
8
|
-
import { loadProjectFromDirectory, ResourceFileImportError, WarningDeprecatedLintRule,
|
|
7
|
+
import { loadProjectFromDirectory, ResourceFileImportError, WarningDeprecatedLintRule, } from "./loadProjectFromDirectory.js";
|
|
9
8
|
import { selectBundleNested } from "../query-utilities/selectBundleNested.js";
|
|
10
9
|
import { Text } from "../json-schema/pattern.js";
|
|
11
10
|
import { saveProjectToDirectory } from "./saveProjectToDirectory.js";
|
|
@@ -545,13 +544,8 @@ test("it should provide plugins from disk for backwards compatibility but warn t
|
|
|
545
544
|
const settings = await project.settings.get();
|
|
546
545
|
expect(plugins.length).toBe(1);
|
|
547
546
|
expect(plugins[0]?.key).toBe("mock-plugin");
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
// best if they are removed
|
|
551
|
-
expect(errors.length).toBe(3);
|
|
552
|
-
expect(errors[0]).toBeInstanceOf(WarningLocalPluginImport);
|
|
553
|
-
expect(errors[1]).toBeInstanceOf(WarningLocalPluginImport);
|
|
554
|
-
expect(errors[2]).toBeInstanceOf(WarningDeprecatedLintRule);
|
|
547
|
+
expect(errors.length).toBe(1);
|
|
548
|
+
expect(errors[0]).toBeInstanceOf(WarningDeprecatedLintRule);
|
|
555
549
|
// it should not remove the module from the settings
|
|
556
550
|
// else roundtrips would not work
|
|
557
551
|
expect(settings.modules?.[0]).toBe("../local-plugins/mock-plugin.js");
|
|
@@ -638,5 +632,32 @@ test("plugin calls that use fs should be intercepted to use an absolute path", a
|
|
|
638
632
|
// expect(saveMessagesSpy).toHaveBeenCalled();
|
|
639
633
|
// expect(toBeImportedFilesSpy).toHaveBeenCalled();
|
|
640
634
|
});
|
|
635
|
+
test("it can import plugins via http", async () => {
|
|
636
|
+
const mockRepo = {
|
|
637
|
+
"/project.inlang/settings.json": JSON.stringify({
|
|
638
|
+
baseLocale: "en",
|
|
639
|
+
locales: ["en"],
|
|
640
|
+
modules: ["https://example.com/plugin.js"],
|
|
641
|
+
}),
|
|
642
|
+
};
|
|
643
|
+
const fs = Volume.fromJSON(mockRepo);
|
|
644
|
+
const mockPluginModule = `export default {
|
|
645
|
+
key: "mock-plugin"
|
|
646
|
+
}`;
|
|
647
|
+
global.fetch = vi.fn(() => Promise.resolve(new Response(mockPluginModule)));
|
|
648
|
+
const project = await loadProjectFromDirectory({
|
|
649
|
+
fs: fs,
|
|
650
|
+
path: "/project.inlang",
|
|
651
|
+
});
|
|
652
|
+
const plugins = await project.plugins.get();
|
|
653
|
+
expect(global.fetch).toHaveBeenCalledWith("https://example.com/plugin.js");
|
|
654
|
+
expect(plugins.length).toBe(1);
|
|
655
|
+
const pluginCache = await project.lix.db
|
|
656
|
+
.selectFrom("file")
|
|
657
|
+
.selectAll()
|
|
658
|
+
.where("path", "like", "/cache/plugins/%")
|
|
659
|
+
.execute();
|
|
660
|
+
expect(pluginCache.some((file) => new TextDecoder().decode(file.data) === mockPluginModule), "expecting the plugin to be cached").toBe(true);
|
|
661
|
+
});
|
|
641
662
|
//# sourceMappingURL=loadProjectFromDirectory.test.js.map
|
|
642
|
-
//# debugId=
|
|
663
|
+
//# debugId=f4f0657b-efd6-57ad-929c-9ac84897bf71
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadProjectFromDirectory.test.js","sources":["project/loadProjectFromDirectory.test.ts"],"sourceRoot":"/","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { beforeEach, describe, expect, test, vi } from \"vitest\";\nimport { ProjectSettings } from \"../json-schema/settings.js\";\nimport { fs, vol, Volume } from \"memfs\";\nimport {\n\tloadProjectFromDirectory,\n\tResourceFileImportError,\n\tWarningDeprecatedLintRule,\n\tWarningLocalPluginImport,\n} from \"./loadProjectFromDirectory.js\";\nimport { selectBundleNested } from \"../query-utilities/selectBundleNested.js\";\nimport { Text } from \"../json-schema/pattern.js\";\nimport type { InlangPlugin } from \"../plugin/schema.js\";\nimport type {\n\tMessageV1,\n\tVariantV1,\n} from \"../json-schema/old-v1-message/schemaV1.js\";\nimport { saveProjectToDirectory } from \"./saveProjectToDirectory.js\";\nimport { insertBundleNested } from \"../query-utilities/insertBundleNested.js\";\n\ntest(\"plugin.loadMessages and plugin.saveMessages must not be configured together with import export\", async () => {\n\tconst mockLegacyPlugin: InlangPlugin = {\n\t\tkey: \"mock-legacy-plugin\",\n\t\tloadMessages: async () => {\n\t\t\treturn [];\n\t\t},\n\t\tsaveMessages: async () => {},\n\t};\n\n\tconst mockLegacyPlugin2: InlangPlugin = {\n\t\tkey: \"mock-legacy-plugin-2\",\n\t\tloadMessages: async () => {\n\t\t\treturn [];\n\t\t},\n\t\tsaveMessages: async () => {},\n\t};\n\n\tconst mockImportExportPlugin: InlangPlugin = {\n\t\tkey: \"mock-import-export-plugin\",\n\t\texportFiles: () => {\n\t\t\treturn [];\n\t\t},\n\t\timportFiles: () => {\n\t\t\treturn {} as any;\n\t\t},\n\t};\n\n\tawait expect(\n\t\t(async () => {\n\t\t\tawait loadProjectFromDirectory({\n\t\t\t\tfs: Volume.fromJSON({\n\t\t\t\t\t\"./project.inlang/settings.json\": JSON.stringify({\n\t\t\t\t\t\tbaseLocale: \"en\",\n\t\t\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\t\t\tmodules: [],\n\t\t\t\t\t} satisfies ProjectSettings),\n\t\t\t\t}) as any,\n\t\t\t\tpath: \"./project.inlang\",\n\t\t\t\tprovidePlugins: [\n\t\t\t\t\tmockLegacyPlugin,\n\t\t\t\t\tmockLegacyPlugin2,\n\t\t\t\t\tmockImportExportPlugin,\n\t\t\t\t],\n\t\t\t});\n\t\t})()\n\t).rejects.toThrowError();\n\n\tawait expect(\n\t\t(async () => {\n\t\t\tawait loadProjectFromDirectory({\n\t\t\t\tfs: Volume.fromJSON({\n\t\t\t\t\t\"./project.inlang/settings.json\": JSON.stringify({\n\t\t\t\t\t\tbaseLocale: \"en\",\n\t\t\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\t\t\tmodules: [],\n\t\t\t\t\t} satisfies ProjectSettings),\n\t\t\t\t}) as any,\n\t\t\t\tpath: \"./project.inlang\",\n\t\t\t\tprovidePlugins: [\n\t\t\t\t\tmockLegacyPlugin,\n\t\t\t\t\tmockLegacyPlugin2,\n\t\t\t\t\tmockImportExportPlugin,\n\t\t\t\t],\n\t\t\t});\n\t\t})()\n\t).rejects.toThrowError();\n});\n\ntest(\"plugin.loadMessages and plugin.saveMessages should work for legacy purposes\", async () => {\n\tconst mockLegacyPlugin: InlangPlugin = {\n\t\tid: \"mock-legacy-plugin\",\n\t\t// @ts-expect-error - id is deprecated, key can be undefined\n\t\tkey: undefined,\n\t\tloadMessages: async ({ nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern as string;\n\n\t\t\tconst messages: MessageV1[] = [];\n\n\t\t\t// @ts-expect-error - language tag is always given by the sdk v2\n\t\t\tfor (const languageTag of settings.languageTags) {\n\t\t\t\tconst data = await nodeishFs.readFile(\n\t\t\t\t\tpathPattern.replace(\"{languageTag}\", languageTag)\n\t\t\t\t);\n\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tJSON.parse(data.toString())\n\t\t\t\t)) {\n\t\t\t\t\tconst exisitngMessage = messages.find(\n\t\t\t\t\t\t(message) => message.id === key\n\t\t\t\t\t);\n\t\t\t\t\tconst variant = {\n\t\t\t\t\t\tlanguageTag: languageTag,\n\t\t\t\t\t\tmatch: [],\n\t\t\t\t\t\tpattern: [{ type: \"Text\", value: value }],\n\t\t\t\t\t} as VariantV1;\n\t\t\t\t\tif (exisitngMessage !== undefined) {\n\t\t\t\t\t\texisitngMessage.variants.push(variant);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmessages.push({\n\t\t\t\t\t\t\talias: {},\n\t\t\t\t\t\t\tid: key,\n\t\t\t\t\t\t\tselectors: [],\n\t\t\t\t\t\t\tvariants: [variant],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn messages;\n\t\t},\n\t\tsaveMessages: async ({ messages, nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern as string;\n\t\t\tfor (const languageTag of settings.languageTags!) {\n\t\t\t\tconst messagesInLanguage = {} as Record<string, string>;\n\t\t\t\tfor (const message of messages) {\n\t\t\t\t\tconst variantsInLanguage = message.variants.filter(\n\t\t\t\t\t\t(variant) => variant.languageTag === languageTag\n\t\t\t\t\t);\n\t\t\t\t\tif (variantsInLanguage.length > 1) {\n\t\t\t\t\t\t// data will get lost during export => throw?\n\t\t\t\t\t} else if (variantsInLanguage.length === 1) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tvariantsInLanguage[0]!.pattern.length != 1 ||\n\t\t\t\t\t\t\tvariantsInLanguage[0]!.pattern[0]?.type !== \"Text\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// throw?\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmessagesInLanguage[message.id] = (\n\t\t\t\t\t\t\tvariantsInLanguage[0]!.pattern[0]! as any\n\t\t\t\t\t\t).value;\n\t\t\t\t\t}\n\t\t\t\t\t// else no-op\n\t\t\t\t}\n\t\t\t\tawait nodeishFs.writeFile(\n\t\t\t\t\tpathPattern.replace(\"{languageTag}\", languageTag),\n\t\t\t\t\tJSON.stringify(messagesInLanguage, null, 2)\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\tconst mockRepo = {\n\t\t\"./README.md\": \"# Hello World\",\n\t\t\"./src/index.js\": \"console.log('Hello World')\",\n\t\t\"./src/translations/en.json\": JSON.stringify({\n\t\t\tkey1: \"value1\",\n\t\t\tkey2: \"value2\",\n\t\t}),\n\t\t\"./src/translations/de.json\": JSON.stringify({\n\t\t\tkey1: \"wert1\",\n\t\t\tkey2: \"wert2\",\n\t\t}),\n\t\t\"./project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [\"./mock-module.js\"],\n\t\t\t\"plugin.mock-plugin\": {\n\t\t\t\tpathPattern: \"./src/translations/{languageTag}.json\",\n\t\t\t},\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tlet project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"./project.inlang\",\n\t\tprovidePlugins: [mockLegacyPlugin],\n\t});\n\n\tawait insertBundleNested(project.db, {\n\t\tid: \"key-id\",\n\t\tmessages: [\n\t\t\t{\n\t\t\t\tid: \"mock-message\",\n\t\t\t\tbundleId: \"mock-bundle\",\n\t\t\t\tlocale: \"en\",\n\t\t\t\tselectors: [],\n\t\t\t\tvariants: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmessageId: \"mock-message\",\n\t\t\t\t\t\tpattern: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\tvalue: \"JOJO\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\tawait saveProjectToDirectory({\n\t\tfs: fs.promises as any,\n\t\tpath: \"./project.inlang\",\n\t\tproject,\n\t});\n\n\tproject = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"./project.inlang\",\n\t\tprovidePlugins: [mockLegacyPlugin],\n\t});\n\n\tconst bundles = await selectBundleNested(project.db).execute();\n\n\tconst bundlesOrdered = bundles.sort((a, b) => a.id.localeCompare(b.id));\n\n\texpect(bundles.length).toBe(3);\n\texpect(bundlesOrdered[0]?.messages[0]?.locale).toBe(\"en\");\n\texpect(\n\t\t(bundlesOrdered[0]?.messages[0]?.variants[0]?.pattern[0] as Text)?.value\n\t).toBe(\"JOJO\");\n\n\t// TODO fix\n\t// expect(bundlesOrdered[0]?.messages[9]?.locale).toBe(\"en\");\n\t// expect(\n\t// \t(bundlesOrdered[0]?.messages[1]?.variants[0]?.pattern[0] as Text)?.value\n\t// ).toBe(\"wert1\");\n\n\t// expect(bundlesOrdered[1]?.messages[0]?.locale).toBe(\"en\");\n\t// expect(\n\t// \t(bundlesOrdered[1]?.messages[0]?.variants[0]?.pattern[0] as Text)?.value\n\t// ).toBe(\"value2\");\n\n\t// expect(bundlesOrdered[1]?.messages[1]?.locale).toBe(\"de\");\n\t// expect(\n\t// \t(bundlesOrdered[1]?.messages[1]?.variants[0]?.pattern[0] as Text)?.value\n\t// ).toBe(\"wert2\");\n});\n\nconst mockSettings = {\n\tbaseLocale: \"en\",\n\tlocales: [\"en\", \"de\"],\n\tmodules: [],\n} satisfies ProjectSettings;\n\nconst mockDirectory = {\n\t\"/project.inlang/cache/plugin/29j49j2\": \"cache value\",\n\t\"/project.inlang/.gitignore\": \"git value\",\n\t\"/project.inlang/prettierrc.json\": \"prettier value\",\n\t\"/project.inlang/README.md\": \"readme value\",\n\t\"/project.inlang/settings.json\": JSON.stringify(mockSettings),\n};\n\ndescribe(\"it should keep files between the inlang directory and lix in sync\", async () => {\n\ttest(\"files from directory should be available via lix after project has been loaded from directory\", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tconst files = await project.lix.db.selectFrom(\"file\").selectAll().execute();\n\n\t\texpect(files.length).toBe(\n\t\t\t5 + 1 /* the db.sqlite file */ + 1 /* project_id */\n\t\t);\n\n\t\tconst filesByPath = files.reduce((acc, file) => {\n\t\t\tacc[file.path] = new TextDecoder().decode(file.data);\n\t\t\treturn acc;\n\t\t}, {} as any);\n\n\t\texpect(filesByPath[\"/cache/plugin/29j49j2\"]).toBe(\"cache value\");\n\t\texpect(filesByPath[\"/.gitignore\"]).toBe(\"git value\");\n\t\texpect(filesByPath[\"/prettierrc.json\"]).toBe(\"prettier value\");\n\t\texpect(filesByPath[\"/README.md\"]).toBe(\"readme value\");\n\t\texpect(filesByPath[\"/settings.json\"]).toBe(JSON.stringify(mockSettings));\n\t});\n\n\ttest(\"file created in fs should be avaialable in lix \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tfs.writeFileSync(\n\t\t\t\"/project.inlang/file-created-on-fs.txt\",\n\t\t\t\"value written by fs\",\n\t\t\t{\n\t\t\t\tencoding: \"utf-8\",\n\t\t\t}\n\t\t);\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst randomFileInLix = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/file-created-on-fs.txt\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\texpect(new TextDecoder().decode(randomFileInLix.data)).toBe(\n\t\t\t\"value written by fs\"\n\t\t);\n\t});\n\n\ttest(\"file updated in fs should be avaialable in lix \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// \"changes to a file on disk should reflect in lix\n\t\tfs.writeFileSync(\n\t\t\t\"/project.inlang/settings.json\",\n\t\t\tJSON.stringify({\n\t\t\t\t...mockSettings,\n\t\t\t\tbaseLocale: \"brand-new-locale-written-to-fs-file\",\n\t\t\t})\n\t\t);\n\n\t\t// console.log(\"wrting fs settings\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\t\tconst fileInLix = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\tconst settingsAfterUpdateOnDisk = JSON.parse(\n\t\t\tnew TextDecoder().decode(fileInLix.data)\n\t\t);\n\n\t\texpect(settingsAfterUpdateOnDisk.baseLocale).toBe(\n\t\t\t\"brand-new-locale-written-to-fs-file\"\n\t\t);\n\t});\n\n\ttest(\"file deleted in fs should be droped from lix \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tconst filesInLixBefore = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/README.md\")\n\t\t\t.execute();\n\n\t\texpect(filesInLixBefore.length).toBe(1);\n\n\t\t// \"changes to a file on disk should reflect in lix\n\t\tfs.unlinkSync(\"/project.inlang/README.md\");\n\n\t\t// console.log(\"wrting fs settings\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\t\tconst fileInLixAfter = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/README.md\")\n\t\t\t.execute();\n\n\t\texpect(fileInLixAfter.length).toBe(0);\n\t});\n\n\ttest(\"file created in lix should be avaialable in fs \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tawait project.lix.db\n\t\t\t.insertInto(\"file\")\n\t\t\t.values({\n\t\t\t\tpath: \"/file-created-in.lix.txt\",\n\t\t\t\tdata: new TextEncoder().encode(\"random value lix\"),\n\t\t\t})\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst randomFileOnDiskContent = fs\n\t\t\t.readFileSync(\"/project.inlang/file-created-in.lix.txt\")\n\t\t\t.toString();\n\t\texpect(randomFileOnDiskContent).toBe(\"random value lix\");\n\t});\n\n\ttest(\"file updated in lix should be avaialable in fs \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// console.log(\"wrting lix settings\");\n\t\t// changes to a file in lix should reflect in the project directory\n\t\tawait project.lix.db\n\t\t\t.updateTable(\"file\")\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.set({\n\t\t\t\tdata: new TextEncoder().encode(\n\t\t\t\t\tJSON.stringify({ ...mockSettings, baseLocale: \"brand-new-locale2\" })\n\t\t\t\t),\n\t\t\t})\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst fileOnDisk = fs.readFileSync(\"/project.inlang/settings.json\");\n\t\tconst settings = JSON.parse(fileOnDisk.toString());\n\n\t\texpect(settings.baseLocale).toBe(\"brand-new-locale2\");\n\t});\n\n\ttest(\"file deleted in lix should be gone in fs as awell\", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// console.log(\"wrting lix settings\");\n\t\t// changes to a file in lix should reflect in the project directory\n\t\tawait project.lix.db\n\t\t\t.deleteFrom(\"file\")\n\t\t\t.where(\"path\", \"=\", \"/.gitignore\")\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst fileExistsOnDisk = fs.existsSync(\"/project.inlang/.gitignore\");\n\n\t\texpect(fileExistsOnDisk).toBe(false);\n\t});\n\n\ttest(\"file updated in fs and lix (conflicting) should result in the fs state\", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// console.log(\"wrting fs settings simultanous\");\n\t\t// changes to a file on disk and lix at the same time should lead to the fs version\n\t\tfs.writeFileSync(\n\t\t\t\"/project.inlang/settings.json\",\n\t\t\tJSON.stringify({ ...mockSettings, baseLocale: \"fs-version\" })\n\t\t);\n\n\t\t// console.log(\"wrting lix settings simultanous\");\n\t\tawait project.lix.db\n\t\t\t.updateTable(\"file\")\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.set({\n\t\t\t\tdata: new TextEncoder().encode(\n\t\t\t\t\tJSON.stringify({ ...mockSettings, baseLocale: \"lix-version\" })\n\t\t\t\t),\n\t\t\t})\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, 1010));\n\n\t\tconst fileOnDiskUpdated = fs.readFileSync(\"/project.inlang/settings.json\");\n\t\tconst settingsUpdated = JSON.parse(fileOnDiskUpdated.toString());\n\n\t\texpect(settingsUpdated.baseLocale).toBe(\"fs-version\");\n\n\t\tconst fileInLixUpdated = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\tconst settingsAfterUpdateOnDiskAndLix = JSON.parse(\n\t\t\tnew TextDecoder().decode(fileInLixUpdated.data)\n\t\t);\n\n\t\texpect(settingsAfterUpdateOnDiskAndLix.baseLocale).toBe(\"fs-version\");\n\t});\n});\n\ntest(\"errors from importing translation files should be shown\", async () => {\n\tconst mock = {\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mock);\n\n\tconst proxiedFs = new Proxy(fs, {\n\t\tget: (target, prop) => {\n\t\t\tif (prop === \"promises\") {\n\t\t\t\t// Intercept the 'promises' object\n\t\t\t\treturn new Proxy(target.promises, {\n\t\t\t\t\tget: (promisesTarget, promisesProp) => {\n\t\t\t\t\t\tif (promisesProp === \"readFile\") {\n\t\t\t\t\t\t\t// @ts-expect-error - we are mocking the fs\n\t\t\t\t\t\t\treturn (path, ...args) => {\n\t\t\t\t\t\t\t\tif (path.endsWith(\"some-file.json\")) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\"MOCK ERROR\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn promisesTarget.readFile(path, ...args);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Reflect.get(promisesTarget, promisesProp);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Reflect.get(target, prop);\n\t\t},\n\t});\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\timportFiles: async () => {\n\t\t\treturn { bundles: [], messages: [], variants: [] };\n\t\t},\n\t\ttoBeImportedFiles: async () => {\n\t\t\treturn [{ path: \"./some-file.json\", locale: \"mock\" }];\n\t\t},\n\t};\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: proxiedFs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\tconst errors = await project.errors.get();\n\t// TODO deactivated for now - we need to proxy fs.promises or change the signature of loadProject\n\texpect(errors).toHaveLength(1);\n\texpect(errors[0]).toBeInstanceOf(ResourceFileImportError);\n});\n\n// it happens often that a resource file doesn't exist yet on import\ntest(\"errors from importing translation files that are ENOENT should not be shown\", async () => {\n\tconst mock = {\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mock);\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\timportFiles: async () => {\n\t\t\treturn { bundles: [], messages: [], variants: [] };\n\t\t},\n\t\ttoBeImportedFiles: async () => {\n\t\t\treturn [{ path: \"./some-non-existing-file.json\", locale: \"mock\" }];\n\t\t},\n\t};\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\tconst errors = await project.errors.get();\n\texpect(errors).toHaveLength(0);\n});\n\n// it happens often that a resource file doesn't exist yet on import\ntest(\"it should pass toBeImportedMetadata on import\", async () => {\n\tconst mock = {\n\t\t\"/foo/en.json\": JSON.stringify({}),\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mock);\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\ttoBeImportedFiles: async () => {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tpath: \"/foo/en.json\",\n\t\t\t\t\tlocale: \"mock\",\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\timportFiles: async () => {\n\t\t\treturn { bundles: [], messages: [], variants: [] };\n\t\t},\n\t};\n\n\tconst toBeSpy = vi.spyOn(mockPlugin, \"toBeImportedFiles\");\n\tconst importSpy = vi.spyOn(mockPlugin, \"importFiles\");\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\texpect(toBeSpy).toHaveBeenCalled();\n\n\texpect(importSpy).toHaveBeenCalledWith(\n\t\texpect.objectContaining({\n\t\t\tfiles: [\n\t\t\t\texpect.objectContaining({\n\t\t\t\t\tname: \"en.json\",\n\t\t\t\t\ttoBeImportedFilesMetadata: {\n\t\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\t);\n});\n\ntest(\"it should provide plugins from disk for backwards compatibility but warn that those plugins are not portable\", async () => {\n\tconst mockRepo = {\n\t\t\"/local-plugins/mock-plugin.js\": \"export default { key: 'mock-plugin' }\",\n\t\t\"/local-plugins/mock-rule.js\":\n\t\t\t\"export default { id: 'messageLintRule.mock }\",\n\t\t\"/website/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [\n\t\t\t\t\"../local-plugins/mock-plugin.js\",\n\t\t\t\t\"../local-plugins/mock-rule.js\",\n\t\t\t],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/website/project.inlang\",\n\t});\n\n\tconst plugins = await project.plugins.get();\n\tconst errors = await project.errors.get();\n\tconst settings = await project.settings.get();\n\n\texpect(plugins.length).toBe(1);\n\texpect(plugins[0]?.key).toBe(\"mock-plugin\");\n\n\t// old mock lint rule import is number two import\n\t// it's hard to model the import of a lint rule\n\t// best if they are removed\n\texpect(errors.length).toBe(3);\n\texpect(errors[0]).toBeInstanceOf(WarningLocalPluginImport);\n\texpect(errors[1]).toBeInstanceOf(WarningLocalPluginImport);\n\texpect(errors[2]).toBeInstanceOf(WarningDeprecatedLintRule);\n\n\t// it should not remove the module from the settings\n\t// else roundtrips would not work\n\texpect(settings.modules?.[0]).toBe(\"../local-plugins/mock-plugin.js\");\n});\n\n// https://github.com/opral/inlang-sdk/issues/174\ntest(\"plugin calls that use fs should be intercepted to use an absolute path\", async () => {\n\tprocess.cwd = () => \"/\";\n\n\tconst mockRepo = {\n\t\t\"/messages/en.json\": JSON.stringify({\n\t\t\tkey1: \"value1\",\n\t\t\tkey2: \"value2\",\n\t\t}),\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\"plugin.mock-plugin\": {\n\t\t\t\tpathPattern: \"./messages/{locale}.json\",\n\t\t\t},\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\tloadMessages: async ({ nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern.replace(\n\t\t\t\t\"{locale}\",\n\t\t\t\t\"en\"\n\t\t\t) as string;\n\t\t\tconst file = await nodeishFs.readFile(pathPattern);\n\t\t\t// reading the file should be possible without an error\n\t\t\texpect(file.toString()).toBe(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tkey1: \"value1\",\n\t\t\t\t\tkey2: \"value2\",\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn [];\n\t\t},\n\t\tsaveMessages: async ({ nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern.replace(\n\t\t\t\t\"{locale}\",\n\t\t\t\t\"en\"\n\t\t\t) as string;\n\t\t\tconst file = new TextEncoder().encode(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tkey1: \"value1\",\n\t\t\t\t\tkey2: \"value2\",\n\t\t\t\t\tkey3: \"value3\",\n\t\t\t\t})\n\t\t\t);\n\t\t\tawait nodeishFs.writeFile(pathPattern, file.buffer as ArrayBuffer);\n\t\t},\n\t\ttoBeImportedFiles: async ({ settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern.replace(\n\t\t\t\t\"{locale}\",\n\t\t\t\t\"en\"\n\t\t\t) as string;\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tpath: pathPattern,\n\t\t\t\t\tlocale: \"en\",\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tconst loadMessagesSpy = vi.spyOn(mockPlugin, \"loadMessages\");\n\tconst saveMessagesSpy = vi.spyOn(mockPlugin, \"saveMessages\");\n\tconst toBeImportedFilesSpy = vi.spyOn(mockPlugin, \"toBeImportedFiles\");\n\tconst fsReadFileSpy = vi.spyOn(fs.promises, \"readFile\");\n\tconst fsWriteFileSpy = vi.spyOn(fs.promises, \"writeFile\");\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\texpect(loadMessagesSpy).toHaveBeenCalled();\n\texpect(fsReadFileSpy).toHaveBeenCalledWith(\"/messages/en.json\", undefined);\n\n\t// todo test that saveMessages works too.\n\t// await project.db.insertInto(\"bundle\").defaultValues().execute();\n\n\t// const translationFile = await fs.readFile(\"/messages/en.json\", \"utf-8\");\n\n\t// expect(translationFile).toBe(\n\t// \tJSON.stringify({\n\t// \t\tkey1: \"value1\",\n\t// \t\tkey2: \"value2\",\n\t// \t\tkey3: \"value3\",\n\t// \t})\n\t// );\n\n\t// expect(fsWriteFileSpy).toHaveBeenCalledWith(\n\t// \t\"/messages/en.json\",\n\t// \tJSON.stringify({\n\t// \t\tkey1: \"value1\",\n\t// \t\tkey2: \"value2\",\n\t// \t\tkey3: \"value3\",\n\t// \t}),\n\t// \t\"utf-8\"\n\t// );\n\n\t// expect(saveMessagesSpy).toHaveBeenCalled();\n\t// expect(toBeImportedFilesSpy).toHaveBeenCalled();\n});\n"],"names":[],"mappings":"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","debug_id":"38d550fe-29bc-58ce-bc46-e34467821546"}
|
|
1
|
+
{"version":3,"file":"loadProjectFromDirectory.test.js","sources":["project/loadProjectFromDirectory.test.ts"],"sourceRoot":"/","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { beforeEach, describe, expect, test, vi } from \"vitest\";\nimport { ProjectSettings } from \"../json-schema/settings.js\";\nimport { fs, vol, Volume } from \"memfs\";\nimport {\n\tloadProjectFromDirectory,\n\tResourceFileImportError,\n\tWarningDeprecatedLintRule,\n} from \"./loadProjectFromDirectory.js\";\nimport { selectBundleNested } from \"../query-utilities/selectBundleNested.js\";\nimport { Text } from \"../json-schema/pattern.js\";\nimport type { InlangPlugin } from \"../plugin/schema.js\";\nimport type {\n\tMessageV1,\n\tVariantV1,\n} from \"../json-schema/old-v1-message/schemaV1.js\";\nimport { saveProjectToDirectory } from \"./saveProjectToDirectory.js\";\nimport { insertBundleNested } from \"../query-utilities/insertBundleNested.js\";\n\ntest(\"plugin.loadMessages and plugin.saveMessages must not be configured together with import export\", async () => {\n\tconst mockLegacyPlugin: InlangPlugin = {\n\t\tkey: \"mock-legacy-plugin\",\n\t\tloadMessages: async () => {\n\t\t\treturn [];\n\t\t},\n\t\tsaveMessages: async () => {},\n\t};\n\n\tconst mockLegacyPlugin2: InlangPlugin = {\n\t\tkey: \"mock-legacy-plugin-2\",\n\t\tloadMessages: async () => {\n\t\t\treturn [];\n\t\t},\n\t\tsaveMessages: async () => {},\n\t};\n\n\tconst mockImportExportPlugin: InlangPlugin = {\n\t\tkey: \"mock-import-export-plugin\",\n\t\texportFiles: () => {\n\t\t\treturn [];\n\t\t},\n\t\timportFiles: () => {\n\t\t\treturn {} as any;\n\t\t},\n\t};\n\n\tawait expect(\n\t\t(async () => {\n\t\t\tawait loadProjectFromDirectory({\n\t\t\t\tfs: Volume.fromJSON({\n\t\t\t\t\t\"./project.inlang/settings.json\": JSON.stringify({\n\t\t\t\t\t\tbaseLocale: \"en\",\n\t\t\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\t\t\tmodules: [],\n\t\t\t\t\t} satisfies ProjectSettings),\n\t\t\t\t}) as any,\n\t\t\t\tpath: \"./project.inlang\",\n\t\t\t\tprovidePlugins: [\n\t\t\t\t\tmockLegacyPlugin,\n\t\t\t\t\tmockLegacyPlugin2,\n\t\t\t\t\tmockImportExportPlugin,\n\t\t\t\t],\n\t\t\t});\n\t\t})()\n\t).rejects.toThrowError();\n\n\tawait expect(\n\t\t(async () => {\n\t\t\tawait loadProjectFromDirectory({\n\t\t\t\tfs: Volume.fromJSON({\n\t\t\t\t\t\"./project.inlang/settings.json\": JSON.stringify({\n\t\t\t\t\t\tbaseLocale: \"en\",\n\t\t\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\t\t\tmodules: [],\n\t\t\t\t\t} satisfies ProjectSettings),\n\t\t\t\t}) as any,\n\t\t\t\tpath: \"./project.inlang\",\n\t\t\t\tprovidePlugins: [\n\t\t\t\t\tmockLegacyPlugin,\n\t\t\t\t\tmockLegacyPlugin2,\n\t\t\t\t\tmockImportExportPlugin,\n\t\t\t\t],\n\t\t\t});\n\t\t})()\n\t).rejects.toThrowError();\n});\n\ntest(\"plugin.loadMessages and plugin.saveMessages should work for legacy purposes\", async () => {\n\tconst mockLegacyPlugin: InlangPlugin = {\n\t\tid: \"mock-legacy-plugin\",\n\t\t// @ts-expect-error - id is deprecated, key can be undefined\n\t\tkey: undefined,\n\t\tloadMessages: async ({ nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern as string;\n\n\t\t\tconst messages: MessageV1[] = [];\n\n\t\t\t// @ts-expect-error - language tag is always given by the sdk v2\n\t\t\tfor (const languageTag of settings.languageTags) {\n\t\t\t\tconst data = await nodeishFs.readFile(\n\t\t\t\t\tpathPattern.replace(\"{languageTag}\", languageTag)\n\t\t\t\t);\n\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tJSON.parse(data.toString())\n\t\t\t\t)) {\n\t\t\t\t\tconst exisitngMessage = messages.find(\n\t\t\t\t\t\t(message) => message.id === key\n\t\t\t\t\t);\n\t\t\t\t\tconst variant = {\n\t\t\t\t\t\tlanguageTag: languageTag,\n\t\t\t\t\t\tmatch: [],\n\t\t\t\t\t\tpattern: [{ type: \"Text\", value: value }],\n\t\t\t\t\t} as VariantV1;\n\t\t\t\t\tif (exisitngMessage !== undefined) {\n\t\t\t\t\t\texisitngMessage.variants.push(variant);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmessages.push({\n\t\t\t\t\t\t\talias: {},\n\t\t\t\t\t\t\tid: key,\n\t\t\t\t\t\t\tselectors: [],\n\t\t\t\t\t\t\tvariants: [variant],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn messages;\n\t\t},\n\t\tsaveMessages: async ({ messages, nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern as string;\n\t\t\tfor (const languageTag of settings.languageTags!) {\n\t\t\t\tconst messagesInLanguage = {} as Record<string, string>;\n\t\t\t\tfor (const message of messages) {\n\t\t\t\t\tconst variantsInLanguage = message.variants.filter(\n\t\t\t\t\t\t(variant) => variant.languageTag === languageTag\n\t\t\t\t\t);\n\t\t\t\t\tif (variantsInLanguage.length > 1) {\n\t\t\t\t\t\t// data will get lost during export => throw?\n\t\t\t\t\t} else if (variantsInLanguage.length === 1) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tvariantsInLanguage[0]!.pattern.length != 1 ||\n\t\t\t\t\t\t\tvariantsInLanguage[0]!.pattern[0]?.type !== \"Text\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// throw?\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmessagesInLanguage[message.id] = (\n\t\t\t\t\t\t\tvariantsInLanguage[0]!.pattern[0]! as any\n\t\t\t\t\t\t).value;\n\t\t\t\t\t}\n\t\t\t\t\t// else no-op\n\t\t\t\t}\n\t\t\t\tawait nodeishFs.writeFile(\n\t\t\t\t\tpathPattern.replace(\"{languageTag}\", languageTag),\n\t\t\t\t\tJSON.stringify(messagesInLanguage, null, 2)\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\tconst mockRepo = {\n\t\t\"./README.md\": \"# Hello World\",\n\t\t\"./src/index.js\": \"console.log('Hello World')\",\n\t\t\"./src/translations/en.json\": JSON.stringify({\n\t\t\tkey1: \"value1\",\n\t\t\tkey2: \"value2\",\n\t\t}),\n\t\t\"./src/translations/de.json\": JSON.stringify({\n\t\t\tkey1: \"wert1\",\n\t\t\tkey2: \"wert2\",\n\t\t}),\n\t\t\"./project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [\"./mock-module.js\"],\n\t\t\t\"plugin.mock-plugin\": {\n\t\t\t\tpathPattern: \"./src/translations/{languageTag}.json\",\n\t\t\t},\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tlet project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"./project.inlang\",\n\t\tprovidePlugins: [mockLegacyPlugin],\n\t});\n\n\tawait insertBundleNested(project.db, {\n\t\tid: \"key-id\",\n\t\tmessages: [\n\t\t\t{\n\t\t\t\tid: \"mock-message\",\n\t\t\t\tbundleId: \"mock-bundle\",\n\t\t\t\tlocale: \"en\",\n\t\t\t\tselectors: [],\n\t\t\t\tvariants: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmessageId: \"mock-message\",\n\t\t\t\t\t\tpattern: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\tvalue: \"JOJO\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\tawait saveProjectToDirectory({\n\t\tfs: fs.promises as any,\n\t\tpath: \"./project.inlang\",\n\t\tproject,\n\t});\n\n\tproject = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"./project.inlang\",\n\t\tprovidePlugins: [mockLegacyPlugin],\n\t});\n\n\tconst bundles = await selectBundleNested(project.db).execute();\n\n\tconst bundlesOrdered = bundles.sort((a, b) => a.id.localeCompare(b.id));\n\n\texpect(bundles.length).toBe(3);\n\texpect(bundlesOrdered[0]?.messages[0]?.locale).toBe(\"en\");\n\texpect(\n\t\t(bundlesOrdered[0]?.messages[0]?.variants[0]?.pattern[0] as Text)?.value\n\t).toBe(\"JOJO\");\n\n\t// TODO fix\n\t// expect(bundlesOrdered[0]?.messages[9]?.locale).toBe(\"en\");\n\t// expect(\n\t// \t(bundlesOrdered[0]?.messages[1]?.variants[0]?.pattern[0] as Text)?.value\n\t// ).toBe(\"wert1\");\n\n\t// expect(bundlesOrdered[1]?.messages[0]?.locale).toBe(\"en\");\n\t// expect(\n\t// \t(bundlesOrdered[1]?.messages[0]?.variants[0]?.pattern[0] as Text)?.value\n\t// ).toBe(\"value2\");\n\n\t// expect(bundlesOrdered[1]?.messages[1]?.locale).toBe(\"de\");\n\t// expect(\n\t// \t(bundlesOrdered[1]?.messages[1]?.variants[0]?.pattern[0] as Text)?.value\n\t// ).toBe(\"wert2\");\n});\n\nconst mockSettings = {\n\tbaseLocale: \"en\",\n\tlocales: [\"en\", \"de\"],\n\tmodules: [],\n} satisfies ProjectSettings;\n\nconst mockDirectory = {\n\t\"/project.inlang/cache/plugin/29j49j2\": \"cache value\",\n\t\"/project.inlang/.gitignore\": \"git value\",\n\t\"/project.inlang/prettierrc.json\": \"prettier value\",\n\t\"/project.inlang/README.md\": \"readme value\",\n\t\"/project.inlang/settings.json\": JSON.stringify(mockSettings),\n};\n\ndescribe(\"it should keep files between the inlang directory and lix in sync\", async () => {\n\ttest(\"files from directory should be available via lix after project has been loaded from directory\", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tconst files = await project.lix.db.selectFrom(\"file\").selectAll().execute();\n\n\t\texpect(files.length).toBe(\n\t\t\t5 + 1 /* the db.sqlite file */ + 1 /* project_id */\n\t\t);\n\n\t\tconst filesByPath = files.reduce((acc, file) => {\n\t\t\tacc[file.path] = new TextDecoder().decode(file.data);\n\t\t\treturn acc;\n\t\t}, {} as any);\n\n\t\texpect(filesByPath[\"/cache/plugin/29j49j2\"]).toBe(\"cache value\");\n\t\texpect(filesByPath[\"/.gitignore\"]).toBe(\"git value\");\n\t\texpect(filesByPath[\"/prettierrc.json\"]).toBe(\"prettier value\");\n\t\texpect(filesByPath[\"/README.md\"]).toBe(\"readme value\");\n\t\texpect(filesByPath[\"/settings.json\"]).toBe(JSON.stringify(mockSettings));\n\t});\n\n\ttest(\"file created in fs should be avaialable in lix \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tfs.writeFileSync(\n\t\t\t\"/project.inlang/file-created-on-fs.txt\",\n\t\t\t\"value written by fs\",\n\t\t\t{\n\t\t\t\tencoding: \"utf-8\",\n\t\t\t}\n\t\t);\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst randomFileInLix = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/file-created-on-fs.txt\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\texpect(new TextDecoder().decode(randomFileInLix.data)).toBe(\n\t\t\t\"value written by fs\"\n\t\t);\n\t});\n\n\ttest(\"file updated in fs should be avaialable in lix \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// \"changes to a file on disk should reflect in lix\n\t\tfs.writeFileSync(\n\t\t\t\"/project.inlang/settings.json\",\n\t\t\tJSON.stringify({\n\t\t\t\t...mockSettings,\n\t\t\t\tbaseLocale: \"brand-new-locale-written-to-fs-file\",\n\t\t\t})\n\t\t);\n\n\t\t// console.log(\"wrting fs settings\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\t\tconst fileInLix = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\tconst settingsAfterUpdateOnDisk = JSON.parse(\n\t\t\tnew TextDecoder().decode(fileInLix.data)\n\t\t);\n\n\t\texpect(settingsAfterUpdateOnDisk.baseLocale).toBe(\n\t\t\t\"brand-new-locale-written-to-fs-file\"\n\t\t);\n\t});\n\n\ttest(\"file deleted in fs should be droped from lix \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tconst filesInLixBefore = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/README.md\")\n\t\t\t.execute();\n\n\t\texpect(filesInLixBefore.length).toBe(1);\n\n\t\t// \"changes to a file on disk should reflect in lix\n\t\tfs.unlinkSync(\"/project.inlang/README.md\");\n\n\t\t// console.log(\"wrting fs settings\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\t\tconst fileInLixAfter = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/README.md\")\n\t\t\t.execute();\n\n\t\texpect(fileInLixAfter.length).toBe(0);\n\t});\n\n\ttest(\"file created in lix should be avaialable in fs \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\tawait project.lix.db\n\t\t\t.insertInto(\"file\")\n\t\t\t.values({\n\t\t\t\tpath: \"/file-created-in.lix.txt\",\n\t\t\t\tdata: new TextEncoder().encode(\"random value lix\"),\n\t\t\t})\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst randomFileOnDiskContent = fs\n\t\t\t.readFileSync(\"/project.inlang/file-created-in.lix.txt\")\n\t\t\t.toString();\n\t\texpect(randomFileOnDiskContent).toBe(\"random value lix\");\n\t});\n\n\ttest(\"file updated in lix should be avaialable in fs \", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// console.log(\"wrting lix settings\");\n\t\t// changes to a file in lix should reflect in the project directory\n\t\tawait project.lix.db\n\t\t\t.updateTable(\"file\")\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.set({\n\t\t\t\tdata: new TextEncoder().encode(\n\t\t\t\t\tJSON.stringify({ ...mockSettings, baseLocale: \"brand-new-locale2\" })\n\t\t\t\t),\n\t\t\t})\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst fileOnDisk = fs.readFileSync(\"/project.inlang/settings.json\");\n\t\tconst settings = JSON.parse(fileOnDisk.toString());\n\n\t\texpect(settings.baseLocale).toBe(\"brand-new-locale2\");\n\t});\n\n\ttest(\"file deleted in lix should be gone in fs as awell\", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// console.log(\"wrting lix settings\");\n\t\t// changes to a file in lix should reflect in the project directory\n\t\tawait project.lix.db\n\t\t\t.deleteFrom(\"file\")\n\t\t\t.where(\"path\", \"=\", \"/.gitignore\")\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, syncInterval + 10));\n\n\t\tconst fileExistsOnDisk = fs.existsSync(\"/project.inlang/.gitignore\");\n\n\t\texpect(fileExistsOnDisk).toBe(false);\n\t});\n\n\ttest(\"file updated in fs and lix (conflicting) should result in the fs state\", async () => {\n\t\tconst syncInterval = 100;\n\t\tconst fs = Volume.fromJSON(mockDirectory);\n\n\t\tconst project = await loadProjectFromDirectory({\n\t\t\tfs: fs as any,\n\t\t\tpath: \"/project.inlang\",\n\t\t\tsyncInterval: syncInterval,\n\t\t});\n\n\t\t// console.log(\"wrting fs settings simultanous\");\n\t\t// changes to a file on disk and lix at the same time should lead to the fs version\n\t\tfs.writeFileSync(\n\t\t\t\"/project.inlang/settings.json\",\n\t\t\tJSON.stringify({ ...mockSettings, baseLocale: \"fs-version\" })\n\t\t);\n\n\t\t// console.log(\"wrting lix settings simultanous\");\n\t\tawait project.lix.db\n\t\t\t.updateTable(\"file\")\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.set({\n\t\t\t\tdata: new TextEncoder().encode(\n\t\t\t\t\tJSON.stringify({ ...mockSettings, baseLocale: \"lix-version\" })\n\t\t\t\t),\n\t\t\t})\n\t\t\t.execute();\n\n\t\t// lets wait a seconds to allow the sync process catch up\n\t\tawait new Promise((resolve) => setTimeout(resolve, 1010));\n\n\t\tconst fileOnDiskUpdated = fs.readFileSync(\"/project.inlang/settings.json\");\n\t\tconst settingsUpdated = JSON.parse(fileOnDiskUpdated.toString());\n\n\t\texpect(settingsUpdated.baseLocale).toBe(\"fs-version\");\n\n\t\tconst fileInLixUpdated = await project.lix.db\n\t\t\t.selectFrom(\"file\")\n\t\t\t.selectAll()\n\t\t\t.where(\"path\", \"=\", \"/settings.json\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\tconst settingsAfterUpdateOnDiskAndLix = JSON.parse(\n\t\t\tnew TextDecoder().decode(fileInLixUpdated.data)\n\t\t);\n\n\t\texpect(settingsAfterUpdateOnDiskAndLix.baseLocale).toBe(\"fs-version\");\n\t});\n});\n\ntest(\"errors from importing translation files should be shown\", async () => {\n\tconst mock = {\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mock);\n\n\tconst proxiedFs = new Proxy(fs, {\n\t\tget: (target, prop) => {\n\t\t\tif (prop === \"promises\") {\n\t\t\t\t// Intercept the 'promises' object\n\t\t\t\treturn new Proxy(target.promises, {\n\t\t\t\t\tget: (promisesTarget, promisesProp) => {\n\t\t\t\t\t\tif (promisesProp === \"readFile\") {\n\t\t\t\t\t\t\t// @ts-expect-error - we are mocking the fs\n\t\t\t\t\t\t\treturn (path, ...args) => {\n\t\t\t\t\t\t\t\tif (path.endsWith(\"some-file.json\")) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\"MOCK ERROR\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn promisesTarget.readFile(path, ...args);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Reflect.get(promisesTarget, promisesProp);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Reflect.get(target, prop);\n\t\t},\n\t});\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\timportFiles: async () => {\n\t\t\treturn { bundles: [], messages: [], variants: [] };\n\t\t},\n\t\ttoBeImportedFiles: async () => {\n\t\t\treturn [{ path: \"./some-file.json\", locale: \"mock\" }];\n\t\t},\n\t};\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: proxiedFs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\tconst errors = await project.errors.get();\n\t// TODO deactivated for now - we need to proxy fs.promises or change the signature of loadProject\n\texpect(errors).toHaveLength(1);\n\texpect(errors[0]).toBeInstanceOf(ResourceFileImportError);\n});\n\n// it happens often that a resource file doesn't exist yet on import\ntest(\"errors from importing translation files that are ENOENT should not be shown\", async () => {\n\tconst mock = {\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mock);\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\timportFiles: async () => {\n\t\t\treturn { bundles: [], messages: [], variants: [] };\n\t\t},\n\t\ttoBeImportedFiles: async () => {\n\t\t\treturn [{ path: \"./some-non-existing-file.json\", locale: \"mock\" }];\n\t\t},\n\t};\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\tconst errors = await project.errors.get();\n\texpect(errors).toHaveLength(0);\n});\n\n// it happens often that a resource file doesn't exist yet on import\ntest(\"it should pass toBeImportedMetadata on import\", async () => {\n\tconst mock = {\n\t\t\"/foo/en.json\": JSON.stringify({}),\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mock);\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\ttoBeImportedFiles: async () => {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tpath: \"/foo/en.json\",\n\t\t\t\t\tlocale: \"mock\",\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\timportFiles: async () => {\n\t\t\treturn { bundles: [], messages: [], variants: [] };\n\t\t},\n\t};\n\n\tconst toBeSpy = vi.spyOn(mockPlugin, \"toBeImportedFiles\");\n\tconst importSpy = vi.spyOn(mockPlugin, \"importFiles\");\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\texpect(toBeSpy).toHaveBeenCalled();\n\n\texpect(importSpy).toHaveBeenCalledWith(\n\t\texpect.objectContaining({\n\t\t\tfiles: [\n\t\t\t\texpect.objectContaining({\n\t\t\t\t\tname: \"en.json\",\n\t\t\t\t\ttoBeImportedFilesMetadata: {\n\t\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\t);\n});\n\ntest(\"it should provide plugins from disk for backwards compatibility but warn that those plugins are not portable\", async () => {\n\tconst mockRepo = {\n\t\t\"/local-plugins/mock-plugin.js\": \"export default { key: 'mock-plugin' }\",\n\t\t\"/local-plugins/mock-rule.js\":\n\t\t\t\"export default { id: 'messageLintRule.mock }\",\n\t\t\"/website/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\tmodules: [\n\t\t\t\t\"../local-plugins/mock-plugin.js\",\n\t\t\t\t\"../local-plugins/mock-rule.js\",\n\t\t\t],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/website/project.inlang\",\n\t});\n\n\tconst plugins = await project.plugins.get();\n\tconst errors = await project.errors.get();\n\tconst settings = await project.settings.get();\n\n\texpect(plugins.length).toBe(1);\n\texpect(plugins[0]?.key).toBe(\"mock-plugin\");\n\n\texpect(errors.length).toBe(1);\n\texpect(errors[0]).toBeInstanceOf(WarningDeprecatedLintRule);\n\n\t// it should not remove the module from the settings\n\t// else roundtrips would not work\n\texpect(settings.modules?.[0]).toBe(\"../local-plugins/mock-plugin.js\");\n});\n\n// https://github.com/opral/inlang-sdk/issues/174\ntest(\"plugin calls that use fs should be intercepted to use an absolute path\", async () => {\n\tprocess.cwd = () => \"/\";\n\n\tconst mockRepo = {\n\t\t\"/messages/en.json\": JSON.stringify({\n\t\t\tkey1: \"value1\",\n\t\t\tkey2: \"value2\",\n\t\t}),\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\"plugin.mock-plugin\": {\n\t\t\t\tpathPattern: \"./messages/{locale}.json\",\n\t\t\t},\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst mockPlugin: InlangPlugin = {\n\t\tkey: \"mock-plugin\",\n\t\tloadMessages: async ({ nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern.replace(\n\t\t\t\t\"{locale}\",\n\t\t\t\t\"en\"\n\t\t\t) as string;\n\t\t\tconst file = await nodeishFs.readFile(pathPattern);\n\t\t\t// reading the file should be possible without an error\n\t\t\texpect(file.toString()).toBe(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tkey1: \"value1\",\n\t\t\t\t\tkey2: \"value2\",\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn [];\n\t\t},\n\t\tsaveMessages: async ({ nodeishFs, settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern.replace(\n\t\t\t\t\"{locale}\",\n\t\t\t\t\"en\"\n\t\t\t) as string;\n\t\t\tconst file = new TextEncoder().encode(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tkey1: \"value1\",\n\t\t\t\t\tkey2: \"value2\",\n\t\t\t\t\tkey3: \"value3\",\n\t\t\t\t})\n\t\t\t);\n\t\t\tawait nodeishFs.writeFile(pathPattern, file.buffer as ArrayBuffer);\n\t\t},\n\t\ttoBeImportedFiles: async ({ settings }) => {\n\t\t\tconst pathPattern = settings[\"plugin.mock-plugin\"]?.pathPattern.replace(\n\t\t\t\t\"{locale}\",\n\t\t\t\t\"en\"\n\t\t\t) as string;\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tpath: pathPattern,\n\t\t\t\t\tlocale: \"en\",\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tconst loadMessagesSpy = vi.spyOn(mockPlugin, \"loadMessages\");\n\tconst saveMessagesSpy = vi.spyOn(mockPlugin, \"saveMessages\");\n\tconst toBeImportedFilesSpy = vi.spyOn(mockPlugin, \"toBeImportedFiles\");\n\tconst fsReadFileSpy = vi.spyOn(fs.promises, \"readFile\");\n\tconst fsWriteFileSpy = vi.spyOn(fs.promises, \"writeFile\");\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t\tprovidePlugins: [mockPlugin],\n\t});\n\n\texpect(loadMessagesSpy).toHaveBeenCalled();\n\texpect(fsReadFileSpy).toHaveBeenCalledWith(\"/messages/en.json\", undefined);\n\n\t// todo test that saveMessages works too.\n\t// await project.db.insertInto(\"bundle\").defaultValues().execute();\n\n\t// const translationFile = await fs.readFile(\"/messages/en.json\", \"utf-8\");\n\n\t// expect(translationFile).toBe(\n\t// \tJSON.stringify({\n\t// \t\tkey1: \"value1\",\n\t// \t\tkey2: \"value2\",\n\t// \t\tkey3: \"value3\",\n\t// \t})\n\t// );\n\n\t// expect(fsWriteFileSpy).toHaveBeenCalledWith(\n\t// \t\"/messages/en.json\",\n\t// \tJSON.stringify({\n\t// \t\tkey1: \"value1\",\n\t// \t\tkey2: \"value2\",\n\t// \t\tkey3: \"value3\",\n\t// \t}),\n\t// \t\"utf-8\"\n\t// );\n\n\t// expect(saveMessagesSpy).toHaveBeenCalled();\n\t// expect(toBeImportedFilesSpy).toHaveBeenCalled();\n});\n\ntest(\"it can import plugins via http\", async () => {\n\tconst mockRepo = {\n\t\t\"/project.inlang/settings.json\": JSON.stringify({\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\"],\n\t\t\tmodules: [\"https://example.com/plugin.js\"],\n\t\t} satisfies ProjectSettings),\n\t};\n\n\tconst fs = Volume.fromJSON(mockRepo);\n\n\tconst mockPluginModule = `export default {\n\t\t\tkey: \"mock-plugin\"\t\n\t\t}`;\n\n\tglobal.fetch = vi.fn(() => Promise.resolve(new Response(mockPluginModule)));\n\n\tconst project = await loadProjectFromDirectory({\n\t\tfs: fs as any,\n\t\tpath: \"/project.inlang\",\n\t});\n\n\tconst plugins = await project.plugins.get();\n\n\texpect(global.fetch).toHaveBeenCalledWith(\"https://example.com/plugin.js\");\n\texpect(plugins.length).toBe(1);\n\n\tconst pluginCache = await project.lix.db\n\t\t.selectFrom(\"file\")\n\t\t.selectAll()\n\t\t.where(\"path\", \"like\", \"/cache/plugins/%\")\n\t\t.execute();\n\n\texpect(\n\t\tpluginCache.some(\n\t\t\t(file) => new TextDecoder().decode(file.data) === mockPluginModule\n\t\t),\n\t\t\"expecting the plugin to be cached\"\n\t).toBe(true);\n});\n"],"names":[],"mappings":"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","debug_id":"f4f0657b-efd6-57ad-929c-9ac84897bf71"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadProjectInMemory.d.ts","sourceRoot":"/","sources":["project/loadProjectInMemory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE;IACL,IAAI,EAAE,IAAI,CAAC;CACX,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"loadProjectInMemory.d.ts","sourceRoot":"/","sources":["project/loadProjectInMemory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE;IACL,IAAI,EAAE,IAAI,CAAC;CACX,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,6CAyB7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e6c68a72-5735-5221-ad8a-f9bdb6041efb")}catch(e){}}();
|
|
3
3
|
import { openLixInMemory } from "@lix-js/sdk";
|
|
4
4
|
import { createInMemoryDatabase, importDatabase } from "sqlite-wasm-kysely";
|
|
5
5
|
import { loadProject } from "./loadProject.js";
|
|
@@ -9,6 +9,7 @@ import { loadProject } from "./loadProject.js";
|
|
|
9
9
|
export async function loadProjectInMemory(args) {
|
|
10
10
|
const lix = await openLixInMemory({
|
|
11
11
|
blob: args.blob,
|
|
12
|
+
account: args.account,
|
|
12
13
|
providePlugins: [
|
|
13
14
|
// inlangLixPluginV1
|
|
14
15
|
],
|
|
@@ -28,4 +29,4 @@ export async function loadProjectInMemory(args) {
|
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
31
|
//# sourceMappingURL=loadProjectInMemory.js.map
|
|
31
|
-
//# debugId=
|
|
32
|
+
//# debugId=e6c68a72-5735-5221-ad8a-f9bdb6041efb
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadProjectInMemory.js","sources":["project/loadProjectInMemory.ts"],"sourceRoot":"/","sourcesContent":["import { openLixInMemory } from \"@lix-js/sdk\";\nimport { createInMemoryDatabase, importDatabase } from \"sqlite-wasm-kysely\";\nimport { loadProject } from \"./loadProject.js\";\n\n/**\n * Load a project from a blob in memory.\n */\nexport async function loadProjectInMemory(\n\targs: {\n\t\tblob: Blob;\n\t} & Omit<Parameters<typeof loadProject>[0], \"sqlite\" | \"lix\">\n) {\n\tconst lix = await openLixInMemory({\n\t\tblob: args.blob,\n\t\tprovidePlugins: [\n\t\t\t// inlangLixPluginV1\n\t\t],\n\t});\n\n\tconst dbFile = await lix.db\n\t\t.selectFrom(\"file\")\n\t\t.select(\"data\")\n\t\t.where(\"path\", \"=\", \"/db.sqlite\")\n\t\t.executeTakeFirstOrThrow();\n\n\tconst sqlite = await createInMemoryDatabase({});\n\timportDatabase({ db: sqlite, content: new Uint8Array(dbFile.data) });\n\n\treturn await loadProject({\n\t\t// pass common arguments to loadProject\n\t\t...args,\n\t\tsqlite,\n\t\tlix,\n\t});\n}\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,IAE6D;IAE7D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,cAAc,EAAE;QACf,oBAAoB;SACpB;KACD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;SACzB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,MAAM,CAAC;SACd,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC;SAChC,uBAAuB,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAErE,OAAO,MAAM,WAAW,CAAC;QACxB,uCAAuC;QACvC,GAAG,IAAI;QACP,MAAM;QACN,GAAG;KACH,CAAC,CAAC;AACJ,CAAC","debug_id":"
|
|
1
|
+
{"version":3,"file":"loadProjectInMemory.js","sources":["project/loadProjectInMemory.ts"],"sourceRoot":"/","sourcesContent":["import { openLixInMemory } from \"@lix-js/sdk\";\nimport { createInMemoryDatabase, importDatabase } from \"sqlite-wasm-kysely\";\nimport { loadProject } from \"./loadProject.js\";\n\n/**\n * Load a project from a blob in memory.\n */\nexport async function loadProjectInMemory(\n\targs: {\n\t\tblob: Blob;\n\t} & Omit<Parameters<typeof loadProject>[0], \"sqlite\" | \"lix\">\n) {\n\tconst lix = await openLixInMemory({\n\t\tblob: args.blob,\n\t\taccount: args.account,\n\t\tprovidePlugins: [\n\t\t\t// inlangLixPluginV1\n\t\t],\n\t});\n\n\tconst dbFile = await lix.db\n\t\t.selectFrom(\"file\")\n\t\t.select(\"data\")\n\t\t.where(\"path\", \"=\", \"/db.sqlite\")\n\t\t.executeTakeFirstOrThrow();\n\n\tconst sqlite = await createInMemoryDatabase({});\n\timportDatabase({ db: sqlite, content: new Uint8Array(dbFile.data) });\n\n\treturn await loadProject({\n\t\t// pass common arguments to loadProject\n\t\t...args,\n\t\tsqlite,\n\t\tlix,\n\t});\n}\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,IAE6D;IAE7D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,cAAc,EAAE;QACf,oBAAoB;SACpB;KACD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;SACzB,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,MAAM,CAAC;SACd,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC;SAChC,uBAAuB,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAErE,OAAO,MAAM,WAAW,CAAC;QACxB,uCAAuC;QACvC,GAAG,IAAI;QACP,MAAM;QACN,GAAG;KACH,CAAC,CAAC;AACJ,CAAC","debug_id":"e6c68a72-5735-5221-ad8a-f9bdb6041efb"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { Kysely } from "kysely";
|
|
2
|
-
import { type ProjectState } from "./state/state.js";
|
|
3
2
|
import type { InlangDatabaseSchema } from "../database/schema.js";
|
|
3
|
+
import type { ProjectSettings } from "../json-schema/settings.js";
|
|
4
|
+
import type { Lix } from "@lix-js/sdk";
|
|
4
5
|
export declare function maybeCaptureLoadedProject(args: {
|
|
5
|
-
|
|
6
|
+
id: string;
|
|
7
|
+
lix: Lix;
|
|
8
|
+
settings: ProjectSettings;
|
|
9
|
+
plugins: Readonly<Array<{
|
|
10
|
+
key: string;
|
|
11
|
+
}>>;
|
|
6
12
|
appId?: string;
|
|
7
13
|
db: Kysely<InlangDatabaseSchema>;
|
|
8
14
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybeCaptureTelemetry.d.ts","sourceRoot":"/","sources":["project/maybeCaptureTelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"maybeCaptureTelemetry.d.ts","sourceRoot":"/","sources":["project/maybeCaptureTelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;CACjC,iBAqDA"}
|
|
@@ -1,46 +1,58 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="55ec9f86-02cc-595e-9046-4e7388e9f61b")}catch(e){}}();
|
|
3
3
|
import { Kysely } from "kysely";
|
|
4
4
|
import { capture } from "../services/telemetry/capture.js";
|
|
5
|
-
import {} from "./state/state.js";
|
|
6
5
|
import { ENV_VARIABLES } from "../services/env-variables/index.js";
|
|
6
|
+
import { captureError } from "../services/error-reporting/index.js";
|
|
7
7
|
export async function maybeCaptureLoadedProject(args) {
|
|
8
|
-
|
|
9
|
-
const settings = await args.state.settings.get();
|
|
10
|
-
const plugins = await args.state.plugins.get();
|
|
11
|
-
if (settings.telemetry === "off") {
|
|
8
|
+
if (args.settings.telemetry === "off") {
|
|
12
9
|
return;
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
settings,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
11
|
+
try {
|
|
12
|
+
const activeAccount = await args.lix.db
|
|
13
|
+
.selectFrom("active_account")
|
|
14
|
+
.select("id")
|
|
15
|
+
.executeTakeFirstOrThrow();
|
|
16
|
+
const bundles = await args.db
|
|
17
|
+
.selectFrom("bundle")
|
|
18
|
+
.select((s) => s.fn.count("id").as("count"))
|
|
19
|
+
.executeTakeFirst();
|
|
20
|
+
const messages = await args.db
|
|
21
|
+
.selectFrom("message")
|
|
22
|
+
.select((s) => s.fn.count("id").as("count"))
|
|
23
|
+
.executeTakeFirst();
|
|
24
|
+
const variants = await args.db
|
|
25
|
+
.selectFrom("variant")
|
|
26
|
+
.select((s) => s.fn.count("id").as("count"))
|
|
27
|
+
.executeTakeFirst();
|
|
28
|
+
await capture("SDK loaded project", {
|
|
29
|
+
projectId: args.id,
|
|
30
|
+
settings: args.settings,
|
|
31
|
+
accountId: activeAccount.id,
|
|
32
|
+
properties: {
|
|
33
|
+
// Insight: Which app is used by the SDK
|
|
34
|
+
appId: args.appId,
|
|
35
|
+
// Insight: How many languages are used, etc.
|
|
36
|
+
settings: args.settings,
|
|
37
|
+
// Insight on the used plugins (which one's to prioritize)
|
|
38
|
+
pluginKeys: args.plugins.map((plugin) => plugin.key),
|
|
39
|
+
// Insight: Which version of the SDK is used (can be used to deprecate old versions)
|
|
40
|
+
sdkVersion: ENV_VARIABLES.SDK_VERSION,
|
|
41
|
+
// Insight: Scale of projects (what project size to optimize for)
|
|
42
|
+
numBundles: bundles?.count,
|
|
43
|
+
numMessages: messages?.count,
|
|
44
|
+
numVariants: variants?.count,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
if (e instanceof Error &&
|
|
50
|
+
e.message.includes("driver has already been destroyed")) {
|
|
51
|
+
// The project has been closed, nothing to capture
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
captureError(e);
|
|
55
|
+
}
|
|
44
56
|
}
|
|
45
57
|
//# sourceMappingURL=maybeCaptureTelemetry.js.map
|
|
46
|
-
//# debugId=
|
|
58
|
+
//# debugId=55ec9f86-02cc-595e-9046-4e7388e9f61b
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybeCaptureTelemetry.js","sources":["project/maybeCaptureTelemetry.ts"],"sourceRoot":"/","sourcesContent":["import { Kysely } from \"kysely\";\nimport { capture } from \"../services/telemetry/capture.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"maybeCaptureTelemetry.js","sources":["project/maybeCaptureTelemetry.ts"],"sourceRoot":"/","sourcesContent":["import { Kysely } from \"kysely\";\nimport { capture } from \"../services/telemetry/capture.js\";\nimport type { InlangDatabaseSchema } from \"../database/schema.js\";\nimport { ENV_VARIABLES } from \"../services/env-variables/index.js\";\nimport type { ProjectSettings } from \"../json-schema/settings.js\";\nimport { captureError } from \"../services/error-reporting/index.js\";\nimport type { Lix } from \"@lix-js/sdk\";\n\nexport async function maybeCaptureLoadedProject(args: {\n\tid: string;\n\tlix: Lix;\n\tsettings: ProjectSettings;\n\tplugins: Readonly<Array<{ key: string }>>;\n\tappId?: string;\n\tdb: Kysely<InlangDatabaseSchema>;\n}) {\n\tif (args.settings.telemetry === \"off\") {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst activeAccount = await args.lix.db\n\t\t\t.selectFrom(\"active_account\")\n\t\t\t.select(\"id\")\n\t\t\t.executeTakeFirstOrThrow();\n\n\t\tconst bundles = await args.db\n\t\t\t.selectFrom(\"bundle\")\n\t\t\t.select((s) => s.fn.count(\"id\").as(\"count\"))\n\t\t\t.executeTakeFirst();\n\t\tconst messages = await args.db\n\t\t\t.selectFrom(\"message\")\n\t\t\t.select((s) => s.fn.count(\"id\").as(\"count\"))\n\t\t\t.executeTakeFirst();\n\t\tconst variants = await args.db\n\t\t\t.selectFrom(\"variant\")\n\t\t\t.select((s) => s.fn.count(\"id\").as(\"count\"))\n\t\t\t.executeTakeFirst();\n\n\t\tawait capture(\"SDK loaded project\", {\n\t\t\tprojectId: args.id,\n\t\t\tsettings: args.settings,\n\t\t\taccountId: activeAccount.id,\n\t\t\tproperties: {\n\t\t\t\t// Insight: Which app is used by the SDK\n\t\t\t\tappId: args.appId,\n\t\t\t\t// Insight: How many languages are used, etc.\n\t\t\t\tsettings: args.settings,\n\t\t\t\t// Insight on the used plugins (which one's to prioritize)\n\t\t\t\tpluginKeys: args.plugins.map((plugin) => plugin.key),\n\t\t\t\t// Insight: Which version of the SDK is used (can be used to deprecate old versions)\n\t\t\t\tsdkVersion: ENV_VARIABLES.SDK_VERSION,\n\t\t\t\t// Insight: Scale of projects (what project size to optimize for)\n\t\t\t\tnumBundles: bundles?.count,\n\t\t\t\tnumMessages: messages?.count,\n\t\t\t\tnumVariants: variants?.count,\n\t\t\t},\n\t\t});\n\t} catch (e) {\n\t\tif (\n\t\t\te instanceof Error &&\n\t\t\te.message.includes(\"driver has already been destroyed\")\n\t\t) {\n\t\t\t// The project has been closed, nothing to capture\n\t\t\treturn;\n\t\t}\n\t\tcaptureError(e);\n\t}\n}\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGpE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAO/C;IACA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO;IACR,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aACrC,UAAU,CAAC,gBAAgB,CAAC;aAC5B,MAAM,CAAC,IAAI,CAAC;aACZ,uBAAuB,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE;aAC3B,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC3C,gBAAgB,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE;aAC5B,UAAU,CAAC,SAAS,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC3C,gBAAgB,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE;aAC5B,UAAU,CAAC,SAAS,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC3C,gBAAgB,EAAE,CAAC;QAErB,MAAM,OAAO,CAAC,oBAAoB,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,aAAa,CAAC,EAAE;YAC3B,UAAU,EAAE;gBACX,wCAAwC;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,6CAA6C;gBAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,0DAA0D;gBAC1D,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;gBACpD,oFAAoF;gBACpF,UAAU,EAAE,aAAa,CAAC,WAAW;gBACrC,iEAAiE;gBACjE,UAAU,EAAE,OAAO,EAAE,KAAK;gBAC1B,WAAW,EAAE,QAAQ,EAAE,KAAK;gBAC5B,WAAW,EAAE,QAAQ,EAAE,KAAK;aAC5B;SACD,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,IACC,CAAC,YAAY,KAAK;YAClB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EACtD,CAAC;YACF,kDAAkD;YAClD,OAAO;QACR,CAAC;QACD,YAAY,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC","debug_id":"55ec9f86-02cc-595e-9046-4e7388e9f61b"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4ffe5d07-d7e2-5ed5-a722-195e67f62ddf")}catch(e){}}();
|
|
3
3
|
import { expect, test, vi } from "vitest";
|
|
4
4
|
import { loadProjectInMemory } from "./loadProjectInMemory.js";
|
|
5
5
|
import { newProject } from "./newProject.js";
|
|
@@ -22,6 +22,10 @@ test("it should capture as expected", async () => {
|
|
|
22
22
|
const project = await loadProjectInMemory({
|
|
23
23
|
blob: await newProject(),
|
|
24
24
|
});
|
|
25
|
+
const account = await project.lix.db
|
|
26
|
+
.selectFrom("active_account")
|
|
27
|
+
.select("id")
|
|
28
|
+
.executeTakeFirstOrThrow();
|
|
25
29
|
const bundle = await project.db
|
|
26
30
|
.insertInto("bundle")
|
|
27
31
|
.defaultValues()
|
|
@@ -37,14 +41,21 @@ test("it should capture as expected", async () => {
|
|
|
37
41
|
.values({ messageId: message.id })
|
|
38
42
|
.returningAll()
|
|
39
43
|
.executeTakeFirst();
|
|
44
|
+
const settings = await project.settings.get();
|
|
45
|
+
const id = await project.id.get();
|
|
46
|
+
const plugins = await project.plugins.get();
|
|
40
47
|
await maybeCaptureLoadedProject({
|
|
41
|
-
|
|
48
|
+
id,
|
|
49
|
+
settings,
|
|
50
|
+
plugins,
|
|
51
|
+
lix: project.lix,
|
|
42
52
|
appId: "test",
|
|
43
53
|
db: project.db,
|
|
44
54
|
});
|
|
45
55
|
expect(capture).toHaveBeenCalledWith("SDK loaded project", {
|
|
46
56
|
projectId: await project.id.get(),
|
|
47
57
|
settings: await project.settings.get(),
|
|
58
|
+
accountId: account.id,
|
|
48
59
|
properties: {
|
|
49
60
|
appId: "test",
|
|
50
61
|
settings: await project.settings.get(),
|
|
@@ -57,4 +68,4 @@ test("it should capture as expected", async () => {
|
|
|
57
68
|
});
|
|
58
69
|
});
|
|
59
70
|
//# sourceMappingURL=maybeCaptureTelemetry.test.js.map
|
|
60
|
-
//# debugId=
|
|
71
|
+
//# debugId=4ffe5d07-d7e2-5ed5-a722-195e67f62ddf
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybeCaptureTelemetry.test.js","sources":["project/maybeCaptureTelemetry.test.ts"],"sourceRoot":"/","sourcesContent":["import { expect, test, vi } from \"vitest\";\nimport { loadProjectInMemory } from \"./loadProjectInMemory.js\";\nimport { newProject } from \"./newProject.js\";\nimport { maybeCaptureLoadedProject } from \"./maybeCaptureTelemetry.js\";\nimport
|
|
1
|
+
{"version":3,"file":"maybeCaptureTelemetry.test.js","sources":["project/maybeCaptureTelemetry.test.ts"],"sourceRoot":"/","sourcesContent":["import { expect, test, vi } from \"vitest\";\nimport { loadProjectInMemory } from \"./loadProjectInMemory.js\";\nimport { newProject } from \"./newProject.js\";\nimport { maybeCaptureLoadedProject } from \"./maybeCaptureTelemetry.js\";\nimport { capture } from \"../services/telemetry/capture.js\";\n\ntest(\"it should capture as expected\", async () => {\n\tvi.mock(\"../services/telemetry/capture.js\", async () => {\n\t\treturn {\n\t\t\tcapture: vi.fn(() => Promise.resolve()),\n\t\t};\n\t});\n\n\tvi.mock(\"../services/env-variables/index\", async () => {\n\t\treturn {\n\t\t\tENV_VARIABLES: {\n\t\t\t\tPUBLIC_POSTHOG_TOKEN: \"mock-defined\",\n\t\t\t\tSDK_VERSION: \"1.0.0-mock\",\n\t\t\t},\n\t\t};\n\t});\n\n\tconst project = await loadProjectInMemory({\n\t\tblob: await newProject(),\n\t});\n\n\tconst account = await project.lix.db\n\t\t.selectFrom(\"active_account\")\n\t\t.select(\"id\")\n\t\t.executeTakeFirstOrThrow();\n\n\tconst bundle = await project.db\n\t\t.insertInto(\"bundle\")\n\t\t.defaultValues()\n\t\t.returningAll()\n\t\t.executeTakeFirstOrThrow();\n\n\tconst message = await project.db\n\t\t.insertInto(\"message\")\n\t\t.values({ bundleId: bundle.id, locale: \"en\" })\n\t\t.returningAll()\n\t\t.executeTakeFirstOrThrow();\n\n\tawait project.db\n\t\t.insertInto(\"variant\")\n\t\t.values({ messageId: message.id })\n\t\t.returningAll()\n\t\t.executeTakeFirst();\n\n\tconst settings = await project.settings.get();\n\n\tconst id = await project.id.get();\n\n\tconst plugins = await project.plugins.get();\n\n\tawait maybeCaptureLoadedProject({\n\t\tid,\n\t\tsettings,\n\t\tplugins,\n\t\tlix: project.lix,\n\t\tappId: \"test\",\n\t\tdb: project.db,\n\t});\n\n\texpect(capture).toHaveBeenCalledWith(\"SDK loaded project\", {\n\t\tprojectId: await project.id.get(),\n\t\tsettings: await project.settings.get(),\n\t\taccountId: account.id,\n\t\tproperties: {\n\t\t\tappId: \"test\",\n\t\t\tsettings: await project.settings.get(),\n\t\t\tpluginKeys: [],\n\t\t\tsdkVersion: \"1.0.0-mock\",\n\t\t\tnumBundles: 1,\n\t\t\tnumMessages: 1,\n\t\t\tnumVariants: 1,\n\t\t},\n\t});\n});\n"],"names":[],"mappings":"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","debug_id":"4ffe5d07-d7e2-5ed5-a722-195e67f62ddf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newProject.d.ts","sourceRoot":"/","sources":["project/newProject.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQlE;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE;IACvC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"newProject.d.ts","sourceRoot":"/","sources":["project/newProject.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQlE;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE;IACvC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ChB;AAED,eAAO,MAAM,sBAAsB;;;;;CAcR,CAAC"}
|