@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-backend-kv.js","sourceRoot":"","sources":["../../src/sync/sync-backend-kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAA;IAE7C,MAAM,YAAY,GAAG,WAAW,CAAA;IAChC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"sync-backend-kv.js","sourceRoot":"","sources":["../../src/sync/sync-backend-kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAA;IAE7C,MAAM,YAAY,GAAG,WAAW,CAAA;IAChC,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;KAClG,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9D,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7C,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAEzC,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO;KAChC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -7,13 +7,13 @@ export * from './sync-backend-kv.ts';
|
|
|
7
7
|
/**
|
|
8
8
|
* Those arguments can be used to implement multi-tenancy etc and are passed in from the store.
|
|
9
9
|
*/
|
|
10
|
-
export type MakeBackendArgs<TPayload = Schema.
|
|
10
|
+
export type MakeBackendArgs<TPayload = Schema.Json> = {
|
|
11
11
|
storeId: string;
|
|
12
12
|
clientId: string;
|
|
13
13
|
payload: TPayload | undefined;
|
|
14
14
|
};
|
|
15
|
-
export type SyncBackendConstructor<TSyncMetadata = Schema.
|
|
16
|
-
export type SyncBackend<TSyncMetadata = Schema.
|
|
15
|
+
export type SyncBackendConstructor<TSyncMetadata = Schema.Json, TPayload = Schema.Json> = (args: MakeBackendArgs<TPayload>) => Effect.Effect<SyncBackend<TSyncMetadata>, UnknownError, Scope.Scope | HttpClient.HttpClient | KeyValueStore.KeyValueStore>;
|
|
16
|
+
export type SyncBackend<TSyncMetadata = Schema.Json> = {
|
|
17
17
|
/**
|
|
18
18
|
* Can be implemented to prepare a connection to the sync backend to speed up the first pull/push.
|
|
19
19
|
*/
|
|
@@ -37,7 +37,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
|
|
|
37
37
|
* - sequence numbers must be in ascending order
|
|
38
38
|
* */
|
|
39
39
|
batch: ReadonlyArray<LiveStoreEvent.Global.Encoded>) => Effect.Effect<void, IsOfflineError | BackendIdMismatchError | UnknownError | ServerAheadError>;
|
|
40
|
-
ping: Effect.Effect<void, IsOfflineError | UnknownError | Cause.
|
|
40
|
+
ping: Effect.Effect<void, IsOfflineError | UnknownError | Cause.TimeoutError>;
|
|
41
41
|
isConnected: SubscriptionRef.SubscriptionRef<boolean>;
|
|
42
42
|
/**
|
|
43
43
|
* Metadata describing the sync backend. (Currently only used by devtools.)
|
|
@@ -45,7 +45,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
|
|
|
45
45
|
metadata: {
|
|
46
46
|
name: string;
|
|
47
47
|
description: string;
|
|
48
|
-
} & Record<string, Schema.
|
|
48
|
+
} & Record<string, Schema.Json>;
|
|
49
49
|
/** Information about the sync backend capabilities. */
|
|
50
50
|
supports: {
|
|
51
51
|
/**
|
|
@@ -64,13 +64,13 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
|
|
|
64
64
|
*/
|
|
65
65
|
export declare const NetworkStatus: Schema.Struct<{
|
|
66
66
|
/** True when the upstream sync backend is reachable and responding to health checks. */
|
|
67
|
-
isConnected:
|
|
67
|
+
readonly isConnected: Schema.Boolean;
|
|
68
68
|
/** Unix epoch timestamp (ms) of the latest connectivity state transition. */
|
|
69
|
-
timestampMs:
|
|
69
|
+
readonly timestampMs: Schema.Finite;
|
|
70
70
|
/** Devtools specific metadata describing simulator overrides. */
|
|
71
|
-
devtools: Schema.Struct<{
|
|
71
|
+
readonly devtools: Schema.Struct<{
|
|
72
72
|
/** Indicates whether the devtools latch forced the client into an offline state. */
|
|
73
|
-
latchClosed:
|
|
73
|
+
readonly latchClosed: Schema.Boolean;
|
|
74
74
|
}>;
|
|
75
75
|
}>;
|
|
76
76
|
export type NetworkStatus = typeof NetworkStatus.Type;
|
|
@@ -79,26 +79,26 @@ export type NetworkStatus = typeof NetworkStatus.Type;
|
|
|
79
79
|
* Performs lightweight structural checks on the object shape.
|
|
80
80
|
*/
|
|
81
81
|
export declare const isSyncBackend: (value: unknown) => value is SyncBackend<any>;
|
|
82
|
-
export declare const PullResPageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
|
|
83
|
-
remaining:
|
|
82
|
+
export declare const PullResPageInfo: Schema.Union<readonly [Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
|
|
83
|
+
readonly remaining: Schema.Finite;
|
|
84
84
|
}>, Schema.TaggedStruct<"NoMore", {}>]>;
|
|
85
85
|
export type PullResPageInfo = typeof PullResPageInfo.Type;
|
|
86
86
|
export declare const pageInfoNoMore: PullResPageInfo;
|
|
87
87
|
export declare const pageInfoMoreUnknown: PullResPageInfo;
|
|
88
88
|
export declare const pageInfoMoreKnown: (remaining: number) => PullResPageInfo;
|
|
89
|
-
export declare const pullResItemEmpty: <TSyncMetadata = Schema.
|
|
90
|
-
export interface PullResItem<TSyncMetadata = Schema.
|
|
89
|
+
export declare const pullResItemEmpty: <TSyncMetadata = Schema.Json>() => PullResItem<TSyncMetadata>;
|
|
90
|
+
export interface PullResItem<TSyncMetadata = Schema.Json> {
|
|
91
91
|
batch: ReadonlyArray<{
|
|
92
92
|
eventEncoded: LiveStoreEvent.Global.Encoded;
|
|
93
93
|
metadata: Option.Option<TSyncMetadata>;
|
|
94
94
|
}>;
|
|
95
95
|
pageInfo: PullResPageInfo;
|
|
96
96
|
}
|
|
97
|
-
export declare const of: <TSyncMetadata = Schema.
|
|
97
|
+
export declare const of: <TSyncMetadata = Schema.Json>(obj: SyncBackend<TSyncMetadata>) => SyncBackend<TSyncMetadata>;
|
|
98
98
|
/**
|
|
99
99
|
* Useful to continue pulling from the last event in the batch.
|
|
100
100
|
*/
|
|
101
|
-
export declare const cursorFromPullResItem: <TSyncMetadata = Schema.
|
|
101
|
+
export declare const cursorFromPullResItem: <TSyncMetadata = Schema.Json>(item: PullResItem<TSyncMetadata>) => Option.Option<{
|
|
102
102
|
eventSequenceNumber: EventSequenceNumber.Global.Type;
|
|
103
103
|
metadata: Option.Option<TSyncMetadata>;
|
|
104
104
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-backend.d.ts","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,MAAM,EACN,MAAM,EACN,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,KAAK,cAAc,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE3F,cAAc,sBAAsB,CAAA;AAEpC;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-backend.d.ts","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Option, Schema, } from '@livestore/utils/effect';
|
|
2
|
-
export * from
|
|
2
|
+
export * from './sync-backend-kv.js';
|
|
3
3
|
/**
|
|
4
4
|
* Connectivity metadata emitted by sync backends.
|
|
5
5
|
*/
|
|
@@ -7,13 +7,13 @@ export const NetworkStatus = Schema.Struct({
|
|
|
7
7
|
/** True when the upstream sync backend is reachable and responding to health checks. */
|
|
8
8
|
isConnected: Schema.Boolean,
|
|
9
9
|
/** Unix epoch timestamp (ms) of the latest connectivity state transition. */
|
|
10
|
-
timestampMs: Schema.
|
|
10
|
+
timestampMs: Schema.Finite,
|
|
11
11
|
/** Devtools specific metadata describing simulator overrides. */
|
|
12
12
|
devtools: Schema.Struct({
|
|
13
13
|
/** Indicates whether the devtools latch forced the client into an offline state. */
|
|
14
14
|
latchClosed: Schema.Boolean,
|
|
15
15
|
}),
|
|
16
|
-
}).
|
|
16
|
+
}).annotate({ title: 'NetworkStatus' });
|
|
17
17
|
/**
|
|
18
18
|
* Runtime type guard for SyncBackend objects.
|
|
19
19
|
* Performs lightweight structural checks on the object shape.
|
|
@@ -37,9 +37,13 @@ export const isSyncBackend = (value) => {
|
|
|
37
37
|
const hasIsConnected = typeof v.isConnected === 'object' && v.isConnected !== null;
|
|
38
38
|
return hasCoreFns && hasSupports && hasMetadata && hasIsConnected;
|
|
39
39
|
};
|
|
40
|
-
export const PullResPageInfo = Schema.Union(
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
export const PullResPageInfo = Schema.Union([
|
|
41
|
+
Schema.TaggedStruct('MoreUnknown', {}),
|
|
42
|
+
Schema.TaggedStruct('MoreKnown', {
|
|
43
|
+
remaining: Schema.Finite,
|
|
44
|
+
}),
|
|
45
|
+
Schema.TaggedStruct('NoMore', {}),
|
|
46
|
+
]);
|
|
43
47
|
export const pageInfoNoMore = { _tag: 'NoMore' };
|
|
44
48
|
export const pageInfoMoreUnknown = { _tag: 'MoreUnknown' };
|
|
45
49
|
export const pageInfoMoreKnown = (remaining) => ({ _tag: 'MoreKnown', remaining });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-backend.js","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EACN,MAAM,GAIP,MAAM,yBAAyB,CAAA;AAOhC,cAAc,sBAAsB,CAAA;AA6EpC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC,OAAO;IAC3B,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,oFAAoF;QACpF,WAAW,EAAE,MAAM,CAAC,OAAO;KAC5B,CAAC;CACH,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-backend.js","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/sync.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export * as SyncBackend from './sync-backend.ts';
|
|
|
3
3
|
import type { Schema } from '@livestore/utils/effect';
|
|
4
4
|
import type { InitialSyncOptions } from '../leader-thread/types.ts';
|
|
5
5
|
import type { SyncBackendConstructor } from './sync-backend.ts';
|
|
6
|
-
export type SyncOptions<TPayload = Schema.
|
|
6
|
+
export type SyncOptions<TPayload = Schema.Json> = {
|
|
7
7
|
backend?: SyncBackendConstructor<any, TPayload>;
|
|
8
8
|
/** @default { _tag: 'Skip' } */
|
|
9
9
|
initialSyncOptions?: InitialSyncOptions;
|
package/dist/sync/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,MAAM,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,MAAM,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI;IAChD,OAAO,CAAC,EAAE,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC/C,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC;;;;;;;;SAQK;IACL,WAAW,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;IACnC;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAA;IACrD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
|
package/dist/sync/sync.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * as SyncBackend from
|
|
1
|
+
export * from './errors.js';
|
|
2
|
+
export * as SyncBackend from './sync-backend.js';
|
|
3
3
|
//# sourceMappingURL=sync.js.map
|
package/dist/sync/syncstate.d.ts
CHANGED
|
@@ -1,57 +1,25 @@
|
|
|
1
1
|
import { Effect, Schema } from '@livestore/utils/effect';
|
|
2
2
|
import * as EventSequenceNumber from '../schema/EventSequenceNumber/mod.ts';
|
|
3
3
|
import * as LiveStoreEvent from '../schema/LiveStoreEvent/mod.ts';
|
|
4
|
-
declare const SyncState_base: Schema.Class<SyncState, {
|
|
5
|
-
pending: Schema
|
|
4
|
+
declare const SyncState_base: Schema.Class<SyncState, Schema.Struct<{
|
|
5
|
+
readonly pending: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
6
6
|
/** What this node expects the next upstream node to have as its own local head */
|
|
7
|
-
upstreamHead: Schema.Struct<{
|
|
8
|
-
global: Schema.
|
|
9
|
-
client: Schema.
|
|
10
|
-
rebaseGeneration:
|
|
7
|
+
readonly upstreamHead: Schema.Struct<{
|
|
8
|
+
readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
|
|
9
|
+
readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
|
|
10
|
+
readonly rebaseGeneration: Schema.Int;
|
|
11
11
|
}> & {
|
|
12
|
-
make
|
|
12
|
+
make(seqNum: EventSequenceNumber.Client.CompositeInput): EventSequenceNumber.Client.Composite;
|
|
13
13
|
};
|
|
14
14
|
/** Equivalent to `pending.at(-1)?.id` if there are pending events */
|
|
15
|
-
localHead: Schema.Struct<{
|
|
16
|
-
global: Schema.
|
|
17
|
-
client: Schema.
|
|
18
|
-
rebaseGeneration:
|
|
15
|
+
readonly localHead: Schema.Struct<{
|
|
16
|
+
readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
|
|
17
|
+
readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
|
|
18
|
+
readonly rebaseGeneration: Schema.Int;
|
|
19
19
|
}> & {
|
|
20
|
-
make
|
|
20
|
+
make(seqNum: EventSequenceNumber.Client.CompositeInput): EventSequenceNumber.Client.Composite;
|
|
21
21
|
};
|
|
22
|
-
}
|
|
23
|
-
pending: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
24
|
-
/** What this node expects the next upstream node to have as its own local head */
|
|
25
|
-
upstreamHead: Schema.Struct<{
|
|
26
|
-
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
27
|
-
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
|
|
28
|
-
rebaseGeneration: typeof Schema.Int;
|
|
29
|
-
}> & {
|
|
30
|
-
make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
|
|
31
|
-
};
|
|
32
|
-
/** Equivalent to `pending.at(-1)?.id` if there are pending events */
|
|
33
|
-
localHead: Schema.Struct<{
|
|
34
|
-
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
35
|
-
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
|
|
36
|
-
rebaseGeneration: typeof Schema.Int;
|
|
37
|
-
}> & {
|
|
38
|
-
make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
|
|
39
|
-
};
|
|
40
|
-
}>, never, {
|
|
41
|
-
readonly upstreamHead: {
|
|
42
|
-
readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
|
|
43
|
-
readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
|
|
44
|
-
readonly rebaseGeneration: number;
|
|
45
|
-
};
|
|
46
|
-
} & {
|
|
47
|
-
readonly localHead: {
|
|
48
|
-
readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
|
|
49
|
-
readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
|
|
50
|
-
readonly rebaseGeneration: number;
|
|
51
|
-
};
|
|
52
|
-
} & {
|
|
53
|
-
readonly pending: readonly LiveStoreEvent.Client.EncodedWithMeta[];
|
|
54
|
-
}, {}, {}>;
|
|
22
|
+
}>, {}>;
|
|
55
23
|
/**
|
|
56
24
|
* SyncState represents the current sync state of a sync node relative to an upstream node.
|
|
57
25
|
* Events flow from local to upstream, with each state maintaining its own event head.
|
|
@@ -92,172 +60,128 @@ declare const SyncState_base: Schema.Class<SyncState, {
|
|
|
92
60
|
export declare class SyncState extends SyncState_base {
|
|
93
61
|
toJSON: () => any;
|
|
94
62
|
}
|
|
95
|
-
declare const PayloadUpstreamRebase_base: Schema.TaggedStruct<"upstream-rebase", {
|
|
96
|
-
/** Events which need to be rolled back */
|
|
97
|
-
rollbackEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
98
|
-
/** Events which need to be applied after the rollback (already rebased by the upstream node) */
|
|
99
|
-
newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
100
|
-
}>;
|
|
101
63
|
/**
|
|
102
64
|
* This payload propagates a rebase from the upstream node
|
|
103
65
|
*/
|
|
104
|
-
export declare
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
66
|
+
export declare const PayloadUpstreamRebase: Schema.TaggedStruct<"upstream-rebase", {
|
|
67
|
+
/** Events which need to be rolled back */
|
|
68
|
+
readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
69
|
+
/** Events which need to be applied after the rollback (already rebased by the upstream node) */
|
|
70
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
108
71
|
}>;
|
|
109
|
-
export declare
|
|
110
|
-
|
|
111
|
-
declare const PayloadLocalPush_base: Schema.TaggedStruct<"local-push", {
|
|
112
|
-
newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
72
|
+
export declare const PayloadUpstreamAdvance: Schema.TaggedStruct<"upstream-advance", {
|
|
73
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
113
74
|
}>;
|
|
114
|
-
export declare
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
export declare
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
readonly
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
readonly
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
75
|
+
export declare const PayloadLocalPush: Schema.TaggedStruct<"local-push", {
|
|
76
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
77
|
+
}>;
|
|
78
|
+
export declare const Payload: Schema.Union<readonly [Schema.TaggedStruct<"upstream-rebase", {
|
|
79
|
+
/** Events which need to be rolled back */
|
|
80
|
+
readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
81
|
+
/** Events which need to be applied after the rollback (already rebased by the upstream node) */
|
|
82
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
83
|
+
}>, Schema.TaggedStruct<"upstream-advance", {
|
|
84
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
85
|
+
}>, Schema.TaggedStruct<"local-push", {
|
|
86
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
87
|
+
}>]>;
|
|
88
|
+
export declare const PayloadUpstream: Schema.Union<readonly [Schema.TaggedStruct<"upstream-rebase", {
|
|
89
|
+
/** Events which need to be rolled back */
|
|
90
|
+
readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
91
|
+
/** Events which need to be applied after the rollback (already rebased by the upstream node) */
|
|
92
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
93
|
+
}>, Schema.TaggedStruct<"upstream-advance", {
|
|
94
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
95
|
+
}>]>;
|
|
96
|
+
declare const MergeContext_base: Schema.Class<MergeContext, Schema.Struct<{
|
|
97
|
+
readonly payload: Schema.Union<readonly [Schema.TaggedStruct<"upstream-rebase", {
|
|
98
|
+
/** Events which need to be rolled back */
|
|
99
|
+
readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
100
|
+
/** Events which need to be applied after the rollback (already rebased by the upstream node) */
|
|
101
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
102
|
+
}>, Schema.TaggedStruct<"upstream-advance", {
|
|
103
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
104
|
+
}>, Schema.TaggedStruct<"local-push", {
|
|
105
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
106
|
+
}>]>;
|
|
107
|
+
readonly syncState: typeof SyncState;
|
|
108
|
+
}>, {}>;
|
|
143
109
|
/** Only used for debugging purposes */
|
|
144
110
|
export declare class MergeContext extends MergeContext_base {
|
|
145
111
|
toJSON: () => any;
|
|
146
112
|
}
|
|
147
|
-
declare const MergeResultAdvance_base: Schema.Class<MergeResultAdvance, {
|
|
148
|
-
_tag: Schema.Literal<
|
|
149
|
-
newSyncState: typeof SyncState;
|
|
150
|
-
newEvents: Schema
|
|
113
|
+
declare const MergeResultAdvance_base: Schema.Class<MergeResultAdvance, Schema.Struct<{
|
|
114
|
+
readonly _tag: Schema.Literal<"advance">;
|
|
115
|
+
readonly newSyncState: typeof SyncState;
|
|
116
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
151
117
|
/** Events which were previously pending but are now confirmed */
|
|
152
|
-
confirmedEvents: Schema
|
|
153
|
-
mergeContext: typeof MergeContext;
|
|
154
|
-
}
|
|
155
|
-
_tag: Schema.Literal<["advance"]>;
|
|
156
|
-
newSyncState: typeof SyncState;
|
|
157
|
-
newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
158
|
-
/** Events which were previously pending but are now confirmed */
|
|
159
|
-
confirmedEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
160
|
-
mergeContext: typeof MergeContext;
|
|
161
|
-
}>, never, {
|
|
162
|
-
readonly _tag: "advance";
|
|
163
|
-
} & {
|
|
164
|
-
readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
|
|
165
|
-
} & {
|
|
166
|
-
readonly newSyncState: SyncState;
|
|
167
|
-
} & {
|
|
168
|
-
readonly mergeContext: MergeContext;
|
|
169
|
-
} & {
|
|
170
|
-
readonly confirmedEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
|
|
171
|
-
}, {}, {}>;
|
|
118
|
+
readonly confirmedEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
119
|
+
readonly mergeContext: typeof MergeContext;
|
|
120
|
+
}>, {}>;
|
|
172
121
|
export declare class MergeResultAdvance extends MergeResultAdvance_base {
|
|
173
122
|
toJSON: () => any;
|
|
174
123
|
}
|
|
175
|
-
declare const MergeResultRebase_base: Schema.Class<MergeResultRebase, {
|
|
176
|
-
_tag: Schema.Literal<
|
|
177
|
-
newSyncState: typeof SyncState;
|
|
178
|
-
newEvents: Schema
|
|
179
|
-
/** Events which need to be rolled back */
|
|
180
|
-
rollbackEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
181
|
-
mergeContext: typeof MergeContext;
|
|
182
|
-
}, Schema.Struct.Encoded<{
|
|
183
|
-
_tag: Schema.Literal<["rebase"]>;
|
|
184
|
-
newSyncState: typeof SyncState;
|
|
185
|
-
newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
124
|
+
declare const MergeResultRebase_base: Schema.Class<MergeResultRebase, Schema.Struct<{
|
|
125
|
+
readonly _tag: Schema.Literal<"rebase">;
|
|
126
|
+
readonly newSyncState: typeof SyncState;
|
|
127
|
+
readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
186
128
|
/** Events which need to be rolled back */
|
|
187
|
-
rollbackEvents: Schema
|
|
188
|
-
mergeContext: typeof MergeContext;
|
|
189
|
-
}>,
|
|
190
|
-
readonly _tag: "rebase";
|
|
191
|
-
} & {
|
|
192
|
-
readonly rollbackEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
|
|
193
|
-
} & {
|
|
194
|
-
readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
|
|
195
|
-
} & {
|
|
196
|
-
readonly newSyncState: SyncState;
|
|
197
|
-
} & {
|
|
198
|
-
readonly mergeContext: MergeContext;
|
|
199
|
-
}, {}, {}>;
|
|
129
|
+
readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
|
|
130
|
+
readonly mergeContext: typeof MergeContext;
|
|
131
|
+
}>, {}>;
|
|
200
132
|
export declare class MergeResultRebase extends MergeResultRebase_base {
|
|
201
133
|
toJSON: () => any;
|
|
202
134
|
}
|
|
203
|
-
declare const MergeResultReject_base: Schema.Class<MergeResultReject, {
|
|
204
|
-
_tag: Schema.Literal<
|
|
135
|
+
declare const MergeResultReject_base: Schema.Class<MergeResultReject, Schema.Struct<{
|
|
136
|
+
readonly _tag: Schema.Literal<"reject">;
|
|
205
137
|
/** The minimum id that the new events must have */
|
|
206
|
-
expectedMinimumId: Schema.Struct<{
|
|
207
|
-
global: Schema.
|
|
208
|
-
client: Schema.
|
|
209
|
-
rebaseGeneration:
|
|
138
|
+
readonly expectedMinimumId: Schema.Struct<{
|
|
139
|
+
readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
|
|
140
|
+
readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
|
|
141
|
+
readonly rebaseGeneration: Schema.Int;
|
|
210
142
|
}> & {
|
|
211
|
-
make
|
|
143
|
+
make(seqNum: EventSequenceNumber.Client.CompositeInput): EventSequenceNumber.Client.Composite;
|
|
212
144
|
};
|
|
213
|
-
mergeContext: typeof MergeContext;
|
|
214
|
-
}
|
|
215
|
-
_tag: Schema.Literal<["reject"]>;
|
|
216
|
-
/** The minimum id that the new events must have */
|
|
217
|
-
expectedMinimumId: Schema.Struct<{
|
|
218
|
-
global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
219
|
-
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
|
|
220
|
-
rebaseGeneration: typeof Schema.Int;
|
|
221
|
-
}> & {
|
|
222
|
-
make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
|
|
223
|
-
};
|
|
224
|
-
mergeContext: typeof MergeContext;
|
|
225
|
-
}>, never, {
|
|
226
|
-
readonly _tag: "reject";
|
|
227
|
-
} & {
|
|
228
|
-
readonly mergeContext: MergeContext;
|
|
229
|
-
} & {
|
|
230
|
-
readonly expectedMinimumId: {
|
|
231
|
-
readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
|
|
232
|
-
readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
|
|
233
|
-
readonly rebaseGeneration: number;
|
|
234
|
-
};
|
|
235
|
-
}, {}, {}>;
|
|
145
|
+
readonly mergeContext: typeof MergeContext;
|
|
146
|
+
}>, {}>;
|
|
236
147
|
export declare class MergeResultReject extends MergeResultReject_base {
|
|
237
148
|
toJSON: () => any;
|
|
238
149
|
}
|
|
239
|
-
declare const
|
|
240
|
-
export declare
|
|
241
|
-
}
|
|
242
|
-
export declare const payloadFromMergeResult: (mergeResult: typeof MergeResultAdvance.Type | typeof MergeResultRebase.Type) => typeof PayloadUpstream.Type;
|
|
150
|
+
export declare const MergeResult: Schema.Union<readonly [typeof MergeResultAdvance, typeof MergeResultRebase, typeof MergeResultReject]>;
|
|
151
|
+
export declare const payloadFromMergeResult: (mergeResult: MergeResultAdvance | MergeResultRebase) => typeof PayloadUpstream.Type;
|
|
243
152
|
export declare const merge: (args_0: {
|
|
244
153
|
syncState: SyncState;
|
|
245
154
|
payload: typeof Payload.Type;
|
|
246
|
-
|
|
155
|
+
/**
|
|
156
|
+
* `LiveStoreEvent.Client.EncodedWithMeta` does not carry the event definition's
|
|
157
|
+
* `clientOnly` flag. The caller supplies this schema-aware predicate so `merge`
|
|
158
|
+
* can preserve the correct sequence-number shape when rebasing: client-only
|
|
159
|
+
* events advance the client component, synced events advance the global component.
|
|
160
|
+
*/
|
|
161
|
+
isClientOnlyEvent: (event: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Pending events are confirmed by comparing their logical encoded identity with
|
|
164
|
+
* upstream events. This is caller-supplied because comparing encoded args may
|
|
165
|
+
* require event-schema knowledge that the generic merge algorithm does not own.
|
|
166
|
+
* Implementations should ignore transport/runtime metadata.
|
|
167
|
+
*/
|
|
247
168
|
isEqualEvent: (a: LiveStoreEvent.Client.EncodedWithMeta, b: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
|
|
248
|
-
/**
|
|
249
|
-
|
|
169
|
+
/**
|
|
170
|
+
* This is used in the leader which should ignore client events when
|
|
171
|
+
* receiving an upstream-advance payload
|
|
172
|
+
*/
|
|
173
|
+
ignoreClientOnlyEvents?: boolean;
|
|
250
174
|
}) => Effect.Effect<MergeResultAdvance | MergeResultRebase | MergeResultReject, never, never>;
|
|
251
175
|
/**
|
|
252
176
|
* Gets the index relative to `existingEvents` where the divergence point is
|
|
253
177
|
* by comparing each event in `existingEvents` to the corresponding event in `incomingEvents`
|
|
254
178
|
*/
|
|
255
|
-
export declare const findDivergencePoint: ({ existingEvents, incomingEvents, isEqualEvent,
|
|
179
|
+
export declare const findDivergencePoint: ({ existingEvents, incomingEvents, isEqualEvent, isClientOnlyEvent, ignoreClientOnlyEvents, }: {
|
|
256
180
|
existingEvents: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>;
|
|
257
181
|
incomingEvents: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>;
|
|
258
182
|
isEqualEvent: (a: LiveStoreEvent.Client.EncodedWithMeta, b: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
|
|
259
|
-
|
|
260
|
-
|
|
183
|
+
isClientOnlyEvent: (event: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
|
|
184
|
+
ignoreClientOnlyEvents: boolean;
|
|
261
185
|
}) => number;
|
|
262
186
|
export {};
|
|
263
187
|
//# sourceMappingURL=syncstate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE9E,OAAO,KAAK,mBAAmB,MAAM,sCAAsC,CAAA;AAC3E,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;;;IAyC/D,kFAAkF;;;;;;;;IAElF,qEAAqE
|
|
1
|
+
{"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE9E,OAAO,KAAK,mBAAmB,MAAM,sCAAsC,CAAA;AAC3E,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;;;IAyC/D,kFAAkF;;;;;;;;IAElF,qEAAqE;;;;;;;;;AAzCvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,SAAU,SAAQ,cAM7B;IACA,MAAM,QAAO,GAAG,CAId;CACH;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,0CAA0C;;IAE1C,gGAAgG;;EAEhG,CAAA;AAEF,eAAO,MAAM,sBAAsB;;EAEjC,CAAA;AAEF,eAAO,MAAM,gBAAgB;;EAE3B,CAAA;AAEF,eAAO,MAAM,OAAO;IAdlB,0CAA0C;;IAE1C,gGAAgG;;;;;;IAYI,CAAA;AAEtG,eAAO,MAAM,eAAe;IAhB1B,0CAA0C;;IAE1C,gGAAgG;;;;IAcN,CAAA;;;QAhB1F,0CAA0C;;QAE1C,gGAAgG;;;;;;;;;AAgBlG,uCAAuC;AACvC,qBAAa,YAAa,SAAQ,iBAGhC;IACA,MAAM,QAAO,GAAG,CAqBf;CACF;;;;;IAMC,iEAAiE;;;;AAJnE,qBAAa,kBAAmB,SAAQ,uBAOtC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;;;IAMC,0CAA0C;;;;AAJ5C,qBAAa,iBAAkB,SAAQ,sBAOrC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;IAIC,mDAAmD;;;;;;;;;;AAFrD,qBAAa,iBAAkB,SAAQ,sBAKrC;IACA,MAAM,QAAO,GAAG,CAMf;CACF;AAED,eAAO,MAAM,WAAW,wGAA2E,CAAA;AAEnG,eAAO,MAAM,sBAAsB,gBACpB,kBAAkB,GAAG,iBAAiB,KAClD,OAAO,eAAe,CAAC,IAYvB,CAAA;AASH,eAAO,MAAM,KAAK;eAOL,SAAS;aACX,OAAO,OAAO,CAAC,IAAI;IAC5B;;;;;OAKG;uBACgB,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO;IAC5E;;;;;OAKG;kBACW,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO;IAC7G;;;OAGG;6BACsB,OAAO;6FAgOhC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,iGAM7B;IACD,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACpE,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACpE,YAAY,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAA;IAC7G,iBAAiB,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAA;IAC5E,sBAAsB,EAAE,OAAO,CAAA;CAChC,KAAG,MAyBH,CAAA"}
|