@rocicorp/zero 0.24.2025091100 → 0.24.2025092400
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-analyze.js +7 -8
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/analyze-query/src/explain-queries.d.ts +1 -1
- package/out/analyze-query/src/explain-queries.d.ts.map +1 -1
- package/out/analyze-query/src/run-ast.d.ts +13 -23
- package/out/analyze-query/src/run-ast.d.ts.map +1 -1
- package/out/analyze-query/src/run-ast.js +25 -20
- package/out/analyze-query/src/run-ast.js.map +1 -1
- package/out/{chunk-V2KPKXLX.js → chunk-5JTC5G4I.js} +254 -156
- package/out/chunk-5JTC5G4I.js.map +7 -0
- package/out/chunk-ASRS2LFV.js +35 -0
- package/out/chunk-ASRS2LFV.js.map +7 -0
- package/out/{chunk-FH5Q72JS.js → chunk-OQGMEB3H.js} +3 -3
- package/out/{chunk-MLYQCVBG.js → chunk-QZPMFA73.js} +1465 -945
- package/out/chunk-QZPMFA73.js.map +7 -0
- package/out/{inspector-NC6TPMRA.js → lazy-inspector-TOTYUTBC.js} +298 -231
- package/out/lazy-inspector-TOTYUTBC.js.map +7 -0
- package/out/react-native.js +276 -278
- package/out/react-native.js.map +4 -4
- package/out/react.js +13 -25
- package/out/react.js.map +2 -2
- package/out/replicache/src/connection-loop.d.ts.map +1 -1
- package/out/replicache/src/deleted-clients.d.ts +17 -10
- package/out/replicache/src/deleted-clients.d.ts.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts +11 -0
- package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -0
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
- package/out/replicache/src/kv/mem-store.d.ts.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.d.ts +14 -0
- package/out/replicache/src/kv/op-sqlite/store.d.ts.map +1 -0
- package/out/replicache/src/kv/op-sqlite/types.d.ts +13 -0
- package/out/replicache/src/kv/op-sqlite/types.d.ts.map +1 -0
- package/out/replicache/src/kv/read-impl.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts +37 -63
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/throw-if-closed.d.ts +12 -0
- package/out/replicache/src/kv/throw-if-closed.d.ts.map +1 -0
- package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -1
- package/out/replicache/src/kv/write-impl.d.ts.map +1 -1
- package/out/replicache/src/persist/client-gc.d.ts.map +1 -1
- package/out/replicache/src/persist/client-group-gc.d.ts +2 -3
- package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -1
- package/out/replicache/src/persist/clients.d.ts +2 -1
- package/out/replicache/src/persist/clients.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
- package/out/replicache/src/process-scheduler.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/shared/src/sentinels.d.ts +2 -0
- package/out/shared/src/sentinels.d.ts.map +1 -1
- package/out/shared/src/sentinels.js +7 -0
- package/out/shared/src/sentinels.js.map +1 -0
- package/out/shared/src/valita.js +1 -1
- package/out/shared/src/valita.js.map +1 -1
- package/out/solid.js +4 -4
- package/out/zero/package.json +4 -4
- package/out/zero/src/zero-cache-dev.js +4 -0
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero-cache/src/config/network.d.ts.map +1 -1
- package/out/zero-cache/src/config/network.js +1 -2
- package/out/zero-cache/src/config/network.js.map +1 -1
- package/out/zero-cache/src/config/normalize.d.ts +1 -0
- package/out/zero-cache/src/config/normalize.d.ts.map +1 -1
- package/out/zero-cache/src/config/normalize.js +6 -0
- package/out/zero-cache/src/config/normalize.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +3 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +35 -1
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts +1 -0
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +1 -1
- package/out/zero-cache/src/server/anonymous-otel-start.js +18 -0
- package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +9 -0
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js +19 -0
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/reaper.d.ts.map +1 -1
- package/out/zero-cache/src/server/reaper.js +8 -0
- package/out/zero-cache/src/server/reaper.js.map +1 -1
- package/out/zero-cache/src/server/syncer.js +2 -2
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts +9 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +109 -39
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +3 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/heapz.d.ts +1 -1
- package/out/zero-cache/src/services/heapz.d.ts.map +1 -1
- package/out/zero-cache/src/services/heapz.js +2 -2
- package/out/zero-cache/src/services/heapz.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +36 -0
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +2 -2
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/statz.d.ts +1 -1
- package/out/zero-cache/src/services/statz.d.ts.map +1 -1
- package/out/zero-cache/src/services/statz.js +3 -3
- package/out/zero-cache/src/services/statz.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +16 -0
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +50 -0
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-schema.js +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js +21 -5
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +2 -3
- 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 +41 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.d.ts +2 -1
- package/out/zero-client/src/client/active-clients-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/delete-clients-manager.d.ts +3 -3
- package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/client-group.d.ts +12 -0
- package/out/zero-client/src/client/inspector/client-group.d.ts.map +1 -0
- package/out/zero-client/src/client/inspector/client.d.ts +15 -0
- package/out/zero-client/src/client/inspector/client.d.ts.map +1 -0
- package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts +5 -0
- package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -0
- package/out/zero-client/src/client/inspector/inspector.d.ts +14 -18
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +49 -0
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -0
- package/out/zero-client/src/client/inspector/query.d.ts +31 -0
- package/out/zero-client/src/client/inspector/query.d.ts.map +1 -0
- package/out/zero-client/src/client/options.d.ts +8 -4
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +6 -6
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +4 -1
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +22 -0
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -0
- package/out/zero-protocol/src/analyze-query-result.js +18 -0
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -0
- package/out/zero-protocol/src/ast.d.ts +2 -0
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +2 -0
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +20 -0
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +64 -0
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js +10 -1
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/inspect-up.d.ts +73 -10
- package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.js +20 -3
- 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 +4 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +19 -1
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react-native/src/mod.d.ts +2 -2
- package/out/zero-react-native/src/mod.d.ts.map +1 -1
- package/out/zero.js +4 -4
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +23 -11
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.d.ts +2 -5
- package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
- package/out/zql/src/builder/debug-delegate.js +1 -0
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/ivm/constraint.js +1 -1
- package/out/zql/src/ivm/constraint.js.map +1 -1
- package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-in.js +3 -92
- package/out/zql/src/ivm/fan-in.js.map +1 -1
- package/out/zql/src/ivm/fan-out.js +2 -2
- package/out/zql/src/ivm/fan-out.js.map +1 -1
- package/out/zql/src/ivm/flipped-join.d.ts +33 -0
- package/out/zql/src/ivm/flipped-join.d.ts.map +1 -0
- package/out/zql/src/ivm/flipped-join.js +341 -0
- package/out/zql/src/ivm/flipped-join.js.map +1 -0
- package/out/zql/src/ivm/join-utils.d.ts +14 -0
- package/out/zql/src/ivm/join-utils.d.ts.map +1 -0
- package/out/zql/src/ivm/join-utils.js +94 -0
- package/out/zql/src/ivm/join-utils.js.map +1 -0
- package/out/zql/src/ivm/join.d.ts +1 -1
- package/out/zql/src/ivm/join.d.ts.map +1 -1
- package/out/zql/src/ivm/join.js +3 -101
- package/out/zql/src/ivm/join.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +15 -4
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/push-accumulated.d.ts +88 -0
- package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -0
- package/out/zql/src/ivm/push-accumulated.js +326 -0
- package/out/zql/src/ivm/push-accumulated.js.map +1 -0
- package/out/zql/src/query/expression.d.ts +3 -3
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js +1 -1
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +3 -4
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +12 -5
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +6 -3
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/query.js.map +1 -1
- package/out/zqlite/src/db.d.ts +1 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +3 -3
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +0 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +4 -5
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +4 -4
- package/out/chunk-MKB4RXL3.js +0 -15
- package/out/chunk-MKB4RXL3.js.map +0 -7
- package/out/chunk-MLYQCVBG.js.map +0 -7
- package/out/chunk-V2KPKXLX.js.map +0 -7
- package/out/inspector-NC6TPMRA.js.map +0 -7
- package/out/replicache/src/expo/store.d.ts +0 -4
- package/out/replicache/src/expo/store.d.ts.map +0 -1
- package/out/zero-client/src/client/inspector/types.d.ts +0 -50
- package/out/zero-client/src/client/inspector/types.d.ts.map +0 -1
- /package/out/{chunk-FH5Q72JS.js.map → chunk-OQGMEB3H.js.map} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
maybeTransactionIsClosedRejection,
|
|
3
|
+
storeIsClosedRejection,
|
|
4
|
+
throwIfStoreClosed,
|
|
5
|
+
transactionIsClosedRejection
|
|
6
|
+
} from "./chunk-ASRS2LFV.js";
|
|
6
7
|
import {
|
|
7
8
|
BTreeRead,
|
|
8
9
|
Chunk,
|
|
@@ -13,6 +14,7 @@ import {
|
|
|
13
14
|
DiffsMap,
|
|
14
15
|
ENTITIES_KEY_PREFIX,
|
|
15
16
|
GOT_QUERIES_KEY_PREFIX,
|
|
17
|
+
Inspector,
|
|
16
18
|
Latest,
|
|
17
19
|
MUTATIONS_KEY_PREFIX,
|
|
18
20
|
TDigest,
|
|
@@ -57,7 +59,9 @@ import {
|
|
|
57
59
|
diff2,
|
|
58
60
|
diffCommits,
|
|
59
61
|
disableClientGroup,
|
|
62
|
+
emptyFunction,
|
|
60
63
|
emptyHash,
|
|
64
|
+
emptyObject,
|
|
61
65
|
encodeIndexScanKey,
|
|
62
66
|
filterPush,
|
|
63
67
|
getClientGroup,
|
|
@@ -128,7 +132,7 @@ import {
|
|
|
128
132
|
withWrite,
|
|
129
133
|
withWriteNoImplicitCommit,
|
|
130
134
|
wrapIterable
|
|
131
|
-
} from "./chunk-
|
|
135
|
+
} from "./chunk-QZPMFA73.js";
|
|
132
136
|
import {
|
|
133
137
|
assert,
|
|
134
138
|
assertArray,
|
|
@@ -329,6 +333,14 @@ function mustGetBrowserGlobal(name) {
|
|
|
329
333
|
return r;
|
|
330
334
|
}
|
|
331
335
|
|
|
336
|
+
// ../shared/src/resolved-promises.ts
|
|
337
|
+
var promiseTrue = Promise.resolve(true);
|
|
338
|
+
var promiseFalse = Promise.resolve(false);
|
|
339
|
+
var promiseUndefined = Promise.resolve(void 0);
|
|
340
|
+
var promiseVoid = Promise.resolve();
|
|
341
|
+
var promiseNever = new Promise(() => {
|
|
342
|
+
});
|
|
343
|
+
|
|
332
344
|
// ../replicache/src/kv/write-impl-base.ts
|
|
333
345
|
var deleteSentinel = Symbol();
|
|
334
346
|
var WriteImplBase = class {
|
|
@@ -338,6 +350,9 @@ var WriteImplBase = class {
|
|
|
338
350
|
this.#read = read;
|
|
339
351
|
}
|
|
340
352
|
has(key) {
|
|
353
|
+
if (this.#read.closed) {
|
|
354
|
+
return transactionIsClosedRejection();
|
|
355
|
+
}
|
|
341
356
|
switch (this._pending.get(key)) {
|
|
342
357
|
case void 0:
|
|
343
358
|
return this.#read.has(key);
|
|
@@ -348,6 +363,9 @@ var WriteImplBase = class {
|
|
|
348
363
|
}
|
|
349
364
|
}
|
|
350
365
|
async get(key) {
|
|
366
|
+
if (this.#read.closed) {
|
|
367
|
+
return transactionIsClosedRejection();
|
|
368
|
+
}
|
|
351
369
|
const v = this._pending.get(key);
|
|
352
370
|
switch (v) {
|
|
353
371
|
case deleteSentinel:
|
|
@@ -361,12 +379,10 @@ var WriteImplBase = class {
|
|
|
361
379
|
}
|
|
362
380
|
}
|
|
363
381
|
put(key, value) {
|
|
364
|
-
this._pending.set(key, deepFreeze(value));
|
|
365
|
-
return promiseVoid;
|
|
382
|
+
return maybeTransactionIsClosedRejection(this.#read) ?? (this._pending.set(key, deepFreeze(value)), promiseVoid);
|
|
366
383
|
}
|
|
367
384
|
del(key) {
|
|
368
|
-
this._pending.set(key, deleteSentinel);
|
|
369
|
-
return promiseVoid;
|
|
385
|
+
return maybeTransactionIsClosedRejection(this.#read) ?? (this._pending.set(key, deleteSentinel), promiseVoid);
|
|
370
386
|
}
|
|
371
387
|
release() {
|
|
372
388
|
this.#read.release();
|
|
@@ -387,9 +403,15 @@ var IDBStore = class {
|
|
|
387
403
|
this.#db = openDatabase(name);
|
|
388
404
|
}
|
|
389
405
|
read() {
|
|
406
|
+
if (this.#closed) {
|
|
407
|
+
return storeIsClosedRejection();
|
|
408
|
+
}
|
|
390
409
|
return this.#withReopen(readImpl);
|
|
391
410
|
}
|
|
392
411
|
write() {
|
|
412
|
+
if (this.#closed) {
|
|
413
|
+
return storeIsClosedRejection();
|
|
414
|
+
}
|
|
393
415
|
return this.#withReopen(writeImpl);
|
|
394
416
|
}
|
|
395
417
|
async close() {
|
|
@@ -451,6 +473,9 @@ var ReadImpl = class {
|
|
|
451
473
|
this.#tx = tx;
|
|
452
474
|
}
|
|
453
475
|
has(key) {
|
|
476
|
+
if (this.#closed) {
|
|
477
|
+
return transactionIsClosedRejection();
|
|
478
|
+
}
|
|
454
479
|
return new Promise((resolve, reject) => {
|
|
455
480
|
const req = objectStore(this.#tx).count(key);
|
|
456
481
|
req.onsuccess = () => resolve(req.result > 0);
|
|
@@ -458,6 +483,9 @@ var ReadImpl = class {
|
|
|
458
483
|
});
|
|
459
484
|
}
|
|
460
485
|
get(key) {
|
|
486
|
+
if (this.#closed) {
|
|
487
|
+
return transactionIsClosedRejection();
|
|
488
|
+
}
|
|
461
489
|
return new Promise((resolve, reject) => {
|
|
462
490
|
const req = objectStore(this.#tx).get(key);
|
|
463
491
|
req.onsuccess = () => resolve(deepFreezeAllowUndefined(req.result));
|
|
@@ -479,6 +507,9 @@ var WriteImpl = class extends WriteImplBase {
|
|
|
479
507
|
this.#tx = tx;
|
|
480
508
|
}
|
|
481
509
|
commit() {
|
|
510
|
+
if (this.#closed) {
|
|
511
|
+
return transactionIsClosedRejection();
|
|
512
|
+
}
|
|
482
513
|
if (this._pending.size === 0) {
|
|
483
514
|
return promiseVoid;
|
|
484
515
|
}
|
|
@@ -498,6 +529,7 @@ var WriteImpl = class extends WriteImplBase {
|
|
|
498
529
|
}
|
|
499
530
|
release() {
|
|
500
531
|
this.#closed = true;
|
|
532
|
+
super.release();
|
|
501
533
|
}
|
|
502
534
|
get closed() {
|
|
503
535
|
return this.#closed;
|
|
@@ -550,7 +582,7 @@ var AbortError = class extends Error {
|
|
|
550
582
|
// ../shared/src/sleep.ts
|
|
551
583
|
import { resolver as resolver2 } from "@rocicorp/resolver";
|
|
552
584
|
var promiseVoid2 = Promise.resolve();
|
|
553
|
-
var
|
|
585
|
+
var promiseNever2 = new Promise(() => void 0);
|
|
554
586
|
function sleep(ms, signal) {
|
|
555
587
|
const newAbortError = () => new AbortError("Aborted");
|
|
556
588
|
if (signal?.aborted) {
|
|
@@ -576,7 +608,7 @@ function sleep(ms, signal) {
|
|
|
576
608
|
}
|
|
577
609
|
function sleepWithAbort(ms, signal) {
|
|
578
610
|
if (ms === 0) {
|
|
579
|
-
return [promiseVoid2,
|
|
611
|
+
return [promiseVoid2, promiseNever2];
|
|
580
612
|
}
|
|
581
613
|
const { promise: abortedPromise, resolve: abortedResolve } = resolver2();
|
|
582
614
|
const sleepPromise = new Promise((resolve) => {
|
|
@@ -927,17 +959,46 @@ var WriteImpl2 = class extends ReadImpl2 {
|
|
|
927
959
|
};
|
|
928
960
|
|
|
929
961
|
// ../replicache/src/deleted-clients.ts
|
|
930
|
-
var DELETED_CLIENTS_HEAD_NAME = "deleted-clients";
|
|
931
|
-
var deletedClientsSchema =
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
962
|
+
var DELETED_CLIENTS_HEAD_NAME = "deleted-clients-v2";
|
|
963
|
+
var deletedClientsSchema = readonlyArray(
|
|
964
|
+
readonlyObject({
|
|
965
|
+
clientGroupID: clientGroupIDSchema,
|
|
966
|
+
clientID: clientIDSchema
|
|
967
|
+
})
|
|
968
|
+
);
|
|
969
|
+
function compare(a, b) {
|
|
970
|
+
const cg = stringCompare(a.clientGroupID, b.clientGroupID);
|
|
971
|
+
if (cg !== 0) {
|
|
972
|
+
return cg;
|
|
973
|
+
}
|
|
974
|
+
return stringCompare(a.clientID, b.clientID);
|
|
975
|
+
}
|
|
976
|
+
function normalizeDeletedClients(deletedClients) {
|
|
977
|
+
return [...deletedClients].sort(compare).filter(
|
|
978
|
+
(item, index) => index === 0 || compare(item, [...deletedClients].sort(compare)[index - 1]) !== 0
|
|
979
|
+
);
|
|
980
|
+
}
|
|
981
|
+
function mergeDeletedClients(a, b) {
|
|
982
|
+
const merged = [];
|
|
983
|
+
a = normalizeDeletedClients(a);
|
|
984
|
+
b = normalizeDeletedClients(b);
|
|
985
|
+
for (let i = 0, j = 0; i < a.length || j < b.length; ) {
|
|
986
|
+
if (i < a.length && (j >= b.length || compare(a[i], b[j]) < 0)) {
|
|
987
|
+
merged.push(a[i]);
|
|
988
|
+
i++;
|
|
989
|
+
} else if (j < b.length && (i >= a.length || compare(b[j], a[i]) < 0)) {
|
|
990
|
+
merged.push(b[j]);
|
|
991
|
+
j++;
|
|
992
|
+
} else {
|
|
993
|
+
merged.push(a[i]);
|
|
994
|
+
i++;
|
|
995
|
+
j++;
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
return merged;
|
|
999
|
+
}
|
|
1000
|
+
async function setDeletedClients(dagWrite, deletedClients) {
|
|
1001
|
+
const data = normalizeDeletedClients(deletedClients);
|
|
941
1002
|
const chunkData = deepFreeze(data);
|
|
942
1003
|
const chunk = dagWrite.createChunk(chunkData, []);
|
|
943
1004
|
await dagWrite.putChunk(chunk);
|
|
@@ -947,35 +1008,44 @@ async function setDeletedClients(dagWrite, clientIDs, clientGroupIDs) {
|
|
|
947
1008
|
async function getDeletedClients(dagRead) {
|
|
948
1009
|
const hash = await dagRead.getHead(DELETED_CLIENTS_HEAD_NAME);
|
|
949
1010
|
if (hash === void 0) {
|
|
950
|
-
return
|
|
1011
|
+
return [];
|
|
951
1012
|
}
|
|
952
1013
|
const chunk = await dagRead.mustGetChunk(hash);
|
|
953
|
-
const res = test(chunk.data,
|
|
954
|
-
if (res.ok) {
|
|
955
|
-
return
|
|
1014
|
+
const res = test(chunk.data, deletedClientsSchema);
|
|
1015
|
+
if (!res.ok) {
|
|
1016
|
+
return [];
|
|
956
1017
|
}
|
|
957
|
-
return
|
|
1018
|
+
return res.value;
|
|
958
1019
|
}
|
|
959
|
-
async function addDeletedClients(dagWrite,
|
|
960
|
-
const
|
|
1020
|
+
async function addDeletedClients(dagWrite, deletedClientsToAdd) {
|
|
1021
|
+
const oldDeletedClients = await getDeletedClients(dagWrite);
|
|
961
1022
|
return setDeletedClients(
|
|
962
1023
|
dagWrite,
|
|
963
|
-
|
|
964
|
-
[...oldClientGroupIDs, ...clientGroupIDs]
|
|
1024
|
+
mergeDeletedClients(oldDeletedClients, deletedClientsToAdd)
|
|
965
1025
|
);
|
|
966
1026
|
}
|
|
967
|
-
async function
|
|
968
|
-
const
|
|
969
|
-
const
|
|
970
|
-
|
|
971
|
-
);
|
|
972
|
-
const
|
|
973
|
-
|
|
1027
|
+
async function confirmDeletedClients(dagWrite, deletedClientIds, deletedClientGroupIds) {
|
|
1028
|
+
const deletedClientIDSet = new Set(deletedClientIds);
|
|
1029
|
+
const deletedClientGroupIDSet = new Set(deletedClientGroupIds);
|
|
1030
|
+
const oldDeletedClients = await getDeletedClients(dagWrite);
|
|
1031
|
+
const clients = new Map(await getClients(dagWrite));
|
|
1032
|
+
for (const clientID of deletedClientIds) {
|
|
1033
|
+
clients.delete(clientID);
|
|
1034
|
+
}
|
|
1035
|
+
for (const clientGroupID of deletedClientGroupIds) {
|
|
1036
|
+
for (const [clientID, client] of clients) {
|
|
1037
|
+
if (client.clientGroupID === clientGroupID) {
|
|
1038
|
+
clients.delete(clientID);
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
await setClients(clients, dagWrite);
|
|
1043
|
+
return setDeletedClients(
|
|
1044
|
+
dagWrite,
|
|
1045
|
+
oldDeletedClients.filter(
|
|
1046
|
+
({ clientGroupID, clientID }) => !deletedClientGroupIDSet.has(clientGroupID) && !deletedClientIDSet.has(clientID)
|
|
1047
|
+
)
|
|
974
1048
|
);
|
|
975
|
-
return setDeletedClients(dagWrite, newDeletedClients, newDeletedClientGroups);
|
|
976
|
-
}
|
|
977
|
-
function normalize(arr) {
|
|
978
|
-
return [...new Set(arr)].sort();
|
|
979
1049
|
}
|
|
980
1050
|
|
|
981
1051
|
// ../shared/src/navigator.ts
|
|
@@ -1001,10 +1071,10 @@ var ReadImpl3 = class {
|
|
|
1001
1071
|
return this.#closed;
|
|
1002
1072
|
}
|
|
1003
1073
|
has(key) {
|
|
1004
|
-
return Promise.resolve(this.#map.has(key));
|
|
1074
|
+
return maybeTransactionIsClosedRejection(this) ?? Promise.resolve(this.#map.has(key));
|
|
1005
1075
|
}
|
|
1006
1076
|
get(key) {
|
|
1007
|
-
return Promise.resolve(this.#map.get(key));
|
|
1077
|
+
return maybeTransactionIsClosedRejection(this) ?? Promise.resolve(this.#map.get(key));
|
|
1008
1078
|
}
|
|
1009
1079
|
};
|
|
1010
1080
|
|
|
@@ -1016,6 +1086,9 @@ var WriteImpl3 = class extends WriteImplBase {
|
|
|
1016
1086
|
this.#map = map;
|
|
1017
1087
|
}
|
|
1018
1088
|
commit() {
|
|
1089
|
+
if (this.closed) {
|
|
1090
|
+
return transactionIsClosedRejection();
|
|
1091
|
+
}
|
|
1019
1092
|
this._pending.forEach((value, key) => {
|
|
1020
1093
|
if (value === deleteSentinel) {
|
|
1021
1094
|
this.#map.delete(key);
|
|
@@ -1054,10 +1127,12 @@ var MemStore = class {
|
|
|
1054
1127
|
this.#map = map;
|
|
1055
1128
|
}
|
|
1056
1129
|
async read() {
|
|
1130
|
+
throwIfStoreClosed(this);
|
|
1057
1131
|
const release = await this.#rwLock.read();
|
|
1058
1132
|
return new ReadImpl3(this.#map, release);
|
|
1059
1133
|
}
|
|
1060
1134
|
async write() {
|
|
1135
|
+
throwIfStoreClosed(this);
|
|
1061
1136
|
const release = await this.#rwLock.write();
|
|
1062
1137
|
return new WriteImpl3(this.#map, release);
|
|
1063
1138
|
}
|
|
@@ -1312,16 +1387,11 @@ async function collectIDBDatabases(idbDatabasesStore, now, maxAge, kvDropStore,
|
|
|
1312
1387
|
);
|
|
1313
1388
|
const dbNamesToRemove = [];
|
|
1314
1389
|
const dbNamesToKeep = [];
|
|
1315
|
-
const
|
|
1316
|
-
const
|
|
1317
|
-
for (const [
|
|
1318
|
-
dbName,
|
|
1319
|
-
[canCollect, clientIDs, clientGroupIDs]
|
|
1320
|
-
] of collectResults) {
|
|
1390
|
+
const deletedClientsToRemove = [];
|
|
1391
|
+
for (const [dbName, [canCollect, deletedClients]] of collectResults) {
|
|
1321
1392
|
if (canCollect) {
|
|
1322
1393
|
dbNamesToRemove.push(dbName);
|
|
1323
|
-
|
|
1324
|
-
clientGroupIDsToRemove.push(...clientGroupIDs);
|
|
1394
|
+
deletedClientsToRemove.push(...deletedClients);
|
|
1325
1395
|
} else {
|
|
1326
1396
|
dbNamesToKeep.push(dbName);
|
|
1327
1397
|
}
|
|
@@ -1334,24 +1404,22 @@ async function collectIDBDatabases(idbDatabasesStore, now, maxAge, kvDropStore,
|
|
|
1334
1404
|
if (errors.length) {
|
|
1335
1405
|
throw errors[0];
|
|
1336
1406
|
}
|
|
1337
|
-
if (
|
|
1338
|
-
|
|
1339
|
-
const newClientGroupIDsToRemove = clientGroupIDsToRemove;
|
|
1407
|
+
if (deletedClientsToRemove.length > 0) {
|
|
1408
|
+
let allDeletedClients = deletedClientsToRemove;
|
|
1340
1409
|
for (const name of dbNamesToKeep) {
|
|
1341
1410
|
await withWrite(newDagStore(name), async (dagWrite) => {
|
|
1342
|
-
const
|
|
1411
|
+
const newDeletedClients = await addDeletedClients(
|
|
1343
1412
|
dagWrite,
|
|
1344
|
-
|
|
1345
|
-
|
|
1413
|
+
deletedClientsToRemove
|
|
1414
|
+
);
|
|
1415
|
+
allDeletedClients = mergeDeletedClients(
|
|
1416
|
+
allDeletedClients,
|
|
1417
|
+
newDeletedClients
|
|
1346
1418
|
);
|
|
1347
|
-
newClientIDsToRemove.push(...clientIDs);
|
|
1348
|
-
newClientGroupIDsToRemove.push(...clientGroupIDs);
|
|
1349
1419
|
});
|
|
1350
1420
|
}
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
normalize(newClientGroupIDsToRemove)
|
|
1354
|
-
);
|
|
1421
|
+
const normalizedDeletedClients = normalizeDeletedClients(allDeletedClients);
|
|
1422
|
+
await onClientsDeleted(normalizedDeletedClients);
|
|
1355
1423
|
}
|
|
1356
1424
|
}
|
|
1357
1425
|
async function dropDatabaseInternal(name, idbDatabasesStore, kvDropStore) {
|
|
@@ -1428,14 +1496,15 @@ function canDatabaseBeCollectedAndGetDeletedClientIDs(enableMutationRecovery, pe
|
|
|
1428
1496
|
}
|
|
1429
1497
|
}
|
|
1430
1498
|
const clients = await getClients(read);
|
|
1431
|
-
const
|
|
1432
|
-
const
|
|
1433
|
-
const newClientGroupIDs = [...clientGroupIDs];
|
|
1499
|
+
const existingDeletedClients = await getDeletedClients(read);
|
|
1500
|
+
const deletedClients = [...existingDeletedClients];
|
|
1434
1501
|
for (const [clientID, client] of clients) {
|
|
1435
|
-
|
|
1436
|
-
|
|
1502
|
+
deletedClients.push({
|
|
1503
|
+
clientID,
|
|
1504
|
+
clientGroupID: client.clientGroupID
|
|
1505
|
+
});
|
|
1437
1506
|
}
|
|
1438
|
-
return [true,
|
|
1507
|
+
return [true, deletedClients];
|
|
1439
1508
|
});
|
|
1440
1509
|
}
|
|
1441
1510
|
|
|
@@ -1554,7 +1623,7 @@ function table(name) {
|
|
|
1554
1623
|
primaryKey: []
|
|
1555
1624
|
});
|
|
1556
1625
|
}
|
|
1557
|
-
function
|
|
1626
|
+
function string2() {
|
|
1558
1627
|
return new ColumnBuilder({
|
|
1559
1628
|
type: "string",
|
|
1560
1629
|
optional: false,
|
|
@@ -2058,7 +2127,7 @@ var ConnectionLoop = class {
|
|
|
2058
2127
|
}
|
|
2059
2128
|
}
|
|
2060
2129
|
counter++;
|
|
2061
|
-
(async () => {
|
|
2130
|
+
void (async () => {
|
|
2062
2131
|
const start = Date.now();
|
|
2063
2132
|
let ok;
|
|
2064
2133
|
let error;
|
|
@@ -3702,20 +3771,21 @@ function gcClients(clientID, dagStore, clientMaxInactiveTime, onClientsDeleted)
|
|
|
3702
3771
|
if (id === clientID || now - client.heartbeatTimestampMs <= clientMaxInactiveTime) {
|
|
3703
3772
|
newClients.set(id, client);
|
|
3704
3773
|
} else {
|
|
3705
|
-
deletedClients.push(
|
|
3774
|
+
deletedClients.push({
|
|
3775
|
+
clientGroupID: client.clientGroupID,
|
|
3776
|
+
clientID: id
|
|
3777
|
+
});
|
|
3706
3778
|
}
|
|
3707
3779
|
}
|
|
3708
3780
|
if (newClients.size === clients.size) {
|
|
3709
3781
|
return clients;
|
|
3710
3782
|
}
|
|
3711
3783
|
await setClients(newClients, dagWrite);
|
|
3712
|
-
const
|
|
3784
|
+
const normalizedDeletedClients = await addDeletedClients(
|
|
3713
3785
|
dagWrite,
|
|
3714
|
-
deletedClients
|
|
3715
|
-
// gcClients does not delete client groups
|
|
3716
|
-
[]
|
|
3786
|
+
deletedClients
|
|
3717
3787
|
);
|
|
3718
|
-
onClientsDeleted(
|
|
3788
|
+
await onClientsDeleted(normalizedDeletedClients);
|
|
3719
3789
|
return newClients;
|
|
3720
3790
|
});
|
|
3721
3791
|
}
|
|
@@ -3723,15 +3793,11 @@ function gcClients(clientID, dagStore, clientMaxInactiveTime, onClientsDeleted)
|
|
|
3723
3793
|
// ../replicache/src/persist/client-group-gc.ts
|
|
3724
3794
|
var GC_INTERVAL_MS = 5 * 60 * 1e3;
|
|
3725
3795
|
var latestGCUpdate2;
|
|
3726
|
-
function initClientGroupGC(dagStore, enableMutationRecovery,
|
|
3796
|
+
function initClientGroupGC(dagStore, enableMutationRecovery, lc, signal) {
|
|
3727
3797
|
initBgIntervalProcess(
|
|
3728
3798
|
"ClientGroupGC",
|
|
3729
3799
|
() => {
|
|
3730
|
-
latestGCUpdate2 = gcClientGroups(
|
|
3731
|
-
dagStore,
|
|
3732
|
-
enableMutationRecovery,
|
|
3733
|
-
onClientsDeleted
|
|
3734
|
-
);
|
|
3800
|
+
latestGCUpdate2 = gcClientGroups(dagStore, enableMutationRecovery);
|
|
3735
3801
|
return latestGCUpdate2;
|
|
3736
3802
|
},
|
|
3737
3803
|
() => GC_INTERVAL_MS,
|
|
@@ -3739,7 +3805,7 @@ function initClientGroupGC(dagStore, enableMutationRecovery, onClientsDeleted, l
|
|
|
3739
3805
|
signal
|
|
3740
3806
|
);
|
|
3741
3807
|
}
|
|
3742
|
-
function gcClientGroups(dagStore, enableMutationRecovery
|
|
3808
|
+
function gcClientGroups(dagStore, enableMutationRecovery) {
|
|
3743
3809
|
return withWrite(dagStore, async (tx) => {
|
|
3744
3810
|
const clients = await getClients(tx);
|
|
3745
3811
|
const clientGroupIDs = /* @__PURE__ */ new Set();
|
|
@@ -3756,7 +3822,6 @@ function gcClientGroups(dagStore, enableMutationRecovery, onClientsDeleted) {
|
|
|
3756
3822
|
}
|
|
3757
3823
|
}
|
|
3758
3824
|
await setClientGroups(clientGroups, tx);
|
|
3759
|
-
onClientsDeleted([], [...removeClientGroups].sort());
|
|
3760
3825
|
return clientGroups;
|
|
3761
3826
|
});
|
|
3762
3827
|
}
|
|
@@ -4262,7 +4327,9 @@ var ProcessScheduler = class {
|
|
|
4262
4327
|
#requestIdle;
|
|
4263
4328
|
#scheduledResolver = void 0;
|
|
4264
4329
|
#runResolver = void 0;
|
|
4330
|
+
// eslint-disable-next-line no-unused-private-class-members -- False positive, this is used in #run
|
|
4265
4331
|
#runPromise = Promise.resolve();
|
|
4332
|
+
// eslint-disable-next-line no-unused-private-class-members -- False positive, this is used in #run
|
|
4266
4333
|
#throttlePromise = Promise.resolve();
|
|
4267
4334
|
/**
|
|
4268
4335
|
* Supports scheduling a `process` to be run with certain constraints.
|
|
@@ -4309,7 +4376,7 @@ var ProcessScheduler = class {
|
|
|
4309
4376
|
async #scheduleInternal() {
|
|
4310
4377
|
try {
|
|
4311
4378
|
await this.#runPromise;
|
|
4312
|
-
} catch (
|
|
4379
|
+
} catch (_e) {
|
|
4313
4380
|
}
|
|
4314
4381
|
await this.#throttlePromise;
|
|
4315
4382
|
if (!this.#scheduledResolver) {
|
|
@@ -4922,8 +4989,7 @@ var ReplicacheImpl = class {
|
|
|
4922
4989
|
enableScheduledRefresh = true,
|
|
4923
4990
|
enablePullAndPushInOpen = true,
|
|
4924
4991
|
enableClientGroupForking = true,
|
|
4925
|
-
onClientsDeleted = () =>
|
|
4926
|
-
}
|
|
4992
|
+
onClientsDeleted = () => promiseVoid
|
|
4927
4993
|
} = implOptions;
|
|
4928
4994
|
this.#zero = implOptions.zero;
|
|
4929
4995
|
this.#auth = auth ?? "";
|
|
@@ -5068,13 +5134,7 @@ var ReplicacheImpl = class {
|
|
|
5068
5134
|
this.#lc,
|
|
5069
5135
|
signal
|
|
5070
5136
|
);
|
|
5071
|
-
initClientGroupGC(
|
|
5072
|
-
this.perdag,
|
|
5073
|
-
enableMutationRecovery,
|
|
5074
|
-
onClientsDeleted,
|
|
5075
|
-
this.#lc,
|
|
5076
|
-
signal
|
|
5077
|
-
);
|
|
5137
|
+
initClientGroupGC(this.perdag, enableMutationRecovery, this.#lc, signal);
|
|
5078
5138
|
initNewClientChannel(
|
|
5079
5139
|
this.name,
|
|
5080
5140
|
this.idbName,
|
|
@@ -5655,7 +5715,7 @@ var ReplicacheImpl = class {
|
|
|
5655
5715
|
const counter = this.#pushCounter + this.#pullCounter;
|
|
5656
5716
|
if (delta === 1 && counter === 1 || counter === 0) {
|
|
5657
5717
|
const syncing = counter > 0;
|
|
5658
|
-
Promise.resolve().then(() => this.onSync?.(syncing));
|
|
5718
|
+
void Promise.resolve().then(() => this.onSync?.(syncing));
|
|
5659
5719
|
}
|
|
5660
5720
|
}
|
|
5661
5721
|
/**
|
|
@@ -5757,6 +5817,7 @@ var ReplicacheImpl = class {
|
|
|
5757
5817
|
return {
|
|
5758
5818
|
client: result,
|
|
5759
5819
|
server: trackingData.serverPromise,
|
|
5820
|
+
// eslint-disable-next-line no-thenable
|
|
5760
5821
|
then: (onFulfilled, onRejected) => {
|
|
5761
5822
|
this.#lc.warn?.(
|
|
5762
5823
|
"Awaiting the mutator result directly is being deprecated. Please use `await z.mutate[mutatorName].client` or `await result.mutate[mutatorName].server`"
|
|
@@ -6364,7 +6425,7 @@ var downstreamSchema = valita_exports.union(
|
|
|
6364
6425
|
);
|
|
6365
6426
|
|
|
6366
6427
|
// ../zero-protocol/src/protocol-version.ts
|
|
6367
|
-
var PROTOCOL_VERSION =
|
|
6428
|
+
var PROTOCOL_VERSION = 33;
|
|
6368
6429
|
var MIN_SERVER_SUPPORTED_SYNC_PROTOCOL = 18;
|
|
6369
6430
|
assert(MIN_SERVER_SUPPORTED_SYNC_PROTOCOL < PROTOCOL_VERSION);
|
|
6370
6431
|
|
|
@@ -6591,7 +6652,7 @@ var ActiveClientsManager = class _ActiveClientsManager {
|
|
|
6591
6652
|
}
|
|
6592
6653
|
#removeClient(clientID) {
|
|
6593
6654
|
if (this.#activeClients.delete(clientID)) {
|
|
6594
|
-
this.onDelete?.(clientID);
|
|
6655
|
+
this.onDelete?.(clientID, this.clientGroupID);
|
|
6595
6656
|
}
|
|
6596
6657
|
}
|
|
6597
6658
|
};
|
|
@@ -7247,7 +7308,7 @@ function constraintMatchesPrimaryKey(constraint, primary) {
|
|
|
7247
7308
|
}
|
|
7248
7309
|
constraintKeys.sort(stringCompare);
|
|
7249
7310
|
for (let i = 0; i < constraintKeys.length; i++) {
|
|
7250
|
-
if (constraintKeys[i]
|
|
7311
|
+
if (constraintKeys[i] !== primary[i]) {
|
|
7251
7312
|
return false;
|
|
7252
7313
|
}
|
|
7253
7314
|
}
|
|
@@ -7417,7 +7478,8 @@ var MemorySource = class _MemorySource {
|
|
|
7417
7478
|
const callingConnectionIndex = this.#connections.indexOf(from);
|
|
7418
7479
|
assert(callingConnectionIndex !== -1, "Output not found");
|
|
7419
7480
|
const conn = this.#connections[callingConnectionIndex];
|
|
7420
|
-
const { sort: requestedSort } = conn;
|
|
7481
|
+
const { sort: requestedSort, compareRows } = conn;
|
|
7482
|
+
const connectionComparator = (r1, r2) => compareRows(r1, r2) * (req.reverse ? -1 : 1);
|
|
7421
7483
|
const pkConstraint = primaryKeyConstraintFromFilters(
|
|
7422
7484
|
conn.filters?.condition,
|
|
7423
7485
|
this.#primaryKey
|
|
@@ -7433,8 +7495,8 @@ var MemorySource = class _MemorySource {
|
|
|
7433
7495
|
indexSort.push(...requestedSort);
|
|
7434
7496
|
}
|
|
7435
7497
|
const index = this.#getOrCreateIndex(indexSort, from);
|
|
7436
|
-
const { data, comparator:
|
|
7437
|
-
const
|
|
7498
|
+
const { data, comparator: compare2 } = index;
|
|
7499
|
+
const indexComparator = (r1, r2) => compare2(r1, r2) * (req.reverse ? -1 : 1);
|
|
7438
7500
|
const startAt = req.start?.row;
|
|
7439
7501
|
let scanStart;
|
|
7440
7502
|
if (fetchOrPkConstraint) {
|
|
@@ -7464,11 +7526,20 @@ var MemorySource = class _MemorySource {
|
|
|
7464
7526
|
this.#overlay,
|
|
7465
7527
|
this.#splitEditOverlay,
|
|
7466
7528
|
callingConnectionIndex,
|
|
7467
|
-
|
|
7529
|
+
// Use indexComparator, generateWithOverlayInner has a subtle dependency
|
|
7530
|
+
// on this. Since generateWithConstraint is done after
|
|
7531
|
+
// generateWithOverlay, the generator consumed by generateWithOverlayInner
|
|
7532
|
+
// does not end when the constraint stops matching and so the final
|
|
7533
|
+
// check to yield an add overlay if not yet yielded is not reached.
|
|
7534
|
+
// However, using the indexComparator the add overlay will be less than
|
|
7535
|
+
// the first row that does not match the constraint, and so any
|
|
7536
|
+
// not yet yielded add overlay will be yielded when the first row
|
|
7537
|
+
// not matching the constraint is reached.
|
|
7538
|
+
indexComparator,
|
|
7468
7539
|
conn.filters?.predicate
|
|
7469
7540
|
);
|
|
7470
7541
|
const withConstraint = generateWithConstraint(
|
|
7471
|
-
generateWithStart(withOverlay, req.start,
|
|
7542
|
+
generateWithStart(withOverlay, req.start, connectionComparator),
|
|
7472
7543
|
// we use `req.constraint` and not `fetchOrPkConstraint` here because we need to
|
|
7473
7544
|
// AND the constraint with what could have been the primary key constraint
|
|
7474
7545
|
req.constraint
|
|
@@ -7634,7 +7705,7 @@ function* genPush(change, exists, connections, setOverlay, setSplitEditOverlay)
|
|
|
7634
7705
|
}
|
|
7635
7706
|
setOverlay(void 0);
|
|
7636
7707
|
}
|
|
7637
|
-
function* generateWithStart(nodes, start,
|
|
7708
|
+
function* generateWithStart(nodes, start, compare2) {
|
|
7638
7709
|
if (!start) {
|
|
7639
7710
|
yield* nodes;
|
|
7640
7711
|
return;
|
|
@@ -7643,11 +7714,11 @@ function* generateWithStart(nodes, start, compare) {
|
|
|
7643
7714
|
for (const node of nodes) {
|
|
7644
7715
|
if (!started) {
|
|
7645
7716
|
if (start.basis === "at") {
|
|
7646
|
-
if (
|
|
7717
|
+
if (compare2(node.row, start.row) >= 0) {
|
|
7647
7718
|
started = true;
|
|
7648
7719
|
}
|
|
7649
7720
|
} else if (start.basis === "after") {
|
|
7650
|
-
if (
|
|
7721
|
+
if (compare2(node.row, start.row) > 0) {
|
|
7651
7722
|
started = true;
|
|
7652
7723
|
}
|
|
7653
7724
|
}
|
|
@@ -7657,7 +7728,7 @@ function* generateWithStart(nodes, start, compare) {
|
|
|
7657
7728
|
}
|
|
7658
7729
|
}
|
|
7659
7730
|
}
|
|
7660
|
-
function* generateWithOverlay(startAt, rows, constraint, overlay, splitEditOverlay, connectionIndex,
|
|
7731
|
+
function* generateWithOverlay(startAt, rows, constraint, overlay, splitEditOverlay, connectionIndex, compare2, filterPredicate) {
|
|
7661
7732
|
let overlayToApply = void 0;
|
|
7662
7733
|
if (splitEditOverlay && splitEditOverlay.outputIndex === connectionIndex) {
|
|
7663
7734
|
overlayToApply = splitEditOverlay;
|
|
@@ -7668,12 +7739,12 @@ function* generateWithOverlay(startAt, rows, constraint, overlay, splitEditOverl
|
|
|
7668
7739
|
startAt,
|
|
7669
7740
|
constraint,
|
|
7670
7741
|
overlayToApply,
|
|
7671
|
-
|
|
7742
|
+
compare2,
|
|
7672
7743
|
filterPredicate
|
|
7673
7744
|
);
|
|
7674
|
-
yield* generateWithOverlayInner(rows, overlays,
|
|
7745
|
+
yield* generateWithOverlayInner(rows, overlays, compare2);
|
|
7675
7746
|
}
|
|
7676
|
-
function computeOverlays(startAt, constraint, overlay,
|
|
7747
|
+
function computeOverlays(startAt, constraint, overlay, compare2, filterPredicate) {
|
|
7677
7748
|
let overlays = {
|
|
7678
7749
|
add: void 0,
|
|
7679
7750
|
remove: void 0
|
|
@@ -7699,7 +7770,7 @@ function computeOverlays(startAt, constraint, overlay, compare, filterPredicate)
|
|
|
7699
7770
|
break;
|
|
7700
7771
|
}
|
|
7701
7772
|
if (startAt) {
|
|
7702
|
-
overlays = overlaysForStartAt(overlays, startAt,
|
|
7773
|
+
overlays = overlaysForStartAt(overlays, startAt, compare2);
|
|
7703
7774
|
}
|
|
7704
7775
|
if (constraint) {
|
|
7705
7776
|
overlays = overlaysForConstraint(overlays, constraint);
|
|
@@ -7709,8 +7780,8 @@ function computeOverlays(startAt, constraint, overlay, compare, filterPredicate)
|
|
|
7709
7780
|
}
|
|
7710
7781
|
return overlays;
|
|
7711
7782
|
}
|
|
7712
|
-
function overlaysForStartAt({ add, remove }, startAt,
|
|
7713
|
-
const undefinedIfBeforeStartAt = (row) => row === void 0 ||
|
|
7783
|
+
function overlaysForStartAt({ add, remove }, startAt, compare2) {
|
|
7784
|
+
const undefinedIfBeforeStartAt = (row) => row === void 0 || compare2(row, startAt) < 0 ? void 0 : row;
|
|
7714
7785
|
return {
|
|
7715
7786
|
add: undefinedIfBeforeStartAt(add),
|
|
7716
7787
|
remove: undefinedIfBeforeStartAt(remove)
|
|
@@ -7730,19 +7801,19 @@ function overlaysForFilterPredicate({ add, remove }, filterPredicate) {
|
|
|
7730
7801
|
remove: undefinedIfDoesntMatchFilter(remove)
|
|
7731
7802
|
};
|
|
7732
7803
|
}
|
|
7733
|
-
function* generateWithOverlayInner(rowIterator, overlays,
|
|
7804
|
+
function* generateWithOverlayInner(rowIterator, overlays, compare2) {
|
|
7734
7805
|
let addOverlayYielded = false;
|
|
7735
7806
|
let removeOverlaySkipped = false;
|
|
7736
7807
|
for (const row of rowIterator) {
|
|
7737
7808
|
if (!addOverlayYielded && overlays.add) {
|
|
7738
|
-
const cmp =
|
|
7809
|
+
const cmp = compare2(overlays.add, row);
|
|
7739
7810
|
if (cmp < 0) {
|
|
7740
7811
|
addOverlayYielded = true;
|
|
7741
7812
|
yield { row: overlays.add, relationships: {} };
|
|
7742
7813
|
}
|
|
7743
7814
|
}
|
|
7744
7815
|
if (!removeOverlaySkipped && overlays.remove) {
|
|
7745
|
-
const cmp =
|
|
7816
|
+
const cmp = compare2(overlays.remove, row);
|
|
7746
7817
|
if (cmp === 0) {
|
|
7747
7818
|
removeOverlaySkipped = true;
|
|
7748
7819
|
continue;
|
|
@@ -8249,11 +8320,6 @@ async function deleteImpl(tx, arg, schema, ivmBranch) {
|
|
|
8249
8320
|
}
|
|
8250
8321
|
}
|
|
8251
8322
|
|
|
8252
|
-
// ../shared/src/sentinels.ts
|
|
8253
|
-
function emptyFunction() {
|
|
8254
|
-
}
|
|
8255
|
-
var emptyObject = Object.freeze({});
|
|
8256
|
-
|
|
8257
8323
|
// ../zero-client/src/client/custom.ts
|
|
8258
8324
|
var TransactionImpl = class {
|
|
8259
8325
|
constructor(lc, repTx, schema) {
|
|
@@ -8374,30 +8440,40 @@ var DeleteClientsManager = class {
|
|
|
8374
8440
|
#send;
|
|
8375
8441
|
#lc;
|
|
8376
8442
|
#dagStore;
|
|
8377
|
-
|
|
8443
|
+
#clientGroupID;
|
|
8444
|
+
constructor(send2, dagStore, lc, clientGroupID) {
|
|
8378
8445
|
this.#send = send2;
|
|
8379
8446
|
this.#dagStore = dagStore;
|
|
8380
8447
|
this.#lc = lc;
|
|
8448
|
+
this.#clientGroupID = clientGroupID;
|
|
8381
8449
|
}
|
|
8382
8450
|
/**
|
|
8383
8451
|
* This gets called by Replicache when it deletes clients from the persistent
|
|
8384
8452
|
* storage.
|
|
8385
8453
|
*/
|
|
8386
|
-
onClientsDeleted(
|
|
8387
|
-
this.#lc.debug?.("DeletedClientsManager, send:",
|
|
8388
|
-
|
|
8454
|
+
async onClientsDeleted(deletedClients) {
|
|
8455
|
+
this.#lc.debug?.("DeletedClientsManager, send:", deletedClients);
|
|
8456
|
+
const clientGroupID = await this.#clientGroupID;
|
|
8457
|
+
this.#send([
|
|
8458
|
+
"deleteClients",
|
|
8459
|
+
{
|
|
8460
|
+
clientIDs: deletedClients.filter((dc) => dc.clientGroupID === clientGroupID).map((dc) => dc.clientID)
|
|
8461
|
+
}
|
|
8462
|
+
]);
|
|
8389
8463
|
}
|
|
8390
8464
|
/**
|
|
8391
8465
|
* Zero calls this after it connects to ensure that the server knows about all
|
|
8392
8466
|
* the clients that might have been deleted locally since the last connection.
|
|
8393
8467
|
*/
|
|
8394
8468
|
async sendDeletedClientsToServer() {
|
|
8469
|
+
const clientGroupID = await this.#clientGroupID;
|
|
8395
8470
|
const deleted = await withRead(
|
|
8396
8471
|
this.#dagStore,
|
|
8397
8472
|
(dagRead) => getDeletedClients(dagRead)
|
|
8398
8473
|
);
|
|
8399
|
-
|
|
8400
|
-
|
|
8474
|
+
const clientIDs = deleted.filter((d) => d.clientGroupID === clientGroupID).map((d) => d.clientID);
|
|
8475
|
+
if (clientIDs.length > 0) {
|
|
8476
|
+
this.#send(["deleteClients", { clientIDs }]);
|
|
8401
8477
|
this.#lc.debug?.("DeletedClientsManager, send:", deleted);
|
|
8402
8478
|
}
|
|
8403
8479
|
}
|
|
@@ -8410,13 +8486,18 @@ var DeleteClientsManager = class {
|
|
|
8410
8486
|
if (clientIDs.length > 0 || clientGroupIDs.length > 0) {
|
|
8411
8487
|
return withWrite(this.#dagStore, async (dagWrite) => {
|
|
8412
8488
|
this.#lc.debug?.("clientsDeletedOnServer:", clientIDs, clientGroupIDs);
|
|
8413
|
-
await
|
|
8489
|
+
await confirmDeletedClients(dagWrite, clientIDs, clientGroupIDs);
|
|
8414
8490
|
});
|
|
8415
8491
|
}
|
|
8416
8492
|
return promiseVoid;
|
|
8417
8493
|
}
|
|
8418
|
-
getDeletedClients() {
|
|
8419
|
-
|
|
8494
|
+
async getDeletedClients() {
|
|
8495
|
+
const deletedClients = await withRead(
|
|
8496
|
+
this.#dagStore,
|
|
8497
|
+
(read) => getDeletedClients(read)
|
|
8498
|
+
);
|
|
8499
|
+
const clientGroupID = await this.#clientGroupID;
|
|
8500
|
+
return deletedClients.filter((d) => d.clientGroupID === clientGroupID);
|
|
8420
8501
|
}
|
|
8421
8502
|
};
|
|
8422
8503
|
|
|
@@ -8668,7 +8749,7 @@ function makeMessage(message, context, logLevel) {
|
|
|
8668
8749
|
}
|
|
8669
8750
|
|
|
8670
8751
|
// ../zero-client/src/client/version.ts
|
|
8671
|
-
var version2 = "0.24.
|
|
8752
|
+
var version2 = "0.24.2025092400";
|
|
8672
8753
|
|
|
8673
8754
|
// ../zero-client/src/client/log-options.ts
|
|
8674
8755
|
var LevelFilterLogSink = class {
|
|
@@ -10126,7 +10207,7 @@ var DEFAULT_QUERY_CHANGE_THROTTLE_MS = 10;
|
|
|
10126
10207
|
function convertOnUpdateNeededReason(reason) {
|
|
10127
10208
|
return { type: reason.type };
|
|
10128
10209
|
}
|
|
10129
|
-
function updateNeededReloadReasonMessage(reason
|
|
10210
|
+
function updateNeededReloadReasonMessage(reason) {
|
|
10130
10211
|
const { type } = reason;
|
|
10131
10212
|
let reasonMsg = "";
|
|
10132
10213
|
switch (type) {
|
|
@@ -10142,8 +10223,8 @@ function updateNeededReloadReasonMessage(reason, serverErrMsg) {
|
|
|
10142
10223
|
default:
|
|
10143
10224
|
unreachable(type);
|
|
10144
10225
|
}
|
|
10145
|
-
if (
|
|
10146
|
-
reasonMsg += " " +
|
|
10226
|
+
if (reason.message) {
|
|
10227
|
+
reasonMsg += " " + reason.message;
|
|
10147
10228
|
}
|
|
10148
10229
|
return reasonMsg;
|
|
10149
10230
|
}
|
|
@@ -10162,7 +10243,6 @@ var Zero = class _Zero {
|
|
|
10162
10243
|
#lc;
|
|
10163
10244
|
#logOptions;
|
|
10164
10245
|
#enableAnalytics;
|
|
10165
|
-
#schema;
|
|
10166
10246
|
#clientSchema;
|
|
10167
10247
|
#pokeHandler;
|
|
10168
10248
|
#queryManager;
|
|
@@ -10223,6 +10303,7 @@ var Zero = class _Zero {
|
|
|
10223
10303
|
// We use an accessor pair to allow the subclass to override the setter.
|
|
10224
10304
|
#connectionState = Disconnected;
|
|
10225
10305
|
#activeClientsManager;
|
|
10306
|
+
#inspector;
|
|
10226
10307
|
#setConnectionState(state) {
|
|
10227
10308
|
if (state === this.#connectionState) {
|
|
10228
10309
|
return;
|
|
@@ -10366,7 +10447,6 @@ var Zero = class _Zero {
|
|
|
10366
10447
|
}
|
|
10367
10448
|
}
|
|
10368
10449
|
this.storageKey = storageKey ?? "";
|
|
10369
|
-
this.#schema = schema;
|
|
10370
10450
|
const { clientSchema, hash } = clientSchemaFrom(schema);
|
|
10371
10451
|
this.#clientSchema = clientSchema;
|
|
10372
10452
|
const nameKey = JSON.stringify({
|
|
@@ -10422,7 +10502,7 @@ var Zero = class _Zero {
|
|
|
10422
10502
|
enableMutationRecovery: false,
|
|
10423
10503
|
enablePullAndPushInOpen: false,
|
|
10424
10504
|
// Zero calls push in its connection management code
|
|
10425
|
-
onClientsDeleted: (
|
|
10505
|
+
onClientsDeleted: (deletedClients) => this.#deleteClientsManager.onClientsDeleted(deletedClients),
|
|
10426
10506
|
zero: new ZeroRep(
|
|
10427
10507
|
this.#zeroContext,
|
|
10428
10508
|
this.#ivmMain,
|
|
@@ -10446,9 +10526,11 @@ var Zero = class _Zero {
|
|
|
10446
10526
|
rep.clientGroupID,
|
|
10447
10527
|
this.clientID,
|
|
10448
10528
|
this.#closeAbortController.signal,
|
|
10449
|
-
(clientID) => this.#deleteClientsManager.onClientsDeleted([
|
|
10529
|
+
(clientID, clientGroupID) => this.#deleteClientsManager.onClientsDeleted([
|
|
10530
|
+
{ clientGroupID, clientID }
|
|
10531
|
+
])
|
|
10450
10532
|
);
|
|
10451
|
-
const onUpdateNeededCallback = (reason
|
|
10533
|
+
const onUpdateNeededCallback = (reason) => {
|
|
10452
10534
|
if (onUpdateNeeded) {
|
|
10453
10535
|
onUpdateNeeded(reason);
|
|
10454
10536
|
} else {
|
|
@@ -10456,7 +10538,7 @@ var Zero = class _Zero {
|
|
|
10456
10538
|
this.#lc,
|
|
10457
10539
|
this.#reload,
|
|
10458
10540
|
reason.type,
|
|
10459
|
-
updateNeededReloadReasonMessage(reason
|
|
10541
|
+
updateNeededReloadReasonMessage(reason)
|
|
10460
10542
|
);
|
|
10461
10543
|
}
|
|
10462
10544
|
};
|
|
@@ -10512,7 +10594,8 @@ var Zero = class _Zero {
|
|
|
10512
10594
|
this.#deleteClientsManager = new DeleteClientsManager(
|
|
10513
10595
|
(msg) => this.#send(msg),
|
|
10514
10596
|
rep.perdag,
|
|
10515
|
-
this.#lc
|
|
10597
|
+
this.#lc,
|
|
10598
|
+
this.#rep.clientGroupID
|
|
10516
10599
|
);
|
|
10517
10600
|
this.query = this.#registerQueries(schema);
|
|
10518
10601
|
reportReloadReason(this.#lc);
|
|
@@ -10810,15 +10893,21 @@ var Zero = class _Zero {
|
|
|
10810
10893
|
}
|
|
10811
10894
|
lc.info?.(`${kind}: ${message}}`);
|
|
10812
10895
|
const error = new ServerError(downMessage[1]);
|
|
10896
|
+
lc.error?.(`${error.kind}:
|
|
10897
|
+
|
|
10898
|
+
${error.errorBody.message}`, error);
|
|
10813
10899
|
this.#rejectMessageError?.reject(error);
|
|
10814
10900
|
lc.debug?.("Rejecting connect resolver due to error", error);
|
|
10815
10901
|
this.#connectResolver.reject(error);
|
|
10816
10902
|
this.#disconnect(lc, { server: kind });
|
|
10817
10903
|
if (kind === error_kind_enum_exports.VersionNotSupported) {
|
|
10818
|
-
this.#onUpdateNeeded
|
|
10904
|
+
this.#onUpdateNeeded({ type: kind, message });
|
|
10819
10905
|
} else if (kind === error_kind_enum_exports.SchemaVersionNotSupported) {
|
|
10820
10906
|
await this.#rep.disableClientGroup();
|
|
10821
|
-
this.#onUpdateNeeded
|
|
10907
|
+
this.#onUpdateNeeded({
|
|
10908
|
+
type: "SchemaVersionNotSupported",
|
|
10909
|
+
message
|
|
10910
|
+
});
|
|
10822
10911
|
} else if (kind === error_kind_enum_exports.ClientNotFound) {
|
|
10823
10912
|
await this.#rep.disableClientGroup();
|
|
10824
10913
|
this.#onClientStateNotFound?.(onClientStateNotFoundServerReason(message));
|
|
@@ -10979,9 +11068,9 @@ var Zero = class _Zero {
|
|
|
10979
11068
|
lc,
|
|
10980
11069
|
this.#options.mutateURL,
|
|
10981
11070
|
this.#options.getQueriesURL,
|
|
10982
|
-
this.#options.maxHeaderLength,
|
|
10983
11071
|
additionalConnectParams,
|
|
10984
|
-
await this.#activeClientsManager
|
|
11072
|
+
await this.#activeClientsManager,
|
|
11073
|
+
this.#options.maxHeaderLength
|
|
10985
11074
|
);
|
|
10986
11075
|
if (this.closed) {
|
|
10987
11076
|
return;
|
|
@@ -11454,16 +11543,14 @@ var Zero = class _Zero {
|
|
|
11454
11543
|
return rv;
|
|
11455
11544
|
}
|
|
11456
11545
|
/**
|
|
11457
|
-
* `
|
|
11546
|
+
* `inspector` is an object that can be used to inspect the state of the
|
|
11458
11547
|
* queries a Zero instance uses. It is intended for debugging purposes.
|
|
11459
11548
|
*/
|
|
11460
|
-
|
|
11549
|
+
get inspector() {
|
|
11461
11550
|
BUNDLE_SIZE: {
|
|
11462
|
-
|
|
11463
|
-
return m.newInspector(
|
|
11551
|
+
return this.#inspector ??= new Inspector(
|
|
11464
11552
|
this.#rep,
|
|
11465
11553
|
this.#queryManager,
|
|
11466
|
-
this.#schema,
|
|
11467
11554
|
async () => {
|
|
11468
11555
|
await this.#connectResolver.promise;
|
|
11469
11556
|
return this.#socket;
|
|
@@ -11493,7 +11580,7 @@ var OnlineManager = class extends Subscribable {
|
|
|
11493
11580
|
return this.#online;
|
|
11494
11581
|
}
|
|
11495
11582
|
};
|
|
11496
|
-
async function createSocket(rep, queryManager, deleteClientsManager, socketOrigin, baseCookie, clientID, clientGroupID, clientSchema, userID, auth, lmid, wsid, debugPerf, lc, userPushURL, userQueryURL, maxHeaderLength = 1024 * 8
|
|
11583
|
+
async function createSocket(rep, queryManager, deleteClientsManager, socketOrigin, baseCookie, clientID, clientGroupID, clientSchema, userID, auth, lmid, wsid, debugPerf, lc, userPushURL, userQueryURL, additionalConnectParams, activeClientsManager, maxHeaderLength = 1024 * 8) {
|
|
11497
11584
|
const url = new URL(
|
|
11498
11585
|
appendPath(socketOrigin, `/sync/v${PROTOCOL_VERSION}/connect`)
|
|
11499
11586
|
);
|
|
@@ -11520,7 +11607,8 @@ async function createSocket(rep, queryManager, deleteClientsManager, socketOrigi
|
|
|
11520
11607
|
lc.info?.("Connecting to", url.toString());
|
|
11521
11608
|
const WS = mustGetBrowserGlobal("WebSocket");
|
|
11522
11609
|
const queriesPatchP = rep.query((tx) => queryManager.getQueriesPatch(tx));
|
|
11523
|
-
|
|
11610
|
+
const deletedClientsArray = await deleteClientsManager.getDeletedClients();
|
|
11611
|
+
let deletedClients = convertDeletedClientsToBody(deletedClientsArray, clientGroupID);
|
|
11524
11612
|
let queriesPatch = await queriesPatchP;
|
|
11525
11613
|
const { activeClients } = activeClientsManager;
|
|
11526
11614
|
let secProtocol = encodeSecProtocols(
|
|
@@ -11576,6 +11664,16 @@ function skipEmptyDeletedClients(deletedClients) {
|
|
|
11576
11664
|
data.clientGroupIDs = skipEmptyArray(clientGroupIDs);
|
|
11577
11665
|
return data;
|
|
11578
11666
|
}
|
|
11667
|
+
function convertDeletedClientsToBody(deletedClients, clientGroupID) {
|
|
11668
|
+
if (deletedClients.length === 0) {
|
|
11669
|
+
return void 0;
|
|
11670
|
+
}
|
|
11671
|
+
const clientIDs = deletedClients.filter((pair) => pair.clientID && pair.clientGroupID === clientGroupID).map((pair) => pair.clientID);
|
|
11672
|
+
if (clientIDs.length === 0) {
|
|
11673
|
+
return void 0;
|
|
11674
|
+
}
|
|
11675
|
+
return { clientIDs };
|
|
11676
|
+
}
|
|
11579
11677
|
function addWebSocketIDFromSocketToLogContext({ url }, lc) {
|
|
11580
11678
|
const wsid = new URL(url).searchParams.get("wsid") ?? nanoid();
|
|
11581
11679
|
return addWebSocketIDToLogContext(wsid, lc);
|
|
@@ -11616,7 +11714,7 @@ export {
|
|
|
11616
11714
|
transformResponseMessageSchema,
|
|
11617
11715
|
error_kind_enum_exports,
|
|
11618
11716
|
table,
|
|
11619
|
-
|
|
11717
|
+
string2 as string,
|
|
11620
11718
|
number2 as number,
|
|
11621
11719
|
boolean,
|
|
11622
11720
|
json,
|
|
@@ -11626,4 +11724,4 @@ export {
|
|
|
11626
11724
|
update_needed_reason_type_enum_exports,
|
|
11627
11725
|
Zero
|
|
11628
11726
|
};
|
|
11629
|
-
//# sourceMappingURL=chunk-
|
|
11727
|
+
//# sourceMappingURL=chunk-5JTC5G4I.js.map
|