@livestore/common 0.3.0-dev.5 → 0.3.0-dev.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/fixture.d.ts +83 -221
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +33 -11
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/adapter-types.d.ts +120 -64
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +39 -8
- package/dist/adapter-types.js.map +1 -1
- package/dist/bounded-collections.d.ts.map +1 -1
- package/dist/debug-info.d.ts +1 -1
- package/dist/debug-info.d.ts.map +1 -1
- package/dist/debug-info.js +1 -0
- package/dist/debug-info.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +390 -0
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-client-session.js +97 -0
- package/dist/devtools/devtools-messages-client-session.js.map +1 -0
- package/dist/devtools/devtools-messages-common.d.ts +68 -0
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-common.js +60 -0
- package/dist/devtools/devtools-messages-common.js.map +1 -0
- package/dist/devtools/devtools-messages-leader.d.ts +394 -0
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -0
- package/dist/devtools/devtools-messages-leader.js +147 -0
- package/dist/devtools/devtools-messages-leader.js.map +1 -0
- package/dist/devtools/devtools-messages.d.ts +3 -580
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +3 -174
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/devtools/devtools-sessioninfo.d.ts +32 -0
- package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -0
- package/dist/devtools/devtools-sessioninfo.js +36 -0
- package/dist/devtools/devtools-sessioninfo.js.map +1 -0
- package/dist/devtools/mod.d.ts +55 -0
- package/dist/devtools/mod.d.ts.map +1 -0
- package/dist/devtools/mod.js +33 -0
- package/dist/devtools/mod.js.map +1 -0
- package/dist/index.d.ts +7 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -9
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +62 -0
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -0
- package/dist/leader-thread/LeaderSyncProcessor.js +595 -0
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -0
- package/dist/leader-thread/connection.d.ts +34 -6
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/connection.js +22 -7
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts +27 -0
- package/dist/leader-thread/eventlog.d.ts.map +1 -0
- package/dist/leader-thread/eventlog.js +119 -0
- package/dist/leader-thread/eventlog.js.map +1 -0
- package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +155 -80
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +23 -11
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +72 -47
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/materialize-event.d.ts +16 -0
- package/dist/leader-thread/materialize-event.d.ts.map +1 -0
- package/dist/leader-thread/materialize-event.js +109 -0
- package/dist/leader-thread/materialize-event.js.map +1 -0
- package/dist/leader-thread/mod.d.ts +1 -1
- package/dist/leader-thread/mod.d.ts.map +1 -1
- package/dist/leader-thread/mod.js +1 -1
- package/dist/leader-thread/mod.js.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts +4 -2
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +33 -31
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/shutdown-channel.d.ts +2 -5
- package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
- package/dist/leader-thread/shutdown-channel.js +2 -4
- package/dist/leader-thread/shutdown-channel.js.map +1 -1
- package/dist/leader-thread/types.d.ts +87 -40
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +1 -3
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/make-client-session.d.ts +23 -0
- package/dist/make-client-session.d.ts.map +1 -0
- package/dist/make-client-session.js +57 -0
- package/dist/make-client-session.js.map +1 -0
- package/dist/materializer-helper.d.ts +23 -0
- package/dist/materializer-helper.d.ts.map +1 -0
- package/dist/materializer-helper.js +86 -0
- package/dist/materializer-helper.js.map +1 -0
- package/dist/otel.d.ts +2 -0
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +5 -0
- package/dist/otel.js.map +1 -1
- package/dist/rematerialize-from-eventlog.d.ts +14 -0
- package/dist/rematerialize-from-eventlog.d.ts.map +1 -0
- package/dist/rematerialize-from-eventlog.js +64 -0
- package/dist/rematerialize-from-eventlog.js.map +1 -0
- package/dist/schema/EventDef.d.ts +146 -0
- package/dist/schema/EventDef.d.ts.map +1 -0
- package/dist/schema/EventDef.js +58 -0
- package/dist/schema/EventDef.js.map +1 -0
- package/dist/schema/EventId.d.ts +43 -25
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +56 -18
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/EventId.test.d.ts +2 -0
- package/dist/schema/EventId.test.d.ts.map +1 -0
- package/dist/schema/EventId.test.js +11 -0
- package/dist/schema/EventId.test.js.map +1 -0
- package/dist/schema/EventNumber.d.ts +57 -0
- package/dist/schema/EventNumber.d.ts.map +1 -0
- package/dist/schema/EventNumber.js +82 -0
- package/dist/schema/EventNumber.js.map +1 -0
- package/dist/schema/EventNumber.test.d.ts +2 -0
- package/dist/schema/EventNumber.test.d.ts.map +1 -0
- package/dist/schema/EventNumber.test.js +11 -0
- package/dist/schema/EventNumber.test.js.map +1 -0
- package/dist/schema/EventSequenceNumber.d.ts +57 -0
- package/dist/schema/EventSequenceNumber.d.ts.map +1 -0
- package/dist/schema/EventSequenceNumber.js +82 -0
- package/dist/schema/EventSequenceNumber.js.map +1 -0
- package/dist/schema/EventSequenceNumber.test.d.ts +2 -0
- package/dist/schema/EventSequenceNumber.test.d.ts.map +1 -0
- package/dist/schema/EventSequenceNumber.test.js +11 -0
- package/dist/schema/EventSequenceNumber.test.js.map +1 -0
- package/dist/schema/LiveStoreEvent.d.ts +257 -0
- package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
- package/dist/schema/LiveStoreEvent.js +117 -0
- package/dist/schema/LiveStoreEvent.js.map +1 -0
- package/dist/schema/events.d.ts +2 -0
- package/dist/schema/events.d.ts.map +1 -0
- package/dist/schema/events.js +2 -0
- package/dist/schema/events.js.map +1 -0
- package/dist/schema/mod.d.ts +8 -6
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +8 -6
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema.d.ts +50 -32
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +36 -43
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/state/mod.d.ts +3 -0
- package/dist/schema/state/mod.d.ts.map +1 -0
- package/dist/schema/state/mod.js +3 -0
- package/dist/schema/state/mod.js.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.d.ts +223 -0
- package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.js +170 -0
- package/dist/schema/state/sqlite/client-document-def.js.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.test.d.ts +2 -0
- package/dist/schema/state/sqlite/client-document-def.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.test.js +201 -0
- package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +69 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +71 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts +3 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.js +12 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +90 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +87 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts +2 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +29 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +90 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js +41 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/hash.d.ts +2 -0
- package/dist/schema/state/sqlite/db-schema/hash.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/hash.js +14 -0
- package/dist/schema/state/sqlite/db-schema/hash.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/mod.d.ts +3 -0
- package/dist/schema/state/sqlite/db-schema/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/mod.js +3 -0
- package/dist/schema/state/sqlite/db-schema/mod.js.map +1 -0
- package/dist/schema/state/sqlite/mod.d.ts +17 -0
- package/dist/schema/state/sqlite/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/mod.js +41 -0
- package/dist/schema/state/sqlite/mod.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/api.d.ts +294 -0
- package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/api.js +6 -0
- package/dist/schema/state/sqlite/query-builder/api.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.d.ts +7 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.js +190 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.d.ts +7 -0
- package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.js +286 -0
- package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.d.ts +87 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.js +563 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -0
- package/dist/{query-builder → schema/state/sqlite/query-builder}/mod.d.ts +7 -0
- package/dist/schema/state/sqlite/query-builder/mod.d.ts.map +1 -0
- package/dist/{query-builder → schema/state/sqlite/query-builder}/mod.js +7 -0
- package/dist/schema/state/sqlite/query-builder/mod.js.map +1 -0
- package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -0
- package/dist/schema/{schema-helpers.js → state/sqlite/schema-helpers.js} +1 -1
- package/dist/schema/state/sqlite/schema-helpers.js.map +1 -0
- package/dist/schema/state/sqlite/system-tables.d.ts +574 -0
- package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -0
- package/dist/schema/state/sqlite/system-tables.js +88 -0
- package/dist/schema/state/sqlite/system-tables.js.map +1 -0
- package/dist/schema/state/sqlite/table-def.d.ts +84 -0
- package/dist/schema/state/sqlite/table-def.d.ts.map +1 -0
- package/dist/schema/state/sqlite/table-def.js +36 -0
- package/dist/schema/state/sqlite/table-def.js.map +1 -0
- package/dist/schema-management/common.d.ts +7 -7
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/common.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +6 -6
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +27 -18
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/schema-management/validate-schema.d.ts +8 -0
- package/dist/schema-management/validate-schema.d.ts.map +1 -0
- package/dist/schema-management/validate-schema.js +39 -0
- package/dist/schema-management/validate-schema.js.map +1 -0
- package/dist/sql-queries/misc.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.d.ts +1 -1
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.js.map +1 -1
- package/dist/sql-queries/types.d.ts +2 -1
- package/dist/sql-queries/types.d.ts.map +1 -1
- package/dist/sql-queries/types.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +66 -0
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
- package/dist/sync/ClientSessionSyncProcessor.js +209 -0
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/next/compact-events.d.ts.map +1 -1
- package/dist/sync/next/compact-events.js +38 -35
- package/dist/sync/next/compact-events.js.map +1 -1
- package/dist/sync/next/facts.d.ts +21 -21
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/facts.js +11 -11
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +9 -7
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +10 -5
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/history-dag.d.ts +0 -2
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/history-dag.js +16 -14
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +10 -8
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +18 -10
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/compact-events.calculator.test.js +39 -34
- package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
- package/dist/sync/next/test/compact-events.test.js +77 -77
- package/dist/sync/next/test/compact-events.test.js.map +1 -1
- package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +38 -28
- package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
- package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +81 -38
- package/dist/sync/next/test/event-fixtures.js.map +1 -0
- package/dist/sync/next/test/mod.d.ts +1 -1
- package/dist/sync/next/test/mod.d.ts.map +1 -1
- package/dist/sync/next/test/mod.js +1 -1
- package/dist/sync/next/test/mod.js.map +1 -1
- package/dist/sync/sync.d.ts +60 -25
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js +10 -6
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +213 -82
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +337 -139
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +310 -286
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/validate-push-payload.d.ts +2 -2
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js +4 -4
- package/dist/sync/validate-push-payload.js.map +1 -1
- package/dist/util.d.ts +2 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +13 -6
- package/src/__tests__/fixture.ts +36 -15
- package/src/adapter-types.ts +107 -68
- package/src/debug-info.ts +1 -0
- package/src/devtools/devtools-messages-client-session.ts +142 -0
- package/src/devtools/devtools-messages-common.ts +115 -0
- package/src/devtools/devtools-messages-leader.ts +191 -0
- package/src/devtools/devtools-messages.ts +3 -246
- package/src/devtools/devtools-sessioninfo.ts +101 -0
- package/src/devtools/mod.ts +59 -0
- package/src/index.ts +7 -15
- package/src/leader-thread/LeaderSyncProcessor.ts +940 -0
- package/src/leader-thread/connection.ts +54 -9
- package/src/leader-thread/eventlog.ts +199 -0
- package/src/leader-thread/leader-worker-devtools.ts +227 -104
- package/src/leader-thread/make-leader-thread-layer.ts +128 -78
- package/src/leader-thread/materialize-event.ts +173 -0
- package/src/leader-thread/mod.ts +1 -1
- package/src/leader-thread/recreate-db.ts +38 -39
- package/src/leader-thread/shutdown-channel.ts +2 -4
- package/src/leader-thread/types.ts +96 -50
- package/src/make-client-session.ts +136 -0
- package/src/materializer-helper.ts +138 -0
- package/src/otel.ts +8 -0
- package/src/rematerialize-from-eventlog.ts +117 -0
- package/src/schema/EventDef.ts +227 -0
- package/src/schema/EventSequenceNumber.test.ts +12 -0
- package/src/schema/EventSequenceNumber.ts +121 -0
- package/src/schema/LiveStoreEvent.ts +240 -0
- package/src/schema/events.ts +1 -0
- package/src/schema/mod.ts +8 -6
- package/src/schema/schema.ts +88 -84
- package/src/schema/state/mod.ts +2 -0
- package/src/schema/state/sqlite/client-document-def.test.ts +238 -0
- package/src/schema/state/sqlite/client-document-def.ts +444 -0
- package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +142 -0
- package/src/schema/state/sqlite/db-schema/ast/validate.ts +13 -0
- package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
- package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +35 -0
- package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +242 -0
- package/src/schema/state/sqlite/db-schema/dsl/mod.ts +222 -0
- package/src/schema/state/sqlite/db-schema/hash.ts +14 -0
- package/src/schema/state/sqlite/db-schema/mod.ts +2 -0
- package/src/schema/state/sqlite/mod.ts +73 -0
- package/src/schema/state/sqlite/query-builder/api.ts +440 -0
- package/src/schema/state/sqlite/query-builder/astToSql.ts +232 -0
- package/src/schema/state/sqlite/query-builder/impl.test.ts +617 -0
- package/src/schema/state/sqlite/query-builder/impl.ts +351 -0
- package/src/{query-builder → schema/state/sqlite/query-builder}/mod.ts +7 -0
- package/src/schema/{schema-helpers.ts → state/sqlite/schema-helpers.ts} +1 -1
- package/src/schema/state/sqlite/system-tables.ts +117 -0
- package/src/schema/state/sqlite/table-def.ts +197 -0
- package/src/schema-management/common.ts +7 -7
- package/src/schema-management/migrations.ts +37 -31
- package/src/schema-management/validate-schema.ts +61 -0
- package/src/sql-queries/sql-queries.ts +1 -1
- package/src/sql-queries/sql-query-builder.ts +1 -2
- package/src/sql-queries/types.ts +3 -1
- package/src/sync/ClientSessionSyncProcessor.ts +332 -0
- package/src/sync/index.ts +1 -1
- package/src/sync/next/compact-events.ts +38 -35
- package/src/sync/next/facts.ts +43 -41
- package/src/sync/next/history-dag-common.ts +17 -10
- package/src/sync/next/history-dag.ts +16 -17
- package/src/sync/next/rebase-events.ts +29 -17
- package/src/sync/next/test/compact-events.calculator.test.ts +46 -46
- package/src/sync/next/test/compact-events.test.ts +79 -79
- package/src/sync/next/test/event-fixtures.ts +226 -0
- package/src/sync/next/test/mod.ts +1 -1
- package/src/sync/sync.ts +60 -24
- package/src/sync/syncstate.test.ts +347 -320
- package/src/sync/syncstate.ts +422 -230
- package/src/sync/validate-push-payload.ts +6 -6
- package/src/version.ts +2 -2
- package/dist/derived-mutations.d.ts +0 -109
- package/dist/derived-mutations.d.ts.map +0 -1
- package/dist/derived-mutations.js +0 -54
- package/dist/derived-mutations.js.map +0 -1
- package/dist/derived-mutations.test.d.ts +0 -2
- package/dist/derived-mutations.test.d.ts.map +0 -1
- package/dist/derived-mutations.test.js +0 -93
- package/dist/derived-mutations.test.js.map +0 -1
- package/dist/devtools/devtools-bridge.d.ts +0 -13
- package/dist/devtools/devtools-bridge.d.ts.map +0 -1
- package/dist/devtools/devtools-bridge.js +0 -2
- package/dist/devtools/devtools-bridge.js.map +0 -1
- package/dist/devtools/devtools-window-message.d.ts +0 -29
- package/dist/devtools/devtools-window-message.d.ts.map +0 -1
- package/dist/devtools/devtools-window-message.js +0 -33
- package/dist/devtools/devtools-window-message.js.map +0 -1
- package/dist/devtools/index.d.ts +0 -42
- package/dist/devtools/index.d.ts.map +0 -1
- package/dist/devtools/index.js +0 -48
- package/dist/devtools/index.js.map +0 -1
- package/dist/init-singleton-tables.d.ts +0 -4
- package/dist/init-singleton-tables.d.ts.map +0 -1
- package/dist/init-singleton-tables.js +0 -16
- package/dist/init-singleton-tables.js.map +0 -1
- package/dist/leader-thread/apply-mutation.d.ts +0 -8
- package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
- package/dist/leader-thread/apply-mutation.js +0 -95
- package/dist/leader-thread/apply-mutation.js.map +0 -1
- package/dist/leader-thread/leader-sync-processor.d.ts +0 -47
- package/dist/leader-thread/leader-sync-processor.d.ts.map +0 -1
- package/dist/leader-thread/leader-sync-processor.js +0 -425
- package/dist/leader-thread/leader-sync-processor.js.map +0 -1
- package/dist/leader-thread/mutationlog.d.ts +0 -10
- package/dist/leader-thread/mutationlog.d.ts.map +0 -1
- package/dist/leader-thread/mutationlog.js +0 -28
- package/dist/leader-thread/mutationlog.js.map +0 -1
- package/dist/leader-thread/pull-queue-set.d.ts +0 -7
- package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
- package/dist/leader-thread/pull-queue-set.js +0 -39
- package/dist/leader-thread/pull-queue-set.js.map +0 -1
- package/dist/mutation.d.ts +0 -13
- package/dist/mutation.d.ts.map +0 -1
- package/dist/mutation.js +0 -57
- package/dist/mutation.js.map +0 -1
- package/dist/query-builder/api.d.ts +0 -190
- package/dist/query-builder/api.d.ts.map +0 -1
- package/dist/query-builder/api.js +0 -8
- package/dist/query-builder/api.js.map +0 -1
- package/dist/query-builder/impl.d.ts +0 -12
- package/dist/query-builder/impl.d.ts.map +0 -1
- package/dist/query-builder/impl.js +0 -244
- package/dist/query-builder/impl.js.map +0 -1
- package/dist/query-builder/impl.test.d.ts +0 -2
- package/dist/query-builder/impl.test.d.ts.map +0 -1
- package/dist/query-builder/impl.test.js +0 -212
- package/dist/query-builder/impl.test.js.map +0 -1
- package/dist/query-builder/mod.d.ts.map +0 -1
- package/dist/query-builder/mod.js.map +0 -1
- package/dist/query-info.d.ts +0 -38
- package/dist/query-info.d.ts.map +0 -1
- package/dist/query-info.js +0 -7
- package/dist/query-info.js.map +0 -1
- package/dist/rehydrate-from-mutationlog.d.ts +0 -14
- package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
- package/dist/rehydrate-from-mutationlog.js +0 -72
- package/dist/rehydrate-from-mutationlog.js.map +0 -1
- package/dist/schema/MutationEvent.d.ts +0 -166
- package/dist/schema/MutationEvent.d.ts.map +0 -1
- package/dist/schema/MutationEvent.js +0 -72
- package/dist/schema/MutationEvent.js.map +0 -1
- package/dist/schema/mutations.d.ts +0 -107
- package/dist/schema/mutations.d.ts.map +0 -1
- package/dist/schema/mutations.js +0 -42
- package/dist/schema/mutations.js.map +0 -1
- package/dist/schema/schema-helpers.d.ts.map +0 -1
- package/dist/schema/schema-helpers.js.map +0 -1
- package/dist/schema/system-tables.d.ts +0 -399
- package/dist/schema/system-tables.d.ts.map +0 -1
- package/dist/schema/system-tables.js +0 -58
- package/dist/schema/system-tables.js.map +0 -1
- package/dist/schema/table-def.d.ts +0 -156
- package/dist/schema/table-def.d.ts.map +0 -1
- package/dist/schema/table-def.js +0 -79
- package/dist/schema/table-def.js.map +0 -1
- package/dist/schema-management/validate-mutation-defs.d.ts +0 -8
- package/dist/schema-management/validate-mutation-defs.d.ts.map +0 -1
- package/dist/schema-management/validate-mutation-defs.js +0 -39
- package/dist/schema-management/validate-mutation-defs.js.map +0 -1
- package/dist/sync/client-session-sync-processor.d.ts +0 -45
- package/dist/sync/client-session-sync-processor.d.ts.map +0 -1
- package/dist/sync/client-session-sync-processor.js +0 -131
- package/dist/sync/client-session-sync-processor.js.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
- package/src/derived-mutations.test.ts +0 -101
- package/src/derived-mutations.ts +0 -166
- package/src/devtools/devtools-bridge.ts +0 -14
- package/src/devtools/devtools-window-message.ts +0 -27
- package/src/devtools/index.ts +0 -48
- package/src/init-singleton-tables.ts +0 -24
- package/src/leader-thread/apply-mutation.ts +0 -143
- package/src/leader-thread/leader-sync-processor.ts +0 -670
- package/src/leader-thread/mutationlog.ts +0 -46
- package/src/leader-thread/pull-queue-set.ts +0 -58
- package/src/mutation.ts +0 -81
- package/src/query-builder/api.ts +0 -289
- package/src/query-builder/impl.test.ts +0 -239
- package/src/query-builder/impl.ts +0 -285
- package/src/query-info.ts +0 -78
- package/src/rehydrate-from-mutationlog.ts +0 -127
- package/src/schema/EventId.ts +0 -60
- package/src/schema/MutationEvent.ts +0 -180
- package/src/schema/mutations.ts +0 -192
- package/src/schema/system-tables.ts +0 -104
- package/src/schema/table-def.ts +0 -343
- package/src/schema-management/validate-mutation-defs.ts +0 -63
- package/src/sync/client-session-sync-processor.ts +0 -207
- package/src/sync/next/test/mutation-fixtures.ts +0 -224
- package/tsconfig.json +0 -11
- /package/dist/schema/{schema-helpers.d.ts → state/sqlite/schema-helpers.d.ts} +0 -0
@@ -1,175 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
import * as MutationEvent from '../schema/MutationEvent.js';
|
5
|
-
import { PreparedBindValues } from '../util.js';
|
6
|
-
import { liveStoreVersion as pkgVersion } from '../version.js';
|
7
|
-
const requestId = Schema.String;
|
8
|
-
const clientId = Schema.String;
|
9
|
-
const sessionId = Schema.String;
|
10
|
-
const liveStoreVersion = Schema.Literal(pkgVersion);
|
11
|
-
const LSDMessage = (tag, fields) => Schema.TaggedStruct(tag, {
|
12
|
-
liveStoreVersion,
|
13
|
-
...fields,
|
14
|
-
}).annotations({ identifier: tag });
|
15
|
-
const LSDChannelMessage = (tag, fields) => LSDMessage(tag, {
|
16
|
-
...fields,
|
17
|
-
});
|
18
|
-
const LSDStoreChannelMessage = (tag, fields) => LSDMessage(tag, {
|
19
|
-
clientId,
|
20
|
-
sessionId,
|
21
|
-
...fields,
|
22
|
-
});
|
23
|
-
const LSDStoreReqResMessage = (tag, fields) => LSDMessage(tag, {
|
24
|
-
clientId,
|
25
|
-
sessionId,
|
26
|
-
requestId,
|
27
|
-
...fields,
|
28
|
-
});
|
29
|
-
const LSDReqResMessage = (tag, fields) => LSDChannelMessage(tag, {
|
30
|
-
requestId,
|
31
|
-
...fields,
|
32
|
-
});
|
33
|
-
export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {
|
34
|
-
}
|
35
|
-
export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
|
36
|
-
snapshot: Transferable.Uint8Array,
|
37
|
-
}) {
|
38
|
-
}
|
39
|
-
export class LoadDatabaseFileReq extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileReq', {
|
40
|
-
data: Transferable.Uint8Array,
|
41
|
-
}) {
|
42
|
-
}
|
43
|
-
export class LoadDatabaseFileRes extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileRes', {
|
44
|
-
status: Schema.Literal('ok', 'unsupported-file', 'unsupported-database'),
|
45
|
-
}) {
|
46
|
-
}
|
47
|
-
export class DebugInfoReq extends LSDStoreReqResMessage('LSD.DebugInfoReq', {}) {
|
48
|
-
}
|
49
|
-
export class DebugInfoRes extends LSDStoreReqResMessage('LSD.DebugInfoRes', {
|
50
|
-
debugInfo: DebugInfo,
|
51
|
-
}) {
|
52
|
-
}
|
53
|
-
export class DebugInfoHistorySubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistorySubscribe', {}) {
|
54
|
-
}
|
55
|
-
export class DebugInfoHistoryRes extends LSDStoreReqResMessage('LSD.DebugInfoHistoryRes', {
|
56
|
-
debugInfoHistory: Schema.Array(DebugInfo),
|
57
|
-
}) {
|
58
|
-
}
|
59
|
-
export class DebugInfoHistoryUnsubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistoryUnsubscribe', {}) {
|
60
|
-
}
|
61
|
-
export class DebugInfoResetReq extends LSDStoreReqResMessage('LSD.DebugInfoResetReq', {}) {
|
62
|
-
}
|
63
|
-
export class DebugInfoResetRes extends LSDStoreReqResMessage('LSD.DebugInfoResetRes', {}) {
|
64
|
-
}
|
65
|
-
export class DebugInfoRerunQueryReq extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryReq', {
|
66
|
-
queryStr: Schema.String,
|
67
|
-
bindValues: Schema.UndefinedOr(PreparedBindValues),
|
68
|
-
queriedTables: Schema.ReadonlySet(Schema.String),
|
69
|
-
}) {
|
70
|
-
}
|
71
|
-
export class DebugInfoRerunQueryRes extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryRes', {}) {
|
72
|
-
}
|
73
|
-
// TODO refactor this to use push/pull semantics
|
74
|
-
export class MutationBroadcast extends LSDMessage('LSD.Leader.MutationBroadcast', {
|
75
|
-
mutationEventEncoded: MutationEvent.AnyEncoded,
|
76
|
-
}) {
|
77
|
-
}
|
78
|
-
// TODO refactor this to use push/pull semantics
|
79
|
-
export class RunMutationReq extends LSDReqResMessage('LSD.Leader.RunMutationReq', {
|
80
|
-
mutationEventEncoded: MutationEvent.AnyEncoded.pipe(Schema.omit('id', 'parentId')),
|
81
|
-
}) {
|
82
|
-
}
|
83
|
-
export class RunMutationRes extends LSDReqResMessage('LSD.Leader.RunMutationRes', {}) {
|
84
|
-
}
|
85
|
-
export class MutationLogReq extends LSDReqResMessage('LSD.Leader.MutationLogReq', {}) {
|
86
|
-
}
|
87
|
-
export class MutationLogRes extends LSDReqResMessage('LSD.Leader.MutationLogRes', {
|
88
|
-
mutationLog: Transferable.Uint8Array,
|
89
|
-
}) {
|
90
|
-
}
|
91
|
-
export class ReactivityGraphSubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphSubscribe', {
|
92
|
-
includeResults: Schema.Boolean,
|
93
|
-
}) {
|
94
|
-
}
|
95
|
-
export class ReactivityGraphUnsubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphUnsubscribe', {}) {
|
96
|
-
}
|
97
|
-
export class ReactivityGraphRes extends LSDStoreReqResMessage('LSD.ReactivityGraphRes', {
|
98
|
-
reactivityGraph: Schema.Any,
|
99
|
-
}) {
|
100
|
-
}
|
101
|
-
export class LiveQueriesSubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesSubscribe', {}) {
|
102
|
-
}
|
103
|
-
export class LiveQueriesUnsubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesUnsubscribe', {}) {
|
104
|
-
}
|
105
|
-
export class SerializedLiveQuery extends Schema.Struct({
|
106
|
-
_tag: Schema.Literal('computed', 'db', 'graphql'),
|
107
|
-
id: Schema.Number,
|
108
|
-
label: Schema.String,
|
109
|
-
runs: Schema.Number,
|
110
|
-
executionTimes: Schema.Array(Schema.Number),
|
111
|
-
lastestResult: Schema.Any,
|
112
|
-
activeSubscriptions: Schema.Array(Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) })),
|
113
|
-
}) {
|
114
|
-
}
|
115
|
-
export class LiveQueriesRes extends LSDStoreReqResMessage('LSD.LiveQueriesRes', {
|
116
|
-
liveQueries: Schema.Array(SerializedLiveQuery),
|
117
|
-
}) {
|
118
|
-
}
|
119
|
-
export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
|
120
|
-
mode: Schema.Literal('all-data', 'only-app-db'),
|
121
|
-
}) {
|
122
|
-
}
|
123
|
-
export class ResetAllDataRes extends LSDReqResMessage('LSD.Leader.ResetAllDataRes', {}) {
|
124
|
-
}
|
125
|
-
export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {
|
126
|
-
}
|
127
|
-
export class DatabaseFileInfo extends Schema.Struct({
|
128
|
-
fileSize: Schema.Number,
|
129
|
-
persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
|
130
|
-
}) {
|
131
|
-
}
|
132
|
-
export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
|
133
|
-
db: DatabaseFileInfo,
|
134
|
-
mutationLog: DatabaseFileInfo,
|
135
|
-
}) {
|
136
|
-
}
|
137
|
-
export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {}) {
|
138
|
-
}
|
139
|
-
export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {}) {
|
140
|
-
}
|
141
|
-
export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
|
142
|
-
networkStatus: NetworkStatus,
|
143
|
-
}) {
|
144
|
-
}
|
145
|
-
export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {
|
146
|
-
}
|
147
|
-
export class SyncingInfo extends Schema.Struct({
|
148
|
-
enabled: Schema.Boolean,
|
149
|
-
metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
|
150
|
-
}) {
|
151
|
-
}
|
152
|
-
export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
|
153
|
-
syncingInfo: SyncingInfo,
|
154
|
-
}) {
|
155
|
-
}
|
156
|
-
export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {}) {
|
157
|
-
}
|
158
|
-
export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {}) {
|
159
|
-
}
|
160
|
-
export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
|
161
|
-
mutationEventEncoded: MutationEvent.AnyEncodedGlobal,
|
162
|
-
metadata: Schema.Option(Schema.JsonValue),
|
163
|
-
}) {
|
164
|
-
}
|
165
|
-
export class Disconnect extends LSDStoreChannelMessage('LSD.Disconnect', {}) {
|
166
|
-
}
|
167
|
-
export class Ping extends LSDReqResMessage('LSD.Ping', {}) {
|
168
|
-
}
|
169
|
-
export class Pong extends LSDReqResMessage('LSD.Pong', {}) {
|
170
|
-
}
|
171
|
-
export const MessageToAppLeader = Schema.Union(SnapshotReq, LoadDatabaseFileReq, MutationLogReq, ResetAllDataReq, NetworkStatusSubscribe, NetworkStatusUnsubscribe, Disconnect, RunMutationReq, Ping, DatabaseFileInfoReq, SyncHistorySubscribe, SyncHistoryUnsubscribe, SyncingInfoReq).annotations({ identifier: 'LSD.MessageToAppLeader' });
|
172
|
-
export const MessageToAppClientSession = Schema.Union(DebugInfoReq, DebugInfoHistorySubscribe, DebugInfoHistoryUnsubscribe, DebugInfoResetReq, DebugInfoRerunQueryReq, ReactivityGraphSubscribe, ReactivityGraphUnsubscribe, LiveQueriesSubscribe, LiveQueriesUnsubscribe, Disconnect).annotations({ identifier: 'LSD.MessageToAppClientSession' });
|
173
|
-
export const MessageFromAppLeader = Schema.Union(SnapshotRes, LoadDatabaseFileRes, MutationLogRes, ResetAllDataRes, Disconnect, MutationBroadcast, NetworkStatusRes, RunMutationRes, Pong, DatabaseFileInfoRes, SyncHistoryRes, SyncingInfoRes).annotations({ identifier: 'LSD.MessageFromAppLeader' });
|
174
|
-
export const MessageFromAppClientSession = Schema.Union(DebugInfoRes, DebugInfoHistoryRes, DebugInfoResetRes, DebugInfoRerunQueryRes, ReactivityGraphRes, LiveQueriesRes, Disconnect).annotations({ identifier: 'LSD.MessageFromAppClientSession' });
|
1
|
+
export * as ClientSession from './devtools-messages-client-session.js';
|
2
|
+
export * as Leader from './devtools-messages-leader.js';
|
3
|
+
export * from './devtools-messages-common.js';
|
175
4
|
//# sourceMappingURL=devtools-messages.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"devtools-messages.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"devtools-messages.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AACvD,cAAc,+BAA+B,CAAA"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import type { ParseResult, Scope, WebChannel } from '@livestore/utils/effect';
|
2
|
+
import { Duration, Effect, Schema, Subscribable } from '@livestore/utils/effect';
|
3
|
+
export declare const RequestSessions: Schema.TaggedStruct<"RequestSessions", {}>;
|
4
|
+
export type RequestSessions = typeof RequestSessions.Type;
|
5
|
+
export declare const SessionInfo: Schema.TaggedStruct<"SessionInfo", {
|
6
|
+
storeId: typeof Schema.String;
|
7
|
+
clientId: typeof Schema.String;
|
8
|
+
sessionId: typeof Schema.String;
|
9
|
+
schemaAlias: typeof Schema.String;
|
10
|
+
isLeader: typeof Schema.Boolean;
|
11
|
+
}>;
|
12
|
+
export type SessionInfo = typeof SessionInfo.Type;
|
13
|
+
export declare const Message: Schema.Union<[Schema.TaggedStruct<"RequestSessions", {}>, Schema.TaggedStruct<"SessionInfo", {
|
14
|
+
storeId: typeof Schema.String;
|
15
|
+
clientId: typeof Schema.String;
|
16
|
+
sessionId: typeof Schema.String;
|
17
|
+
schemaAlias: typeof Schema.String;
|
18
|
+
isLeader: typeof Schema.Boolean;
|
19
|
+
}>]>;
|
20
|
+
export type Message = typeof Message.Type;
|
21
|
+
/** Usually called in client session */
|
22
|
+
export declare const provideSessionInfo: ({ webChannel, sessionInfo, }: {
|
23
|
+
webChannel: WebChannel.WebChannel<Message, Message>;
|
24
|
+
sessionInfo: SessionInfo;
|
25
|
+
}) => Effect.Effect<void, ParseResult.ParseError>;
|
26
|
+
/** Usually called in devtools */
|
27
|
+
export declare const requestSessionInfoSubscription: ({ webChannel, pollInterval, staleTimeout, }: {
|
28
|
+
webChannel: WebChannel.WebChannel<Message, Message>;
|
29
|
+
pollInterval?: Duration.DurationInput;
|
30
|
+
staleTimeout?: Duration.DurationInput;
|
31
|
+
}) => Effect.Effect<Subscribable.Subscribable<Set<SessionInfo>>, ParseResult.ParseError, Scope.Scope>;
|
32
|
+
//# sourceMappingURL=devtools-sessioninfo.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"devtools-sessioninfo.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools-sessioninfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,EAEL,QAAQ,EACR,MAAM,EAIN,MAAM,EAEN,YAAY,EAEb,MAAM,yBAAyB,CAAA;AAEhC,eAAO,MAAM,eAAe,4CAA6C,CAAA;AACzE,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,WAAW;;;;;;EAMtB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,OAAO;;;;;;IAA6C,CAAA;AACjE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,GAAI,8BAGhC;IACD,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACnD,WAAW,EAAE,WAAW,CAAA;CACzB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAU1C,CAAA;AAEJ,iCAAiC;AACjC,eAAO,MAAM,8BAA8B,GAAI,6CAI5C;IACD,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACnD,YAAY,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAA;IACrC,YAAY,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAA;CACtC,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CA2C9F,CAAA"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { Data, Duration, Effect, FiberMap, HashSet, Schedule, Schema, Stream, Subscribable, SubscriptionRef, } from '@livestore/utils/effect';
|
2
|
+
export const RequestSessions = Schema.TaggedStruct('RequestSessions', {});
|
3
|
+
export const SessionInfo = Schema.TaggedStruct('SessionInfo', {
|
4
|
+
storeId: Schema.String,
|
5
|
+
clientId: Schema.String,
|
6
|
+
sessionId: Schema.String,
|
7
|
+
schemaAlias: Schema.String,
|
8
|
+
isLeader: Schema.Boolean,
|
9
|
+
});
|
10
|
+
export const Message = Schema.Union(RequestSessions, SessionInfo);
|
11
|
+
/** Usually called in client session */
|
12
|
+
export const provideSessionInfo = ({ webChannel, sessionInfo, }) => Effect.gen(function* () {
|
13
|
+
yield* webChannel.send(sessionInfo);
|
14
|
+
yield* webChannel.listen.pipe(Stream.flatten(), Stream.filter(Schema.is(RequestSessions)), Stream.tap(() => webChannel.send(sessionInfo)), Stream.runDrain);
|
15
|
+
});
|
16
|
+
/** Usually called in devtools */
|
17
|
+
export const requestSessionInfoSubscription = ({ webChannel, pollInterval = Duration.seconds(1), staleTimeout = Duration.seconds(5), }) => Effect.gen(function* () {
|
18
|
+
yield* webChannel
|
19
|
+
.send(RequestSessions.make({}))
|
20
|
+
.pipe(Effect.repeat(Schedule.spaced(pollInterval)), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
21
|
+
const timeoutFiberMap = yield* FiberMap.make();
|
22
|
+
const sessionInfoSubRef = yield* SubscriptionRef.make(HashSet.empty());
|
23
|
+
yield* webChannel.listen.pipe(Stream.flatten(), Stream.filter(Schema.is(SessionInfo)), Stream.map(Data.struct), Stream.tap(Effect.fn(function* (sessionInfo) {
|
24
|
+
yield* SubscriptionRef.getAndUpdate(sessionInfoSubRef, HashSet.add(sessionInfo));
|
25
|
+
// Remove sessionInfo from cache after staleTimeout (unless a new identical item resets the timeout)
|
26
|
+
yield* FiberMap.run(timeoutFiberMap, sessionInfo, Effect.gen(function* () {
|
27
|
+
yield* Effect.sleep(staleTimeout);
|
28
|
+
yield* SubscriptionRef.getAndUpdate(sessionInfoSubRef, HashSet.remove(sessionInfo));
|
29
|
+
}));
|
30
|
+
})), Stream.runDrain, Effect.tapCauseLogPretty, Effect.forkScoped);
|
31
|
+
return Subscribable.make({
|
32
|
+
get: sessionInfoSubRef.get.pipe(Effect.map((sessionInfos) => new Set(sessionInfos))),
|
33
|
+
changes: sessionInfoSubRef.changes.pipe(Stream.map((sessionInfos) => new Set(sessionInfos))),
|
34
|
+
});
|
35
|
+
});
|
36
|
+
//# sourceMappingURL=devtools-sessioninfo.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"devtools-sessioninfo.js","sourceRoot":"","sources":["../../src/devtools/devtools-sessioninfo.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import type { Effect, Scope, WebChannel } from '@livestore/utils/effect';
|
2
|
+
import { Schema } from '@livestore/utils/effect';
|
3
|
+
import type { MeshNode } from '@livestore/webmesh';
|
4
|
+
import * as SessionInfo from './devtools-sessioninfo.js';
|
5
|
+
export * from './devtools-messages.js';
|
6
|
+
export * as SessionInfo from './devtools-sessioninfo.js';
|
7
|
+
export declare const DevtoolsMode: Schema.Union<[Schema.TaggedStruct<"node", {
|
8
|
+
/** WebSocket URL */
|
9
|
+
url: typeof Schema.String;
|
10
|
+
}>, Schema.TaggedStruct<"web", {}>, Schema.TaggedStruct<"browser-extension", {}>]>;
|
11
|
+
export type DevtoolsMode = typeof DevtoolsMode.Type;
|
12
|
+
export declare const DevtoolsModeTag: Schema.SchemaClass<"node" | "web" | "browser-extension", "node" | "web" | "browser-extension", never>;
|
13
|
+
export type DevtoolsModeTag = typeof DevtoolsModeTag.Type;
|
14
|
+
export declare const makeNodeName: {
|
15
|
+
devtools: {
|
16
|
+
random: () => string;
|
17
|
+
};
|
18
|
+
client: {
|
19
|
+
session: ({ storeId, clientId, sessionId }: {
|
20
|
+
storeId: string;
|
21
|
+
clientId: string;
|
22
|
+
sessionId: string;
|
23
|
+
}) => string;
|
24
|
+
leader: ({ storeId, clientId }: {
|
25
|
+
storeId: string;
|
26
|
+
clientId: string;
|
27
|
+
}) => string;
|
28
|
+
};
|
29
|
+
};
|
30
|
+
export declare const makeChannelName: {
|
31
|
+
sessionInfo: () => string;
|
32
|
+
devtoolsClientSession: ({ storeId, clientId, sessionId }: {
|
33
|
+
storeId: string;
|
34
|
+
clientId: string;
|
35
|
+
sessionId: string;
|
36
|
+
}) => string;
|
37
|
+
devtoolsClientLeader: ({ storeId, clientId, sessionId }: {
|
38
|
+
storeId: string;
|
39
|
+
clientId: string;
|
40
|
+
sessionId: string;
|
41
|
+
}) => string;
|
42
|
+
};
|
43
|
+
export declare const isChannelName: {
|
44
|
+
devtoolsClientSession: (channelName: string, { storeId, clientId, sessionId }: {
|
45
|
+
storeId: string;
|
46
|
+
clientId: string;
|
47
|
+
sessionId: string;
|
48
|
+
}) => boolean;
|
49
|
+
devtoolsClientLeader: (channelName: string, { storeId, clientId }: {
|
50
|
+
storeId: string;
|
51
|
+
clientId: string;
|
52
|
+
}) => boolean;
|
53
|
+
};
|
54
|
+
export declare const makeSessionInfoBroadcastChannel: (webmeshNode: MeshNode) => Effect.Effect<WebChannel.WebChannel<SessionInfo.Message, SessionInfo.Message>, never, Scope.Scope>;
|
55
|
+
//# sourceMappingURL=mod.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAExD,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAExD,eAAO,MAAM,YAAY;IAErB,oBAAoB;;kFAKvB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,eAAe,uGAA6D,CAAA;AACzF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,YAAY;;;;;oDAKuB;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE;wCAEpE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE;;CAExE,CAAA;AAED,eAAO,MAAM,eAAe;;8DAEgC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;6DAEzD;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAElH,CAAA;AAED,eAAO,MAAM,aAAa;yCAET,MAAM,oCACe;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;wCAExD,MAAM,yBAAyB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAEzG,CAAA;AAED,eAAO,MAAM,+BAA+B,GAC1C,aAAa,QAAQ,KACpB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAIhG,CAAA"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { Schema } from '@livestore/utils/effect';
|
2
|
+
import { nanoid } from '@livestore/utils/nanoid';
|
3
|
+
import * as SessionInfo from './devtools-sessioninfo.js';
|
4
|
+
export * from './devtools-messages.js';
|
5
|
+
export * as SessionInfo from './devtools-sessioninfo.js';
|
6
|
+
export const DevtoolsMode = Schema.Union(Schema.TaggedStruct('node', {
|
7
|
+
/** WebSocket URL */
|
8
|
+
url: Schema.String,
|
9
|
+
}), Schema.TaggedStruct('web', {}), Schema.TaggedStruct('browser-extension', {}));
|
10
|
+
export const DevtoolsModeTag = DevtoolsMode.pipe(Schema.pluck('_tag'), Schema.typeSchema);
|
11
|
+
export const makeNodeName = {
|
12
|
+
devtools: {
|
13
|
+
random: () => `devtools-instance-${nanoid()}`,
|
14
|
+
},
|
15
|
+
client: {
|
16
|
+
session: ({ storeId, clientId, sessionId }) => `client-session-${storeId}-${clientId}-${sessionId}`,
|
17
|
+
leader: ({ storeId, clientId }) => `client-leader-${storeId}-${clientId}`,
|
18
|
+
},
|
19
|
+
};
|
20
|
+
export const makeChannelName = {
|
21
|
+
sessionInfo: () => `session-info`,
|
22
|
+
devtoolsClientSession: ({ storeId, clientId, sessionId }) => `devtools-channel(client-session-${storeId}-${clientId}-${sessionId})`,
|
23
|
+
devtoolsClientLeader: ({ storeId, clientId, sessionId }) => `devtools-channel(client-leader-${storeId}-${clientId}-${sessionId})`,
|
24
|
+
};
|
25
|
+
export const isChannelName = {
|
26
|
+
devtoolsClientSession: (channelName, { storeId, clientId, sessionId }) => channelName === makeChannelName.devtoolsClientSession({ storeId, clientId, sessionId }),
|
27
|
+
devtoolsClientLeader: (channelName, { storeId, clientId }) => channelName.startsWith(`devtools-channel(client-leader-${storeId}-${clientId}`),
|
28
|
+
};
|
29
|
+
export const makeSessionInfoBroadcastChannel = (webmeshNode) => webmeshNode.makeBroadcastChannel({
|
30
|
+
channelName: makeChannelName.sessionInfo(),
|
31
|
+
schema: SessionInfo.Message,
|
32
|
+
});
|
33
|
+
//# sourceMappingURL=mod.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAExD,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CACtC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;IAC1B,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CAAC,EACF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,EAC9B,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAC7C,CAAA;AAID,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;AAGzF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG,EAAE,CAAC,qBAAqB,MAAM,EAAE,EAAE;KAC9C;IACD,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAA4D,EAAE,EAAE,CACtG,kBAAkB,OAAO,IAAI,QAAQ,IAAI,SAAS,EAAE;QACtD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAyC,EAAE,EAAE,CAAC,iBAAiB,OAAO,IAAI,QAAQ,EAAE;KACjH;CACF,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc;IACjC,qBAAqB,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAA4D,EAAE,EAAE,CACpH,mCAAmC,OAAO,IAAI,QAAQ,IAAI,SAAS,GAAG;IACxE,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAA4D,EAAE,EAAE,CACnH,kCAAkC,OAAO,IAAI,QAAQ,IAAI,SAAS,GAAG;CACxE,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,qBAAqB,EAAE,CACrB,WAAmB,EACnB,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAA4D,EAC1F,EAAE,CAAC,WAAW,KAAK,eAAe,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC5F,oBAAoB,EAAE,CAAC,WAAmB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAyC,EAAE,EAAE,CAC1G,WAAW,CAAC,UAAU,CAAC,kCAAkC,OAAO,IAAI,QAAQ,EAAE,CAAC;CAClF,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,WAAqB,EAC+E,EAAE,CACtG,WAAW,CAAC,oBAAoB,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE;IAC1C,MAAM,EAAE,WAAW,CAAC,OAAO;CAC5B,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
@@ -1,22 +1,16 @@
|
|
1
|
-
export * from './schema/system-tables.js';
|
1
|
+
export * from './schema/state/sqlite/system-tables.js';
|
2
2
|
export * from './util.js';
|
3
3
|
export * from './adapter-types.js';
|
4
4
|
export * from './schema-management/migrations.js';
|
5
|
-
export * from './
|
6
|
-
export * from './
|
7
|
-
export * from './rehydrate-from-mutationlog.js';
|
8
|
-
export * from './query-info.js';
|
9
|
-
export * from './derived-mutations.js';
|
5
|
+
export * from './materializer-helper.js';
|
6
|
+
export * from './rematerialize-from-eventlog.js';
|
10
7
|
export * from './sync/index.js';
|
11
|
-
export * as Devtools from './devtools/
|
8
|
+
export * as Devtools from './devtools/mod.js';
|
12
9
|
export * from './debug-info.js';
|
13
10
|
export * from './bounded-collections.js';
|
14
11
|
export * from './version.js';
|
15
|
-
export * from './query-builder/mod.js';
|
16
|
-
export * from './sync/syncstate.js';
|
12
|
+
export * from './schema/state/sqlite/query-builder/mod.js';
|
13
|
+
export * as SyncState from './sync/syncstate.js';
|
17
14
|
export * from './otel.js';
|
18
|
-
|
19
|
-
interface LiveStoreGlobal {
|
20
|
-
}
|
21
|
-
}
|
15
|
+
export * from './make-client-session.js';
|
22
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA;AACtD,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,4CAA4C,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA;AACzB,cAAc,0BAA0B,CAAA"}
|
package/dist/index.js
CHANGED
@@ -1,18 +1,16 @@
|
|
1
|
-
export * from './schema/system-tables.js';
|
1
|
+
export * from './schema/state/sqlite/system-tables.js';
|
2
2
|
export * from './util.js';
|
3
3
|
export * from './adapter-types.js';
|
4
4
|
export * from './schema-management/migrations.js';
|
5
|
-
export * from './
|
6
|
-
export * from './
|
7
|
-
export * from './rehydrate-from-mutationlog.js';
|
8
|
-
export * from './query-info.js';
|
9
|
-
export * from './derived-mutations.js';
|
5
|
+
export * from './materializer-helper.js';
|
6
|
+
export * from './rematerialize-from-eventlog.js';
|
10
7
|
export * from './sync/index.js';
|
11
|
-
export * as Devtools from './devtools/
|
8
|
+
export * as Devtools from './devtools/mod.js';
|
12
9
|
export * from './debug-info.js';
|
13
10
|
export * from './bounded-collections.js';
|
14
11
|
export * from './version.js';
|
15
|
-
export * from './query-builder/mod.js';
|
16
|
-
export * from './sync/syncstate.js';
|
12
|
+
export * from './schema/state/sqlite/query-builder/mod.js';
|
13
|
+
export * as SyncState from './sync/syncstate.js';
|
17
14
|
export * from './otel.js';
|
15
|
+
export * from './make-client-session.js';
|
18
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA;AACtD,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,4CAA4C,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA;AACzB,cAAc,0BAA0B,CAAA"}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import type { Scope } from '@livestore/utils/effect';
|
2
|
+
import { Effect } from '@livestore/utils/effect';
|
3
|
+
import type { SqliteDb } from '../adapter-types.js';
|
4
|
+
import { UnexpectedError } from '../adapter-types.js';
|
5
|
+
import type { LiveStoreSchema } from '../schema/mod.js';
|
6
|
+
import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.js';
|
7
|
+
/**
|
8
|
+
* The LeaderSyncProcessor manages synchronization of events between
|
9
|
+
* the local state and the sync backend, ensuring efficient and orderly processing.
|
10
|
+
*
|
11
|
+
* In the LeaderSyncProcessor, pulling always has precedence over pushing.
|
12
|
+
*
|
13
|
+
* Responsibilities:
|
14
|
+
* - Queueing incoming local events in a localPushesQueue.
|
15
|
+
* - Broadcasting events to client sessions via pull queues.
|
16
|
+
* - Pushing events to the sync backend.
|
17
|
+
*
|
18
|
+
* Notes:
|
19
|
+
*
|
20
|
+
* local push processing:
|
21
|
+
* - localPushesQueue:
|
22
|
+
* - Maintains events in ascending order.
|
23
|
+
* - Uses `Deferred` objects to resolve/reject events based on application success.
|
24
|
+
* - Processes events from the queue, applying events in batches.
|
25
|
+
* - Controlled by a `Latch` to manage execution flow.
|
26
|
+
* - The latch closes on pull receipt and re-opens post-pull completion.
|
27
|
+
* - Processes up to `maxBatchSize` events per cycle.
|
28
|
+
*
|
29
|
+
* Currently we're advancing the db read model and eventlog in lockstep, but we could also decouple this in the future
|
30
|
+
*
|
31
|
+
* Tricky concurrency scenarios:
|
32
|
+
* - Queued local push batches becoming invalid due to a prior local push item being rejected.
|
33
|
+
* Solution: Introduce a generation number for local push batches which is used to filter out old batches items in case of rejection.
|
34
|
+
*
|
35
|
+
*/
|
36
|
+
export declare const makeLeaderSyncProcessor: ({ schema, dbEventlogMissing, dbEventlog, dbState, dbStateMissing, initialBlockingSyncContext, onError, params, testing, }: {
|
37
|
+
schema: LiveStoreSchema;
|
38
|
+
/** Only used to know whether we can safely query dbEventlog during setup execution */
|
39
|
+
dbEventlogMissing: boolean;
|
40
|
+
dbEventlog: SqliteDb;
|
41
|
+
dbState: SqliteDb;
|
42
|
+
/** Only used to know whether we can safely query dbState during setup execution */
|
43
|
+
dbStateMissing: boolean;
|
44
|
+
initialBlockingSyncContext: InitialBlockingSyncContext;
|
45
|
+
onError: "shutdown" | "ignore";
|
46
|
+
params: {
|
47
|
+
/**
|
48
|
+
* @default 10
|
49
|
+
*/
|
50
|
+
localPushBatchSize?: number;
|
51
|
+
/**
|
52
|
+
* @default 50
|
53
|
+
*/
|
54
|
+
backendPushBatchSize?: number;
|
55
|
+
};
|
56
|
+
testing: {
|
57
|
+
delays?: {
|
58
|
+
localPushProcessing?: Effect.Effect<void>;
|
59
|
+
};
|
60
|
+
};
|
61
|
+
}) => Effect.Effect<LeaderSyncProcessor, UnexpectedError, Scope.Scope>;
|
62
|
+
//# sourceMappingURL=LeaderSyncProcessor.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,KAAK,EAAU,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAGL,MAAM,EASP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAOvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,uBAAuB,GAAI,2HAUrC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,sFAAsF;IACtF,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,QAAQ,CAAA;IACpB,OAAO,EAAE,QAAQ,CAAA;IACjB,mFAAmF;IACnF,cAAc,EAAE,OAAO,CAAA;IACvB,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC9B,MAAM,EAAE;QACN;;WAEG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B;;WAEG;QACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,CAAC,EAAE;YACP,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAC1C,CAAA;KACF,CAAA;CACF,KAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CA6R/D,CAAA"}
|