foldkit-remote 0.18.1 → 0.20.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.
@@ -1,13 +1,12 @@
1
1
  import { Context, Data, Duration, Effect, Layer, Option, Result, Schema, Stream } from "effect";
2
2
  import { KeyValueStore } from "effect/persistence";
3
3
  import * as Domain from "foldkit-entity";
4
- import { AnyEntity, AnyQuery, AnyWrite, BoundWrite, Dependencies, InputExpr, Query, Write } from "foldkit-entity";
4
+ import { AnyEntity, AnyQuery, AnyWrite, BoundWrite, ConditionedWrite, Dependencies, InputExpr, Invariant, MemoryOperators, Query, Write } from "foldkit-entity";
5
5
  import { Command } from "foldkit/command";
6
6
  import { EntryWithoutKeepAlive } from "foldkit/subscription";
7
7
  import { ActiveSurface, Contract, Invalid, Metadata, ModelRef, Projection, Surface, SurfaceSource, Wiring } from "foldkit-surface";
8
8
  import { Rpc, RpcClientError, RpcGroup } from "effect/rpc";
9
9
  import * as Update from "foldkit/update";
10
- //#region src/store.d.ts
11
10
  type EntityKey = string;
12
11
  interface EntityEntry {
13
12
  readonly values: Readonly<Record<string, unknown>>;
@@ -92,8 +91,6 @@ declare const readField: (store: EntityStore, key: EntityKey, field: string) =>
92
91
  * writer that does not record windows cannot cause a refetch loop.
93
92
  */
94
93
  declare const missingFields: (store: EntityStore, key: EntityKey, fields: Iterable<string>, windows?: Readonly<Record<string, string>>) => ReadonlyArray<string>;
95
- //#endregion
96
- //#region src/connection.d.ts
97
94
  interface EdgeRef {
98
95
  readonly entity: string;
99
96
  readonly id: string;
@@ -137,8 +134,6 @@ declare const hasPrevious: (connection: Connection) => boolean;
137
134
  declare const hasNext: (connection: Connection) => boolean;
138
135
  /** A connection with more than one segment has an explicit unknown gap. */
139
136
  declare const isGapped: (connection: Connection) => boolean;
140
- //#endregion
141
- //#region src/remoteData.d.ts
142
137
  interface RemoteError {
143
138
  readonly _tag: string;
144
139
  readonly message: string;
@@ -272,19 +267,30 @@ declare const RemoteData: {
272
267
  denied: (error: RemoteError) => Option.Option<Denied>;
273
268
  map: <A, B>(data: RemoteData<A>, f: (value: A) => B) => RemoteData<B>;
274
269
  };
275
- //#endregion
276
- //#region src/mutation.d.ts
277
270
  interface NormalizedPatch {
278
271
  readonly entity: string;
279
272
  readonly id: string;
280
273
  readonly values: Readonly<Record<string, unknown>>;
281
274
  }
275
+ /**
276
+ * A patch a pending request shows, and the amounts it moves fields by: each
277
+ * added, whenever the store is read, to the value under it, so a change that
278
+ * reaches the store meanwhile is added to, not hidden.
279
+ */
280
+ interface PendingPatch extends NormalizedPatch {
281
+ readonly adds?: Readonly<Record<string, number>>;
282
+ }
282
283
  interface MutationState {
283
284
  readonly pending: ReadonlySet<string>;
284
285
  readonly applied: ReadonlySet<string>;
285
286
  readonly failed: ReadonlySet<string>;
286
287
  /** Why each request in `failed` failed, kept exactly as long as `failed` keeps its id. */
287
288
  readonly errors: ReadonlyMap<string, RemoteError>;
289
+ /**
290
+ * The operation id each request in `failed` was sent with, kept as `errors`
291
+ * is: a retry of that request id sends it again, so a server recognises it.
292
+ */
293
+ readonly operations: ReadonlyMap<string, string>;
288
294
  /**
289
295
  * How many mutations this model has started. A bound domain takes its next
290
296
  * request id from here, so `update` stays pure and the id exists before the
@@ -294,7 +300,7 @@ interface MutationState {
294
300
  }
295
301
  declare const emptyMutationState: MutationState;
296
302
  declare const beginMutation: (state: MutationState, requestId: string) => MutationState;
297
- declare const failMutation: (state: MutationState, requestId: string, error: RemoteError) => MutationState;
303
+ declare const failMutation: (state: MutationState, requestId: string, error: RemoteError, operation: string) => MutationState;
298
304
  /** What Remote knows of one mutation request, by the id `mutate` returned. */
299
305
  type MutationStatus =
300
306
  /** Never started here, or settled so long ago its id has left the window. */
@@ -347,6 +353,18 @@ interface MutationDescriptor<Name extends string, Input, Output, Refused = unkno
347
353
  */
348
354
  readonly write?: AnyWrite | undefined;
349
355
  }
356
+ declare const conflict: Schema.TaggedStruct<"Conflict", {}>;
357
+ declare const unmet: Schema.TaggedStruct<"Unmet", {}>;
358
+ /**
359
+ * The row the write would leave breaks one of its Entity's invariants: which
360
+ * one, what to tell the author, and the fields to show it beside. None and
361
+ * empty when the invariant reads a member hidden from whoever asked.
362
+ */
363
+ declare const invalid: Schema.TaggedStruct<"Invalid", {
364
+ readonly rule: Schema.OptionFromNullOr<Schema.String>;
365
+ readonly message: Schema.String;
366
+ readonly path: Schema.$Array<Schema.String>;
367
+ }>;
350
368
  /** Refusals a form or an editor knows how to show. */
351
369
  declare const Refusal: {
352
370
  /** One input key was refused, for `reason`, which a form shows beside that key. */
@@ -356,6 +374,14 @@ declare const Refusal: {
356
374
  }>;
357
375
  /** The row moved on since the client read it; the author decides what wins. */
358
376
  conflict: Schema.TaggedStruct<"Conflict", {}>;
377
+ /** The row does not hold what the write's `when` asks of it, where it would commit. */
378
+ unmet: Schema.TaggedStruct<"Unmet", {}>;
379
+ /** The row the write would leave breaks an invariant of its Entity. */
380
+ invalid: Schema.TaggedStruct<"Invalid", {
381
+ readonly rule: Schema.OptionFromNullOr<Schema.String>;
382
+ readonly message: Schema.String;
383
+ readonly path: Schema.$Array<Schema.String>;
384
+ }>;
359
385
  /** Whether a refusal, of whatever mutation, is a `Refusal.field`. */
360
386
  isField: <I>(input: I) => input is I & {
361
387
  readonly _tag: "Field";
@@ -366,7 +392,30 @@ declare const Refusal: {
366
392
  isConflict: <I>(input: I) => input is I & {
367
393
  readonly _tag: "Conflict";
368
394
  };
395
+ /** Whether a refusal, of whatever mutation, is `Refusal.unmet`. */
396
+ isUnmet: <I>(input: I) => input is I & {
397
+ readonly _tag: "Unmet";
398
+ };
399
+ /** Whether a refusal, of whatever mutation, is `Refusal.invalid`. */
400
+ isInvalid: <I>(input: I) => input is I & {
401
+ readonly _tag: "Invalid";
402
+ readonly rule: Option.Option<string>;
403
+ readonly message: string;
404
+ readonly path: readonly string[];
405
+ };
406
+ /**
407
+ * Whether a refusal is `Refusal.invalid` naming this invariant: the one
408
+ * `Entity.invariant` returned, or one `Entity.invariants` reads. An invariant
409
+ * over a member hidden from the asker names none, so it matches nothing.
410
+ */
411
+ isInvalidBy: (refusal: unknown, invariant: Pick<Invariant, 'id'>) => boolean;
369
412
  };
413
+ /**
414
+ * What a declared write may be refused with: unmet too, when it has a `when`,
415
+ * and invalid always, since the server's Entity may hold invariants the
416
+ * client's does not show.
417
+ */
418
+ type RefusalOfWrite<W> = (W extends ConditionedWrite<any, any> ? typeof conflict.Type | typeof unmet.Type : typeof conflict.Type) | typeof invalid.Type;
370
419
  /** A codec, or the fields of a `Schema.Struct` where one is expected. */
371
420
  type SchemaOrFields = Schema.Codec<any, any, any, any> | Schema.Struct.Fields;
372
421
  /** The decoded type of a codec, or of the Struct the fields describe. */
@@ -381,10 +430,10 @@ declare const patchOfWrite: (bound: BoundWrite) => NormalizedPatch;
381
430
  /**
382
431
  * What a declared write shows before the server answers: an update's or an
383
432
  * insert's row as a patch (an update's only for the keys named, when some
384
- * are). A delete shows nothing, since no operation removes a row from every
433
+ * are), and an update's increments as amounts over the value the store holds. A delete shows nothing, since no operation removes a row from every
385
434
  * list it is in; its answer does.
386
435
  */
387
- declare const optimisticOfWrite: (write: AnyWrite, input: unknown, keys: ReadonlyArray<string> | undefined) => ReadonlyArray<NormalizedPatch>;
436
+ declare const optimisticOfWrite: (write: AnyWrite, input: unknown, keys: ReadonlyArray<string> | undefined) => ReadonlyArray<PendingPatch>;
388
437
  declare const Mutation: {
389
438
  /**
390
439
  * Declares a mutation. `Input` and `Output` are codecs, or the fields of the
@@ -396,10 +445,11 @@ declare const Mutation: {
396
445
  * A mutation that is a declared `Write` (`update`, `insert` or `delete`): its
397
446
  * input is the write's, and it answers nothing but the row it changed, as a
398
447
  * patch, or its deletion. It may be refused as a conflict, for a write that
399
- * `expect`s a revision the row has moved past.
448
+ * `expect`s a revision the row has moved past, for a write with a `when` as
449
+ * unmet, and as invalid when the row it would leave breaks an invariant.
400
450
  */
401
- write: <const Name extends string, Fields extends Schema.Struct.Fields>(name: Name, write: Write<any, Fields>) => MutationDescriptor<Name, Schema.Struct.Type<Fields>, {}, typeof Refusal.conflict.Type> & {
402
- readonly write: Write<any, Fields>;
451
+ write: <const Name extends string, Fields extends Schema.Struct.Fields, W extends Write<any, Fields> = Write<any, Fields>>(name: Name, write: W & Write<any, Fields>) => MutationDescriptor<Name, Schema.Struct.Type<Fields>, {}, RefusalOfWrite<W>> & {
452
+ readonly write: W;
403
453
  };
404
454
  make: <const Name extends string, Input extends SchemaOrFields, Output extends SchemaOrFields, Refused = never>(name: Name, config: {
405
455
  readonly Input: Input;
@@ -407,11 +457,9 @@ declare const Mutation: {
407
457
  readonly Refusal?: Schema.Codec<Refused, any>;
408
458
  }) => MutationDescriptor<Name, TypeOf<Input>, TypeOf<Output>, Refused>;
409
459
  };
410
- //#endregion
411
- //#region src/optimistic.d.ts
412
460
  interface EntityLayer {
413
461
  readonly id: string;
414
- readonly patches: ReadonlyArray<NormalizedPatch>;
462
+ readonly patches: ReadonlyArray<PendingPatch>;
415
463
  }
416
464
  /**
417
465
  * Edges placed outside a connection's server-known region (`prepend`,
@@ -436,7 +484,7 @@ type ConnectionChange = {
436
484
  readonly edge: Edge;
437
485
  };
438
486
  /** What a request changes before the server answers: entity patches and connection changes. */
439
- type OptimisticOperation = NormalizedPatch | ConnectionChange;
487
+ type OptimisticOperation = PendingPatch | ConnectionChange;
440
488
  /** A connection, by identity string or by anything that carries one (a `QueryRef`). */
441
489
  type ConnectionIdentity = string | {
442
490
  readonly identity: string;
@@ -487,6 +535,13 @@ declare const removeOverlay: (optimistic: OptimisticState, id: string) => Optimi
487
535
  * is dated `Infinity`, so freshness never plans or times it.
488
536
  */
489
537
  declare const visibleStore: (base: EntityStore, optimistic: OptimisticState) => EntityStore;
538
+ /**
539
+ * Every pending patch in order, each amount added to the value under it: the
540
+ * store's, or an earlier layer's. A prediction, so only over a number the
541
+ * client holds: a field it has not read, or holds as anything else, keeps
542
+ * what it shows until the server answers with the sum.
543
+ */
544
+ declare const resolvedPatches: (base: EntityStore, optimistic: OptimisticState) => ReadonlyArray<NormalizedPatch>;
490
545
  /**
491
546
  * A fresh page is newer than any settled overlay it covers: an edge the page
492
547
  * carries no longer needs an insert overlay, and a `remove` overlay hiding it
@@ -519,8 +574,6 @@ declare const settleFailure: (optimistic: OptimisticState, requestId: string) =>
519
574
  * Boundaries still come from the connection's segments.
520
575
  */
521
576
  declare const visibleItems: (connection: Connection, connectionId: string, overlays: ReadonlyArray<ConnectionOverlay>, store?: EntityStore) => ReadonlyArray<Edge>;
522
- //#endregion
523
- //#region src/query.d.ts
524
577
  type LiveInsertion = 'visible' | 'boundary' | 'invalidate' | 'ignore';
525
578
  interface LivePolicy {
526
579
  readonly prepend?: LiveInsertion;
@@ -592,9 +645,11 @@ declare const Query$1: {
592
645
  where: <const P extends ReadonlyArray<import("foldkit-entity").Predicate>>(...predicates: P) => <E extends AnyEntity>(self: Query<E> & (string extends import("foldkit-entity").ReadsOf<P[number]> ? unknown : [import("foldkit-entity").ReadsOf<P[number]>] extends [E["name"]] ? unknown : import("foldkit-entity").Invalid<`foldkit-entity: a predicate reads ${Exclude<import("foldkit-entity").ReadsOf<P[number]>, E["name"]>}, but the query is from ${E["name"]}`>)) => Query<E>;
593
646
  orderBy: <const T extends ReadonlyArray<import("foldkit-entity").Ordering>>(...terms: T) => <E extends AnyEntity>(self: Query<E> & (string extends import("foldkit-entity").ReadsOf<T[number]> ? unknown : [import("foldkit-entity").ReadsOf<T[number]>] extends [E["name"]] ? unknown : import("foldkit-entity").Invalid<`foldkit-entity: an ordering term reads ${Exclude<import("foldkit-entity").ReadsOf<T[number]>, E["name"]>}, but the query is from ${E["name"]}`>)) => Query<E>;
594
647
  orderFor: (self: AnyQuery, input: Readonly<Record<string, unknown>>) => ReadonlyArray<import("foldkit-entity").OrderTerm>;
595
- placement: (self: AnyQuery, input: Readonly<Record<string, unknown>>) => import("foldkit-entity").Placement;
648
+ placement: (self: AnyQuery, input: Readonly<Record<string, unknown>>, options?: {
649
+ readonly operators?: import("foldkit-entity").OperatorTable | undefined;
650
+ }) => import("foldkit-entity").Placement;
596
651
  dependencies: (self: AnyQuery) => import("foldkit-entity").QueryDependencies;
597
- unsupported: (self: AnyQuery, supported: ReadonlyArray<import("foldkit-entity").Operation>) => ReadonlyArray<import("foldkit-entity").Operation>;
652
+ unsupported: (self: AnyQuery, supported: ReadonlyArray<import("foldkit-entity").Operation>, operators?: import("foldkit-entity").OperatorTable) => ReadonlyArray<string>;
598
653
  show: (self: AnyQuery) => string;
599
654
  /** Declares the entity and options a query's result is a connection over. */
600
655
  connection: <Entity extends string>(entity: {
@@ -647,8 +702,6 @@ declare const Query$1: {
647
702
  after: (cursor: Cursor) => <R extends QueryRef<string, unknown>>(ref: R) => R;
648
703
  before: (cursor: Cursor) => <R extends QueryRef<string, unknown>>(ref: R) => R;
649
704
  };
650
- //#endregion
651
- //#region src/requirement.d.ts
652
705
  /**
653
706
  * The slice required of an entity. `windows` carries a pagination window per
654
707
  * relation field, and `relations` the slice required of each relation's
@@ -706,8 +759,6 @@ declare const requirementsOf: (projection: {
706
759
  declare const connectionsOf: (projection: {
707
760
  readonly metadata: Metadata;
708
761
  }) => ReadonlyArray<ConnectionRequirement>;
709
- //#endregion
710
- //#region src/wire.d.ts
711
762
  /**
712
763
  * The read/live protocol version. A batch names the version it speaks and the
713
764
  * server refuses a mismatch with `RemoteProtocolError`, so a shape change never
@@ -801,9 +852,21 @@ declare const ReadBatchResult: Schema.Struct<{
801
852
  readonly fields: Schema.$Array<Schema.String>;
802
853
  }>>;
803
854
  }>;
855
+ /**
856
+ * One operation's identity across every client: minted where it is first sent
857
+ * and sent again with each retry of it. Bounded, since a server keys a record
858
+ * of the write by it.
859
+ */
860
+ declare const OperationId: Schema.String;
804
861
  declare const MutationRequest: Schema.Struct<{
805
- /** Stable across transport retries so a mutation is not applied twice. */
862
+ /**
863
+ * This client's id for the request, the same on each retry of it. It is
864
+ * unique within one client's Model only (a counter there), so it names a
865
+ * request to that client; `operation` names it to a server.
866
+ */
806
867
  readonly requestId: Schema.String;
868
+ /** The operation's identity across clients: what a server keys a record of the write by. */
869
+ readonly operation: Schema.optional<Schema.String>;
807
870
  readonly mutation: Schema.String;
808
871
  readonly input: Schema.Unknown;
809
872
  /** For a mutation that is a `Write`: the input keys to write, when not all of them. */
@@ -927,8 +990,14 @@ declare const Read: Rpc.Rpc<"FoldkitRemoteRead", Schema.Struct<{
927
990
  }>>;
928
991
  }>, Schema.Union<readonly [typeof RemoteReadError, typeof RemoteProtocolError, typeof RemoteUnauthenticated]>, never, never>;
929
992
  declare const Mutate: Rpc.Rpc<"FoldkitRemoteMutate", Schema.Struct<{
930
- /** Stable across transport retries so a mutation is not applied twice. */
993
+ /**
994
+ * This client's id for the request, the same on each retry of it. It is
995
+ * unique within one client's Model only (a counter there), so it names a
996
+ * request to that client; `operation` names it to a server.
997
+ */
931
998
  readonly requestId: Schema.String;
999
+ /** The operation's identity across clients: what a server keys a record of the write by. */
1000
+ readonly operation: Schema.optional<Schema.String>;
932
1001
  readonly mutation: Schema.String;
933
1002
  readonly input: Schema.Unknown;
934
1003
  /** For a mutation that is a `Write`: the input keys to write, when not all of them. */
@@ -1171,8 +1240,14 @@ declare const RemoteRpc: RpcGroup.RpcGroup<Rpc.Rpc<"FoldkitRemoteLive", Schema.S
1171
1240
  readonly cursor: Schema.Number;
1172
1241
  readonly connection: Schema.String;
1173
1242
  }>]>, Schema.Union<readonly [typeof RemoteLiveError, typeof RemoteProtocolError, typeof RemoteUnauthenticated]>>, Schema.Never, never, never> | Rpc.Rpc<"FoldkitRemoteMutate", Schema.Struct<{
1174
- /** Stable across transport retries so a mutation is not applied twice. */
1243
+ /**
1244
+ * This client's id for the request, the same on each retry of it. It is
1245
+ * unique within one client's Model only (a counter there), so it names a
1246
+ * request to that client; `operation` names it to a server.
1247
+ */
1175
1248
  readonly requestId: Schema.String;
1249
+ /** The operation's identity across clients: what a server keys a record of the write by. */
1250
+ readonly operation: Schema.optional<Schema.String>;
1176
1251
  readonly mutation: Schema.String;
1177
1252
  readonly input: Schema.Unknown;
1178
1253
  /** For a mutation that is a `Write`: the input keys to write, when not all of them. */
@@ -1275,8 +1350,6 @@ declare const RemoteRpc: RpcGroup.RpcGroup<Rpc.Rpc<"FoldkitRemoteLive", Schema.S
1275
1350
  readonly fields: Schema.$Array<Schema.String>;
1276
1351
  }>>;
1277
1352
  }>, Schema.Union<readonly [typeof RemoteReadError, typeof RemoteProtocolError, typeof RemoteUnauthenticated]>, never, never>>;
1278
- //#endregion
1279
- //#region src/coalesce.d.ts
1280
1353
  type Batch = Schema.Schema.Type<typeof ReadBatch>;
1281
1354
  type BatchResult = Schema.Schema.Type<typeof ReadBatchResult>;
1282
1355
  type ReadError = RemoteReadError | RemoteProtocolError | RemoteUnauthenticated;
@@ -1306,8 +1379,6 @@ declare const coalesceQueries: (query: QueryRun, options?: CoalesceOptions) => E
1306
1379
  * idempotent, so writing it more than once is harmless.
1307
1380
  */
1308
1381
  declare const coalesceReads: (read: BatchRead, options?: CoalesceOptions) => Effect.Effect<BatchRead>;
1309
- //#endregion
1310
- //#region src/live.d.ts
1311
1382
  type LiveCursor = number;
1312
1383
  type LiveEvent = {
1313
1384
  readonly _tag: 'EntityPatched';
@@ -1381,8 +1452,6 @@ declare const applyConnectionEvent: (state: LiveState, optimistic: OptimisticSta
1381
1452
  declare const liveHasPrevious: (connection: Connection, state: LiveState, connectionId: string) => boolean;
1382
1453
  /** `hasNext` accounting for edges recorded outside the loaded boundary. */
1383
1454
  declare const liveHasNext: (connection: Connection, state: LiveState, connectionId: string) => boolean;
1384
- //#endregion
1385
- //#region src/client.d.ts
1386
1455
  declare const RemoteClient_base: Context.ServiceClass<RemoteClient, "foldkit-remote/RemoteClient", {
1387
1456
  readonly read: (batch: Schema.Schema.Type<typeof ReadBatch>) => Effect.Effect<Schema.Schema.Type<typeof ReadBatchResult>, RemoteReadError | RemoteProtocolError | RemoteUnauthenticated>;
1388
1457
  readonly query: (request: Schema.Schema.Type<typeof QueryRequest>) => Effect.Effect<Schema.Schema.Type<typeof QueryResult>, RemoteQueryError | RemoteUnauthenticated>;
@@ -1424,11 +1493,24 @@ declare const remoteError: (error: {
1424
1493
  readonly reason?: string | undefined;
1425
1494
  }) => RemoteError;
1426
1495
  declare const coalescedLayer: <E, R>(layer: Layer.Layer<RemoteClient, E, R>, options?: CoalesceOptions) => Layer.Layer<RemoteClient, E, R>;
1496
+ /**
1497
+ * A new operation's identity: random, so unique across clients and reloads.
1498
+ * `randomUUID` exists only in a secure context, so a page served over plain
1499
+ * HTTP draws 128 random bits from `getRandomValues`, which exists in all.
1500
+ */
1501
+ declare const mintOperation: () => string;
1427
1502
  /**
1428
1503
  * `Remote.mutate` as a standalone effect, so `Remote.mutateInto` can reuse it
1429
1504
  * without the object literal referencing itself.
1430
1505
  */
1431
- declare const mutateRemote: <Name extends string, Input, Output>(mutation: MutationDescriptor<Name, Input, Output, unknown>, input: Input, requestId: string, keys?: readonly string[] | undefined) => Effect.Effect<{
1506
+ declare const mutateRemote: <Name extends string, Input, Output>(mutation: MutationDescriptor<Name, Input, Output, unknown>, input: Input, requestId: string, options?: {
1507
+ readonly keys?: ReadonlyArray<string> | undefined;
1508
+ /**
1509
+ * The operation's identity across clients, the same on each retry of it:
1510
+ * minted here when not given, so a retry must pass the one first sent.
1511
+ */
1512
+ readonly operation?: string | undefined;
1513
+ } | undefined) => Effect.Effect<{
1432
1514
  output: Output;
1433
1515
  entities: readonly {
1434
1516
  readonly entity: string;
@@ -1443,8 +1525,6 @@ declare const mutateRemote: <Name extends string, Input, Output>(mutation: Mutat
1443
1525
  readonly id: string;
1444
1526
  }[];
1445
1527
  }, RemoteForbidden | RemoteMutationError | RemoteUnauthenticated, RemoteClient>;
1446
- //#endregion
1447
- //#region src/relation.d.ts
1448
1528
  interface RefParts {
1449
1529
  readonly entity: string;
1450
1530
  readonly id: string;
@@ -1500,8 +1580,6 @@ declare const isRefPage: (value: unknown) => value is RefPageValue;
1500
1580
  * scalar field, which cannot take a nested selection.
1501
1581
  */
1502
1582
  declare const relationShape: (schema: Schema.Top) => RelationShape | undefined;
1503
- //#endregion
1504
- //#region src/selection.d.ts
1505
1583
  /** One page of a paginated relation with each target assembled through a nested selection. */
1506
1584
  interface Page<Item> {
1507
1585
  readonly items: ReadonlyArray<Item>;
@@ -1582,8 +1660,6 @@ declare const assemble: (store: EntityStore, key: string, requirement: RelationR
1582
1660
  * cannot assemble rather than waiting on a field nothing will fetch.
1583
1661
  */
1584
1662
  declare const unavailableOf: (store: EntityStore, key: string, requirement: RelationRequirement) => string | undefined;
1585
- //#endregion
1586
- //#region src/entity.d.ts
1587
1663
  type AnySchema = Schema.Schema<unknown>;
1588
1664
  declare const entityRefFields: unique symbol;
1589
1665
  /**
@@ -1684,8 +1760,6 @@ declare const Entity$2: {
1684
1760
  */
1685
1761
  patch: <Name extends string, F extends Schema.Struct.Fields>(ref: EntityRef<Name, F>, patch: Partial<Schema.Struct.Encoded<F>>) => EntityPatch<Name, F>;
1686
1762
  };
1687
- //#endregion
1688
- //#region src/matching.d.ts
1689
1763
  /**
1690
1764
  * An answer over the rows the client holds — never over the rows that exist.
1691
1765
  *
@@ -1726,6 +1800,8 @@ interface MatchingOptions {
1726
1800
  * it, a caller narrows to a connection's own edges.
1727
1801
  */
1728
1802
  readonly among?: ReadonlyArray<EntityKey> | undefined;
1803
+ /** How the body's primitive operators are run: `Remote.make`'s `operators`. */
1804
+ readonly operators?: MemoryOperators | undefined;
1729
1805
  }
1730
1806
  /**
1731
1807
  * The rows of `descriptor`'s Entity that the store holds and the body matches.
@@ -1769,9 +1845,7 @@ type Belongs = 'yes' | 'no' | 'unknown';
1769
1845
  * asymmetry with `matching`, which takes a decoded input, is the shape of the
1770
1846
  * two real callers rather than an oversight.
1771
1847
  */
1772
- declare const belongsEncoded: <Name extends string, Input>(store: EntityStore, descriptor: QueryDescriptor<Name, Input, unknown>, encoded: Readonly<Record<string, unknown>>, key: EntityKey) => Belongs;
1773
- //#endregion
1774
- //#region src/retain.d.ts
1848
+ declare const belongsEncoded: <Name extends string, Input>(store: EntityStore, descriptor: QueryDescriptor<Name, Input, unknown>, encoded: Readonly<Record<string, unknown>>, key: EntityKey, operators?: MemoryOperators | undefined) => Belongs;
1775
1849
  /** A connection to keep: its identity, and what a page of it selects of each item, if a projection reads it. */
1776
1850
  interface ConnectionRoot {
1777
1851
  readonly identity: string;
@@ -1800,8 +1874,6 @@ declare const reachable: (store: EntityStore, roots: RetentionRoots, connections
1800
1874
  declare const gc: (state: Retained & {
1801
1875
  readonly mutations: MutationState;
1802
1876
  }, roots: RetentionRoots) => Retained;
1803
- //#endregion
1804
- //#region src/persistence.d.ts
1805
1877
  /** Bump when the serialized shape changes; a mismatch discards the cache. */
1806
1878
  declare const REMOTE_CACHE_VERSION = 5;
1807
1879
  /**
@@ -1909,8 +1981,6 @@ declare const RemotePersistence: {
1909
1981
  readonly key: string;
1910
1982
  } & SnapshotOptions) => Effect.Effect<Snapshot, KeyValueStore.KeyValueStoreError, KeyValueStore.KeyValueStore>;
1911
1983
  };
1912
- //#endregion
1913
- //#region src/model.d.ts
1914
1984
  /**
1915
1985
  * The normalized cache as a Foldkit Submodel. `Remote.define` returns a schema
1916
1986
  * and an `update` for this shape; `updateRemote` reconciles every producer.
@@ -2127,6 +2197,8 @@ type RemoteMessage = {
2127
2197
  readonly _tag: 'MutationFailed';
2128
2198
  readonly requestId: string;
2129
2199
  readonly error: RemoteError;
2200
+ /** The operation id it was sent with, for a retry to send again. */
2201
+ readonly operation: string;
2130
2202
  } |
2131
2203
  /**
2132
2204
  * Operations shown over the store with no request behind them, until they are
@@ -2296,6 +2368,7 @@ declare const remoteMessageCases: {
2296
2368
  readonly refusal: Schema.optional<Schema.Unknown>;
2297
2369
  readonly reason: Schema.optional<Schema.String>;
2298
2370
  }>;
2371
+ operation: Schema.String;
2299
2372
  };
2300
2373
  OverlayShown: {
2301
2374
  id: Schema.String;
@@ -2449,8 +2522,6 @@ declare const failureOf: (model: RemoteModel, entity: string, id: string, relati
2449
2522
  * reducing `writeEntity` by hand.
2450
2523
  */
2451
2524
  declare const writeRead: (store: EntityStore, requests: ReadonlyArray<Requirement>, result: Schema.Schema.Type<typeof ReadBatchResult>, now?: number) => EntityStore;
2452
- //#endregion
2453
- //#region src/inspect.d.ts
2454
2525
  /** A query body's `Dependencies` as plain data: each field by its Entity's name and key. */
2455
2526
  interface ExplainedDependencies {
2456
2527
  readonly fields: ReadonlyArray<{
@@ -2459,6 +2530,11 @@ interface ExplainedDependencies {
2459
2530
  }>;
2460
2531
  readonly inputs: Dependencies['inputs'];
2461
2532
  readonly operations: Dependencies['operations'];
2533
+ /** Each operator it calls, by its id and version. */
2534
+ readonly operators: ReadonlyArray<{
2535
+ readonly id: string;
2536
+ readonly version: number;
2537
+ }>;
2462
2538
  }
2463
2539
  /** A serializable summary of a RemoteModel for DevTools and diagnostics. */
2464
2540
  interface RemoteInspection {
@@ -2595,8 +2671,6 @@ interface QueryExplanation {
2595
2671
  readonly tag: string;
2596
2672
  }> | undefined;
2597
2673
  }
2598
- //#endregion
2599
- //#region src/plan.d.ts
2600
2674
  type Window = NonNullable<Requirement['windows']>[string];
2601
2675
  /** A stable key for a window, so two equal windows compare equal. */
2602
2676
  declare const windowKey: (window: Window) => string;
@@ -2628,8 +2702,6 @@ interface Deadline {
2628
2702
  */
2629
2703
  declare const deadlineOf: (store: EntityStore, requirements: readonly Requirement[], freshness: PlanFreshness) => Deadline | undefined;
2630
2704
  declare const plan: (store: EntityStore, requirements: readonly Requirement[], options?: PlanOptions) => ReadonlyArray<Requirement>;
2631
- //#endregion
2632
- //#region src/policy.d.ts
2633
2705
  type RemotePolicy =
2634
2706
  /** Fetch only fields the store lacks (missing, stale, or re-windowed). */
2635
2707
  {
@@ -2669,8 +2741,6 @@ declare const RemotePolicy: {
2669
2741
  */
2670
2742
  refreshes: (policy: RemotePolicy) => boolean;
2671
2743
  };
2672
- //#endregion
2673
- //#region src/resume.d.ts
2674
2744
  /**
2675
2745
  * A resume part, in the shape `foldkit-ssr`'s `SSR.plan` takes in `parts`.
2676
2746
  * Declared here structurally, so neither package depends on the other.
@@ -2696,8 +2766,6 @@ declare const resumePart: <AppModel, Store extends RemoteModel>(domain: {
2696
2766
  }, options?: {
2697
2767
  readonly id?: string | undefined;
2698
2768
  }) => RemoteResumePart<AppModel>;
2699
- //#endregion
2700
- //#region src/json.d.ts
2701
2769
  /** A request: which of Remote's calls, and its payload as the RPC protocol encodes it. */
2702
2770
  declare const RemoteJsonRequest: Schema.Struct<{
2703
2771
  readonly operation: Schema.Literals<readonly ["read", "query", "mutate"]>;
@@ -2741,8 +2809,6 @@ declare const http: (url: string, options?: {
2741
2809
  readonly headers?: (() => Readonly<Record<string, string>>) | undefined;
2742
2810
  readonly fetch?: typeof fetch | undefined;
2743
2811
  }) => RemoteRpcClient;
2744
- //#endregion
2745
- //#region src/sse.d.ts
2746
2812
  /** What `httpWithLive` needs besides the URL. Mirrors `http`, plus the fetch itself. */
2747
2813
  interface LiveFetchOptions {
2748
2814
  /** Read per request, so a token that changes reaches the next call. */
@@ -2757,8 +2823,6 @@ declare const liveFetch: (url: string, options?: LiveFetchOptions) => RemoteRpcC
2757
2823
  * `http` sends them, live as `liveFetch` streams it, for `clientLayer`.
2758
2824
  */
2759
2825
  declare const httpWithLive: (url: string, options?: LiveFetchOptions) => RemoteRpcClient;
2760
- //#endregion
2761
- //#region src/placement.d.ts
2762
2826
  /** Where a row falls in a loaded list. */
2763
2827
  type RowPlace = Data.TaggedEnum<{
2764
2828
  /** Just before this edge, in this segment. */
@@ -2874,13 +2938,11 @@ declare const RowPlace: {
2874
2938
  };
2875
2939
  /**
2876
2940
  * Where the row stored under `key` falls in `connection`, by `body`'s order
2877
- * for `input` (encoded, as a connection's identity carries it). The row's own
2878
- * edge, if the list holds it, is left out: placing a row that moved asks
2879
- * where it goes now.
2941
+ * for `input` (encoded, as a connection's identity carries it), a call in it
2942
+ * run by `operators`. The row's own edge, if the list holds it, is left out:
2943
+ * placing a row that moved asks where it goes now.
2880
2944
  */
2881
- declare const placeIn: (store: EntityStore, connection: Connection, body: AnyQuery, input: Readonly<Record<string, unknown>>, key: string) => RowPlace;
2882
- //#endregion
2883
- //#region src/index.d.ts
2945
+ declare const placeIn: (store: EntityStore, connection: Connection, body: AnyQuery, input: Readonly<Record<string, unknown>>, key: string, operators: MemoryOperators) => RowPlace;
2884
2946
  /** What a domain registers: a Remote descriptor, or a `foldkit-entity` Entity (read through `Entity.from`). */
2885
2947
  type EntityLike = EntityDescriptor<any, any> | Domain.AnyEntity;
2886
2948
  /**
@@ -3516,6 +3578,7 @@ declare const Remote: {
3516
3578
  readonly refusal: Schema.optional<Schema.Unknown>;
3517
3579
  readonly reason: Schema.optional<Schema.String>;
3518
3580
  }>;
3581
+ operation: Schema.String;
3519
3582
  };
3520
3583
  OverlayShown: {
3521
3584
  id: Schema.String;
@@ -3659,6 +3722,7 @@ declare const Remote: {
3659
3722
  readonly refusal: Schema.optional<Schema.Unknown>;
3660
3723
  readonly reason: Schema.optional<Schema.String>;
3661
3724
  }>;
3725
+ operation: Schema.String;
3662
3726
  };
3663
3727
  OverlayShown: {
3664
3728
  id: Schema.String;
@@ -3773,6 +3837,13 @@ declare const Remote: {
3773
3837
  * a collation that drifts should be found.
3774
3838
  */
3775
3839
  readonly verifyPlacement?: boolean | undefined;
3840
+ /**
3841
+ * How the client runs a body's primitive operators when it judges rows it
3842
+ * holds (`Operators`): the kernel's when not given. A body calling one this
3843
+ * table lacks is judged by the server instead, as any row the client cannot
3844
+ * judge is.
3845
+ */
3846
+ readonly operators?: MemoryOperators | undefined;
3776
3847
  }) => RemoteDomain<AppModel, Store, Entities, Queries, Mutations>;
3777
3848
  /**
3778
3849
  * Declares a Remote domain without binding it: its entities, queries, and
@@ -3973,7 +4044,10 @@ declare const Remote: {
3973
4044
  * returning the result's normalized patches so the caller can reconcile them
3974
4045
  * through `updateRemote`'s `MutationSucceeded` (or `Remote.mutateInto`).
3975
4046
  */
3976
- mutate: <Name extends string, Input, Output>(mutation: MutationDescriptor<Name, Input, Output, unknown>, input: Input, requestId: string, keys?: readonly string[] | undefined) => Effect.Effect<{
4047
+ mutate: <Name extends string, Input, Output>(mutation: MutationDescriptor<Name, Input, Output, unknown>, input: Input, requestId: string, options?: {
4048
+ readonly keys?: ReadonlyArray<string> | undefined;
4049
+ readonly operation?: string | undefined;
4050
+ } | undefined) => Effect.Effect<{
3977
4051
  output: Output;
3978
4052
  entities: readonly {
3979
4053
  readonly entity: string;
@@ -4019,6 +4093,5 @@ declare const Remote: {
4019
4093
  */
4020
4094
  live: <AppModel, Store extends RemoteModel, Names extends string, Model, SurfaceMessage, Params, Message = RemoteMessage>(bound: BoundRemote<AppModel, Store, Names>, surface: Surface<AppModel, Model, SurfaceMessage, Params>, params: Params, toMessage?: (message: RemoteMessage) => Message, options?: LiveOptions) => EntryWithoutKeepAlive<AppModel, Message, LiveDependencies, RemoteClient>;
4021
4095
  };
4022
- //#endregion
4023
- export { QueryExplanation as $, merge as $i, coalesceReads as $n, ConnectionIdentity as $r, Entity$2 as $t, RemoteWiring as A, optimisticOfWrite as Ai, RemoteRpcClient as An, RemoteUnauthenticated as Ar, remoteModelSchema as At, liveFetch as B, Boundary as Bi, LiveEvent as Bn, requirementsOf as Br, SnapshotOptions as Bt, Registered as C, writeEntity as Ca, Refusal as Ci, isRefPage as Cn, RemoteForbidden as Cr, noFailures as Ct, RemoteEntry as D, emptyMutationState as Di, relationShape as Dn, RemoteQueryError as Dr, refreshedAt as Dt, RemoteDomain as E, beginMutation as Ei, relationAlias as En, RemoteProtocolError as Er, refreshIsInFlight as Et, SubscriptionsOptions as F, Freshness as Fi, remoteError as Fn, RelationRequirement as Fr, writeRead as Ft, RemotePolicy as G, Segment as Gi, classifyLive as Gn, Query$1 as Gr, reachable as Gt, RemoteJsonRequest as H, Cursor as Hi, LiveState as Hn, IDENTITY_SEPARATOR as Hr, Retained as Ht, RowPlace as I, RemoteData as Ii, BoundaryCounts as In, RemoteConnections as Ir, MergePolicy as It, PlanOptions as J, emptyConnection as Ji, liveHasPrevious as Jn, QueryRef as Jr, Matched as Jt, Deadline as K, cursor as Ki, emptyLiveState as Kn, QueryDescriptor as Kr, Belongs as Kt, placeIn as L, RemoteError as Li, ConnectionApplied as Ln, RemoteRequirements as Lr, REMOTE_CACHE_VERSION as Lt, SatisfyOptions as M, reconcileMutation as Mi, connectionChangeOf as Mn, WindowSchema as Mr, updateRemote as Mt, SelectsEntity as N, schemaOf as Ni, liveEventOf as Nn, WireBoundary as Nr, windowGrowthKey as Nt, RemoteFold as O, failMutation as Oi, targetsOf as On, RemoteReadError as Or, remoteMessageCases as Ot, SubscriptionEntries as P, Denied as Pi, mutateRemote as Pn, ConnectionRequirement as Pr, withRefreshRequested as Pt, ExplainedDependencies as Q, items as Qi, coalesceQueries as Qn, ConnectionChange as Qr, AnySchema as Qt, LiveFetchOptions as R, remoteDataSchema as Ri, EntityApplied as Rn, Requirement as Rr, RemotePersistence as Rt, ReadMeta as S, writeEntities as Sa, Reconciled as Si, aliasedField as Sn, RelationRequest as Sr, isRemoteMessage as St, RemoteDescriptor as T, TypeOf as Ti, refsIn as Tn, RemoteMutationError as Tr, overlaysOf as Tt, RemoteJsonSend as U, Edge as Ui, applyConnectionEvent as Un, LiveInsertion as Ur, RetentionRoots as Ut, RemoteJsonAnswer as V, Connection as Vi, LiveOutcome as Vn, ConnectionSpec as Vr, ConnectionRoot as Vt, RemoteResumePart as W, EdgeRef as Wi, applyEntityEvent as Wn, LivePolicy as Wr, gc as Wt, plan as X, hasPrevious as Xi, CoalesceOptions as Xn, ResultOf as Xr, belongsEncoded as Xt, deadlineOf as Y, hasNext as Yi, BatchRead as Yn, QueryWindow as Yr, MatchingOptions as Yt, windowKey as Z, isGapped as Zi, QueryRun as Zn, stableStringify as Zr, matching as Zt, QueryOptions as _, readField as _a, MutationAnswer as _i, RefParts as _n, REMOTE_PROTOCOL_VERSION as _r, invalidateConnections as _t, EntitySelection as a, EntityStore as aa, addOverlay as ai, RefPage as an, LiveRequirement as ar, PlacedOrder as at, QueryWindowOptions as b, setUnavailable as ba, MutationStatus as bi, RelationKind as bn, ReadBatchResult as br, isLoadingThrough as bt, LiveOptions as c, emptyStore as ca, emptyOptimistic as ci, SelectionOf as cn, Mutate as cr, RemoteMessage as ct, MutateOptions as d, hasField as da, removeOverlay as di, assemble as dn, NormalizedEntity as dr, RemoteModel as dt, segment as ea, ConnectionOverlay as ei, EntityDescriptor as en, requirementKey as er, ReadDiagnosis as et, MutationStarted as f, isFieldStale as fa, settleFailure as fi, pageSchema as fn, PageSize as fr, StreamHealth as ft, QueryInput as g, missingFields as ga, Mutation as gi, RefPageValue as gn, QueryRpc as gr, initialRemoteModel as gt, QueryEntity as h, markStale as ha, visibleStore as hi, RELATION_ALIAS as hn, QueryResult as hr, forgetRemote as ht, EntityLike as i, EntityKey as ia, addLayer as ii, RefKey as in, LiveEdge as ir, Failures as it, RetainOptions as j, patchOfWrite as ji, coalescedLayer as jn, SettledFields as jr, retentionRootsSchema as jt, RemoteUnsatisfied as k, mutationStatus as ki, RemoteClient as kn, RemoteRpc as kr, remoteMessageSchema as kt, LiveStatus as l, entityKey as la, pruneOverlays as li, SelectionValue as ln, MutationRequest as lr, RemoteMessageInput as lt, PersistenceOptions as m, isTombstone as ma, visibleItems as mi, unavailableOf as mn, QueryRequest as mr, failureOf as mt, BoundRemote as n, unknown as na, OptimisticOperation as ni, EntityRef as nn, Live as nr, inspectEntity as nt, FoldedMutationStarted as o, EntityWrite as oa, beginOptimistic as oi, Page as on, MAX_FIELDS_PER_REQUEST as or, PlacementMismatch as ot, ObserveOptions as p, isFieldUnavailable as pa, settleSuccess as pi, relationOf as pn, QueryEdge as pr, emptyRefresh as pt, PlanFreshness as q, edge as qi, liveHasNext as qn, QueryInputs as qr, Judged as qt, DomainMutateOptions as r, EntityEntry as ra, OptimisticState as ri, FieldsFrom as rn, LiveChange as rr, inspectRemote as rt, LiveDependencies as s, clearStale as sa, connectionIdentity as si, Selection as sn, MAX_RELATION_DEPTH as sr, RefreshState as st, ActiveEntry as t, terminal as ta, EntityLayer as ti, EntityPatch as tn, ConnectionChangeSchema as tr, RemoteInspection as tt, ModelOfDomain as u, entry as ua, removeLayer as ui, SelectionValueOf as un, MutationResult as ur, RemoteMessageTag as ut, QueryProjection as v, remove as va, MutationDescriptor as vi, RelationAnnotation as vn, Read as vr, isFieldFailed as vt, Remote as w, SchemaOrFields as wi, refParts as wn, RemoteLiveError as wr, onlyOverlaid as wt, ReadDependencies as x, tombstone as xa, NormalizedPatch as xi, RelationShape as xn, ReadRequest as xr, isQueryLoading as xt, QueryRequirement as y, setStale as ya, MutationState as yi, RelationEntityAnnotation as yn, ReadBatch as yr, isLoading as yt, httpWithLive as z, remoteErrorSchema as zi, LiveCursor as zn, connectionsOf as zr, Snapshot as zt };
4024
- //# sourceMappingURL=index-86gaaCWm.d.mts.map
4096
+ export { QueryExplanation as $, emptyConnection as $i, coalesceQueries as $n, stableStringify as $r, Entity$2 as $t, RemoteWiring as A, TypeOf as Ai, RemoteRpcClient as An, RemoteReadError as Ar, remoteModelSchema as At, liveFetch as B, Freshness as Bi, LiveCursor as Bn, Requirement as Br, SnapshotOptions as Bt, Registered as C, remove as Ca, MutationStatus as Ci, isRefPage as Cn, ReadRequest as Cr, noFailures as Ct, RemoteEntry as D, writeEntities as Da, Refusal as Di, relationShape as Dn, RemoteMutationError as Dr, refreshedAt as Dt, RemoteDomain as E, tombstone as Ea, Reconciled as Ei, relationAlias as En, RemoteLiveError as Er, refreshIsInFlight as Et, SubscriptionsOptions as F, optimisticOfWrite as Fi, mutateRemote as Fn, WireBoundary as Fr, writeRead as Ft, RemotePolicy as G, Boundary as Gi, applyEntityEvent as Gn, LiveInsertion as Gr, reachable as Gt, RemoteJsonRequest as H, RemoteError as Hi, LiveOutcome as Hn, requirementsOf as Hr, Retained as Ht, RowPlace as I, patchOfWrite as Ii, remoteError as In, ConnectionRequirement as Ir, MergePolicy as It, PlanOptions as J, Edge as Ji, liveHasNext as Jn, QueryDescriptor as Jr, Matched as Jt, Deadline as K, Connection as Ki, classifyLive as Kn, LivePolicy as Kr, Belongs as Kt, placeIn as L, reconcileMutation as Li, BoundaryCounts as Ln, RelationRequirement as Lr, REMOTE_CACHE_VERSION as Lt, SatisfyOptions as M, emptyMutationState as Mi, connectionChangeOf as Mn, RemoteUnauthenticated as Mr, updateRemote as Mt, SelectsEntity as N, failMutation as Ni, liveEventOf as Nn, SettledFields as Nr, windowGrowthKey as Nt, RemoteFold as O, writeEntity as Oa, RefusalOfWrite as Oi, targetsOf as On, RemoteProtocolError as Or, remoteMessageCases as Ot, SubscriptionEntries as P, mutationStatus as Pi, mintOperation as Pn, WindowSchema as Pr, withRefreshRequested as Pt, ExplainedDependencies as Q, edge as Qi, QueryRun as Qn, ResultOf as Qr, AnySchema as Qt, LiveFetchOptions as R, schemaOf as Ri, ConnectionApplied as Rn, RemoteConnections as Rr, RemotePersistence as Rt, ReadMeta as S, readField as Sa, MutationState as Si, aliasedField as Sn, ReadBatchResult as Sr, isRemoteMessage as St, RemoteDescriptor as T, setUnavailable as Ta, PendingPatch as Ti, refsIn as Tn, RemoteForbidden as Tr, overlaysOf as Tt, RemoteJsonSend as U, remoteDataSchema as Ui, LiveState as Un, ConnectionSpec as Ur, RetentionRoots as Ut, RemoteJsonAnswer as V, RemoteData as Vi, LiveEvent as Vn, connectionsOf as Vr, ConnectionRoot as Vt, RemoteResumePart as W, remoteErrorSchema as Wi, applyConnectionEvent as Wn, IDENTITY_SEPARATOR as Wr, gc as Wt, plan as X, Segment as Xi, BatchRead as Xn, QueryRef as Xr, belongsEncoded as Xt, deadlineOf as Y, EdgeRef as Yi, liveHasPrevious as Yn, QueryInputs as Yr, MatchingOptions as Yt, windowKey as Z, cursor as Zi, CoalesceOptions as Zn, QueryWindow as Zr, matching as Zt, QueryOptions as _, isFieldStale as _a, visibleItems as _i, RefParts as _n, QueryResult as _r, invalidateConnections as _t, EntitySelection as a, segment as aa, OptimisticState as ai, RefPage as an, LiveEdge as ar, PlacedOrder as at, QueryWindowOptions as b, markStale as ba, MutationAnswer as bi, RelationKind as bn, Read as br, isLoadingThrough as bt, LiveOptions as c, EntityEntry as ca, beginOptimistic as ci, SelectionOf as cn, MAX_RELATION_DEPTH as cr, RemoteMessage as ct, MutateOptions as d, EntityWrite as da, pruneOverlays as di, assemble as dn, MutationResult as dr, RemoteModel as dt, hasNext as ea, ConnectionChange as ei, EntityDescriptor as en, coalesceReads as er, ReadDiagnosis as et, MutationStarted as f, clearStale as fa, removeLayer as fi, pageSchema as fn, NormalizedEntity as fr, StreamHealth as ft, QueryInput as g, hasField as ga, settleSuccess as gi, RefPageValue as gn, QueryRequest as gr, initialRemoteModel as gt, QueryEntity as h, entry as ha, settleFailure as hi, RELATION_ALIAS as hn, QueryEdge as hr, forgetRemote as ht, EntityLike as i, merge as ia, OptimisticOperation as ii, RefKey as in, LiveChange as ir, Failures as it, RetainOptions as j, beginMutation as ji, coalescedLayer as jn, RemoteRpc as jr, retentionRootsSchema as jt, RemoteUnsatisfied as k, SchemaOrFields as ki, RemoteClient as kn, RemoteQueryError as kr, remoteMessageSchema as kt, LiveStatus as l, EntityKey as la, connectionIdentity as li, SelectionValue as ln, Mutate as lr, RemoteMessageInput as lt, PersistenceOptions as m, entityKey as ma, resolvedPatches as mi, unavailableOf as mn, PageSize as mr, failureOf as mt, BoundRemote as n, isGapped as na, ConnectionOverlay as ni, EntityRef as nn, ConnectionChangeSchema as nr, inspectEntity as nt, FoldedMutationStarted as o, terminal as oa, addLayer as oi, Page as on, LiveRequirement as or, PlacementMismatch as ot, ObserveOptions as p, emptyStore as pa, removeOverlay as pi, relationOf as pn, OperationId as pr, emptyRefresh as pt, PlanFreshness as q, Cursor as qi, emptyLiveState as qn, Query$1 as qr, Judged as qt, DomainMutateOptions as r, items as ra, EntityLayer as ri, FieldsFrom as rn, Live as rr, inspectRemote as rt, LiveDependencies as s, unknown as sa, addOverlay as si, Selection as sn, MAX_FIELDS_PER_REQUEST as sr, RefreshState as st, ActiveEntry as t, hasPrevious as ta, ConnectionIdentity as ti, EntityPatch as tn, requirementKey as tr, RemoteInspection as tt, ModelOfDomain as u, EntityStore as ua, emptyOptimistic as ui, SelectionValueOf as un, MutationRequest as ur, RemoteMessageTag as ut, QueryProjection as v, isFieldUnavailable as va, visibleStore as vi, RelationAnnotation as vn, QueryRpc as vr, isFieldFailed as vt, Remote as w, setStale as wa, NormalizedPatch as wi, refParts as wn, RelationRequest as wr, onlyOverlaid as wt, ReadDependencies as x, missingFields as xa, MutationDescriptor as xi, RelationShape as xn, ReadBatch as xr, isQueryLoading as xt, QueryRequirement as y, isTombstone as ya, Mutation as yi, RelationEntityAnnotation as yn, REMOTE_PROTOCOL_VERSION as yr, isLoading as yt, httpWithLive as z, Denied as zi, EntityApplied as zn, RemoteRequirements as zr, Snapshot as zt };
4097
+ //# sourceMappingURL=index-BEvVAL76.d.mts.map