@rocicorp/zero 0.0.202410041744 → 0.2.2024101100
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/out/btree/src/mod.d.ts +2 -0
- package/out/btree/src/mod.d.ts.map +1 -0
- package/out/btree/src/mod.js +2 -0
- package/out/btree/src/mod.js.map +1 -0
- package/out/datadog/src/mod.js +2 -0
- package/out/datadog/src/mod.js.map +1 -0
- package/out/react.js +9 -3
- package/out/react.js.map +3 -3
- package/out/replicache/src/btree/node.d.ts.map +1 -1
- package/out/replicache/src/config.d.ts.map +1 -1
- package/out/replicache/src/connection-loop.d.ts.map +1 -1
- package/out/replicache/src/cookies.d.ts.map +1 -1
- package/out/replicache/src/dag/gc.d.ts.map +1 -1
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
- package/out/replicache/src/db/scan.d.ts.map +1 -1
- package/out/replicache/src/frozen-json.d.ts.map +1 -1
- package/out/replicache/src/get-default-puller.d.ts.map +1 -1
- package/out/replicache/src/hash.d.ts.map +1 -1
- package/out/replicache/src/http-request-info.d.ts.map +1 -1
- package/out/replicache/src/index-defs.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
- package/out/replicache/src/kv/store.d.ts.map +1 -1
- package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -1
- package/out/replicache/src/mod.d.ts.map +1 -1
- package/out/replicache/src/mutation-recovery.d.ts.map +1 -1
- package/out/replicache/src/patch-operation.d.ts.map +1 -1
- package/out/replicache/src/pending-mutations.d.ts.map +1 -1
- package/out/replicache/src/persist/client-groups.d.ts.map +1 -1
- package/out/replicache/src/persist/clients.d.ts.map +1 -1
- package/out/replicache/src/puller.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts +0 -1
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache.d.ts.map +1 -1
- package/out/replicache/src/scan-iterator.d.ts.map +1 -1
- package/out/replicache/src/subscriptions.d.ts +1 -1
- package/out/replicache/src/subscriptions.d.ts.map +1 -1
- package/out/replicache/src/sync/ids.d.ts.map +1 -1
- package/out/replicache/src/sync/patch.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/sync/push.d.ts.map +1 -1
- package/out/replicache/src/sync/request-id.d.ts.map +1 -1
- package/out/replicache/src/transactions.d.ts.map +1 -1
- package/out/replicache/src/types.d.ts.map +1 -1
- package/out/shared/src/browser-env.d.ts +4 -2
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/h64-with-reverse.d.ts +6 -0
- package/out/shared/src/h64-with-reverse.d.ts.map +1 -0
- package/out/shared/src/h64-with-reverse.js +13 -0
- package/out/shared/src/h64-with-reverse.js.map +1 -0
- package/out/shared/src/reverse-string.d.ts +2 -0
- package/out/shared/src/reverse-string.d.ts.map +1 -0
- package/out/shared/src/reverse-string.js +8 -0
- package/out/shared/src/reverse-string.js.map +1 -0
- package/out/zero/src/cli.js +0 -0
- package/out/zero/src/react.d.ts +1 -1
- package/out/zero/src/react.d.ts.map +1 -1
- package/out/zero/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero/src/server/change-streamer.js.map +1 -1
- package/out/zero/src/server/main.d.ts.map +1 -1
- package/out/zero/src/server/main.js.map +1 -1
- package/out/zero/src/server/replicator.d.ts.map +1 -1
- package/out/zero/src/server/replicator.js.map +1 -1
- package/out/zero/src/server/syncer.d.ts.map +1 -1
- package/out/zero/src/server/syncer.js.map +1 -1
- package/out/zero/src/zero.d.ts +1 -1
- package/out/zero/src/zero.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +46 -21
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +38 -20
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/statements.d.ts +2 -0
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/db/statements.js +6 -0
- package/out/zero-cache/src/db/statements.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +5 -5
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/life-cycle.d.ts +38 -0
- package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -0
- package/out/zero-cache/src/server/life-cycle.js +125 -0
- package/out/zero-cache/src/server/life-cycle.js.map +1 -0
- package/out/zero-cache/src/server/logging.d.ts.map +1 -1
- package/out/zero-cache/src/server/logging.js +43 -4
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/main.js +18 -16
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/server/replicator.js +12 -11
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +9 -8
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +3 -3
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +11 -10
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +4 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +10 -5
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +6 -6
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +3 -2
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +20 -68
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js +3 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.js +2 -6
- package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +15 -8
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +8 -4
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +25 -16
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +8 -7
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +88 -57
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +4 -13
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.js +2 -2
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +7 -7
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +3 -3
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/runner.d.ts +2 -5
- package/out/zero-cache/src/services/runner.d.ts.map +1 -1
- package/out/zero-cache/src/services/runner.js +4 -22
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/running-state.js +3 -3
- package/out/zero-cache/src/services/running-state.js.map +1 -1
- package/out/zero-cache/src/services/service.d.ts +8 -0
- package/out/zero-cache/src/services/service.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -2
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +14 -3
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +12 -9
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +33 -23
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +30 -14
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +38 -37
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +28 -44
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -1
- package/out/zero-cache/src/types/bigint-json.js.map +1 -1
- package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -1
- package/out/zero-cache/src/types/lexi-version.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +30 -8
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +114 -15
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +21 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +49 -6
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +1 -1
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +8 -14
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/row-key.d.ts +4 -1
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
- package/out/zero-cache/src/types/row-key.js +5 -14
- package/out/zero-cache/src/types/row-key.js.map +1 -1
- package/out/zero-cache/src/types/schema-versions.d.ts +8 -0
- package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -0
- package/out/zero-cache/src/types/schema-versions.js +21 -0
- package/out/zero-cache/src/types/schema-versions.js.map +1 -0
- package/out/zero-cache/src/types/streams.d.ts +2 -2
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js +36 -26
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/timeout.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +6 -6
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +4 -4
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +3 -31
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts +12 -4
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +34 -2
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +4 -4
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.d.ts +20 -18
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.d.ts +2 -2
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/log-options.d.ts +1 -1
- package/out/zero-client/src/client/log-options.d.ts.map +1 -1
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts +5 -0
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts.map +1 -0
- package/out/zero-client/src/client/metrics.d.ts.map +1 -1
- package/out/zero-client/src/client/options.d.ts +1 -1
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts +5 -3
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/replicache-types.d.ts +1 -1
- package/out/zero-client/src/client/replicache-types.d.ts.map +1 -1
- package/out/zero-client/src/client/server-error.d.ts.map +1 -1
- package/out/zero-client/src/client/server-option.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +5 -4
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +3 -3
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +2 -2
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-client/src/util/socket.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +5 -8
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
- package/out/zero-protocol/src/clients-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/clients-patch.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/delete-clients.d.ts.map +1 -1
- package/out/zero-protocol/src/delete-clients.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +9 -5
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/entities-patch.d.ts +15 -15
- package/out/zero-protocol/src/entities-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/entities-patch.js +5 -4
- package/out/zero-protocol/src/entities-patch.js.map +1 -1
- package/out/zero-protocol/src/error.d.ts +2 -1
- package/out/zero-protocol/src/error.d.ts.map +1 -1
- package/out/zero-protocol/src/error.js +2 -1
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/ping.d.ts.map +1 -1
- package/out/zero-protocol/src/ping.js.map +1 -1
- package/out/zero-protocol/src/poke.d.ts +18 -10
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +4 -0
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.d.ts.map +1 -1
- package/out/zero-protocol/src/pong.js.map +1 -1
- package/out/zero-protocol/src/primary-key.d.ts +9 -0
- package/out/zero-protocol/src/primary-key.d.ts.map +1 -0
- package/out/zero-protocol/src/primary-key.js +7 -0
- package/out/zero-protocol/src/primary-key.js.map +1 -0
- package/out/zero-protocol/src/pull.d.ts.map +1 -1
- package/out/zero-protocol/src/pull.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +53 -53
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +5 -5
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/queries-patch.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +8 -8
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-protocol/src/version.d.ts.map +1 -1
- package/out/zero-protocol/src/version.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts +1 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-zero.d.ts +1 -1
- package/out/zero-react/src/use-zero.d.ts.map +1 -1
- package/out/zero.js +294 -124
- package/out/zero.js.map +4 -4
- package/out/zql/src/zql/ast/ast.js.map +1 -1
- package/out/zql/src/zql/builder/builder.d.ts.map +1 -1
- package/out/zql/src/zql/builder/builder.js.map +1 -1
- package/out/zql/src/zql/builder/filter.js.map +1 -1
- package/out/zql/src/zql/builder/like.js.map +1 -1
- package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.js +1 -1
- package/out/zql/src/zql/ivm/data.js.map +1 -1
- package/out/zql/src/zql/ivm/filter.js.map +1 -1
- package/out/zql/src/zql/ivm/join.js.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.js +1 -1
- package/out/zql/src/zql/ivm/memory-source.js.map +1 -1
- package/out/zql/src/zql/ivm/memory-storage.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.d.ts +1 -1
- package/out/zql/src/zql/ivm/schema.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.js.map +1 -1
- package/out/zql/src/zql/ivm/skip.js.map +1 -1
- package/out/zql/src/zql/ivm/take.js.map +1 -1
- package/out/zql/src/zql/query/query-impl.d.ts +4 -1
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/zql/query/query.d.ts +2 -1
- package/out/zql/src/zql/query/query.d.ts.map +1 -1
- package/out/zql/src/zql/query/typed-view.d.ts.map +1 -1
- package/out/zqlite/src/db.js +1 -1
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/internal/statement-cache.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +36 -33
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +10 -6
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts +0 -79
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/checkpointer.js +0 -124
- package/out/zero-cache/src/services/replicator/checkpointer.js.map +0 -1
- package/out/zero-protocol/src/entity.d.ts +0 -9
- package/out/zero-protocol/src/entity.d.ts.map +0 -1
- package/out/zero-protocol/src/entity.js +0 -8
- package/out/zero-protocol/src/entity.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,EAAE,EAAgC,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAE5D,MAAM,EACJ,KAAK,EAAE,EAAC,QAAQ,EAAE,aAAa,EAAC,GACjC,GAAG,EAAE,CAAC;AAEP,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,uCAAuC;AAEvE,6EAA6E;AAC7E,MAAM,UAAU,2BAA2B;IACzC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,aAAa,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,12 @@ export declare const MESSAGE_TYPES: {
|
|
|
14
14
|
readonly status: "status";
|
|
15
15
|
readonly subscribe: "subscribe";
|
|
16
16
|
readonly notify: "notify";
|
|
17
|
-
readonly ackNotify: "ackNotify";
|
|
18
17
|
readonly ready: "ready";
|
|
19
18
|
};
|
|
20
19
|
export type Message<Payload> = [keyof typeof MESSAGE_TYPES, Payload];
|
|
21
20
|
export interface Receiver {
|
|
22
21
|
send<M extends Message<unknown>>(message: M, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean;
|
|
22
|
+
kill(signal?: NodeJS.Signals): void;
|
|
23
23
|
}
|
|
24
24
|
export interface Sender extends EventEmitter {
|
|
25
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/processes.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/processes.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,MAAM,MAAM,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,OAAO,aAAa,EAAE,OAAO,CAAC,CAAC;AAwCrE,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,EAC7B,OAAO,EAAE,CAAC,EACV,UAAU,CAAC,EAAE,UAAU,EACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GACvC,OAAO,CAAC;IAEX,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,EACtC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EACV,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,KAAK,IAAI,GACpD,IAAI,CAAC;IAER;;;;OAIG;IACH,eAAe,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,EACxC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EACV,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,KAAK,IAAI,GACpD,IAAI,CAAC;CACT;AAED,MAAM,WAAW,MAAO,SAAQ,MAAM,EAAE,QAAQ;CAAG;AAkCnD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,GAAG,IAE5B,CAAC;AAIT,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAmB5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BhD"}
|
|
@@ -14,7 +14,6 @@ export const MESSAGE_TYPES = {
|
|
|
14
14
|
status: 'status',
|
|
15
15
|
subscribe: 'subscribe',
|
|
16
16
|
notify: 'notify',
|
|
17
|
-
ackNotify: 'ackNotify',
|
|
18
17
|
ready: 'ready',
|
|
19
18
|
};
|
|
20
19
|
function getMessage(type, data) {
|
|
@@ -79,20 +78,14 @@ export function childWorker(absModulePath, ...args) {
|
|
|
79
78
|
if (singleProcessMode()) {
|
|
80
79
|
const [parent, child] = inProcChannel();
|
|
81
80
|
import(absModulePath)
|
|
82
|
-
.then(({ default: runWorker }) => runWorker(parent, ...args))
|
|
81
|
+
.then(({ default: runWorker }) => runWorker(parent, ...args).then(() => child.emit('close', 0), (err) => child.emit('error', err)))
|
|
83
82
|
.catch(err => child.emit('error', err));
|
|
84
83
|
return child;
|
|
85
84
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
// > * 'SIGSTOP' cannot have a listener installed.
|
|
91
|
-
for (const sig of ['SIGINT', 'SIGQUIT', 'SIGTERM']) {
|
|
92
|
-
process.on(sig, () => worker.kill(sig));
|
|
93
|
-
}
|
|
94
|
-
process.on('exit', () => worker.kill());
|
|
95
|
-
return worker;
|
|
85
|
+
return wrap(fork(absModulePath, args, {
|
|
86
|
+
detached: true, // do not automatically propagate SIGINT
|
|
87
|
+
serialization: 'advanced', // use structured clone for IPC
|
|
88
|
+
}));
|
|
96
89
|
}
|
|
97
90
|
/**
|
|
98
91
|
* Creates two connected `Worker` instances such that messages sent to one
|
|
@@ -113,9 +106,10 @@ export function inProcChannel() {
|
|
|
113
106
|
}
|
|
114
107
|
return true;
|
|
115
108
|
};
|
|
109
|
+
const kill = (dest) => (signal = 'SIGTERM') => dest.emit(signal, signal);
|
|
116
110
|
return [
|
|
117
|
-
wrap(Object.assign(worker1, { send: sendTo(worker2) })),
|
|
118
|
-
wrap(Object.assign(worker2, { send: sendTo(worker1) })),
|
|
111
|
+
wrap(Object.assign(worker1, { send: sendTo(worker2), kill: kill(worker2) })),
|
|
112
|
+
wrap(Object.assign(worker2, { send: sendTo(worker1), kill: kill(worker1) })),
|
|
119
113
|
];
|
|
120
114
|
}
|
|
121
115
|
//# sourceMappingURL=processes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/processes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,IAAI,GAGL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,
|
|
1
|
+
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/processes.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,11 @@ export type RowValue = RowKey;
|
|
|
14
14
|
/**
|
|
15
15
|
* Returns the `RowKey` such that key iteration produces a sorted sequence. If the
|
|
16
16
|
* keys are already sorted, the input is returned as is.
|
|
17
|
+
*
|
|
18
|
+
* Note that the value type is parameterized as `V` so that this method can be used
|
|
19
|
+
* for both (pg) RowKeys and LiteRowKeys.
|
|
17
20
|
*/
|
|
18
|
-
export declare function normalizedKeyOrder(rowKey:
|
|
21
|
+
export declare function normalizedKeyOrder<V>(rowKey: Readonly<Record<string, V>>): Readonly<Record<string, V>>;
|
|
19
22
|
/**
|
|
20
23
|
* Returns a normalized string suitable for representing a row key in a form
|
|
21
24
|
* that can be used as a Map key.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-key.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/row-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAI9E,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B
|
|
1
|
+
{"version":3,"file":"row-key.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/row-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAI9E,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAClC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAa7B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAU3C"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { h64WithReverse } from '../../../shared/src/h64-with-reverse.js';
|
|
2
2
|
import { stringify } from './bigint-json.js';
|
|
3
3
|
/**
|
|
4
4
|
* Returns the `RowKey` such that key iteration produces a sorted sequence. If the
|
|
5
5
|
* keys are already sorted, the input is returned as is.
|
|
6
|
+
*
|
|
7
|
+
* Note that the value type is parameterized as `V` so that this method can be used
|
|
8
|
+
* for both (pg) RowKeys and LiteRowKeys.
|
|
6
9
|
*/
|
|
7
10
|
export function normalizedKeyOrder(rowKey) {
|
|
8
11
|
let last = '';
|
|
@@ -45,20 +48,8 @@ export function rowIDHash(id) {
|
|
|
45
48
|
return hash;
|
|
46
49
|
}
|
|
47
50
|
const str = stringify([id.schema, id.table, ...tuples(id.rowKey)]);
|
|
48
|
-
|
|
49
|
-
// to get better collision resistance.
|
|
50
|
-
const forward = h64(str);
|
|
51
|
-
const backward = h64(reverse(str));
|
|
52
|
-
const full = (forward << 64n) + backward;
|
|
53
|
-
hash = full.toString(36);
|
|
51
|
+
hash = h64WithReverse(str);
|
|
54
52
|
rowIDHashes.set(id, hash);
|
|
55
53
|
return hash;
|
|
56
54
|
}
|
|
57
|
-
function reverse(str) {
|
|
58
|
-
let reversed = '';
|
|
59
|
-
for (let i = str.length - 1; i >= 0; i--) {
|
|
60
|
-
reversed += str[i];
|
|
61
|
-
}
|
|
62
|
-
return reversed;
|
|
63
|
-
}
|
|
64
55
|
//# sourceMappingURL=row-key.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-key.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/row-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"row-key.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/row-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAC,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AAa3D;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAmC;IAEnC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,GAAG,CAAC;IACb,CAAC;IACD,0EAA0E;IAC1E,2DAA2D;IAC3D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,OAAO,EAAiB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,EAAS;IACjC,IAAI,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ErrorForClient } from './error-for-client.js';
|
|
2
|
+
export type SchemaVersions = {
|
|
3
|
+
readonly minSupportedVersion: number;
|
|
4
|
+
readonly maxSupportedVersion: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function throwErrorForClientIfSchemaVersionNotSupported(schemaVersion: number, schemaVersions: SchemaVersions): void;
|
|
7
|
+
export declare function getErrorForClientIfSchemaVersionNotSupported(schemaVersion: number, schemaVersions: SchemaVersions): ErrorForClient | undefined;
|
|
8
|
+
//# sourceMappingURL=schema-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-versions.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/schema-versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,wBAAgB,8CAA8C,CAC5D,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,cAAc,QAS/B;AAED,wBAAgB,4CAA4C,CAC1D,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,cAAc,8BAc/B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ErrorKind } from '../../../zero-protocol/src/mod.js';
|
|
2
|
+
import { ErrorForClient } from './error-for-client.js';
|
|
3
|
+
export function throwErrorForClientIfSchemaVersionNotSupported(schemaVersion, schemaVersions) {
|
|
4
|
+
const error = getErrorForClientIfSchemaVersionNotSupported(schemaVersion, schemaVersions);
|
|
5
|
+
if (error) {
|
|
6
|
+
throw error;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function getErrorForClientIfSchemaVersionNotSupported(schemaVersion, schemaVersions) {
|
|
10
|
+
const { minSupportedVersion, maxSupportedVersion } = schemaVersions;
|
|
11
|
+
if (schemaVersion < minSupportedVersion ||
|
|
12
|
+
schemaVersion > maxSupportedVersion) {
|
|
13
|
+
return new ErrorForClient([
|
|
14
|
+
'error',
|
|
15
|
+
ErrorKind.SchemaVersionNotSupported,
|
|
16
|
+
`Schema version ${schemaVersion} is not in range of supported schema versions [${minSupportedVersion}, ${maxSupportedVersion}].`,
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=schema-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-versions.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/schema-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAOrD,MAAM,UAAU,8CAA8C,CAC5D,aAAqB,EACrB,cAA8B;IAE9B,MAAM,KAAK,GAAG,4CAA4C,CACxD,aAAa,EACb,cAAc,CACf,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4CAA4C,CAC1D,aAAqB,EACrB,cAA8B;IAE9B,MAAM,EAAC,mBAAmB,EAAE,mBAAmB,EAAC,GAAG,cAAc,CAAC;IAClE,IACE,aAAa,GAAG,mBAAmB;QACnC,aAAa,GAAG,mBAAmB,EACnC,CAAC;QACD,OAAO,IAAI,cAAc,CAAC;YACxB,OAAO;YACP,SAAS,CAAC,yBAAyB;YACnC,kBAAkB,aAAa,kDAAkD,mBAAmB,KAAK,mBAAmB,IAAI;SACjI,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import * as v from '../../../shared/src/valita.js';
|
|
3
2
|
import type { WebSocket } from 'ws';
|
|
3
|
+
import * as v from '../../../shared/src/valita.js';
|
|
4
4
|
import { type JSONValue } from './bigint-json.js';
|
|
5
5
|
export type Source<T> = AsyncIterable<T> & {
|
|
6
6
|
/**
|
|
@@ -29,5 +29,5 @@ export type Sink<T> = {
|
|
|
29
29
|
push(message: T): void;
|
|
30
30
|
};
|
|
31
31
|
export declare function streamOut<T extends JSONValue>(lc: LogContext, source: Source<T>, sink: WebSocket): Promise<void>;
|
|
32
|
-
export declare function streamIn<T extends JSONValue>(lc: LogContext, source: WebSocket, schema: v.Type<T>): Source<T
|
|
32
|
+
export declare function streamIn<T extends JSONValue>(lc: LogContext, source: WebSocket, schema: v.Type<T>): Promise<Source<T>>;
|
|
33
33
|
//# sourceMappingURL=streams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAuC,SAAS,EAAC,MAAM,IAAI,CAAC;AAExE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAG5D,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG;IACzC;;;;OAIG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAC,CAAC,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;IACpB,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CACxB,CAAC;AAcF,wBAAsB,SAAS,CAAC,CAAC,SAAS,SAAS,EACjD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED,wBAAsB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAChD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAmCpB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolver } from '@rocicorp/resolver';
|
|
1
2
|
import { Queue } from '../../../shared/src/queue.js';
|
|
2
3
|
import * as v from '../../../shared/src/valita.js';
|
|
3
4
|
import { BigIntJSON } from './bigint-json.js';
|
|
@@ -39,6 +40,7 @@ export async function streamOut(lc, source, sink) {
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
else {
|
|
43
|
+
lc.debug?.(`started synchronous outbound stream`);
|
|
42
44
|
for await (const msg of source) {
|
|
43
45
|
const id = ++nextID;
|
|
44
46
|
const data = BigIntJSON.stringify({ msg, id });
|
|
@@ -57,7 +59,7 @@ export async function streamOut(lc, source, sink) {
|
|
|
57
59
|
closer.close(e);
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
|
-
export function streamIn(lc, source, schema) {
|
|
62
|
+
export async function streamIn(lc, source, schema) {
|
|
61
63
|
const streamedSchema = v.object({
|
|
62
64
|
msg: schema,
|
|
63
65
|
id: v.number(),
|
|
@@ -84,58 +86,66 @@ export function streamIn(lc, source, schema) {
|
|
|
84
86
|
closer.close(e);
|
|
85
87
|
}
|
|
86
88
|
}
|
|
89
|
+
await closer.connected;
|
|
87
90
|
return sink;
|
|
88
91
|
}
|
|
89
92
|
class WebSocketCloser {
|
|
90
93
|
#lc;
|
|
91
94
|
#ws;
|
|
92
95
|
#stream;
|
|
93
|
-
#closeHandler;
|
|
94
|
-
#errorHandler;
|
|
95
96
|
#messageHandler;
|
|
96
|
-
#
|
|
97
|
+
#connected = resolver();
|
|
98
|
+
get connected() {
|
|
99
|
+
return this.#connected.promise;
|
|
100
|
+
}
|
|
97
101
|
constructor(lc, ws, stream, messageHandler) {
|
|
98
102
|
this.#lc = lc;
|
|
99
103
|
this.#ws = ws;
|
|
100
104
|
this.#stream = stream;
|
|
101
105
|
this.#messageHandler = messageHandler ?? null;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
ws.addEventListener('
|
|
105
|
-
ws.addEventListener('error', this.#errorHandler);
|
|
106
|
+
ws.addEventListener('open', this.#handleOpen);
|
|
107
|
+
ws.addEventListener('close', this.#handleClose);
|
|
108
|
+
ws.addEventListener('error', this.#handleError);
|
|
106
109
|
if (this.#messageHandler) {
|
|
107
110
|
ws.addEventListener('message', this.#messageHandler);
|
|
108
111
|
}
|
|
112
|
+
switch (ws.readyState) {
|
|
113
|
+
case ws.CONNECTING:
|
|
114
|
+
break; // expected for new connections. resolve or reject in handlers.
|
|
115
|
+
case ws.OPEN:
|
|
116
|
+
this.#connected.resolve();
|
|
117
|
+
break;
|
|
118
|
+
default:
|
|
119
|
+
this.#connected.reject(new Error(`websocket already in state ${ws.readyState}`));
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
109
122
|
}
|
|
110
|
-
#
|
|
123
|
+
#handleOpen = () => {
|
|
124
|
+
this.#lc.info?.('connected');
|
|
125
|
+
this.#connected.resolve();
|
|
126
|
+
};
|
|
127
|
+
#handleClose = (e) => {
|
|
111
128
|
const { code, reason, wasClean } = e;
|
|
112
|
-
this.#lc.info?.('
|
|
129
|
+
this.#lc.info?.('connection closed', { code, reason, wasClean });
|
|
113
130
|
this.close();
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
131
|
+
this.#connected.reject(`connection closed with code ${code}`);
|
|
132
|
+
};
|
|
133
|
+
#handleError = ({ message, error }) => {
|
|
134
|
+
this.#lc.error?.('connection error', message, error);
|
|
135
|
+
this.#connected.reject(error);
|
|
136
|
+
};
|
|
119
137
|
close(err) {
|
|
120
|
-
if (this.#closed) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
138
|
if (err) {
|
|
124
139
|
this.#lc.error?.(`closing stream with error`, err);
|
|
125
140
|
}
|
|
126
|
-
this.#closed = true;
|
|
127
|
-
this.#ws.removeEventListener('close', this.#closeHandler);
|
|
128
|
-
this.#ws.removeEventListener('error', this.#errorHandler);
|
|
129
|
-
if (this.#messageHandler) {
|
|
130
|
-
this.#ws.removeEventListener('message', this.#messageHandler);
|
|
131
|
-
}
|
|
132
141
|
this.#stream.cancel();
|
|
133
|
-
if (this
|
|
142
|
+
if (!this.closed()) {
|
|
134
143
|
this.#ws.close();
|
|
135
144
|
}
|
|
136
145
|
}
|
|
137
146
|
closed() {
|
|
138
|
-
return this.#
|
|
147
|
+
return (this.#ws.readyState === this.#ws.CLOSED ||
|
|
148
|
+
this.#ws.readyState === this.#ws.CLOSING);
|
|
139
149
|
}
|
|
140
150
|
}
|
|
141
151
|
//# sourceMappingURL=streams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/streams.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,OAAmB,EACnB,SAAiB;IAEjB,OAAO,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAmB,EACnB,SAAiB,EACjB,YAAe;IAEf,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAEL,KAAK,UAAU,EAEf,KAAK,YAAY,EAGlB,MAAM,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAEL,KAAK,UAAU,EAEf,KAAK,YAAY,EAGlB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAEV,UAAU,EACX,MAAM,wCAAwC,CAAC;AAGhD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAErC;;;;;;;GAOG;AACH,qBAAa,UAAU;;gBAgBnB,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,IAAI;IA6BrB,KAAK;IAuIL,IAAI,CAAC,IAAI,EAAE,UAAU;IAIrB,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO;CAGvD;AAED,wBAAgB,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,QAEnD;AAED,wBAAgB,SAAS,CACvB,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,SAAS,EACb,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,OAAO,QAMjB"}
|
|
@@ -27,9 +27,9 @@ export class Connection {
|
|
|
27
27
|
constructor(lc, authData, viewSyncer, mutagen, connectParams, ws, onClose) {
|
|
28
28
|
this.#ws = ws;
|
|
29
29
|
this.#authData = authData;
|
|
30
|
-
const { clientGroupID, clientID, wsID, baseCookie } = connectParams;
|
|
30
|
+
const { clientGroupID, clientID, wsID, baseCookie, schemaVersion } = connectParams;
|
|
31
31
|
this.#clientGroupID = clientGroupID;
|
|
32
|
-
this.#syncContext = { clientID, wsID, baseCookie };
|
|
32
|
+
this.#syncContext = { clientID, wsID, baseCookie, schemaVersion };
|
|
33
33
|
this.#lc = lc
|
|
34
34
|
.withContext('connection')
|
|
35
35
|
.withContext('clientID', clientID)
|
|
@@ -89,7 +89,7 @@ export class Connection {
|
|
|
89
89
|
this.send(['pong', {}]);
|
|
90
90
|
break;
|
|
91
91
|
case 'push': {
|
|
92
|
-
const { clientGroupID, mutations } = msg[1];
|
|
92
|
+
const { clientGroupID, mutations, schemaVersion } = msg[1];
|
|
93
93
|
if (clientGroupID !== this.#clientGroupID) {
|
|
94
94
|
this.#closeWithError([
|
|
95
95
|
'error',
|
|
@@ -103,9 +103,9 @@ export class Connection {
|
|
|
103
103
|
// 2. A single view syncer connection cannot hog multiple upstream connections.
|
|
104
104
|
await this.#mutationLock.withLock(async () => {
|
|
105
105
|
for (const mutation of mutations) {
|
|
106
|
-
const
|
|
107
|
-
if (
|
|
108
|
-
this.sendError(['error',
|
|
106
|
+
const maybeError = await this.#mutagen.processMutation(mutation, this.#authData, schemaVersion);
|
|
107
|
+
if (maybeError !== undefined) {
|
|
108
|
+
this.sendError(['error', maybeError[0], maybeError[1]]);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAC,WAAW,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { ReplicaStateNotifier, Replicator } from '
|
|
2
|
+
import type { ReplicaStateNotifier, Replicator } from '../services/replicator/replicator.js';
|
|
3
3
|
import { Database } from '../../../zqlite/src/db.js';
|
|
4
4
|
import { Notifier } from '../services/replicator/notifier.js';
|
|
5
5
|
import type { Worker } from '../types/processes.js';
|
|
6
|
-
export type
|
|
7
|
-
export declare function setupReplica(lc: LogContext, mode:
|
|
6
|
+
export type ReplicaFileMode = 'serving' | 'serving-copy' | 'backup';
|
|
7
|
+
export declare function setupReplica(lc: LogContext, mode: ReplicaFileMode, replicaDbFile: string): Database;
|
|
8
8
|
export declare function setUpMessageHandlers(lc: LogContext, replicator: Replicator, parent: Worker): void;
|
|
9
|
-
export declare function handleSubscriptionsFrom(
|
|
9
|
+
export declare function handleSubscriptionsFrom(_lc: LogContext, subscriber: Worker, notifier: ReplicaStateNotifier): void;
|
|
10
10
|
/**
|
|
11
11
|
* Creates a Notifier to relay notifications the notifier of another Worker.
|
|
12
12
|
* This does not send the initial subscription message. Use {@link subscribeTo}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAEV,oBAAoB,EACpB,UAAU,EACX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;AAyBpE,wBAAgB,YAAY,CAC1B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,MAAM,GACpB,QAAQ,CAyCV;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,QAGf;AAID,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,oBAAoB,QAQ/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAM5E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAE1D"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import { resolver } from '@rocicorp/resolver';
|
|
3
2
|
import { rmSync } from 'node:fs';
|
|
4
|
-
import { assert } from '../../../shared/src/asserts.js';
|
|
5
|
-
import { promiseVoid } from '../../../shared/src/resolved-promises.js';
|
|
6
3
|
import { Database } from '../../../zqlite/src/db.js';
|
|
7
4
|
import { Notifier } from '../services/replicator/notifier.js';
|
|
8
5
|
function connect(lc, replicaDbFile, walMode) {
|
|
@@ -18,7 +15,7 @@ function connect(lc, replicaDbFile, walMode) {
|
|
|
18
15
|
return replica;
|
|
19
16
|
}
|
|
20
17
|
export function setupReplica(lc, mode, replicaDbFile) {
|
|
21
|
-
lc.info?.(`setting up
|
|
18
|
+
lc.info?.(`setting up ${mode} replica`);
|
|
22
19
|
switch (mode) {
|
|
23
20
|
case 'backup': {
|
|
24
21
|
const replica = connect(lc, replicaDbFile, 'wal');
|
|
@@ -56,30 +53,11 @@ export function setupReplica(lc, mode, replicaDbFile) {
|
|
|
56
53
|
export function setUpMessageHandlers(lc, replicator, parent) {
|
|
57
54
|
handleSubscriptionsFrom(lc, parent, replicator);
|
|
58
55
|
}
|
|
59
|
-
export function handleSubscriptionsFrom(
|
|
60
|
-
const pendingACKs = new Map();
|
|
61
|
-
subscriber.onMessageType('ackNotify', msg => {
|
|
62
|
-
assert(msg.ack);
|
|
63
|
-
const resolve = pendingACKs.get(msg.ack);
|
|
64
|
-
if (resolve) {
|
|
65
|
-
resolve();
|
|
66
|
-
pendingACKs.delete(msg.ack);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
lc.error?.('received ack with no resolver', msg);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
56
|
+
export function handleSubscriptionsFrom(_lc, subscriber, notifier) {
|
|
72
57
|
subscriber.onMessageType('subscribe', async () => {
|
|
73
58
|
const subscription = notifier.subscribe();
|
|
74
59
|
for await (const msg of subscription) {
|
|
75
|
-
let ack = promiseVoid; // By default, nothing to await.
|
|
76
|
-
if (msg.ack !== undefined) {
|
|
77
|
-
const { promise, resolve } = resolver();
|
|
78
|
-
ack = promise;
|
|
79
|
-
pendingACKs.set(msg.ack, resolve);
|
|
80
|
-
}
|
|
81
60
|
subscriber.send(['notify', msg]);
|
|
82
|
-
await ack;
|
|
83
61
|
}
|
|
84
62
|
});
|
|
85
63
|
}
|
|
@@ -90,13 +68,7 @@ export function handleSubscriptionsFrom(lc, subscriber, notifier) {
|
|
|
90
68
|
*/
|
|
91
69
|
export function createNotifierFrom(_lc, source) {
|
|
92
70
|
const notifier = new Notifier();
|
|
93
|
-
source.onMessageType('notify',
|
|
94
|
-
const results = notifier.notifySubscribers(msg);
|
|
95
|
-
if (msg.ack !== undefined) {
|
|
96
|
-
await Promise.allSettled(results);
|
|
97
|
-
source.send(['ackNotify', msg]);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
71
|
+
source.onMessageType('notify', msg => notifier.notifySubscribers(msg));
|
|
100
72
|
return notifier;
|
|
101
73
|
}
|
|
102
74
|
export function subscribeTo(_lc, source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"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"}
|