@rocicorp/zero 0.18.2025032800 → 0.18.2025040200
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/analyze-query/src/bin.d.ts +2 -0
- package/out/analyze-query/src/bin.d.ts.map +1 -0
- package/out/analyze-query/src/bin.js +178 -0
- package/out/analyze-query/src/bin.js.map +1 -0
- package/out/{chunk-3S3SDA44.js → chunk-CT4LRQ5P.js} +242 -78
- package/out/chunk-CT4LRQ5P.js.map +7 -0
- package/out/{chunk-NBZURO2P.js → chunk-R7QLNPBS.js} +16 -109
- package/out/{chunk-NBZURO2P.js.map → chunk-R7QLNPBS.js.map} +3 -3
- package/out/inspector-RYBBQ63M.js +394 -0
- package/out/inspector-RYBBQ63M.js.map +7 -0
- package/out/otel/src/test-log-config.d.ts +8 -0
- package/out/otel/src/test-log-config.d.ts.map +1 -0
- package/out/otel/src/test-log-config.js +8 -0
- package/out/otel/src/test-log-config.js.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +12 -0
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/shared/src/browser-env.d.ts +2 -0
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/deep-merge.d.ts +6 -0
- package/out/shared/src/deep-merge.d.ts.map +1 -0
- package/out/shared/src/logging-test-utils.d.ts +12 -0
- package/out/shared/src/logging-test-utils.d.ts.map +1 -0
- package/out/shared/src/logging-test-utils.js +21 -0
- package/out/shared/src/logging-test-utils.js.map +1 -0
- package/out/solid.js +2 -2
- package/out/solid.js.map +2 -2
- package/out/z2s/src/compiler.d.ts +5 -4
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +86 -59
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/schema.d.ts +11 -0
- package/out/z2s/src/schema.d.ts.map +1 -0
- package/out/z2s/src/schema.js +2 -0
- package/out/z2s/src/schema.js.map +1 -0
- package/out/z2s/src/sql.d.ts +7 -4
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +111 -66
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/src/analyze-query.d.ts +3 -0
- package/out/zero/src/analyze-query.d.ts.map +1 -0
- package/out/zero/src/analyze-query.js +3 -0
- package/out/zero/src/analyze-query.js.map +1 -0
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +12 -0
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +17 -1
- package/out/zero-cache/src/server/main.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-source/replica-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/replica-schema.js +10 -1
- package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +10 -6
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +17 -16
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +2 -8
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +8 -15
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +2 -3
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +2 -2
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- 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 +0 -7
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- 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 +2 -52
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +2 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +53 -0
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +14 -3
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +6 -10
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/types.d.ts +0 -1
- package/out/zero-client/src/client/inspector/types.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts +7 -3
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +6 -2
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +2 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-pg/src/custom.d.ts +2 -1
- package/out/zero-pg/src/custom.d.ts.map +1 -1
- package/out/zero-pg/src/custom.js +24 -16
- package/out/zero-pg/src/custom.js.map +1 -1
- package/out/zero-pg/src/mod.d.ts +2 -1
- package/out/zero-pg/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/mod.js +1 -0
- package/out/zero-pg/src/mod.js.map +1 -1
- package/out/zero-pg/src/postgres-connection.d.ts +30 -0
- package/out/zero-pg/src/postgres-connection.d.ts.map +1 -0
- package/out/zero-pg/src/postgres-connection.js +31 -0
- package/out/zero-pg/src/postgres-connection.js.map +1 -0
- package/out/zero-pg/src/query.d.ts +3 -2
- package/out/zero-pg/src/query.d.ts.map +1 -1
- package/out/zero-pg/src/query.js +10 -6
- package/out/zero-pg/src/query.js.map +1 -1
- package/out/zero-pg/src/schema.d.ts +12 -0
- package/out/zero-pg/src/schema.d.ts.map +1 -0
- package/out/zero-pg/src/schema.js +57 -0
- package/out/zero-pg/src/schema.js.map +1 -0
- package/out/zero-pg/src/web.d.ts +6 -9
- package/out/zero-pg/src/web.d.ts.map +1 -1
- package/out/zero-pg/src/web.js +28 -20
- package/out/zero-pg/src/web.js.map +1 -1
- package/out/zero-protocol/src/client-schema.d.ts +1 -1
- package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
- package/out/zero-protocol/src/client-schema.js +1 -1
- package/out/zero-protocol/src/client-schema.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +5 -5
- 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 +3 -2
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +23 -16
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +15 -5
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-react/src/mod.d.ts +1 -1
- package/out/zero-react/src/mod.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts +0 -12
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +0 -16
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-schema/src/table-schema.d.ts +0 -3
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero-schema/src/table-schema.js +0 -3
- package/out/zero-schema/src/table-schema.js.map +1 -1
- package/out/zero-solid/src/create-zero.d.ts +2 -2
- package/out/zero-solid/src/create-zero.d.ts.map +1 -1
- package/out/zero-solid/src/mod.d.ts +1 -1
- package/out/zero-solid/src/mod.d.ts.map +1 -1
- package/out/zero.js +2 -2
- package/out/zql/src/ivm/catch.d.ts +51 -0
- package/out/zql/src/ivm/catch.d.ts.map +1 -0
- package/out/zql/src/ivm/catch.js +78 -0
- package/out/zql/src/ivm/catch.js.map +1 -0
- package/out/zql/src/ivm/memory-storage.js +37 -0
- package/out/zql/src/ivm/memory-storage.js.map +1 -0
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +6 -4
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +0 -8
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +4 -3
- package/out/chunk-3S3SDA44.js.map +0 -7
- package/out/inspector-SH2ZK7O3.js +0 -835
- package/out/inspector-SH2ZK7O3.js.map +0 -7
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
clientGroupHasPendingMutations,
|
|
35
35
|
clientGroupIDSchema,
|
|
36
36
|
clientIDSchema,
|
|
37
|
-
clientToServer,
|
|
38
37
|
commitFromHash,
|
|
39
38
|
commitFromHead,
|
|
40
39
|
commitIsLocalDD31,
|
|
@@ -95,7 +94,6 @@ import {
|
|
|
95
94
|
readonlyArray,
|
|
96
95
|
readonlyObject,
|
|
97
96
|
rowSchema,
|
|
98
|
-
serverToClient,
|
|
99
97
|
setClient,
|
|
100
98
|
setClientGroup,
|
|
101
99
|
setClientGroups,
|
|
@@ -116,7 +114,7 @@ import {
|
|
|
116
114
|
withWrite,
|
|
117
115
|
withWriteNoImplicitCommit,
|
|
118
116
|
wrapIterable
|
|
119
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-R7QLNPBS.js";
|
|
120
118
|
import {
|
|
121
119
|
compareTTL,
|
|
122
120
|
hasOwn,
|
|
@@ -299,11 +297,15 @@ function assertPullerResultV1(v) {
|
|
|
299
297
|
import { resolver } from "@rocicorp/resolver";
|
|
300
298
|
|
|
301
299
|
// ../shared/src/browser-env.ts
|
|
300
|
+
var overrides = /* @__PURE__ */ new Map();
|
|
302
301
|
function getBrowserGlobal(name) {
|
|
302
|
+
if (overrides.has(name)) {
|
|
303
|
+
return overrides.get(name);
|
|
304
|
+
}
|
|
303
305
|
return globalThis[name];
|
|
304
306
|
}
|
|
305
307
|
function getBrowserGlobalMethod(name) {
|
|
306
|
-
return
|
|
308
|
+
return getBrowserGlobal(name)?.bind(globalThis);
|
|
307
309
|
}
|
|
308
310
|
function mustGetBrowserGlobal(name) {
|
|
309
311
|
const r = getBrowserGlobal(name);
|
|
@@ -5174,7 +5176,20 @@ var ReplicacheImpl = class {
|
|
|
5174
5176
|
};
|
|
5175
5177
|
#register(name, mutatorImpl) {
|
|
5176
5178
|
this.#mutatorRegistry[name] = mutatorImpl;
|
|
5177
|
-
return (args) =>
|
|
5179
|
+
return (args) => {
|
|
5180
|
+
const trackingData = name === "_zero_crud" ? void 0 : this.#zero?.trackMutation();
|
|
5181
|
+
const result = this.#mutate(
|
|
5182
|
+
trackingData,
|
|
5183
|
+
name,
|
|
5184
|
+
mutatorImpl,
|
|
5185
|
+
args,
|
|
5186
|
+
performance.now()
|
|
5187
|
+
);
|
|
5188
|
+
if (trackingData) {
|
|
5189
|
+
result.server = trackingData.serverPromise;
|
|
5190
|
+
}
|
|
5191
|
+
return result;
|
|
5192
|
+
};
|
|
5178
5193
|
}
|
|
5179
5194
|
#registerMutators(regs) {
|
|
5180
5195
|
const rv = /* @__PURE__ */ Object.create(null);
|
|
@@ -5183,7 +5198,7 @@ var ReplicacheImpl = class {
|
|
|
5183
5198
|
}
|
|
5184
5199
|
return rv;
|
|
5185
5200
|
}
|
|
5186
|
-
async #mutate(name, mutatorImpl, args, timestamp) {
|
|
5201
|
+
async #mutate(trackingData, name, mutatorImpl, args, timestamp) {
|
|
5187
5202
|
const frozenArgs = deepFreeze(args ?? null);
|
|
5188
5203
|
if (this.#subscriptions.hasPendingSubscriptionRuns) {
|
|
5189
5204
|
await Promise.resolve();
|
|
@@ -5192,36 +5207,54 @@ var ReplicacheImpl = class {
|
|
|
5192
5207
|
const { clientID } = this;
|
|
5193
5208
|
return withWriteNoImplicitCommit(this.memdag, async (dagWrite) => {
|
|
5194
5209
|
try {
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
originalHash
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5210
|
+
let result;
|
|
5211
|
+
let newHead;
|
|
5212
|
+
let diffs;
|
|
5213
|
+
let headHash;
|
|
5214
|
+
try {
|
|
5215
|
+
headHash = await mustGetHeadHash(DEFAULT_HEAD_NAME, dagWrite);
|
|
5216
|
+
const originalHash = null;
|
|
5217
|
+
const dbWrite = await newWriteLocal(
|
|
5218
|
+
headHash,
|
|
5219
|
+
name,
|
|
5220
|
+
frozenArgs,
|
|
5221
|
+
originalHash,
|
|
5222
|
+
dagWrite,
|
|
5223
|
+
timestamp,
|
|
5224
|
+
clientID,
|
|
5225
|
+
Latest
|
|
5226
|
+
);
|
|
5227
|
+
const mutationID = await dbWrite.getMutationID();
|
|
5228
|
+
const tx = new WriteTransactionImpl(
|
|
5229
|
+
clientID,
|
|
5230
|
+
mutationID,
|
|
5231
|
+
"initial",
|
|
5232
|
+
await this.#zero?.getTxData(headHash, {
|
|
5233
|
+
openLazyRead: dagWrite
|
|
5234
|
+
}),
|
|
5235
|
+
dbWrite,
|
|
5236
|
+
this.#lc
|
|
5237
|
+
);
|
|
5238
|
+
if (trackingData) {
|
|
5239
|
+
this.#zero?.mutationIDAssigned(
|
|
5240
|
+
trackingData.ephemeralID,
|
|
5241
|
+
mutationID
|
|
5242
|
+
);
|
|
5243
|
+
}
|
|
5244
|
+
result = await mutatorImpl(tx, args);
|
|
5245
|
+
throwIfClosed(dbWrite);
|
|
5246
|
+
const lastMutationID = await dbWrite.getMutationID();
|
|
5247
|
+
[newHead, diffs] = await dbWrite.commitWithDiffs(
|
|
5248
|
+
DEFAULT_HEAD_NAME,
|
|
5249
|
+
this.#subscriptions
|
|
5250
|
+
);
|
|
5251
|
+
this.lastMutationID = lastMutationID;
|
|
5252
|
+
} catch (e) {
|
|
5253
|
+
if (trackingData) {
|
|
5254
|
+
this.#zero?.rejectMutation(trackingData.ephemeralID, e);
|
|
5255
|
+
}
|
|
5256
|
+
throw e;
|
|
5257
|
+
}
|
|
5225
5258
|
this.#zero?.advance(headHash, newHead, diffs.get("") ?? []);
|
|
5226
5259
|
this.#pushConnectionLoop.send(false).catch(() => void 0);
|
|
5227
5260
|
await this.#subscriptions.fire(diffs);
|
|
@@ -5551,9 +5584,7 @@ var valueTypeSchema = valita_exports.union(
|
|
|
5551
5584
|
valita_exports.literal("number"),
|
|
5552
5585
|
valita_exports.literal("boolean"),
|
|
5553
5586
|
valita_exports.literal("null"),
|
|
5554
|
-
valita_exports.literal("json")
|
|
5555
|
-
valita_exports.literal("date"),
|
|
5556
|
-
valita_exports.literal("timestamp")
|
|
5587
|
+
valita_exports.literal("json")
|
|
5557
5588
|
);
|
|
5558
5589
|
var columnSchemaSchema = valita_exports.object({
|
|
5559
5590
|
type: valueTypeSchema
|
|
@@ -5791,6 +5822,87 @@ var StaticQuery = class _StaticQuery extends AbstractQuery {
|
|
|
5791
5822
|
}
|
|
5792
5823
|
};
|
|
5793
5824
|
|
|
5825
|
+
// ../zero-schema/src/name-mapper.ts
|
|
5826
|
+
function clientToServer(tables) {
|
|
5827
|
+
return createMapperFrom("client", tables);
|
|
5828
|
+
}
|
|
5829
|
+
function serverToClient(tables) {
|
|
5830
|
+
return createMapperFrom("server", tables);
|
|
5831
|
+
}
|
|
5832
|
+
function createMapperFrom(src, tables) {
|
|
5833
|
+
const mapping = new Map(
|
|
5834
|
+
Object.entries(tables).map(
|
|
5835
|
+
([tableName, { serverName: serverTableName, columns }]) => {
|
|
5836
|
+
let allColumnsSame = true;
|
|
5837
|
+
const names = {};
|
|
5838
|
+
for (const [name, { serverName }] of Object.entries(columns)) {
|
|
5839
|
+
if (serverName && serverName !== name) {
|
|
5840
|
+
allColumnsSame = false;
|
|
5841
|
+
}
|
|
5842
|
+
if (src === "client") {
|
|
5843
|
+
names[name] = serverName ?? name;
|
|
5844
|
+
} else {
|
|
5845
|
+
names[serverName ?? name] = name;
|
|
5846
|
+
}
|
|
5847
|
+
}
|
|
5848
|
+
return [
|
|
5849
|
+
src === "client" ? tableName : serverTableName ?? tableName,
|
|
5850
|
+
{
|
|
5851
|
+
tableName: src === "client" ? serverTableName ?? tableName : tableName,
|
|
5852
|
+
columns: names,
|
|
5853
|
+
allColumnsSame
|
|
5854
|
+
}
|
|
5855
|
+
];
|
|
5856
|
+
}
|
|
5857
|
+
)
|
|
5858
|
+
);
|
|
5859
|
+
return new NameMapper(mapping);
|
|
5860
|
+
}
|
|
5861
|
+
var NameMapper = class {
|
|
5862
|
+
#tables = /* @__PURE__ */ new Map();
|
|
5863
|
+
constructor(tables) {
|
|
5864
|
+
this.#tables = tables;
|
|
5865
|
+
}
|
|
5866
|
+
#getTable(src, ctx) {
|
|
5867
|
+
const table2 = this.#tables.get(src);
|
|
5868
|
+
if (!table2) {
|
|
5869
|
+
throw new Error(
|
|
5870
|
+
`unknown table "${src}" ${!ctx ? "" : `in ${JSON.stringify(ctx)}`}`
|
|
5871
|
+
);
|
|
5872
|
+
}
|
|
5873
|
+
return table2;
|
|
5874
|
+
}
|
|
5875
|
+
tableName(src, context) {
|
|
5876
|
+
return this.#getTable(src, context).tableName;
|
|
5877
|
+
}
|
|
5878
|
+
columnName(table2, src, ctx) {
|
|
5879
|
+
const dst = this.#getTable(table2, ctx).columns[src];
|
|
5880
|
+
if (!dst) {
|
|
5881
|
+
throw new Error(
|
|
5882
|
+
`unknown column "${src}" of "${table2}" table ${!ctx ? "" : `in ${JSON.stringify(ctx)}`}`
|
|
5883
|
+
);
|
|
5884
|
+
}
|
|
5885
|
+
return dst;
|
|
5886
|
+
}
|
|
5887
|
+
row(table2, row) {
|
|
5888
|
+
const dest = this.#getTable(table2);
|
|
5889
|
+
const { allColumnsSame, columns } = dest;
|
|
5890
|
+
if (allColumnsSame) {
|
|
5891
|
+
return row;
|
|
5892
|
+
}
|
|
5893
|
+
const clientRow = {};
|
|
5894
|
+
for (const col in row) {
|
|
5895
|
+
clientRow[columns[col] ?? col] = row[col];
|
|
5896
|
+
}
|
|
5897
|
+
return clientRow;
|
|
5898
|
+
}
|
|
5899
|
+
columns(table2, cols) {
|
|
5900
|
+
const dest = this.#getTable(table2);
|
|
5901
|
+
const { allColumnsSame, columns } = dest;
|
|
5902
|
+
return cols === void 0 || allColumnsSame ? cols : cols.map((col) => columns[col] ?? col);
|
|
5903
|
+
}
|
|
5904
|
+
};
|
|
5905
|
+
|
|
5794
5906
|
// ../zero-schema/src/permissions.ts
|
|
5795
5907
|
var ANYONE_CAN = [
|
|
5796
5908
|
(_, eb) => eb.and()
|
|
@@ -6290,7 +6402,7 @@ var appErrorSchema = valita_exports.object({
|
|
|
6290
6402
|
details: jsonSchema.optional()
|
|
6291
6403
|
});
|
|
6292
6404
|
var zeroErrorSchema = valita_exports.object({
|
|
6293
|
-
error: valita_exports.literal("
|
|
6405
|
+
error: valita_exports.literal("oooMutation"),
|
|
6294
6406
|
details: jsonSchema.optional()
|
|
6295
6407
|
});
|
|
6296
6408
|
var mutationOkSchema = valita_exports.object({
|
|
@@ -6307,14 +6419,14 @@ var pushOkSchema = valita_exports.object({
|
|
|
6307
6419
|
mutations: valita_exports.array(mutationResponseSchema)
|
|
6308
6420
|
});
|
|
6309
6421
|
var unsupportedPushVersionSchema = valita_exports.object({
|
|
6310
|
-
error: valita_exports.literal("
|
|
6422
|
+
error: valita_exports.literal("unsupportedPushVersion"),
|
|
6311
6423
|
// optional for backwards compatibility
|
|
6312
6424
|
// This field is included so the client knows which mutations
|
|
6313
6425
|
// were not processed by the server.
|
|
6314
6426
|
mutationIDs: valita_exports.array(mutationIDSchema).optional()
|
|
6315
6427
|
});
|
|
6316
6428
|
var unsupportedSchemaVersionSchema = valita_exports.object({
|
|
6317
|
-
error: valita_exports.literal("
|
|
6429
|
+
error: valita_exports.literal("unsupportedSchemaVersion"),
|
|
6318
6430
|
// optional for backwards compatibility
|
|
6319
6431
|
// This field is included so the client knows which mutations
|
|
6320
6432
|
// were not processed by the server.
|
|
@@ -6327,7 +6439,7 @@ var httpErrorSchema = valita_exports.object({
|
|
|
6327
6439
|
mutationIDs: valita_exports.array(mutationIDSchema).optional()
|
|
6328
6440
|
});
|
|
6329
6441
|
var zeroPusherErrorSchema = valita_exports.object({
|
|
6330
|
-
error: valita_exports.literal("
|
|
6442
|
+
error: valita_exports.literal("zeroPusher"),
|
|
6331
6443
|
details: valita_exports.string(),
|
|
6332
6444
|
mutationIDs: valita_exports.array(mutationIDSchema).optional()
|
|
6333
6445
|
});
|
|
@@ -6339,9 +6451,13 @@ var pushErrorSchema = valita_exports.union(
|
|
|
6339
6451
|
);
|
|
6340
6452
|
var pushResponseSchema = valita_exports.union(pushOkSchema, pushErrorSchema);
|
|
6341
6453
|
var pushResponseMessageSchema = valita_exports.tuple([
|
|
6342
|
-
valita_exports.literal("
|
|
6454
|
+
valita_exports.literal("pushResponse"),
|
|
6343
6455
|
pushResponseSchema
|
|
6344
6456
|
]);
|
|
6457
|
+
var pushParamsSchema = valita_exports.object({
|
|
6458
|
+
schema: valita_exports.string(),
|
|
6459
|
+
appID: valita_exports.string()
|
|
6460
|
+
});
|
|
6345
6461
|
function mapCRUD(arg, map) {
|
|
6346
6462
|
return {
|
|
6347
6463
|
ops: arg.ops.map(
|
|
@@ -6372,7 +6488,7 @@ var downstreamSchema = valita_exports.union(
|
|
|
6372
6488
|
);
|
|
6373
6489
|
|
|
6374
6490
|
// ../zero-protocol/src/protocol-version.ts
|
|
6375
|
-
var PROTOCOL_VERSION =
|
|
6491
|
+
var PROTOCOL_VERSION = 14;
|
|
6376
6492
|
var MIN_SERVER_SUPPORTED_SYNC_PROTOCOL = 6;
|
|
6377
6493
|
assert(MIN_SERVER_SUPPORTED_SYNC_PROTOCOL < PROTOCOL_VERSION);
|
|
6378
6494
|
|
|
@@ -7925,17 +8041,10 @@ var TransactionImpl = class {
|
|
|
7925
8041
|
query;
|
|
7926
8042
|
token;
|
|
7927
8043
|
};
|
|
7928
|
-
function makeReplicacheMutator(lc,
|
|
8044
|
+
function makeReplicacheMutator(lc, mutator, schema, slowMaterializeThreshold) {
|
|
7929
8045
|
return async (repTx, args) => {
|
|
7930
8046
|
const tx = new TransactionImpl(lc, repTx, schema, slowMaterializeThreshold);
|
|
7931
8047
|
await mutator(tx, args);
|
|
7932
|
-
if (repTx.reason === "initial") {
|
|
7933
|
-
const serverPromise = mutationTracker.trackMutation(repTx.mutationID);
|
|
7934
|
-
return {
|
|
7935
|
-
server: serverPromise
|
|
7936
|
-
};
|
|
7937
|
-
}
|
|
7938
|
-
return {};
|
|
7939
8048
|
};
|
|
7940
8049
|
}
|
|
7941
8050
|
function makeSchemaCRUD(schema, tx, ivmBranch) {
|
|
@@ -8305,7 +8414,7 @@ function makeMessage(message, context, logLevel) {
|
|
|
8305
8414
|
}
|
|
8306
8415
|
|
|
8307
8416
|
// ../zero-client/src/client/version.ts
|
|
8308
|
-
var version2 = "0.18.
|
|
8417
|
+
var version2 = "0.18.2025040200";
|
|
8309
8418
|
|
|
8310
8419
|
// ../zero-client/src/client/log-options.ts
|
|
8311
8420
|
var LevelFilterLogSink = class {
|
|
@@ -8602,34 +8711,62 @@ var State = class {
|
|
|
8602
8711
|
// ../zero-client/src/client/mutation-tracker.ts
|
|
8603
8712
|
import { resolver as resolver7 } from "@rocicorp/resolver";
|
|
8604
8713
|
var transientPushErrorTypes = [
|
|
8605
|
-
"
|
|
8714
|
+
"zeroPusher",
|
|
8606
8715
|
"http",
|
|
8607
8716
|
// These should never actually be received as they cause the websocket
|
|
8608
8717
|
// connection to be closed.
|
|
8609
|
-
"
|
|
8610
|
-
"
|
|
8718
|
+
"unsupportedPushVersion",
|
|
8719
|
+
"unsupportedSchemaVersion"
|
|
8611
8720
|
];
|
|
8721
|
+
var currentEphemeralID = 0;
|
|
8722
|
+
function nextEphemeralID() {
|
|
8723
|
+
return ++currentEphemeralID;
|
|
8724
|
+
}
|
|
8612
8725
|
var MutationTracker = class {
|
|
8613
8726
|
#outstandingMutations;
|
|
8727
|
+
#ephemeralIDsByMutationID;
|
|
8614
8728
|
#allMutationsConfirmedListeners;
|
|
8729
|
+
#lc;
|
|
8615
8730
|
#clientID;
|
|
8616
|
-
constructor() {
|
|
8731
|
+
constructor(lc) {
|
|
8732
|
+
this.#lc = lc.withContext("MutationTracker");
|
|
8617
8733
|
this.#outstandingMutations = /* @__PURE__ */ new Map();
|
|
8734
|
+
this.#ephemeralIDsByMutationID = /* @__PURE__ */ new Map();
|
|
8618
8735
|
this.#allMutationsConfirmedListeners = /* @__PURE__ */ new Set();
|
|
8619
8736
|
}
|
|
8620
8737
|
set clientID(clientID) {
|
|
8621
8738
|
this.#clientID = clientID;
|
|
8622
8739
|
}
|
|
8623
|
-
trackMutation(
|
|
8624
|
-
|
|
8740
|
+
trackMutation() {
|
|
8741
|
+
const id = nextEphemeralID();
|
|
8625
8742
|
const mutationResolver = resolver7();
|
|
8626
8743
|
this.#outstandingMutations.set(id, {
|
|
8627
8744
|
resolver: mutationResolver
|
|
8628
8745
|
});
|
|
8629
|
-
return mutationResolver.promise;
|
|
8746
|
+
return { ephemeralID: id, serverPromise: mutationResolver.promise };
|
|
8747
|
+
}
|
|
8748
|
+
mutationIDAssigned(id, mutationID) {
|
|
8749
|
+
const entry = this.#outstandingMutations.get(id);
|
|
8750
|
+
if (entry) {
|
|
8751
|
+
entry.mutationID = mutationID;
|
|
8752
|
+
this.#ephemeralIDsByMutationID.set(mutationID, id);
|
|
8753
|
+
}
|
|
8754
|
+
}
|
|
8755
|
+
rejectMutation(id, e) {
|
|
8756
|
+
const entry = this.#outstandingMutations.get(id);
|
|
8757
|
+
if (entry) {
|
|
8758
|
+
this.#settleMutation(id, entry, "reject", {
|
|
8759
|
+
error: "app",
|
|
8760
|
+
details: e instanceof Error ? e.message : String(e)
|
|
8761
|
+
});
|
|
8762
|
+
}
|
|
8630
8763
|
}
|
|
8631
8764
|
processPushResponse(response) {
|
|
8632
8765
|
if ("error" in response) {
|
|
8766
|
+
this.#lc.error?.(
|
|
8767
|
+
"Received an error response when pushing mutations",
|
|
8768
|
+
response
|
|
8769
|
+
);
|
|
8633
8770
|
this.#processPushError(response);
|
|
8634
8771
|
} else {
|
|
8635
8772
|
this.#processPushOk(response);
|
|
@@ -8658,7 +8795,10 @@ var MutationTracker = class {
|
|
|
8658
8795
|
*/
|
|
8659
8796
|
onConnected(lastMutationID) {
|
|
8660
8797
|
for (const [id, entry] of this.#outstandingMutations) {
|
|
8661
|
-
if (
|
|
8798
|
+
if (!entry.mutationID) {
|
|
8799
|
+
continue;
|
|
8800
|
+
}
|
|
8801
|
+
if (entry.mutationID <= lastMutationID) {
|
|
8662
8802
|
this.#settleMutation(id, entry, "resolve", emptyObject);
|
|
8663
8803
|
} else {
|
|
8664
8804
|
break;
|
|
@@ -8694,20 +8834,31 @@ var MutationTracker = class {
|
|
|
8694
8834
|
mid.clientID === this.#clientID,
|
|
8695
8835
|
"received mutation for the wrong client"
|
|
8696
8836
|
);
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8837
|
+
this.#lc.error?.(`Mutation ${mid.id} returned an error`, error);
|
|
8838
|
+
const ephemeralID = this.#ephemeralIDsByMutationID.get(mid.id);
|
|
8839
|
+
assert(
|
|
8840
|
+
ephemeralID,
|
|
8841
|
+
() => "invalid state. An ephemeral id was never assigned to mutation " + mid.id
|
|
8842
|
+
);
|
|
8843
|
+
const entry = this.#outstandingMutations.get(ephemeralID);
|
|
8844
|
+
assert(entry && entry.mutationID === mid.id);
|
|
8845
|
+
this.#settleMutation(ephemeralID, entry, "reject", error);
|
|
8700
8846
|
}
|
|
8701
8847
|
#processMutationOk(result, mid) {
|
|
8702
8848
|
assert(
|
|
8703
8849
|
mid.clientID === this.#clientID,
|
|
8704
8850
|
"received mutation for the wrong client"
|
|
8705
8851
|
);
|
|
8706
|
-
const
|
|
8707
|
-
assert(
|
|
8708
|
-
|
|
8852
|
+
const ephemeralID = this.#ephemeralIDsByMutationID.get(mid.id);
|
|
8853
|
+
assert(
|
|
8854
|
+
ephemeralID,
|
|
8855
|
+
() => "invalid state. An ephemeral id was never assigned to mutation " + mid.id
|
|
8856
|
+
);
|
|
8857
|
+
const entry = this.#outstandingMutations.get(ephemeralID);
|
|
8858
|
+
assert(entry && entry.mutationID === mid.id);
|
|
8859
|
+
this.#settleMutation(ephemeralID, entry, "resolve", result);
|
|
8709
8860
|
}
|
|
8710
|
-
#settleMutation(
|
|
8861
|
+
#settleMutation(ephemeralID, entry, type, result) {
|
|
8711
8862
|
switch (type) {
|
|
8712
8863
|
case "resolve":
|
|
8713
8864
|
assert(!("error" in result));
|
|
@@ -8718,7 +8869,10 @@ var MutationTracker = class {
|
|
|
8718
8869
|
entry.resolver.reject(result);
|
|
8719
8870
|
break;
|
|
8720
8871
|
}
|
|
8721
|
-
const removed = this.#outstandingMutations.delete(
|
|
8872
|
+
const removed = this.#outstandingMutations.delete(ephemeralID);
|
|
8873
|
+
if (entry.mutationID) {
|
|
8874
|
+
this.#ephemeralIDsByMutationID.delete(entry.mutationID);
|
|
8875
|
+
}
|
|
8722
8876
|
if (removed && this.#outstandingMutations.size === 0) {
|
|
8723
8877
|
this.#notifyAllMutationsConfirmedListeners();
|
|
8724
8878
|
}
|
|
@@ -9386,12 +9540,14 @@ var ZeroRep = class {
|
|
|
9386
9540
|
#context;
|
|
9387
9541
|
#ivmMain;
|
|
9388
9542
|
#customMutatorsEnabled;
|
|
9543
|
+
#mutationTracker;
|
|
9389
9544
|
#store;
|
|
9390
9545
|
#auth;
|
|
9391
|
-
constructor(context, ivmMain, customMutatorsEnabled) {
|
|
9546
|
+
constructor(context, ivmMain, customMutatorsEnabled, mutationTracker) {
|
|
9392
9547
|
this.#context = context;
|
|
9393
9548
|
this.#ivmMain = ivmMain;
|
|
9394
9549
|
this.#customMutatorsEnabled = customMutatorsEnabled;
|
|
9550
|
+
this.#mutationTracker = mutationTracker;
|
|
9395
9551
|
}
|
|
9396
9552
|
set auth(auth) {
|
|
9397
9553
|
if (auth === "") {
|
|
@@ -9430,6 +9586,15 @@ var ZeroRep = class {
|
|
|
9430
9586
|
advance = (expectedHash, newHash, diffs) => {
|
|
9431
9587
|
this.#context.processChanges(expectedHash, newHash, diffs);
|
|
9432
9588
|
};
|
|
9589
|
+
trackMutation() {
|
|
9590
|
+
return this.#mutationTracker.trackMutation();
|
|
9591
|
+
}
|
|
9592
|
+
mutationIDAssigned(ephemeralID, mutationID) {
|
|
9593
|
+
this.#mutationTracker.mutationIDAssigned(ephemeralID, mutationID);
|
|
9594
|
+
}
|
|
9595
|
+
rejectMutation(ephemeralID, ex) {
|
|
9596
|
+
this.#mutationTracker.rejectMutation(ephemeralID, ex);
|
|
9597
|
+
}
|
|
9433
9598
|
};
|
|
9434
9599
|
|
|
9435
9600
|
// ../zero-client/src/client/zero.ts
|
|
@@ -9631,7 +9796,7 @@ var Zero = class {
|
|
|
9631
9796
|
);
|
|
9632
9797
|
}
|
|
9633
9798
|
const lc = new LogContext4(logOptions.logLevel, {}, logOptions.logSink);
|
|
9634
|
-
this.#mutationTracker = new MutationTracker();
|
|
9799
|
+
this.#mutationTracker = new MutationTracker(lc);
|
|
9635
9800
|
if (options.mutators) {
|
|
9636
9801
|
for (const [namespaceOrKey, mutatorOrMutators] of Object.entries(
|
|
9637
9802
|
options.mutators
|
|
@@ -9641,7 +9806,6 @@ var Zero = class {
|
|
|
9641
9806
|
assertUnique(key);
|
|
9642
9807
|
replicacheMutators[key] = makeReplicacheMutator(
|
|
9643
9808
|
lc,
|
|
9644
|
-
this.#mutationTracker,
|
|
9645
9809
|
mutatorOrMutators,
|
|
9646
9810
|
schema,
|
|
9647
9811
|
slowMaterializeThreshold
|
|
@@ -9659,7 +9823,6 @@ var Zero = class {
|
|
|
9659
9823
|
assertUnique(key);
|
|
9660
9824
|
replicacheMutators[key] = makeReplicacheMutator(
|
|
9661
9825
|
lc,
|
|
9662
|
-
this.#mutationTracker,
|
|
9663
9826
|
mutator,
|
|
9664
9827
|
schema,
|
|
9665
9828
|
slowMaterializeThreshold
|
|
@@ -9709,7 +9872,8 @@ var Zero = class {
|
|
|
9709
9872
|
zero: new ZeroRep(
|
|
9710
9873
|
this.#zeroContext,
|
|
9711
9874
|
this.#ivmMain,
|
|
9712
|
-
options.mutators !== void 0
|
|
9875
|
+
options.mutators !== void 0,
|
|
9876
|
+
this.#mutationTracker
|
|
9713
9877
|
)
|
|
9714
9878
|
};
|
|
9715
9879
|
const rep = new ReplicacheImpl(replicacheOptions, replicacheImplOptions);
|
|
@@ -9994,7 +10158,7 @@ var Zero = class {
|
|
|
9994
10158
|
return this.#deleteClientsManager.clientsDeletedOnServer(
|
|
9995
10159
|
downMessage[1]
|
|
9996
10160
|
);
|
|
9997
|
-
case "
|
|
10161
|
+
case "pushResponse":
|
|
9998
10162
|
return this.#mutationTracker.processPushResponse(downMessage[1]);
|
|
9999
10163
|
case "inspect":
|
|
10000
10164
|
break;
|
|
@@ -10679,7 +10843,7 @@ var Zero = class {
|
|
|
10679
10843
|
*/
|
|
10680
10844
|
async inspect() {
|
|
10681
10845
|
BUNDLE_SIZE: {
|
|
10682
|
-
const m = await import("./inspector-
|
|
10846
|
+
const m = await import("./inspector-RYBBQ63M.js");
|
|
10683
10847
|
return m.newInspector(this.#rep, this.#schema, () => this.#socket);
|
|
10684
10848
|
}
|
|
10685
10849
|
}
|
|
@@ -10798,4 +10962,4 @@ export {
|
|
|
10798
10962
|
escapeLike,
|
|
10799
10963
|
Zero
|
|
10800
10964
|
};
|
|
10801
|
-
//# sourceMappingURL=chunk-
|
|
10965
|
+
//# sourceMappingURL=chunk-CT4LRQ5P.js.map
|