@rocicorp/zero 0.4.2024103000 → 0.5.2024110200
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/{chunk-4UHYW2B5.js → chunk-INJ4WJHS.js} +111 -99
- package/out/chunk-INJ4WJHS.js.map +7 -0
- package/out/{chunk-RCVGGCMG.js → chunk-YCMA66NH.js} +2 -2
- package/out/{chunk-RCVGGCMG.js.map → chunk-YCMA66NH.js.map} +2 -2
- package/out/internal.js +1 -1
- package/out/react.js.map +2 -2
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +0 -5
- package/out/shared/src/iterables.js.map +1 -1
- package/out/shared/src/valita.d.ts +7 -0
- package/out/shared/src/valita.d.ts.map +1 -1
- package/out/shared/src/valita.js +28 -0
- package/out/shared/src/valita.js.map +1 -1
- package/out/solid.js +2 -2
- package/out/solid.js.map +2 -2
- package/out/zero-advanced/src/mod.d.ts +7 -7
- package/out/zero-advanced/src/mod.d.ts.map +1 -1
- package/out/zero-cache/src/config/config-query.d.ts +6 -6
- package/out/zero-cache/src/config/config-query.d.ts.map +1 -1
- package/out/zero-cache/src/config/config-query.js +1 -1
- package/out/zero-cache/src/config/config-query.js.map +1 -1
- package/out/zero-cache/src/config/define-config.d.ts +3 -3
- package/out/zero-cache/src/config/define-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/define-config.js +1 -0
- package/out/zero-cache/src/config/define-config.js.map +1 -1
- package/out/zero-cache/src/config/refs.js +1 -1
- package/out/zero-cache/src/config/refs.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +38 -38
- package/out/zero-cache/src/db/statements.d.ts +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +2 -2
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +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/pipeline-driver.js +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +5 -5
- package/out/zero-cache/src/types/lite.d.ts +1 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +4 -0
- package/out/zero-cache/src/types/lite.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 +4 -4
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.d.ts +1 -1
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/normalized-schema.d.ts +2 -2
- package/out/zero-client/src/client/normalized-schema.d.ts.map +1 -1
- package/out/zero-client/src/client/normalized-schema.js +1 -1
- package/out/zero-client/src/client/normalized-schema.js.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 +1 -1
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +2 -9
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +6 -7
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +2 -2
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +2 -1
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
- package/out/zero-protocol/src/connect.d.ts +2 -2
- package/out/zero-protocol/src/data.d.ts +2 -2
- package/out/zero-protocol/src/data.d.ts.map +1 -1
- package/out/zero-protocol/src/data.js +2 -1
- package/out/zero-protocol/src/data.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +3 -3
- package/out/zero-protocol/src/poke.d.ts +6 -6
- package/out/zero-protocol/src/push.d.ts +21 -21
- package/out/zero-protocol/src/queries-patch.d.ts +3 -3
- package/out/zero-protocol/src/row-patch.d.ts +2 -2
- package/out/zero-protocol/src/up.d.ts +5 -5
- package/out/zero-react/src/use-query.d.ts +2 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-zero.d.ts +2 -1
- package/out/zero-react/src/use-zero.d.ts.map +1 -1
- package/out/zero-schema/src/mod.d.ts +4 -0
- package/out/zero-schema/src/mod.d.ts.map +1 -0
- package/out/zero-schema/src/mod.js +4 -0
- package/out/zero-schema/src/mod.js.map +1 -0
- package/out/{zql/src/zql/query → zero-schema/src}/normalize-table-schema.d.ts +2 -3
- package/out/zero-schema/src/normalize-table-schema.d.ts.map +1 -0
- package/out/{zql/src/zql/query → zero-schema/src}/normalize-table-schema.js +3 -3
- package/out/zero-schema/src/normalize-table-schema.js.map +1 -0
- package/out/zero-schema/src/schema.d.ts +9 -0
- package/out/zero-schema/src/schema.d.ts.map +1 -0
- package/out/zero-schema/src/schema.js +4 -0
- package/out/zero-schema/src/schema.js.map +1 -0
- package/out/{zql/src/zql/query/schema.d.ts → zero-schema/src/table-schema.d.ts} +39 -3
- package/out/zero-schema/src/table-schema.d.ts.map +1 -0
- package/out/{zql/src/zql/query/schema.js → zero-schema/src/table-schema.js} +1 -1
- package/out/zero-schema/src/table-schema.js.map +1 -0
- package/out/zero-solid/src/create-zero.d.ts +2 -1
- package/out/zero-solid/src/create-zero.d.ts.map +1 -1
- package/out/zero.js +2 -6
- package/out/zql/src/{zql/builder → builder}/builder.d.ts +4 -4
- package/out/zql/src/builder/builder.d.ts.map +1 -0
- package/out/zql/src/{zql/builder → builder}/builder.js +7 -3
- package/out/zql/src/builder/builder.js.map +1 -0
- package/out/zql/src/builder/error.d.ts.map +1 -0
- package/out/zql/src/builder/error.js.map +1 -0
- package/out/zql/src/{zql/builder → builder}/filter.d.ts +2 -2
- package/out/zql/src/builder/filter.d.ts.map +1 -0
- package/out/zql/src/{zql/builder → builder}/filter.js +1 -1
- package/out/zql/src/builder/filter.js.map +1 -0
- package/out/zql/src/builder/like.d.ts.map +1 -0
- package/out/zql/src/{zql/builder → builder}/like.js +1 -1
- package/out/zql/src/builder/like.js.map +1 -0
- package/out/zql/src/ivm/array-view.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/array-view.js +1 -1
- package/out/zql/src/ivm/array-view.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/change.d.ts +1 -1
- package/out/zql/src/ivm/change.d.ts.map +1 -0
- package/out/zql/src/ivm/change.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/data.d.ts +2 -2
- package/out/zql/src/ivm/data.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/data.js +1 -1
- package/out/zql/src/ivm/data.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/fan-in.d.ts +6 -4
- package/out/zql/src/ivm/fan-in.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/fan-in.js +11 -11
- package/out/zql/src/ivm/fan-in.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/fan-out.d.ts +3 -3
- package/out/zql/src/ivm/fan-out.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/fan-out.js +7 -5
- package/out/zql/src/ivm/fan-out.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/filter.d.ts +4 -5
- package/out/zql/src/ivm/filter.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/filter.js +9 -6
- package/out/zql/src/ivm/filter.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/join.d.ts +2 -2
- package/out/zql/src/ivm/join.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/join.js +2 -2
- package/out/zql/src/ivm/join.js.map +1 -0
- package/out/zql/src/ivm/lookahead-iterator.d.ts.map +1 -0
- package/out/zql/src/ivm/lookahead-iterator.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/maybe-split-and-push-edit-change.d.ts +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -0
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/memory-source.d.ts +6 -6
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/memory-source.js +12 -17
- package/out/zql/src/ivm/memory-source.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/memory-storage.d.ts +1 -1
- package/out/zql/src/ivm/memory-storage.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/operator.d.ts +5 -5
- package/out/zql/src/ivm/operator.d.ts.map +1 -0
- package/out/zql/src/ivm/operator.js.map +1 -0
- package/out/zql/src/ivm/schema.d.ts +15 -0
- package/out/zql/src/ivm/schema.d.ts.map +1 -0
- package/out/zql/src/ivm/schema.js +2 -0
- package/out/zql/src/ivm/schema.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/skip.d.ts +3 -3
- package/out/zql/src/ivm/skip.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/skip.js +1 -1
- package/out/zql/src/ivm/skip.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/source.d.ts +2 -2
- package/out/zql/src/ivm/source.d.ts.map +1 -0
- package/out/zql/src/ivm/source.js.map +1 -0
- package/out/zql/src/ivm/stream.d.ts.map +1 -0
- package/out/zql/src/ivm/stream.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/take.d.ts +2 -2
- package/out/zql/src/ivm/take.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/take.js +2 -2
- package/out/zql/src/ivm/take.js.map +1 -0
- package/out/zql/src/ivm/view-apply-change.d.ts +5 -0
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/view-apply-change.js +2 -2
- package/out/zql/src/ivm/view-apply-change.js.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/view.d.ts +2 -2
- package/out/zql/src/ivm/view.d.ts.map +1 -0
- package/out/zql/src/{zql/ivm → ivm}/view.js.map +1 -1
- package/out/zql/src/query/auth-query.d.ts +20 -0
- package/out/zql/src/query/auth-query.d.ts.map +1 -0
- package/out/zql/src/query/auth-query.js +26 -0
- package/out/zql/src/query/auth-query.js.map +1 -0
- package/out/zql/src/query/escape-like.d.ts.map +1 -0
- package/out/zql/src/query/expression.d.ts +24 -0
- package/out/zql/src/query/expression.d.ts.map +1 -0
- package/out/zql/src/{zql/query → query}/expression.js +7 -1
- package/out/zql/src/query/expression.js.map +1 -0
- package/out/zql/src/{zql/query → query}/query-impl.d.ts +5 -5
- package/out/zql/src/query/query-impl.d.ts.map +1 -0
- package/out/zql/src/{zql/query → query}/query-impl.js +6 -4
- package/out/zql/src/query/query-impl.js.map +1 -0
- package/out/zql/src/{zql/query → query}/query-internal.d.ts +1 -1
- package/out/zql/src/query/query-internal.d.ts.map +1 -0
- package/out/zql/src/query/query-internal.js.map +1 -0
- package/out/zql/src/{zql/query → query}/query.d.ts +11 -26
- package/out/zql/src/query/query.d.ts.map +1 -0
- package/out/zql/src/query/query.js.map +1 -0
- package/out/zql/src/{zql/query → query}/typed-view.d.ts +1 -1
- package/out/zql/src/query/typed-view.d.ts.map +1 -0
- package/out/zql/src/query/typed-view.js.map +1 -0
- package/out/zqlite/src/db.d.ts +1 -1
- package/out/zqlite/src/db.js +1 -1
- package/out/zqlite/src/table-source.d.ts +14 -2
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +81 -40
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +11 -2
- package/out/chunk-4UHYW2B5.js.map +0 -7
- package/out/replicache/src/async-iterable-to-array.js +0 -8
- package/out/replicache/src/async-iterable-to-array.js.map +0 -1
- package/out/replicache/src/bg-interval.js +0 -38
- package/out/replicache/src/bg-interval.js.map +0 -1
- package/out/replicache/src/binary-search.js +0 -31
- package/out/replicache/src/binary-search.js.map +0 -1
- package/out/replicache/src/broadcast-channel.js +0 -29
- package/out/replicache/src/broadcast-channel.js.map +0 -1
- package/out/replicache/src/btree/diff.js +0 -6
- package/out/replicache/src/btree/diff.js.map +0 -1
- package/out/replicache/src/btree/node.js +0 -392
- package/out/replicache/src/btree/node.js.map +0 -1
- package/out/replicache/src/btree/read.js +0 -227
- package/out/replicache/src/btree/read.js.map +0 -1
- package/out/replicache/src/btree/splice.js +0 -79
- package/out/replicache/src/btree/splice.js.map +0 -1
- package/out/replicache/src/btree/write.js +0 -154
- package/out/replicache/src/btree/write.js.map +0 -1
- package/out/replicache/src/call-default-fetch.js +0 -37
- package/out/replicache/src/call-default-fetch.js.map +0 -1
- package/out/replicache/src/config.js +0 -13
- package/out/replicache/src/config.js.map +0 -1
- package/out/replicache/src/connection-loop-delegates.js +0 -30
- package/out/replicache/src/connection-loop-delegates.js.map +0 -1
- package/out/replicache/src/connection-loop.js +0 -268
- package/out/replicache/src/connection-loop.js.map +0 -1
- package/out/replicache/src/cookies.js +0 -41
- package/out/replicache/src/cookies.js.map +0 -1
- package/out/replicache/src/dag/chunk.js +0 -60
- package/out/replicache/src/dag/chunk.js.map +0 -1
- package/out/replicache/src/dag/gc.js +0 -126
- package/out/replicache/src/dag/gc.js.map +0 -1
- package/out/replicache/src/dag/key-type-enum.js +0 -6
- package/out/replicache/src/dag/key-type-enum.js.map +0 -1
- package/out/replicache/src/dag/key.js +0 -54
- package/out/replicache/src/dag/key.js.map +0 -1
- package/out/replicache/src/dag/lazy-store.js +0 -532
- package/out/replicache/src/dag/lazy-store.js.map +0 -1
- package/out/replicache/src/dag/store-impl.js +0 -175
- package/out/replicache/src/dag/store-impl.js.map +0 -1
- package/out/replicache/src/dag/store.js +0 -22
- package/out/replicache/src/dag/store.js.map +0 -1
- package/out/replicache/src/dag/visitor.js +0 -22
- package/out/replicache/src/dag/visitor.js.map +0 -1
- package/out/replicache/src/db/commit.js +0 -443
- package/out/replicache/src/db/commit.js.map +0 -1
- package/out/replicache/src/db/index-operation-enum.js +0 -4
- package/out/replicache/src/db/index-operation-enum.js.map +0 -1
- package/out/replicache/src/db/index.js +0 -170
- package/out/replicache/src/db/index.js.map +0 -1
- package/out/replicache/src/db/meta-type-enum.js +0 -7
- package/out/replicache/src/db/meta-type-enum.js.map +0 -1
- package/out/replicache/src/db/read.js +0 -59
- package/out/replicache/src/db/read.js.map +0 -1
- package/out/replicache/src/db/rebase.js +0 -56
- package/out/replicache/src/db/rebase.js.map +0 -1
- package/out/replicache/src/db/scan.js +0 -2
- package/out/replicache/src/db/scan.js.map +0 -1
- package/out/replicache/src/db/write.js +0 -260
- package/out/replicache/src/db/write.js.map +0 -1
- package/out/replicache/src/error-responses.js +0 -30
- package/out/replicache/src/error-responses.js.map +0 -1
- package/out/replicache/src/filter-async-iterable.js +0 -15
- package/out/replicache/src/filter-async-iterable.js.map +0 -1
- package/out/replicache/src/format-version-enum.js +0 -9
- package/out/replicache/src/format-version-enum.js.map +0 -1
- package/out/replicache/src/format-version.js +0 -8
- package/out/replicache/src/format-version.js.map +0 -1
- package/out/replicache/src/frozen-json.js +0 -151
- package/out/replicache/src/frozen-json.js.map +0 -1
- package/out/replicache/src/get-default-puller.js +0 -74
- package/out/replicache/src/get-default-puller.js.map +0 -1
- package/out/replicache/src/get-default-pusher.js +0 -36
- package/out/replicache/src/get-default-pusher.js.map +0 -1
- package/out/replicache/src/hash.js +0 -73
- package/out/replicache/src/hash.js.map +0 -1
- package/out/replicache/src/http-request-info.js +0 -7
- package/out/replicache/src/http-request-info.js.map +0 -1
- package/out/replicache/src/impl.js +0 -2
- package/out/replicache/src/impl.js.map +0 -1
- package/out/replicache/src/index-defs.js +0 -28
- package/out/replicache/src/index-defs.js.map +0 -1
- package/out/replicache/src/invoke-kind-enum.js +0 -4
- package/out/replicache/src/invoke-kind-enum.js.map +0 -1
- package/out/replicache/src/iterable-union.js +0 -5
- package/out/replicache/src/iterable-union.js.map +0 -1
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js +0 -93
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +0 -1
- package/out/replicache/src/kv/idb-store.js +0 -179
- package/out/replicache/src/kv/idb-store.js.map +0 -1
- package/out/replicache/src/kv/mem-store.js +0 -61
- package/out/replicache/src/kv/mem-store.js.map +0 -1
- package/out/replicache/src/kv/read-impl.js +0 -23
- package/out/replicache/src/kv/read-impl.js.map +0 -1
- package/out/replicache/src/kv/store.js +0 -2
- package/out/replicache/src/kv/store.js.map +0 -1
- package/out/replicache/src/kv/write-impl-base.js +0 -48
- package/out/replicache/src/kv/write-impl-base.js.map +0 -1
- package/out/replicache/src/kv/write-impl.js +0 -25
- package/out/replicache/src/kv/write-impl.js.map +0 -1
- package/out/replicache/src/lazy.js +0 -10
- package/out/replicache/src/lazy.js.map +0 -1
- package/out/replicache/src/log-options.js +0 -13
- package/out/replicache/src/log-options.js.map +0 -1
- package/out/replicache/src/merge-async-iterables.js +0 -61
- package/out/replicache/src/merge-async-iterables.js.map +0 -1
- package/out/replicache/src/mod.js +0 -14
- package/out/replicache/src/mod.js.map +0 -1
- package/out/replicache/src/mutation-recovery.js +0 -439
- package/out/replicache/src/mutation-recovery.js.map +0 -1
- package/out/replicache/src/new-client-channel.js +0 -77
- package/out/replicache/src/new-client-channel.js.map +0 -1
- package/out/replicache/src/on-persist-channel.js +0 -33
- package/out/replicache/src/on-persist-channel.js.map +0 -1
- package/out/replicache/src/patch-operation.js +0 -37
- package/out/replicache/src/patch-operation.js.map +0 -1
- package/out/replicache/src/pending-mutations.js +0 -18
- package/out/replicache/src/pending-mutations.js.map +0 -1
- package/out/replicache/src/persist/client-gc.js +0 -38
- package/out/replicache/src/persist/client-gc.js.map +0 -1
- package/out/replicache/src/persist/client-group-gc.js +0 -38
- package/out/replicache/src/persist/client-group-gc.js.map +0 -1
- package/out/replicache/src/persist/client-groups.js +0 -180
- package/out/replicache/src/persist/client-groups.js.map +0 -1
- package/out/replicache/src/persist/clients.js +0 -390
- package/out/replicache/src/persist/clients.js.map +0 -1
- package/out/replicache/src/persist/collect-idb-databases.js +0 -174
- package/out/replicache/src/persist/collect-idb-databases.js.map +0 -1
- package/out/replicache/src/persist/gather-mem-only-visitor.js +0 -25
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +0 -1
- package/out/replicache/src/persist/gather-not-cached-visitor.js +0 -35
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +0 -1
- package/out/replicache/src/persist/heartbeat.js +0 -37
- package/out/replicache/src/persist/heartbeat.js.map +0 -1
- package/out/replicache/src/persist/idb-databases-store-db-name.js +0 -18
- package/out/replicache/src/persist/idb-databases-store-db-name.js.map +0 -1
- package/out/replicache/src/persist/idb-databases-store.js +0 -90
- package/out/replicache/src/persist/idb-databases-store.js.map +0 -1
- package/out/replicache/src/persist/make-client-id.js +0 -13
- package/out/replicache/src/persist/make-client-id.js.map +0 -1
- package/out/replicache/src/persist/persist.js +0 -132
- package/out/replicache/src/persist/persist.js.map +0 -1
- package/out/replicache/src/persist/refresh.js +0 -147
- package/out/replicache/src/persist/refresh.js.map +0 -1
- package/out/replicache/src/process-scheduler.js +0 -93
- package/out/replicache/src/process-scheduler.js.map +0 -1
- package/out/replicache/src/puller.js +0 -2
- package/out/replicache/src/puller.js.map +0 -1
- package/out/replicache/src/pusher.js +0 -32
- package/out/replicache/src/pusher.js.map +0 -1
- package/out/replicache/src/replicache-impl.js +0 -1007
- package/out/replicache/src/replicache-impl.js.map +0 -1
- package/out/replicache/src/replicache-options.js +0 -2
- package/out/replicache/src/replicache-options.js.map +0 -1
- package/out/replicache/src/replicache.js +0 -387
- package/out/replicache/src/replicache.js.map +0 -1
- package/out/replicache/src/request-idle.js +0 -15
- package/out/replicache/src/request-idle.js.map +0 -1
- package/out/replicache/src/scan-iterator.js +0 -202
- package/out/replicache/src/scan-iterator.js.map +0 -1
- package/out/replicache/src/scan-options.js +0 -45
- package/out/replicache/src/scan-options.js.map +0 -1
- package/out/replicache/src/set-interval-with-signal.js +0 -7
- package/out/replicache/src/set-interval-with-signal.js.map +0 -1
- package/out/replicache/src/size-of-value.js +0 -77
- package/out/replicache/src/size-of-value.js.map +0 -1
- package/out/replicache/src/subscriptions.js +0 -357
- package/out/replicache/src/subscriptions.js.map +0 -1
- package/out/replicache/src/sync/diff.js +0 -75
- package/out/replicache/src/sync/diff.js.map +0 -1
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +0 -5
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +0 -1
- package/out/replicache/src/sync/ids.js +0 -4
- package/out/replicache/src/sync/ids.js.map +0 -1
- package/out/replicache/src/sync/patch.js +0 -41
- package/out/replicache/src/sync/patch.js.map +0 -1
- package/out/replicache/src/sync/pull-error.js +0 -16
- package/out/replicache/src/sync/pull-error.js.map +0 -1
- package/out/replicache/src/sync/pull.js +0 -375
- package/out/replicache/src/sync/pull.js.map +0 -1
- package/out/replicache/src/sync/push.js +0 -141
- package/out/replicache/src/sync/push.js.map +0 -1
- package/out/replicache/src/sync/request-id.js +0 -31
- package/out/replicache/src/sync/request-id.js.map +0 -1
- package/out/replicache/src/sync/sync-head-name.js +0 -2
- package/out/replicache/src/sync/sync-head-name.js.map +0 -1
- package/out/replicache/src/test-license-key.js +0 -3
- package/out/replicache/src/test-license-key.js.map +0 -1
- package/out/replicache/src/to-error.js +0 -7
- package/out/replicache/src/to-error.js.map +0 -1
- package/out/replicache/src/transaction-closed-error.js +0 -17
- package/out/replicache/src/transaction-closed-error.js.map +0 -1
- package/out/replicache/src/transactions.js +0 -144
- package/out/replicache/src/transactions.js.map +0 -1
- package/out/replicache/src/types.js +0 -2
- package/out/replicache/src/types.js.map +0 -1
- package/out/replicache/src/version.js +0 -6
- package/out/replicache/src/version.js.map +0 -1
- package/out/replicache/src/with-transactions.js +0 -28
- package/out/replicache/src/with-transactions.js.map +0 -1
- package/out/shared/src/browser-env.js +0 -14
- package/out/shared/src/browser-env.js.map +0 -1
- package/out/shared/src/document-visible.js +0 -76
- package/out/shared/src/document-visible.js.map +0 -1
- package/out/shared/src/navigator.js +0 -3
- package/out/shared/src/navigator.js.map +0 -1
- package/out/shared/src/random-uint64.js +0 -8
- package/out/shared/src/random-uint64.js.map +0 -1
- package/out/shared/src/types.js +0 -2
- package/out/shared/src/types.js.map +0 -1
- package/out/zero-client/src/client/context.js +0 -113
- package/out/zero-client/src/client/context.js.map +0 -1
- package/out/zero-client/src/client/crud.js +0 -181
- package/out/zero-client/src/client/crud.js.map +0 -1
- package/out/zero-client/src/client/enable-analytics.js +0 -21
- package/out/zero-client/src/client/enable-analytics.js.map +0 -1
- package/out/zero-client/src/client/http-string.js +0 -14
- package/out/zero-client/src/client/http-string.js.map +0 -1
- package/out/zero-client/src/client/keys.js +0 -32
- package/out/zero-client/src/client/keys.js.map +0 -1
- package/out/zero-client/src/client/log-options.js +0 -57
- package/out/zero-client/src/client/log-options.js.map +0 -1
- package/out/zero-client/src/client/metrics.js +0 -268
- package/out/zero-client/src/client/metrics.js.map +0 -1
- package/out/zero-client/src/client/options.js +0 -2
- package/out/zero-client/src/client/options.js.map +0 -1
- package/out/zero-client/src/client/query-manager.js +0 -146
- package/out/zero-client/src/client/query-manager.js.map +0 -1
- package/out/zero-client/src/client/reload-error-handler.js +0 -23
- package/out/zero-client/src/client/reload-error-handler.js.map +0 -1
- package/out/zero-client/src/client/replicache-types.js +0 -2
- package/out/zero-client/src/client/replicache-types.js.map +0 -1
- package/out/zero-client/src/client/server-error.js +0 -22
- package/out/zero-client/src/client/server-error.js.map +0 -1
- package/out/zero-client/src/client/server-option.js +0 -37
- package/out/zero-client/src/client/server-option.js.map +0 -1
- package/out/zero-client/src/client/version.js +0 -6
- package/out/zero-client/src/client/version.js.map +0 -1
- package/out/zero-client/src/client/zero-poke-handler.js +0 -240
- package/out/zero-client/src/client/zero-poke-handler.js.map +0 -1
- package/out/zero-client/src/client/zero.js +0 -1233
- package/out/zero-client/src/client/zero.js.map +0 -1
- package/out/zero-client/src/mod.js +0 -7
- package/out/zero-client/src/mod.js.map +0 -1
- package/out/zero-client/src/util/nanoid.js +0 -34
- package/out/zero-client/src/util/nanoid.js.map +0 -1
- package/out/zero-client/src/util/socket.js +0 -4
- package/out/zero-client/src/util/socket.js.map +0 -1
- package/out/zql/src/zql/builder/builder.d.ts.map +0 -1
- package/out/zql/src/zql/builder/builder.js.map +0 -1
- package/out/zql/src/zql/builder/error.d.ts.map +0 -1
- package/out/zql/src/zql/builder/error.js.map +0 -1
- package/out/zql/src/zql/builder/filter.d.ts.map +0 -1
- package/out/zql/src/zql/builder/filter.js.map +0 -1
- package/out/zql/src/zql/builder/like.d.ts.map +0 -1
- package/out/zql/src/zql/builder/like.js.map +0 -1
- package/out/zql/src/zql/ivm/array-view.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/array-view.js.map +0 -1
- package/out/zql/src/zql/ivm/change.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/change.js.map +0 -1
- package/out/zql/src/zql/ivm/data.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/data.js.map +0 -1
- package/out/zql/src/zql/ivm/fan-in.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/fan-in.js.map +0 -1
- package/out/zql/src/zql/ivm/fan-out.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/fan-out.js.map +0 -1
- package/out/zql/src/zql/ivm/filter.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/filter.js.map +0 -1
- package/out/zql/src/zql/ivm/join.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/join.js.map +0 -1
- package/out/zql/src/zql/ivm/lookahead-iterator.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/lookahead-iterator.js.map +0 -1
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js.map +0 -1
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/memory-source.js.map +0 -1
- package/out/zql/src/zql/ivm/memory-storage.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/memory-storage.js +0 -33
- package/out/zql/src/zql/ivm/memory-storage.js.map +0 -1
- package/out/zql/src/zql/ivm/operator.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/operator.js.map +0 -1
- package/out/zql/src/zql/ivm/schema.d.ts +0 -29
- package/out/zql/src/zql/ivm/schema.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/schema.js +0 -3
- package/out/zql/src/zql/ivm/schema.js.map +0 -1
- package/out/zql/src/zql/ivm/skip.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/skip.js.map +0 -1
- package/out/zql/src/zql/ivm/source.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/source.js.map +0 -1
- package/out/zql/src/zql/ivm/stream.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/stream.js.map +0 -1
- package/out/zql/src/zql/ivm/take.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/take.js.map +0 -1
- package/out/zql/src/zql/ivm/view-apply-change.d.ts +0 -5
- package/out/zql/src/zql/ivm/view-apply-change.d.ts.map +0 -1
- package/out/zql/src/zql/ivm/view-apply-change.js.map +0 -1
- package/out/zql/src/zql/ivm/view.d.ts.map +0 -1
- package/out/zql/src/zql/query/escape-like.d.ts.map +0 -1
- package/out/zql/src/zql/query/escape-like.js +0 -4
- package/out/zql/src/zql/query/escape-like.js.map +0 -1
- package/out/zql/src/zql/query/expression.d.ts +0 -25
- package/out/zql/src/zql/query/expression.d.ts.map +0 -1
- package/out/zql/src/zql/query/expression.js.map +0 -1
- package/out/zql/src/zql/query/normalize-table-schema.d.ts.map +0 -1
- package/out/zql/src/zql/query/normalize-table-schema.js.map +0 -1
- package/out/zql/src/zql/query/query-impl.d.ts.map +0 -1
- package/out/zql/src/zql/query/query-impl.js.map +0 -1
- package/out/zql/src/zql/query/query-internal.d.ts.map +0 -1
- package/out/zql/src/zql/query/query-internal.js.map +0 -1
- package/out/zql/src/zql/query/query.d.ts.map +0 -1
- package/out/zql/src/zql/query/query.js.map +0 -1
- package/out/zql/src/zql/query/schema.d.ts.map +0 -1
- package/out/zql/src/zql/query/schema.js.map +0 -1
- package/out/zql/src/zql/query/typed-view.d.ts.map +0 -1
- package/out/zql/src/zql/query/typed-view.js.map +0 -1
- /package/out/zql/src/{zql/builder → builder}/error.d.ts +0 -0
- /package/out/zql/src/{zql/builder → builder}/error.js +0 -0
- /package/out/zql/src/{zql/builder → builder}/like.d.ts +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/array-view.d.ts +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/change.js +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/lookahead-iterator.d.ts +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/lookahead-iterator.js +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/maybe-split-and-push-edit-change.js +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/operator.js +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/source.js +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/stream.d.ts +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/stream.js +0 -0
- /package/out/zql/src/{zql/ivm → ivm}/view.js +0 -0
- /package/out/zql/src/{zql/query → query}/escape-like.d.ts +0 -0
- /package/out/zql/src/{zql/query → query}/query-internal.js +0 -0
- /package/out/zql/src/{zql/query → query}/query.js +0 -0
- /package/out/zql/src/{zql/query → query}/typed-view.js +0 -0
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// https://www.oreilly.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
|
|
2
|
-
const IPV4_ADDRESS_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
3
|
-
// This doesn't ensure a valid ipv6, but any ipv6 hostname will
|
|
4
|
-
// match this regex, and no domain based hostnames will.
|
|
5
|
-
const IPV6_ADDRESS_HOSTNAME_REGEX = /^\[[a-fA-F0-9:]*:[a-fA-F0-9:]*\]$/;
|
|
6
|
-
export const IP_ADDRESS_HOSTNAME_REGEX = new RegExp(`(${IPV4_ADDRESS_REGEX.source}|${IPV6_ADDRESS_HOSTNAME_REGEX.source})`);
|
|
7
|
-
export function shouldEnableAnalytics(server, enableAnalytics = true) {
|
|
8
|
-
if (!enableAnalytics) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
const serverURL = server === null ? null : new URL(server);
|
|
12
|
-
const socketHostname = serverURL?.hostname;
|
|
13
|
-
// If the hostname is undefined, localhost, or an ip address, then
|
|
14
|
-
// this is most likely a test or local development, in which case we
|
|
15
|
-
// do not want to enable analytics.
|
|
16
|
-
return (server !== null &&
|
|
17
|
-
socketHostname !== undefined &&
|
|
18
|
-
socketHostname !== 'localhost' &&
|
|
19
|
-
!IP_ADDRESS_HOSTNAME_REGEX.test(socketHostname));
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=enable-analytics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enable-analytics.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/enable-analytics.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,kBAAkB,GACtB,6FAA6F,CAAC;AAChG,+DAA+D;AAC/D,wDAAwD;AACxD,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAExE,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,MAAM,CACjD,IAAI,kBAAkB,CAAC,MAAM,IAAI,2BAA2B,CAAC,MAAM,GAAG,CACvE,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,eAAe,GAAG,IAAI;IAEtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,SAAS,EAAE,QAAQ,CAAC;IAC3C,kEAAkE;IAClE,oEAAoE;IACpE,mCAAmC;IACnC,OAAO,CACL,MAAM,KAAK,IAAI;QACf,cAAc,KAAK,SAAS;QAC5B,cAAc,KAAK,WAAW;QAC9B,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAChD,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { assert } from '../../../shared/src/asserts.js';
|
|
2
|
-
export function toWSString(url) {
|
|
3
|
-
return ('ws' + url.slice(4));
|
|
4
|
-
}
|
|
5
|
-
export function toHTTPString(url) {
|
|
6
|
-
return ('http' + url.slice(2));
|
|
7
|
-
}
|
|
8
|
-
export function assertHTTPString(url) {
|
|
9
|
-
assert(/^https?:\/\//.test(url));
|
|
10
|
-
}
|
|
11
|
-
export function assertWSString(url) {
|
|
12
|
-
assert(/^wss?:\/\//.test(url));
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=http-string.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-string.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/http-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAMtD,MAAM,UAAU,UAAU,CAAC,GAAe;IACxC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAa,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAa;IACxC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAe,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { h64WithReverse } from '../../../shared/src/h64-with-reverse.js';
|
|
2
|
-
import * as v from '../../../shared/src/valita.js';
|
|
3
|
-
import { primaryKeyValueSchema } from '../../../zero-protocol/src/primary-key.js';
|
|
4
|
-
export const CLIENTS_KEY_PREFIX = 'c/';
|
|
5
|
-
export const DESIRED_QUERIES_KEY_PREFIX = 'd/';
|
|
6
|
-
export const GOT_QUERIES_KEY_PREFIX = 'g/';
|
|
7
|
-
export const ENTITIES_KEY_PREFIX = 'e/';
|
|
8
|
-
export function toClientsKey(clientID) {
|
|
9
|
-
return CLIENTS_KEY_PREFIX + clientID;
|
|
10
|
-
}
|
|
11
|
-
export function toDesiredQueriesKey(clientID, hash) {
|
|
12
|
-
return DESIRED_QUERIES_KEY_PREFIX + clientID + '/' + hash;
|
|
13
|
-
}
|
|
14
|
-
export function desiredQueriesPrefixForClient(clientID) {
|
|
15
|
-
return DESIRED_QUERIES_KEY_PREFIX + clientID + '/';
|
|
16
|
-
}
|
|
17
|
-
export function toGotQueriesKey(hash) {
|
|
18
|
-
return GOT_QUERIES_KEY_PREFIX + hash;
|
|
19
|
-
}
|
|
20
|
-
export function toPrimaryKeyString(tableName, primaryKey, value) {
|
|
21
|
-
if (primaryKey.length === 1) {
|
|
22
|
-
return (ENTITIES_KEY_PREFIX +
|
|
23
|
-
tableName +
|
|
24
|
-
'/' +
|
|
25
|
-
v.parse(value[primaryKey[0]], primaryKeyValueSchema));
|
|
26
|
-
}
|
|
27
|
-
const values = primaryKey.map(k => v.parse(value[k], primaryKeyValueSchema));
|
|
28
|
-
const str = JSON.stringify(values);
|
|
29
|
-
const idSegment = h64WithReverse(str);
|
|
30
|
-
return ENTITIES_KEY_PREFIX + tableName + '/' + idSegment;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAEnD,OAAO,EAAC,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAGhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,kBAAkB,GAAG,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,IAAY;IAChE,OAAO,0BAA0B,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,OAAO,0BAA0B,GAAG,QAAQ,GAAG,GAAG,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,sBAAsB,GAAG,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,UAAgC,EAChC,KAAU;IAEV,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,mBAAmB;YACnB,SAAS;YACT,GAAG;YACH,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,mBAAmB,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;AAC3D,CAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { TeeLogSink, consoleLogSink, } from '@rocicorp/logger';
|
|
2
|
-
import { DatadogLogSink, } from '../../../datadog/src/mod.js';
|
|
3
|
-
import { version } from './version.js';
|
|
4
|
-
class LevelFilterLogSink {
|
|
5
|
-
#wrappedLogSink;
|
|
6
|
-
#level;
|
|
7
|
-
constructor(wrappedLogSink, level) {
|
|
8
|
-
this.#wrappedLogSink = wrappedLogSink;
|
|
9
|
-
this.#level = level;
|
|
10
|
-
}
|
|
11
|
-
log(level, context, ...args) {
|
|
12
|
-
if (this.#level === 'error' && level !== 'error') {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (this.#level === 'info' && level === 'debug') {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
this.#wrappedLogSink.log(level, context, ...args);
|
|
19
|
-
}
|
|
20
|
-
async flush() {
|
|
21
|
-
await consoleLogSink.flush?.();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
const DATADOG_LOG_LEVEL = 'info';
|
|
25
|
-
const ZERO_SASS_DOMAIN = '.reflect-server.net';
|
|
26
|
-
export function createLogOptions(options, createDatadogLogSink = (options) => new DatadogLogSink(options)) {
|
|
27
|
-
const { consoleLogLevel, server, enableAnalytics } = options;
|
|
28
|
-
if (!enableAnalytics || server === null) {
|
|
29
|
-
return {
|
|
30
|
-
logLevel: consoleLogLevel,
|
|
31
|
-
logSink: consoleLogSink,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
const serverURL = new URL(server);
|
|
35
|
-
const socketHostname = serverURL.hostname;
|
|
36
|
-
const datadogServiceLabel = socketHostname.endsWith(ZERO_SASS_DOMAIN)
|
|
37
|
-
? socketHostname
|
|
38
|
-
.substring(0, socketHostname.length - ZERO_SASS_DOMAIN.length)
|
|
39
|
-
.toLowerCase()
|
|
40
|
-
: socketHostname;
|
|
41
|
-
const baseURL = new URL('/api/logs/v0/log', server);
|
|
42
|
-
const logLevel = consoleLogLevel === 'debug' ? 'debug' : 'info';
|
|
43
|
-
const logSink = new TeeLogSink([
|
|
44
|
-
new LevelFilterLogSink(consoleLogSink, consoleLogLevel),
|
|
45
|
-
new LevelFilterLogSink(createDatadogLogSink({
|
|
46
|
-
service: datadogServiceLabel,
|
|
47
|
-
host: location.host,
|
|
48
|
-
version,
|
|
49
|
-
baseURL,
|
|
50
|
-
}), DATADOG_LOG_LEVEL),
|
|
51
|
-
]);
|
|
52
|
-
return {
|
|
53
|
-
logLevel,
|
|
54
|
-
logSink,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=log-options.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log-options.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/log-options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,GAIf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,MAAM,kBAAkB;IACb,eAAe,CAAU;IACzB,MAAM,CAAW;IAE1B,YAAY,cAAuB,EAAE,KAAe;QAClD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,KAAe,EAAE,OAA4B,EAAE,GAAG,IAAe;QACnE,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;IACjC,CAAC;CACF;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAO/C,MAAM,UAAU,gBAAgB,CAC9B,OAIC,EACD,uBAAoE,CAClE,OAA8B,EAC9B,EAAE,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC;IAEhC,MAAM,EAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAC,GAAG,OAAO,CAAC;IAE3D,IAAI,CAAC,eAAe,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO;YACL,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC1C,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACnE,CAAC,CAAC,cAAc;aACX,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;aAC7D,WAAW,EAAE;QAClB,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC;QAC7B,IAAI,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC;QACvD,IAAI,kBAAkB,CACpB,oBAAoB,CAAC;YACnB,OAAO,EAAE,mBAAmB;YAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,OAAO;SACR,CAAC,EACF,iBAAiB,CAClB;KACF,CAAC,CAAC;IACH,OAAO;QACL,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
export var MetricName;
|
|
2
|
-
(function (MetricName) {
|
|
3
|
-
MetricName["TimeToConnectMs"] = "time_to_connect_ms";
|
|
4
|
-
MetricName["LastConnectError"] = "last_connect_error";
|
|
5
|
-
MetricName["TimeToConnectMsV2"] = "time_to_connect_ms_v2";
|
|
6
|
-
MetricName["LastConnectErrorV2"] = "last_connect_error_v2";
|
|
7
|
-
MetricName["TotalTimeToConnectMs"] = "total_time_to_connect_ms";
|
|
8
|
-
MetricName["NotConnected"] = "not_connected";
|
|
9
|
-
})(MetricName || (MetricName = {}));
|
|
10
|
-
// This value is used to indicate that the client's last connection attempt
|
|
11
|
-
// failed. We don't make this -1 because we want to stack this never connected
|
|
12
|
-
// state in a graph on top of actual connection times, so it should be greater
|
|
13
|
-
// than any other value.
|
|
14
|
-
export const DID_NOT_CONNECT_VALUE = 100 * 1000;
|
|
15
|
-
export const REPORT_INTERVAL_MS = 5_000;
|
|
16
|
-
export function getLastConnectErrorValue(reason) {
|
|
17
|
-
if ('server' in reason) {
|
|
18
|
-
return `server_${camelToSnake(reason.server)}`;
|
|
19
|
-
}
|
|
20
|
-
return `client_${camelToSnake(reason.client)}`;
|
|
21
|
-
}
|
|
22
|
-
// camelToSnake is used to convert a protocol ErrorKind into a suitable
|
|
23
|
-
// metric name, eg AuthInvalidated => auth_invalidated. It converts
|
|
24
|
-
// both PascalCase and camelCase to snake_case.
|
|
25
|
-
function camelToSnake(s) {
|
|
26
|
-
return s
|
|
27
|
-
.split(/\.?(?=[A-Z])/)
|
|
28
|
-
.join('_')
|
|
29
|
-
.toLowerCase();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* MetricManager keeps track of the set of metrics in use and flushes them
|
|
33
|
-
* to a format suitable for reporting.
|
|
34
|
-
*/
|
|
35
|
-
export class MetricManager {
|
|
36
|
-
#reportIntervalMs;
|
|
37
|
-
#host;
|
|
38
|
-
#reporter;
|
|
39
|
-
#lc;
|
|
40
|
-
#timerID;
|
|
41
|
-
constructor(opts) {
|
|
42
|
-
this.#reportIntervalMs = opts.reportIntervalMs;
|
|
43
|
-
this.#host = opts.host;
|
|
44
|
-
this.#reporter = opts.reporter;
|
|
45
|
-
this.#lc = opts.lc;
|
|
46
|
-
this.tags.push(`source:${opts.source}`);
|
|
47
|
-
this.timeToConnectMs.set(DID_NOT_CONNECT_VALUE);
|
|
48
|
-
this.#setNotConnectedReason('init');
|
|
49
|
-
this.#timerID = setInterval(() => {
|
|
50
|
-
void this.flush();
|
|
51
|
-
}, this.#reportIntervalMs);
|
|
52
|
-
}
|
|
53
|
-
#metrics = [];
|
|
54
|
-
// timeToConnectMs measures the time from the call to connect() to receiving
|
|
55
|
-
// the 'connected' ws message. We record the DID_NOT_CONNECT_VALUE if the previous
|
|
56
|
-
// connection attempt failed for any reason.
|
|
57
|
-
//
|
|
58
|
-
// We set the gauge using #connectStart as follows:
|
|
59
|
-
// - #connectStart is undefined if we are disconnected or connected; it is
|
|
60
|
-
// defined only in the Connecting state, as a number representing the timestamp
|
|
61
|
-
// at which we started connecting.
|
|
62
|
-
// - #connectStart is set to the current time when connect() is called.
|
|
63
|
-
// - When we receive the 'connected' message we record the time to connect and
|
|
64
|
-
// set #connectStart to undefined.
|
|
65
|
-
// - If disconnect() is called with a defined #connectStart then we record
|
|
66
|
-
// DID_NOT_CONNECT_VALUE and set #connectStart to undefined.
|
|
67
|
-
//
|
|
68
|
-
// TODO It's clear after playing with the connection code we should encapsulate
|
|
69
|
-
// the ConnectionState along with its state transitions and possibly behavior.
|
|
70
|
-
// In that world the metric gauge(s) and bookkeeping like #connectStart would
|
|
71
|
-
// be encapsulated with the ConnectionState. This will probably happen as part
|
|
72
|
-
// of https://github.com/rocicorp/reflect-server/issues/255.
|
|
73
|
-
timeToConnectMs = this.#register(new Gauge(MetricName.TimeToConnectMs));
|
|
74
|
-
// lastConnectError records the last error that occurred when connecting,
|
|
75
|
-
// if any. It is cleared when connecting successfully or when reported, so this
|
|
76
|
-
// state only gets reported if there was a failure during the reporting period and
|
|
77
|
-
// we are still not connected.
|
|
78
|
-
lastConnectError = this.#register(new State(MetricName.LastConnectError, true));
|
|
79
|
-
// notConnected records the reason why the client is not currently connected.
|
|
80
|
-
// It is cleared when the client successfully connects.
|
|
81
|
-
#notConnected = this.#register(new State(MetricName.NotConnected));
|
|
82
|
-
// The time from the call to connect() to receiving the 'connected' ws message
|
|
83
|
-
// for the current connection. Cleared when the client is not connected.
|
|
84
|
-
// TODO: Not actually currently cleared on disconnect untill there is a
|
|
85
|
-
// connect error, or client reports disconnected and waiting for visible.
|
|
86
|
-
// Should have a value iff _notConnected has no value.
|
|
87
|
-
#timeToConnectMsV2 = this.#register(new Gauge(MetricName.TimeToConnectMsV2));
|
|
88
|
-
// lastConnectErrorV2 records the last error that occurred when connecting,
|
|
89
|
-
// if any. It is cleared when the client successfully connects or
|
|
90
|
-
// stops trying to connect due to being hidden.
|
|
91
|
-
// Should have a value iff notConnected state is NotConnectedReason.Error.
|
|
92
|
-
#lastConnectErrorV2 = this.#register(new State(MetricName.LastConnectErrorV2));
|
|
93
|
-
// The total time it took to connect across retries for the current
|
|
94
|
-
// connection. Cleared when the client is not connected.
|
|
95
|
-
// TODO: Not actually currently cleared on disconnect until there is a
|
|
96
|
-
// connect error, or client reports disconnected and waiting for visible.
|
|
97
|
-
// See Zero.#totalToConnectStart for details of how this total is computed.
|
|
98
|
-
// Should have a value iff _notConnected has no value.
|
|
99
|
-
#totalTimeToConnectMs = this.#register(new Gauge(MetricName.TotalTimeToConnectMs));
|
|
100
|
-
#setNotConnectedReason(reason) {
|
|
101
|
-
this.#notConnected.set(reason);
|
|
102
|
-
}
|
|
103
|
-
setConnected(timeToConnectMs, totalTimeToConnectMs) {
|
|
104
|
-
this.#notConnected.clear();
|
|
105
|
-
this.#lastConnectErrorV2.clear();
|
|
106
|
-
this.#timeToConnectMsV2.set(timeToConnectMs);
|
|
107
|
-
this.#totalTimeToConnectMs.set(totalTimeToConnectMs);
|
|
108
|
-
}
|
|
109
|
-
setDisconnectedWaitingForVisible() {
|
|
110
|
-
this.#timeToConnectMsV2.clear();
|
|
111
|
-
this.#totalTimeToConnectMs.clear();
|
|
112
|
-
this.#lastConnectErrorV2.clear();
|
|
113
|
-
let notConnectedReason;
|
|
114
|
-
switch (this.#notConnected.get()) {
|
|
115
|
-
case 'init':
|
|
116
|
-
notConnectedReason = 'hidden_was_init';
|
|
117
|
-
break;
|
|
118
|
-
case 'error':
|
|
119
|
-
notConnectedReason = 'hidden_was_error';
|
|
120
|
-
break;
|
|
121
|
-
default:
|
|
122
|
-
notConnectedReason = 'hidden';
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
this.#setNotConnectedReason(notConnectedReason);
|
|
126
|
-
}
|
|
127
|
-
setConnectError(reason) {
|
|
128
|
-
this.#timeToConnectMsV2.clear();
|
|
129
|
-
this.#totalTimeToConnectMs.clear();
|
|
130
|
-
this.#setNotConnectedReason('error');
|
|
131
|
-
this.#lastConnectErrorV2.set(getLastConnectErrorValue(reason));
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Tags to include in all metrics.
|
|
135
|
-
*/
|
|
136
|
-
tags = [];
|
|
137
|
-
// Flushes all metrics to an array of time series (plural), one Series
|
|
138
|
-
// per metric.
|
|
139
|
-
async flush() {
|
|
140
|
-
const lc = this.#lc;
|
|
141
|
-
if (this.#timerID === null) {
|
|
142
|
-
lc.error?.('MetricManager.flush() called but already stopped');
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
const allSeries = [];
|
|
146
|
-
for (const metric of this.#metrics) {
|
|
147
|
-
const series = metric.flush();
|
|
148
|
-
if (series !== undefined) {
|
|
149
|
-
allSeries.push({
|
|
150
|
-
...series,
|
|
151
|
-
host: this.#host,
|
|
152
|
-
tags: this.tags,
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (allSeries.length === 0) {
|
|
157
|
-
lc?.debug?.('No metrics to report');
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
try {
|
|
161
|
-
await this.#reporter(allSeries);
|
|
162
|
-
}
|
|
163
|
-
catch (e) {
|
|
164
|
-
lc?.error?.(`Error reporting metrics: ${e}`);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
stop() {
|
|
168
|
-
if (this.#timerID === null) {
|
|
169
|
-
this.#lc.error?.('MetricManager.stop() called but already stopped');
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
clearInterval(this.#timerID);
|
|
173
|
-
this.#timerID = null;
|
|
174
|
-
}
|
|
175
|
-
#register(metric) {
|
|
176
|
-
this.#metrics.push(metric);
|
|
177
|
-
return metric;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
function makePoint(ts, value) {
|
|
181
|
-
return [ts, [value]];
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Gauge is a metric type that represents a single value that can go up and
|
|
185
|
-
* down. It's typically used to track discrete values or counts eg the number
|
|
186
|
-
* of active users, number of connections, cpu load, etc. A gauge retains
|
|
187
|
-
* its value when flushed.
|
|
188
|
-
*
|
|
189
|
-
* We use a Gauge to sample at the client. If we are interested in tracking
|
|
190
|
-
* a metric value *per client*, the client can note the latest value in
|
|
191
|
-
* a Gauge metric. The metric is periodically reported via Reporter. On the
|
|
192
|
-
* server, we graph the value of the metric rolled up over the periodic
|
|
193
|
-
* reporting period, that is, counted over a span of time equal to the
|
|
194
|
-
* reporting period. The result is ~one point per client per reporting
|
|
195
|
-
* period.
|
|
196
|
-
*/
|
|
197
|
-
export class Gauge {
|
|
198
|
-
#name;
|
|
199
|
-
#value = undefined;
|
|
200
|
-
constructor(name) {
|
|
201
|
-
this.#name = name;
|
|
202
|
-
}
|
|
203
|
-
set(value) {
|
|
204
|
-
this.#value = value;
|
|
205
|
-
}
|
|
206
|
-
get() {
|
|
207
|
-
return this.#value;
|
|
208
|
-
}
|
|
209
|
-
clear() {
|
|
210
|
-
this.#value = undefined;
|
|
211
|
-
}
|
|
212
|
-
flush() {
|
|
213
|
-
if (this.#value === undefined) {
|
|
214
|
-
return undefined;
|
|
215
|
-
}
|
|
216
|
-
// Gauge reports the timestamp at flush time, not at the point the value was
|
|
217
|
-
// recorded.
|
|
218
|
-
const points = [makePoint(t(), this.#value)];
|
|
219
|
-
return { metric: this.#name, points };
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
function t() {
|
|
223
|
-
return Math.round(Date.now() / 1000);
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* State is a metric type that represents a specific state that the system is
|
|
227
|
-
* in, for example the state of a connection which may be 'open' or 'closed'.
|
|
228
|
-
* The state is given a name/prefix at construction time (eg 'connection') and
|
|
229
|
-
* then can be set to a specific state (eg 'open'). The prefix is prepended to
|
|
230
|
-
* the set state (eg, 'connection_open') and a value of 1 is reported.
|
|
231
|
-
* Unset/cleared states are not reported.
|
|
232
|
-
*
|
|
233
|
-
* Example:
|
|
234
|
-
* const s = new State('connection');
|
|
235
|
-
* s.set('open');
|
|
236
|
-
* s.flush(); // returns {metric: 'connection_open', points: [[now(), [1]]]}
|
|
237
|
-
*/
|
|
238
|
-
export class State {
|
|
239
|
-
#prefix;
|
|
240
|
-
#clearOnFlush;
|
|
241
|
-
#current = undefined;
|
|
242
|
-
constructor(prefix, clearOnFlush = false) {
|
|
243
|
-
this.#prefix = prefix;
|
|
244
|
-
this.#clearOnFlush = clearOnFlush;
|
|
245
|
-
}
|
|
246
|
-
set(state) {
|
|
247
|
-
this.#current = state;
|
|
248
|
-
}
|
|
249
|
-
get() {
|
|
250
|
-
return this.#current;
|
|
251
|
-
}
|
|
252
|
-
clear() {
|
|
253
|
-
this.#current = undefined;
|
|
254
|
-
}
|
|
255
|
-
flush() {
|
|
256
|
-
if (this.#current === undefined) {
|
|
257
|
-
return undefined;
|
|
258
|
-
}
|
|
259
|
-
const gauge = new Gauge([this.#prefix, this.#current].join('_'));
|
|
260
|
-
gauge.set(1);
|
|
261
|
-
const series = gauge.flush();
|
|
262
|
-
if (this.#clearOnFlush) {
|
|
263
|
-
this.clear();
|
|
264
|
-
}
|
|
265
|
-
return series;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/options.ts"],"names":[],"mappings":""}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { must } from '../../../shared/src/must.js';
|
|
2
|
-
import { hashOfAST } from '../../../zero-protocol/src/ast-hash.js';
|
|
3
|
-
import { normalizeAST } from '../../../zero-protocol/src/ast.js';
|
|
4
|
-
import { desiredQueriesPrefixForClient, GOT_QUERIES_KEY_PREFIX } from './keys.js';
|
|
5
|
-
/**
|
|
6
|
-
* Tracks what queries the client is currently subscribed to on the server.
|
|
7
|
-
* Sends `changeDesiredQueries` message to server when this changes.
|
|
8
|
-
* Deduplicates requests so that we only listen to a given unique query once.
|
|
9
|
-
*/
|
|
10
|
-
export class QueryManager {
|
|
11
|
-
#clientID;
|
|
12
|
-
#send;
|
|
13
|
-
#queries = new Map();
|
|
14
|
-
#gotQueries = new Set();
|
|
15
|
-
constructor(clientID, send, experimentalWatch) {
|
|
16
|
-
this.#clientID = clientID;
|
|
17
|
-
this.#send = send;
|
|
18
|
-
experimentalWatch(diff => {
|
|
19
|
-
for (const diffOp of diff) {
|
|
20
|
-
const queryHash = diffOp.key.substring(GOT_QUERIES_KEY_PREFIX.length);
|
|
21
|
-
switch (diffOp.op) {
|
|
22
|
-
case 'add':
|
|
23
|
-
this.#gotQueries.add(queryHash);
|
|
24
|
-
this.#fireGotCallbacks(queryHash, true);
|
|
25
|
-
break;
|
|
26
|
-
case 'del':
|
|
27
|
-
this.#gotQueries.delete(queryHash);
|
|
28
|
-
this.#fireGotCallbacks(queryHash, false);
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}, {
|
|
33
|
-
prefix: GOT_QUERIES_KEY_PREFIX,
|
|
34
|
-
initialValuesInFirstDiff: true,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
#fireGotCallbacks(queryHash, got) {
|
|
38
|
-
const gotCallbacks = this.#queries.get(queryHash)?.gotCallbacks ?? [];
|
|
39
|
-
for (const gotCallback of gotCallbacks) {
|
|
40
|
-
gotCallback(got);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Get the queries that need to be registered with the server.
|
|
45
|
-
*
|
|
46
|
-
* An optional `lastPatch` can be provided. This is the last patch that was
|
|
47
|
-
* sent to the server and may not yet have been acked. If `lastPatch` is provided,
|
|
48
|
-
* this method will return a patch that does not include any events sent in `lastPatch`.
|
|
49
|
-
*
|
|
50
|
-
* This diffing of last patch and current patch is needed since we send
|
|
51
|
-
* a set of queries to the server when we first connect inside of the `sec-protocol` as
|
|
52
|
-
* the `initConnectionMessage`.
|
|
53
|
-
*
|
|
54
|
-
* While we're waiting for the `connected` response to come back from the server,
|
|
55
|
-
* the client may have registered more queries. We need to diff the `initConnectionMessage`
|
|
56
|
-
* queries with the current set of queries to understand what those were.
|
|
57
|
-
*/
|
|
58
|
-
async getQueriesPatch(tx, lastPatch) {
|
|
59
|
-
const existingQueryHashes = new Set();
|
|
60
|
-
const prefix = desiredQueriesPrefixForClient(this.#clientID);
|
|
61
|
-
for await (const key of tx.scan({ prefix }).keys()) {
|
|
62
|
-
existingQueryHashes.add(key.substring(prefix.length, key.length));
|
|
63
|
-
}
|
|
64
|
-
const patch = new Map();
|
|
65
|
-
for (const hash of existingQueryHashes) {
|
|
66
|
-
if (!this.#queries.has(hash)) {
|
|
67
|
-
patch.set(hash, { op: 'del', hash });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
for (const [hash, { normalized }] of this.#queries) {
|
|
71
|
-
if (!existingQueryHashes.has(hash)) {
|
|
72
|
-
patch.set(hash, { op: 'put', hash, ast: normalized });
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (lastPatch) {
|
|
76
|
-
// if there are any `puts` in `lastPatch` that are not in `patch` then we need to
|
|
77
|
-
// send a `del` event in `patch`.
|
|
78
|
-
for (const [hash, { op }] of lastPatch) {
|
|
79
|
-
if (op === 'put' && !patch.has(hash)) {
|
|
80
|
-
patch.set(hash, { op: 'del', hash });
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
// Remove everything from `patch` that was already sent in `lastPatch`.
|
|
84
|
-
for (const [hash, { op }] of patch) {
|
|
85
|
-
const lastPatchOp = lastPatch.get(hash);
|
|
86
|
-
if (lastPatchOp && lastPatchOp.op === op) {
|
|
87
|
-
patch.delete(hash);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return patch;
|
|
92
|
-
}
|
|
93
|
-
add(ast, gotCallback) {
|
|
94
|
-
const normalized = normalizeAST(ast);
|
|
95
|
-
const astHash = hashOfAST(normalized);
|
|
96
|
-
let entry = this.#queries.get(astHash);
|
|
97
|
-
if (!entry) {
|
|
98
|
-
entry = {
|
|
99
|
-
normalized,
|
|
100
|
-
count: 1,
|
|
101
|
-
gotCallbacks: gotCallback === undefined ? [] : [gotCallback],
|
|
102
|
-
};
|
|
103
|
-
this.#queries.set(astHash, entry);
|
|
104
|
-
this.#send([
|
|
105
|
-
'changeDesiredQueries',
|
|
106
|
-
{
|
|
107
|
-
desiredQueriesPatch: [{ op: 'put', hash: astHash, ast: normalized }],
|
|
108
|
-
},
|
|
109
|
-
]);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
++entry.count;
|
|
113
|
-
if (gotCallback) {
|
|
114
|
-
entry.gotCallbacks.push(gotCallback);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
if (gotCallback) {
|
|
118
|
-
queueMicrotask(() => {
|
|
119
|
-
gotCallback(this.#gotQueries.has(astHash));
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
let removed = false;
|
|
123
|
-
return () => {
|
|
124
|
-
if (removed) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
removed = true;
|
|
128
|
-
this.#remove(astHash);
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
#remove(astHash) {
|
|
132
|
-
const entry = must(this.#queries.get(astHash));
|
|
133
|
-
--entry.count;
|
|
134
|
-
if (entry.count === 0) {
|
|
135
|
-
this.#queries.delete(astHash);
|
|
136
|
-
this.#send([
|
|
137
|
-
'changeDesiredQueries',
|
|
138
|
-
{
|
|
139
|
-
desiredQueriesPatch: [{ op: 'del', hash: astHash }],
|
|
140
|
-
},
|
|
141
|
-
]);
|
|
142
|
-
}
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=query-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query-manager.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/query-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAC,SAAS,EAAC,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAW,MAAM,mCAAmC,CAAC;AAOzE,OAAO,EAAC,6BAA6B,EAAE,sBAAsB,EAAC,MAAM,WAAW,CAAC;AAIhF;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACd,SAAS,CAAW;IACpB,KAAK,CAAgD;IACrD,QAAQ,GAGb,IAAI,GAAG,EAAE,CAAC;IACL,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE9C,YACE,QAAkB,EAClB,IAAmD,EACnD,iBAA2E;QAE3E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,iBAAiB,CACf,IAAI,CAAC,EAAE;YACL,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBACtE,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC;oBAClB,KAAK,KAAK;wBACR,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAChC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBACxC,MAAM;oBACR,KAAK,KAAK;wBACR,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;wBACzC,MAAM;gBACV,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,wBAAwB,EAAE,IAAI;SAC/B,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,GAAY;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;QACtE,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe,CACnB,EAAmB,EACnB,SAAmD;QAEnD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9C,MAAM,MAAM,GAAG,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAC,UAAU,EAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,iFAAiF;YACjF,iCAAiC;YACjC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAC,EAAE,EAAC,CAAC,IAAI,SAAS,EAAE,CAAC;gBACrC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YACD,uEAAuE;YACvE,KAAK,MAAM,CAAC,IAAI,EAAE,EAAC,EAAE,EAAC,CAAC,IAAI,KAAK,EAAE,CAAC;gBACjC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,WAAW,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACzC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,WAAqC;QACjD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,UAAU;gBACV,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;aAC7D,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAElC,IAAI,CAAC,KAAK,CAAC;gBACT,sBAAsB;gBACtB;oBACE,mBAAmB,EAAE,CAAC,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAC,CAAC;iBACnE;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,EAAE,KAAK,CAAC,KAAK,CAAC;YACd,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,CAAC,GAAG,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,EAAE,KAAK,CAAC,KAAK,CAAC;QACd,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC;gBACT,sBAAsB;gBACtB;oBACE,mBAAmB,EAAE,CAAC,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;iBAClD;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export const RELOAD_REASON_STORAGE_KEY = '_zeroReloadReason';
|
|
2
|
-
// TODO: This should get pushed down into Replicache and used for reloads we
|
|
3
|
-
// do there.
|
|
4
|
-
export function reloadWithReason(lc, reload, reason) {
|
|
5
|
-
if (typeof localStorage === 'undefined') {
|
|
6
|
-
lc.error?.('Zero reloaded the page.', reason);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
localStorage[RELOAD_REASON_STORAGE_KEY] = reason;
|
|
10
|
-
}
|
|
11
|
-
reload();
|
|
12
|
-
}
|
|
13
|
-
export function reportReloadReason(lc) {
|
|
14
|
-
if (typeof localStorage === 'undefined') {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const reason = localStorage[RELOAD_REASON_STORAGE_KEY];
|
|
18
|
-
if (reason) {
|
|
19
|
-
delete localStorage[RELOAD_REASON_STORAGE_KEY];
|
|
20
|
-
lc.error?.('Zero reloaded the page.', reason);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=reload-error-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reload-error-handler.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/reload-error-handler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAE7D,4EAA4E;AAC5E,YAAY;AACZ,MAAM,UAAU,gBAAgB,CAC9B,EAAc,EACd,MAAkB,EAClB,MAAc;IAEd,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;QACxC,EAAE,CAAC,KAAK,EAAE,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;IACnD,CAAC;IACD,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAc;IAC/C,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAC;QAC/C,EAAE,CAAC,KAAK,EAAE,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replicache-types.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/replicache-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ErrorKind } from '../../../zero-protocol/src/mod.js';
|
|
2
|
-
/**
|
|
3
|
-
* Represents an error sent by server as part of Zero protocol.
|
|
4
|
-
*/
|
|
5
|
-
export class ServerError extends Error {
|
|
6
|
-
kind;
|
|
7
|
-
name = 'ServerError';
|
|
8
|
-
constructor(kind, message) {
|
|
9
|
-
super(kind + ': ' + message);
|
|
10
|
-
this.kind = kind;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export function isServerError(ex) {
|
|
14
|
-
return ex instanceof ServerError;
|
|
15
|
-
}
|
|
16
|
-
export function isAuthError(ex) {
|
|
17
|
-
return isServerError(ex) && isAuthErrorKind(ex.kind);
|
|
18
|
-
}
|
|
19
|
-
function isAuthErrorKind(kind) {
|
|
20
|
-
return kind === ErrorKind.AuthInvalidated || kind === ErrorKind.Unauthorized;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=server-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-error.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/server-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,WAA6C,SAAQ,KAAK;IAC5D,IAAI,CAAI;IACR,IAAI,GAAG,aAAa,CAAC;IAC9B,YAAY,IAAO,EAAE,OAAe;QAClC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,EAAW;IACvC,OAAO,EAAE,YAAY,WAAW,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,EAAW;IAIX,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CACtB,IAAe;IAEf,OAAO,IAAI,KAAK,SAAS,CAAC,eAAe,IAAI,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC;AAC/E,CAAC"}
|