@livestore/common 0.4.0 → 0.5.0-dev.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/dist/.tsbuildinfo +1 -1
- package/dist/ClientSessionLeaderThreadProxy.d.ts +1 -1
- package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
- package/dist/MaterializationJournal.d.ts +44 -0
- package/dist/MaterializationJournal.d.ts.map +1 -0
- package/dist/MaterializationJournal.js +112 -0
- package/dist/MaterializationJournal.js.map +1 -0
- package/dist/StateHead.d.ts +26 -0
- package/dist/StateHead.d.ts.map +1 -0
- package/dist/StateHead.js +50 -0
- package/dist/StateHead.js.map +1 -0
- package/dist/WorkerTransportError.d.ts +3 -3
- package/dist/WorkerTransportError.d.ts.map +1 -1
- package/dist/WorkerTransportError.js +3 -3
- package/dist/WorkerTransportError.js.map +1 -1
- package/dist/__tests__/fixture.d.ts +1 -1
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +3 -3
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/adapter-types.d.ts +29 -57
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +20 -37
- package/dist/adapter-types.js.map +1 -1
- package/dist/debug-info.d.ts +56 -56
- package/dist/debug-info.d.ts.map +1 -1
- package/dist/debug-info.js +28 -41
- package/dist/debug-info.js.map +1 -1
- package/dist/defs.d.ts +9 -9
- package/dist/defs.js +2 -2
- package/dist/devtools/devtools-compatibility.test.js +1 -0
- package/dist/devtools/devtools-compatibility.test.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +520 -332
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.js +76 -74
- package/dist/devtools/devtools-messages-client-session.js.map +1 -1
- package/dist/devtools/devtools-messages-common.d.ts +27 -27
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-common.js +5 -5
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +405 -343
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +101 -89
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/devtools/devtools-sessioninfo.d.ts +18 -19
- package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
- package/dist/devtools/devtools-sessioninfo.js +8 -5
- package/dist/devtools/devtools-sessioninfo.js.map +1 -1
- package/dist/devtools/mod.d.ts +4 -5
- package/dist/devtools/mod.d.ts.map +1 -1
- package/dist/devtools/mod.js +9 -5
- package/dist/devtools/mod.js.map +1 -1
- package/dist/errors.d.ts +45 -69
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +18 -16
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +66 -18
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +519 -461
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/RejectedPushError.d.ts +67 -36
- package/dist/leader-thread/RejectedPushError.d.ts.map +1 -1
- package/dist/leader-thread/RejectedPushError.js +24 -5
- package/dist/leader-thread/RejectedPushError.js.map +1 -1
- package/dist/leader-thread/connection.d.ts +1 -0
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/connection.js +9 -8
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts +4 -4
- package/dist/leader-thread/eventlog.d.ts.map +1 -1
- package/dist/leader-thread/eventlog.js +6 -6
- package/dist/leader-thread/eventlog.js.map +1 -1
- 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 +33 -17
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +9 -5
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +25 -35
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.test.js +7 -7
- package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -1
- package/dist/leader-thread/materialize-event.d.ts +2 -1
- package/dist/leader-thread/materialize-event.d.ts.map +1 -1
- package/dist/leader-thread/materialize-event.js +4 -0
- package/dist/leader-thread/materialize-event.js.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +18 -39
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/shutdown-channel.d.ts +2 -6
- package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
- package/dist/leader-thread/shutdown-channel.js +2 -3
- package/dist/leader-thread/shutdown-channel.js.map +1 -1
- package/dist/leader-thread/stream-events.d.ts +4 -7
- package/dist/leader-thread/stream-events.d.ts.map +1 -1
- package/dist/leader-thread/stream-events.js +13 -16
- package/dist/leader-thread/stream-events.js.map +1 -1
- package/dist/leader-thread/types.d.ts +32 -69
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +5 -5
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/logging.d.ts +5 -30
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +1 -32
- package/dist/logging.js.map +1 -1
- package/dist/make-client-session.d.ts +1 -2
- package/dist/make-client-session.d.ts.map +1 -1
- package/dist/make-client-session.js +3 -3
- package/dist/make-client-session.js.map +1 -1
- package/dist/materializer-helper.d.ts +0 -1
- package/dist/materializer-helper.d.ts.map +1 -1
- package/dist/materializer-helper.js +7 -35
- package/dist/materializer-helper.js.map +1 -1
- package/dist/otel.d.ts +2 -3
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +2 -7
- package/dist/otel.js.map +1 -1
- package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
- package/dist/rematerialize-from-eventlog.js +28 -26
- package/dist/rematerialize-from-eventlog.js.map +1 -1
- package/dist/schema/EventDef/define.d.ts +4 -4
- package/dist/schema/EventDef/define.d.ts.map +1 -1
- package/dist/schema/EventDef/define.js +5 -5
- package/dist/schema/EventDef/define.js.map +1 -1
- package/dist/schema/EventDef/define.test.d.ts +2 -0
- package/dist/schema/EventDef/define.test.d.ts.map +1 -0
- package/dist/schema/EventDef/define.test.js +23 -0
- package/dist/schema/EventDef/define.test.js.map +1 -0
- package/dist/schema/EventDef/deprecated.d.ts +8 -13
- package/dist/schema/EventDef/deprecated.d.ts.map +1 -1
- package/dist/schema/EventDef/deprecated.js +12 -13
- package/dist/schema/EventDef/deprecated.js.map +1 -1
- package/dist/schema/EventDef/deprecated.test.js +1 -1
- package/dist/schema/EventDef/deprecated.test.js.map +1 -1
- package/dist/schema/EventDef/event-def.d.ts +1 -1
- package/dist/schema/EventDef/event-def.d.ts.map +1 -1
- package/dist/schema/EventSequenceNumber/client.d.ts +12 -12
- package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -1
- package/dist/schema/EventSequenceNumber/client.js +8 -9
- package/dist/schema/EventSequenceNumber/client.js.map +1 -1
- package/dist/schema/EventSequenceNumber/global.d.ts +2 -2
- package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -1
- package/dist/schema/EventSequenceNumber/global.js +1 -1
- package/dist/schema/EventSequenceNumber/global.js.map +1 -1
- package/dist/schema/EventSequenceNumber.test.js +5 -5
- package/dist/schema/EventSequenceNumber.test.js.map +1 -1
- package/dist/schema/LiveStoreEvent/client.d.ts +50 -179
- package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -1
- package/dist/schema/LiveStoreEvent/client.js +32 -29
- package/dist/schema/LiveStoreEvent/client.js.map +1 -1
- package/dist/schema/LiveStoreEvent/client.test.js +11 -2
- package/dist/schema/LiveStoreEvent/client.test.js.map +1 -1
- package/dist/schema/LiveStoreEvent/for-event-def.d.ts +7 -7
- package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -1
- package/dist/schema/LiveStoreEvent/global.d.ts +6 -6
- package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -1
- package/dist/schema/LiveStoreEvent/global.js +1 -1
- package/dist/schema/LiveStoreEvent/global.js.map +1 -1
- package/dist/schema/LiveStoreEvent/input.d.ts +5 -5
- package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -1
- package/dist/schema/LiveStoreEvent/input.js +3 -3
- package/dist/schema/LiveStoreEvent/input.js.map +1 -1
- package/dist/schema/mod.d.ts +1 -0
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +1 -0
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +3 -2
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.d.ts +12 -17
- package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.js +23 -20
- package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.test.js +29 -8
- package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/column-annotations.d.ts +13 -13
- package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
- package/dist/schema/state/sqlite/column-annotations.js +13 -15
- package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
- package/dist/schema/state/sqlite/column-annotations.test.js +19 -43
- package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
- package/dist/schema/state/sqlite/column-def.d.ts +1 -1
- package/dist/schema/state/sqlite/column-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/column-def.js +57 -31
- package/dist/schema/state/sqlite/column-def.js.map +1 -1
- package/dist/schema/state/sqlite/column-def.test.js +118 -72
- package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/column-spec.js.map +1 -1
- package/dist/schema/state/sqlite/column-spec.test.js +2 -2
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -2
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +13 -4
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +9 -9
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +8 -13
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +27 -16
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +13 -11
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js +5 -3
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
- package/dist/schema/state/sqlite/mod.d.ts +1 -3
- package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
- package/dist/schema/state/sqlite/mod.js +1 -1
- package/dist/schema/state/sqlite/mod.js.map +1 -1
- package/dist/schema/state/sqlite/persistence.d.ts +11 -0
- package/dist/schema/state/sqlite/persistence.d.ts.map +1 -0
- package/dist/schema/state/sqlite/persistence.js +10 -0
- package/dist/schema/state/sqlite/persistence.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/api.d.ts +7 -7
- package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/astToSql.js +27 -23
- package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.d.ts +3 -1
- package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.js +16 -14
- package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.test.js +362 -596
- package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
- package/dist/schema/state/sqlite/schema-helpers.js +1 -1
- package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
- package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts +102 -134
- package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -1
- package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +2 -2
- package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -1
- package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +328 -106
- package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -1
- package/dist/schema/state/sqlite/system-tables/state-tables.js +33 -1
- package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.d.ts +16 -19
- package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/table-def.js +53 -3
- package/dist/schema/state/sqlite/table-def.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.test.js +153 -36
- package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
- package/dist/schema/unknown-events.d.ts.map +1 -1
- package/dist/schema/unknown-events.js +2 -1
- package/dist/schema/unknown-events.js.map +1 -1
- package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +2 -2
- package/dist/session-id-symbol.d.ts +29 -0
- package/dist/session-id-symbol.d.ts.map +1 -0
- package/dist/session-id-symbol.js +44 -0
- package/dist/session-id-symbol.js.map +1 -0
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js +8 -10
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/sql-queries/types.d.ts +6 -7
- package/dist/sql-queries/types.d.ts.map +1 -1
- package/dist/sql-queries/types.js.map +1 -1
- package/dist/sqlite-db-helper.d.ts +21 -1
- package/dist/sqlite-db-helper.d.ts.map +1 -1
- package/dist/sqlite-db-helper.js +37 -2
- package/dist/sqlite-db-helper.js.map +1 -1
- package/dist/sqlite-types.d.ts +3 -6
- package/dist/sqlite-types.d.ts.map +1 -1
- package/dist/sqlite-types.js +3 -3
- package/dist/sqlite-types.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +38 -16
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +196 -66
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/errors.d.ts +12 -18
- package/dist/sync/errors.d.ts.map +1 -1
- package/dist/sync/errors.js +2 -2
- package/dist/sync/errors.js.map +1 -1
- package/dist/sync/mock-sync-backend.d.ts +2 -3
- package/dist/sync/mock-sync-backend.d.ts.map +1 -1
- package/dist/sync/mock-sync-backend.js +54 -33
- package/dist/sync/mock-sync-backend.js.map +1 -1
- package/dist/sync/mock-sync-backend.test.d.ts +2 -0
- package/dist/sync/mock-sync-backend.test.d.ts.map +1 -0
- package/dist/sync/mock-sync-backend.test.js +49 -0
- package/dist/sync/mock-sync-backend.test.js.map +1 -0
- package/dist/sync/next/history-dag-common.d.ts +4 -0
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +52 -31
- 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 -1
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/test/compact-events.calculator.test.js +2 -2
- package/dist/sync/next/test/event-fixtures.d.ts +7 -7
- package/dist/sync/next/test/event-fixtures.js +1 -1
- package/dist/sync/next/test/event-fixtures.js.map +1 -1
- package/dist/sync/next/test/history-dag-common.test.d.ts +2 -0
- package/dist/sync/next/test/history-dag-common.test.d.ts.map +1 -0
- package/dist/sync/next/test/history-dag-common.test.js +73 -0
- package/dist/sync/next/test/history-dag-common.test.js.map +1 -0
- package/dist/sync/sync-backend-kv.d.ts.map +1 -1
- package/dist/sync/sync-backend-kv.js +4 -2
- package/dist/sync/sync-backend-kv.js.map +1 -1
- package/dist/sync/sync-backend.d.ts +15 -15
- package/dist/sync/sync-backend.d.ts.map +1 -1
- package/dist/sync/sync-backend.js +9 -5
- package/dist/sync/sync-backend.js.map +1 -1
- package/dist/sync/sync.d.ts +1 -1
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/syncstate.d.ts +97 -173
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +34 -37
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +100 -61
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/transport-chunking.d.ts +15 -16
- package/dist/sync/transport-chunking.d.ts.map +1 -1
- package/dist/sync/transport-chunking.js +23 -32
- package/dist/sync/transport-chunking.js.map +1 -1
- package/dist/util.d.ts +11 -4
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +19 -2
- package/dist/util.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +19 -37
- package/src/ClientSessionLeaderThreadProxy.ts +1 -1
- package/src/MaterializationJournal.ts +184 -0
- package/src/StateHead.ts +80 -0
- package/src/WorkerTransportError.ts +4 -4
- package/src/__tests__/fixture.ts +3 -3
- package/src/adapter-types.ts +24 -61
- package/src/debug-info.ts +50 -70
- package/src/defs.ts +2 -2
- package/src/devtools/devtools-compatibility.test.ts +1 -0
- package/src/devtools/devtools-messages-client-session.ts +56 -65
- package/src/devtools/devtools-messages-common.ts +12 -11
- package/src/devtools/devtools-messages-leader.ts +71 -69
- package/src/devtools/devtools-sessioninfo.ts +13 -11
- package/src/devtools/mod.ts +4 -5
- package/src/errors.ts +46 -34
- package/src/index.ts +8 -1
- package/src/leader-thread/LeaderSyncProcessor.ts +794 -691
- package/src/leader-thread/RejectedPushError.ts +40 -27
- package/src/leader-thread/connection.ts +12 -8
- package/src/leader-thread/eventlog.ts +7 -7
- package/src/leader-thread/leader-worker-devtools.ts +37 -19
- package/src/leader-thread/make-leader-thread-layer.test.ts +7 -7
- package/src/leader-thread/make-leader-thread-layer.ts +56 -53
- package/src/leader-thread/materialize-event.ts +13 -8
- package/src/leader-thread/recreate-db.ts +24 -59
- package/src/leader-thread/shutdown-channel.ts +3 -14
- package/src/leader-thread/stream-events.ts +104 -101
- package/src/leader-thread/types.ts +24 -62
- package/src/logging.ts +5 -52
- package/src/make-client-session.ts +6 -6
- package/src/materializer-helper.ts +8 -37
- package/src/otel.ts +5 -14
- package/src/rematerialize-from-eventlog.ts +97 -94
- package/src/schema/EventDef/define.test.ts +28 -0
- package/src/schema/EventDef/define.ts +20 -19
- package/src/schema/EventDef/deprecated.test.ts +1 -8
- package/src/schema/EventDef/deprecated.ts +17 -20
- package/src/schema/EventDef/event-def.ts +2 -4
- package/src/schema/EventSequenceNumber/client.ts +8 -9
- package/src/schema/EventSequenceNumber/global.ts +1 -1
- package/src/schema/EventSequenceNumber.test.ts +5 -5
- package/src/schema/LiveStoreEvent/client.test.ts +17 -4
- package/src/schema/LiveStoreEvent/client.ts +36 -35
- package/src/schema/LiveStoreEvent/for-event-def.ts +7 -7
- package/src/schema/LiveStoreEvent/global.ts +1 -1
- package/src/schema/LiveStoreEvent/input.ts +6 -6
- package/src/schema/mod.ts +1 -0
- package/src/schema/schema.ts +3 -2
- package/src/schema/state/sqlite/client-document-def.test.ts +32 -13
- package/src/schema/state/sqlite/client-document-def.ts +95 -80
- package/src/schema/state/sqlite/column-annotations.test.ts +26 -45
- package/src/schema/state/sqlite/column-annotations.ts +26 -30
- package/src/schema/state/sqlite/column-def.test.ts +132 -77
- package/src/schema/state/sqlite/column-def.ts +72 -37
- package/src/schema/state/sqlite/column-spec.test.ts +2 -2
- package/src/schema/state/sqlite/column-spec.ts +3 -2
- package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +15 -5
- package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +123 -63
- package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +35 -16
- package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +25 -31
- package/src/schema/state/sqlite/db-schema/dsl/mod.ts +35 -21
- package/src/schema/state/sqlite/mod.ts +2 -4
- package/src/schema/state/sqlite/persistence.ts +11 -0
- package/src/schema/state/sqlite/query-builder/api.ts +9 -9
- package/src/schema/state/sqlite/query-builder/astToSql.ts +31 -26
- package/src/schema/state/sqlite/query-builder/impl.test.ts +433 -669
- package/src/schema/state/sqlite/query-builder/impl.ts +19 -15
- package/src/schema/state/sqlite/schema-helpers.ts +1 -1
- package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +2 -2
- package/src/schema/state/sqlite/system-tables/state-tables.ts +41 -1
- package/src/schema/state/sqlite/table-def.test.ts +204 -66
- package/src/schema/state/sqlite/table-def.ts +96 -45
- package/src/schema/unknown-events.ts +3 -2
- package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +2 -2
- package/src/session-id-symbol.ts +59 -0
- package/src/sql-queries/sql-queries.ts +8 -12
- package/src/sql-queries/types.ts +6 -7
- package/src/sqlite-db-helper.ts +64 -2
- package/src/sqlite-types.ts +5 -8
- package/src/sync/ClientSessionSyncProcessor.ts +303 -119
- package/src/sync/errors.ts +14 -12
- package/src/sync/mock-sync-backend.test.ts +78 -0
- package/src/sync/mock-sync-backend.ts +93 -47
- package/src/sync/next/history-dag-common.ts +60 -34
- package/src/sync/next/history-dag.ts +4 -1
- package/src/sync/next/test/compact-events.calculator.test.ts +2 -2
- package/src/sync/next/test/event-fixtures.ts +1 -1
- package/src/sync/next/test/history-dag-common.test.ts +87 -0
- package/src/sync/sync-backend-kv.ts +4 -2
- package/src/sync/sync-backend.ts +15 -15
- package/src/sync/sync.ts +1 -1
- package/src/sync/syncstate.test.ts +191 -140
- package/src/sync/syncstate.ts +63 -53
- package/src/sync/transport-chunking.ts +34 -39
- package/src/util.ts +18 -9
- package/src/version.ts +1 -2
- package/dist/sql-queries/misc.d.ts +0 -2
- package/dist/sql-queries/misc.d.ts.map +0 -1
- package/dist/sql-queries/misc.js +0 -2
- package/dist/sql-queries/misc.js.map +0 -1
- package/src/sql-queries/misc.ts +0 -2
|
@@ -2,10 +2,10 @@ import type { Effect, Stream, Subscribable } from '@livestore/utils/effect';
|
|
|
2
2
|
import type { StorageMode } from './adapter-types.ts';
|
|
3
3
|
import type { MigrationsReport } from './defs.ts';
|
|
4
4
|
import type * as Devtools from './devtools/mod.ts';
|
|
5
|
+
import type { RejectedPushError } from './leader-thread/RejectedPushError.ts';
|
|
5
6
|
import type { StreamEventsOptions } from './leader-thread/types.ts';
|
|
6
7
|
import type * as EventSequenceNumber from './schema/EventSequenceNumber/mod.ts';
|
|
7
8
|
import type { LiveStoreEvent } from './schema/mod.ts';
|
|
8
|
-
import type { RejectedPushError } from './leader-thread/RejectedPushError.ts';
|
|
9
9
|
import type { SyncBackend } from './sync/sync.ts';
|
|
10
10
|
import type { PayloadUpstream, SyncState } from './sync/syncstate.ts';
|
|
11
11
|
export interface ClientSessionLeaderThreadProxy {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSessionLeaderThreadProxy.d.ts","sourceRoot":"","sources":["../src/ClientSessionLeaderThreadProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ClientSessionLeaderThreadProxy.d.ts","sourceRoot":"","sources":["../src/ClientSessionLeaderThreadProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,KAAK,mBAAmB,MAAM,qCAAqC,CAAA;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAErE,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,IAAI,EAAE;YACX,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAA;SAC7C,KAAK,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,OAAO,eAAe,CAAC,IAAI,CAAA;SAAE,CAAC,CAAA;QAC7D,6EAA6E;QAC7E,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QACjG,mCAAmC;QACnC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;KACnF,CAAA;IACD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE;QACrB,mGAAmG;QACnG,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAA;QACzD,mDAAmD;QACnD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;QAC3C;;;;WAIG;QACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;KAClC,CAAA;IACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IAC9C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IACvD,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC/C,iHAAiH;IACjH,mBAAmB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnF;;;OAGG;IACH,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;CACpE;AAED,eAAO,MAAM,EAAE,GACb,OAAO,8BAA8B,EACrC,UAAU;IAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,8BAA8B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAA;CAAE,KAC9G,8BAIF,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Schema } from '@livestore/utils/effect';
|
|
2
|
+
import { type SqliteDb } from './adapter-types.ts';
|
|
3
|
+
import * as EventSequenceNumber from './schema/EventSequenceNumber/mod.ts';
|
|
4
|
+
export declare const TypeId: "~@livestore/common/MaterializationJournal";
|
|
5
|
+
export type TypeId = typeof TypeId;
|
|
6
|
+
export declare const MaterializationJournalErrorTypeId: "~@livestore/common/MaterializationJournalError";
|
|
7
|
+
export declare const isMaterializationJournalError: (u: unknown) => u is MaterializationJournalError;
|
|
8
|
+
declare const MaterializationJournalError_base: Schema.Class<MaterializationJournalError, Schema.TaggedStruct<"MaterializationJournalError", {
|
|
9
|
+
readonly method: Schema.Literals<readonly ["record", "rollback", "discardUpTo"]>;
|
|
10
|
+
readonly cause: Schema.Defect;
|
|
11
|
+
}>, import("effect/Cause").YieldableError>;
|
|
12
|
+
export declare class MaterializationJournalError extends MaterializationJournalError_base {
|
|
13
|
+
readonly [MaterializationJournalErrorTypeId]: "~@livestore/common/MaterializationJournalError";
|
|
14
|
+
}
|
|
15
|
+
export type MaterializationChangeset = {
|
|
16
|
+
_tag: 'changeset';
|
|
17
|
+
data: Uint8Array<ArrayBuffer>;
|
|
18
|
+
} | {
|
|
19
|
+
_tag: 'no-op';
|
|
20
|
+
};
|
|
21
|
+
export type MaterializationRecord = {
|
|
22
|
+
key: EventSequenceNumber.Client.Composite;
|
|
23
|
+
changeset: MaterializationChangeset;
|
|
24
|
+
};
|
|
25
|
+
export interface Service {
|
|
26
|
+
readonly [TypeId]: TypeId;
|
|
27
|
+
/** Stores a materialization record, replacing any record at the same key. */
|
|
28
|
+
record: (record: MaterializationRecord) => Effect.Effect<void, MaterializationJournalError>;
|
|
29
|
+
/** Reverts the keyed materializations in reverse order, then discards their records. */
|
|
30
|
+
rollback: (keys: ReadonlyArray<EventSequenceNumber.Client.Composite>) => Effect.Effect<void, MaterializationJournalError>;
|
|
31
|
+
/** Discards records whose key is less than or equal to `key`, ignoring rebase generation. */
|
|
32
|
+
discardUpTo: (key: EventSequenceNumber.Client.Composite) => Effect.Effect<void, MaterializationJournalError>;
|
|
33
|
+
}
|
|
34
|
+
declare const MaterializationJournal_base: Context.ServiceClass<MaterializationJournal, "@livestore/common/MaterializationJournal", Service>;
|
|
35
|
+
export declare class MaterializationJournal extends MaterializationJournal_base {
|
|
36
|
+
}
|
|
37
|
+
interface Options {
|
|
38
|
+
readonly dbState: SqliteDb;
|
|
39
|
+
}
|
|
40
|
+
export declare const make: ({ dbState }: Options) => Service;
|
|
41
|
+
export declare const layer: (options: Options) => Layer.Layer<MaterializationJournal, never, never>;
|
|
42
|
+
export declare const layerTest: Layer.Layer<MaterializationJournal, never, never>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=MaterializationJournal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterializationJournal.d.ts","sourceRoot":"","sources":["../src/MaterializationJournal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA4B,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAElG,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,mBAAmB,MAAM,qCAAqC,CAAA;AAM1E,eAAO,MAAM,MAAM,EAAG,2CAAoD,CAAA;AAC1E,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC,eAAO,MAAM,iCAAiC,EAAG,gDAAyD,CAAA;AAE1G,eAAO,MAAM,6BAA6B,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,2BACH,CAAA;;;;;AAE7D,qBAAa,2BAA4B,SAAQ,gCAK/C;IACA,QAAQ,CAAC,CAAC,iCAAiC,CAAC,mDAAoC;CACjF;AAED,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAE/G,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAA;IACzC,SAAS,EAAE,wBAAwB,CAAA;CACpC,CAAA;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,6EAA6E;IAC7E,MAAM,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IAC3F,wFAAwF;IACxF,QAAQ,EAAE,CACR,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,KACtD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;IACrD,6FAA6F;IAC7F,WAAW,EAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;CAC7G;;AAED,qBAAa,sBAAuB,SAAQ,2BAE3C;CAAG;AAEJ,UAAU,OAAO;IACf,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;CAC3B;AAED,eAAO,MAAM,IAAI,GAAI,aAAa,OAAO,YAqHxC,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,sDAAyD,CAAA;AAE/F,eAAO,MAAM,SAAS,mDAQrB,CAAA"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Predicate, ReadonlyArray, Schema } from '@livestore/utils/effect';
|
|
2
|
+
import { SqliteError } from "./adapter-types.js";
|
|
3
|
+
import { execSql, execSqlPrepared } from "./leader-thread/connection.js";
|
|
4
|
+
import * as EventSequenceNumber from "./schema/EventSequenceNumber/mod.js";
|
|
5
|
+
import { SystemTables } from "./schema/mod.js";
|
|
6
|
+
import { findManyRows, insertRow } from "./sql-queries/index.js";
|
|
7
|
+
import * as SqliteDbHelper from "./sqlite-db-helper.js";
|
|
8
|
+
import { prepareBindValues, sql } from "./util.js";
|
|
9
|
+
export const TypeId = '~@livestore/common/MaterializationJournal';
|
|
10
|
+
export const MaterializationJournalErrorTypeId = '~@livestore/common/MaterializationJournalError';
|
|
11
|
+
export const isMaterializationJournalError = (u) => Predicate.hasProperty(u, MaterializationJournalErrorTypeId);
|
|
12
|
+
export class MaterializationJournalError extends Schema.TaggedError(MaterializationJournalErrorTypeId)('MaterializationJournalError', {
|
|
13
|
+
method: Schema.Literals(['record', 'rollback', 'discardUpTo']),
|
|
14
|
+
cause: Schema.Defect(),
|
|
15
|
+
}) {
|
|
16
|
+
[MaterializationJournalErrorTypeId] = MaterializationJournalErrorTypeId;
|
|
17
|
+
}
|
|
18
|
+
export class MaterializationJournal extends Context.Service()('@livestore/common/MaterializationJournal') {
|
|
19
|
+
}
|
|
20
|
+
export const make = ({ dbState }) => {
|
|
21
|
+
const deleteByKeys = Effect.fnUntraced(function* (keys) {
|
|
22
|
+
// Keep DELETE statements below SQLite's bound-parameter limit.
|
|
23
|
+
const keyChunks = ReadonlyArray.chunksOf(100)(keys);
|
|
24
|
+
for (const keyChunk of keyChunks) {
|
|
25
|
+
const placeholders = keyChunk.map(() => '(?, ?, ?)').join(', ');
|
|
26
|
+
const bindValues = keyChunk.flatMap((key) => [key.global, key.client, key.rebaseGeneration]);
|
|
27
|
+
const statement = sql `DELETE FROM ${SystemTables.MATERIALIZATION_JOURNAL_META_TABLE}
|
|
28
|
+
WHERE (seqNumGlobal, seqNumClient, seqNumRebaseGeneration) IN (${placeholders})`;
|
|
29
|
+
yield* execSqlPrepared(dbState, statement, prepareBindValues(bindValues, statement));
|
|
30
|
+
}
|
|
31
|
+
}, SqliteDbHelper.withSavepoint(dbState));
|
|
32
|
+
return MaterializationJournal.of({
|
|
33
|
+
[TypeId]: TypeId,
|
|
34
|
+
record: Effect.fnUntraced(function* (record) {
|
|
35
|
+
yield* deleteByKeys([record.key]);
|
|
36
|
+
// Generate the parameterized INSERT statement
|
|
37
|
+
const [statement, bindValues] = insertRow({
|
|
38
|
+
tableName: SystemTables.MATERIALIZATION_JOURNAL_META_TABLE,
|
|
39
|
+
columns: SystemTables.materializationJournalMetaTable.sqliteDef.columns,
|
|
40
|
+
values: {
|
|
41
|
+
seqNumGlobal: record.key.global,
|
|
42
|
+
seqNumClient: record.key.client,
|
|
43
|
+
seqNumRebaseGeneration: record.key.rebaseGeneration,
|
|
44
|
+
changeset: record.changeset._tag === 'changeset' ? record.changeset.data : null,
|
|
45
|
+
// Legacy processors still expose this column for development diagnostics.
|
|
46
|
+
debug: null,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
yield* execSqlPrepared(dbState, statement, prepareBindValues(bindValues, statement));
|
|
50
|
+
}, SqliteDbHelper.withSavepoint(dbState), Effect.mapError((cause) => new MaterializationJournalError({ method: 'record', cause }))),
|
|
51
|
+
rollback: Effect.fnUntraced(function* (keys) {
|
|
52
|
+
const sortedKeys = keys.toSorted((a, b) => EventSequenceNumber.Client.compare(b, a));
|
|
53
|
+
const rollbackRecords = yield* Effect.forEach(sortedKeys, Effect.fnUntraced(function* (key) {
|
|
54
|
+
const [statement, bindValues] = findManyRows({
|
|
55
|
+
tableName: SystemTables.MATERIALIZATION_JOURNAL_META_TABLE,
|
|
56
|
+
columns: SystemTables.materializationJournalMetaTable.sqliteDef.columns,
|
|
57
|
+
where: {
|
|
58
|
+
seqNumGlobal: key.global,
|
|
59
|
+
seqNumClient: key.client,
|
|
60
|
+
seqNumRebaseGeneration: key.rebaseGeneration,
|
|
61
|
+
},
|
|
62
|
+
limit: 1,
|
|
63
|
+
});
|
|
64
|
+
const preparedBindValues = prepareBindValues(bindValues, statement);
|
|
65
|
+
const row = yield* Effect.try({
|
|
66
|
+
try: () => dbState.select(statement, preparedBindValues)[0],
|
|
67
|
+
catch: (cause) => new SqliteError({ cause, query: { sql: statement, bindValues: preparedBindValues } }),
|
|
68
|
+
});
|
|
69
|
+
if (row === undefined) {
|
|
70
|
+
return yield* new MaterializationJournalError({
|
|
71
|
+
method: 'rollback',
|
|
72
|
+
cause: new Error(`Missing materialization journal record for ${EventSequenceNumber.Client.toString(key)}`),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
key,
|
|
77
|
+
changeset: row.changeset === null
|
|
78
|
+
? { _tag: 'no-op' }
|
|
79
|
+
: { _tag: 'changeset', data: row.changeset },
|
|
80
|
+
};
|
|
81
|
+
}));
|
|
82
|
+
for (const record of rollbackRecords) {
|
|
83
|
+
if (record.changeset._tag === 'changeset') {
|
|
84
|
+
const data = record.changeset.data;
|
|
85
|
+
yield* Effect.try({
|
|
86
|
+
try: () => dbState.makeChangeset(data).invert().apply(),
|
|
87
|
+
catch: (cause) => new SqliteError({ cause }),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
yield* deleteByKeys(sortedKeys);
|
|
92
|
+
}, SqliteDbHelper.withSavepoint(dbState), Effect.mapError((cause) => isMaterializationJournalError(cause) === true
|
|
93
|
+
? cause
|
|
94
|
+
: new MaterializationJournalError({ method: 'rollback', cause }))),
|
|
95
|
+
discardUpTo: Effect.fnUntraced(function* (key) {
|
|
96
|
+
yield* execSql(dbState, sql `DELETE FROM ${SystemTables.MATERIALIZATION_JOURNAL_META_TABLE}
|
|
97
|
+
WHERE seqNumGlobal < ${key.global}
|
|
98
|
+
OR (
|
|
99
|
+
seqNumGlobal = ${key.global}
|
|
100
|
+
AND seqNumClient <= ${key.client}
|
|
101
|
+
)`, {});
|
|
102
|
+
}, SqliteDbHelper.withSavepoint(dbState), Effect.mapError((cause) => new MaterializationJournalError({ method: 'discardUpTo', cause }))),
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
export const layer = (options) => Layer.succeed(MaterializationJournal, make(options));
|
|
106
|
+
export const layerTest = Layer.succeed(MaterializationJournal, MaterializationJournal.of({
|
|
107
|
+
[TypeId]: TypeId,
|
|
108
|
+
record: () => Effect.void,
|
|
109
|
+
rollback: () => Effect.void,
|
|
110
|
+
discardUpTo: () => Effect.void,
|
|
111
|
+
}));
|
|
112
|
+
//# sourceMappingURL=MaterializationJournal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterializationJournal.js","sourceRoot":"","sources":["../src/MaterializationJournal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from '@livestore/utils/effect';
|
|
2
|
+
import type { SqliteDb, SqliteError } from './adapter-types.ts';
|
|
3
|
+
import * as EventSequenceNumber from './schema/EventSequenceNumber/mod.ts';
|
|
4
|
+
export declare const TypeId: "~@livestore/common/StateHead";
|
|
5
|
+
export type TypeId = typeof TypeId;
|
|
6
|
+
/**
|
|
7
|
+
* Persists and reads the latest event sequence number reflected by the state database.
|
|
8
|
+
*/
|
|
9
|
+
export interface Service {
|
|
10
|
+
readonly [TypeId]: TypeId;
|
|
11
|
+
/** Persists the latest event sequence number reflected by the state database. */
|
|
12
|
+
set: (head: EventSequenceNumber.Client.Composite) => Effect.Effect<void, SqliteError>;
|
|
13
|
+
/** Returns the persisted head, or the root when the current-schema table has no row. */
|
|
14
|
+
get: Effect.Effect<EventSequenceNumber.Client.Composite, SqliteError>;
|
|
15
|
+
}
|
|
16
|
+
declare const StateHead_base: Context.ServiceClass<StateHead, "@livestore/common/StateHead", Service>;
|
|
17
|
+
export declare class StateHead extends StateHead_base {
|
|
18
|
+
}
|
|
19
|
+
interface Options {
|
|
20
|
+
readonly dbState: SqliteDb;
|
|
21
|
+
}
|
|
22
|
+
export declare const make: ({ dbState }: Options) => Service;
|
|
23
|
+
export declare const layer: (options: Options) => Layer.Layer<StateHead, never, never>;
|
|
24
|
+
export declare const layerTest: Layer.Layer<StateHead, never, never>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=StateHead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateHead.d.ts","sourceRoot":"","sources":["../src/StateHead.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,mBAAmB,MAAM,qCAAqC,CAAA;AAI1E,eAAO,MAAM,MAAM,EAAG,8BAAuC,CAAA;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAIlC;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,GAAG,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACrF,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;CACtE;;AAED,qBAAa,SAAU,SAAQ,cAAoE;CAAG;AAEtG,UAAU,OAAO;IACf,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;CAC3B;AAED,eAAO,MAAM,IAAI,GAAI,aAAa,OAAO,YAsCxC,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,yCAA4C,CAAA;AAElF,eAAO,MAAM,SAAS,sCAOrB,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from '@livestore/utils/effect';
|
|
2
|
+
import { execSql, selectSql } from "./leader-thread/connection.js";
|
|
3
|
+
import * as EventSequenceNumber from "./schema/EventSequenceNumber/mod.js";
|
|
4
|
+
import { SystemTables } from "./schema/mod.js";
|
|
5
|
+
import { findManyRows, insertRow } from "./sql-queries/index.js";
|
|
6
|
+
export const TypeId = '~@livestore/common/StateHead';
|
|
7
|
+
const STATE_HEAD_ROW_ID = 1;
|
|
8
|
+
export class StateHead extends Context.Service()('@livestore/common/StateHead') {
|
|
9
|
+
}
|
|
10
|
+
export const make = ({ dbState }) => {
|
|
11
|
+
return StateHead.of({
|
|
12
|
+
[TypeId]: TypeId,
|
|
13
|
+
set: (head) => {
|
|
14
|
+
const [statement, bindValues] = insertRow({
|
|
15
|
+
tableName: SystemTables.STATE_HEAD_META_TABLE,
|
|
16
|
+
columns: SystemTables.stateHeadMetaTable.sqliteDef.columns,
|
|
17
|
+
values: {
|
|
18
|
+
id: STATE_HEAD_ROW_ID,
|
|
19
|
+
seqNumGlobal: head.global,
|
|
20
|
+
seqNumClient: head.client,
|
|
21
|
+
seqNumRebaseGeneration: head.rebaseGeneration,
|
|
22
|
+
},
|
|
23
|
+
options: { orReplace: true },
|
|
24
|
+
});
|
|
25
|
+
return execSql(dbState, statement, bindValues);
|
|
26
|
+
},
|
|
27
|
+
get: Effect.suspend(() => {
|
|
28
|
+
const [statement, bindValues] = findManyRows({
|
|
29
|
+
tableName: SystemTables.STATE_HEAD_META_TABLE,
|
|
30
|
+
columns: SystemTables.stateHeadMetaTable.sqliteDef.columns,
|
|
31
|
+
where: { id: STATE_HEAD_ROW_ID },
|
|
32
|
+
limit: 1,
|
|
33
|
+
});
|
|
34
|
+
return selectSql(dbState, statement, bindValues).pipe(Effect.map(([row]) => row === undefined
|
|
35
|
+
? EventSequenceNumber.Client.ROOT
|
|
36
|
+
: EventSequenceNumber.Client.Composite.make({
|
|
37
|
+
global: row.seqNumGlobal,
|
|
38
|
+
client: row.seqNumClient,
|
|
39
|
+
rebaseGeneration: row.seqNumRebaseGeneration,
|
|
40
|
+
})));
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
export const layer = (options) => Layer.succeed(StateHead, make(options));
|
|
45
|
+
export const layerTest = Layer.succeed(StateHead, StateHead.of({
|
|
46
|
+
[TypeId]: TypeId,
|
|
47
|
+
set: () => Effect.void,
|
|
48
|
+
get: Effect.succeed(EventSequenceNumber.Client.ROOT),
|
|
49
|
+
}));
|
|
50
|
+
//# sourceMappingURL=StateHead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateHead.js","sourceRoot":"","sources":["../src/StateHead.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Schema, WorkerError } from '@livestore/utils/effect';
|
|
2
2
|
/**
|
|
3
3
|
* Type guard that identifies infrastructure errors from the Effect Worker transport layer.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
*
|
|
7
|
-
* These errors ({@link WorkerError.WorkerError}, {@link
|
|
7
|
+
* These errors ({@link WorkerError.WorkerError}, {@link Schema.SchemaError}) represent communication failures between
|
|
8
8
|
* threads/processes — not application-level failures.
|
|
9
9
|
*/
|
|
10
|
-
export declare const isWorkerTransportError: (e: unknown) => e is WorkerError.WorkerError |
|
|
10
|
+
export declare const isWorkerTransportError: (e: unknown) => e is WorkerError.WorkerError | Schema.SchemaError;
|
|
11
11
|
//# sourceMappingURL=WorkerTransportError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerTransportError.d.ts","sourceRoot":"","sources":["../src/WorkerTransportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"WorkerTransportError.d.ts","sourceRoot":"","sources":["../src/WorkerTransportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WACjC,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Schema, WorkerError } from '@livestore/utils/effect';
|
|
2
2
|
/**
|
|
3
3
|
* Type guard that identifies infrastructure errors from the Effect Worker transport layer.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
*
|
|
7
|
-
* These errors ({@link WorkerError.WorkerError}, {@link
|
|
7
|
+
* These errors ({@link WorkerError.WorkerError}, {@link Schema.SchemaError}) represent communication failures between
|
|
8
8
|
* threads/processes — not application-level failures.
|
|
9
9
|
*/
|
|
10
|
-
export const isWorkerTransportError = (e) =>
|
|
10
|
+
export const isWorkerTransportError = (e) => Schema.isSchemaError(e) || WorkerError.isWorkerError(e);
|
|
11
11
|
//# sourceMappingURL=WorkerTransportError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerTransportError.js","sourceRoot":"","sources":["../src/WorkerTransportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"WorkerTransportError.js","sourceRoot":"","sources":["../src/WorkerTransportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAU,EAAqD,EAAE,CACtG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SessionIdSymbol } from '../adapter-types.ts';
|
|
2
1
|
import { State } from '../schema/mod.ts';
|
|
2
|
+
import { SessionIdSymbol } from '../session-id-symbol.ts';
|
|
3
3
|
export declare const UiState: State.SQLite.ClientDocumentTableDef<"UiState", {
|
|
4
4
|
readonly showSidebar: boolean;
|
|
5
5
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/__tests__/fixture.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/__tests__/fixture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,eAAO,MAAM,OAAO;;;;;;;;;;;;EAQlB,CAAA;AAOF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;EAOpB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;EAOrB,CAAA;AAOF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAA;AAI5C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
|
2
|
-
import { SessionIdSymbol } from "../adapter-types.js";
|
|
3
2
|
import { makeSchema, State } from "../schema/mod.js";
|
|
3
|
+
import { SessionIdSymbol } from "../session-id-symbol.js";
|
|
4
4
|
export const UiState = State.SQLite.clientDocument({
|
|
5
5
|
name: 'UiState',
|
|
6
6
|
schema: Schema.Struct({
|
|
@@ -11,8 +11,8 @@ export const UiState = State.SQLite.clientDocument({
|
|
|
11
11
|
},
|
|
12
12
|
});
|
|
13
13
|
const Config = Schema.Struct({
|
|
14
|
-
fontSize: Schema.
|
|
15
|
-
theme: Schema.
|
|
14
|
+
fontSize: Schema.Finite,
|
|
15
|
+
theme: Schema.Literals(['light', 'dark']),
|
|
16
16
|
});
|
|
17
17
|
export const appConfig = State.SQLite.clientDocument({
|
|
18
18
|
name: 'AppConfig',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../src/__tests__/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../src/__tests__/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IACjD,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,OAAO;KAC5B,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;KAC7B;CACF,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC1C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IACnD,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;KACxC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IACpD,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;QACP,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;KACxC;CACF,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,OAAO,CAAC,GAAG;IACvB,YAAY,EAAE,SAAS,CAAC,GAAG;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA"}
|
package/dist/adapter-types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Effect, type Exit, type Queue, Schema, type Scope, type SubscriptionRef, type WebChannel } from '@livestore/utils/effect';
|
|
1
|
+
import { type Effect, type Exit, type Queue, type Latch, Schema, type Scope, type SubscriptionRef, type WebChannel } from '@livestore/utils/effect';
|
|
2
2
|
import type { ClientSessionLeaderThreadProxy } from './ClientSessionLeaderThreadProxy.ts';
|
|
3
3
|
import type * as Devtools from './devtools/mod.ts';
|
|
4
4
|
import type { IntentionalShutdownCause, MaterializeError, UnknownError } from './errors.ts';
|
|
@@ -21,8 +21,8 @@ export interface ClientSession {
|
|
|
21
21
|
enabled: false;
|
|
22
22
|
} | {
|
|
23
23
|
enabled: true;
|
|
24
|
-
pullLatch:
|
|
25
|
-
pushLatch:
|
|
24
|
+
pullLatch: Latch.Latch;
|
|
25
|
+
pushLatch: Latch.Latch;
|
|
26
26
|
};
|
|
27
27
|
clientId: string;
|
|
28
28
|
sessionId: string;
|
|
@@ -36,8 +36,8 @@ export interface ClientSession {
|
|
|
36
36
|
}
|
|
37
37
|
export type ResetMode = 'all-data' | 'only-app-db';
|
|
38
38
|
export declare const BootStateProgress: Schema.Struct<{
|
|
39
|
-
done:
|
|
40
|
-
total:
|
|
39
|
+
readonly done: Schema.Finite;
|
|
40
|
+
readonly total: Schema.Finite;
|
|
41
41
|
}>;
|
|
42
42
|
/**
|
|
43
43
|
* Describes known reasons why LiveStore boot may encounter storage issues.
|
|
@@ -47,7 +47,7 @@ export declare const BootStateProgress: Schema.Struct<{
|
|
|
47
47
|
* - `storage-unavailable`: OPFS access denied for other reasons (permissions, quota)
|
|
48
48
|
* - `unknown`: Unexpected error during storage initialization
|
|
49
49
|
*/
|
|
50
|
-
export declare const BootWarningReason: Schema.
|
|
50
|
+
export declare const BootWarningReason: Schema.Literals<readonly ["private-browsing", "storage-unavailable", "unknown"]>;
|
|
51
51
|
export type BootWarningReason = typeof BootWarningReason.Type;
|
|
52
52
|
/**
|
|
53
53
|
* Describes the storage mode the store is operating in.
|
|
@@ -56,77 +56,49 @@ export type BootWarningReason = typeof BootWarningReason.Type;
|
|
|
56
56
|
* - `persisted`: Data is persisted to disk (e.g., via OPFS)
|
|
57
57
|
* - `in-memory`: Data is only stored in memory and will be lost on page refresh
|
|
58
58
|
*/
|
|
59
|
-
export declare const StorageMode: Schema.
|
|
59
|
+
export declare const StorageMode: Schema.Literals<readonly ["persisted", "in-memory"]>;
|
|
60
60
|
export type StorageMode = typeof StorageMode.Type;
|
|
61
|
-
export declare const BootStatus: Schema.Union<[Schema.Struct<{
|
|
62
|
-
stage: Schema.Literal<
|
|
61
|
+
export declare const BootStatus: Schema.Union<readonly [Schema.Struct<{
|
|
62
|
+
readonly stage: Schema.Literal<"loading">;
|
|
63
63
|
}>, Schema.Struct<{
|
|
64
|
-
stage: Schema.Literal<
|
|
65
|
-
progress: Schema.Struct<{
|
|
66
|
-
done:
|
|
67
|
-
total:
|
|
64
|
+
readonly stage: Schema.Literal<"migrating">;
|
|
65
|
+
readonly progress: Schema.Struct<{
|
|
66
|
+
readonly done: Schema.Finite;
|
|
67
|
+
readonly total: Schema.Finite;
|
|
68
68
|
}>;
|
|
69
69
|
}>, Schema.Struct<{
|
|
70
|
-
stage: Schema.Literal<
|
|
71
|
-
progress: Schema.Struct<{
|
|
72
|
-
done:
|
|
73
|
-
total:
|
|
70
|
+
readonly stage: Schema.Literal<"rehydrating">;
|
|
71
|
+
readonly progress: Schema.Struct<{
|
|
72
|
+
readonly done: Schema.Finite;
|
|
73
|
+
readonly total: Schema.Finite;
|
|
74
74
|
}>;
|
|
75
75
|
}>, Schema.Struct<{
|
|
76
|
-
stage: Schema.Literal<
|
|
77
|
-
progress: Schema.Struct<{
|
|
78
|
-
done:
|
|
79
|
-
total:
|
|
76
|
+
readonly stage: Schema.Literal<"syncing">;
|
|
77
|
+
readonly progress: Schema.Struct<{
|
|
78
|
+
readonly done: Schema.Finite;
|
|
79
|
+
readonly total: Schema.Finite;
|
|
80
80
|
}>;
|
|
81
81
|
}>, Schema.Struct<{
|
|
82
|
-
stage: Schema.Literal<
|
|
82
|
+
readonly stage: Schema.Literal<"done">;
|
|
83
83
|
}>, Schema.Struct<{
|
|
84
|
-
stage: Schema.Literal<
|
|
85
|
-
reason: Schema.
|
|
86
|
-
message:
|
|
84
|
+
readonly stage: Schema.Literal<"warning">;
|
|
85
|
+
readonly reason: Schema.Literals<readonly ["private-browsing", "storage-unavailable", "unknown"]>;
|
|
86
|
+
readonly message: Schema.String;
|
|
87
87
|
}>]>;
|
|
88
88
|
export type BootStatus = typeof BootStatus.Type;
|
|
89
|
-
/**
|
|
90
|
-
* Can be used in queries to refer to the current session id.
|
|
91
|
-
* Will be replaced with the actual session id at runtime
|
|
92
|
-
*
|
|
93
|
-
* In client document table:
|
|
94
|
-
* ```ts
|
|
95
|
-
* const uiState = State.SQLite.clientDocument({
|
|
96
|
-
* name: 'ui_state',
|
|
97
|
-
* schema: Schema.Struct({
|
|
98
|
-
* theme: Schema.Literal('dark', 'light', 'system'),
|
|
99
|
-
* user: Schema.String,
|
|
100
|
-
* showToolbar: Schema.Boolean,
|
|
101
|
-
* }),
|
|
102
|
-
* default: { value: defaultFrontendState, id: SessionIdSymbol },
|
|
103
|
-
* })
|
|
104
|
-
* ```
|
|
105
|
-
*
|
|
106
|
-
* Or in a client document query:
|
|
107
|
-
* ```ts
|
|
108
|
-
* const query$ = queryDb(tables.uiState.get(SessionIdSymbol))
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
export declare const SessionIdSymbol: unique symbol;
|
|
112
|
-
export type SessionIdSymbol = typeof SessionIdSymbol;
|
|
113
89
|
export type LockStatus = 'has-lock' | 'no-lock';
|
|
114
90
|
export type MigrationOptions = {
|
|
115
|
-
strategy: 'auto';
|
|
116
91
|
hooks?: Partial<MigrationHooks>;
|
|
117
92
|
logging?: {
|
|
118
93
|
excludeAffectedRows?: (sqlStmt: string) => boolean;
|
|
119
94
|
};
|
|
120
|
-
} | {
|
|
121
|
-
strategy: 'manual';
|
|
122
|
-
migrate: (oldDb: Uint8Array<ArrayBuffer>) => Uint8Array<ArrayBuffer> | Promise<Uint8Array<ArrayBuffer>> | Effect.Effect<Uint8Array<ArrayBuffer>, unknown>;
|
|
123
95
|
};
|
|
124
96
|
export type MigrationHooks = {
|
|
125
97
|
/** Runs on the empty in-memory database with no database schemas applied yet */
|
|
126
98
|
init: MigrationHook;
|
|
127
|
-
/** Runs
|
|
99
|
+
/** Runs after table schemas and singleton rows are created, but before rematerializing state from the eventlog */
|
|
128
100
|
pre: MigrationHook;
|
|
129
|
-
/** Runs after
|
|
101
|
+
/** Runs after rematerializing state from the eventlog */
|
|
130
102
|
post: MigrationHook;
|
|
131
103
|
};
|
|
132
104
|
export type MigrationHook = (db: SqliteDb) => void | Promise<void> | Effect.Effect<void, unknown>;
|
|
@@ -147,8 +119,8 @@ export interface AdapterArgs {
|
|
|
147
119
|
*
|
|
148
120
|
* @default undefined
|
|
149
121
|
*/
|
|
150
|
-
syncPayloadSchema: Schema.Schema
|
|
122
|
+
syncPayloadSchema: Schema.Decoder<Schema.Json> | undefined;
|
|
151
123
|
/** Encoded representation of the sync payload matching `syncPayloadSchema`. */
|
|
152
|
-
syncPayloadEncoded: Schema.
|
|
124
|
+
syncPayloadEncoded: Schema.Json | undefined;
|
|
153
125
|
}
|
|
154
126
|
//# sourceMappingURL=adapter-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-types.d.ts","sourceRoot":"","sources":["../src/adapter-types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,KAAK,EACV,MAAM,EACN,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACzF,OAAO,KAAK,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAE7D,OAAO,KAAK,8BAA8B,MAAM,qCAAqC,CAAA;AACrF,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AAEjC;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0FAA0F;IAC1F,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter-types.d.ts","sourceRoot":"","sources":["../src/adapter-types.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter-types.js
CHANGED
|
@@ -4,8 +4,8 @@ export * from "./defs.js";
|
|
|
4
4
|
export * from "./errors.js";
|
|
5
5
|
export * from "./sqlite-types.js";
|
|
6
6
|
export const BootStateProgress = Schema.Struct({
|
|
7
|
-
done: Schema.
|
|
8
|
-
total: Schema.
|
|
7
|
+
done: Schema.Finite,
|
|
8
|
+
total: Schema.Finite,
|
|
9
9
|
});
|
|
10
10
|
/**
|
|
11
11
|
* Describes known reasons why LiveStore boot may encounter storage issues.
|
|
@@ -15,7 +15,7 @@ export const BootStateProgress = Schema.Struct({
|
|
|
15
15
|
* - `storage-unavailable`: OPFS access denied for other reasons (permissions, quota)
|
|
16
16
|
* - `unknown`: Unexpected error during storage initialization
|
|
17
17
|
*/
|
|
18
|
-
export const BootWarningReason = Schema.
|
|
18
|
+
export const BootWarningReason = Schema.Literals(['private-browsing', 'storage-unavailable', 'unknown']);
|
|
19
19
|
/**
|
|
20
20
|
* Describes the storage mode the store is operating in.
|
|
21
21
|
*
|
|
@@ -23,38 +23,21 @@ export const BootWarningReason = Schema.Literal('private-browsing', 'storage-una
|
|
|
23
23
|
* - `persisted`: Data is persisted to disk (e.g., via OPFS)
|
|
24
24
|
* - `in-memory`: Data is only stored in memory and will be lost on page refresh
|
|
25
25
|
*/
|
|
26
|
-
export const StorageMode = Schema.
|
|
27
|
-
export const BootStatus = Schema.Union(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Schema.Struct({
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
* const uiState = State.SQLite.clientDocument({
|
|
44
|
-
* name: 'ui_state',
|
|
45
|
-
* schema: Schema.Struct({
|
|
46
|
-
* theme: Schema.Literal('dark', 'light', 'system'),
|
|
47
|
-
* user: Schema.String,
|
|
48
|
-
* showToolbar: Schema.Boolean,
|
|
49
|
-
* }),
|
|
50
|
-
* default: { value: defaultFrontendState, id: SessionIdSymbol },
|
|
51
|
-
* })
|
|
52
|
-
* ```
|
|
53
|
-
*
|
|
54
|
-
* Or in a client document query:
|
|
55
|
-
* ```ts
|
|
56
|
-
* const query$ = queryDb(tables.uiState.get(SessionIdSymbol))
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
export const SessionIdSymbol = Symbol.for('@livestore/session-id');
|
|
26
|
+
export const StorageMode = Schema.Literals(['persisted', 'in-memory']);
|
|
27
|
+
export const BootStatus = Schema.Union([
|
|
28
|
+
Schema.Struct({ stage: Schema.Literal('loading') }),
|
|
29
|
+
Schema.Struct({ stage: Schema.Literal('migrating'), progress: BootStateProgress }),
|
|
30
|
+
Schema.Struct({ stage: Schema.Literal('rehydrating'), progress: BootStateProgress }),
|
|
31
|
+
Schema.Struct({ stage: Schema.Literal('syncing'), progress: BootStateProgress }),
|
|
32
|
+
Schema.Struct({ stage: Schema.Literal('done') }),
|
|
33
|
+
/**
|
|
34
|
+
* Indicates a non-fatal issue occurred during boot that may degrade functionality.
|
|
35
|
+
* LiveStore continues running but without full capabilities (e.g., no persistence).
|
|
36
|
+
*/
|
|
37
|
+
Schema.Struct({
|
|
38
|
+
stage: Schema.Literal('warning'),
|
|
39
|
+
reason: BootWarningReason,
|
|
40
|
+
message: Schema.String,
|
|
41
|
+
}),
|
|
42
|
+
]).annotate({ title: 'BootStatus' });
|
|
60
43
|
//# sourceMappingURL=adapter-types.js.map
|