@rocicorp/zero 0.0.0-202410031711
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/deps/sqlite3/sqlite3.c +260574 -0
- package/deps/sqlite3/sqlite3.h +13572 -0
- package/deps/sqlite3/sqlite3ext.h +719 -0
- package/out/btree/b+tree.d.ts +471 -0
- package/out/btree/b+tree.d.ts.map +1 -0
- package/out/btree/b+tree.js +1708 -0
- package/out/btree/b+tree.js.map +1 -0
- package/out/btree/interfaces.d.ts +270 -0
- package/out/btree/interfaces.d.ts.map +1 -0
- package/out/btree/interfaces.js +3 -0
- package/out/btree/interfaces.js.map +1 -0
- package/out/chunk-2RUT5EQV.js +28 -0
- package/out/chunk-2RUT5EQV.js.map +7 -0
- package/out/datadog/src/datadog-log-sink.d.ts +20 -0
- package/out/datadog/src/datadog-log-sink.d.ts.map +1 -0
- package/out/datadog/src/datadog-log-sink.js +231 -0
- package/out/datadog/src/datadog-log-sink.js.map +1 -0
- package/out/datadog/src/mod.d.ts +2 -0
- package/out/datadog/src/mod.d.ts.map +1 -0
- package/out/react.js +108 -0
- package/out/react.js.map +7 -0
- package/out/replicache/src/async-iterable-to-array.d.ts +2 -0
- package/out/replicache/src/async-iterable-to-array.d.ts.map +1 -0
- package/out/replicache/src/bg-interval.d.ts +3 -0
- package/out/replicache/src/bg-interval.d.ts.map +1 -0
- package/out/replicache/src/binary-search.d.ts +15 -0
- package/out/replicache/src/binary-search.d.ts.map +1 -0
- package/out/replicache/src/broadcast-channel.d.ts +3 -0
- package/out/replicache/src/broadcast-channel.d.ts.map +1 -0
- package/out/replicache/src/btree/diff.d.ts +4 -0
- package/out/replicache/src/btree/diff.d.ts.map +1 -0
- package/out/replicache/src/btree/node.d.ts +125 -0
- package/out/replicache/src/btree/node.d.ts.map +1 -0
- package/out/replicache/src/btree/read.d.ts +32 -0
- package/out/replicache/src/btree/read.d.ts.map +1 -0
- package/out/replicache/src/btree/splice.d.ts +9 -0
- package/out/replicache/src/btree/splice.d.ts.map +1 -0
- package/out/replicache/src/btree/write.d.ts +24 -0
- package/out/replicache/src/btree/write.d.ts.map +1 -0
- package/out/replicache/src/call-default-fetch.d.ts +6 -0
- package/out/replicache/src/call-default-fetch.d.ts.map +1 -0
- package/out/replicache/src/config.d.ts +13 -0
- package/out/replicache/src/config.d.ts.map +1 -0
- package/out/replicache/src/connection-loop-delegates.d.ts +20 -0
- package/out/replicache/src/connection-loop-delegates.d.ts.map +1 -0
- package/out/replicache/src/connection-loop.d.ts +28 -0
- package/out/replicache/src/connection-loop.d.ts.map +1 -0
- package/out/replicache/src/cookies.d.ts +29 -0
- package/out/replicache/src/cookies.d.ts.map +1 -0
- package/out/replicache/src/dag/chunk.d.ts +35 -0
- package/out/replicache/src/dag/chunk.d.ts.map +1 -0
- package/out/replicache/src/dag/gc.d.ts +42 -0
- package/out/replicache/src/dag/gc.d.ts.map +1 -0
- package/out/replicache/src/dag/key.d.ts +26 -0
- package/out/replicache/src/dag/key.d.ts.map +1 -0
- package/out/replicache/src/dag/lazy-store.d.ts +181 -0
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -0
- package/out/replicache/src/dag/store-impl.d.ts +38 -0
- package/out/replicache/src/dag/store-impl.d.ts.map +1 -0
- package/out/replicache/src/dag/store.d.ts +36 -0
- package/out/replicache/src/dag/store.d.ts.map +1 -0
- package/out/replicache/src/dag/visitor.d.ts +13 -0
- package/out/replicache/src/dag/visitor.d.ts.map +1 -0
- package/out/replicache/src/db/commit.d.ts +133 -0
- package/out/replicache/src/db/commit.d.ts.map +1 -0
- package/out/replicache/src/db/index.d.ts +33 -0
- package/out/replicache/src/db/index.d.ts.map +1 -0
- package/out/replicache/src/db/read.d.ts +24 -0
- package/out/replicache/src/db/read.d.ts.map +1 -0
- package/out/replicache/src/db/rebase.d.ts +10 -0
- package/out/replicache/src/db/rebase.d.ts.map +1 -0
- package/out/replicache/src/db/scan.d.ts +15 -0
- package/out/replicache/src/db/scan.d.ts.map +1 -0
- package/out/replicache/src/db/write.d.ts +39 -0
- package/out/replicache/src/db/write.d.ts.map +1 -0
- package/out/replicache/src/error-responses.d.ts +26 -0
- package/out/replicache/src/error-responses.d.ts.map +1 -0
- package/out/replicache/src/filter-async-iterable.d.ts +10 -0
- package/out/replicache/src/filter-async-iterable.d.ts.map +1 -0
- package/out/replicache/src/format-version.d.ts +9 -0
- package/out/replicache/src/format-version.d.ts.map +1 -0
- package/out/replicache/src/frozen-json.d.ts +35 -0
- package/out/replicache/src/frozen-json.d.ts.map +1 -0
- package/out/replicache/src/get-default-puller.d.ts +14 -0
- package/out/replicache/src/get-default-puller.d.ts.map +1 -0
- package/out/replicache/src/get-default-pusher.d.ts +10 -0
- package/out/replicache/src/get-default-pusher.d.ts.map +1 -0
- package/out/replicache/src/hash.d.ts +29 -0
- package/out/replicache/src/hash.d.ts.map +1 -0
- package/out/replicache/src/http-request-info.d.ts +6 -0
- package/out/replicache/src/http-request-info.d.ts.map +1 -0
- package/out/replicache/src/impl.d.ts +4 -0
- package/out/replicache/src/impl.d.ts.map +1 -0
- package/out/replicache/src/index-defs.d.ts +36 -0
- package/out/replicache/src/index-defs.d.ts.map +1 -0
- package/out/replicache/src/iterable-union.d.ts +5 -0
- package/out/replicache/src/iterable-union.d.ts.map +1 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +25 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +1 -0
- package/out/replicache/src/kv/idb-store.d.ts +18 -0
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -0
- package/out/replicache/src/kv/mem-store.d.ts +23 -0
- package/out/replicache/src/kv/mem-store.d.ts.map +1 -0
- package/out/replicache/src/kv/read-impl.d.ts +11 -0
- package/out/replicache/src/kv/read-impl.d.ts.map +1 -0
- package/out/replicache/src/kv/store.d.ts +76 -0
- package/out/replicache/src/kv/store.d.ts.map +1 -0
- package/out/replicache/src/kv/write-impl-base.d.ts +18 -0
- package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -0
- package/out/replicache/src/kv/write-impl.d.ts +9 -0
- package/out/replicache/src/kv/write-impl.d.ts.map +1 -0
- package/out/replicache/src/lazy.d.ts +2 -0
- package/out/replicache/src/lazy.d.ts.map +1 -0
- package/out/replicache/src/log-options.d.ts +10 -0
- package/out/replicache/src/log-options.d.ts.map +1 -0
- package/out/replicache/src/merge-async-iterables.d.ts +16 -0
- package/out/replicache/src/merge-async-iterables.d.ts.map +1 -0
- package/out/replicache/src/mod.d.ts +38 -0
- package/out/replicache/src/mod.d.ts.map +1 -0
- package/out/replicache/src/mutation-recovery.d.ts +43 -0
- package/out/replicache/src/mutation-recovery.d.ts.map +1 -0
- package/out/replicache/src/new-client-channel.d.ts +6 -0
- package/out/replicache/src/new-client-channel.d.ts.map +1 -0
- package/out/replicache/src/on-persist-channel.d.ts +10 -0
- package/out/replicache/src/on-persist-channel.d.ts.map +1 -0
- package/out/replicache/src/patch-operation.d.ts +32 -0
- package/out/replicache/src/patch-operation.d.ts.map +1 -0
- package/out/replicache/src/pending-mutations.d.ts +14 -0
- package/out/replicache/src/pending-mutations.d.ts.map +1 -0
- package/out/replicache/src/persist/client-gc.d.ts +17 -0
- package/out/replicache/src/persist/client-gc.d.ts.map +1 -0
- package/out/replicache/src/persist/client-group-gc.d.ts +10 -0
- package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -0
- package/out/replicache/src/persist/client-groups.d.ts +72 -0
- package/out/replicache/src/persist/client-groups.d.ts.map +1 -0
- package/out/replicache/src/persist/clients.d.ts +155 -0
- package/out/replicache/src/persist/clients.d.ts.map +1 -0
- package/out/replicache/src/persist/collect-idb-databases.d.ts +91 -0
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.d.ts +12 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.d.ts.map +1 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.d.ts +17 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.d.ts.map +1 -0
- package/out/replicache/src/persist/heartbeat.d.ts +9 -0
- package/out/replicache/src/persist/heartbeat.d.ts.map +1 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.d.ts +5 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.d.ts.map +1 -0
- package/out/replicache/src/persist/idb-databases-store.d.ts +24 -0
- package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -0
- package/out/replicache/src/persist/make-client-id.d.ts +6 -0
- package/out/replicache/src/persist/make-client-id.d.ts.map +1 -0
- package/out/replicache/src/persist/persist.d.ts +26 -0
- package/out/replicache/src/persist/persist.d.ts.map +1 -0
- package/out/replicache/src/persist/refresh.d.ts +13 -0
- package/out/replicache/src/persist/refresh.d.ts.map +1 -0
- package/out/replicache/src/process-scheduler.d.ts +20 -0
- package/out/replicache/src/process-scheduler.d.ts.map +1 -0
- package/out/replicache/src/puller.d.ts +61 -0
- package/out/replicache/src/puller.d.ts.map +1 -0
- package/out/replicache/src/pusher.d.ts +33 -0
- package/out/replicache/src/pusher.d.ts.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts +321 -0
- package/out/replicache/src/replicache-impl.d.ts.map +1 -0
- package/out/replicache/src/replicache-options.d.ts +209 -0
- package/out/replicache/src/replicache-options.d.ts.map +1 -0
- package/out/replicache/src/replicache.d.ts +298 -0
- package/out/replicache/src/replicache.d.ts.map +1 -0
- package/out/replicache/src/request-idle.d.ts +6 -0
- package/out/replicache/src/request-idle.d.ts.map +1 -0
- package/out/replicache/src/scan-iterator.d.ts +127 -0
- package/out/replicache/src/scan-iterator.d.ts.map +1 -0
- package/out/replicache/src/scan-options.d.ts +67 -0
- package/out/replicache/src/scan-options.d.ts.map +1 -0
- package/out/replicache/src/set-interval-with-signal.d.ts +2 -0
- package/out/replicache/src/set-interval-with-signal.d.ts.map +1 -0
- package/out/replicache/src/size-of-value.d.ts +19 -0
- package/out/replicache/src/size-of-value.d.ts.map +1 -0
- package/out/replicache/src/subscriptions.d.ts +140 -0
- package/out/replicache/src/subscriptions.d.ts.map +1 -0
- package/out/replicache/src/sync/diff.d.ts +31 -0
- package/out/replicache/src/sync/diff.d.ts.map +1 -0
- package/out/replicache/src/sync/ids.d.ts +13 -0
- package/out/replicache/src/sync/ids.d.ts.map +1 -0
- package/out/replicache/src/sync/patch.d.ts +5 -0
- package/out/replicache/src/sync/patch.d.ts.map +1 -0
- package/out/replicache/src/sync/pull-error.d.ts +9 -0
- package/out/replicache/src/sync/pull-error.d.ts.map +1 -0
- package/out/replicache/src/sync/pull.d.ts +82 -0
- package/out/replicache/src/sync/pull.d.ts.map +1 -0
- package/out/replicache/src/sync/push.d.ts +65 -0
- package/out/replicache/src/sync/push.d.ts.map +1 -0
- package/out/replicache/src/sync/request-id.d.ts +10 -0
- package/out/replicache/src/sync/request-id.d.ts.map +1 -0
- package/out/replicache/src/sync/sync-head-name.d.ts +2 -0
- package/out/replicache/src/sync/sync-head-name.d.ts.map +1 -0
- package/out/replicache/src/test-license-key.d.ts +3 -0
- package/out/replicache/src/test-license-key.d.ts.map +1 -0
- package/out/replicache/src/to-error.d.ts +2 -0
- package/out/replicache/src/to-error.d.ts.map +1 -0
- package/out/replicache/src/transaction-closed-error.d.ts +12 -0
- package/out/replicache/src/transaction-closed-error.d.ts.map +1 -0
- package/out/replicache/src/transactions.d.ts +156 -0
- package/out/replicache/src/transactions.d.ts.map +1 -0
- package/out/replicache/src/types.d.ts +57 -0
- package/out/replicache/src/types.d.ts.map +1 -0
- package/out/replicache/src/version.d.ts +5 -0
- package/out/replicache/src/version.d.ts.map +1 -0
- package/out/replicache/src/with-transactions.d.ts +23 -0
- package/out/replicache/src/with-transactions.d.ts.map +1 -0
- package/out/shared/src/abort-error.d.ts +4 -0
- package/out/shared/src/abort-error.d.ts.map +1 -0
- package/out/shared/src/abort-error.js +4 -0
- package/out/shared/src/abort-error.js.map +1 -0
- package/out/shared/src/asserts.d.ts +17 -0
- package/out/shared/src/asserts.d.ts.map +1 -0
- package/out/shared/src/asserts.js +73 -0
- package/out/shared/src/asserts.js.map +1 -0
- package/out/shared/src/browser-env.d.ts +3 -0
- package/out/shared/src/browser-env.d.ts.map +1 -0
- package/out/shared/src/config.d.ts +3 -0
- package/out/shared/src/config.d.ts.map +1 -0
- package/out/shared/src/config.js +3 -0
- package/out/shared/src/config.js.map +1 -0
- package/out/shared/src/custom-key-map.d.ts +26 -0
- package/out/shared/src/custom-key-map.d.ts.map +1 -0
- package/out/shared/src/custom-key-map.js +65 -0
- package/out/shared/src/custom-key-map.js.map +1 -0
- package/out/shared/src/deep-clone.d.ts +4 -0
- package/out/shared/src/deep-clone.d.ts.map +1 -0
- package/out/shared/src/document-visible.d.ts +9 -0
- package/out/shared/src/document-visible.d.ts.map +1 -0
- package/out/shared/src/has-own.d.ts +5 -0
- package/out/shared/src/has-own.d.ts.map +1 -0
- package/out/shared/src/has-own.js +8 -0
- package/out/shared/src/has-own.js.map +1 -0
- package/out/shared/src/immutable.d.ts +11 -0
- package/out/shared/src/immutable.d.ts.map +1 -0
- package/out/shared/src/iterables.d.ts +11 -0
- package/out/shared/src/iterables.d.ts.map +1 -0
- package/out/shared/src/json-schema.d.ts +5 -0
- package/out/shared/src/json-schema.d.ts.map +1 -0
- package/out/shared/src/json-schema.js +36 -0
- package/out/shared/src/json-schema.js.map +1 -0
- package/out/shared/src/json.d.ts +55 -0
- package/out/shared/src/json.d.ts.map +1 -0
- package/out/shared/src/json.js +164 -0
- package/out/shared/src/json.js.map +1 -0
- package/out/shared/src/must.d.ts +2 -0
- package/out/shared/src/must.d.ts.map +1 -0
- package/out/shared/src/must.js +8 -0
- package/out/shared/src/must.js.map +1 -0
- package/out/shared/src/navigator.d.ts +7 -0
- package/out/shared/src/navigator.d.ts.map +1 -0
- package/out/shared/src/parse-big-int.d.ts +2 -0
- package/out/shared/src/parse-big-int.d.ts.map +1 -0
- package/out/shared/src/parse-big-int.js +11 -0
- package/out/shared/src/parse-big-int.js.map +1 -0
- package/out/shared/src/queue.d.ts +40 -0
- package/out/shared/src/queue.d.ts.map +1 -0
- package/out/shared/src/queue.js +118 -0
- package/out/shared/src/queue.js.map +1 -0
- package/out/shared/src/rand.d.ts +7 -0
- package/out/shared/src/rand.d.ts.map +1 -0
- package/out/shared/src/rand.js +11 -0
- package/out/shared/src/rand.js.map +1 -0
- package/out/shared/src/random-uint64.d.ts +2 -0
- package/out/shared/src/random-uint64.d.ts.map +1 -0
- package/out/shared/src/random-values.d.ts +2 -0
- package/out/shared/src/random-values.d.ts.map +1 -0
- package/out/shared/src/resolved-promises.d.ts +5 -0
- package/out/shared/src/resolved-promises.d.ts.map +1 -0
- package/out/shared/src/resolved-promises.js +5 -0
- package/out/shared/src/resolved-promises.js.map +1 -0
- package/out/shared/src/set-utils.d.ts +9 -0
- package/out/shared/src/set-utils.d.ts.map +1 -0
- package/out/shared/src/set-utils.js +60 -0
- package/out/shared/src/set-utils.js.map +1 -0
- package/out/shared/src/sleep.d.ts +15 -0
- package/out/shared/src/sleep.d.ts.map +1 -0
- package/out/shared/src/sleep.js +54 -0
- package/out/shared/src/sleep.js.map +1 -0
- package/out/shared/src/string-compare.d.ts +2 -0
- package/out/shared/src/string-compare.d.ts.map +1 -0
- package/out/shared/src/string-compare.js +10 -0
- package/out/shared/src/string-compare.js.map +1 -0
- package/out/shared/src/types.d.ts +2 -0
- package/out/shared/src/types.d.ts.map +1 -0
- package/out/shared/src/valita.d.ts +27 -0
- package/out/shared/src/valita.d.ts.map +1 -0
- package/out/shared/src/valita.js +118 -0
- package/out/shared/src/valita.js.map +1 -0
- package/out/shared/src/xxhash.d.ts +3 -0
- package/out/shared/src/xxhash.d.ts.map +1 -0
- package/out/shared/src/xxhash.js +4 -0
- package/out/shared/src/xxhash.js.map +1 -0
- package/out/zero/src/cli.d.ts +3 -0
- package/out/zero/src/cli.d.ts.map +1 -0
- package/out/zero/src/cli.js +3 -0
- package/out/zero/src/cli.js.map +1 -0
- package/out/zero/src/react.d.ts +2 -0
- package/out/zero/src/react.d.ts.map +1 -0
- package/out/zero/src/server/change-streamer.d.ts +2 -0
- package/out/zero/src/server/change-streamer.d.ts.map +1 -0
- package/out/zero/src/server/change-streamer.js +2 -0
- package/out/zero/src/server/change-streamer.js.map +1 -0
- package/out/zero/src/server/main.d.ts +2 -0
- package/out/zero/src/server/main.d.ts.map +1 -0
- package/out/zero/src/server/main.js +2 -0
- package/out/zero/src/server/main.js.map +1 -0
- package/out/zero/src/server/replicator.d.ts +2 -0
- package/out/zero/src/server/replicator.d.ts.map +1 -0
- package/out/zero/src/server/replicator.js +2 -0
- package/out/zero/src/server/replicator.js.map +1 -0
- package/out/zero/src/server/syncer.d.ts +2 -0
- package/out/zero/src/server/syncer.d.ts.map +1 -0
- package/out/zero/src/server/syncer.js +2 -0
- package/out/zero/src/server/syncer.js.map +1 -0
- package/out/zero/src/zero.d.ts +2 -0
- package/out/zero/src/zero.d.ts.map +1 -0
- package/out/zero-cache/src/config/zero-config.d.ts +1509 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -0
- package/out/zero-cache/src/config/zero-config.js +227 -0
- package/out/zero-cache/src/config/zero-config.js.map +1 -0
- package/out/zero-cache/src/db/lite-tables.d.ts +5 -0
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -0
- package/out/zero-cache/src/db/lite-tables.js +75 -0
- package/out/zero-cache/src/db/lite-tables.js.map +1 -0
- package/out/zero-cache/src/db/migration-lite.d.ts +38 -0
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -0
- package/out/zero-cache/src/db/migration-lite.js +161 -0
- package/out/zero-cache/src/db/migration-lite.js.map +1 -0
- package/out/zero-cache/src/db/migration.d.ts +38 -0
- package/out/zero-cache/src/db/migration.d.ts.map +1 -0
- package/out/zero-cache/src/db/migration.js +139 -0
- package/out/zero-cache/src/db/migration.js.map +1 -0
- package/out/zero-cache/src/db/statements.d.ts +31 -0
- package/out/zero-cache/src/db/statements.d.ts.map +1 -0
- package/out/zero-cache/src/db/statements.js +48 -0
- package/out/zero-cache/src/db/statements.js.map +1 -0
- package/out/zero-cache/src/db/transaction-pool.d.ts +187 -0
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -0
- package/out/zero-cache/src/db/transaction-pool.js +445 -0
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -0
- package/out/zero-cache/src/server/change-streamer.d.ts +3 -0
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -0
- package/out/zero-cache/src/server/change-streamer.js +30 -0
- package/out/zero-cache/src/server/change-streamer.js.map +1 -0
- package/out/zero-cache/src/server/logging.d.ts +6 -0
- package/out/zero-cache/src/server/logging.d.ts.map +1 -0
- package/out/zero-cache/src/server/logging.js +23 -0
- package/out/zero-cache/src/server/logging.js.map +1 -0
- package/out/zero-cache/src/server/main.d.ts +2 -0
- package/out/zero-cache/src/server/main.d.ts.map +1 -0
- package/out/zero-cache/src/server/main.js +92 -0
- package/out/zero-cache/src/server/main.js.map +1 -0
- package/out/zero-cache/src/server/replicator.d.ts +3 -0
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -0
- package/out/zero-cache/src/server/replicator.js +35 -0
- package/out/zero-cache/src/server/replicator.js.map +1 -0
- package/out/zero-cache/src/server/syncer.d.ts +3 -0
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -0
- package/out/zero-cache/src/server/syncer.js +45 -0
- package/out/zero-cache/src/server/syncer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +23 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +98 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +39 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +212 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +110 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js +7 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +19 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.js +56 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts +14 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +206 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts +6 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +192 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +17 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js +17 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +6 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +29 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +79 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +237 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +5 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +111 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +26 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js +185 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +11 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js +86 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts +19 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.js +2 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts +4 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +12 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +31 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.js +2 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +4 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js +10 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +22 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +49 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +22 -0
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.js +157 -0
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +27 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js +70 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +20 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.js +36 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +19 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.js +55 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts +11 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +1 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.js +33 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +1 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +57 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +1 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +130 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +24 -0
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -0
- package/out/zero-cache/src/services/mutagen/mutagen.js +247 -0
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts +20 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +187 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -0
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts +79 -0
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/checkpointer.js +124 -0
- package/out/zero-cache/src/services/replicator/checkpointer.js.map +1 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +39 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.js +342 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -0
- package/out/zero-cache/src/services/replicator/notifier.d.ts +30 -0
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/notifier.js +54 -0
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -0
- package/out/zero-cache/src/services/replicator/replicator.d.ts +65 -0
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/replicator.js +27 -0
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +35 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.js +78 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +25 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +90 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -0
- package/out/zero-cache/src/services/runner.d.ts +21 -0
- package/out/zero-cache/src/services/runner.d.ts.map +1 -0
- package/out/zero-cache/src/services/runner.js +63 -0
- package/out/zero-cache/src/services/runner.js.map +1 -0
- package/out/zero-cache/src/services/running-state.d.ts +56 -0
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -0
- package/out/zero-cache/src/services/running-state.js +106 -0
- package/out/zero-cache/src/services/running-state.js.map +1 -0
- package/out/zero-cache/src/services/service.d.ts +29 -0
- package/out/zero-cache/src/services/service.d.ts.map +1 -0
- package/out/zero-cache/src/services/service.js +2 -0
- package/out/zero-cache/src/services/service.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +53 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.js +184 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +44 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +386 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +146 -0
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr.js +446 -0
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +22 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.js +129 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +103 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +290 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +54 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +181 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts +4 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js +12 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +783 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.js +213 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +166 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +374 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +37 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +522 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -0
- package/out/zero-cache/src/types/bigint-json.d.ts +26 -0
- package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -0
- package/out/zero-cache/src/types/bigint-json.js +49 -0
- package/out/zero-cache/src/types/bigint-json.js.map +1 -0
- package/out/zero-cache/src/types/error-for-client.d.ts +7 -0
- package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -0
- package/out/zero-cache/src/types/error-for-client.js +17 -0
- package/out/zero-cache/src/types/error-for-client.js.map +1 -0
- package/out/zero-cache/src/types/lexi-version.d.ts +29 -0
- package/out/zero-cache/src/types/lexi-version.d.ts.map +1 -0
- package/out/zero-cache/src/types/lexi-version.js +36 -0
- package/out/zero-cache/src/types/lexi-version.js.map +1 -0
- package/out/zero-cache/src/types/lite.d.ts +11 -0
- package/out/zero-cache/src/types/lite.d.ts.map +1 -0
- package/out/zero-cache/src/types/lite.js +26 -0
- package/out/zero-cache/src/types/lite.js.map +1 -0
- package/out/zero-cache/src/types/names.d.ts +5 -0
- package/out/zero-cache/src/types/names.d.ts.map +1 -0
- package/out/zero-cache/src/types/names.js +4 -0
- package/out/zero-cache/src/types/names.js.map +1 -0
- package/out/zero-cache/src/types/pg.d.ts +31 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -0
- package/out/zero-cache/src/types/pg.js +60 -0
- package/out/zero-cache/src/types/pg.js.map +1 -0
- package/out/zero-cache/src/types/processes.d.ts +57 -0
- package/out/zero-cache/src/types/processes.d.ts.map +1 -0
- package/out/zero-cache/src/types/processes.js +121 -0
- package/out/zero-cache/src/types/processes.js.map +1 -0
- package/out/zero-cache/src/types/row-key.d.ts +37 -0
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -0
- package/out/zero-cache/src/types/row-key.js +64 -0
- package/out/zero-cache/src/types/row-key.js.map +1 -0
- package/out/zero-cache/src/types/satisfies.d.ts +14 -0
- package/out/zero-cache/src/types/satisfies.d.ts.map +1 -0
- package/out/zero-cache/src/types/satisfies.js +2 -0
- package/out/zero-cache/src/types/satisfies.js.map +1 -0
- package/out/zero-cache/src/types/specs.d.ts +29 -0
- package/out/zero-cache/src/types/specs.d.ts.map +1 -0
- package/out/zero-cache/src/types/specs.js +2 -0
- package/out/zero-cache/src/types/specs.js.map +1 -0
- package/out/zero-cache/src/types/sql.d.ts +11 -0
- package/out/zero-cache/src/types/sql.d.ts.map +1 -0
- package/out/zero-cache/src/types/sql.js +15 -0
- package/out/zero-cache/src/types/sql.js.map +1 -0
- package/out/zero-cache/src/types/streams.d.ts +33 -0
- package/out/zero-cache/src/types/streams.d.ts.map +1 -0
- package/out/zero-cache/src/types/streams.js +141 -0
- package/out/zero-cache/src/types/streams.js.map +1 -0
- package/out/zero-cache/src/types/subscription.d.ts +158 -0
- package/out/zero-cache/src/types/subscription.d.ts.map +1 -0
- package/out/zero-cache/src/types/subscription.js +233 -0
- package/out/zero-cache/src/types/subscription.js.map +1 -0
- package/out/zero-cache/src/types/timeout.d.ts +11 -0
- package/out/zero-cache/src/types/timeout.d.ts.map +1 -0
- package/out/zero-cache/src/types/timeout.js +23 -0
- package/out/zero-cache/src/types/timeout.js.map +1 -0
- package/out/zero-cache/src/types/url-params.d.ts +10 -0
- package/out/zero-cache/src/types/url-params.d.ts.map +1 -0
- package/out/zero-cache/src/types/url-params.js +35 -0
- package/out/zero-cache/src/types/url-params.js.map +1 -0
- package/out/zero-cache/src/workers/connection.d.ts +25 -0
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -0
- package/out/zero-cache/src/workers/connection.js +189 -0
- package/out/zero-cache/src/workers/connection.js.map +1 -0
- package/out/zero-cache/src/workers/replicator.d.ts +17 -0
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -0
- package/out/zero-cache/src/workers/replicator.js +105 -0
- package/out/zero-cache/src/workers/replicator.js.map +1 -0
- package/out/zero-cache/src/workers/syncer.d.ts +28 -0
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -0
- package/out/zero-cache/src/workers/syncer.js +72 -0
- package/out/zero-cache/src/workers/syncer.js.map +1 -0
- package/out/zero-client/src/client/context.d.ts +23 -0
- package/out/zero-client/src/client/context.d.ts.map +1 -0
- package/out/zero-client/src/client/crud.d.ts +52 -0
- package/out/zero-client/src/client/crud.d.ts.map +1 -0
- package/out/zero-client/src/client/enable-analytics.d.ts +3 -0
- package/out/zero-client/src/client/enable-analytics.d.ts.map +1 -0
- package/out/zero-client/src/client/http-string.d.ts +7 -0
- package/out/zero-client/src/client/http-string.d.ts.map +1 -0
- package/out/zero-client/src/client/keys.d.ts +11 -0
- package/out/zero-client/src/client/keys.d.ts.map +1 -0
- package/out/zero-client/src/client/log-options.d.ts +12 -0
- package/out/zero-client/src/client/log-options.d.ts.map +1 -0
- package/out/zero-client/src/client/metrics.d.ts +115 -0
- package/out/zero-client/src/client/metrics.d.ts.map +1 -0
- package/out/zero-client/src/client/options.d.ts +94 -0
- package/out/zero-client/src/client/options.d.ts.map +1 -0
- package/out/zero-client/src/client/query-manager.d.ts +16 -0
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -0
- package/out/zero-client/src/client/reload-error-handler.d.ts +5 -0
- package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -0
- package/out/zero-client/src/client/replicache-types.d.ts +48 -0
- package/out/zero-client/src/client/replicache-types.d.ts.map +1 -0
- package/out/zero-client/src/client/server-error.d.ts +12 -0
- package/out/zero-client/src/client/server-error.d.ts.map +1 -0
- package/out/zero-client/src/client/server-option.d.ts +3 -0
- package/out/zero-client/src/client/server-option.d.ts.map +1 -0
- package/out/zero-client/src/client/version.d.ts +5 -0
- package/out/zero-client/src/client/version.d.ts.map +1 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts +28 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -0
- package/out/zero-client/src/client/zero.d.ts +183 -0
- package/out/zero-client/src/client/zero.d.ts.map +1 -0
- package/out/zero-client/src/mod.d.ts +9 -0
- package/out/zero-client/src/mod.d.ts.map +1 -0
- package/out/zero-client/src/util/nanoid.d.ts +2 -0
- package/out/zero-client/src/util/nanoid.d.ts.map +1 -0
- package/out/zero-client/src/util/socket.d.ts +3 -0
- package/out/zero-client/src/util/socket.d.ts.map +1 -0
- package/out/zero-protocol/src/ast.d.ts +69 -0
- package/out/zero-protocol/src/ast.d.ts.map +1 -0
- package/out/zero-protocol/src/ast.js +64 -0
- package/out/zero-protocol/src/ast.js.map +1 -0
- package/out/zero-protocol/src/change-desired-queries.d.ts +71 -0
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -0
- package/out/zero-protocol/src/change-desired-queries.js +10 -0
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -0
- package/out/zero-protocol/src/clients-patch.d.ts +37 -0
- package/out/zero-protocol/src/clients-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/clients-patch.js +15 -0
- package/out/zero-protocol/src/clients-patch.js.map +1 -0
- package/out/zero-protocol/src/connect.d.ts +88 -0
- package/out/zero-protocol/src/connect.d.ts.map +1 -0
- package/out/zero-protocol/src/connect.js +25 -0
- package/out/zero-protocol/src/connect.js.map +1 -0
- package/out/zero-protocol/src/delete-clients.d.ts +11 -0
- package/out/zero-protocol/src/delete-clients.d.ts.map +1 -0
- package/out/zero-protocol/src/delete-clients.js +9 -0
- package/out/zero-protocol/src/delete-clients.js.map +1 -0
- package/out/zero-protocol/src/down.d.ts +110 -0
- package/out/zero-protocol/src/down.d.ts.map +1 -0
- package/out/zero-protocol/src/down.js +8 -0
- package/out/zero-protocol/src/down.js.map +1 -0
- package/out/zero-protocol/src/entities-patch.d.ts +66 -0
- package/out/zero-protocol/src/entities-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/entities-patch.js +27 -0
- package/out/zero-protocol/src/entities-patch.js.map +1 -0
- package/out/zero-protocol/src/entity.d.ts +9 -0
- package/out/zero-protocol/src/entity.d.ts.map +1 -0
- package/out/zero-protocol/src/entity.js +8 -0
- package/out/zero-protocol/src/entity.js.map +1 -0
- package/out/zero-protocol/src/error.d.ts +19 -0
- package/out/zero-protocol/src/error.d.ts.map +1 -0
- package/out/zero-protocol/src/error.js +26 -0
- package/out/zero-protocol/src/error.js.map +1 -0
- package/out/zero-protocol/src/mod.d.ts +16 -0
- package/out/zero-protocol/src/mod.d.ts.map +1 -0
- package/out/zero-protocol/src/mod.js +16 -0
- package/out/zero-protocol/src/mod.js.map +1 -0
- package/out/zero-protocol/src/ping.d.ts +6 -0
- package/out/zero-protocol/src/ping.d.ts.map +1 -0
- package/out/zero-protocol/src/ping.js +4 -0
- package/out/zero-protocol/src/ping.js.map +1 -0
- package/out/zero-protocol/src/poke.d.ts +236 -0
- package/out/zero-protocol/src/poke.d.ts.map +1 -0
- package/out/zero-protocol/src/poke.js +69 -0
- package/out/zero-protocol/src/poke.js.map +1 -0
- package/out/zero-protocol/src/pong.d.ts +6 -0
- package/out/zero-protocol/src/pong.d.ts.map +1 -0
- package/out/zero-protocol/src/pong.js +4 -0
- package/out/zero-protocol/src/pong.js.map +1 -0
- package/out/zero-protocol/src/pull.d.ts +26 -0
- package/out/zero-protocol/src/pull.d.ts.map +1 -0
- package/out/zero-protocol/src/pull.js +24 -0
- package/out/zero-protocol/src/pull.js.map +1 -0
- package/out/zero-protocol/src/push.d.ts +257 -0
- package/out/zero-protocol/src/push.d.ts.map +1 -0
- package/out/zero-protocol/src/push.js +77 -0
- package/out/zero-protocol/src/push.js.map +1 -0
- package/out/zero-protocol/src/queries-patch.d.ts +103 -0
- package/out/zero-protocol/src/queries-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/queries-patch.js +17 -0
- package/out/zero-protocol/src/queries-patch.js.map +1 -0
- package/out/zero-protocol/src/up.d.ts +116 -0
- package/out/zero-protocol/src/up.d.ts.map +1 -0
- package/out/zero-protocol/src/up.js +9 -0
- package/out/zero-protocol/src/up.js.map +1 -0
- package/out/zero-protocol/src/version.d.ts +6 -0
- package/out/zero-protocol/src/version.d.ts.map +1 -0
- package/out/zero-protocol/src/version.js +4 -0
- package/out/zero-protocol/src/version.js.map +1 -0
- package/out/zero-react/src/mod.d.ts +3 -0
- package/out/zero-react/src/mod.d.ts.map +1 -0
- package/out/zero-react/src/use-query.d.ts +3 -0
- package/out/zero-react/src/use-query.d.ts.map +1 -0
- package/out/zero-react/src/use-zero.d.ts +8 -0
- package/out/zero-react/src/use-zero.d.ts.map +1 -0
- package/out/zero.js +7000 -0
- package/out/zero.js.map +7 -0
- package/out/zql/src/zql/ast/ast.d.ts +84 -0
- package/out/zql/src/zql/ast/ast.d.ts.map +1 -0
- package/out/zql/src/zql/ast/ast.js +54 -0
- package/out/zql/src/zql/ast/ast.js.map +1 -0
- package/out/zql/src/zql/builder/builder.d.ts +56 -0
- package/out/zql/src/zql/builder/builder.d.ts.map +1 -0
- package/out/zql/src/zql/builder/builder.js +112 -0
- package/out/zql/src/zql/builder/builder.js.map +1 -0
- package/out/zql/src/zql/builder/error.d.ts +3 -0
- package/out/zql/src/zql/builder/error.d.ts.map +1 -0
- package/out/zql/src/zql/builder/error.js +3 -0
- package/out/zql/src/zql/builder/error.js.map +1 -0
- package/out/zql/src/zql/builder/filter.d.ts +6 -0
- package/out/zql/src/zql/builder/filter.d.ts.map +1 -0
- package/out/zql/src/zql/builder/filter.js +53 -0
- package/out/zql/src/zql/builder/filter.js.map +1 -0
- package/out/zql/src/zql/builder/like.d.ts +3 -0
- package/out/zql/src/zql/builder/like.d.ts.map +1 -0
- package/out/zql/src/zql/builder/like.js +60 -0
- package/out/zql/src/zql/builder/like.js.map +1 -0
- package/out/zql/src/zql/ivm/array-view.d.ts +42 -0
- package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/change.d.ts +44 -0
- package/out/zql/src/zql/ivm/change.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/change.js +2 -0
- package/out/zql/src/zql/ivm/change.js.map +1 -0
- package/out/zql/src/zql/ivm/data.d.ts +72 -0
- package/out/zql/src/zql/ivm/data.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/data.js +84 -0
- package/out/zql/src/zql/ivm/data.js.map +1 -0
- package/out/zql/src/zql/ivm/filter.d.ts +27 -0
- package/out/zql/src/zql/ivm/filter.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/filter.js +60 -0
- package/out/zql/src/zql/ivm/filter.js.map +1 -0
- package/out/zql/src/zql/ivm/join.d.ts +37 -0
- package/out/zql/src/zql/ivm/join.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/join.js +228 -0
- package/out/zql/src/zql/ivm/join.js.map +1 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.d.ts +13 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.js +45 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.js.map +1 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts +10 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js +34 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js.map +1 -0
- package/out/zql/src/zql/ivm/memory-source.d.ts +65 -0
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/memory-source.js +508 -0
- package/out/zql/src/zql/ivm/memory-source.js.map +1 -0
- package/out/zql/src/zql/ivm/memory-storage.d.ts +18 -0
- package/out/zql/src/zql/ivm/memory-storage.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/operator.d.ts +89 -0
- package/out/zql/src/zql/ivm/operator.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/operator.js +2 -0
- package/out/zql/src/zql/ivm/operator.js.map +1 -0
- package/out/zql/src/zql/ivm/schema.d.ts +29 -0
- package/out/zql/src/zql/ivm/schema.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/schema.js +3 -0
- package/out/zql/src/zql/ivm/schema.js.map +1 -0
- package/out/zql/src/zql/ivm/skip.d.ts +24 -0
- package/out/zql/src/zql/ivm/skip.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/skip.js +113 -0
- package/out/zql/src/zql/ivm/skip.js.map +1 -0
- package/out/zql/src/zql/ivm/source.d.ts +57 -0
- package/out/zql/src/zql/ivm/source.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/source.js +2 -0
- package/out/zql/src/zql/ivm/source.js.map +1 -0
- package/out/zql/src/zql/ivm/stream.d.ts +11 -0
- package/out/zql/src/zql/ivm/stream.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/stream.js +19 -0
- package/out/zql/src/zql/ivm/stream.js.map +1 -0
- package/out/zql/src/zql/ivm/take.d.ts +24 -0
- package/out/zql/src/zql/ivm/take.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/take.js +453 -0
- package/out/zql/src/zql/ivm/take.js.map +1 -0
- package/out/zql/src/zql/query/query-impl.d.ts +45 -0
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -0
- package/out/zql/src/zql/query/query.d.ts +130 -0
- package/out/zql/src/zql/query/query.d.ts.map +1 -0
- package/out/zql/src/zql/query/schema.d.ts +53 -0
- package/out/zql/src/zql/query/schema.d.ts.map +1 -0
- package/out/zql/src/zql/query/typed-view.d.ts +10 -0
- package/out/zql/src/zql/query/typed-view.d.ts.map +1 -0
- package/out/zqlite/src/db.d.ts +23 -0
- package/out/zqlite/src/db.d.ts.map +1 -0
- package/out/zqlite/src/db.js +117 -0
- package/out/zqlite/src/db.js.map +1 -0
- package/out/zqlite/src/internal/sql.d.ts +9 -0
- package/out/zqlite/src/internal/sql.d.ts.map +1 -0
- package/out/zqlite/src/internal/sql.js +14 -0
- package/out/zqlite/src/internal/sql.js.map +1 -0
- package/out/zqlite/src/internal/statement-cache.d.ts +67 -0
- package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -0
- package/out/zqlite/src/internal/statement-cache.js +119 -0
- package/out/zqlite/src/internal/statement-cache.js.map +1 -0
- package/out/zqlite/src/table-source.d.ts +43 -0
- package/out/zqlite/src/table-source.d.ts.map +1 -0
- package/out/zqlite/src/table-source.js +393 -0
- package/out/zqlite/src/table-source.js.map +1 -0
- package/package.json +79 -0
- package/tool/install-sqlite3.js +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/specs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes the identifier with double quotes, as per:
|
|
3
|
+
*
|
|
4
|
+
* https://www.postgresql.org/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
|
|
5
|
+
*/
|
|
6
|
+
export declare function id(name: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Escapes and comma-separates a list of identifiers.
|
|
9
|
+
*/
|
|
10
|
+
export declare function idList(names: Iterable<string>): string;
|
|
11
|
+
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/sql.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes the identifier with double quotes, as per:
|
|
3
|
+
*
|
|
4
|
+
* https://www.postgresql.org/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
|
|
5
|
+
*/
|
|
6
|
+
export function id(name) {
|
|
7
|
+
return '"' + name.replace(/"/g, '""') + '"'; //.replace(/\./g, '"."') + '"';
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Escapes and comma-separates a list of identifiers.
|
|
11
|
+
*/
|
|
12
|
+
export function idList(names) {
|
|
13
|
+
return Array.from(names, name => id(name)).join(',');
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=sql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/sql.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,EAAE,CAAC,IAAY;IAC7B,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,+BAA+B;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAuB;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import * as v from '../../../shared/src/valita.js';
|
|
3
|
+
import type { WebSocket } from 'ws';
|
|
4
|
+
import { type JSONValue } from './bigint-json.js';
|
|
5
|
+
export type Source<T> = AsyncIterable<T> & {
|
|
6
|
+
/**
|
|
7
|
+
* Immediately terminates all current iterations (i.e. {@link AsyncIterator.next next()})
|
|
8
|
+
* will return `{value: undefined, done: true}`), and prevents any subsequent iterations
|
|
9
|
+
* from yielding any values.
|
|
10
|
+
*/
|
|
11
|
+
cancel: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* The presence of a `pipeline` iterable allows the usual "consumed-on-iterate" semantics
|
|
14
|
+
* to be overridden.
|
|
15
|
+
*
|
|
16
|
+
* This is suitable for transport layers that serialize messages across processes, such
|
|
17
|
+
* as the {@link streamOut()} method; pipelining allows the transport to send messages
|
|
18
|
+
* as they arrive without waiting for the previous message to be acked, streaming
|
|
19
|
+
* them to the receiving process where they are presumably queued and processed without
|
|
20
|
+
* a per-message ack delay. The receiving end of the transport then responds with acks
|
|
21
|
+
* asynchronously as the receiving end processes the messages.
|
|
22
|
+
*/
|
|
23
|
+
pipeline?: AsyncIterable<{
|
|
24
|
+
value: T;
|
|
25
|
+
consumed: () => void;
|
|
26
|
+
}> | undefined;
|
|
27
|
+
};
|
|
28
|
+
export type Sink<T> = {
|
|
29
|
+
push(message: T): void;
|
|
30
|
+
};
|
|
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>;
|
|
33
|
+
//# sourceMappingURL=streams.d.ts.map
|
|
@@ -0,0 +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,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,KAAK,EAAuC,SAAS,EAAC,MAAM,IAAI,CAAC;AACxE,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,CAsDf;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC,CAAC,CAkCX"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Queue } from '../../../shared/src/queue.js';
|
|
2
|
+
import * as v from '../../../shared/src/valita.js';
|
|
3
|
+
import { BigIntJSON } from './bigint-json.js';
|
|
4
|
+
import { Subscription } from './subscription.js';
|
|
5
|
+
const ackSchema = v.object({ ack: v.number() });
|
|
6
|
+
export async function streamOut(lc, source, sink) {
|
|
7
|
+
const closer = new WebSocketCloser(lc, sink, source);
|
|
8
|
+
const acks = new Queue();
|
|
9
|
+
sink.addEventListener('message', ({ data }) => {
|
|
10
|
+
try {
|
|
11
|
+
if (typeof data !== 'string') {
|
|
12
|
+
throw new Error('Expected string message');
|
|
13
|
+
}
|
|
14
|
+
void acks.enqueue(v.parse(JSON.parse(data), ackSchema));
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
lc.error?.(`error parsing ack`, e);
|
|
18
|
+
closer.close(e);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
try {
|
|
22
|
+
let nextID = 0;
|
|
23
|
+
const { pipeline } = source;
|
|
24
|
+
if (pipeline) {
|
|
25
|
+
lc.debug?.(`started pipelined outbound stream`);
|
|
26
|
+
for await (const { value: msg, consumed } of pipeline) {
|
|
27
|
+
const id = ++nextID;
|
|
28
|
+
const data = BigIntJSON.stringify({ msg, id });
|
|
29
|
+
// Enable for debugging. Otherwise too verbose.
|
|
30
|
+
// lc.debug?.(`pipelining`, data);
|
|
31
|
+
sink.send(data);
|
|
32
|
+
void acks.dequeue().then(({ ack }) => {
|
|
33
|
+
// lc.debug?.(`received ack`, ack);
|
|
34
|
+
if (ack !== id) {
|
|
35
|
+
throw new Error(`Unexpected ack for ${id}: ${ack}`);
|
|
36
|
+
}
|
|
37
|
+
consumed();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
for await (const msg of source) {
|
|
43
|
+
const id = ++nextID;
|
|
44
|
+
const data = BigIntJSON.stringify({ msg, id });
|
|
45
|
+
// Enable for debugging. Otherwise too verbose.
|
|
46
|
+
// lc.debug?.(`sending`, data);
|
|
47
|
+
sink.send(data);
|
|
48
|
+
const { ack } = await acks.dequeue();
|
|
49
|
+
if (ack !== id) {
|
|
50
|
+
throw new Error(`Unexpected ack for ${id}: ${ack}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
closer.close();
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
closer.close(e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function streamIn(lc, source, schema) {
|
|
61
|
+
const streamedSchema = v.object({
|
|
62
|
+
msg: schema,
|
|
63
|
+
id: v.number(),
|
|
64
|
+
});
|
|
65
|
+
const sink = new Subscription({
|
|
66
|
+
consumed: ({ id }) => source.send(JSON.stringify({ ack: id })),
|
|
67
|
+
cleanup: () => closer.close(),
|
|
68
|
+
}, ({ msg }) => msg);
|
|
69
|
+
const closer = new WebSocketCloser(lc, source, sink, handleMessage);
|
|
70
|
+
function handleMessage(event) {
|
|
71
|
+
const data = event.data.toString();
|
|
72
|
+
if (closer.closed()) {
|
|
73
|
+
lc.debug?.('Ignoring message received after closed', data);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const value = BigIntJSON.parse(data);
|
|
78
|
+
const msg = v.parse(value, streamedSchema, 'passthrough');
|
|
79
|
+
// Enable for debugging. Otherwise too verbose.
|
|
80
|
+
// lc.debug?.(`received`, data);
|
|
81
|
+
sink.push(msg);
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
closer.close(e);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return sink;
|
|
88
|
+
}
|
|
89
|
+
class WebSocketCloser {
|
|
90
|
+
#lc;
|
|
91
|
+
#ws;
|
|
92
|
+
#stream;
|
|
93
|
+
#closeHandler;
|
|
94
|
+
#errorHandler;
|
|
95
|
+
#messageHandler;
|
|
96
|
+
#closed = false;
|
|
97
|
+
constructor(lc, ws, stream, messageHandler) {
|
|
98
|
+
this.#lc = lc;
|
|
99
|
+
this.#ws = ws;
|
|
100
|
+
this.#stream = stream;
|
|
101
|
+
this.#messageHandler = messageHandler ?? null;
|
|
102
|
+
this.#closeHandler = e => this.#handleClose(e);
|
|
103
|
+
this.#errorHandler = e => this.#handleError(e);
|
|
104
|
+
ws.addEventListener('close', this.#closeHandler);
|
|
105
|
+
ws.addEventListener('error', this.#errorHandler);
|
|
106
|
+
if (this.#messageHandler) {
|
|
107
|
+
ws.addEventListener('message', this.#messageHandler);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
#handleClose(e) {
|
|
111
|
+
const { code, reason, wasClean } = e;
|
|
112
|
+
this.#lc.info?.('WebSocket close event', { code, reason, wasClean });
|
|
113
|
+
this.close();
|
|
114
|
+
}
|
|
115
|
+
#handleError(e) {
|
|
116
|
+
this.#lc.error?.('WebSocket error event', e.message, e.error);
|
|
117
|
+
// Should we close here?
|
|
118
|
+
}
|
|
119
|
+
close(err) {
|
|
120
|
+
if (this.#closed) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (err) {
|
|
124
|
+
this.#lc.error?.(`closing stream with error`, err);
|
|
125
|
+
}
|
|
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
|
+
this.#stream.cancel();
|
|
133
|
+
if (this.#ws.readyState !== this.#ws.CLOSED) {
|
|
134
|
+
this.#ws.close();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
closed() {
|
|
138
|
+
return this.#closed;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=streams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import type { Sink, Source } from './streams.js';
|
|
2
|
+
/**
|
|
3
|
+
* A Subscription abstracts a continuous, logically infinite stream of messages intended
|
|
4
|
+
* for serial processing. Unlike the more general Node `Stream` API, a Subscription has
|
|
5
|
+
* a limited API with specific semantics:
|
|
6
|
+
*
|
|
7
|
+
* * **Serial processing**: Messages must be consumed via the {@link AsyncIterable}
|
|
8
|
+
* interface, e.g.
|
|
9
|
+
* ```ts
|
|
10
|
+
* const subscription = server.subscribe(parameters);
|
|
11
|
+
*
|
|
12
|
+
* for await (const message of subscription) {
|
|
13
|
+
* await process(message); // fully process the message before consuming the next
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Moreover, the consumer is expected to completely process each message before
|
|
18
|
+
* requesting the next. This is important for cleanup semantics (explained later).
|
|
19
|
+
*
|
|
20
|
+
* * **cancel()**, not close(): The underlying data in a subscription is logically infinite
|
|
21
|
+
* and only terminated when the consumer is no longer interested in receiving the messages
|
|
22
|
+
* (or requires a Subscription with a different configuration). As such, there is no API
|
|
23
|
+
* for gracefully closing the subscription after pending messages are consumed; rather,
|
|
24
|
+
* cancellation is immediate, and upon cancellation, pending messages are dropped. A
|
|
25
|
+
* Subscription can also be terminated with exceptional (i.e. `Error`) circumstances,
|
|
26
|
+
* for which the behavior is equivalent.
|
|
27
|
+
*
|
|
28
|
+
* * **Coalescing** (optional): A producer can configure pending messages in the Subscription
|
|
29
|
+
* to be merged together with a {@link Options.coalesce coalesce} function. This is useful
|
|
30
|
+
* for semantics in which the consumer is not necessarily interested in every incremental
|
|
31
|
+
* change, but rather the cumulative change since the last processed message. A
|
|
32
|
+
* Subscription with coalescing is guaranteed to have at most one outstanding message,
|
|
33
|
+
* regardless of how quickly messages are produced and consumed. This effectively constrains
|
|
34
|
+
* the amount of outstanding work in the system.
|
|
35
|
+
*
|
|
36
|
+
* ### Resource Tracking and Cleanup
|
|
37
|
+
*
|
|
38
|
+
* Because message consumption is constrained to the async iteration API, standard
|
|
39
|
+
* control flow mechanisms allow the producer to perform bookkeeping without any
|
|
40
|
+
* explicit cleanup actions on the part of the consumer. This includes:
|
|
41
|
+
*
|
|
42
|
+
* * **Per-message cleanup**: Each request for the {@link AsyncIterator.next next}
|
|
43
|
+
* message, or the termination of the iteration, signals that the consumer has
|
|
44
|
+
* finished processing the previous message. The producer of a Subscription can
|
|
45
|
+
* supply a {@link Options.consumed consumed} callback to receive these processed
|
|
46
|
+
* messages, allowing it to clean up attached resources (e.g. TransactionPools, etc.).
|
|
47
|
+
*
|
|
48
|
+
* * **Per-subscription cleanup**: The producer of a Subscription can supply a
|
|
49
|
+
* {@link Options.cleanup cleanup} callback that is invoked when the Subscription
|
|
50
|
+
* is terminated, either explicitly via {@link Subscription.cancel cancel()} /
|
|
51
|
+
* {@link Subscription.fail fail()}, or implicitly when an iteration is exited via a
|
|
52
|
+
* `break`, `return`, or `throw` statement. All unconsumed messages are passed to the
|
|
53
|
+
* call back to facilitate bookkeeping.
|
|
54
|
+
*
|
|
55
|
+
* @param T The external message type, published to the AsyncIterable
|
|
56
|
+
* @param M The internal message type used in the producer-side interfaces
|
|
57
|
+
* (e.g. {@link push}, {@link Options.consumed}, {@link Options.coalesce},
|
|
58
|
+
* and {@link Options.cleanup}). This is often the same as the external type
|
|
59
|
+
* T, but may be diverged to facilitate internal bookkeeping.
|
|
60
|
+
*/
|
|
61
|
+
export declare class Subscription<T, M = T> implements Source<T>, Sink<M> {
|
|
62
|
+
#private;
|
|
63
|
+
/**
|
|
64
|
+
* Convenience factory method for creating a {@link Subscription} with internal message type
|
|
65
|
+
* `M` as a subtype of `T`, defaulting to the same type. The default `publish` method publishes
|
|
66
|
+
* the message of type `M` directly to the AsyncIterable.
|
|
67
|
+
*/
|
|
68
|
+
static create<T, M extends T = T>(options?: Options<M>, publish?: (m: M) => T): Subscription<T, M>;
|
|
69
|
+
/**
|
|
70
|
+
* @param publish function for converting the internally pushed / coalesced message
|
|
71
|
+
* of type `M` to the external type `T` exposed via async iteration.
|
|
72
|
+
*/
|
|
73
|
+
constructor(options: Options<M> | undefined, publish: (m: M) => T);
|
|
74
|
+
/**
|
|
75
|
+
* Pushes the next message to be consumed, and returns a `result` that resolves to the
|
|
76
|
+
* eventual {@link Result} of the `value`.
|
|
77
|
+
*
|
|
78
|
+
* If there is an existing unconsumed message and the Subscription has a
|
|
79
|
+
* {@link Options.coalesce coalesce} function, the specified `value` will be coalesced
|
|
80
|
+
* with the pending message. In this case, the result of the pending message
|
|
81
|
+
* is resolved to `coalesced`, regardless of the `coalesce` function implementation.
|
|
82
|
+
*
|
|
83
|
+
* If the subscription is in a terminal state, the message is dropped and the
|
|
84
|
+
* result resolves to `unconsumed`.
|
|
85
|
+
*/
|
|
86
|
+
push(value: M): PendingResult;
|
|
87
|
+
/** False if the subscription has been canceled or has failed. */
|
|
88
|
+
get active(): boolean;
|
|
89
|
+
/** The number messages waiting to be consumed. This is largely for testing. */
|
|
90
|
+
get queued(): number;
|
|
91
|
+
/** Cancels the subscription, cleans up, and terminates any iteration. */
|
|
92
|
+
cancel(): void;
|
|
93
|
+
/** Fails the subscription, cleans up, and throws from any iteration. */
|
|
94
|
+
fail(err: Error): void;
|
|
95
|
+
get pipeline(): AsyncIterable<{
|
|
96
|
+
value: T;
|
|
97
|
+
consumed: () => void;
|
|
98
|
+
}> | undefined;
|
|
99
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
100
|
+
}
|
|
101
|
+
type Options<M> = {
|
|
102
|
+
/**
|
|
103
|
+
* Coalesces messages waiting to be consumed. This is useful for "watermark" type
|
|
104
|
+
* subscriptions in which the consumer is only interested in the cumulative state
|
|
105
|
+
* change since the last processed message. When a `coalesce` function is specified,
|
|
106
|
+
* there is guaranteed to be at most one message waiting to be consumed.
|
|
107
|
+
*
|
|
108
|
+
* Note that the `curr` argument comes before `prev`. This facilitates a common
|
|
109
|
+
* scenario in which coalescing just means using the newest value; in such a case,
|
|
110
|
+
* `coalesce` can simply be the identity function (e.g. `msg => msg`).
|
|
111
|
+
*/
|
|
112
|
+
coalesce?: (curr: M, prev: M) => M;
|
|
113
|
+
/**
|
|
114
|
+
* Called on the previous message in an iteration (1) when the next message is requested,
|
|
115
|
+
* or (2) when the iteration is terminated. This allows the producer to perform
|
|
116
|
+
* per-message cleanup.
|
|
117
|
+
*
|
|
118
|
+
* Note that when a {@link Options.coalesce coalesce} function is defined,
|
|
119
|
+
* `consumed` is _not_ called on the `prev` message; it is the responsibility of
|
|
120
|
+
* producers requiring both coalescing and consumption notification to perform any
|
|
121
|
+
* necessary cleanup of `prev` messages when coalescing.
|
|
122
|
+
*/
|
|
123
|
+
consumed?: (prev: M) => void;
|
|
124
|
+
/**
|
|
125
|
+
* `cleanup` is called exactly once when the subscription is terminated via a failure or
|
|
126
|
+
* cancelation (whichever happens first), which includes implicit cancelation when
|
|
127
|
+
* the consumer exits an iteration via a `break`, `return`, or `throw` statement.
|
|
128
|
+
*
|
|
129
|
+
* Note that the `err` argument will only reflect an explicit cancelation via a call
|
|
130
|
+
* to {@link Subscription.fail()}. On the other hand, if the iteration is canceled via
|
|
131
|
+
* a `throw` statement, the thrown reason is not reflected in the `err` parameter, as that
|
|
132
|
+
* information is not made available to the AsyncIterator implementation.
|
|
133
|
+
*/
|
|
134
|
+
cleanup?: (unconsumed: M[], err?: Error) => void;
|
|
135
|
+
/**
|
|
136
|
+
* Enable or disable pipelining when streaming messages over a websocket.
|
|
137
|
+
*
|
|
138
|
+
* If unspecified, pipelining is enabled if there is no {@link Options.coalesce coalesce}
|
|
139
|
+
* method, as pipelining is counter to the semantics of coalescing. However, the
|
|
140
|
+
* application can explicitly enable pipelining even if there is a coalesce method
|
|
141
|
+
* by specifying `true` for this option. This assumes that coalescing is either
|
|
142
|
+
* not important for websocket semantics, or that the receiving end of the websocket
|
|
143
|
+
* transport performs the desired coalescing.
|
|
144
|
+
*/
|
|
145
|
+
pipeline?: boolean;
|
|
146
|
+
};
|
|
147
|
+
/** Post-queueing results of messages. */
|
|
148
|
+
export type Result = 'consumed' | 'coalesced' | 'unconsumed';
|
|
149
|
+
/**
|
|
150
|
+
* {@link Subscription.subscribe()} wraps the `Promise<Result>` in a `PendingResult`
|
|
151
|
+
* object to avoid forcing all callers to handle the Promise, as most logic does not
|
|
152
|
+
* need to.
|
|
153
|
+
*/
|
|
154
|
+
export type PendingResult = {
|
|
155
|
+
result: Promise<Result>;
|
|
156
|
+
};
|
|
157
|
+
export {};
|
|
158
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,cAAc,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;;IAC/D;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC9B,OAAO,GAAE,OAAO,CAAC,CAAC,CAAM,EACxB,OAAO,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAU;IAmB/B;;;OAGG;gBACS,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,YAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAoC1D;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,aAAa;IAoB7B,iEAAiE;IACjE,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,+EAA+E;IAC/E,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,yEAAyE;IACzE,MAAM;IAIN,wEAAwE;IACxE,IAAI,CAAC,GAAG,EAAE,KAAK;IAyBf,IAAI,QAAQ,IAAI,aAAa,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAC,CAAC,GAAG,SAAS,CAI1E;IA0CD,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;CA0B3C;AAED,KAAK,OAAO,CAAC,CAAC,IAAI;IAChB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IAEnC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAE7B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjD;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAAC,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { resolver } from '@rocicorp/resolver';
|
|
2
|
+
/**
|
|
3
|
+
* A Subscription abstracts a continuous, logically infinite stream of messages intended
|
|
4
|
+
* for serial processing. Unlike the more general Node `Stream` API, a Subscription has
|
|
5
|
+
* a limited API with specific semantics:
|
|
6
|
+
*
|
|
7
|
+
* * **Serial processing**: Messages must be consumed via the {@link AsyncIterable}
|
|
8
|
+
* interface, e.g.
|
|
9
|
+
* ```ts
|
|
10
|
+
* const subscription = server.subscribe(parameters);
|
|
11
|
+
*
|
|
12
|
+
* for await (const message of subscription) {
|
|
13
|
+
* await process(message); // fully process the message before consuming the next
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Moreover, the consumer is expected to completely process each message before
|
|
18
|
+
* requesting the next. This is important for cleanup semantics (explained later).
|
|
19
|
+
*
|
|
20
|
+
* * **cancel()**, not close(): The underlying data in a subscription is logically infinite
|
|
21
|
+
* and only terminated when the consumer is no longer interested in receiving the messages
|
|
22
|
+
* (or requires a Subscription with a different configuration). As such, there is no API
|
|
23
|
+
* for gracefully closing the subscription after pending messages are consumed; rather,
|
|
24
|
+
* cancellation is immediate, and upon cancellation, pending messages are dropped. A
|
|
25
|
+
* Subscription can also be terminated with exceptional (i.e. `Error`) circumstances,
|
|
26
|
+
* for which the behavior is equivalent.
|
|
27
|
+
*
|
|
28
|
+
* * **Coalescing** (optional): A producer can configure pending messages in the Subscription
|
|
29
|
+
* to be merged together with a {@link Options.coalesce coalesce} function. This is useful
|
|
30
|
+
* for semantics in which the consumer is not necessarily interested in every incremental
|
|
31
|
+
* change, but rather the cumulative change since the last processed message. A
|
|
32
|
+
* Subscription with coalescing is guaranteed to have at most one outstanding message,
|
|
33
|
+
* regardless of how quickly messages are produced and consumed. This effectively constrains
|
|
34
|
+
* the amount of outstanding work in the system.
|
|
35
|
+
*
|
|
36
|
+
* ### Resource Tracking and Cleanup
|
|
37
|
+
*
|
|
38
|
+
* Because message consumption is constrained to the async iteration API, standard
|
|
39
|
+
* control flow mechanisms allow the producer to perform bookkeeping without any
|
|
40
|
+
* explicit cleanup actions on the part of the consumer. This includes:
|
|
41
|
+
*
|
|
42
|
+
* * **Per-message cleanup**: Each request for the {@link AsyncIterator.next next}
|
|
43
|
+
* message, or the termination of the iteration, signals that the consumer has
|
|
44
|
+
* finished processing the previous message. The producer of a Subscription can
|
|
45
|
+
* supply a {@link Options.consumed consumed} callback to receive these processed
|
|
46
|
+
* messages, allowing it to clean up attached resources (e.g. TransactionPools, etc.).
|
|
47
|
+
*
|
|
48
|
+
* * **Per-subscription cleanup**: The producer of a Subscription can supply a
|
|
49
|
+
* {@link Options.cleanup cleanup} callback that is invoked when the Subscription
|
|
50
|
+
* is terminated, either explicitly via {@link Subscription.cancel cancel()} /
|
|
51
|
+
* {@link Subscription.fail fail()}, or implicitly when an iteration is exited via a
|
|
52
|
+
* `break`, `return`, or `throw` statement. All unconsumed messages are passed to the
|
|
53
|
+
* call back to facilitate bookkeeping.
|
|
54
|
+
*
|
|
55
|
+
* @param T The external message type, published to the AsyncIterable
|
|
56
|
+
* @param M The internal message type used in the producer-side interfaces
|
|
57
|
+
* (e.g. {@link push}, {@link Options.consumed}, {@link Options.coalesce},
|
|
58
|
+
* and {@link Options.cleanup}). This is often the same as the external type
|
|
59
|
+
* T, but may be diverged to facilitate internal bookkeeping.
|
|
60
|
+
*/
|
|
61
|
+
export class Subscription {
|
|
62
|
+
/**
|
|
63
|
+
* Convenience factory method for creating a {@link Subscription} with internal message type
|
|
64
|
+
* `M` as a subtype of `T`, defaulting to the same type. The default `publish` method publishes
|
|
65
|
+
* the message of type `M` directly to the AsyncIterable.
|
|
66
|
+
*/
|
|
67
|
+
static create(options = {}, publish = m => m) {
|
|
68
|
+
return new Subscription(options, publish);
|
|
69
|
+
}
|
|
70
|
+
// Consumers waiting to consume messages (i.e. an async iteration awaiting the next message).
|
|
71
|
+
#consumers = [];
|
|
72
|
+
// Messages waiting to be consumed.
|
|
73
|
+
#messages = [];
|
|
74
|
+
#pipelineEnabled;
|
|
75
|
+
// Sentinel value signaling that the subscription is "done" and no more
|
|
76
|
+
// messages can be added.
|
|
77
|
+
#sentinel = undefined;
|
|
78
|
+
#coalesce;
|
|
79
|
+
#consumed;
|
|
80
|
+
#cleanup;
|
|
81
|
+
#publish;
|
|
82
|
+
/**
|
|
83
|
+
* @param publish function for converting the internally pushed / coalesced message
|
|
84
|
+
* of type `M` to the external type `T` exposed via async iteration.
|
|
85
|
+
*/
|
|
86
|
+
constructor(options = {}, publish) {
|
|
87
|
+
const { coalesce, consumed = () => { }, cleanup = () => { }, pipeline = coalesce === undefined, } = options;
|
|
88
|
+
this.#coalesce = !coalesce
|
|
89
|
+
? undefined
|
|
90
|
+
: (curr, prev) => {
|
|
91
|
+
try {
|
|
92
|
+
return coalesce(curr.value, prev.value);
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
prev.resolve('coalesced');
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
this.#consumed = entry => {
|
|
99
|
+
consumed(entry.value);
|
|
100
|
+
entry.resolve('consumed');
|
|
101
|
+
};
|
|
102
|
+
this.#cleanup = (entries, err) => {
|
|
103
|
+
cleanup(entries.map(e => e.value), err);
|
|
104
|
+
entries.forEach(e => e.resolve('unconsumed'));
|
|
105
|
+
};
|
|
106
|
+
this.#publish = publish;
|
|
107
|
+
this.#pipelineEnabled = pipeline;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Pushes the next message to be consumed, and returns a `result` that resolves to the
|
|
111
|
+
* eventual {@link Result} of the `value`.
|
|
112
|
+
*
|
|
113
|
+
* If there is an existing unconsumed message and the Subscription has a
|
|
114
|
+
* {@link Options.coalesce coalesce} function, the specified `value` will be coalesced
|
|
115
|
+
* with the pending message. In this case, the result of the pending message
|
|
116
|
+
* is resolved to `coalesced`, regardless of the `coalesce` function implementation.
|
|
117
|
+
*
|
|
118
|
+
* If the subscription is in a terminal state, the message is dropped and the
|
|
119
|
+
* result resolves to `unconsumed`.
|
|
120
|
+
*/
|
|
121
|
+
push(value) {
|
|
122
|
+
const { promise: result, resolve } = resolver();
|
|
123
|
+
const entry = { value, resolve };
|
|
124
|
+
if (this.#sentinel) {
|
|
125
|
+
entry.resolve('unconsumed');
|
|
126
|
+
return { result };
|
|
127
|
+
}
|
|
128
|
+
const consumer = this.#consumers.shift();
|
|
129
|
+
if (consumer) {
|
|
130
|
+
consumer.resolve(entry);
|
|
131
|
+
}
|
|
132
|
+
else if (this.#coalesce && this.#messages.length) {
|
|
133
|
+
const prev = this.#messages[0];
|
|
134
|
+
this.#messages[0] = { value: this.#coalesce(entry, prev), resolve };
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.#messages.push(entry);
|
|
138
|
+
}
|
|
139
|
+
return { result };
|
|
140
|
+
}
|
|
141
|
+
/** False if the subscription has been canceled or has failed. */
|
|
142
|
+
get active() {
|
|
143
|
+
return this.#sentinel === undefined;
|
|
144
|
+
}
|
|
145
|
+
/** The number messages waiting to be consumed. This is largely for testing. */
|
|
146
|
+
get queued() {
|
|
147
|
+
return this.#messages.length;
|
|
148
|
+
}
|
|
149
|
+
/** Cancels the subscription, cleans up, and terminates any iteration. */
|
|
150
|
+
cancel() {
|
|
151
|
+
this.#terminate('canceled');
|
|
152
|
+
}
|
|
153
|
+
/** Fails the subscription, cleans up, and throws from any iteration. */
|
|
154
|
+
fail(err) {
|
|
155
|
+
this.#terminate(err);
|
|
156
|
+
}
|
|
157
|
+
#terminate(sentinel) {
|
|
158
|
+
if (!this.#sentinel) {
|
|
159
|
+
this.#sentinel = sentinel;
|
|
160
|
+
this.#cleanup(this.#messages, sentinel instanceof Error ? sentinel : undefined);
|
|
161
|
+
this.#messages.splice(0);
|
|
162
|
+
for (let consumer = this.#consumers.shift(); consumer; consumer = this.#consumers.shift()) {
|
|
163
|
+
sentinel === 'canceled'
|
|
164
|
+
? consumer.resolve(null)
|
|
165
|
+
: consumer.reject(sentinel);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
get pipeline() {
|
|
170
|
+
return this.#pipelineEnabled
|
|
171
|
+
? { [Symbol.asyncIterator]: () => this.#pipeline() }
|
|
172
|
+
: undefined;
|
|
173
|
+
}
|
|
174
|
+
#pipeline() {
|
|
175
|
+
return {
|
|
176
|
+
next: async () => {
|
|
177
|
+
const entry = this.#messages.shift();
|
|
178
|
+
if (entry !== undefined) {
|
|
179
|
+
return {
|
|
180
|
+
value: {
|
|
181
|
+
value: this.#publish(entry.value),
|
|
182
|
+
consumed: () => this.#consumed(entry),
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
if (this.#sentinel === 'canceled') {
|
|
187
|
+
return { value: undefined, done: true };
|
|
188
|
+
}
|
|
189
|
+
if (this.#sentinel) {
|
|
190
|
+
return Promise.reject(this.#sentinel);
|
|
191
|
+
}
|
|
192
|
+
const consumer = resolver();
|
|
193
|
+
this.#consumers.push(consumer);
|
|
194
|
+
// Wait for push() (or termination) to resolve the consumer.
|
|
195
|
+
const result = await consumer.promise;
|
|
196
|
+
return result
|
|
197
|
+
? {
|
|
198
|
+
value: {
|
|
199
|
+
value: this.#publish(result.value),
|
|
200
|
+
consumed: () => this.#consumed(result),
|
|
201
|
+
},
|
|
202
|
+
}
|
|
203
|
+
: { value: undefined, done: true };
|
|
204
|
+
},
|
|
205
|
+
return: value => {
|
|
206
|
+
this.cancel();
|
|
207
|
+
return Promise.resolve({ value, done: true });
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
[Symbol.asyncIterator]() {
|
|
212
|
+
const delegate = this.#pipeline();
|
|
213
|
+
let prevConsumed = () => { };
|
|
214
|
+
return {
|
|
215
|
+
next: async () => {
|
|
216
|
+
prevConsumed();
|
|
217
|
+
const entry = await delegate.next();
|
|
218
|
+
if (entry.done) {
|
|
219
|
+
return entry;
|
|
220
|
+
}
|
|
221
|
+
const { value, consumed } = entry.value;
|
|
222
|
+
prevConsumed = consumed;
|
|
223
|
+
return { value };
|
|
224
|
+
},
|
|
225
|
+
return: value => {
|
|
226
|
+
prevConsumed();
|
|
227
|
+
this.cancel();
|
|
228
|
+
return Promise.resolve({ value, done: true });
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves to the the string `"timed-out"` if `timeoutMs` elapses before
|
|
3
|
+
* the specified `promise` resolves.
|
|
4
|
+
*/
|
|
5
|
+
export declare function orTimeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T | 'timed-out'>;
|
|
6
|
+
/**
|
|
7
|
+
* Resolves to the specified `timeoutValue` if `timeoutMs` elapses before
|
|
8
|
+
* the specified `promise` resolves.
|
|
9
|
+
*/
|
|
10
|
+
export declare function orTimeoutWith<T, U>(promise: Promise<T>, timeoutMs: number, timeoutValue: U): Promise<T | U>;
|
|
11
|
+
//# sourceMappingURL=timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/timeout.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,GAAG,WAAW,CAAC,CAE1B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,EACtC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,CAAC,GACd,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAQhB"}
|