foldkit-remote 0.20.0 → 0.21.0
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/README.md +13 -8
- package/dist/{index-BEvVAL76.d.mts → index-YyucgTYm.d.mts} +36 -18
- package/dist/index-YyucgTYm.d.mts.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/port.d.mts +1 -1
- package/dist/port.mjs +1 -1
- package/dist/{src-BDqn7Ocr.mjs → src-lVP_7bf4.mjs} +87 -49
- package/dist/src-lVP_7bf4.mjs.map +1 -0
- package/package.json +4 -4
- package/dist/index-BEvVAL76.d.mts.map +0 -1
- package/dist/src-BDqn7Ocr.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context, Data, Deferred, Duration, Effect, Layer, Match, Option, Predicate, Record, Request, RequestResolver, Result, Schema, SchemaAST, SchemaGetter, Stream } from "effect";
|
|
2
2
|
import { KeyValueStore } from "effect/persistence";
|
|
3
3
|
import * as Domain from "foldkit-entity";
|
|
4
|
-
import { Entity, Expr, Operators, Query, QueryEvaluateError, ReadFilter, SchemaShape, SelectionTypeId, Write, compareRows, dependenciesOf,
|
|
4
|
+
import { Entity, Expr, Operators, Query, QueryEvaluateError, ReadFilter, SchemaShape, SelectionTypeId, Write, compareRows, dependenciesOf, evaluateEach } from "foldkit-entity";
|
|
5
5
|
import { mapMessage } from "foldkit/command";
|
|
6
6
|
import { defineMessageUnion } from "foldkit/message";
|
|
7
7
|
import * as Subscription from "foldkit/subscription";
|
|
@@ -556,16 +556,17 @@ const patchOfWrite = (bound) => ({
|
|
|
556
556
|
/**
|
|
557
557
|
* What a declared write shows before the server answers: an update's or an
|
|
558
558
|
* insert's row as a patch (an update's only for the keys named, when some
|
|
559
|
-
* are), and an update's increments
|
|
560
|
-
*
|
|
559
|
+
* are), and an update's increments and computed fields, worked out over the
|
|
560
|
+
* row the store holds when it is read. A delete shows nothing, since no
|
|
561
|
+
* operation removes a row from every list it is in; its answer does.
|
|
561
562
|
*/
|
|
562
563
|
const optimisticOfWrite = (write, input, keys) => Match.value(write).pipe(Match.tagsExhaustive({
|
|
563
564
|
Update: () => {
|
|
564
565
|
const bound = Write.bind(write, input, keys);
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
...
|
|
568
|
-
|
|
566
|
+
return [{
|
|
567
|
+
...patchOfWrite(bound),
|
|
568
|
+
...Object.keys(bound.increments).length === 0 ? {} : { adds: bound.increments },
|
|
569
|
+
...Object.keys(bound.assignments).length === 0 ? {} : { computes: bound.assignments }
|
|
569
570
|
}];
|
|
570
571
|
},
|
|
571
572
|
Insert: () => {
|
|
@@ -1392,7 +1393,10 @@ const dedupeConnection = (segments) => {
|
|
|
1392
1393
|
/** Adds a page to the connection, joining contiguous or overlapping segments. */
|
|
1393
1394
|
const merge = (current, page) => {
|
|
1394
1395
|
const incoming = normalize(page);
|
|
1395
|
-
if (incoming.edges.length === 0) return current
|
|
1396
|
+
if (incoming.edges.length === 0) return incoming.start._tag === "Terminal" && incoming.end._tag === "Terminal" && current.segments.length === 0 ? {
|
|
1397
|
+
...current,
|
|
1398
|
+
segments: [incoming]
|
|
1399
|
+
} : current;
|
|
1396
1400
|
const segments = [...current.segments.map(normalize), incoming];
|
|
1397
1401
|
let joined = true;
|
|
1398
1402
|
while (joined) {
|
|
@@ -1907,9 +1911,11 @@ const matchingEncoded = (store, descriptor, encoded, options = {}) => {
|
|
|
1907
1911
|
__key: key
|
|
1908
1912
|
});
|
|
1909
1913
|
}
|
|
1914
|
+
const judged = evaluateEach(body, encoded, rows, { operators: options.operators });
|
|
1915
|
+
const keyOf = (row) => row.__key;
|
|
1910
1916
|
return {
|
|
1911
|
-
matched:
|
|
1912
|
-
skipped
|
|
1917
|
+
matched: judged.matched.map(keyOf),
|
|
1918
|
+
skipped: [...skipped, ...judged.refused.map(keyOf)]
|
|
1913
1919
|
};
|
|
1914
1920
|
};
|
|
1915
1921
|
/**
|
|
@@ -2190,7 +2196,7 @@ const removeOverlay = (optimistic, id) => {
|
|
|
2190
2196
|
* entity only a request holds (a temporary id) is not the server's to age, and
|
|
2191
2197
|
* is dated `Infinity`, so freshness never plans or times it.
|
|
2192
2198
|
*/
|
|
2193
|
-
const visibleStore = (base, optimistic) => writeEntities(base, resolvedPatches(base, optimistic).map((patch) => {
|
|
2199
|
+
const visibleStore = (base, optimistic, operators = Operators.kernel) => writeEntities(base, resolvedPatches(base, optimistic, operators).map((patch) => {
|
|
2194
2200
|
const key = entityKey(patch.entity, patch.id);
|
|
2195
2201
|
const under = base[key];
|
|
2196
2202
|
return {
|
|
@@ -2200,32 +2206,56 @@ const visibleStore = (base, optimistic) => writeEntities(base, resolvedPatches(b
|
|
|
2200
2206
|
};
|
|
2201
2207
|
}));
|
|
2202
2208
|
/**
|
|
2203
|
-
* Every pending patch in order, each amount added
|
|
2204
|
-
*
|
|
2205
|
-
*
|
|
2206
|
-
*
|
|
2209
|
+
* Every pending patch in order, each amount added and each computed field
|
|
2210
|
+
* worked out over the row under it (the store's, with earlier layers over
|
|
2211
|
+
* it) by `Write.apply`, with the client's table (the kernel's when not
|
|
2212
|
+
* given). A prediction, so only over
|
|
2213
|
+
* what the client holds: a field it has not read, an amount over anything
|
|
2214
|
+
* but a number, or a computation by an operator its table lacks keeps what
|
|
2215
|
+
* it shows until the server answers.
|
|
2207
2216
|
*/
|
|
2208
|
-
const resolvedPatches = (base, optimistic) => {
|
|
2217
|
+
const resolvedPatches = (base, optimistic, operators = Operators.kernel) => {
|
|
2209
2218
|
const shown = /* @__PURE__ */ new Map();
|
|
2210
|
-
|
|
2219
|
+
const unsure = /* @__PURE__ */ new Map();
|
|
2220
|
+
return optimistic.layers.flatMap((layer) => layer.patches.map(({ adds, computes, ...patch }) => {
|
|
2211
2221
|
const key = entityKey(patch.entity, patch.id);
|
|
2212
2222
|
const earlier = shown.get(key) ?? {};
|
|
2223
|
+
const unknown = new Set([...unsure.get(key) ?? []].filter((field) => !Object.hasOwn(patch.values, field)));
|
|
2213
2224
|
const values = { ...patch.values };
|
|
2214
|
-
const
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2225
|
+
const row = Object.fromEntries(Object.entries({
|
|
2226
|
+
...base[key]?.values,
|
|
2227
|
+
...earlier
|
|
2228
|
+
}).filter(([field]) => !unknown.has(field)));
|
|
2229
|
+
const moved = {
|
|
2230
|
+
values: {},
|
|
2231
|
+
increments: adds ?? {},
|
|
2232
|
+
assignments: computes ?? {}
|
|
2233
|
+
};
|
|
2234
|
+
const predicted = predicting(() => Write.apply(row, moved, { operators }));
|
|
2235
|
+
for (const field of [...Object.keys(moved.increments), ...Object.keys(moved.assignments)]) if (predicted !== void 0 && !predicted.unknown.includes(field)) {
|
|
2236
|
+
values[field] = predicted.row[field];
|
|
2237
|
+
unknown.delete(field);
|
|
2238
|
+
} else unknown.add(field);
|
|
2219
2239
|
shown.set(key, {
|
|
2220
2240
|
...earlier,
|
|
2221
2241
|
...values
|
|
2222
2242
|
});
|
|
2243
|
+
unsure.set(key, unknown);
|
|
2223
2244
|
return {
|
|
2224
2245
|
...patch,
|
|
2225
2246
|
values
|
|
2226
2247
|
};
|
|
2227
2248
|
}));
|
|
2228
2249
|
};
|
|
2250
|
+
/** A prediction, or none where an operator refuses the row it is given: the server will answer. */
|
|
2251
|
+
const predicting = (predict) => {
|
|
2252
|
+
try {
|
|
2253
|
+
return predict();
|
|
2254
|
+
} catch (error) {
|
|
2255
|
+
if (error instanceof QueryEvaluateError) return void 0;
|
|
2256
|
+
throw error;
|
|
2257
|
+
}
|
|
2258
|
+
};
|
|
2229
2259
|
/**
|
|
2230
2260
|
* A fresh page is newer than any settled overlay it covers: an edge the page
|
|
2231
2261
|
* carries no longer needs an insert overlay, and a `remove` overlay hiding it
|
|
@@ -4356,8 +4386,8 @@ const placeableReadContract = (contract, body, operators) => {
|
|
|
4356
4386
|
}
|
|
4357
4387
|
};
|
|
4358
4388
|
};
|
|
4359
|
-
const metaOf = (remote, asked) => {
|
|
4360
|
-
const visible = visibleStoreOf(remote.entities, remote.optimistic);
|
|
4389
|
+
const metaOf = (remote, asked, operators) => {
|
|
4390
|
+
const visible = visibleStoreOf(remote.entities, remote.optimistic, operators);
|
|
4361
4391
|
let updatedAt;
|
|
4362
4392
|
let stale = false;
|
|
4363
4393
|
let loading = false;
|
|
@@ -4407,7 +4437,7 @@ const metaOf = (remote, asked) => {
|
|
|
4407
4437
|
*/
|
|
4408
4438
|
const storeOf = (bound, model) => {
|
|
4409
4439
|
const remote = bound.store.get(model);
|
|
4410
|
-
return visibleStoreOf(remote.entities, remote.optimistic);
|
|
4440
|
+
return visibleStoreOf(remote.entities, remote.optimistic, bound.operators);
|
|
4411
4441
|
};
|
|
4412
4442
|
/**
|
|
4413
4443
|
* The Model as it would be with nothing optimistic pending. Every read reaches
|
|
@@ -4426,15 +4456,20 @@ const confirmed = (bound, projection) => ({
|
|
|
4426
4456
|
read: (root) => projection.read(withoutOptimistic(bound, root))
|
|
4427
4457
|
});
|
|
4428
4458
|
const visibleStores = /* @__PURE__ */ new WeakMap();
|
|
4429
|
-
const visibleStoreOf = (entities, optimistic) => {
|
|
4430
|
-
let
|
|
4459
|
+
const visibleStoreOf = (entities, optimistic, operators) => {
|
|
4460
|
+
let byLayers = visibleStores.get(operators);
|
|
4461
|
+
if (byLayers === void 0) {
|
|
4462
|
+
byLayers = /* @__PURE__ */ new WeakMap();
|
|
4463
|
+
visibleStores.set(operators, byLayers);
|
|
4464
|
+
}
|
|
4465
|
+
let byStore = byLayers.get(optimistic.layers);
|
|
4431
4466
|
if (byStore === void 0) {
|
|
4432
4467
|
byStore = /* @__PURE__ */ new WeakMap();
|
|
4433
|
-
|
|
4468
|
+
byLayers.set(optimistic.layers, byStore);
|
|
4434
4469
|
}
|
|
4435
4470
|
let visible = byStore.get(entities);
|
|
4436
4471
|
if (visible === void 0) {
|
|
4437
|
-
visible = visibleStore(entities, optimistic);
|
|
4472
|
+
visible = visibleStore(entities, optimistic, operators);
|
|
4438
4473
|
byStore.set(entities, visible);
|
|
4439
4474
|
}
|
|
4440
4475
|
return visible;
|
|
@@ -4543,9 +4578,10 @@ const defineRemote = (config) => {
|
|
|
4543
4578
|
};
|
|
4544
4579
|
};
|
|
4545
4580
|
/** Binds a Remote domain to its store's location in the application Model. */
|
|
4546
|
-
const bindRemote = (definition, store) => ({
|
|
4581
|
+
const bindRemote = (definition, store, operators) => ({
|
|
4547
4582
|
definition,
|
|
4548
4583
|
store,
|
|
4584
|
+
operators,
|
|
4549
4585
|
contract: {
|
|
4550
4586
|
kind: "remote",
|
|
4551
4587
|
name: store.dependency.join(".") || "remote",
|
|
@@ -4651,7 +4687,7 @@ const missingRows = (known, window, size) => {
|
|
|
4651
4687
|
before: to.cursor
|
|
4652
4688
|
};
|
|
4653
4689
|
};
|
|
4654
|
-
const planAsked = (remote, asked, options) => {
|
|
4690
|
+
const planAsked = (remote, asked, options, operators) => {
|
|
4655
4691
|
const queries = [];
|
|
4656
4692
|
const items = [];
|
|
4657
4693
|
const connections = Requirement.mergeConnections(asked.connections);
|
|
@@ -4669,7 +4705,7 @@ const planAsked = (remote, asked, options) => {
|
|
|
4669
4705
|
const edges = visibleItems(known, connection.identity, remote.optimistic.overlays, remote.entities);
|
|
4670
4706
|
items.push(...itemsOf(edges.map((edge) => edge.ref), connection.select));
|
|
4671
4707
|
}
|
|
4672
|
-
const visible = visibleStoreOf(remote.entities, remote.optimistic);
|
|
4708
|
+
const visible = visibleStoreOf(remote.entities, remote.optimistic, operators);
|
|
4673
4709
|
const read = [...asked.requirements, ...items];
|
|
4674
4710
|
const planned = plan(visible, read, options);
|
|
4675
4711
|
return {
|
|
@@ -4872,7 +4908,7 @@ const observeEntry = (bound, askedOf, toMessage, options) => {
|
|
|
4872
4908
|
let byAsked = planned.get(remote);
|
|
4873
4909
|
const known = byAsked?.get(askedKey);
|
|
4874
4910
|
if (known !== void 0 && at < known.until) return known.dependencies;
|
|
4875
|
-
const plan = planAsked(remote, asked, RemotePolicy.toPlan(policy, at));
|
|
4911
|
+
const plan = planAsked(remote, asked, RemotePolicy.toPlan(policy, at), bound.operators);
|
|
4876
4912
|
const dependencies = {
|
|
4877
4913
|
refresh: refreshedAt(remote.refresh, plan.requirements, plan.queries.map((query) => query.identity)),
|
|
4878
4914
|
requirements: plan.requirements,
|
|
@@ -5116,9 +5152,11 @@ const Remote = {
|
|
|
5116
5152
|
/**
|
|
5117
5153
|
* Binds a Remote domain to its store's location in the application Model. The
|
|
5118
5154
|
* registered entity names are carried on the returned value, so `Remote.select`
|
|
5119
|
-
* rejects a selection for an entity this domain never declared.
|
|
5155
|
+
* rejects a selection for an entity this domain never declared. `operators`
|
|
5156
|
+
* is the client's table, which a pending computed assignment is predicted by
|
|
5157
|
+
* (`Operators.kernel` when not given), as `Remote.make`'s is.
|
|
5120
5158
|
*/
|
|
5121
|
-
at: bindRemote,
|
|
5159
|
+
at: (definition, store, options = {}) => bindRemote(definition, store, options.operators ?? Operators.kernel),
|
|
5122
5160
|
/**
|
|
5123
5161
|
* The resume part for this domain, for `foldkit-ssr`'s `SSR.plan({ parts })`:
|
|
5124
5162
|
* a server render sends what the plan's active Surfaces read from the store,
|
|
@@ -5203,18 +5241,18 @@ const Remote = {
|
|
|
5203
5241
|
* connection marked stale; `loading` is any of them in flight. Optimistic
|
|
5204
5242
|
* previews do not date: showing only one reads `updatedAt: undefined`.
|
|
5205
5243
|
*/
|
|
5206
|
-
meta: (bound, model, projection) => metaOf(bound.store.get(model), askedOf(projection)),
|
|
5244
|
+
meta: (bound, model, projection) => metaOf(bound.store.get(model), askedOf(projection), bound.operators),
|
|
5207
5245
|
/**
|
|
5208
5246
|
* The pure plan for a projection against a Model: the requirements its
|
|
5209
5247
|
* remote store does not satisfy, under `options` (freshness, force). A
|
|
5210
5248
|
* Surface's projection is `surface.projection(params)`.
|
|
5211
5249
|
*/
|
|
5212
|
-
plan: (bound, model, projection, options) => planAsked(bound.store.get(model), askedOf(projection), options ?? {}).requirements,
|
|
5250
|
+
plan: (bound, model, projection, options) => planAsked(bound.store.get(model), askedOf(projection), options ?? {}, bound.operators).requirements,
|
|
5213
5251
|
/**
|
|
5214
5252
|
* The queries a projection needs run before its connections read: those the
|
|
5215
5253
|
* Model does not hold, or holds stale (every one under `force`).
|
|
5216
5254
|
*/
|
|
5217
|
-
planQueries: (bound, model, projection, options) => planAsked(bound.store.get(model), askedOf(projection), options ?? {}).queries.flatMap((query) => query.ref === void 0 ? [] : [query.ref]),
|
|
5255
|
+
planQueries: (bound, model, projection, options) => planAsked(bound.store.get(model), askedOf(projection), options ?? {}, bound.operators).queries.flatMap((query) => query.ref === void 0 ? [] : [query.ref]),
|
|
5218
5256
|
/**
|
|
5219
5257
|
* The store reads see: the base store under the pending optimistic layers.
|
|
5220
5258
|
* One store is shared by every read and plan of a Model whose remote state
|
|
@@ -5276,7 +5314,7 @@ const Remote = {
|
|
|
5276
5314
|
const known = remote.connections[connection.identity];
|
|
5277
5315
|
return known === void 0 ? [] : itemsOf(visibleItems(known, connection.identity, remote.optimistic.overlays, remote.entities).map((edge) => edge.ref), connection.select);
|
|
5278
5316
|
});
|
|
5279
|
-
const requirements = plan(visibleStoreOf(remote.entities, remote.optimistic), [...asked.requirements, ...items], { force: true });
|
|
5317
|
+
const requirements = plan(visibleStoreOf(remote.entities, remote.optimistic, bound.operators), [...asked.requirements, ...items], { force: true });
|
|
5280
5318
|
const invalidated = connections.filter((connection) => remote.connections[connection.identity] !== void 0 || connection.identity in remote.failures.connections).map((connection) => connection.identity);
|
|
5281
5319
|
const marked = [...requirements.length === 0 ? [] : [{
|
|
5282
5320
|
_tag: "RefreshStarted",
|
|
@@ -5469,7 +5507,7 @@ const failedReadWords = (error) => {
|
|
|
5469
5507
|
/** The bound domain: the descriptor, the binding, and the operations over them. */
|
|
5470
5508
|
const bindDomain = (definition, store, options = {}) => {
|
|
5471
5509
|
const operators = options.operators ?? Operators.kernel;
|
|
5472
|
-
const bound = bindRemote(definition, store);
|
|
5510
|
+
const bound = bindRemote(definition, store, operators);
|
|
5473
5511
|
const readers = /* @__PURE__ */ new Map();
|
|
5474
5512
|
const keptConnections = /* @__PURE__ */ new Set();
|
|
5475
5513
|
/**
|
|
@@ -5570,7 +5608,7 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
5570
5608
|
pages,
|
|
5571
5609
|
layers,
|
|
5572
5610
|
remote.entities
|
|
5573
|
-
], `placed:${identity}`, () => placedHeld(identity, pages, changesOf({ entities: resolvedPatches(remote.entities, remote.optimistic) }, remote.entities), visibleStoreOf(remote.entities, remote.optimistic)));
|
|
5611
|
+
], `placed:${identity}`, () => placedHeld(identity, pages, changesOf({ entities: resolvedPatches(remote.entities, remote.optimistic, operators) }, remote.entities), visibleStoreOf(remote.entities, remote.optimistic, operators)));
|
|
5574
5612
|
};
|
|
5575
5613
|
/**
|
|
5576
5614
|
* The edges a loaded list shows: its pages with pending edits placed, and
|
|
@@ -5590,7 +5628,7 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
5590
5628
|
};
|
|
5591
5629
|
const insertsPlaced = (remote, identity, pages) => {
|
|
5592
5630
|
const { overlays } = remote.optimistic;
|
|
5593
|
-
const store = visibleStoreOf(remote.entities, remote.optimistic);
|
|
5631
|
+
const store = visibleStoreOf(remote.entities, remote.optimistic, operators);
|
|
5594
5632
|
return memoRead([
|
|
5595
5633
|
pages,
|
|
5596
5634
|
overlays,
|
|
@@ -5683,7 +5721,7 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
5683
5721
|
keys.add(change.edge.key);
|
|
5684
5722
|
named.set(change.connection, keys);
|
|
5685
5723
|
}
|
|
5686
|
-
const visible = visibleStoreOf(remote.entities, remote.optimistic);
|
|
5724
|
+
const visible = visibleStoreOf(remote.entities, remote.optimistic, operators);
|
|
5687
5725
|
const placed = {};
|
|
5688
5726
|
const invalidated = [];
|
|
5689
5727
|
for (const identity of Object.keys(remote.connections)) {
|
|
@@ -5770,11 +5808,11 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
5770
5808
|
const client = yield* RemoteClient;
|
|
5771
5809
|
const planOptions = RemotePolicy.toPlan(policy, now());
|
|
5772
5810
|
let current = model;
|
|
5773
|
-
for (const query of planAsked(store.get(current), askedOf(projection), planOptions).queries) {
|
|
5811
|
+
for (const query of planAsked(store.get(current), askedOf(projection), planOptions, operators).queries) {
|
|
5774
5812
|
const page = yield* queryRequestOf(query).pipe(Effect.flatMap((request) => client.query(request)));
|
|
5775
5813
|
current = hear(current, pageMessage(query.identity, page, true, query.window, query.select, now()));
|
|
5776
5814
|
}
|
|
5777
|
-
const requirements = planAsked(store.get(current), askedOf(projection), planOptions).requirements;
|
|
5815
|
+
const requirements = planAsked(store.get(current), askedOf(projection), planOptions, operators).requirements;
|
|
5778
5816
|
if (requirements.length === 0) return current;
|
|
5779
5817
|
const at = now();
|
|
5780
5818
|
const result = yield* client.read({
|
|
@@ -5795,7 +5833,7 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
5795
5833
|
entries.forEach(assertOwned);
|
|
5796
5834
|
const planOptions = RemotePolicy.toPlan(RemotePolicy.cacheFirst, now());
|
|
5797
5835
|
const plans = (current, projections) => {
|
|
5798
|
-
const planned = planAsked(store.get(current), askedUnion(projections), planOptions);
|
|
5836
|
+
const planned = planAsked(store.get(current), askedUnion(projections), planOptions, operators);
|
|
5799
5837
|
return planned.queries.length > 0 || planned.requirements.length > 0;
|
|
5800
5838
|
};
|
|
5801
5839
|
let current = model;
|
|
@@ -5907,7 +5945,7 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
5907
5945
|
}
|
|
5908
5946
|
};
|
|
5909
5947
|
const readPage = (remote, connection) => {
|
|
5910
|
-
const visible = visibleStoreOf(remote.entities, remote.optimistic);
|
|
5948
|
+
const visible = visibleStoreOf(remote.entities, remote.optimistic, operators);
|
|
5911
5949
|
return memoRead([
|
|
5912
5950
|
visible,
|
|
5913
5951
|
connection,
|
|
@@ -6095,7 +6133,7 @@ const bindDomain = (definition, store, options = {}) => {
|
|
|
6095
6133
|
if (filters !== void 0 && filters !== over.selection.entity) throw new Error(`Remote: query "${by.name}" is over "${filters}", but the list is of "${over.selection.entity}", so it cannot filter it`);
|
|
6096
6134
|
const remote = store.get(model);
|
|
6097
6135
|
const connection = remote.connections[over.ref.identity];
|
|
6098
|
-
const visible = visibleStoreOf(remote.entities, remote.optimistic);
|
|
6136
|
+
const visible = visibleStoreOf(remote.entities, remote.optimistic, operators);
|
|
6099
6137
|
const among = (connection === void 0 ? [] : shownEdges(remote, over.ref.identity, connection)).map((edge) => entityKey(edge.ref.entity, edge.ref.id));
|
|
6100
6138
|
let judged;
|
|
6101
6139
|
try {
|
|
@@ -6341,4 +6379,4 @@ const pickWindow = (window) => ({
|
|
|
6341
6379
|
});
|
|
6342
6380
|
export { emptyOptimistic as $, RelationEntityAnnotation as $n, PageSize as $t, writeRead as A, optimisticOfWrite as An, unknown as At, plan as B, isFieldUnavailable as Bn, requirementKey as Bt, remoteMessageCases as C, stableStringify as Cn, hasNext as Ct, updateRemote as D, emptyMutationState as Dn, merge as Dt, retentionRootsSchema as E, beginMutation as En, items as Et, REMOTE_CACHE_VERSION as F, emptyStore as Fn, mintOperation as Ft, emptyLiveState as G, remove as Gn, LiveRequirement as Gt, applyConnectionEvent as H, markStale as Hn, Live as Ht, RemotePersistence as I, entityKey as In, mutateRemote as It, ConnectionChange as J, tombstone as Jn, Mutate as Jt, liveHasNext as K, setStale as Kn, MAX_FIELDS_PER_REQUEST as Kt, gc as L, entry as Ln, remoteError as Lt, RemoteData as M, reconcileMutation as Mn, coalescedLayer as Mt, remoteDataSchema as N, schemaOf as Nn, connectionChangeOf as Nt, windowGrowthKey as O, failMutation as On, segment as Ot, remoteErrorSchema as P, clearStale as Pn, liveEventOf as Pt, connectionIdentity as Q, RelationAnnotation as Qn, OperationId as Qt, reachable as R, hasField as Rn, coalesceQueries as Rt, refreshedAt as S, Query$1 as Sn, emptyConnection as St, remoteModelSchema as T, Refusal as Tn, isGapped as Tt, applyEntityEvent as U, missingFields as Un, LiveChange as Ut, windowKey as V, isTombstone as Vn, ConnectionChangeSchema as Vt, classifyLive as W, readField as Wn, LiveEdge as Wt, addOverlay as X, writeEntity as Xn, MutationResult as Xt, addLayer as Y, writeEntities as Yn, MutationRequest as Yt, beginOptimistic as Z, RELATION_ALIAS as Zn, NormalizedEntity as Zt, isRemoteMessage as _, RemoteUnauthenticated as _n, pageSchema as _t, RemoteJsonAnswer as a, Read as an, relationShape as ar, settleSuccess as at, overlaysOf as b, WireBoundary as bn, cursor as bt, emptyRefresh as c, ReadRequest as cn, RemoteRequirements as cr, inspectEntity as ct, initialRemoteModel as d, RemoteLiveError as dn, requirementsOf as dr, matching as dt, QueryEdge as en, aliasedField as er, pruneOverlays as et, invalidateConnections as f, RemoteMutationError as fn, RowPlace as ft, isQueryLoading as g, RemoteRpc as gn, assemble as gt, isLoadingThrough as h, RemoteReadError as hn, Selection as ht, liveFetch as i, REMOTE_PROTOCOL_VERSION as in, relationAlias as ir, settleFailure as it, Denied as j, patchOfWrite as jn, RemoteClient as jt, withRefreshRequested as k, mutationStatus as kn, terminal as kt, failureOf as l, RelationRequest as ln, Requirement as lr, inspectRemote as lt, isLoading as m, RemoteQueryError as mn, Entity$1 as mt, RemoteUnsatisfied as n, QueryResult as nn, refParts as nr, removeOverlay as nt, RemoteJsonRequest as o, ReadBatch as on, targetsOf as or, visibleItems as ot, isFieldFailed as p, RemoteProtocolError as pn, placeIn as pt, liveHasPrevious as q, setUnavailable as qn, MAX_RELATION_DEPTH as qt, httpWithLive as r, QueryRpc as rn, refsIn as rr, resolvedPatches as rt, RemotePolicy as s, ReadBatchResult as sn, RemoteConnections as sr, visibleStore as st, Remote as t, QueryRequest as tn, isRefPage as tr, removeLayer as tt, forgetRemote as u, RemoteForbidden as un, connectionsOf as ur, belongsEncoded as ut, noFailures as v, SettledFields as vn, relationOf as vt, remoteMessageSchema as w, Mutation as wn, hasPrevious as wt, refreshIsInFlight as x, IDENTITY_SEPARATOR as xn, edge as xt, onlyOverlaid as y, WindowSchema as yn, unavailableOf as yt, deadlineOf as z, isFieldStale as zn, coalesceReads as zt };
|
|
6343
6381
|
|
|
6344
|
-
//# sourceMappingURL=src-
|
|
6382
|
+
//# sourceMappingURL=src-lVP_7bf4.mjs.map
|