@livestore/common 0.4.0 → 0.5.0-dev.1
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 +8 -8
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +4 -4
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/adapter-types.d.ts +33 -57
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +24 -41
- package/dist/adapter-types.js.map +1 -1
- package/dist/bounded-collections.d.ts.map +1 -1
- package/dist/bounded-collections.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 +32 -44
- 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 +2 -1
- package/dist/devtools/devtools-compatibility.test.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +522 -334
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.js +80 -78
- 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 +6 -6
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +410 -348
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +105 -93
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/devtools/devtools-messages.js +3 -3
- 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 +12 -8
- 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 +19 -17
- 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 +22 -19
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +87 -18
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +548 -480
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/RejectedPushError.d.ts +72 -41
- package/dist/leader-thread/RejectedPushError.d.ts.map +1 -1
- package/dist/leader-thread/RejectedPushError.js +25 -6
- 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 +11 -10
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts +15 -5
- package/dist/leader-thread/eventlog.d.ts.map +1 -1
- package/dist/leader-thread/eventlog.js +19 -19
- 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 +36 -20
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +15 -5
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +62 -58
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.test.js +9 -9
- 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 +12 -8
- package/dist/leader-thread/materialize-event.js.map +1 -1
- package/dist/leader-thread/mod.js +9 -9
- package/dist/leader-thread/recreate-db.d.ts +5 -1
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +34 -59
- 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 +16 -21
- package/dist/leader-thread/stream-events.js.map +1 -1
- package/dist/leader-thread/types.d.ts +38 -73
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +10 -6
- 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 +2 -3
- package/dist/make-client-session.d.ts.map +1 -1
- package/dist/make-client-session.js +5 -5
- 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 +9 -37
- 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 +3 -1
- package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
- package/dist/rematerialize-from-eventlog.js +42 -33
- package/dist/rematerialize-from-eventlog.js.map +1 -1
- package/dist/schema/EventDef/define.d.ts +6 -6
- 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 +3 -3
- 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/EventDef/facts.d.ts.map +1 -1
- package/dist/schema/EventDef/materializer.d.ts +2 -2
- package/dist/schema/EventDef/materializer.d.ts.map +1 -1
- package/dist/schema/EventDef/mod.js +5 -5
- package/dist/schema/EventSequenceNumber/client.d.ts +12 -17
- package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -1
- package/dist/schema/EventSequenceNumber/client.js +20 -24
- 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/mod.js +2 -2
- package/dist/schema/EventSequenceNumber.test.js +6 -6
- package/dist/schema/EventSequenceNumber.test.js.map +1 -1
- package/dist/schema/LiveStoreEvent/client.d.ts +58 -187
- package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -1
- package/dist/schema/LiveStoreEvent/client.js +33 -30
- package/dist/schema/LiveStoreEvent/client.js.map +1 -1
- package/dist/schema/LiveStoreEvent/client.test.js +13 -4
- 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 +2 -2
- package/dist/schema/LiveStoreEvent/global.js.map +1 -1
- package/dist/schema/LiveStoreEvent/input.d.ts +6 -6
- 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/LiveStoreEvent/mod.js +4 -4
- package/dist/schema/events.js +1 -1
- package/dist/schema/mod.d.ts +1 -0
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +11 -10
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema.d.ts +1 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +6 -5
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/state/mod.js +2 -2
- package/dist/schema/state/sqlite/client-document-def.d.ts +13 -18
- package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.js +30 -27
- package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.test.js +53 -18
- 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 +73 -33
- package/dist/schema/state/sqlite/column-def.js.map +1 -1
- package/dist/schema/state/sqlite/column-def.test.js +176 -75
- package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
- package/dist/schema/state/sqlite/column-spec.js +1 -1
- package/dist/schema/state/sqlite/column-spec.js.map +1 -1
- package/dist/schema/state/sqlite/column-spec.test.js +4 -4
- package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.d.ts +3 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.js +5 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.d.ts +5 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.js +183 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.d.ts +2 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.js +142 -0
- package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +3 -8
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +1 -73
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts.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 +9 -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 +28 -17
- 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 +6 -4
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.d.ts +3 -0
- package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.js +6 -0
- package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/mod.js +2 -2
- 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 +11 -10
- 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 +22 -23
- package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.d.ts +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.js +18 -16
- package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.test.js +364 -598
- package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/mod.js +2 -2
- package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
- package/dist/schema/state/sqlite/schema-helpers.js +2 -2
- package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
- package/dist/schema/state/sqlite/schema-helpers.test.js +2 -2
- 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 +5 -5
- package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -1
- package/dist/schema/state/sqlite/system-tables/mod.js +2 -2
- package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +380 -115
- package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -1
- package/dist/schema/state/sqlite/system-tables/state-tables.js +47 -6
- package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.d.ts +17 -20
- package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/table-def.js +72 -6
- package/dist/schema/state/sqlite/table-def.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.test.js +207 -37
- 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 +3 -2
- package/dist/schema/unknown-events.js.map +1 -1
- package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +28 -6
- package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -1
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/common.js +2 -2
- package/dist/schema-management/migrations.d.ts +4 -4
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +9 -9
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/schema-management/validate-schema.d.ts.map +1 -1
- package/dist/schema-management/validate-schema.js +1 -1
- 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/index.js +3 -3
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js +11 -13
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.js +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 +23 -3
- package/dist/sqlite-db-helper.d.ts.map +1 -1
- package/dist/sqlite-db-helper.js +39 -4
- 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 +41 -19
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +200 -70
- 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 +3 -3
- package/dist/sync/errors.js.map +1 -1
- package/dist/sync/index.js +6 -6
- 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 +58 -37
- 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/compact-events.d.ts.map +1 -1
- package/dist/sync/next/compact-events.js +3 -3
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/facts.js +1 -1
- package/dist/sync/next/history-dag-common.d.ts +5 -1
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +53 -32
- 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 +5 -4
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/mod.js +5 -5
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +2 -2
- package/dist/sync/next/test/compact-events.calculator.test.js +6 -6
- package/dist/sync/next/test/compact-events.test.js +4 -4
- package/dist/sync/next/test/event-fixtures.d.ts +8 -8
- package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
- package/dist/sync/next/test/event-fixtures.js +6 -6
- 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/next/test/mod.js +1 -1
- package/dist/sync/sync-backend-kv.d.ts.map +1 -1
- package/dist/sync/sync-backend-kv.js +5 -3
- 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 +10 -6
- 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/sync.js +2 -2
- package/dist/sync/syncstate.d.ts +100 -176
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +36 -39
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +103 -64
- 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/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js +2 -2
- package/dist/testing/event-factory.d.ts.map +1 -1
- package/dist/testing/event-factory.js +2 -2
- package/dist/testing/event-factory.js.map +1 -1
- package/dist/testing/mod.js +1 -1
- package/dist/util.d.ts +11 -4
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +20 -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 +40 -57
- 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 +28 -61
- package/src/debug-info.ts +53 -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 +777 -650
- package/src/leader-thread/RejectedPushError.ts +40 -27
- package/src/leader-thread/connection.ts +12 -8
- package/src/leader-thread/eventlog.ts +20 -12
- package/src/leader-thread/leader-worker-devtools.ts +38 -20
- package/src/leader-thread/make-leader-thread-layer.test.ts +7 -7
- package/src/leader-thread/make-leader-thread-layer.ts +100 -71
- package/src/leader-thread/materialize-event.ts +13 -8
- package/src/leader-thread/recreate-db.ts +41 -75
- package/src/leader-thread/shutdown-channel.ts +3 -14
- package/src/leader-thread/stream-events.ts +102 -101
- package/src/leader-thread/types.ts +29 -62
- package/src/logging.ts +5 -52
- package/src/make-client-session.ts +6 -6
- package/src/materializer-helper.ts +7 -36
- package/src/otel.ts +5 -14
- package/src/rematerialize-from-eventlog.ts +116 -98
- 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 +20 -24
- 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 +4 -3
- package/src/schema/state/sqlite/client-document-def.test.ts +55 -20
- 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 +213 -77
- package/src/schema/state/sqlite/column-def.ts +87 -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/fingerprint-digest.ts +6 -0
- package/src/schema/state/sqlite/db-schema/ast/fingerprint.test.ts +209 -0
- package/src/schema/state/sqlite/db-schema/ast/fingerprint.ts +225 -0
- package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +2 -81
- 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 +26 -31
- package/src/schema/state/sqlite/db-schema/dsl/mod.ts +35 -21
- package/src/schema/state/sqlite/db-schema/has-json-string-encoding.ts +9 -0
- package/src/schema/state/sqlite/mod.ts +4 -5
- 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 +24 -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 +54 -3
- package/src/schema/state/sqlite/table-def.test.ts +270 -66
- package/src/schema/state/sqlite/table-def.ts +112 -45
- package/src/schema/unknown-events.ts +3 -2
- package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +35 -4
- package/src/schema-management/migrations.ts +7 -6
- package/src/session-id-symbol.ts +59 -0
- package/src/sql-queries/sql-queries.ts +9 -13
- 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 +19 -9
- package/src/version.ts +1 -2
- package/dist/schema/state/sqlite/db-schema/hash.d.ts +0 -2
- package/dist/schema/state/sqlite/db-schema/hash.d.ts.map +0 -1
- package/dist/schema/state/sqlite/db-schema/hash.js +0 -15
- package/dist/schema/state/sqlite/db-schema/hash.js.map +0 -1
- 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/schema/state/sqlite/db-schema/hash.ts +0 -13
- 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,UACN,8BAA8B,YAC3B;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,MAAO,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,gBAAiB,OAAO,YAqHxC,CAAA;AAED,eAAO,MAAM,KAAK,YAAa,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,gBAAiB,OAAO,YAsCxC,CAAA;AAED,eAAO,MAAM,KAAK,YAAa,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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAGhE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,KAAK,mBAAmB,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEhE,MAAM,CAAC,MAAM,MAAM,GAAG,8BAAuC,CAAA;AAG7D,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAa3B,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,OAAO,EAAsB,CAAC,6BAA6B,CAAC;CAAG;AAMtG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,OAAO,EAAW,EAAE,EAAE;IAC3C,OAAO,SAAS,CAAC,EAAE,CAAC;QAClB,CAAC,MAAM,CAAC,EAAE,MAAM;QAChB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;gBACxC,SAAS,EAAE,YAAY,CAAC,qBAAqB;gBAC7C,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO;gBAC1D,MAAM,EAAE;oBACN,EAAE,EAAE,iBAAiB;oBACrB,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,sBAAsB,EAAE,IAAI,CAAC,gBAAgB;iBAC9C;gBACD,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;aAC7B,CAAC,CAAA;YAEF,OAAO,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QAChD,CAAC;QACD,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YACvB,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC;gBAC3C,SAAS,EAAE,YAAY,CAAC,qBAAqB;gBAC7C,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO;gBAC1D,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE;gBAChC,KAAK,EAAE,CAAC;aACT,CAAC,CAAA;YACF,OAAO,SAAS,CAAgC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAClF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CACnB,GAAG,KAAK,SAAS;gBACf,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI;gBACjC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;oBACxC,MAAM,EAAE,GAAG,CAAC,YAAY;oBACxB,MAAM,EAAE,GAAG,CAAC,YAAY;oBACxB,gBAAgB,EAAE,GAAG,CAAC,sBAAsB;iBAC7C,CAAC,CACP,CACF,CAAA;QACH,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CACpC,SAAS,EACT,SAAS,CAAC,EAAE,CAAC;IACX,CAAC,MAAM,CAAC,EAAE,MAAM;IAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;IACtB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;CACrD,CAAC,CACH,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 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,MAAO,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
|
}, {
|
|
@@ -15,10 +15,10 @@ export declare const UiState: State.SQLite.ClientDocumentTableDef<"UiState", {
|
|
|
15
15
|
}>;
|
|
16
16
|
export declare const appConfig: State.SQLite.ClientDocumentTableDef<"AppConfig", {
|
|
17
17
|
readonly fontSize: number;
|
|
18
|
-
readonly theme: "
|
|
18
|
+
readonly theme: "dark" | "light";
|
|
19
19
|
}, {
|
|
20
20
|
readonly fontSize: number;
|
|
21
|
-
readonly theme: "
|
|
21
|
+
readonly theme: "dark" | "light";
|
|
22
22
|
}, {
|
|
23
23
|
partialSet: true;
|
|
24
24
|
default: {
|
|
@@ -31,10 +31,10 @@ export declare const appConfig: State.SQLite.ClientDocumentTableDef<"AppConfig",
|
|
|
31
31
|
}>;
|
|
32
32
|
export declare const appConfig2: State.SQLite.ClientDocumentTableDef<"AppConfig", {
|
|
33
33
|
readonly fontSize: number;
|
|
34
|
-
readonly theme: "
|
|
34
|
+
readonly theme: "dark" | "light";
|
|
35
35
|
}, {
|
|
36
36
|
readonly fontSize: number;
|
|
37
|
-
readonly theme: "
|
|
37
|
+
readonly theme: "dark" | "light";
|
|
38
38
|
}, {
|
|
39
39
|
partialSet: true;
|
|
40
40
|
default: {
|
|
@@ -61,10 +61,10 @@ export declare const tables: {
|
|
|
61
61
|
}>;
|
|
62
62
|
appConfig: State.SQLite.ClientDocumentTableDef<"AppConfig", {
|
|
63
63
|
readonly fontSize: number;
|
|
64
|
-
readonly theme: "
|
|
64
|
+
readonly theme: "dark" | "light";
|
|
65
65
|
}, {
|
|
66
66
|
readonly fontSize: number;
|
|
67
|
-
readonly theme: "
|
|
67
|
+
readonly theme: "dark" | "light";
|
|
68
68
|
}, {
|
|
69
69
|
partialSet: true;
|
|
70
70
|
default: {
|
|
@@ -92,7 +92,7 @@ export declare const schema: import("../schema/schema.ts").FromInputSchema.Deriv
|
|
|
92
92
|
}>;
|
|
93
93
|
appConfigSet: State.SQLite.ClientDocumentTableDef.SetEventDefLike<"AppConfig", {
|
|
94
94
|
readonly fontSize: number;
|
|
95
|
-
readonly theme: "
|
|
95
|
+
readonly theme: "dark" | "light";
|
|
96
96
|
}, {
|
|
97
97
|
partialSet: true;
|
|
98
98
|
default: {
|
|
@@ -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 {
|
|
3
|
-
import {
|
|
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>;
|
|
@@ -137,6 +109,10 @@ export type Adapter = (args: AdapterArgs) => Effect.Effect<ClientSession, Unknow
|
|
|
137
109
|
export interface AdapterArgs {
|
|
138
110
|
schema: LiveStoreSchema;
|
|
139
111
|
storeId: string;
|
|
112
|
+
/** Runtime parameters resolved by `createStore` before the adapter is invoked. */
|
|
113
|
+
params: {
|
|
114
|
+
stateRebuildBatchSize: number;
|
|
115
|
+
};
|
|
140
116
|
devtoolsEnabled: boolean;
|
|
141
117
|
debugInstanceId: string;
|
|
142
118
|
bootStatusQueue: Queue.Queue<BootStatus>;
|
|
@@ -147,8 +123,8 @@ export interface AdapterArgs {
|
|
|
147
123
|
*
|
|
148
124
|
* @default undefined
|
|
149
125
|
*/
|
|
150
|
-
syncPayloadSchema: Schema.Schema
|
|
126
|
+
syncPayloadSchema: Schema.Decoder<Schema.Json> | undefined;
|
|
151
127
|
/** Encoded representation of the sync payload matching `syncPayloadSchema`. */
|
|
152
|
-
syncPayloadEncoded: Schema.
|
|
128
|
+
syncPayloadEncoded: Schema.Json | undefined;
|
|
153
129
|
}
|
|
154
130
|
//# 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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"}
|