@rocicorp/zero 0.25.0-canary.8 → 0.25.0-canary.9
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/shared/src/deep-merge.d.ts +20 -3
- package/out/shared/src/deep-merge.d.ts.map +1 -1
- package/out/shared/src/deep-merge.js +27 -0
- package/out/shared/src/deep-merge.js.map +1 -0
- package/out/shared/src/logging.d.ts.map +1 -1
- package/out/shared/src/logging.js +25 -9
- package/out/shared/src/logging.js.map +1 -1
- package/out/shared/src/object-traversal.d.ts +19 -0
- package/out/shared/src/object-traversal.d.ts.map +1 -0
- package/out/shared/src/object-traversal.js +27 -0
- package/out/shared/src/object-traversal.js.map +1 -0
- package/out/zero/package.json.js +1 -1
- package/out/zero/src/pg.js +0 -2
- package/out/zero/src/pg.js.map +1 -1
- package/out/zero/src/server.js +0 -2
- package/out/zero/src/server.js.map +1 -1
- package/out/zero/src/zero.js +19 -3
- package/out/zero/src/zero.js.map +1 -1
- package/out/zero-cache/src/auth/jwt.d.ts +3 -0
- package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
- package/out/zero-cache/src/auth/jwt.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +2 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +1 -11
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +27 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +35 -7
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.d.ts +5 -5
- package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +14 -11
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js +2 -4
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +9 -9
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +20 -8
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts +1 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +10 -1
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -2
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +36 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/http-service.d.ts +5 -4
- package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/http-service.js +15 -10
- package/out/zero-cache/src/services/http-service.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +3 -2
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +198 -0
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +5 -5
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts +4 -0
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +8 -1
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +2 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +15 -8
- 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 +4 -4
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +48 -25
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/workers/connection.js +20 -15
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +3 -3
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/bindings.d.ts +4 -4
- package/out/zero-client/src/client/bindings.d.ts.map +1 -1
- package/out/zero-client/src/client/bindings.js.map +1 -1
- package/out/zero-client/src/client/connection.d.ts +1 -1
- package/out/zero-client/src/client/connection.d.ts.map +1 -1
- package/out/zero-client/src/client/connection.js +1 -1
- package/out/zero-client/src/client/connection.js.map +1 -1
- package/out/zero-client/src/client/crud.d.ts +7 -5
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.js +7 -7
- package/out/zero-client/src/client/crud.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +7 -5
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/custom.js +12 -7
- package/out/zero-client/src/client/custom.js.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts +5 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.js +7 -0
- package/out/zero-client/src/client/inspector/inspector.js.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js +13 -13
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
- package/out/zero-client/src/client/make-mutate-property.d.ts +43 -0
- package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
- package/out/zero-client/src/client/make-mutate-property.js +38 -0
- package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
- package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
- package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
- package/out/zero-client/src/client/make-replicache-mutators.js +103 -0
- package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
- package/out/zero-client/src/client/options.d.ts +39 -27
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/options.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero.d.ts +23 -33
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +52 -118
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-client/src/mod.d.ts +12 -7
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +236 -0
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.js +128 -2
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +1 -1
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js +4 -0
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +1 -1
- package/out/zero-protocol/src/down.d.ts +99 -0
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/error.d.ts +4 -4
- package/out/zero-protocol/src/inspect-down.d.ts +297 -0
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.d.ts +4 -0
- package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.js +2 -1
- package/out/zero-protocol/src/inspect-up.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +1 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +1 -1
- package/out/zero-protocol/src/up.d.ts +1 -0
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-react/src/components/inspector.d.ts +3 -2
- package/out/zero-react/src/components/inspector.d.ts.map +1 -1
- package/out/zero-react/src/components/inspector.js.map +1 -1
- package/out/zero-react/src/components/zero-inspector.d.ts +3 -2
- package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
- package/out/zero-react/src/components/zero-inspector.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts +5 -4
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-query.js +4 -3
- package/out/zero-react/src/use-query.js.map +1 -1
- package/out/zero-react/src/zero-provider.d.ts +7 -7
- package/out/zero-react/src/zero-provider.d.ts.map +1 -1
- package/out/zero-react/src/zero-provider.js.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.js +1 -1
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
- package/out/zero-server/src/custom.d.ts +4 -5
- package/out/zero-server/src/custom.d.ts.map +1 -1
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/mod.d.ts +0 -1
- package/out/zero-server/src/mod.d.ts.map +1 -1
- package/out/zero-server/src/process-mutations.d.ts +9 -14
- package/out/zero-server/src/process-mutations.d.ts.map +1 -1
- package/out/zero-server/src/process-mutations.js +151 -105
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/push-processor.d.ts +5 -3
- package/out/zero-server/src/push-processor.d.ts.map +1 -1
- package/out/zero-server/src/push-processor.js +17 -25
- package/out/zero-server/src/push-processor.js.map +1 -1
- package/out/zero-server/src/queries/process-queries.js +1 -1
- package/out/zero-server/src/queries/process-queries.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero-server/src/zql-database.js +1 -1
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/use-query.d.ts +3 -3
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-query.js +27 -38
- package/out/zero-solid/src/use-query.js.map +1 -1
- package/out/zero-solid/src/use-zero-connection-state.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero-connection-state.js +7 -5
- package/out/zero-solid/src/use-zero-connection-state.js.map +1 -1
- package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero-online.js +7 -5
- package/out/zero-solid/src/use-zero-online.js.map +1 -1
- package/out/zero-solid/src/use-zero.d.ts +6 -5
- package/out/zero-solid/src/use-zero.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero.js +2 -6
- package/out/zero-solid/src/use-zero.js.map +1 -1
- package/out/zql/src/builder/builder.d.ts +2 -1
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +4 -3
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/mutate/custom.d.ts +15 -6
- package/out/zql/src/mutate/custom.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.js +6 -6
- package/out/zql/src/mutate/custom.js.map +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts +142 -0
- package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
- package/out/zql/src/mutate/mutator-registry.js +97 -0
- package/out/zql/src/mutate/mutator-registry.js.map +1 -0
- package/out/zql/src/mutate/mutator.d.ts +98 -0
- package/out/zql/src/mutate/mutator.d.ts.map +1 -0
- package/out/zql/src/mutate/mutator.js +35 -0
- package/out/zql/src/mutate/mutator.js.map +1 -0
- package/out/zql/src/planner/planner-connection.d.ts +7 -15
- package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
- package/out/zql/src/planner/planner-connection.js +30 -24
- package/out/zql/src/planner/planner-connection.js.map +1 -1
- package/out/zql/src/planner/planner-debug.d.ts +37 -43
- package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
- package/out/zql/src/planner/planner-debug.js +242 -0
- package/out/zql/src/planner/planner-debug.js.map +1 -0
- package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
- package/out/zql/src/planner/planner-fan-in.js +11 -8
- package/out/zql/src/planner/planner-fan-in.js.map +1 -1
- package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
- package/out/zql/src/planner/planner-fan-out.js +11 -8
- package/out/zql/src/planner/planner-fan-out.js.map +1 -1
- package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
- package/out/zql/src/planner/planner-graph.js +13 -5
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.d.ts.map +1 -1
- package/out/zql/src/planner/planner-join.js +12 -9
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/planner/planner-node.d.ts +4 -0
- package/out/zql/src/planner/planner-node.d.ts.map +1 -1
- package/out/zql/src/planner/planner-node.js +8 -0
- package/out/zql/src/planner/planner-node.js.map +1 -0
- package/out/zql/src/query/create-builder.d.ts +7 -0
- package/out/zql/src/query/create-builder.d.ts.map +1 -0
- package/out/zql/src/query/create-builder.js +44 -0
- package/out/zql/src/query/create-builder.js.map +1 -0
- package/out/zql/src/query/named.d.ts +1 -7
- package/out/zql/src/query/named.d.ts.map +1 -1
- package/out/zql/src/query/named.js +0 -21
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +4 -3
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +3 -0
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internals.js +0 -4
- package/out/zql/src/query/query-internals.js.map +1 -1
- package/out/zql/src/query/query-registry.d.ts +253 -0
- package/out/zql/src/query/query-registry.d.ts.map +1 -0
- package/out/zql/src/query/query-registry.js +131 -0
- package/out/zql/src/query/query-registry.js.map +1 -0
- package/out/zql/src/query/query.d.ts +16 -1
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/schema-query.d.ts +6 -0
- package/out/zql/src/query/schema-query.d.ts.map +1 -0
- package/out/zql/src/query/validate-input.js +12 -13
- package/out/zql/src/query/validate-input.js.map +1 -1
- package/package.json +2 -1
- package/out/zero-server/src/query-registry.d.ts +0 -10
- package/out/zero-server/src/query-registry.d.ts.map +0 -1
- package/out/zero-server/src/query-registry.js +0 -35
- package/out/zero-server/src/query-registry.js.map +0 -1
- package/out/zql/src/query/define-query.d.ts +0 -75
- package/out/zql/src/query/define-query.d.ts.map +0 -1
- package/out/zql/src/query/define-query.js +0 -47
- package/out/zql/src/query/define-query.js.map +0 -1
- package/out/zql/src/query/query-definitions.d.ts +0 -32
- package/out/zql/src/query/query-definitions.d.ts.map +0 -1
|
@@ -8,7 +8,7 @@ import { stringify } from "../../../../shared/src/bigint-json.js";
|
|
|
8
8
|
import { CustomKeyMap } from "../../../../shared/src/custom-key-map.js";
|
|
9
9
|
import { must } from "../../../../shared/src/must.js";
|
|
10
10
|
import { randInt } from "../../../../shared/src/rand.js";
|
|
11
|
-
import { Rehome, ClientNotFound, TransformFailed, Unauthorized, InvalidConnectionRequestBaseCookie } from "../../../../zero-protocol/src/error-kind-enum.js";
|
|
11
|
+
import { Rehome, ClientNotFound, InvalidConnectionRequest, TransformFailed, Unauthorized, InvalidConnectionRequestBaseCookie } from "../../../../zero-protocol/src/error-kind-enum.js";
|
|
12
12
|
import { ZeroCache } from "../../../../zero-protocol/src/error-origin-enum.js";
|
|
13
13
|
import { ProtocolError } from "../../../../zero-protocol/src/error.js";
|
|
14
14
|
import { clampTTL, MAX_TTL_MS } from "../../../../zql/src/query/ttl.js";
|
|
@@ -156,11 +156,11 @@ class ViewSyncerService {
|
|
|
156
156
|
#inspectorDelegate;
|
|
157
157
|
#config;
|
|
158
158
|
constructor(config, lc, shard, taskID, clientGroupID, cvrDb, upstreamDb, pipelineDriver, versionChanges, drainCoordinator, slowHydrateThreshold, inspectorDelegate, customQueryTransformer, keepaliveMs = DEFAULT_KEEPALIVE_MS, setTimeoutFn = setTimeout.bind(globalThis)) {
|
|
159
|
-
const
|
|
159
|
+
const queryConfig = config.query?.url ? config.query : config.getQueries;
|
|
160
160
|
this.#config = config;
|
|
161
161
|
this.id = clientGroupID;
|
|
162
162
|
this.#shard = shard;
|
|
163
|
-
this.#queryConfig =
|
|
163
|
+
this.#queryConfig = queryConfig;
|
|
164
164
|
this.#lc = lc;
|
|
165
165
|
this.#pipelines = pipelineDriver;
|
|
166
166
|
this.#stateChanges = versionChanges;
|
|
@@ -249,8 +249,12 @@ class ViewSyncerService {
|
|
|
249
249
|
}
|
|
250
250
|
assert(state === "version-ready", "state should be version-ready");
|
|
251
251
|
await this.#runInLockWithCVR(async (lc, cvr) => {
|
|
252
|
+
const clientSchema = must(
|
|
253
|
+
cvr.clientSchema,
|
|
254
|
+
"cvr.clientSchema missing after initialization"
|
|
255
|
+
);
|
|
252
256
|
if (!this.#pipelines.initialized()) {
|
|
253
|
-
this.#pipelines.init(
|
|
257
|
+
this.#pipelines.init(clientSchema);
|
|
254
258
|
}
|
|
255
259
|
if (cvr.replicaVersion !== null && cvr.version.stateVersion !== "00" && this.#pipelines.replicaVersion < cvr.replicaVersion) {
|
|
256
260
|
const message = `Cannot sync from older replica: CVR=${cvr.replicaVersion}, DB=${this.#pipelines.replicaVersion}`;
|
|
@@ -267,7 +271,7 @@ class ViewSyncerService {
|
|
|
267
271
|
return;
|
|
268
272
|
}
|
|
269
273
|
lc.info?.(`resetting pipelines: ${result.message}`);
|
|
270
|
-
this.#pipelines.reset(
|
|
274
|
+
this.#pipelines.reset(clientSchema);
|
|
271
275
|
}
|
|
272
276
|
const version2 = this.#pipelines.advanceWithoutDiff();
|
|
273
277
|
const cvrVer = versionString(cvr.version);
|
|
@@ -286,11 +290,14 @@ class ViewSyncerService {
|
|
|
286
290
|
}
|
|
287
291
|
this.#cleanup();
|
|
288
292
|
} catch (e) {
|
|
289
|
-
this.#lc[getLogLevel(e)]?.(
|
|
293
|
+
this.#lc[getLogLevel(e)]?.(
|
|
294
|
+
`stopping view-syncer ${this.id}: ${String(e)}`,
|
|
295
|
+
e
|
|
296
|
+
);
|
|
290
297
|
this.#cleanup(e);
|
|
291
298
|
} finally {
|
|
292
299
|
await this.#cvrStore.flushed(this.#lc).catch((e) => this.#lc[getLogLevel(e)]?.(e));
|
|
293
|
-
this.#lc.info?.(
|
|
300
|
+
this.#lc.info?.(`view-syncer ${this.id} finished`);
|
|
294
301
|
this.#stopped.resolve();
|
|
295
302
|
}
|
|
296
303
|
}
|
|
@@ -381,7 +388,6 @@ class ViewSyncerService {
|
|
|
381
388
|
protocolVersion
|
|
382
389
|
} = ctx;
|
|
383
390
|
this.#authData = pickToken(this.#lc, this.#authData, tokenData);
|
|
384
|
-
this.#initialized.resolve("initialized");
|
|
385
391
|
this.#lc.debug?.(
|
|
386
392
|
`Picked auth token: ${JSON.stringify(this.#authData?.decoded)}`
|
|
387
393
|
);
|
|
@@ -391,7 +397,7 @@ class ViewSyncerService {
|
|
|
391
397
|
this.userQueryURL = userQueryURL;
|
|
392
398
|
} else {
|
|
393
399
|
if (this.userQueryURL !== userQueryURL) {
|
|
394
|
-
this.#lc.
|
|
400
|
+
this.#lc.warn?.(
|
|
395
401
|
"Client provided different query parameters than client group",
|
|
396
402
|
{
|
|
397
403
|
clientID,
|
|
@@ -433,7 +439,17 @@ class ViewSyncerService {
|
|
|
433
439
|
void this.#runInLockForClient(
|
|
434
440
|
ctx,
|
|
435
441
|
initConnectionMessage,
|
|
436
|
-
|
|
442
|
+
async (lc2, clientID2, msg, cvr) => {
|
|
443
|
+
if (cvr.clientSchema === null && !msg.clientSchema) {
|
|
444
|
+
throw new ProtocolErrorWithLevel({
|
|
445
|
+
kind: InvalidConnectionRequest,
|
|
446
|
+
message: "The initConnection message for a new client group must include client schema.",
|
|
447
|
+
origin: ZeroCache
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
await this.#handleConfigUpdate(lc2, clientID2, msg, cvr);
|
|
451
|
+
this.#initialized.resolve("initialized");
|
|
452
|
+
},
|
|
437
453
|
newClient
|
|
438
454
|
).catch((e) => newClient.fail(e));
|
|
439
455
|
return downstream;
|
|
@@ -443,15 +459,11 @@ class ViewSyncerService {
|
|
|
443
459
|
await this.#runInLockForClient(ctx, msg, this.#handleConfigUpdate);
|
|
444
460
|
}
|
|
445
461
|
async deleteClients(ctx, msg) {
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
);
|
|
452
|
-
} catch (e) {
|
|
453
|
-
this.#lc.error?.("deleteClients failed", e);
|
|
454
|
-
}
|
|
462
|
+
await this.#runInLockForClient(
|
|
463
|
+
ctx,
|
|
464
|
+
[msg[0], { deleted: msg[1] }],
|
|
465
|
+
this.#handleConfigUpdate
|
|
466
|
+
);
|
|
455
467
|
}
|
|
456
468
|
#getTTLClock(now) {
|
|
457
469
|
const delta = now - this.#ttlClockBase;
|
|
@@ -729,8 +741,8 @@ class ViewSyncerService {
|
|
|
729
741
|
}
|
|
730
742
|
const transformedQueries = [];
|
|
731
743
|
if (customQueries.size > 0 && !this.#customQueryTransformer) {
|
|
732
|
-
lc.
|
|
733
|
-
"Custom/named queries were requested but no `
|
|
744
|
+
lc.warn?.(
|
|
745
|
+
"Custom/named queries were requested but no `ZERO_QUERY_URL` is configured for Zero Cache."
|
|
734
746
|
);
|
|
735
747
|
}
|
|
736
748
|
if (this.#customQueryTransformer && customQueries.size > 0) {
|
|
@@ -808,7 +820,7 @@ class ViewSyncerService {
|
|
|
808
820
|
for (const q of transformedCustomQueries) {
|
|
809
821
|
if ("error" in q) {
|
|
810
822
|
const errorMessage = `Error transforming custom query ${q.name}: ${q.error}${q.details ? ` ${JSON.stringify(q.details)}` : ""}`;
|
|
811
|
-
lc.
|
|
823
|
+
lc.warn?.(errorMessage, q);
|
|
812
824
|
appQueryErrors.push(q);
|
|
813
825
|
continue;
|
|
814
826
|
}
|
|
@@ -907,8 +919,8 @@ class ViewSyncerService {
|
|
|
907
919
|
});
|
|
908
920
|
}
|
|
909
921
|
if (customQueries.size > 0 && !this.#customQueryTransformer) {
|
|
910
|
-
lc.
|
|
911
|
-
"Custom/named queries were requested but no `
|
|
922
|
+
lc.warn?.(
|
|
923
|
+
"Custom/named queries were requested but no `ZERO_QUERY_URL` is configured for Zero Cache."
|
|
912
924
|
);
|
|
913
925
|
}
|
|
914
926
|
let erroredQueryIDs;
|
|
@@ -1002,10 +1014,21 @@ class ViewSyncerService {
|
|
|
1002
1014
|
);
|
|
1003
1015
|
}
|
|
1004
1016
|
if (erroredQueryIDs) {
|
|
1017
|
+
const successfulHashes = new Set(
|
|
1018
|
+
transformedQueries.map(
|
|
1019
|
+
({ transformed }) => transformed.transformationHash
|
|
1020
|
+
)
|
|
1021
|
+
);
|
|
1005
1022
|
for (const queryID of erroredQueryIDs) {
|
|
1023
|
+
let lastKnownHash;
|
|
1024
|
+
const cvrQuery = cvr.queries[queryID];
|
|
1025
|
+
if (cvrQuery?.transformationHash) {
|
|
1026
|
+
lastKnownHash = cvrQuery.transformationHash;
|
|
1027
|
+
}
|
|
1028
|
+
const transformationHash = lastKnownHash && successfulHashes.has(lastKnownHash) ? void 0 : lastKnownHash;
|
|
1006
1029
|
removeQueries.push({
|
|
1007
1030
|
id: queryID,
|
|
1008
|
-
transformationHash
|
|
1031
|
+
transformationHash
|
|
1009
1032
|
});
|
|
1010
1033
|
}
|
|
1011
1034
|
}
|