@livestore/common 0.3.0-dev.3 → 0.3.0-dev.30
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/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/fixture.d.ts +83 -221
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +33 -11
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/adapter-types.d.ts +128 -68
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +36 -7
- package/dist/adapter-types.js.map +1 -1
- package/dist/bounded-collections.d.ts.map +1 -1
- package/dist/debug-info.d.ts +1 -1
- package/dist/debug-info.d.ts.map +1 -1
- package/dist/debug-info.js +1 -0
- package/dist/debug-info.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +389 -0
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-client-session.js +96 -0
- package/dist/devtools/devtools-messages-client-session.js.map +1 -0
- package/dist/devtools/devtools-messages-common.d.ts +68 -0
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-common.js +60 -0
- package/dist/devtools/devtools-messages-common.js.map +1 -0
- package/dist/devtools/devtools-messages-leader.d.ts +394 -0
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-leader.js +147 -0
- package/dist/devtools/devtools-messages-leader.js.map +1 -0
- package/dist/devtools/devtools-messages.d.ts +3 -592
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +3 -171
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/devtools/devtools-sessioninfo.d.ts +28 -0
- package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -0
- package/dist/devtools/devtools-sessioninfo.js +34 -0
- package/dist/devtools/devtools-sessioninfo.js.map +1 -0
- package/dist/devtools/mod.d.ts +39 -0
- package/dist/devtools/mod.d.ts.map +1 -0
- package/dist/devtools/mod.js +27 -0
- package/dist/devtools/mod.js.map +1 -0
- package/dist/index.d.ts +4 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +62 -0
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -0
- package/dist/leader-thread/LeaderSyncProcessor.js +589 -0
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -0
- package/dist/leader-thread/apply-event.d.ts +16 -0
- package/dist/leader-thread/apply-event.d.ts.map +1 -0
- package/dist/leader-thread/apply-event.js +103 -0
- package/dist/leader-thread/apply-event.js.map +1 -0
- package/dist/leader-thread/connection.d.ts +34 -6
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/connection.js +22 -7
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts +27 -0
- package/dist/leader-thread/eventlog.d.ts.map +1 -0
- package/dist/leader-thread/eventlog.js +123 -0
- package/dist/leader-thread/eventlog.js.map +1 -0
- package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +154 -132
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +26 -12
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +82 -47
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mod.d.ts +1 -1
- package/dist/leader-thread/mod.d.ts.map +1 -1
- package/dist/leader-thread/mod.js +1 -1
- package/dist/leader-thread/mod.js.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts +4 -2
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +35 -25
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/shutdown-channel.d.ts +2 -5
- package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
- package/dist/leader-thread/shutdown-channel.js +2 -4
- package/dist/leader-thread/shutdown-channel.js.map +1 -1
- package/dist/leader-thread/types.d.ts +86 -39
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +1 -3
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/materializer-helper.d.ts +23 -0
- package/dist/materializer-helper.d.ts.map +1 -0
- package/dist/materializer-helper.js +70 -0
- package/dist/materializer-helper.js.map +1 -0
- package/dist/otel.d.ts +2 -0
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +5 -0
- package/dist/otel.js.map +1 -1
- package/dist/query-builder/api.d.ts +158 -55
- package/dist/query-builder/api.d.ts.map +1 -1
- package/dist/query-builder/api.js +3 -5
- package/dist/query-builder/api.js.map +1 -1
- package/dist/query-builder/astToSql.d.ts +7 -0
- package/dist/query-builder/astToSql.d.ts.map +1 -0
- package/dist/query-builder/astToSql.js +190 -0
- package/dist/query-builder/astToSql.js.map +1 -0
- package/dist/query-builder/impl.d.ts +3 -8
- package/dist/query-builder/impl.d.ts.map +1 -1
- package/dist/query-builder/impl.js +166 -124
- package/dist/query-builder/impl.js.map +1 -1
- package/dist/query-builder/impl.test.d.ts +86 -1
- package/dist/query-builder/impl.test.d.ts.map +1 -1
- package/dist/query-builder/impl.test.js +411 -69
- package/dist/query-builder/impl.test.js.map +1 -1
- package/dist/query-builder/mod.d.ts +7 -0
- package/dist/query-builder/mod.d.ts.map +1 -1
- package/dist/query-builder/mod.js +7 -0
- package/dist/query-builder/mod.js.map +1 -1
- package/dist/rehydrate-from-eventlog.d.ts +14 -0
- package/dist/rehydrate-from-eventlog.d.ts.map +1 -0
- package/dist/rehydrate-from-eventlog.js +65 -0
- package/dist/rehydrate-from-eventlog.js.map +1 -0
- package/dist/schema/EventDef.d.ts +136 -0
- package/dist/schema/EventDef.d.ts.map +1 -0
- package/dist/schema/EventDef.js +58 -0
- package/dist/schema/EventDef.js.map +1 -0
- package/dist/schema/EventId.d.ts +35 -15
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +57 -11
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/EventId.test.d.ts +2 -0
- package/dist/schema/EventId.test.d.ts.map +1 -0
- package/dist/schema/EventId.test.js +11 -0
- package/dist/schema/EventId.test.js.map +1 -0
- package/dist/schema/LiveStoreEvent.d.ts +255 -0
- package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
- package/dist/schema/LiveStoreEvent.js +118 -0
- package/dist/schema/LiveStoreEvent.js.map +1 -0
- package/dist/schema/client-document-def.d.ts +223 -0
- package/dist/schema/client-document-def.d.ts.map +1 -0
- package/dist/schema/client-document-def.js +170 -0
- package/dist/schema/client-document-def.js.map +1 -0
- package/dist/schema/client-document-def.test.d.ts +2 -0
- package/dist/schema/client-document-def.test.d.ts.map +1 -0
- package/dist/schema/client-document-def.test.js +201 -0
- package/dist/schema/client-document-def.test.js.map +1 -0
- package/dist/schema/db-schema/ast/sqlite.d.ts +69 -0
- package/dist/schema/db-schema/ast/sqlite.d.ts.map +1 -0
- package/dist/schema/db-schema/ast/sqlite.js +71 -0
- package/dist/schema/db-schema/ast/sqlite.js.map +1 -0
- package/dist/schema/db-schema/ast/validate.d.ts +3 -0
- package/dist/schema/db-schema/ast/validate.d.ts.map +1 -0
- package/dist/schema/db-schema/ast/validate.js +12 -0
- package/dist/schema/db-schema/ast/validate.js.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.d.ts +90 -0
- package/dist/schema/db-schema/dsl/field-defs.d.ts.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.js +87 -0
- package/dist/schema/db-schema/dsl/field-defs.js.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.test.d.ts +2 -0
- package/dist/schema/db-schema/dsl/field-defs.test.d.ts.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.test.js +29 -0
- package/dist/schema/db-schema/dsl/field-defs.test.js.map +1 -0
- package/dist/schema/db-schema/dsl/mod.d.ts +90 -0
- package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -0
- package/dist/schema/db-schema/dsl/mod.js +41 -0
- package/dist/schema/db-schema/dsl/mod.js.map +1 -0
- package/dist/schema/db-schema/hash.d.ts +2 -0
- package/dist/schema/db-schema/hash.d.ts.map +1 -0
- package/dist/schema/db-schema/hash.js +14 -0
- package/dist/schema/db-schema/hash.js.map +1 -0
- package/dist/schema/db-schema/mod.d.ts +3 -0
- package/dist/schema/db-schema/mod.d.ts.map +1 -0
- package/dist/schema/db-schema/mod.js +3 -0
- package/dist/schema/db-schema/mod.js.map +1 -0
- package/dist/schema/events.d.ts +2 -0
- package/dist/schema/events.d.ts.map +1 -0
- package/dist/schema/events.js +2 -0
- package/dist/schema/events.js.map +1 -0
- package/dist/schema/mod.d.ts +5 -3
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +5 -3
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema-helpers.d.ts.map +1 -1
- package/dist/schema/schema-helpers.js +1 -1
- package/dist/schema/schema-helpers.js.map +1 -1
- package/dist/schema/schema.d.ts +30 -23
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +48 -35
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/sqlite-state.d.ts +12 -0
- package/dist/schema/sqlite-state.d.ts.map +1 -0
- package/dist/schema/sqlite-state.js +36 -0
- package/dist/schema/sqlite-state.js.map +1 -0
- package/dist/schema/system-tables.d.ts +179 -125
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +76 -41
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema/table-def.d.ts +37 -109
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +23 -66
- package/dist/schema/table-def.js.map +1 -1
- package/dist/schema/view.d.ts +3 -0
- package/dist/schema/view.d.ts.map +1 -0
- package/dist/schema/view.js +3 -0
- package/dist/schema/view.js.map +1 -0
- package/dist/schema-management/common.d.ts +7 -7
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/common.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +6 -6
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +19 -14
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/schema-management/validate-mutation-defs.d.ts +3 -3
- package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
- package/dist/schema-management/validate-mutation-defs.js +17 -17
- package/dist/schema-management/validate-mutation-defs.js.map +1 -1
- package/dist/sql-queries/misc.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.d.ts +1 -1
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.js.map +1 -1
- package/dist/sql-queries/types.d.ts +2 -1
- package/dist/sql-queries/types.d.ts.map +1 -1
- package/dist/sql-queries/types.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +66 -0
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
- package/dist/sync/ClientSessionSyncProcessor.js +209 -0
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/next/compact-events.d.ts.map +1 -1
- package/dist/sync/next/facts.d.ts +19 -19
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/facts.js +3 -3
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +6 -7
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +4 -2
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/history-dag.js +2 -2
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +10 -8
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +11 -8
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/compact-events.calculator.test.js +38 -33
- package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
- package/dist/sync/next/test/compact-events.test.js +76 -76
- package/dist/sync/next/test/compact-events.test.js.map +1 -1
- package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +29 -29
- package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
- package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +67 -36
- package/dist/sync/next/test/event-fixtures.js.map +1 -0
- package/dist/sync/next/test/mod.d.ts +1 -1
- package/dist/sync/next/test/mod.d.ts.map +1 -1
- package/dist/sync/next/test/mod.js +1 -1
- package/dist/sync/next/test/mod.js.map +1 -1
- package/dist/sync/sync.d.ts +55 -20
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js +7 -3
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +213 -82
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +319 -120
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +295 -275
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/validate-push-payload.d.ts +2 -2
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js +2 -2
- package/dist/sync/validate-push-payload.js.map +1 -1
- package/dist/util.d.ts +2 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +6 -6
- package/src/__tests__/fixture.ts +36 -15
- package/src/adapter-types.ts +111 -74
- package/src/debug-info.ts +1 -0
- package/src/devtools/devtools-messages-client-session.ts +141 -0
- package/src/devtools/devtools-messages-common.ts +115 -0
- package/src/devtools/devtools-messages-leader.ts +191 -0
- package/src/devtools/devtools-messages.ts +3 -243
- package/src/devtools/devtools-sessioninfo.ts +99 -0
- package/src/devtools/mod.ts +36 -0
- package/src/index.ts +4 -13
- package/src/leader-thread/LeaderSyncProcessor.ts +935 -0
- package/src/leader-thread/apply-event.ts +173 -0
- package/src/leader-thread/connection.ts +54 -9
- package/src/leader-thread/eventlog.ts +199 -0
- package/src/leader-thread/leader-worker-devtools.ts +212 -189
- package/src/leader-thread/make-leader-thread-layer.ts +143 -77
- package/src/leader-thread/mod.ts +1 -1
- package/src/leader-thread/recreate-db.ts +41 -30
- package/src/leader-thread/shutdown-channel.ts +2 -4
- package/src/leader-thread/types.ts +95 -51
- package/src/materializer-helper.ts +110 -0
- package/src/otel.ts +8 -0
- package/src/query-builder/api.ts +236 -85
- package/src/query-builder/astToSql.ts +232 -0
- package/src/query-builder/impl.test.ts +447 -78
- package/src/query-builder/impl.ts +209 -144
- package/src/query-builder/mod.ts +7 -0
- package/src/rehydrate-from-eventlog.ts +114 -0
- package/src/schema/EventDef.ts +216 -0
- package/src/schema/EventId.test.ts +12 -0
- package/src/schema/EventId.ts +75 -15
- package/src/schema/LiveStoreEvent.ts +239 -0
- package/src/schema/client-document-def.test.ts +239 -0
- package/src/schema/client-document-def.ts +444 -0
- package/src/schema/db-schema/ast/sqlite.ts +142 -0
- package/src/schema/db-schema/ast/validate.ts +13 -0
- package/src/schema/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
- package/src/schema/db-schema/dsl/field-defs.test.ts +35 -0
- package/src/schema/db-schema/dsl/field-defs.ts +242 -0
- package/src/schema/db-schema/dsl/mod.ts +222 -0
- package/src/schema/db-schema/hash.ts +14 -0
- package/src/schema/db-schema/mod.ts +2 -0
- package/src/schema/events.ts +1 -0
- package/src/schema/mod.ts +5 -3
- package/src/schema/schema-helpers.ts +1 -1
- package/src/schema/schema.ts +84 -62
- package/src/schema/sqlite-state.ts +62 -0
- package/src/schema/system-tables.ts +68 -50
- package/src/schema/table-def.ts +68 -214
- package/src/schema/view.ts +2 -0
- package/src/schema-management/common.ts +7 -7
- package/src/schema-management/migrations.ts +27 -24
- package/src/schema-management/validate-mutation-defs.ts +22 -24
- package/src/sql-queries/sql-queries.ts +1 -1
- package/src/sql-queries/sql-query-builder.ts +1 -2
- package/src/sql-queries/types.ts +3 -1
- package/src/sync/ClientSessionSyncProcessor.ts +332 -0
- package/src/sync/index.ts +1 -1
- package/src/sync/next/facts.ts +32 -33
- package/src/sync/next/history-dag-common.ts +9 -5
- package/src/sync/next/history-dag.ts +2 -2
- package/src/sync/next/rebase-events.ts +22 -16
- package/src/sync/next/test/compact-events.calculator.test.ts +45 -45
- package/src/sync/next/test/compact-events.test.ts +78 -78
- package/src/sync/next/test/event-fixtures.ts +219 -0
- package/src/sync/next/test/mod.ts +1 -1
- package/src/sync/sync.ts +51 -19
- package/src/sync/syncstate.test.ts +335 -308
- package/src/sync/syncstate.ts +394 -212
- package/src/sync/validate-push-payload.ts +7 -4
- package/src/version.ts +1 -1
- package/tmp/pack.tgz +0 -0
- package/tsconfig.json +2 -1
- package/dist/derived-mutations.d.ts +0 -109
- package/dist/derived-mutations.d.ts.map +0 -1
- package/dist/derived-mutations.js +0 -54
- package/dist/derived-mutations.js.map +0 -1
- package/dist/derived-mutations.test.d.ts +0 -2
- package/dist/derived-mutations.test.d.ts.map +0 -1
- package/dist/derived-mutations.test.js +0 -93
- package/dist/derived-mutations.test.js.map +0 -1
- package/dist/devtools/devtools-bridge.d.ts +0 -12
- package/dist/devtools/devtools-bridge.d.ts.map +0 -1
- package/dist/devtools/devtools-bridge.js +0 -2
- package/dist/devtools/devtools-bridge.js.map +0 -1
- package/dist/devtools/index.d.ts +0 -42
- package/dist/devtools/index.d.ts.map +0 -1
- package/dist/devtools/index.js +0 -48
- package/dist/devtools/index.js.map +0 -1
- package/dist/init-singleton-tables.d.ts +0 -4
- package/dist/init-singleton-tables.d.ts.map +0 -1
- package/dist/init-singleton-tables.js +0 -16
- package/dist/init-singleton-tables.js.map +0 -1
- package/dist/leader-thread/apply-mutation.d.ts +0 -8
- package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
- package/dist/leader-thread/apply-mutation.js +0 -95
- package/dist/leader-thread/apply-mutation.js.map +0 -1
- package/dist/leader-thread/leader-sync-processor.d.ts +0 -47
- package/dist/leader-thread/leader-sync-processor.d.ts.map +0 -1
- package/dist/leader-thread/leader-sync-processor.js +0 -422
- package/dist/leader-thread/leader-sync-processor.js.map +0 -1
- package/dist/leader-thread/mutationlog.d.ts +0 -23
- package/dist/leader-thread/mutationlog.d.ts.map +0 -1
- package/dist/leader-thread/mutationlog.js +0 -27
- package/dist/leader-thread/mutationlog.js.map +0 -1
- package/dist/leader-thread/pull-queue-set.d.ts +0 -7
- package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
- package/dist/leader-thread/pull-queue-set.js +0 -39
- package/dist/leader-thread/pull-queue-set.js.map +0 -1
- package/dist/mutation.d.ts +0 -13
- package/dist/mutation.d.ts.map +0 -1
- package/dist/mutation.js +0 -57
- package/dist/mutation.js.map +0 -1
- package/dist/query-info.d.ts +0 -38
- package/dist/query-info.d.ts.map +0 -1
- package/dist/query-info.js +0 -7
- package/dist/query-info.js.map +0 -1
- package/dist/rehydrate-from-mutationlog.d.ts +0 -14
- package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
- package/dist/rehydrate-from-mutationlog.js +0 -72
- package/dist/rehydrate-from-mutationlog.js.map +0 -1
- package/dist/schema/MutationEvent.d.ts +0 -191
- package/dist/schema/MutationEvent.d.ts.map +0 -1
- package/dist/schema/MutationEvent.js +0 -56
- package/dist/schema/MutationEvent.js.map +0 -1
- package/dist/schema/mutations.d.ts +0 -107
- package/dist/schema/mutations.d.ts.map +0 -1
- package/dist/schema/mutations.js +0 -42
- package/dist/schema/mutations.js.map +0 -1
- package/dist/sync/client-session-sync-processor.d.ts +0 -45
- package/dist/sync/client-session-sync-processor.d.ts.map +0 -1
- package/dist/sync/client-session-sync-processor.js +0 -131
- package/dist/sync/client-session-sync-processor.js.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
- package/src/derived-mutations.test.ts +0 -101
- package/src/derived-mutations.ts +0 -166
- package/src/devtools/devtools-bridge.ts +0 -13
- package/src/devtools/index.ts +0 -48
- package/src/init-singleton-tables.ts +0 -24
- package/src/leader-thread/apply-mutation.ts +0 -143
- package/src/leader-thread/leader-sync-processor.ts +0 -666
- package/src/leader-thread/mutationlog.ts +0 -42
- package/src/leader-thread/pull-queue-set.ts +0 -58
- package/src/mutation.ts +0 -81
- package/src/query-info.ts +0 -78
- package/src/rehydrate-from-mutationlog.ts +0 -127
- package/src/schema/MutationEvent.ts +0 -161
- package/src/schema/mutations.ts +0 -192
- package/src/sync/client-session-sync-processor.ts +0 -207
- package/src/sync/next/test/mutation-fixtures.ts +0 -231
@@ -1,51 +1,86 @@
|
|
1
|
-
import { SqliteDsl } from '@livestore/db-schema';
|
2
1
|
import { Schema } from '@livestore/utils/effect';
|
2
|
+
import { SqliteDsl } from './db-schema/mod.js';
|
3
|
+
import * as EventId from './EventId.js';
|
3
4
|
import { table } from './table-def.js';
|
4
|
-
///
|
5
|
+
/// Read model DB
|
5
6
|
export const SCHEMA_META_TABLE = '__livestore_schema';
|
6
|
-
export const schemaMetaTable = table(
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
7
|
+
export const schemaMetaTable = table({
|
8
|
+
name: SCHEMA_META_TABLE,
|
9
|
+
columns: {
|
10
|
+
tableName: SqliteDsl.text({ primaryKey: true }),
|
11
|
+
schemaHash: SqliteDsl.integer({ nullable: false }),
|
12
|
+
/** ISO date format */
|
13
|
+
updatedAt: SqliteDsl.text({ nullable: false }),
|
14
|
+
},
|
15
|
+
});
|
16
|
+
export const SCHEMA_EVENT_DEFS_META_TABLE = '__livestore_schema_event_defs';
|
17
|
+
export const schemaEventDefsMetaTable = table({
|
18
|
+
name: SCHEMA_EVENT_DEFS_META_TABLE,
|
19
|
+
columns: {
|
20
|
+
eventName: SqliteDsl.text({ primaryKey: true }),
|
21
|
+
schemaHash: SqliteDsl.integer({ nullable: false }),
|
22
|
+
/** ISO date format */
|
23
|
+
updatedAt: SqliteDsl.text({ nullable: false }),
|
24
|
+
},
|
25
|
+
});
|
19
26
|
/**
|
20
27
|
* Table which stores SQLite changeset blobs which is used for rolling back
|
21
28
|
* read-model state during rebasing.
|
22
29
|
*/
|
23
30
|
export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset';
|
24
|
-
export const sessionChangesetMetaTable = table(
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
},
|
33
|
-
|
34
|
-
|
35
|
-
export const
|
36
|
-
export const
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
31
|
+
export const sessionChangesetMetaTable = table({
|
32
|
+
name: SESSION_CHANGESET_META_TABLE,
|
33
|
+
columns: {
|
34
|
+
// TODO bring back primary key
|
35
|
+
idGlobal: SqliteDsl.integer({ schema: EventId.GlobalEventId }),
|
36
|
+
idClient: SqliteDsl.integer({ schema: EventId.ClientEventId }),
|
37
|
+
changeset: SqliteDsl.blob({ nullable: true }),
|
38
|
+
debug: SqliteDsl.json({ nullable: true }),
|
39
|
+
},
|
40
|
+
indexes: [{ columns: ['idGlobal', 'idClient'], name: 'idx_session_changeset_id' }],
|
41
|
+
});
|
42
|
+
export const LEADER_MERGE_COUNTER_TABLE = '__livestore_leader_merge_counter';
|
43
|
+
export const leaderMergeCounterTable = table({
|
44
|
+
name: LEADER_MERGE_COUNTER_TABLE,
|
45
|
+
columns: {
|
46
|
+
id: SqliteDsl.integer({ primaryKey: true, schema: Schema.Literal(0) }),
|
47
|
+
mergeCounter: SqliteDsl.integer({ primaryKey: true }),
|
48
|
+
},
|
49
|
+
});
|
50
|
+
export const systemTables = [
|
51
|
+
schemaMetaTable,
|
52
|
+
schemaEventDefsMetaTable,
|
53
|
+
sessionChangesetMetaTable,
|
54
|
+
leaderMergeCounterTable,
|
55
|
+
];
|
56
|
+
/// Eventlog DB
|
57
|
+
export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'clientOnly');
|
58
|
+
export const EVENTLOG_META_TABLE = 'eventlog';
|
59
|
+
export const eventlogMetaTable = table({
|
60
|
+
name: EVENTLOG_META_TABLE,
|
61
|
+
columns: {
|
62
|
+
// TODO Adjust modeling so a global event never needs a client id component
|
63
|
+
idGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventId.GlobalEventId }),
|
64
|
+
idClient: SqliteDsl.integer({ primaryKey: true, schema: EventId.ClientEventId }),
|
65
|
+
parentIdGlobal: SqliteDsl.integer({ schema: EventId.GlobalEventId }),
|
66
|
+
parentIdClient: SqliteDsl.integer({ schema: EventId.ClientEventId }),
|
67
|
+
name: SqliteDsl.text({}),
|
68
|
+
argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
|
69
|
+
clientId: SqliteDsl.text({}),
|
70
|
+
sessionId: SqliteDsl.text({}),
|
71
|
+
schemaHash: SqliteDsl.integer({}),
|
72
|
+
syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
|
73
|
+
},
|
74
|
+
indexes: [
|
75
|
+
{ columns: ['idGlobal'], name: 'idx_eventlog_idGlobal' },
|
76
|
+
{ columns: ['idGlobal', 'idClient'], name: 'idx_eventlog_id' },
|
77
|
+
],
|
78
|
+
});
|
47
79
|
export const SYNC_STATUS_TABLE = '__livestore_sync_status';
|
48
|
-
export const syncStatusTable = table(
|
49
|
-
|
50
|
-
|
80
|
+
export const syncStatusTable = table({
|
81
|
+
name: SYNC_STATUS_TABLE,
|
82
|
+
columns: {
|
83
|
+
head: SqliteDsl.integer({ primaryKey: true }),
|
84
|
+
},
|
85
|
+
});
|
51
86
|
//# sourceMappingURL=system-tables.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"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"}
|
@@ -1,17 +1,18 @@
|
|
1
|
-
import type
|
2
|
-
import {
|
3
|
-
import { Schema } from '@livestore/utils/effect';
|
4
|
-
import type { DerivedMutationHelperFns } from '../derived-mutations.js';
|
1
|
+
import { type Nullable } from '@livestore/utils';
|
2
|
+
import type { Schema, Types } from '@livestore/utils/effect';
|
5
3
|
import type { QueryBuilder } from '../query-builder/mod.js';
|
4
|
+
import { SqliteDsl } from './db-schema/mod.js';
|
6
5
|
export declare const blob: SqliteDsl.ColDefFn<"blob">, boolean: SqliteDsl.SpecializedColDefFn<"integer", false, boolean>, column: <TColumnType extends SqliteDsl.FieldColumnType>(columnType: TColumnType) => SqliteDsl.ColDefFn<TColumnType>, datetime: SqliteDsl.SpecializedColDefFn<"text", false, Date>, integer: SqliteDsl.ColDefFn<"integer">, isColumnDefinition: (value: unknown) => value is SqliteDsl.ColumnDefinition<any, any>, json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>, real: SqliteDsl.ColDefFn<"real">, text: SqliteDsl.ColDefFn<"text">;
|
7
|
-
export { SqliteDsl } from '@livestore/db-schema';
|
8
6
|
export type StateType = 'singleton' | 'dynamic';
|
9
7
|
export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
|
10
8
|
export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
|
11
|
-
export
|
9
|
+
export declare const TableDefInternalsSymbol: unique symbol;
|
10
|
+
export type TableDefInternalsSymbol = typeof TableDefInternalsSymbol;
|
11
|
+
export type TableDefBase<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions> = {
|
12
12
|
sqliteDef: TSqliteDef;
|
13
13
|
options: TOptions;
|
14
|
-
|
14
|
+
rowSchema: SqliteDsl.StructSchemaForColumns<TSqliteDef['columns']>;
|
15
|
+
insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef['columns']>;
|
15
16
|
};
|
16
17
|
export type TableDef<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions, TSchema = Schema.Schema<SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
|
17
18
|
readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Type'];
|
@@ -20,112 +21,27 @@ export type TableDef<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTab
|
|
20
21
|
}>>> = {
|
21
22
|
sqliteDef: TSqliteDef;
|
22
23
|
options: TOptions;
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
rowSchema: TSchema;
|
25
|
+
insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef['columns']>;
|
26
|
+
readonly Type: Schema.Schema.Type<TSchema>;
|
27
|
+
readonly Encoded: Schema.Schema.Encoded<TSchema>;
|
28
|
+
} & QueryBuilder<ReadonlyArray<Schema.Schema.Type<TSchema>>, TableDefBase<TSqliteDef & {}, TOptions>>;
|
26
29
|
export type TableOptionsInput = Partial<{
|
27
30
|
indexes: SqliteDsl.Index[];
|
28
|
-
disableAutomaticIdColumn: boolean;
|
29
|
-
isSingleton: boolean;
|
30
|
-
deriveMutations: boolean | {
|
31
|
-
enabled: true;
|
32
|
-
localOnly?: boolean;
|
33
|
-
};
|
34
31
|
}>;
|
35
|
-
|
36
|
-
|
37
|
-
}
|
38
|
-
type ValidateTableOptionsInput<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, TOptionsInput extends TableOptionsInput, TPassthroughIfValid> = SqliteDsl.FromColumns.RequiresInsertValues<ToColumns<TColumns>> extends true ? TOptionsInput['isSingleton'] extends true ? 'Error: To use `isSingleton: true` with this table, each column must have a default value or be nullable' : TPassthroughIfValid : TPassthroughIfValid;
|
32
|
+
export declare namespace TableDef {
|
33
|
+
type Any = TableDef<any, any>;
|
34
|
+
}
|
39
35
|
export type TableOptions = {
|
40
|
-
/**
|
41
|
-
* Setting this to true will have the following consequences:
|
42
|
-
* - An `id` column will be added with `primaryKey: true` and `"singleton"` as default value and only allowed value
|
43
|
-
* - LiveStore will automatically create the singleton row when booting up
|
44
|
-
* - LiveStore will fail if there is already a column defined with `primaryKey: true`
|
45
|
-
*
|
46
|
-
* @default false
|
47
|
-
*/
|
48
|
-
readonly isSingleton: boolean;
|
49
|
-
readonly disableAutomaticIdColumn: boolean;
|
50
|
-
/**
|
51
|
-
* Setting this to true will automatically derive insert, update and delete mutations for this table. Example:
|
52
|
-
*
|
53
|
-
* ```ts
|
54
|
-
* const todos = table('todos', { ... }, { deriveMutations: true })
|
55
|
-
* todos.insert({ id: '1', text: 'Hello' })
|
56
|
-
* ```
|
57
|
-
*
|
58
|
-
* This is also a prerequisite for using the `useRow`, `useAtom` and `rowQuery` APIs.
|
59
|
-
*
|
60
|
-
* Important: When using this option, make sure you're following the "Rules of mutations" for the table schema.
|
61
|
-
*/
|
62
|
-
readonly deriveMutations: {
|
63
|
-
enabled: false;
|
64
|
-
} | {
|
65
|
-
enabled: true;
|
66
|
-
/**
|
67
|
-
* When set to true, the mutations won't be synced over the network
|
68
|
-
*/
|
69
|
-
localOnly: boolean;
|
70
|
-
};
|
71
36
|
/** Derived based on whether the table definition has one or more columns (besides the `id` column) */
|
72
|
-
readonly
|
73
|
-
/**
|
74
|
-
* Derived based on whether the table definition has one or more columns (besides the `id` column) that require
|
75
|
-
* insert values (i.e. are not nullable and don't have a default value)
|
76
|
-
*
|
77
|
-
* `isSingleton` tables always imply `requiresInsertValues: false`
|
78
|
-
*/
|
79
|
-
readonly requiredInsertColumnNames: string;
|
80
|
-
};
|
81
|
-
export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, TOptionsInput extends TableOptionsInput = Partial<{
|
82
|
-
indexes: SqliteDsl.Index[];
|
83
|
-
disableAutomaticIdColumn: boolean;
|
84
|
-
isSingleton: boolean;
|
85
|
-
deriveMutations: boolean | {
|
86
|
-
enabled: true;
|
87
|
-
localOnly?: boolean;
|
88
|
-
};
|
89
|
-
}>>(name: TName, columnOrColumns: TColumns, options?: TOptionsInput) => ValidateTableOptionsInput<TColumns, TOptionsInput, TableDef<SqliteTableDefForInput<TName, TColumns, WithDefaults<TOptionsInput, TColumns>>, WithDefaults<TOptionsInput, TColumns>>>;
|
90
|
-
export declare const tableHasDerivedMutations: <TTableDef extends TableDefBase>(tableDef: TTableDef) => tableDef is TTableDef & {
|
91
|
-
options: {
|
92
|
-
deriveMutations: {
|
93
|
-
enabled: true;
|
94
|
-
localOnly: boolean;
|
95
|
-
};
|
96
|
-
};
|
97
|
-
} & DerivedMutationHelperFns<TTableDef["sqliteDef"]["columns"], TTableDef["options"]>;
|
98
|
-
export declare const tableIsSingleton: <TTableDef extends TableDefBase>(tableDef: TTableDef) => tableDef is TTableDef & {
|
99
|
-
options: {
|
100
|
-
isSingleton: true;
|
101
|
-
};
|
102
|
-
};
|
103
|
-
type SqliteTableDefForInput<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, TOptions extends TableOptions> = SqliteDsl.TableDefinition<TName, PrettifyFlat<WithId<ToColumns<TColumns>, TOptions>>>;
|
104
|
-
type WithId<TColumns extends SqliteDsl.Columns, TOptions extends TableOptions> = TColumns & ('id' extends keyof TColumns ? {} : TOptions['disableAutomaticIdColumn'] extends true ? {} : TOptions['isSingleton'] extends true ? {
|
105
|
-
id: SqliteDsl.ColumnDefinition<'singleton', 'singleton'>;
|
106
|
-
} : {
|
107
|
-
id: SqliteDsl.ColumnDefinition<string, string>;
|
108
|
-
});
|
109
|
-
type WithDefaults<TOptionsInput extends TableOptionsInput, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = {
|
110
|
-
isSingleton: TOptionsInput['isSingleton'] extends true ? true : false;
|
111
|
-
disableAutomaticIdColumn: TOptionsInput['disableAutomaticIdColumn'] extends true ? true : false;
|
112
|
-
deriveMutations: TOptionsInput['deriveMutations'] extends true ? {
|
113
|
-
enabled: true;
|
114
|
-
localOnly: boolean;
|
115
|
-
} : TOptionsInput['deriveMutations'] extends false ? {
|
116
|
-
enabled: false;
|
117
|
-
} : TOptionsInput['deriveMutations'] extends {
|
118
|
-
enabled: true;
|
119
|
-
localOnly?: boolean;
|
120
|
-
} ? {
|
121
|
-
enabled: true;
|
122
|
-
localOnly: TOptionsInput['deriveMutations']['localOnly'] extends true ? true : false;
|
123
|
-
} : never;
|
124
|
-
isSingleColumn: SqliteDsl.IsSingleColumn<TColumns>;
|
125
|
-
requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
|
37
|
+
readonly isClientDocumentTable: boolean;
|
126
38
|
};
|
39
|
+
export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
|
40
|
+
name: TName;
|
41
|
+
columns: TColumns;
|
42
|
+
} & Partial<TOptionsInput>) => TableDef<SqliteTableDefForInput<TName, TColumns>, WithDefaults<TColumns>>;
|
127
43
|
export declare namespace FromTable {
|
128
|
-
type RowDecoded<TTableDef extends TableDefBase> =
|
44
|
+
type RowDecoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>>;
|
129
45
|
type NullableColumnNames<TTableDef extends TableDefBase> = FromColumns.NullableColumnNames<TTableDef['sqliteDef']['columns']>;
|
130
46
|
type Columns<TTableDef extends TableDefBase> = {
|
131
47
|
[K in keyof TTableDef['sqliteDef']['columns']]: TTableDef['sqliteDef']['columns'][K]['columnType'];
|
@@ -133,17 +49,17 @@ export declare namespace FromTable {
|
|
133
49
|
type RowEncodeNonNullable<TTableDef extends TableDefBase> = {
|
134
50
|
[K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Encoded<TTableDef['sqliteDef']['columns'][K]['schema']>;
|
135
51
|
};
|
136
|
-
type RowEncoded<TTableDef extends TableDefBase> =
|
52
|
+
type RowEncoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>>;
|
137
53
|
type RowDecodedAll<TTableDef extends TableDefBase> = {
|
138
54
|
[K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Type<TTableDef['sqliteDef']['columns'][K]['schema']>;
|
139
55
|
};
|
140
56
|
}
|
141
57
|
export declare namespace FromColumns {
|
142
|
-
type RowDecoded<TColumns extends SqliteDsl.Columns> =
|
58
|
+
type RowDecoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>>;
|
143
59
|
type RowDecodedAll<TColumns extends SqliteDsl.Columns> = {
|
144
60
|
[K in keyof TColumns]: Schema.Schema.Type<TColumns[K]['schema']>;
|
145
61
|
};
|
146
|
-
type RowEncoded<TColumns extends SqliteDsl.Columns> =
|
62
|
+
type RowEncoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<Nullable<Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>>;
|
147
63
|
type RowEncodeNonNullable<TColumns extends SqliteDsl.Columns> = {
|
148
64
|
[K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]['schema']>;
|
149
65
|
};
|
@@ -153,4 +69,16 @@ export declare namespace FromColumns {
|
|
153
69
|
type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
|
154
70
|
type InsertRowDecoded<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
|
155
71
|
}
|
72
|
+
type SqliteTableDefForInput<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
|
73
|
+
type WithDefaults<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = {
|
74
|
+
isClientDocumentTable: false;
|
75
|
+
requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
|
76
|
+
};
|
77
|
+
export type PrettifyFlat<T> = T extends infer U ? {
|
78
|
+
[K in keyof U]: U[K];
|
79
|
+
} : never;
|
80
|
+
type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition<any, any> ? {
|
81
|
+
value: TColumns;
|
82
|
+
} : never;
|
83
|
+
export {};
|
156
84
|
//# sourceMappingURL=table-def.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/table-def.js
CHANGED
@@ -1,79 +1,36 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import { ReadonlyRecord, Schema } from '@livestore/utils/effect';
|
4
|
-
import { makeDerivedMutationDefsForTable } from '../derived-mutations.js';
|
5
|
-
import { makeQueryBuilder } from '../query-builder/mod.js';
|
1
|
+
import { makeQueryBuilder, QueryBuilderAstSymbol, QueryBuilderTypeId } from '../query-builder/mod.js';
|
2
|
+
import { SqliteDsl } from './db-schema/mod.js';
|
6
3
|
export const { blob, boolean, column, datetime, integer, isColumnDefinition, json, real, text } = SqliteDsl;
|
7
|
-
|
8
|
-
export const
|
4
|
+
// TODO use to hide table def internals
|
5
|
+
export const TableDefInternalsSymbol = Symbol('TableDefInternals');
|
6
|
+
export const table = (args) => {
|
7
|
+
const { name, columns: columnOrColumns, ...options } = args;
|
9
8
|
const tablePath = name;
|
10
9
|
const options_ = {
|
11
|
-
|
12
|
-
disableAutomaticIdColumn: options?.disableAutomaticIdColumn ?? false,
|
13
|
-
deriveMutations: options?.deriveMutations === true
|
14
|
-
? { enabled: true, localOnly: false }
|
15
|
-
: options?.deriveMutations === false
|
16
|
-
? { enabled: false }
|
17
|
-
: options?.deriveMutations === undefined
|
18
|
-
? { enabled: false }
|
19
|
-
: { enabled: true, localOnly: options.deriveMutations.localOnly ?? false },
|
20
|
-
isSingleColumn: SqliteDsl.isColumnDefinition(columnOrColumns) === true,
|
21
|
-
requiredInsertColumnNames: 'type-level-only',
|
10
|
+
isClientDocumentTable: false,
|
22
11
|
};
|
23
12
|
const columns = (SqliteDsl.isColumnDefinition(columnOrColumns) ? { value: columnOrColumns } : columnOrColumns);
|
24
|
-
if (options_.disableAutomaticIdColumn === true) {
|
25
|
-
if (columns.id === undefined && options_.isSingleton === true) {
|
26
|
-
shouldNeverHappen(`Cannot create table ${name} with "isSingleton: true" because there is no column with name "id" and "disableAutomaticIdColumn: true" is set`);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
else if (columns.id === undefined && ReadonlyRecord.some(columns, (_) => _.primaryKey === true) === false) {
|
30
|
-
if (options_.isSingleton) {
|
31
|
-
columns.id = SqliteDsl.text({ schema: Schema.Literal('singleton'), primaryKey: true, default: 'singleton' });
|
32
|
-
}
|
33
|
-
else {
|
34
|
-
columns.id = SqliteDsl.text({ primaryKey: true });
|
35
|
-
}
|
36
|
-
}
|
37
13
|
const sqliteDef = SqliteDsl.table(tablePath, columns, options?.indexes ?? []);
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
}
|
46
|
-
const isSingleColumn = SqliteDsl.isColumnDefinition(columnOrColumns) === true;
|
47
|
-
const schema = SqliteDsl.structSchemaForTable(sqliteDef);
|
48
|
-
const tableDef = { sqliteDef, options: options_, schema };
|
14
|
+
const rowSchema = SqliteDsl.structSchemaForTable(sqliteDef);
|
15
|
+
const insertSchema = SqliteDsl.insertStructSchemaForTable(sqliteDef);
|
16
|
+
const tableDef = {
|
17
|
+
sqliteDef,
|
18
|
+
options: options_,
|
19
|
+
rowSchema,
|
20
|
+
insertSchema,
|
21
|
+
};
|
49
22
|
const query = makeQueryBuilder(tableDef);
|
50
|
-
//
|
23
|
+
// tableDef.query = query
|
51
24
|
// NOTE we're currently patching the existing tableDef object
|
52
25
|
// as it's being used as part of the query builder API
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
const derivedMutationDefs = makeDerivedMutationDefsForTable(tableDef);
|
57
|
-
tableDef.insert = (valuesOrValue) => {
|
58
|
-
if (isSingleColumn && options_.isSingleton) {
|
59
|
-
return derivedMutationDefs.insert({ id: 'singleton', value: { value: valuesOrValue } });
|
60
|
-
}
|
61
|
-
else {
|
62
|
-
return derivedMutationDefs.insert(valuesOrValue);
|
63
|
-
}
|
64
|
-
};
|
65
|
-
tableDef.update = (argsOrValues) => {
|
66
|
-
if (isSingleColumn && options_.isSingleton) {
|
67
|
-
return derivedMutationDefs.update({ where: { id: 'singleton' }, values: { value: argsOrValues } });
|
68
|
-
}
|
69
|
-
else {
|
70
|
-
return derivedMutationDefs.update(argsOrValues);
|
71
|
-
}
|
72
|
-
};
|
73
|
-
tableDef.delete = (args) => derivedMutationDefs.delete(args);
|
26
|
+
for (const key of Object.keys(query)) {
|
27
|
+
// @ts-expect-error TODO properly implement this
|
28
|
+
tableDef[key] = query[key];
|
74
29
|
}
|
30
|
+
// @ts-expect-error TODO properly type this
|
31
|
+
tableDef[QueryBuilderAstSymbol] = query[QueryBuilderAstSymbol];
|
32
|
+
// @ts-expect-error TODO properly type this
|
33
|
+
tableDef[QueryBuilderTypeId] = query[QueryBuilderTypeId];
|
75
34
|
return tableDef;
|
76
35
|
};
|
77
|
-
export const tableHasDerivedMutations = (tableDef) => tableDef.options.deriveMutations.enabled === true;
|
78
|
-
export const tableIsSingleton = (tableDef) => tableDef.options.isSingleton === true;
|
79
36
|
//# sourceMappingURL=table-def.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAA;AAO3G,uCAAuC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAqDlE,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,IAG0B,EACiD,EAAE;IAC7E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAA;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAA;IAEtB,MAAM,QAAQ,GAAiB;QAC7B,qBAAqB,EAAE,KAAK;KAC7B,CAAA;IAED,MAAM,OAAO,GAAG,CACd,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CACxE,CAAA;IAEtB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;IAE7E,MAAM,SAAS,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,QAAQ,GAAG;QACf,SAAS;QACT,OAAO,EAAE,QAAQ;QACjB,SAAS;QACT,YAAY;KACU,CAAA;IAExB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACxC,yBAAyB;IAEzB,6DAA6D;IAC7D,sDAAsD;IACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,gDAAgD;QAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAExD,OAAO,QAAe,CAAA;AACxB,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/schema/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/schema/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA"}
|
@@ -1,13 +1,13 @@
|
|
1
|
-
import type {
|
1
|
+
import type { SqliteDb } from '../adapter-types.js';
|
2
2
|
import type { ParamsObject } from '../util.js';
|
3
|
-
export declare const dbExecute: (db:
|
4
|
-
export declare const dbSelect: <T>(db:
|
3
|
+
export declare const dbExecute: (db: SqliteDb, queryStr: string, bindValues?: ParamsObject) => void;
|
4
|
+
export declare const dbSelect: <T>(db: SqliteDb, queryStr: string, bindValues?: ParamsObject) => readonly T[];
|
5
5
|
export interface SchemaManager {
|
6
|
-
|
7
|
-
|
6
|
+
getEventDefInfos: () => ReadonlyArray<EventDefInfo>;
|
7
|
+
setEventDefInfo: (eventDefInfo: EventDefInfo) => void;
|
8
8
|
}
|
9
|
-
export type
|
10
|
-
|
9
|
+
export type EventDefInfo = {
|
10
|
+
eventName: string;
|
11
11
|
schemaHash: number;
|
12
12
|
};
|
13
13
|
//# sourceMappingURL=common.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schema-management/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schema-management/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAO9C,eAAO,MAAM,SAAS,GAAI,IAAI,QAAQ,EAAE,UAAU,MAAM,EAAE,aAAa,YAAY,SAYlF,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,UAAU,MAAM,EAAE,aAAa,YAAY,iBAUpF,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,aAAa,CAAC,YAAY,CAAC,CAAA;IAEnD,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;CACtD;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schema-management/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,oCAAoC;AACpC,uGAAuG;AACvG,2DAA2D;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schema-management/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,oCAAoC;AACpC,uGAAuG;AACvG,2DAA2D;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAY,EAAE,QAAgB,EAAE,UAAyB,EAAE,EAAE;IACrF,uCAAuC;IACvC,eAAe;IACf,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,kCAAkC;IAClC,IAAI;IAEJ,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE3F,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAEhC,IAAI,CAAC,QAAQ,EAAE,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,EAAY,EAAE,QAAgB,EAAE,UAAyB,EAAE,EAAE;IACvF,uCAAuC;IACvC,eAAe;IACf,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,kCAAkC;IAClC,IAAI;IAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAI,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5F,IAAI,CAAC,QAAQ,EAAE,CAAA;IACf,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
|
@@ -1,19 +1,19 @@
|
|
1
|
-
import { SqliteAst } from '@livestore/db-schema';
|
2
1
|
import { Effect } from '@livestore/utils/effect';
|
3
|
-
import type {
|
2
|
+
import type { MigrationsReport, SqliteDb, UnexpectedError } from '../adapter-types.js';
|
3
|
+
import { SqliteAst } from '../schema/db-schema/mod.js';
|
4
4
|
import type { LiveStoreSchema } from '../schema/mod.js';
|
5
5
|
import type { SchemaManager } from './common.js';
|
6
|
-
export declare const makeSchemaManager: (db:
|
6
|
+
export declare const makeSchemaManager: (db: SqliteDb) => Effect.Effect<SchemaManager>;
|
7
7
|
export declare const migrateDb: ({ db, schema, onProgress, }: {
|
8
|
-
db:
|
8
|
+
db: SqliteDb;
|
9
9
|
schema: LiveStoreSchema;
|
10
10
|
onProgress?: (opts: {
|
11
11
|
done: number;
|
12
12
|
total: number;
|
13
13
|
}) => Effect.Effect<void>;
|
14
|
-
}) => Effect.Effect<
|
14
|
+
}) => Effect.Effect<MigrationsReport, UnexpectedError>;
|
15
15
|
export declare const migrateTable: ({ db, tableAst, schemaHash, behaviour, skipMetaTable, }: {
|
16
|
-
db:
|
16
|
+
db: SqliteDb;
|
17
17
|
tableAst: SqliteAst.Table;
|
18
18
|
schemaHash?: number;
|
19
19
|
behaviour: "drop-and-recreate" | "create-if-not-exists";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/schema-management/migrations.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/schema-management/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAyB,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC7G,OAAO,EAAE,SAAS,EAAa,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAUvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAMhD,eAAO,MAAM,iBAAiB,GAAI,IAAI,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAuBxE,CAAA;AAGJ,eAAO,MAAM,SAAS,GAAI,6BAIvB;IACD,EAAE,EAAE,QAAQ,CAAA;IACZ,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC5E,KAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAyD/C,CAAA;AAEJ,eAAO,MAAM,YAAY,GAAI,yDAM1B;IACD,EAAE,EAAE,QAAQ,CAAA;IACZ,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,mBAAmB,GAAG,sBAAsB,CAAA;IACvD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,sCAqCE,CAAA;AAOH,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,CAAC,KAAK,WAQvD,CAAA"}
|