@rocicorp/zero 0.7.2024120400 → 0.7.2024120701
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/{chunk-WJCWI5I4.js → chunk-BT5PSTTW.js} +259 -202
- package/out/{chunk-WJCWI5I4.js.map → chunk-BT5PSTTW.js.map} +4 -4
- package/out/otel/src/noop-span-exporter.d.ts +8 -0
- package/out/otel/src/noop-span-exporter.d.ts.map +1 -0
- package/out/otel/src/noop-span-exporter.js +14 -0
- package/out/otel/src/noop-span-exporter.js.map +1 -0
- package/out/otel/src/span.d.ts +5 -0
- package/out/otel/src/span.d.ts.map +1 -0
- package/out/otel/src/span.js +30 -0
- package/out/otel/src/span.js.map +1 -0
- package/out/otel/src/version.d.ts +2 -0
- package/out/otel/src/version.d.ts.map +1 -0
- package/out/otel/src/version.js +2 -0
- package/out/otel/src/version.js.map +1 -0
- package/out/react.js +12 -6
- package/out/react.js.map +2 -2
- package/out/solid.js +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +3 -4
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +11 -7
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +11 -7
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.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 +3 -3
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/main.js +6 -11
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/replicator.d.ts +1 -1
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/server/replicator.js +3 -3
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +34 -5
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +31 -21
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +2 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js +3 -2
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.js +5 -5
- package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +28 -20
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/runner.js +1 -4
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +3 -2
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +2 -2
- 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 +41 -32
- 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 -2
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +11 -1
- 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 +5 -5
- 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 +384 -357
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/error-for-client.d.ts +10 -3
- package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -1
- package/out/zero-cache/src/types/error-for-client.js +4 -4
- package/out/zero-cache/src/types/error-for-client.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +1 -0
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +1 -1
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +33 -7
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +5 -1
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +12 -2
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -1
- package/out/zero-cache/src/types/schema-versions.js +4 -5
- package/out/zero-cache/src/types/schema-versions.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +14 -6
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +78 -70
- 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 +8 -10
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/options.d.ts +10 -6
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/server-error.d.ts +5 -3
- package/out/zero-client/src/client/server-error.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +2 -2
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +3 -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/error.d.ts +18 -1
- package/out/zero-protocol/src/error.d.ts.map +1 -1
- package/out/zero-protocol/src/error.js +12 -2
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +20 -0
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -0
- package/out/zero-protocol/src/protocol-version.js +20 -0
- package/out/zero-protocol/src/protocol-version.js.map +1 -0
- package/out/zero-react/src/use-query.d.ts +9 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-schema/src/compiled-permissions.d.ts +3 -3
- package/out/zero-schema/src/compiled-permissions.js +1 -1
- package/out/zero-schema/src/compiled-permissions.js.map +1 -1
- package/out/zero-schema/src/mod.d.ts +1 -1
- package/out/zero-schema/src/mod.d.ts.map +1 -1
- package/out/zero-schema/src/permissions.d.ts +1 -1
- package/out/zero-schema/src/permissions.d.ts.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.map +1 -1
- package/out/zero.js +1 -1
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +9 -11
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/ivm/array-view.d.ts +1 -1
- package/out/zql/src/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/ivm/array-view.js +16 -3
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts +1 -1
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +3 -2
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +13 -2
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/join.d.ts +3 -2
- package/out/zql/src/ivm/join.d.ts.map +1 -1
- package/out/zql/src/ivm/join.js +5 -2
- package/out/zql/src/ivm/join.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +2 -12
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +29 -63
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/operator.d.ts +3 -1
- package/out/zql/src/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/ivm/schema.d.ts +2 -1
- package/out/zql/src/ivm/schema.d.ts.map +1 -1
- package/out/zql/src/ivm/skip.d.ts.map +1 -1
- package/out/zql/src/ivm/skip.js +60 -54
- package/out/zql/src/ivm/skip.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +47 -35
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/view.d.ts +1 -1
- package/out/zql/src/ivm/view.d.ts.map +1 -1
- package/out/zql/src/query/auth-query.d.ts +1 -0
- package/out/zql/src/query/auth-query.d.ts.map +1 -1
- package/out/zql/src/query/auth-query.js +1 -0
- package/out/zql/src/query/auth-query.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +6 -4
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +18 -4
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +9 -5
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/typed-view.d.ts +2 -1
- package/out/zql/src/query/typed-view.d.ts.map +1 -1
- package/out/zqlite/src/db.js +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +31 -67
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +5 -1
- package/out/shared/src/random-values.js +0 -22
- package/out/shared/src/random-values.js.map +0 -1
- package/out/zero-client/src/client/protocol-version.d.ts +0 -2
- package/out/zero-client/src/client/protocol-version.d.ts.map +0 -1
- package/out/zql/src/ivm/lookahead-iterator.d.ts +0 -13
- package/out/zql/src/ivm/lookahead-iterator.d.ts.map +0 -1
- package/out/zql/src/ivm/lookahead-iterator.js +0 -45
- package/out/zql/src/ivm/lookahead-iterator.js.map +0 -1
|
@@ -9291,8 +9291,8 @@ function isJunctionRelationship(relationship) {
|
|
|
9291
9291
|
}
|
|
9292
9292
|
|
|
9293
9293
|
// ../shared/src/sorted-entries.ts
|
|
9294
|
-
function sortedEntries(
|
|
9295
|
-
return Object.entries(
|
|
9294
|
+
function sortedEntries(object18) {
|
|
9295
|
+
return Object.entries(object18).sort((a, b) => stringCompare(a[0], b[0]));
|
|
9296
9296
|
}
|
|
9297
9297
|
|
|
9298
9298
|
// ../zero-schema/src/normalize-table-schema.ts
|
|
@@ -9742,7 +9742,8 @@ var correlationSchema = readonlyObject({
|
|
|
9742
9742
|
});
|
|
9743
9743
|
var correlatedSubquerySchemaOmitSubquery = readonlyObject({
|
|
9744
9744
|
correlation: correlationSchema,
|
|
9745
|
-
hidden: valita_exports.boolean().optional()
|
|
9745
|
+
hidden: valita_exports.boolean().optional(),
|
|
9746
|
+
system: valita_exports.union(valita_exports.literal("permissions"), valita_exports.literal("client")).optional()
|
|
9746
9747
|
});
|
|
9747
9748
|
var correlatedSubquerySchema = correlatedSubquerySchemaOmitSubquery.extend({
|
|
9748
9749
|
subquery: valita_exports.lazy(() => astSchema)
|
|
@@ -9777,7 +9778,8 @@ function normalizeAST(ast) {
|
|
|
9777
9778
|
(r) => ({
|
|
9778
9779
|
correlation: r.correlation,
|
|
9779
9780
|
hidden: r.hidden,
|
|
9780
|
-
subquery: normalizeAST(r.subquery)
|
|
9781
|
+
subquery: normalizeAST(r.subquery),
|
|
9782
|
+
system: r.system
|
|
9781
9783
|
})
|
|
9782
9784
|
)
|
|
9783
9785
|
) : void 0,
|
|
@@ -9938,13 +9940,14 @@ function compareValues(a, b) {
|
|
|
9938
9940
|
function normalizeUndefined(v2) {
|
|
9939
9941
|
return v2 ?? null;
|
|
9940
9942
|
}
|
|
9941
|
-
function makeComparator(order) {
|
|
9943
|
+
function makeComparator(order, reverse) {
|
|
9942
9944
|
return (a, b) => {
|
|
9943
9945
|
for (const ord of order) {
|
|
9944
9946
|
const field = ord[0];
|
|
9945
9947
|
const comp = compareValues(a[field], b[field]);
|
|
9946
9948
|
if (comp !== 0) {
|
|
9947
|
-
|
|
9949
|
+
const result = ord[1] === "asc" ? comp : -comp;
|
|
9950
|
+
return reverse ? -result : result;
|
|
9948
9951
|
}
|
|
9949
9952
|
}
|
|
9950
9953
|
return 0;
|
|
@@ -10027,7 +10030,11 @@ var Exists = class {
|
|
|
10027
10030
|
return;
|
|
10028
10031
|
}
|
|
10029
10032
|
case "remove": {
|
|
10030
|
-
this.#
|
|
10033
|
+
const size = this.#getSize(change.node.row);
|
|
10034
|
+
if (size === void 0) {
|
|
10035
|
+
return;
|
|
10036
|
+
}
|
|
10037
|
+
this.#pushWithFilter(change, size);
|
|
10031
10038
|
this.#delSize(change.node.row);
|
|
10032
10039
|
return;
|
|
10033
10040
|
}
|
|
@@ -10136,13 +10143,20 @@ var Exists = class {
|
|
|
10136
10143
|
return size;
|
|
10137
10144
|
}
|
|
10138
10145
|
#fetchNodeForRow(row) {
|
|
10139
|
-
|
|
10146
|
+
const fetched = must(
|
|
10140
10147
|
first(
|
|
10141
10148
|
this.#input.fetch({
|
|
10142
10149
|
start: { row, basis: "at" }
|
|
10143
10150
|
})
|
|
10144
10151
|
)
|
|
10145
10152
|
);
|
|
10153
|
+
assert(
|
|
10154
|
+
this.getSchema().compareRows(row, fetched.row) === 0,
|
|
10155
|
+
() => `fetchNodeForRow returned unexpected row, expected ${JSON.stringify(
|
|
10156
|
+
row
|
|
10157
|
+
)}, received ${JSON.stringify(fetched.row)}`
|
|
10158
|
+
);
|
|
10159
|
+
return fetched;
|
|
10146
10160
|
}
|
|
10147
10161
|
#makeSizeStorageKey(row) {
|
|
10148
10162
|
const primaryKey = [];
|
|
@@ -10342,7 +10356,8 @@ var Join = class {
|
|
|
10342
10356
|
parentKey,
|
|
10343
10357
|
childKey,
|
|
10344
10358
|
relationshipName,
|
|
10345
|
-
hidden
|
|
10359
|
+
hidden,
|
|
10360
|
+
system
|
|
10346
10361
|
}) {
|
|
10347
10362
|
assert(parent !== child, "Parent and child must be different operators");
|
|
10348
10363
|
assert(
|
|
@@ -10362,7 +10377,10 @@ var Join = class {
|
|
|
10362
10377
|
isHidden: hidden,
|
|
10363
10378
|
relationships: {
|
|
10364
10379
|
...parentSchema.relationships,
|
|
10365
|
-
[relationshipName]:
|
|
10380
|
+
[relationshipName]: {
|
|
10381
|
+
...childSchema,
|
|
10382
|
+
system
|
|
10383
|
+
}
|
|
10366
10384
|
}
|
|
10367
10385
|
};
|
|
10368
10386
|
parent.setOutput({
|
|
@@ -10588,10 +10606,27 @@ var Skip = class {
|
|
|
10588
10606
|
return this.#input.getSchema();
|
|
10589
10607
|
}
|
|
10590
10608
|
fetch(req) {
|
|
10591
|
-
return this.#
|
|
10609
|
+
return this.#fetchOrCleanup("fetch", req);
|
|
10592
10610
|
}
|
|
10593
10611
|
cleanup(req) {
|
|
10594
|
-
return this.#
|
|
10612
|
+
return this.#fetchOrCleanup("fetch", req);
|
|
10613
|
+
}
|
|
10614
|
+
*#fetchOrCleanup(method, req) {
|
|
10615
|
+
const start = this.#getStart(req);
|
|
10616
|
+
if (start === "empty") {
|
|
10617
|
+
return;
|
|
10618
|
+
}
|
|
10619
|
+
const nodes = this.#input[method]({ ...req, start });
|
|
10620
|
+
if (!req.reverse) {
|
|
10621
|
+
yield* nodes;
|
|
10622
|
+
return;
|
|
10623
|
+
}
|
|
10624
|
+
for (const node of nodes) {
|
|
10625
|
+
if (!this.#shouldBePresent(node.row)) {
|
|
10626
|
+
return;
|
|
10627
|
+
}
|
|
10628
|
+
yield node;
|
|
10629
|
+
}
|
|
10595
10630
|
}
|
|
10596
10631
|
setOutput(output) {
|
|
10597
10632
|
this.#output = output;
|
|
@@ -10599,12 +10634,13 @@ var Skip = class {
|
|
|
10599
10634
|
destroy() {
|
|
10600
10635
|
this.#input.destroy();
|
|
10601
10636
|
}
|
|
10637
|
+
#shouldBePresent(row) {
|
|
10638
|
+
const cmp2 = this.#comparator(this.#bound.row, row);
|
|
10639
|
+
return cmp2 < 0 || cmp2 === 0 && !this.#bound.exclusive;
|
|
10640
|
+
}
|
|
10602
10641
|
push(change) {
|
|
10603
10642
|
assert(this.#output, "Output not set");
|
|
10604
|
-
const shouldBePresent = (row) =>
|
|
10605
|
-
const cmp2 = this.#comparator(this.#bound.row, row);
|
|
10606
|
-
return cmp2 < 0 || cmp2 === 0 && !this.#bound.exclusive;
|
|
10607
|
-
};
|
|
10643
|
+
const shouldBePresent = (row) => this.#shouldBePresent(row);
|
|
10608
10644
|
if (change.type === "edit") {
|
|
10609
10645
|
maybeSplitAndPushEditChange(change, shouldBePresent, this.#output);
|
|
10610
10646
|
return;
|
|
@@ -10621,40 +10657,38 @@ var Skip = class {
|
|
|
10621
10657
|
basis: this.#bound.exclusive ? "after" : "at"
|
|
10622
10658
|
};
|
|
10623
10659
|
if (!req.start) {
|
|
10660
|
+
if (req.reverse) {
|
|
10661
|
+
return void 0;
|
|
10662
|
+
}
|
|
10624
10663
|
return boundStart;
|
|
10625
10664
|
}
|
|
10626
10665
|
const cmp2 = this.#comparator(this.#bound.row, req.start.row);
|
|
10627
|
-
if (
|
|
10628
|
-
|
|
10629
|
-
|
|
10630
|
-
|
|
10631
|
-
if (
|
|
10632
|
-
|
|
10633
|
-
|
|
10634
|
-
|
|
10635
|
-
|
|
10666
|
+
if (!req.reverse) {
|
|
10667
|
+
if (cmp2 > 0) {
|
|
10668
|
+
return boundStart;
|
|
10669
|
+
}
|
|
10670
|
+
if (cmp2 === 0) {
|
|
10671
|
+
if (this.#bound.exclusive || req.start.basis === "after") {
|
|
10672
|
+
return {
|
|
10673
|
+
row: this.#bound.row,
|
|
10674
|
+
basis: "after"
|
|
10675
|
+
};
|
|
10676
|
+
}
|
|
10677
|
+
return boundStart;
|
|
10636
10678
|
}
|
|
10637
|
-
return boundStart;
|
|
10638
|
-
}
|
|
10639
|
-
assert(cmp2 < 0);
|
|
10640
|
-
if (req.start.basis === "at" || req.start.basis === "after") {
|
|
10641
10679
|
return req.start;
|
|
10642
10680
|
}
|
|
10643
|
-
req.
|
|
10644
|
-
|
|
10645
|
-
|
|
10646
|
-
return {
|
|
10647
|
-
row: req.start.row,
|
|
10648
|
-
basis: "at"
|
|
10649
|
-
};
|
|
10681
|
+
req.reverse;
|
|
10682
|
+
if (cmp2 > 0) {
|
|
10683
|
+
return "empty";
|
|
10650
10684
|
}
|
|
10651
|
-
if (
|
|
10652
|
-
|
|
10685
|
+
if (cmp2 === 0) {
|
|
10686
|
+
if (!this.#bound.exclusive && req.start.basis === "at") {
|
|
10687
|
+
return boundStart;
|
|
10688
|
+
}
|
|
10689
|
+
return "empty";
|
|
10653
10690
|
}
|
|
10654
|
-
return
|
|
10655
|
-
row: node.row,
|
|
10656
|
-
basis: "at"
|
|
10657
|
-
};
|
|
10691
|
+
return req.start;
|
|
10658
10692
|
}
|
|
10659
10693
|
};
|
|
10660
10694
|
|
|
@@ -10722,10 +10756,8 @@ var Take = class {
|
|
|
10722
10756
|
}
|
|
10723
10757
|
*#initialFetch(req) {
|
|
10724
10758
|
assert(req.start === void 0);
|
|
10725
|
-
assert(
|
|
10726
|
-
|
|
10727
|
-
constraintMatchesPartitionKey(req.constraint, this.#partitionKey)
|
|
10728
|
-
);
|
|
10759
|
+
assert(!req.reverse);
|
|
10760
|
+
assert(constraintMatchesPartitionKey(req.constraint, this.#partitionKey));
|
|
10729
10761
|
if (this.#limit === 0) {
|
|
10730
10762
|
return;
|
|
10731
10763
|
}
|
|
@@ -10759,24 +10791,15 @@ var Take = class {
|
|
|
10759
10791
|
}
|
|
10760
10792
|
*cleanup(req) {
|
|
10761
10793
|
assert(req.start === void 0);
|
|
10762
|
-
assert(
|
|
10763
|
-
|
|
10764
|
-
|
|
10765
|
-
|
|
10766
|
-
let takeState;
|
|
10767
|
-
if (this.#limit > 0) {
|
|
10768
|
-
const takeStateKey = getTakeStateKey(this.#partitionKey, req.constraint);
|
|
10769
|
-
takeState = this.#storage.get(takeStateKey);
|
|
10770
|
-
assert(
|
|
10771
|
-
takeState !== void 0,
|
|
10772
|
-
"takeStateKey was: " + takeStateKey + ", partitionKey was: " + this.#partitionKey + ", constraint was: " + JSON.stringify(req.constraint)
|
|
10773
|
-
);
|
|
10774
|
-
this.#storage.del(takeStateKey);
|
|
10775
|
-
}
|
|
10794
|
+
assert(constraintMatchesPartitionKey(req.constraint, this.#partitionKey));
|
|
10795
|
+
const takeStateKey = getTakeStateKey(this.#partitionKey, req.constraint);
|
|
10796
|
+
this.#storage.del(takeStateKey);
|
|
10797
|
+
let size = 0;
|
|
10776
10798
|
for (const inputNode of this.#input.cleanup(req)) {
|
|
10777
|
-
if (
|
|
10799
|
+
if (size === this.#limit) {
|
|
10778
10800
|
return;
|
|
10779
10801
|
}
|
|
10802
|
+
size++;
|
|
10780
10803
|
yield inputNode;
|
|
10781
10804
|
}
|
|
10782
10805
|
}
|
|
@@ -10833,13 +10856,14 @@ var Take = class {
|
|
|
10833
10856
|
)
|
|
10834
10857
|
);
|
|
10835
10858
|
} else {
|
|
10836
|
-
[
|
|
10859
|
+
[boundNode, beforeBoundNode] = take(
|
|
10837
10860
|
this.#input.fetch({
|
|
10838
10861
|
start: {
|
|
10839
10862
|
row: takeState.bound,
|
|
10840
|
-
basis: "
|
|
10863
|
+
basis: "at"
|
|
10841
10864
|
},
|
|
10842
|
-
constraint
|
|
10865
|
+
constraint,
|
|
10866
|
+
reverse: true
|
|
10843
10867
|
}),
|
|
10844
10868
|
2
|
|
10845
10869
|
);
|
|
@@ -10864,21 +10888,41 @@ var Take = class {
|
|
|
10864
10888
|
if (compToBound > 0) {
|
|
10865
10889
|
return;
|
|
10866
10890
|
}
|
|
10891
|
+
const [beforeBoundNode] = take(
|
|
10892
|
+
this.#input.fetch({
|
|
10893
|
+
start: {
|
|
10894
|
+
row: takeState.bound,
|
|
10895
|
+
basis: "after"
|
|
10896
|
+
},
|
|
10897
|
+
constraint,
|
|
10898
|
+
reverse: true
|
|
10899
|
+
}),
|
|
10900
|
+
1
|
|
10901
|
+
);
|
|
10867
10902
|
let newBound;
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
row: takeState.bound,
|
|
10871
|
-
basis: "before"
|
|
10872
|
-
},
|
|
10873
|
-
constraint
|
|
10874
|
-
})) {
|
|
10875
|
-
const push2 = compareRows(node.row, takeState.bound) > 0;
|
|
10903
|
+
if (beforeBoundNode) {
|
|
10904
|
+
const push2 = compareRows(beforeBoundNode.row, takeState.bound) > 0;
|
|
10876
10905
|
newBound = {
|
|
10877
|
-
node,
|
|
10906
|
+
node: beforeBoundNode,
|
|
10878
10907
|
push: push2
|
|
10879
10908
|
};
|
|
10880
|
-
|
|
10881
|
-
|
|
10909
|
+
}
|
|
10910
|
+
if (!newBound?.push) {
|
|
10911
|
+
for (const node of this.#input.fetch({
|
|
10912
|
+
start: {
|
|
10913
|
+
row: takeState.bound,
|
|
10914
|
+
basis: "at"
|
|
10915
|
+
},
|
|
10916
|
+
constraint
|
|
10917
|
+
})) {
|
|
10918
|
+
const push2 = compareRows(node.row, takeState.bound) > 0;
|
|
10919
|
+
newBound = {
|
|
10920
|
+
node,
|
|
10921
|
+
push: push2
|
|
10922
|
+
};
|
|
10923
|
+
if (push2) {
|
|
10924
|
+
break;
|
|
10925
|
+
}
|
|
10882
10926
|
}
|
|
10883
10927
|
}
|
|
10884
10928
|
if (newBound?.push) {
|
|
@@ -10953,9 +10997,10 @@ var Take = class {
|
|
|
10953
10997
|
this.#input.fetch({
|
|
10954
10998
|
start: {
|
|
10955
10999
|
row: takeState.bound,
|
|
10956
|
-
basis: "
|
|
11000
|
+
basis: "after"
|
|
10957
11001
|
},
|
|
10958
|
-
constraint
|
|
11002
|
+
constraint,
|
|
11003
|
+
reverse: true
|
|
10959
11004
|
})
|
|
10960
11005
|
)
|
|
10961
11006
|
);
|
|
@@ -11006,13 +11051,14 @@ var Take = class {
|
|
|
11006
11051
|
return;
|
|
11007
11052
|
}
|
|
11008
11053
|
assert(newCmp < 0);
|
|
11009
|
-
const [
|
|
11054
|
+
const [oldBoundNode, newBoundNode] = take(
|
|
11010
11055
|
this.#input.fetch({
|
|
11011
11056
|
start: {
|
|
11012
11057
|
row: takeState.bound,
|
|
11013
|
-
basis: "
|
|
11058
|
+
basis: "at"
|
|
11014
11059
|
},
|
|
11015
|
-
constraint
|
|
11060
|
+
constraint,
|
|
11061
|
+
reverse: true
|
|
11016
11062
|
}),
|
|
11017
11063
|
2
|
|
11018
11064
|
);
|
|
@@ -11095,6 +11141,12 @@ function getTakeStateKey(partitionKey, rowOrConstraint) {
|
|
|
11095
11141
|
return JSON.stringify(["take", ...partitionValues]);
|
|
11096
11142
|
}
|
|
11097
11143
|
function constraintMatchesPartitionKey(constraint, partitionKey) {
|
|
11144
|
+
if (constraint === void 0 || partitionKey === void 0) {
|
|
11145
|
+
return constraint === partitionKey;
|
|
11146
|
+
}
|
|
11147
|
+
if (partitionKey.length !== Object.keys(constraint).length) {
|
|
11148
|
+
return false;
|
|
11149
|
+
}
|
|
11098
11150
|
for (const key of partitionKey) {
|
|
11099
11151
|
if (!hasOwn(constraint, key)) {
|
|
11100
11152
|
return false;
|
|
@@ -11405,7 +11457,8 @@ function applyCorrelatedSubQuery(sq, delegate, end) {
|
|
|
11405
11457
|
parentKey: sq.correlation.parentField,
|
|
11406
11458
|
childKey: sq.correlation.childField,
|
|
11407
11459
|
relationshipName: sq.subquery.alias,
|
|
11408
|
-
hidden: sq.hidden ?? false
|
|
11460
|
+
hidden: sq.hidden ?? false,
|
|
11461
|
+
system: sq.system ?? "client"
|
|
11409
11462
|
});
|
|
11410
11463
|
return end;
|
|
11411
11464
|
}
|
|
@@ -11526,12 +11579,21 @@ var ArrayView = class {
|
|
|
11526
11579
|
#root;
|
|
11527
11580
|
onDestroy;
|
|
11528
11581
|
#dirty = false;
|
|
11529
|
-
|
|
11582
|
+
#complete = false;
|
|
11583
|
+
constructor(input, format = { singular: false, relationships: {} }, queryComplete = true) {
|
|
11530
11584
|
this.#input = input;
|
|
11531
11585
|
this.#schema = input.getSchema();
|
|
11532
11586
|
this.#format = format;
|
|
11533
11587
|
this.#root = { "": format.singular ? void 0 : [] };
|
|
11534
11588
|
input.setOutput(this);
|
|
11589
|
+
if (queryComplete === true) {
|
|
11590
|
+
this.#complete = true;
|
|
11591
|
+
} else {
|
|
11592
|
+
void queryComplete.then(() => {
|
|
11593
|
+
this.#complete = true;
|
|
11594
|
+
this.#fireListeners();
|
|
11595
|
+
});
|
|
11596
|
+
}
|
|
11535
11597
|
this.#hydrate();
|
|
11536
11598
|
}
|
|
11537
11599
|
get data() {
|
|
@@ -11540,16 +11602,22 @@ var ArrayView = class {
|
|
|
11540
11602
|
addListener(listener) {
|
|
11541
11603
|
assert(!this.#listeners.has(listener), "Listener already registered");
|
|
11542
11604
|
this.#listeners.add(listener);
|
|
11543
|
-
listener
|
|
11605
|
+
this.#fireListener(listener);
|
|
11544
11606
|
return () => {
|
|
11545
11607
|
this.#listeners.delete(listener);
|
|
11546
11608
|
};
|
|
11547
11609
|
}
|
|
11548
11610
|
#fireListeners() {
|
|
11549
11611
|
for (const listener of this.#listeners) {
|
|
11550
|
-
listener
|
|
11612
|
+
this.#fireListener(listener);
|
|
11551
11613
|
}
|
|
11552
11614
|
}
|
|
11615
|
+
#fireListener(listener) {
|
|
11616
|
+
listener(
|
|
11617
|
+
this.data,
|
|
11618
|
+
this.#complete ? "complete" : "unknown"
|
|
11619
|
+
);
|
|
11620
|
+
}
|
|
11553
11621
|
destroy() {
|
|
11554
11622
|
this.onDestroy?.();
|
|
11555
11623
|
}
|
|
@@ -11711,6 +11779,7 @@ var AbstractQuery = class {
|
|
|
11711
11779
|
related: [
|
|
11712
11780
|
...this.#ast.related ?? [],
|
|
11713
11781
|
{
|
|
11782
|
+
system: this._system,
|
|
11714
11783
|
correlation: {
|
|
11715
11784
|
parentField: related.sourceField,
|
|
11716
11785
|
childField: related.destField
|
|
@@ -11750,6 +11819,7 @@ var AbstractQuery = class {
|
|
|
11750
11819
|
related: [
|
|
11751
11820
|
...this.#ast.related ?? [],
|
|
11752
11821
|
{
|
|
11822
|
+
system: this._system,
|
|
11753
11823
|
correlation: {
|
|
11754
11824
|
parentField: firstRelation.sourceField,
|
|
11755
11825
|
childField: firstRelation.destField
|
|
@@ -11760,6 +11830,7 @@ var AbstractQuery = class {
|
|
|
11760
11830
|
orderBy: addPrimaryKeys(junctionSchema, void 0),
|
|
11761
11831
|
related: [
|
|
11762
11832
|
{
|
|
11833
|
+
system: this._system,
|
|
11763
11834
|
correlation: {
|
|
11764
11835
|
parentField: secondRelation.sourceField,
|
|
11765
11836
|
childField: secondRelation.destField
|
|
@@ -11861,6 +11932,7 @@ var AbstractQuery = class {
|
|
|
11861
11932
|
return {
|
|
11862
11933
|
type: "correlatedSubquery",
|
|
11863
11934
|
related: {
|
|
11935
|
+
system: this._system,
|
|
11864
11936
|
correlation: {
|
|
11865
11937
|
parentField: related.sourceField,
|
|
11866
11938
|
childField: related.destField
|
|
@@ -11888,6 +11960,7 @@ var AbstractQuery = class {
|
|
|
11888
11960
|
return {
|
|
11889
11961
|
type: "correlatedSubquery",
|
|
11890
11962
|
related: {
|
|
11963
|
+
system: this._system,
|
|
11891
11964
|
correlation: {
|
|
11892
11965
|
parentField: firstRelation.sourceField,
|
|
11893
11966
|
childField: firstRelation.destField
|
|
@@ -11899,6 +11972,7 @@ var AbstractQuery = class {
|
|
|
11899
11972
|
where: {
|
|
11900
11973
|
type: "correlatedSubquery",
|
|
11901
11974
|
related: {
|
|
11975
|
+
system: this._system,
|
|
11902
11976
|
correlation: {
|
|
11903
11977
|
parentField: secondRelation.sourceField,
|
|
11904
11978
|
childField: secondRelation.destField
|
|
@@ -11952,6 +12026,7 @@ var QueryImpl = class extends AbstractQuery {
|
|
|
11952
12026
|
this.#delegate = delegate;
|
|
11953
12027
|
this.#ast = ast;
|
|
11954
12028
|
}
|
|
12029
|
+
_system = "client";
|
|
11955
12030
|
// Not part of Query or QueryInternal interface
|
|
11956
12031
|
get [astForTestingSymbol]() {
|
|
11957
12032
|
return this.#ast;
|
|
@@ -11964,7 +12039,14 @@ var QueryImpl = class extends AbstractQuery {
|
|
|
11964
12039
|
}
|
|
11965
12040
|
materialize(factory) {
|
|
11966
12041
|
const ast = this._completeAst();
|
|
11967
|
-
const
|
|
12042
|
+
const queryCompleteResolver = resolver7();
|
|
12043
|
+
let queryGot = false;
|
|
12044
|
+
const removeServerQuery = this.#delegate.addServerQuery(ast, (got) => {
|
|
12045
|
+
if (got) {
|
|
12046
|
+
queryGot = true;
|
|
12047
|
+
queryCompleteResolver.resolve(true);
|
|
12048
|
+
}
|
|
12049
|
+
});
|
|
11968
12050
|
const input = buildPipeline(ast, this.#delegate);
|
|
11969
12051
|
let removeCommitObserver;
|
|
11970
12052
|
const onDestroy = () => {
|
|
@@ -11973,9 +12055,16 @@ var QueryImpl = class extends AbstractQuery {
|
|
|
11973
12055
|
removeServerQuery();
|
|
11974
12056
|
};
|
|
11975
12057
|
const view = this.#delegate.batchViewUpdates(
|
|
11976
|
-
() => (factory ?? arrayViewFactory)(
|
|
11977
|
-
|
|
11978
|
-
|
|
12058
|
+
() => (factory ?? arrayViewFactory)(
|
|
12059
|
+
this,
|
|
12060
|
+
input,
|
|
12061
|
+
this.format,
|
|
12062
|
+
onDestroy,
|
|
12063
|
+
(cb) => {
|
|
12064
|
+
removeCommitObserver = this.#delegate.onTransactionCommit(cb);
|
|
12065
|
+
},
|
|
12066
|
+
queryGot || queryCompleteResolver.promise
|
|
12067
|
+
)
|
|
11979
12068
|
);
|
|
11980
12069
|
return view;
|
|
11981
12070
|
}
|
|
@@ -12020,8 +12109,8 @@ function addPrimaryKeysToAst(schema, ast) {
|
|
|
12020
12109
|
orderBy: addPrimaryKeys(schema, ast.orderBy)
|
|
12021
12110
|
};
|
|
12022
12111
|
}
|
|
12023
|
-
function arrayViewFactory(_query, input, format, onDestroy, onTransactionCommit) {
|
|
12024
|
-
const v2 = new ArrayView(input, format);
|
|
12112
|
+
function arrayViewFactory(_query, input, format, onDestroy, onTransactionCommit, queryComplete) {
|
|
12113
|
+
const v2 = new ArrayView(input, format, queryComplete);
|
|
12025
12114
|
v2.onDestroy = onDestroy;
|
|
12026
12115
|
onTransactionCommit(() => {
|
|
12027
12116
|
v2.flush();
|
|
@@ -12037,6 +12126,7 @@ var AuthQuery = class _AuthQuery extends AbstractQuery {
|
|
|
12037
12126
|
expressionBuilder() {
|
|
12038
12127
|
return new ExpressionBuilder(this._exists);
|
|
12039
12128
|
}
|
|
12129
|
+
_system = "permissions";
|
|
12040
12130
|
_newQuery(schema, ast, format) {
|
|
12041
12131
|
return new _AuthQuery(schema, ast, format);
|
|
12042
12132
|
}
|
|
@@ -12089,8 +12179,8 @@ function compileRowConfig(rowRules, expressionBuilder) {
|
|
|
12089
12179
|
rowRules.update?.preMutation,
|
|
12090
12180
|
expressionBuilder
|
|
12091
12181
|
),
|
|
12092
|
-
|
|
12093
|
-
rowRules.update?.
|
|
12182
|
+
postMutation: compileRules(
|
|
12183
|
+
rowRules.update?.postMutation,
|
|
12094
12184
|
expressionBuilder
|
|
12095
12185
|
)
|
|
12096
12186
|
},
|
|
@@ -12119,8 +12209,8 @@ function compileCellConfig(cellRules, expressionBuilder) {
|
|
|
12119
12209
|
insert: compileRules(rules.insert, expressionBuilder),
|
|
12120
12210
|
update: {
|
|
12121
12211
|
preMutation: compileRules(rules.update?.preMutation, expressionBuilder),
|
|
12122
|
-
|
|
12123
|
-
rules.update?.
|
|
12212
|
+
postMutation: compileRules(
|
|
12213
|
+
rules.update?.postMutation,
|
|
12124
12214
|
expressionBuilder
|
|
12125
12215
|
)
|
|
12126
12216
|
},
|
|
@@ -12241,10 +12331,22 @@ var errorKindSchema = valita_exports.union(
|
|
|
12241
12331
|
valita_exports.literal("SchemaVersionNotSupported" /* SchemaVersionNotSupported */),
|
|
12242
12332
|
valita_exports.literal("Internal" /* Internal */)
|
|
12243
12333
|
);
|
|
12334
|
+
var basicErrorBodySchema = valita_exports.object({
|
|
12335
|
+
kind: errorKindSchema,
|
|
12336
|
+
message: valita_exports.string()
|
|
12337
|
+
});
|
|
12338
|
+
var serverOverloadedBodySchema = valita_exports.object({
|
|
12339
|
+
kind: valita_exports.literal("ServerOverloaded" /* ServerOverloaded */),
|
|
12340
|
+
message: valita_exports.string(),
|
|
12341
|
+
minBackoffMs: valita_exports.number().optional()
|
|
12342
|
+
});
|
|
12343
|
+
var errorBodySchema = valita_exports.union(
|
|
12344
|
+
basicErrorBodySchema,
|
|
12345
|
+
serverOverloadedBodySchema
|
|
12346
|
+
);
|
|
12244
12347
|
var errorMessageSchema = valita_exports.tuple([
|
|
12245
12348
|
valita_exports.literal("error"),
|
|
12246
|
-
|
|
12247
|
-
valita_exports.string()
|
|
12349
|
+
errorBodySchema
|
|
12248
12350
|
]);
|
|
12249
12351
|
|
|
12250
12352
|
// ../zero-protocol/src/primary-key.ts
|
|
@@ -12478,6 +12580,9 @@ var upstreamSchema = valita_exports.union(
|
|
|
12478
12580
|
pushMessageSchema
|
|
12479
12581
|
);
|
|
12480
12582
|
|
|
12583
|
+
// ../zero-protocol/src/protocol-version.ts
|
|
12584
|
+
var PROTOCOL_VERSION = 2;
|
|
12585
|
+
|
|
12481
12586
|
// ../zero-client/src/util/nanoid.ts
|
|
12482
12587
|
function nanoid(size = 21) {
|
|
12483
12588
|
const randomBytes = getNonCryptoRandomValues(new Uint8Array(size));
|
|
@@ -14133,47 +14238,6 @@ function constraintMatchesPrimaryKey(constraint, primary) {
|
|
|
14133
14238
|
return true;
|
|
14134
14239
|
}
|
|
14135
14240
|
|
|
14136
|
-
// ../zql/src/ivm/lookahead-iterator.ts
|
|
14137
|
-
var LookaheadIterator = class {
|
|
14138
|
-
#iter;
|
|
14139
|
-
#buffer;
|
|
14140
|
-
#initialized = false;
|
|
14141
|
-
constructor(iter, size = 2) {
|
|
14142
|
-
this.#iter = iter;
|
|
14143
|
-
this.#buffer = new Array(size);
|
|
14144
|
-
}
|
|
14145
|
-
[Symbol.iterator]() {
|
|
14146
|
-
return this;
|
|
14147
|
-
}
|
|
14148
|
-
next() {
|
|
14149
|
-
if (!this.#initialized) {
|
|
14150
|
-
for (let i = 0; i < this.#buffer.length; i++) {
|
|
14151
|
-
const r = this.#iter.next();
|
|
14152
|
-
this.#buffer[i] = r.done ? void 0 : r.value;
|
|
14153
|
-
}
|
|
14154
|
-
this.#initialized = true;
|
|
14155
|
-
} else {
|
|
14156
|
-
for (let i = 0; i < this.#buffer.length - 1; i++) {
|
|
14157
|
-
this.#buffer[i] = this.#buffer[i + 1];
|
|
14158
|
-
}
|
|
14159
|
-
const r = this.#iter.next();
|
|
14160
|
-
this.#buffer[this.#buffer.length - 1] = r.done ? void 0 : r.value;
|
|
14161
|
-
}
|
|
14162
|
-
if (this.#buffer[0] === void 0) {
|
|
14163
|
-
return { done: true, value: void 0 };
|
|
14164
|
-
}
|
|
14165
|
-
return { done: false, value: this.#buffer };
|
|
14166
|
-
}
|
|
14167
|
-
return(value) {
|
|
14168
|
-
this.#iter.return?.(value);
|
|
14169
|
-
return { done: true, value: void 0 };
|
|
14170
|
-
}
|
|
14171
|
-
throw(e) {
|
|
14172
|
-
this.#iter.throw?.(e);
|
|
14173
|
-
return { done: true, value: void 0 };
|
|
14174
|
-
}
|
|
14175
|
-
};
|
|
14176
|
-
|
|
14177
14241
|
// ../zql/src/ivm/memory-source.ts
|
|
14178
14242
|
var MemorySource = class {
|
|
14179
14243
|
#tableName;
|
|
@@ -14210,6 +14274,7 @@ var MemorySource = class {
|
|
|
14210
14274
|
columns: this.#columns,
|
|
14211
14275
|
primaryKey: this.#primaryKey,
|
|
14212
14276
|
sort: connection.sort,
|
|
14277
|
+
system: "client",
|
|
14213
14278
|
relationships: {},
|
|
14214
14279
|
isHidden: false,
|
|
14215
14280
|
compareRows: connection.compareRows
|
|
@@ -14301,7 +14366,8 @@ var MemorySource = class {
|
|
|
14301
14366
|
indexSort.push(...requestedSort);
|
|
14302
14367
|
}
|
|
14303
14368
|
const index = this.#getOrCreateIndex(indexSort, from);
|
|
14304
|
-
const { data, comparator } = index;
|
|
14369
|
+
const { data, comparator: compare } = index;
|
|
14370
|
+
const comparator = (r1, r2) => compare(r1, r2) * (req.reverse ? -1 : 1);
|
|
14305
14371
|
if (this.#overlay) {
|
|
14306
14372
|
if (callingConnectionNum <= this.#overlay.outputIndex) {
|
|
14307
14373
|
overlay = this.#overlay;
|
|
@@ -14309,37 +14375,11 @@ var MemorySource = class {
|
|
|
14309
14375
|
}
|
|
14310
14376
|
const { constraint } = req;
|
|
14311
14377
|
const matchesConstraint = constraint ? (row) => constraintMatchesRow(constraint, row) : (_) => true;
|
|
14312
|
-
const
|
|
14313
|
-
const matchesConstraintAndFilters = predicate ? (row) => matchesConstraint(row) && predicate(row) : matchesConstraint;
|
|
14314
|
-
const nextLowerKey = (row) => {
|
|
14315
|
-
if (!row) {
|
|
14316
|
-
return void 0;
|
|
14317
|
-
}
|
|
14318
|
-
let o = overlay;
|
|
14319
|
-
if (o) {
|
|
14320
|
-
if (comparator(o.change.row, row) >= 0) {
|
|
14321
|
-
o = void 0;
|
|
14322
|
-
}
|
|
14323
|
-
}
|
|
14324
|
-
while (row !== void 0) {
|
|
14325
|
-
row = data.nextLowerKey(row);
|
|
14326
|
-
if (row && matchesConstraintAndFilters(row)) {
|
|
14327
|
-
if (o && comparator(o.change.row, row) >= 0) {
|
|
14328
|
-
return o.change.row;
|
|
14329
|
-
}
|
|
14330
|
-
return row;
|
|
14331
|
-
}
|
|
14332
|
-
}
|
|
14333
|
-
return o?.change.row;
|
|
14334
|
-
};
|
|
14335
|
-
let startAt = req.start?.row;
|
|
14378
|
+
const startAt = req.start?.row;
|
|
14336
14379
|
if (startAt) {
|
|
14337
14380
|
if (req.constraint) {
|
|
14338
14381
|
assert(matchesConstraint(startAt), "Start row must match constraint");
|
|
14339
14382
|
}
|
|
14340
|
-
if (req.start.basis === "before") {
|
|
14341
|
-
startAt = nextLowerKey(startAt);
|
|
14342
|
-
}
|
|
14343
14383
|
}
|
|
14344
14384
|
let scanStart;
|
|
14345
14385
|
if (req.constraint) {
|
|
@@ -14348,7 +14388,11 @@ var MemorySource = class {
|
|
|
14348
14388
|
if (hasOwn(req.constraint, key)) {
|
|
14349
14389
|
scanStart[key] = req.constraint[key];
|
|
14350
14390
|
} else {
|
|
14351
|
-
|
|
14391
|
+
if (req.reverse) {
|
|
14392
|
+
scanStart[key] = dir === "asc" ? maxValue : minValue;
|
|
14393
|
+
} else {
|
|
14394
|
+
scanStart[key] = dir === "asc" ? minValue : maxValue;
|
|
14395
|
+
}
|
|
14352
14396
|
}
|
|
14353
14397
|
}
|
|
14354
14398
|
} else {
|
|
@@ -14356,16 +14400,14 @@ var MemorySource = class {
|
|
|
14356
14400
|
}
|
|
14357
14401
|
const withOverlay = generateWithOverlay(
|
|
14358
14402
|
startAt,
|
|
14359
|
-
|
|
14360
|
-
// key.
|
|
14361
|
-
data.keys(scanStart),
|
|
14403
|
+
generateRows(data, scanStart, req.reverse),
|
|
14362
14404
|
req.constraint,
|
|
14363
14405
|
overlay,
|
|
14364
14406
|
comparator,
|
|
14365
14407
|
conn.filters?.predicate
|
|
14366
14408
|
);
|
|
14367
14409
|
const withConstraint = generateWithConstraint(
|
|
14368
|
-
generateWithStart(withOverlay, req, comparator),
|
|
14410
|
+
generateWithStart(withOverlay, req.start, comparator),
|
|
14369
14411
|
req.constraint
|
|
14370
14412
|
);
|
|
14371
14413
|
yield* conn.filters ? generateWithFilter(withConstraint, conn.filters.predicate) : withConstraint;
|
|
@@ -14466,28 +14508,26 @@ function* generateWithFilter(it, filter) {
|
|
|
14466
14508
|
}
|
|
14467
14509
|
}
|
|
14468
14510
|
}
|
|
14469
|
-
function* generateWithStart(
|
|
14470
|
-
|
|
14471
|
-
|
|
14472
|
-
|
|
14511
|
+
function* generateWithStart(nodes, start, compare) {
|
|
14512
|
+
if (!start) {
|
|
14513
|
+
yield* nodes;
|
|
14514
|
+
return;
|
|
14515
|
+
}
|
|
14516
|
+
let started = false;
|
|
14517
|
+
for (const node of nodes) {
|
|
14473
14518
|
if (!started) {
|
|
14474
|
-
|
|
14475
|
-
|
|
14476
|
-
if (next === void 0 || compare(next.row, req.start.row) >= 0) {
|
|
14477
|
-
started = true;
|
|
14478
|
-
}
|
|
14479
|
-
} else if (req.start.basis === "at") {
|
|
14480
|
-
if (compare(curr.row, req.start.row) >= 0) {
|
|
14519
|
+
if (start.basis === "at") {
|
|
14520
|
+
if (compare(node.row, start.row) >= 0) {
|
|
14481
14521
|
started = true;
|
|
14482
14522
|
}
|
|
14483
|
-
} else if (
|
|
14484
|
-
if (compare(
|
|
14523
|
+
} else if (start.basis === "after") {
|
|
14524
|
+
if (compare(node.row, start.row) > 0) {
|
|
14485
14525
|
started = true;
|
|
14486
14526
|
}
|
|
14487
14527
|
}
|
|
14488
14528
|
}
|
|
14489
14529
|
if (started) {
|
|
14490
|
-
yield
|
|
14530
|
+
yield node;
|
|
14491
14531
|
}
|
|
14492
14532
|
}
|
|
14493
14533
|
}
|
|
@@ -14614,6 +14654,14 @@ function compareBounds(a, b) {
|
|
|
14614
14654
|
}
|
|
14615
14655
|
return compareValues(a, b);
|
|
14616
14656
|
}
|
|
14657
|
+
function* generateRows(data, scanStart, reverse) {
|
|
14658
|
+
for (const entry of data[reverse ? "entriesReversed" : "entries"](
|
|
14659
|
+
scanStart,
|
|
14660
|
+
[]
|
|
14661
|
+
)) {
|
|
14662
|
+
yield entry[0];
|
|
14663
|
+
}
|
|
14664
|
+
}
|
|
14617
14665
|
|
|
14618
14666
|
// ../zql/src/ivm/memory-storage.ts
|
|
14619
14667
|
var MemoryStorage = class {
|
|
@@ -15252,7 +15300,7 @@ function makeMessage(message, context, logLevel) {
|
|
|
15252
15300
|
}
|
|
15253
15301
|
|
|
15254
15302
|
// ../zero-client/src/client/version.ts
|
|
15255
|
-
var version2 = "0.7.
|
|
15303
|
+
var version2 = "0.7.2024120701+66c6a9";
|
|
15256
15304
|
|
|
15257
15305
|
// ../zero-client/src/client/log-options.ts
|
|
15258
15306
|
var LevelFilterLogSink = class {
|
|
@@ -15538,9 +15586,6 @@ var State = class {
|
|
|
15538
15586
|
}
|
|
15539
15587
|
};
|
|
15540
15588
|
|
|
15541
|
-
// ../zero-client/src/client/protocol-version.ts
|
|
15542
|
-
var PROTOCOL_VERSION = 1;
|
|
15543
|
-
|
|
15544
15589
|
// ../zero-client/src/client/query-manager.ts
|
|
15545
15590
|
var QueryManager = class {
|
|
15546
15591
|
#clientID;
|
|
@@ -15649,9 +15694,7 @@ var QueryManager = class {
|
|
|
15649
15694
|
}
|
|
15650
15695
|
}
|
|
15651
15696
|
if (gotCallback) {
|
|
15652
|
-
|
|
15653
|
-
gotCallback(this.#gotQueries.has(astHash));
|
|
15654
|
-
});
|
|
15697
|
+
gotCallback(this.#gotQueries.has(astHash));
|
|
15655
15698
|
}
|
|
15656
15699
|
let removed = false;
|
|
15657
15700
|
return () => {
|
|
@@ -15767,11 +15810,14 @@ function nextBackoff(lc, now) {
|
|
|
15767
15810
|
|
|
15768
15811
|
// ../zero-client/src/client/server-error.ts
|
|
15769
15812
|
var ServerError = class extends Error {
|
|
15770
|
-
kind;
|
|
15771
15813
|
name = "ServerError";
|
|
15772
|
-
|
|
15773
|
-
|
|
15774
|
-
this.kind
|
|
15814
|
+
errorBody;
|
|
15815
|
+
get kind() {
|
|
15816
|
+
return this.errorBody.kind;
|
|
15817
|
+
}
|
|
15818
|
+
constructor(errorBody) {
|
|
15819
|
+
super(errorBody.kind + ": " + errorBody.message);
|
|
15820
|
+
this.errorBody = errorBody;
|
|
15775
15821
|
}
|
|
15776
15822
|
};
|
|
15777
15823
|
function isServerError(ex) {
|
|
@@ -15783,6 +15829,9 @@ function isAuthError(ex) {
|
|
|
15783
15829
|
function isAuthErrorKind(kind) {
|
|
15784
15830
|
return kind === "AuthInvalidated" /* AuthInvalidated */ || kind === "Unauthorized" /* Unauthorized */;
|
|
15785
15831
|
}
|
|
15832
|
+
function isServerOverloadedError(ex) {
|
|
15833
|
+
return isServerError(ex) && ex.errorBody.kind === "ServerOverloaded" /* ServerOverloaded */ ? ex.errorBody : void 0;
|
|
15834
|
+
}
|
|
15786
15835
|
|
|
15787
15836
|
// ../zero-client/src/client/server-option.ts
|
|
15788
15837
|
function validateServerParam(paramName, server) {
|
|
@@ -16280,7 +16329,9 @@ var Zero = class {
|
|
|
16280
16329
|
["_zero_crud"]: makeCRUDMutator(normalizedSchema)
|
|
16281
16330
|
};
|
|
16282
16331
|
const replicacheOptions = {
|
|
16283
|
-
|
|
16332
|
+
// The schema stored in IDB is dependent upon both the application schema
|
|
16333
|
+
// and the AST schema (i.e. PROTOCOL_VERSION).
|
|
16334
|
+
schemaVersion: `${normalizedSchema.version}.${PROTOCOL_VERSION}`,
|
|
16284
16335
|
logLevel: logOptions.logLevel,
|
|
16285
16336
|
logSinks: [logOptions.logSink],
|
|
16286
16337
|
mutators: replicacheMutators,
|
|
@@ -16562,14 +16613,14 @@ var Zero = class {
|
|
|
16562
16613
|
};
|
|
16563
16614
|
// An error on the connection is fatal for the connection.
|
|
16564
16615
|
async #handleErrorMessage(lc, downMessage) {
|
|
16565
|
-
const [, kind, message] = downMessage;
|
|
16616
|
+
const [, { kind, message }] = downMessage;
|
|
16566
16617
|
if (kind === "MutationRateLimited" /* MutationRateLimited */) {
|
|
16567
16618
|
this.#lastMutationIDSent = NULL_LAST_MUTATION_ID_SENT;
|
|
16568
16619
|
lc.error?.("Mutation rate limited", { message });
|
|
16569
16620
|
return;
|
|
16570
16621
|
}
|
|
16571
16622
|
lc.info?.(`${kind}: ${message}}`);
|
|
16572
|
-
const error = new ServerError(
|
|
16623
|
+
const error = new ServerError(downMessage[1]);
|
|
16573
16624
|
this.#rejectMessageError?.reject(error);
|
|
16574
16625
|
lc.debug?.("Rejecting connect resolver due to error", error);
|
|
16575
16626
|
this.#connectResolver.reject(error);
|
|
@@ -16906,7 +16957,7 @@ var Zero = class {
|
|
|
16906
16957
|
}
|
|
16907
16958
|
async #updateAuthToken(lc, error) {
|
|
16908
16959
|
const { auth: authOption } = this.#options;
|
|
16909
|
-
const auth = await authOption
|
|
16960
|
+
const auth = await (typeof authOption === "function" ? authOption(error) : authOption);
|
|
16910
16961
|
if (auth) {
|
|
16911
16962
|
lc.debug?.("Got auth token");
|
|
16912
16963
|
this.#rep.auth = auth;
|
|
@@ -16930,9 +16981,11 @@ var Zero = class {
|
|
|
16930
16981
|
await this.#updateAuthToken(bareLogContext);
|
|
16931
16982
|
let needsReauth = false;
|
|
16932
16983
|
let gotError = false;
|
|
16984
|
+
let backoffMs = RUN_LOOP_INTERVAL_MS;
|
|
16933
16985
|
while (!this.closed) {
|
|
16934
16986
|
runLoopCounter++;
|
|
16935
16987
|
let lc = getLogContext();
|
|
16988
|
+
backoffMs = RUN_LOOP_INTERVAL_MS;
|
|
16936
16989
|
try {
|
|
16937
16990
|
switch (this.#connectionState) {
|
|
16938
16991
|
case 0 /* Disconnected */: {
|
|
@@ -17032,16 +17085,20 @@ var Zero = class {
|
|
|
17032
17085
|
if (isServerError(ex) || ex instanceof TimedOutError || ex instanceof CloseError) {
|
|
17033
17086
|
gotError = true;
|
|
17034
17087
|
}
|
|
17088
|
+
const overloaded = isServerOverloadedError(ex);
|
|
17089
|
+
if (overloaded && overloaded.minBackoffMs) {
|
|
17090
|
+
backoffMs = Math.max(backoffMs, overloaded.minBackoffMs);
|
|
17091
|
+
}
|
|
17035
17092
|
}
|
|
17036
17093
|
if (gotError) {
|
|
17037
17094
|
this.#setOnline(false);
|
|
17038
17095
|
lc.debug?.(
|
|
17039
17096
|
"Sleeping",
|
|
17040
|
-
|
|
17097
|
+
backoffMs,
|
|
17041
17098
|
"ms before reconnecting due to error, state:",
|
|
17042
17099
|
this.#connectionState
|
|
17043
17100
|
);
|
|
17044
|
-
await sleep(
|
|
17101
|
+
await sleep(backoffMs);
|
|
17045
17102
|
}
|
|
17046
17103
|
}
|
|
17047
17104
|
}
|
|
@@ -17242,4 +17299,4 @@ export {
|
|
|
17242
17299
|
escapeLike,
|
|
17243
17300
|
Zero
|
|
17244
17301
|
};
|
|
17245
|
-
//# sourceMappingURL=chunk-
|
|
17302
|
+
//# sourceMappingURL=chunk-BT5PSTTW.js.map
|