@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,375 +0,0 @@
|
|
|
1
|
-
import { assert } from '../../../shared/src/asserts.js';
|
|
2
|
-
import { deepEqual } from '../../../shared/src/json.js';
|
|
3
|
-
import { diff } from '../btree/diff.js';
|
|
4
|
-
import { BTreeRead } from '../btree/read.js';
|
|
5
|
-
import { compareCookies } from '../cookies.js';
|
|
6
|
-
import { assertSnapshotMetaDD31, baseSnapshotFromHash, Commit, commitChain, commitFromHash, commitIsLocalDD31, DEFAULT_HEAD_NAME, localMutations as localMutations_1, snapshotMetaParts, } from '../db/commit.js';
|
|
7
|
-
import { newWriteSnapshotDD31, newWriteSnapshotSDD, readIndexesForWrite, updateIndexes, } from '../db/write.js';
|
|
8
|
-
import { isErrorResponse } from '../error-responses.js';
|
|
9
|
-
import * as FormatVersion from '../format-version-enum.js';
|
|
10
|
-
import { deepFreeze } from '../frozen-json.js';
|
|
11
|
-
import { assertPullerResultV0, assertPullerResultV1, } from '../get-default-puller.js';
|
|
12
|
-
import { emptyHash } from '../hash.js';
|
|
13
|
-
import { ReportError } from '../replicache.js';
|
|
14
|
-
import { toError } from '../to-error.js';
|
|
15
|
-
import { withRead, withWriteNoImplicitCommit } from '../with-transactions.js';
|
|
16
|
-
import { addDiffsForIndexes, DiffsMap, } from './diff.js';
|
|
17
|
-
import * as HandlePullResponseResultType from './handle-pull-response-result-type-enum.js';
|
|
18
|
-
import * as patch from './patch.js';
|
|
19
|
-
import { PullError } from './pull-error.js';
|
|
20
|
-
import { SYNC_HEAD_NAME } from './sync-head-name.js';
|
|
21
|
-
export const PULL_VERSION_SDD = 0;
|
|
22
|
-
export const PULL_VERSION_DD31 = 1;
|
|
23
|
-
export function isPullRequestV1(pr) {
|
|
24
|
-
return pr.pullVersion === PULL_VERSION_DD31;
|
|
25
|
-
}
|
|
26
|
-
export async function beginPullV0(profileID, clientID, schemaVersion, puller, requestID, store, formatVersion, lc, createSyncBranch = true) {
|
|
27
|
-
const [lastMutationID, baseCookie] = await withRead(store, async (dagRead) => {
|
|
28
|
-
const mainHeadHash = await dagRead.getHead(DEFAULT_HEAD_NAME);
|
|
29
|
-
if (!mainHeadHash) {
|
|
30
|
-
throw new Error('Internal no main head found');
|
|
31
|
-
}
|
|
32
|
-
const baseSnapshot = await baseSnapshotFromHash(mainHeadHash, dagRead);
|
|
33
|
-
const baseSnapshotMeta = baseSnapshot.meta;
|
|
34
|
-
const baseCookie = baseSnapshotMeta.cookieJSON;
|
|
35
|
-
const lastMutationID = await baseSnapshot.getMutationID(clientID, dagRead);
|
|
36
|
-
return [lastMutationID, baseCookie];
|
|
37
|
-
});
|
|
38
|
-
const pullReq = {
|
|
39
|
-
profileID,
|
|
40
|
-
clientID,
|
|
41
|
-
cookie: baseCookie,
|
|
42
|
-
lastMutationID,
|
|
43
|
-
pullVersion: PULL_VERSION_SDD,
|
|
44
|
-
schemaVersion,
|
|
45
|
-
};
|
|
46
|
-
const { response, httpRequestInfo } = (await callPuller(lc, puller, pullReq, requestID));
|
|
47
|
-
// If Puller did not get a pull response we still want to return the HTTP
|
|
48
|
-
// request info to the JS SDK.
|
|
49
|
-
if (!response) {
|
|
50
|
-
return {
|
|
51
|
-
httpRequestInfo,
|
|
52
|
-
syncHead: emptyHash,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
if (!createSyncBranch || isErrorResponse(response)) {
|
|
56
|
-
return {
|
|
57
|
-
httpRequestInfo,
|
|
58
|
-
pullResponse: response,
|
|
59
|
-
syncHead: emptyHash,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
const result = await handlePullResponseV0(lc, store, baseCookie, response, clientID, formatVersion);
|
|
63
|
-
if (result.type === HandlePullResponseResultType.CookieMismatch) {
|
|
64
|
-
throw new Error('Overlapping sync');
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
httpRequestInfo,
|
|
68
|
-
pullResponse: response,
|
|
69
|
-
syncHead: result.type === HandlePullResponseResultType.Applied
|
|
70
|
-
? result.syncHead
|
|
71
|
-
: emptyHash,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
export async function beginPullV1(profileID, clientID, clientGroupID, schemaVersion, puller, requestID, store, formatVersion, lc, createSyncBranch = true) {
|
|
75
|
-
const baseCookie = await withRead(store, async (dagRead) => {
|
|
76
|
-
const mainHeadHash = await dagRead.getHead(DEFAULT_HEAD_NAME);
|
|
77
|
-
if (!mainHeadHash) {
|
|
78
|
-
throw new Error('Internal no main head found');
|
|
79
|
-
}
|
|
80
|
-
const baseSnapshot = await baseSnapshotFromHash(mainHeadHash, dagRead);
|
|
81
|
-
const baseSnapshotMeta = baseSnapshot.meta;
|
|
82
|
-
assertSnapshotMetaDD31(baseSnapshotMeta);
|
|
83
|
-
return baseSnapshotMeta.cookieJSON;
|
|
84
|
-
});
|
|
85
|
-
const pullReq = {
|
|
86
|
-
profileID,
|
|
87
|
-
clientGroupID,
|
|
88
|
-
cookie: baseCookie,
|
|
89
|
-
pullVersion: PULL_VERSION_DD31,
|
|
90
|
-
schemaVersion,
|
|
91
|
-
};
|
|
92
|
-
const { response, httpRequestInfo } = (await callPuller(lc, puller, pullReq, requestID));
|
|
93
|
-
// If Puller did not get a pull response we still want to return the HTTP
|
|
94
|
-
// request info.
|
|
95
|
-
if (!response) {
|
|
96
|
-
return {
|
|
97
|
-
httpRequestInfo,
|
|
98
|
-
syncHead: emptyHash,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
if (!createSyncBranch || isErrorResponse(response)) {
|
|
102
|
-
return {
|
|
103
|
-
httpRequestInfo,
|
|
104
|
-
pullResponse: response,
|
|
105
|
-
syncHead: emptyHash,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
const result = await handlePullResponseV1(lc, store, baseCookie, response, clientID, formatVersion);
|
|
109
|
-
return {
|
|
110
|
-
httpRequestInfo,
|
|
111
|
-
pullResponse: response,
|
|
112
|
-
syncHead: result.type === HandlePullResponseResultType.Applied
|
|
113
|
-
? result.syncHead
|
|
114
|
-
: emptyHash,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
async function callPuller(lc, puller, pullReq, requestID) {
|
|
118
|
-
lc.debug?.('Starting pull...');
|
|
119
|
-
const pullStart = Date.now();
|
|
120
|
-
let pullerResult;
|
|
121
|
-
try {
|
|
122
|
-
pullerResult = await puller(pullReq, requestID);
|
|
123
|
-
lc.debug?.(`...Pull ${pullerResult.response ? 'complete' : 'failed'} in `, Date.now() - pullStart, 'ms');
|
|
124
|
-
}
|
|
125
|
-
catch (e) {
|
|
126
|
-
throw new PullError(toError(e));
|
|
127
|
-
}
|
|
128
|
-
try {
|
|
129
|
-
if (isPullRequestV1(pullReq)) {
|
|
130
|
-
assertPullerResultV1(pullerResult);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
assertPullerResultV0(pullerResult);
|
|
134
|
-
}
|
|
135
|
-
return pullerResult;
|
|
136
|
-
}
|
|
137
|
-
catch (e) {
|
|
138
|
-
throw new ReportError('Invalid puller result', toError(e));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// Returns new sync head, or null if response did not apply due to mismatched cookie.
|
|
142
|
-
export function handlePullResponseV0(lc, store, expectedBaseCookie, response, clientID, formatVersion) {
|
|
143
|
-
// It is possible that another sync completed while we were pulling. Ensure
|
|
144
|
-
// that is not the case by re-checking the base snapshot.
|
|
145
|
-
return withWriteNoImplicitCommit(store, async (dagWrite) => {
|
|
146
|
-
assert(formatVersion <= FormatVersion.SDD);
|
|
147
|
-
const dagRead = dagWrite;
|
|
148
|
-
const mainHead = await dagRead.getHead(DEFAULT_HEAD_NAME);
|
|
149
|
-
if (mainHead === undefined) {
|
|
150
|
-
throw new Error('Main head disappeared');
|
|
151
|
-
}
|
|
152
|
-
const baseSnapshot = await baseSnapshotFromHash(mainHead, dagRead);
|
|
153
|
-
const [baseLastMutationID, baseCookie] = snapshotMetaParts(baseSnapshot, clientID);
|
|
154
|
-
// TODO(MP) Here we are using whether the cookie has changes as a proxy for whether
|
|
155
|
-
// the base snapshot changed, which is the check we used to do. I don't think this
|
|
156
|
-
// is quite right. We need to firm up under what conditions we will/not accept an
|
|
157
|
-
// update from the server: https://github.com/rocicorp/replicache/issues/713.
|
|
158
|
-
if (!deepEqual(expectedBaseCookie, baseCookie)) {
|
|
159
|
-
return {
|
|
160
|
-
type: HandlePullResponseResultType.CookieMismatch,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
// If other entities (eg, other clients) are modifying the client view
|
|
164
|
-
// the client view can change but the lastMutationID stays the same.
|
|
165
|
-
// So be careful here to reject only a lesser lastMutationID.
|
|
166
|
-
if (response.lastMutationID < baseLastMutationID) {
|
|
167
|
-
throw new Error(badOrderMessage(`lastMutationID`, String(response.lastMutationID), String(baseLastMutationID)));
|
|
168
|
-
}
|
|
169
|
-
const frozenCookie = deepFreeze(response.cookie ?? null);
|
|
170
|
-
// If the cookie didn't change, it's a nop.
|
|
171
|
-
// Otherwise, we will write a new commit, including for the case of just
|
|
172
|
-
// a cookie change.
|
|
173
|
-
if (deepEqual(frozenCookie, baseCookie)) {
|
|
174
|
-
if (response.patch.length > 0) {
|
|
175
|
-
lc.error?.(`handlePullResponse: cookie ${JSON.stringify(baseCookie)} did not change, but patch is not empty`);
|
|
176
|
-
}
|
|
177
|
-
if (response.lastMutationID !== baseLastMutationID) {
|
|
178
|
-
lc.error?.(`handlePullResponse: cookie ${JSON.stringify(baseCookie)} did not change, but lastMutationID did change`);
|
|
179
|
-
}
|
|
180
|
-
return {
|
|
181
|
-
type: HandlePullResponseResultType.NoOp,
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
// We are going to need to adjust the indexes. Imagine we have just pulled:
|
|
185
|
-
//
|
|
186
|
-
// S1 - M1 - main
|
|
187
|
-
// \ S2 - sync
|
|
188
|
-
//
|
|
189
|
-
// Let's say S2 says that it contains up to M1. Are we safe at this moment
|
|
190
|
-
// to set main to S2?
|
|
191
|
-
//
|
|
192
|
-
// No, because the Replicache protocol does not require a snapshot
|
|
193
|
-
// containing M1 to have the same data as the client computed for M1!
|
|
194
|
-
//
|
|
195
|
-
// We must diff the main map in M1 against the main map in S2 and see if it
|
|
196
|
-
// contains any changes. Whatever changes it contains must be applied to
|
|
197
|
-
// all indexes.
|
|
198
|
-
//
|
|
199
|
-
// We start with the index definitions in the last commit that was
|
|
200
|
-
// integrated into the new snapshot.
|
|
201
|
-
const chain = await commitChain(mainHead, dagRead);
|
|
202
|
-
let lastIntegrated;
|
|
203
|
-
for (const commit of chain) {
|
|
204
|
-
if ((await commit.getMutationID(clientID, dagRead)) <=
|
|
205
|
-
response.lastMutationID) {
|
|
206
|
-
lastIntegrated = commit;
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
if (!lastIntegrated) {
|
|
211
|
-
throw new Error('Internal invalid chain');
|
|
212
|
-
}
|
|
213
|
-
const dbWrite = await newWriteSnapshotSDD(baseSnapshot.chunk.hash, response.lastMutationID, frozenCookie, dagWrite, readIndexesForWrite(lastIntegrated, dagWrite, formatVersion), clientID, formatVersion);
|
|
214
|
-
await patch.apply(lc, dbWrite, response.patch);
|
|
215
|
-
const lastIntegratedMap = new BTreeRead(dagRead, formatVersion, lastIntegrated.valueHash);
|
|
216
|
-
for await (const change of dbWrite.map.diff(lastIntegratedMap)) {
|
|
217
|
-
await updateIndexes(lc, dbWrite.indexes, change.key, () => Promise.resolve(change.oldValue), change.newValue);
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
type: HandlePullResponseResultType.Applied,
|
|
221
|
-
syncHead: await dbWrite.commit(SYNC_HEAD_NAME),
|
|
222
|
-
};
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
function badOrderMessage(name, receivedValue, lastSnapshotValue) {
|
|
226
|
-
return `Received ${name} ${receivedValue} is < than last snapshot ${name} ${lastSnapshotValue}; ignoring client view`;
|
|
227
|
-
}
|
|
228
|
-
export function handlePullResponseV1(lc, store, expectedBaseCookie, response, clientID, formatVersion) {
|
|
229
|
-
// It is possible that another sync completed while we were pulling. Ensure
|
|
230
|
-
// that is not the case by re-checking the base snapshot.
|
|
231
|
-
return withWriteNoImplicitCommit(store, async (dagWrite) => {
|
|
232
|
-
const dagRead = dagWrite;
|
|
233
|
-
const mainHead = await dagRead.getHead(DEFAULT_HEAD_NAME);
|
|
234
|
-
if (mainHead === undefined) {
|
|
235
|
-
throw new Error('Main head disappeared');
|
|
236
|
-
}
|
|
237
|
-
const baseSnapshot = await baseSnapshotFromHash(mainHead, dagRead);
|
|
238
|
-
const baseSnapshotMeta = baseSnapshot.meta;
|
|
239
|
-
assertSnapshotMetaDD31(baseSnapshotMeta);
|
|
240
|
-
const baseCookie = baseSnapshotMeta.cookieJSON;
|
|
241
|
-
// TODO(MP) Here we are using whether the cookie has changed as a proxy for whether
|
|
242
|
-
// the base snapshot changed, which is the check we used to do. I don't think this
|
|
243
|
-
// is quite right. We need to firm up under what conditions we will/not accept an
|
|
244
|
-
// update from the server: https://github.com/rocicorp/replicache/issues/713.
|
|
245
|
-
// In DD31 this is expected to happen if a refresh occurs during a pull.
|
|
246
|
-
if (!deepEqual(expectedBaseCookie, baseCookie)) {
|
|
247
|
-
lc.debug?.('handlePullResponse: cookie mismatch, response is not applicable');
|
|
248
|
-
return {
|
|
249
|
-
type: HandlePullResponseResultType.CookieMismatch,
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
// Check that the lastMutationIDs are not going backwards.
|
|
253
|
-
for (const [clientID, lmidChange] of Object.entries(response.lastMutationIDChanges)) {
|
|
254
|
-
const lastMutationID = baseSnapshotMeta.lastMutationIDs[clientID];
|
|
255
|
-
if (lastMutationID !== undefined && lmidChange < lastMutationID) {
|
|
256
|
-
throw new Error(badOrderMessage(`${clientID} lastMutationID`, String(lmidChange), String(lastMutationID)));
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
const frozenResponseCookie = deepFreeze(response.cookie);
|
|
260
|
-
if (compareCookies(frozenResponseCookie, baseCookie) < 0) {
|
|
261
|
-
throw new Error(badOrderMessage('cookie', JSON.stringify(frozenResponseCookie), JSON.stringify(baseCookie)));
|
|
262
|
-
}
|
|
263
|
-
if (deepEqual(frozenResponseCookie, baseCookie)) {
|
|
264
|
-
if (response.patch.length > 0) {
|
|
265
|
-
lc.error?.(`handlePullResponse: cookie ${JSON.stringify(baseCookie)} did not change, but patch is not empty`);
|
|
266
|
-
}
|
|
267
|
-
if (Object.keys(response.lastMutationIDChanges).length > 0) {
|
|
268
|
-
console.log(response.lastMutationIDChanges);
|
|
269
|
-
lc.error?.(`handlePullResponse: cookie ${JSON.stringify(baseCookie)} did not change, but lastMutationIDChanges is not empty`);
|
|
270
|
-
}
|
|
271
|
-
// If the cookie doesn't change, it's a nop.
|
|
272
|
-
return {
|
|
273
|
-
type: HandlePullResponseResultType.NoOp,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
const dbWrite = await newWriteSnapshotDD31(baseSnapshot.chunk.hash, { ...baseSnapshotMeta.lastMutationIDs, ...response.lastMutationIDChanges }, frozenResponseCookie, dagWrite, clientID, formatVersion);
|
|
277
|
-
await patch.apply(lc, dbWrite, response.patch);
|
|
278
|
-
return {
|
|
279
|
-
type: HandlePullResponseResultType.Applied,
|
|
280
|
-
syncHead: await dbWrite.commit(SYNC_HEAD_NAME),
|
|
281
|
-
};
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
export function maybeEndPull(store, lc, expectedSyncHead, clientID, diffConfig, formatVersion) {
|
|
285
|
-
return withWriteNoImplicitCommit(store, async (dagWrite) => {
|
|
286
|
-
const dagRead = dagWrite;
|
|
287
|
-
// Ensure sync head is what the caller thinks it is.
|
|
288
|
-
const syncHeadHash = await dagRead.getHead(SYNC_HEAD_NAME);
|
|
289
|
-
if (syncHeadHash === undefined) {
|
|
290
|
-
throw new Error('Missing sync head');
|
|
291
|
-
}
|
|
292
|
-
if (syncHeadHash !== expectedSyncHead) {
|
|
293
|
-
lc.error?.('maybeEndPull, Wrong sync head. Expecting:', expectedSyncHead, 'got:', syncHeadHash);
|
|
294
|
-
throw new Error('Wrong sync head');
|
|
295
|
-
}
|
|
296
|
-
// Ensure another sync has not landed a new snapshot on the main chain.
|
|
297
|
-
// TODO: In DD31, it is expected that a newer snapshot might have appeared
|
|
298
|
-
// on the main chain. In that case, we just abort this pull.
|
|
299
|
-
const syncSnapshot = await baseSnapshotFromHash(syncHeadHash, dagRead);
|
|
300
|
-
const mainHeadHash = await dagRead.getHead(DEFAULT_HEAD_NAME);
|
|
301
|
-
if (mainHeadHash === undefined) {
|
|
302
|
-
throw new Error('Missing main head');
|
|
303
|
-
}
|
|
304
|
-
const mainSnapshot = await baseSnapshotFromHash(mainHeadHash, dagRead);
|
|
305
|
-
const { meta } = syncSnapshot;
|
|
306
|
-
const syncSnapshotBasis = meta.basisHash;
|
|
307
|
-
if (syncSnapshot === null) {
|
|
308
|
-
throw new Error('Sync snapshot with no basis');
|
|
309
|
-
}
|
|
310
|
-
if (syncSnapshotBasis !== mainSnapshot.chunk.hash) {
|
|
311
|
-
throw new Error('Overlapping syncs');
|
|
312
|
-
}
|
|
313
|
-
// Collect pending commits from the main chain and determine which
|
|
314
|
-
// of them if any need to be replayed.
|
|
315
|
-
const syncHead = await commitFromHash(syncHeadHash, dagRead);
|
|
316
|
-
const pending = [];
|
|
317
|
-
const localMutations = await localMutations_1(mainHeadHash, dagRead);
|
|
318
|
-
for (const commit of localMutations) {
|
|
319
|
-
let cid = clientID;
|
|
320
|
-
if (commitIsLocalDD31(commit)) {
|
|
321
|
-
cid = commit.meta.clientID;
|
|
322
|
-
}
|
|
323
|
-
if ((await commit.getMutationID(cid, dagRead)) >
|
|
324
|
-
(await syncHead.getMutationID(cid, dagRead))) {
|
|
325
|
-
// We know that the dag can only contain either LocalMetaSDD or LocalMetaDD31
|
|
326
|
-
pending.push(commit);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
// pending() gave us the pending mutations in sync-head-first order whereas
|
|
330
|
-
// caller wants them in the order to replay (lower mutation ids first).
|
|
331
|
-
pending.reverse();
|
|
332
|
-
// We return the keys that changed due to this pull. This is used by
|
|
333
|
-
// subscriptions in the JS API when there are no more pending mutations.
|
|
334
|
-
const diffsMap = new DiffsMap();
|
|
335
|
-
// Return replay commits if any.
|
|
336
|
-
if (pending.length > 0) {
|
|
337
|
-
return {
|
|
338
|
-
syncHead: syncHeadHash,
|
|
339
|
-
replayMutations: pending,
|
|
340
|
-
// The changed keys are not reported when further replays are
|
|
341
|
-
// needed. The diffs will be reported at the end when there
|
|
342
|
-
// are no more mutations to be replay and then it will be reported
|
|
343
|
-
// relative to DEFAULT_HEAD_NAME.
|
|
344
|
-
diffs: diffsMap,
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
// TODO check invariants
|
|
348
|
-
// Compute diffs (changed keys) for value map and index maps.
|
|
349
|
-
const mainHead = await commitFromHash(mainHeadHash, dagRead);
|
|
350
|
-
if (diffConfig.shouldComputeDiffs()) {
|
|
351
|
-
const mainHeadMap = new BTreeRead(dagRead, formatVersion, mainHead.valueHash);
|
|
352
|
-
const syncHeadMap = new BTreeRead(dagRead, formatVersion, syncHead.valueHash);
|
|
353
|
-
const valueDiff = await diff(mainHeadMap, syncHeadMap);
|
|
354
|
-
diffsMap.set('', valueDiff);
|
|
355
|
-
await addDiffsForIndexes(mainHead, syncHead, dagRead, diffsMap, diffConfig, formatVersion);
|
|
356
|
-
}
|
|
357
|
-
// No mutations to replay so set the main head to the sync head and sync complete!
|
|
358
|
-
await Promise.all([
|
|
359
|
-
dagWrite.setHead(DEFAULT_HEAD_NAME, syncHeadHash),
|
|
360
|
-
dagWrite.removeHead(SYNC_HEAD_NAME),
|
|
361
|
-
]);
|
|
362
|
-
await dagWrite.commit();
|
|
363
|
-
if (lc.debug) {
|
|
364
|
-
const [oldLastMutationID, oldCookie] = snapshotMetaParts(mainSnapshot, clientID);
|
|
365
|
-
const [newLastMutationID, newCookie] = snapshotMetaParts(syncSnapshot, clientID);
|
|
366
|
-
lc.debug(`Successfully pulled new snapshot with lastMutationID:`, newLastMutationID, `(prev:`, oldLastMutationID, `), cookie: `, newCookie, `(prev:`, oldCookie, `), sync head hash:`, syncHeadHash, ', main head hash:', mainHeadHash, `, valueHash:`, syncHead.valueHash, `(prev:`, mainSnapshot.valueHash);
|
|
367
|
-
}
|
|
368
|
-
return {
|
|
369
|
-
syncHead: syncHeadHash,
|
|
370
|
-
replayMutations: [],
|
|
371
|
-
diffs: diffsMap,
|
|
372
|
-
};
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
//# sourceMappingURL=pull.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../../../replicache/src/sync/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { assert } from '../../../shared/src/asserts.js';
|
|
2
|
-
import { jsonSchema } from '../../../shared/src/json-schema.js';
|
|
3
|
-
import * as valita from '../../../shared/src/valita.js';
|
|
4
|
-
import { DEFAULT_HEAD_NAME, commitIsLocalDD31, commitIsLocalSDD, localMutations, } from '../db/commit.js';
|
|
5
|
-
import { PushError, assertPusherResult, } from '../pusher.js';
|
|
6
|
-
import { ReportError } from '../replicache.js';
|
|
7
|
-
import { toError } from '../to-error.js';
|
|
8
|
-
import { withRead } from '../with-transactions.js';
|
|
9
|
-
import { clientGroupIDSchema, clientIDSchema, } from './ids.js';
|
|
10
|
-
export const PUSH_VERSION_SDD = 0;
|
|
11
|
-
export const PUSH_VERSION_DD31 = 1;
|
|
12
|
-
const mutationV0Schema = valita.readonlyObject({
|
|
13
|
-
id: valita.number(),
|
|
14
|
-
name: valita.string(),
|
|
15
|
-
args: jsonSchema,
|
|
16
|
-
timestamp: valita.number(),
|
|
17
|
-
});
|
|
18
|
-
const mutationV1Schema = valita.readonlyObject({
|
|
19
|
-
id: valita.number(),
|
|
20
|
-
name: valita.string(),
|
|
21
|
-
args: jsonSchema,
|
|
22
|
-
timestamp: valita.number(),
|
|
23
|
-
clientID: clientIDSchema,
|
|
24
|
-
});
|
|
25
|
-
const pushRequestV0Schema = valita.object({
|
|
26
|
-
pushVersion: valita.literal(0),
|
|
27
|
-
schemaVersion: valita.string(),
|
|
28
|
-
profileID: valita.string(),
|
|
29
|
-
clientID: clientIDSchema,
|
|
30
|
-
mutations: valita.array(mutationV0Schema),
|
|
31
|
-
});
|
|
32
|
-
const pushRequestV1Schema = valita.object({
|
|
33
|
-
pushVersion: valita.literal(1),
|
|
34
|
-
schemaVersion: valita.string(),
|
|
35
|
-
profileID: valita.string(),
|
|
36
|
-
clientGroupID: clientGroupIDSchema,
|
|
37
|
-
mutations: valita.array(mutationV1Schema),
|
|
38
|
-
});
|
|
39
|
-
export function assertPushRequestV0(value) {
|
|
40
|
-
valita.assert(value, pushRequestV0Schema);
|
|
41
|
-
}
|
|
42
|
-
export function assertPushRequestV1(value) {
|
|
43
|
-
valita.assert(value, pushRequestV1Schema);
|
|
44
|
-
}
|
|
45
|
-
function convertSDD(lm) {
|
|
46
|
-
return {
|
|
47
|
-
id: lm.mutationID,
|
|
48
|
-
name: lm.mutatorName,
|
|
49
|
-
args: lm.mutatorArgsJSON,
|
|
50
|
-
timestamp: lm.timestamp,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function convertDD31(lm) {
|
|
54
|
-
return {
|
|
55
|
-
id: lm.mutationID,
|
|
56
|
-
name: lm.mutatorName,
|
|
57
|
-
args: lm.mutatorArgsJSON,
|
|
58
|
-
timestamp: lm.timestamp,
|
|
59
|
-
clientID: lm.clientID,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
export async function push(requestID, store, lc, profileID, clientGroupID, clientID, pusher, schemaVersion, pushVersion) {
|
|
63
|
-
// Find pending commits between the base snapshot and the main head and push
|
|
64
|
-
// them to the data layer.
|
|
65
|
-
const pending = await withRead(store, async (dagRead) => {
|
|
66
|
-
const mainHeadHash = await dagRead.getHead(DEFAULT_HEAD_NAME);
|
|
67
|
-
if (!mainHeadHash) {
|
|
68
|
-
throw new Error('Internal no main head');
|
|
69
|
-
}
|
|
70
|
-
return localMutations(mainHeadHash, dagRead);
|
|
71
|
-
// Important! Don't hold the lock through an HTTP request!
|
|
72
|
-
});
|
|
73
|
-
if (pending.length === 0) {
|
|
74
|
-
return undefined;
|
|
75
|
-
}
|
|
76
|
-
// Commit.pending gave us commits in head-first order; the bindings
|
|
77
|
-
// want tail first (in mutation id order).
|
|
78
|
-
pending.reverse();
|
|
79
|
-
let pushReq;
|
|
80
|
-
if (pushVersion === PUSH_VERSION_DD31) {
|
|
81
|
-
const pushMutations = [];
|
|
82
|
-
for (const commit of pending) {
|
|
83
|
-
if (commitIsLocalDD31(commit)) {
|
|
84
|
-
pushMutations.push(convertDD31(commit.meta));
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
throw new Error('Internal non local pending commit');
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
assert(clientGroupID);
|
|
91
|
-
const r = {
|
|
92
|
-
profileID,
|
|
93
|
-
clientGroupID,
|
|
94
|
-
mutations: pushMutations,
|
|
95
|
-
pushVersion: PUSH_VERSION_DD31,
|
|
96
|
-
schemaVersion,
|
|
97
|
-
};
|
|
98
|
-
pushReq = r;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
assert(pushVersion === PUSH_VERSION_SDD);
|
|
102
|
-
const pushMutations = [];
|
|
103
|
-
for (const commit of pending) {
|
|
104
|
-
if (commitIsLocalSDD(commit)) {
|
|
105
|
-
pushMutations.push(convertSDD(commit.meta));
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
throw new Error('Internal non local pending commit');
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
pushReq = {
|
|
112
|
-
profileID,
|
|
113
|
-
clientID,
|
|
114
|
-
mutations: pushMutations,
|
|
115
|
-
pushVersion: PUSH_VERSION_SDD,
|
|
116
|
-
schemaVersion,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
lc.debug?.('Starting push...');
|
|
120
|
-
const pushStart = Date.now();
|
|
121
|
-
const pusherResult = await callPusher(pusher, pushReq, requestID);
|
|
122
|
-
lc.debug?.('...Push complete in ', Date.now() - pushStart, 'ms');
|
|
123
|
-
return pusherResult;
|
|
124
|
-
}
|
|
125
|
-
async function callPusher(pusher, body, requestID) {
|
|
126
|
-
let pusherResult;
|
|
127
|
-
try {
|
|
128
|
-
pusherResult = await pusher(body, requestID);
|
|
129
|
-
}
|
|
130
|
-
catch (e) {
|
|
131
|
-
throw new PushError(toError(e));
|
|
132
|
-
}
|
|
133
|
-
try {
|
|
134
|
-
assertPusherResult(pusherResult);
|
|
135
|
-
return pusherResult;
|
|
136
|
-
}
|
|
137
|
-
catch (e) {
|
|
138
|
-
throw new ReportError('Invalid pusher result', toError(e));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=push.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../../replicache/src/sync/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { getNonCryptoRandomValues } from '../../../shared/src/random-values.js';
|
|
2
|
-
let sessionID = '';
|
|
3
|
-
function getSessionID() {
|
|
4
|
-
if (sessionID === '') {
|
|
5
|
-
const buf = new Uint8Array(4);
|
|
6
|
-
getNonCryptoRandomValues(buf);
|
|
7
|
-
sessionID = Array.from(buf, x => x.toString(16)).join('');
|
|
8
|
-
}
|
|
9
|
-
return sessionID;
|
|
10
|
-
}
|
|
11
|
-
const REQUEST_COUNTERS = new Map();
|
|
12
|
-
/**
|
|
13
|
-
* Returns a new requestID of the form <client ID>-<session ID>-<request
|
|
14
|
-
* count>. The request count enables one to find the request following or
|
|
15
|
-
* preceding a given request. The sessionid scopes the request count, ensuring
|
|
16
|
-
* the requestID is probabilistically unique across restarts (which is good
|
|
17
|
-
* enough).
|
|
18
|
-
*/
|
|
19
|
-
export function newRequestID(clientID) {
|
|
20
|
-
let counter = REQUEST_COUNTERS.get(clientID);
|
|
21
|
-
if (!counter) {
|
|
22
|
-
REQUEST_COUNTERS.set(clientID, 0);
|
|
23
|
-
counter = 0;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
counter++;
|
|
27
|
-
REQUEST_COUNTERS.set(clientID, counter);
|
|
28
|
-
}
|
|
29
|
-
return `${clientID}-${getSessionID()}-${counter}`;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=request-id.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-id.js","sourceRoot":"","sources":["../../../../../replicache/src/sync/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAG9E,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,SAAS,YAAY;IACnB,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAC9B,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClC,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;QACV,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,QAAQ,IAAI,YAAY,EAAE,IAAI,OAAO,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-head-name.js","sourceRoot":"","sources":["../../../../../replicache/src/sync/sync-head-name.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-license-key.js","sourceRoot":"","sources":["../../../../replicache/src/test-license-key.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,MAAM,CAAC,MAAM,gBAAgB,GAAG,0CAA0C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"to-error.js","sourceRoot":"","sources":["../../../../replicache/src/to-error.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This error is thrown when you try to call methods on a closed transaction.
|
|
3
|
-
*/
|
|
4
|
-
export class TransactionClosedError extends Error {
|
|
5
|
-
constructor() {
|
|
6
|
-
super('Transaction is closed');
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export function throwIfClosed(tx) {
|
|
10
|
-
if (tx.closed) {
|
|
11
|
-
throw new TransactionClosedError();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export function rejectIfClosed(tx) {
|
|
15
|
-
return tx.closed ? Promise.reject(new TransactionClosedError()) : undefined;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=transaction-closed-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-closed-error.js","sourceRoot":"","sources":["../../../../replicache/src/transaction-closed-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjC,CAAC;CACF;AAID,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,IAAI,sBAAsB,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC"}
|