@rindle/optimistic 0.3.1 → 0.4.3

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/dist/backend.d.ts CHANGED
@@ -1,21 +1,13 @@
1
- import type { Ast, Backend, BackendDevObserver, ChangeEvent, ColsMap, Mutation, OptimisticSource, QueryId, RemoteQuery, ResultType, Schema, WireValue } from "@rindle/client";
2
- /** A keyed row: column name → cell. The ergonomic shape — column names are validated
3
- * against the schema at runtime, so a typo throws immediately with the valid names. */
4
- export type KeyedRow = Record<string, WireValue>;
5
- /** What `MutationTx.query` accepts: a query handle whose `.ast()` lowers to the wire
6
- * {@link Ast} exactly what the typed query builder (`store.query.<table>…` or
7
- * `newQueryBuilder(schema).<table>…`) produces (203-MUTATOR-READS-DESIGN.md §9.1). Typed
8
- * structurally so the `MutationTx` surface need not carry the builder's heavy generics. */
9
- export type QueryArg = {
10
- ast(): Ast;
11
- };
12
- /** A row returned by {@link MutationTx.query}: column name → cell, plus each materialized
13
- * relationship name → its nested row(s) — an array (a plural relationship), or a single row /
14
- * `null` (a `.one()` relationship). Recursive (nested rows share the shape). Presented
15
- * identically to a `view.data` row of the same query (203-MUTATOR-READS-DESIGN.md §5.2). */
16
- export type QueryResultRow = {
17
- [key: string]: WireValue | QueryResultRow | QueryResultRow[];
18
- };
1
+ import type { Ast, Backend, BackendDevObserver, ChangeEvent, ColsMap, IsoTx, KeyedRow, Mutation, MutationGen, MutatorCtx, OptimisticSource, QueryArg, QueryId, QueryResultRow, RemoteQuery, ResultType, Schema, WireValue } from "@rindle/client";
2
+ /** A keyed row: column name → cell. The ergonomic shape — column names are validated against the
3
+ * schema at runtime, so a typo throws immediately with the valid names. Re-exported from
4
+ * `@rindle/client` (the leaf both tiers share). */
5
+ export type { KeyedRow };
6
+ /** {@link MutationTx.query}'s query handle ({@link QueryArg}, `{ ast(): Ast }`) and result row
7
+ * ({@link QueryResultRow}) the SAME types the isomorphic seam uses (203-MUTATOR-READS-DESIGN.md
8
+ * §5.2/§9.1), re-exported from `@rindle/client` so the client and shared-generator surfaces share
9
+ * one definition. */
10
+ export type { QueryArg, QueryResultRow };
19
11
  /** The write handle a client mutator runs against (the client `MutationTx`, §4.2):
20
12
  * reads see the current base + this transaction's own staged writes (§4.1).
21
13
  *
@@ -32,6 +24,9 @@ export interface MutationTx {
32
24
  update(table: string, row: KeyedRow): void;
33
25
  /** Insert, or fully replace when the pk already exists (a FULL row, like `insert`). */
34
26
  upsert(table: string, row: KeyedRow): void;
27
+ /** Insert a FULL row, or do nothing if the pk already exists (the isomorphic form of the classic
28
+ * `if (!tx.row(pk)) tx.insert(row)` upsert-if-absent; renders `ON CONFLICT DO NOTHING` server-side). */
29
+ insertIgnore(table: string, row: KeyedRow): void;
35
30
  /** Delete the row identified by the pk columns. A missing row is a NO-OP. */
36
31
  delete(table: string, pk: KeyedRow): void;
37
32
  /** Run a one-shot read query (`where`/`orderBy`/`limit`/join) over the state this
@@ -47,9 +42,12 @@ export interface MutationTx {
47
42
  remove(table: string, row: WireValue[]): void;
48
43
  edit(table: string, oldRow: WireValue[], newRow: WireValue[]): void;
49
44
  }
50
- /** A client mutator: optimistic, deterministic, replayable — a pure function of
51
- * `(base, args)` (§5: no clock, no randomness; it is RE-INVOKED on every rebase). */
52
- export type ClientMutator = (tx: MutationTx, args: never) => void;
45
+ /** A client mutator: optimistic, deterministic, replayable — a pure function of `(base, args)` (§5:
46
+ * no clock, no randomness; it is RE-INVOKED on every rebase). Either shape is accepted:
47
+ * - a plain synchronous function `(tx, args) => void` (client-only), OR
48
+ * - a shared GENERATOR `(tx, args, ctx) => MutationGen` (the isomorphic form: the SAME body the API
49
+ * server runs against a live async transaction — MUTATORS-ISOMORPHIC). The driver detects which. */
50
+ export type ClientMutator = ((tx: MutationTx, args: never) => void) | ((tx: IsoTx, args: never, ctx: MutatorCtx) => MutationGen);
53
51
  /** The client registry (§4.2) — one of the two registries; the server's authoritative
54
52
  * twin shares names (and possibly code), never the wire. */
55
53
  export type ClientRegistry = Record<string, ClientMutator>;
@@ -85,6 +83,11 @@ export interface FoldHandle {
85
83
  export interface OptimisticBackendOptions {
86
84
  /** Stable per-client identity for the upstream envelopes (§8.1). */
87
85
  clientID: string;
86
+ /** The acting principal, for a shared (generator) mutator's `ctx.user` — re-read per invoke so a
87
+ * mid-session login is picked up, and stable across a rebase re-invoke (replayable). Plain
88
+ * client-only mutators ignore it. Defaults to the empty string (an app that registers generator
89
+ * mutators must supply this). */
90
+ user?: () => string;
88
91
  /** Buffered-frame ceiling before the §8.5 escape (drop + re-hydrate). */
89
92
  bufferCap?: number;
90
93
  /** Virtual-clock seam for the fold debounce timers (FOLDED-MUTATIONS-DESIGN §9). Defaults to
@@ -137,6 +140,8 @@ export declare class OptimisticBackend<S extends ColsMap> implements Backend {
137
140
  private readonly source;
138
141
  private readonly registry;
139
142
  private readonly clientID;
143
+ /** The acting principal provider for a shared mutator's `ctx.user` (§ shared mutators). */
144
+ private readonly user;
140
145
  private readonly bufferCap;
141
146
  /** Column order + pk indices per table, for the keyed `MutationTx` methods. */
142
147
  private readonly specs;
@@ -243,6 +248,12 @@ export declare class OptimisticBackend<S extends ColsMap> implements Backend {
243
248
  * half. Balanced on throw (the prediction mutator may reject) via the `finally`, so a thrown
244
249
  * prediction never wedges the Store in deferred mode. */
245
250
  private inOneCommit;
251
+ /** Run one client mutator against the staged `tx`, accepting BOTH forms (§ shared mutators):
252
+ * a plain sync function runs as-is; a shared GENERATOR is driven synchronously — every yielded
253
+ * write applies to the wasm txn now, every `tx.row` read is resolved against the same staged
254
+ * state (read-your-writes), the SAME body the API server drives asynchronously. `ctx.user` is
255
+ * the acting principal (re-read per invoke, stable across a rebase re-invoke). */
256
+ private runMutator;
246
257
  /** Run the named client mutator optimistically: the prediction applies to the live
247
258
  * engine now (affected views update synchronously), `(mid, name, args)` joins the
248
259
  * pending stack, and the envelope ships upstream. Returns the assigned `mid`. */
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/backend.js CHANGED
@@ -37,7 +37,7 @@
37
37
  //
38
38
  // `Store`/`ArrayView` are untouched: this implements `Backend`, so
39
39
  // `new Store(schema, new OptimisticBackend(...))` reuses the whole machinery.
40
- import { CLIENT_MUTATIONS_SCHEMA, LMID_QUERY_NAME, localTableNames, normalizedTableSchemas, tableSpec } from "@rindle/client";
40
+ import { CLIENT_MUTATIONS_SCHEMA, driveMutationSync, insertCell, insertPlan, isGeneratorMutator, isoTx, LMID_QUERY_NAME, localTableNames, normalizedTableSchemas, tableSpec, toCell, } from "@rindle/client";
41
41
  import { aggTableSchemas, NormalizedSync, rewriteAggregates } from "@rindle/normalized";
42
42
  import { WasmBackend } from "@rindle/wasm";
43
43
  import { AggOverlay, collectAggDefs } from "./agg-overlay.js";
@@ -62,6 +62,8 @@ export class OptimisticBackend {
62
62
  source;
63
63
  registry;
64
64
  clientID;
65
+ /** The acting principal provider for a shared mutator's `ctx.user` (§ shared mutators). */
66
+ user;
65
67
  bufferCap;
66
68
  /** Column order + pk indices per table, for the keyed `MutationTx` methods. */
67
69
  specs;
@@ -144,6 +146,7 @@ export class OptimisticBackend {
144
146
  this.source = source;
145
147
  this.registry = registry;
146
148
  this.clientID = opts.clientID;
149
+ this.user = opts.user ?? (() => "");
147
150
  this.bufferCap = opts.bufferCap ?? 1024;
148
151
  this.clock = opts.clock ?? REAL_CLOCK;
149
152
  // Validate each server hello against our OWN typed schema → reject a schema skew
@@ -345,6 +348,24 @@ export class OptimisticBackend {
345
348
  this.boundaryHandler("end");
346
349
  }
347
350
  }
351
+ /** Run one client mutator against the staged `tx`, accepting BOTH forms (§ shared mutators):
352
+ * a plain sync function runs as-is; a shared GENERATOR is driven synchronously — every yielded
353
+ * write applies to the wasm txn now, every `tx.row` read is resolved against the same staged
354
+ * state (read-your-writes), the SAME body the API server drives asynchronously. `ctx.user` is
355
+ * the acting principal (re-read per invoke, stable across a rebase re-invoke). */
356
+ runMutator(mutator, tx, args) {
357
+ if (isGeneratorMutator(mutator)) {
358
+ const gen = mutator(isoTx, args, { user: this.user() });
359
+ driveMutationSync(gen, {
360
+ apply: (op) => applyOpToTx(tx, op),
361
+ read: (table, pk) => tx.row(table, pk),
362
+ query: (q) => tx.query(q),
363
+ });
364
+ }
365
+ else {
366
+ mutator(tx, args);
367
+ }
368
+ }
348
369
  /** Run the named client mutator optimistically: the prediction applies to the live
349
370
  * engine now (affected views update synchronously), `(mid, name, args)` joins the
350
371
  * pending stack, and the envelope ships upstream. Returns the assigned `mid`. */
@@ -362,7 +383,7 @@ export class OptimisticBackend {
362
383
  const touched = new Set();
363
384
  const ops = [];
364
385
  this.local.writeWith((tx) => {
365
- mutator(trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), args);
386
+ this.runMutator(mutator, trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), args);
366
387
  });
367
388
  // Flush-on-enqueue (§4.2): a fold whose tables overlap this write must take its mid NOW, BEFORE
368
389
  // this write does, so wire order == local-apply order for any pair that can observe each other
@@ -402,7 +423,7 @@ export class OptimisticBackend {
402
423
  const ops = [];
403
424
  try {
404
425
  this.local.writeWith((tx) => {
405
- mutator(trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops), true), args);
426
+ this.runMutator(mutator, trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops), true), args);
406
427
  });
407
428
  }
408
429
  catch (e) {
@@ -776,7 +797,7 @@ export class OptimisticBackend {
776
797
  const ops = [];
777
798
  try {
778
799
  this.local.writeWith((tx) => {
779
- this.registry[p.name](trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), p.args);
800
+ this.runMutator(this.registry[p.name], trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), p.args);
780
801
  });
781
802
  }
782
803
  catch {
@@ -963,7 +984,11 @@ function tableSpecsFromSchema(schema) {
963
984
  const out = {};
964
985
  for (const name of Object.keys(schema.tables)) {
965
986
  const { columns, primaryKey } = tableSpec(schema.tables[name]);
966
- out[name] = { columns, primaryKey };
987
+ const { required, nullable } = insertPlan(schema.tables[name]);
988
+ const types = {};
989
+ for (const c of columns)
990
+ types[c] = schema.tables[name].columns[c].type;
991
+ out[name] = { columns, primaryKey, required, nullable, types };
967
992
  }
968
993
  return out;
969
994
  }
@@ -993,6 +1018,23 @@ function colIndexFromSchema(schema) {
993
1018
  * — a folded mutator that reads state to compute its write is non-absorbing and refused. The keyed
994
1019
  * writers (`update`/`upsert`/`delete`) still read internally to preserve unspecified columns; that
995
1020
  * is column-preservation, not value-derivation, so it stays allowed. */
1021
+ /** Apply one logical {@link MutationOp} (yielded by a shared generator mutator) onto the client's
1022
+ * keyed {@link MutationTx} — the same methods a plain client mutator calls directly. Column
1023
+ * validation, touched-table tracking, and op collection all happen inside those methods. */
1024
+ function applyOpToTx(tx, op) {
1025
+ switch (op.kind) {
1026
+ case "insert":
1027
+ return tx.insert(op.table, op.row);
1028
+ case "upsert":
1029
+ return tx.upsert(op.table, op.row);
1030
+ case "insertIgnore":
1031
+ return tx.insertIgnore(op.table, op.row);
1032
+ case "update":
1033
+ return tx.update(op.table, op.row);
1034
+ case "delete":
1035
+ return tx.delete(op.table, op.pk);
1036
+ }
1037
+ }
996
1038
  function trackingTx(tx, touched, specs, localTables, onOp, trapReads = false) {
997
1039
  const spec = (table) => {
998
1040
  const s = specs[table];
@@ -1012,21 +1054,28 @@ function trackingTx(tx, touched, specs, localTables, onOp, trapReads = false) {
1012
1054
  }
1013
1055
  };
1014
1056
  /** Validate `obj`'s keys against the table's columns; require the pk columns; with
1015
- * `full`, require EVERY column (inserts carry whole rows there are no defaults). */
1057
+ * `full`, require every NON-nullable column (a nullable column may be omitted and is filled with
1058
+ * `null` in {@link toCells}, design 206 §6.2). */
1016
1059
  const checkColumns = (table, obj, full) => {
1017
1060
  const s = spec(table);
1018
1061
  const unknown = Object.keys(obj).filter((k) => !s.columns.includes(k));
1019
1062
  if (unknown.length) {
1020
1063
  throw new Error(`unknown column${unknown.length > 1 ? "s" : ""} ${unknown.join(", ")} on ${table} — columns: ${s.columns.join(", ")}`);
1021
1064
  }
1022
- const required = full ? s.columns : s.primaryKey.map((i) => s.columns[i]);
1065
+ const required = full ? s.required : s.primaryKey.map((i) => s.columns[i]);
1023
1066
  const missing = required.filter((c) => !(c in obj));
1024
1067
  if (missing.length) {
1025
1068
  throw new Error(`missing ${full ? "column" : "primary-key column"}${missing.length > 1 ? "s" : ""} ${missing.join(", ")} on ${table}`);
1026
1069
  }
1027
1070
  };
1028
1071
  const pkCells = (table, obj) => spec(table).primaryKey.map((i) => obj[spec(table).columns[i]]);
1029
- const toCells = (table, obj) => spec(table).columns.map((c) => obj[c]);
1072
+ // A full insert row: each cell is `obj[c]`, or `null` for an omitted nullable column (design 206
1073
+ // §6.2); a `json` object is stringified for the engine (`toCell`). Non-nullable columns are
1074
+ // guaranteed present by `checkColumns(full)`.
1075
+ const toCells = (table, obj) => {
1076
+ const s = spec(table);
1077
+ return s.columns.map((c) => toCell(insertCell(obj, c), s.types[c]));
1078
+ };
1030
1079
  const toKeyed = (table, cells) => {
1031
1080
  const out = {};
1032
1081
  spec(table).columns.forEach((c, i) => (out[c] = cells[i]));
@@ -1095,7 +1144,9 @@ function trackingTx(tx, touched, specs, localTables, onOp, trapReads = false) {
1095
1144
  if (!current)
1096
1145
  return; // rebase-friendly: the row may have vanished upstream
1097
1146
  const s = spec(table);
1098
- const next = s.columns.map((c, i) => (c in row ? row[c] : current[i]));
1147
+ // Named columns overwrite (a `json` object stringified via `toCell`); unnamed keep `current`,
1148
+ // which the engine already holds as a wire value (a json string), so no re-encode.
1149
+ const next = s.columns.map((c, i) => (c in row ? toCell(row[c], s.types[c]) : current[i]));
1099
1150
  edit(table, current, next);
1100
1151
  },
1101
1152
  upsert: (table, row) => {
@@ -1106,6 +1157,11 @@ function trackingTx(tx, touched, specs, localTables, onOp, trapReads = false) {
1106
1157
  else
1107
1158
  add(table, toCells(table, row));
1108
1159
  },
1160
+ insertIgnore: (table, row) => {
1161
+ checkColumns(table, row, true);
1162
+ if (!rawGet(table, pkCells(table, row)))
1163
+ add(table, toCells(table, row));
1164
+ },
1109
1165
  delete: (table, pk) => {
1110
1166
  checkColumns(table, pk, false);
1111
1167
  const current = rawGet(table, pkCells(table, pk));
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -9,6 +9,10 @@ export interface RindleClientOptions<S extends ColsMap, R extends ClientRegistry
9
9
  schema: Schema<S>;
10
10
  /** The PREDICTED mutators (the API server holds the authoritative twins by name). */
11
11
  mutators: R;
12
+ /** The acting principal for a shared (generator) mutator's `ctx.user` — the local identity the
13
+ * optimistic prediction writes under (the server injects its OWN authenticated user for the
14
+ * authoritative run). Re-read per invoke. Only needed when `mutators` are shared generators. */
15
+ user?: () => string;
12
16
  /** The app API server: named queries resolve to leases here, mutations push here. */
13
17
  api: {
14
18
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxE,OAAO,KAAK,EAA2C,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,qFAAqF;IACrF,QAAQ,EAAE,CAAC,CAAC;IACZ,qFAAqF;IACrF,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7C,6EAA6E;QAC7E,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACtB,CAAC;IACF;;;;;;+FAM2F;IAC3F,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IACtD;;;uBAGmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;IAC1E;yEACqE;IACrE,GAAG,CAAC,EAAE;QACJ;0FACkF;QAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc;IACvE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B;gFAC4E;IAC5E,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC1D;kFAC8E;IAC9E,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAClF,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAmF7B;AAED,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxE,OAAO,KAAK,EAA2C,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,qFAAqF;IACrF,QAAQ,EAAE,CAAC,CAAC;IACZ;;qGAEiG;IACjG,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB,qFAAqF;IACrF,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7C,6EAA6E;QAC7E,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACtB,CAAC;IACF;;;;;;+FAM2F;IAC3F,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IACtD;;;uBAGmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,CAAC;IAC1E;yEACqE;IACrE,GAAG,CAAC,EAAE;QACJ;0FACkF;QAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc;IACvE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B;gFAC4E;IAC5E,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC1D;kFAC8E;IAC9E,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAClF,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAsF7B;AAED,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
package/dist/client.js CHANGED
@@ -63,7 +63,10 @@ export async function createRindleClient(opts) {
63
63
  },
64
64
  }),
65
65
  });
66
- const { store, backend, mutate } = createOptimisticStore(opts.schema, source, opts.mutators, { clientID });
66
+ const { store, backend, mutate } = createOptimisticStore(opts.schema, source, opts.mutators, {
67
+ clientID,
68
+ user: opts.user,
69
+ });
67
70
  // Drain folds before the tab goes away (FOLDED-MUTATIONS-DESIGN §0.1/§3): a fold deliberately
68
71
  // holds its server write through the debounce window, so an unclean navigation would otherwise
69
72
  // lose the applied-locally tail. `pagehide`/`beforeunload` is the last-chance flush; `close`
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export type MutateFn<Args> = ((args: Args) => number) & {
10
10
  export { OptimisticBackend } from "./backend.ts";
11
11
  export type { ClientMutator, ClientRegistry, FoldClock, FoldHandle, FoldInspect, FoldOptions, KeyedRow, MutationTx, OptimisticBackendOptions, OptimisticInspect, PendingInspect, QueryArg, QueryResultRow, ResultType, } from "./backend.ts";
12
12
  export type { MutationEnvelope, OptimisticSource, ProgressFrame } from "@rindle/client";
13
+ export { isoTx } from "@rindle/client";
14
+ export type { IsoTx, MutationGen, MutatorCtx, SharedMutator, YieldEffect } from "@rindle/client";
13
15
  export { createRindleClient } from "./client.ts";
14
16
  export type { RindleClient, RindleClientOptions } from "./client.ts";
15
17
  export { resetStableClientID, stableClientID } from "./client-id.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,cAAc,CAAC;AAEtB;;mGAEmG;AACnG,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG;IACtD,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC;CACnD,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE;sFACsF;AACtF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAC/E,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,wBAAwB,GAC7B;IACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;CAC3D,CAcA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,cAAc,CAAC;AAEtB;;mGAEmG;AACnG,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG;IACtD,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC;CACnD,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGxF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE;sFACsF;AACtF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,EAC/E,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,wBAAwB,GAC7B;IACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;CAC3D,CAcA"}
package/dist/index.js CHANGED
@@ -5,6 +5,9 @@
5
5
  import { Store } from "@rindle/client";
6
6
  import { OptimisticBackend, } from "./backend.js";
7
7
  export { OptimisticBackend } from "./backend.js";
8
+ // The shared (generator) mutator seam — a registry may hold plain client mutators OR these isomorphic
9
+ // generators (the SAME body the API server runs); re-exported here so an app registers from one import.
10
+ export { isoTx } from "@rindle/client";
8
11
  // The one-call client for the daemon/serverless topology (API server + daemon ws).
9
12
  export { createRindleClient } from "./client.js";
10
13
  export { resetStableClientID, stableClientID } from "./client-id.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,gFAAgF;AAChF,qFAAqF;AAErF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EACL,iBAAiB,GAKlB,MAAM,cAAc,CAAC;AAStB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAmBjD,mFAAmF;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE;sFACsF;AACtF,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAwB,EACxB,QAAW,EACX,IAA8B;IAM9B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,KAAK,CACtB,EAAE,EACF;QACE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAY,EAAE,EAAE;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAsB,CAAC;YAChF,EAAE,CAAC,MAAM,GAAG,CAAC,QAAqB,EAAE,IAAa,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjG,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CACmD,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,gFAAgF;AAChF,qFAAqF;AAErF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EACL,iBAAiB,GAKlB,MAAM,cAAc,CAAC;AAStB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAkBjD,sGAAsG;AACtG,wGAAwG;AACxG,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,mFAAmF;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE;sFACsF;AACtF,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAwB,EACxB,QAAW,EACX,IAA8B;IAM9B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,KAAK,CACtB,EAAE,EACF;QACE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAY,EAAE,EAAE;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAsB,CAAC;YAChF,EAAE,CAAC,MAAM,GAAG,CAAC,QAAqB,EAAE,IAAa,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjG,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CACmD,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rindle/optimistic",
3
- "version": "0.3.1",
3
+ "version": "0.4.3",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,10 +25,10 @@
25
25
  "README.md"
26
26
  ],
27
27
  "dependencies": {
28
- "@rindle/client": "0.3.1",
29
- "@rindle/remote": "0.3.1",
30
- "@rindle/wasm": "0.3.1",
31
- "@rindle/normalized": "0.3.1"
28
+ "@rindle/remote": "0.4.3",
29
+ "@rindle/wasm": "0.4.3",
30
+ "@rindle/client": "0.4.3",
31
+ "@rindle/normalized": "0.4.3"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^22.10.0",
package/src/backend.ts CHANGED
@@ -38,20 +38,40 @@
38
38
  // `Store`/`ArrayView` are untouched: this implements `Backend`, so
39
39
  // `new Store(schema, new OptimisticBackend(...))` reuses the whole machinery.
40
40
 
41
- import { CLIENT_MUTATIONS_SCHEMA, LMID_QUERY_NAME, localTableNames, normalizedTableSchemas, tableSpec } from "@rindle/client";
41
+ import {
42
+ CLIENT_MUTATIONS_SCHEMA,
43
+ driveMutationSync,
44
+ insertCell,
45
+ insertPlan,
46
+ isGeneratorMutator,
47
+ isoTx,
48
+ LMID_QUERY_NAME,
49
+ localTableNames,
50
+ normalizedTableSchemas,
51
+ tableSpec,
52
+ toCell,
53
+ } from "@rindle/client";
42
54
  import type {
43
55
  Ast,
44
56
  Backend,
45
57
  BackendDevObserver,
46
58
  ChangeEvent,
47
59
  ColsMap,
60
+ ColType,
61
+ IsoTx,
62
+ KeyedRow,
48
63
  Mutation,
64
+ MutationGen,
65
+ MutationOp,
66
+ MutatorCtx,
49
67
  NormalizedEvent,
50
68
  NormalizedOp,
51
69
  NormalizedTableSchema,
52
70
  OptimisticSource,
53
71
  ProgressFrame,
72
+ QueryArg,
54
73
  QueryId,
74
+ QueryResultRow,
55
75
  RemoteQuery,
56
76
  ResultType,
57
77
  Schema,
@@ -62,21 +82,16 @@ import { WasmBackend, type ServerDeltaOp, type WasmWriteTxn } from "@rindle/wasm
62
82
 
63
83
  import { AggOverlay, type ChildOp, collectAggDefs } from "./agg-overlay.ts";
64
84
 
65
- /** A keyed row: column name → cell. The ergonomic shape — column names are validated
66
- * against the schema at runtime, so a typo throws immediately with the valid names. */
67
- export type KeyedRow = Record<string, WireValue>;
68
-
69
- /** What `MutationTx.query` accepts: a query handle whose `.ast()` lowers to the wire
70
- * {@link Ast} — exactly what the typed query builder (`store.query.<table>…` or
71
- * `newQueryBuilder(schema).<table>…`) produces (203-MUTATOR-READS-DESIGN.md §9.1). Typed
72
- * structurally so the `MutationTx` surface need not carry the builder's heavy generics. */
73
- export type QueryArg = { ast(): Ast };
85
+ /** A keyed row: column name → cell. The ergonomic shape — column names are validated against the
86
+ * schema at runtime, so a typo throws immediately with the valid names. Re-exported from
87
+ * `@rindle/client` (the leaf both tiers share). */
88
+ export type { KeyedRow };
74
89
 
75
- /** A row returned by {@link MutationTx.query}: column name cell, plus each materialized
76
- * relationship name → its nested row(s) — an array (a plural relationship), or a single row /
77
- * `null` (a `.one()` relationship). Recursive (nested rows share the shape). Presented
78
- * identically to a `view.data` row of the same query (203-MUTATOR-READS-DESIGN.md §5.2). */
79
- export type QueryResultRow = { [key: string]: WireValue | QueryResultRow | QueryResultRow[] };
90
+ /** {@link MutationTx.query}'s query handle ({@link QueryArg}, `{ ast(): Ast }`) and result row
91
+ * ({@link QueryResultRow}) — the SAME types the isomorphic seam uses (203-MUTATOR-READS-DESIGN.md
92
+ * §5.2/§9.1), re-exported from `@rindle/client` so the client and shared-generator surfaces share
93
+ * one definition. */
94
+ export type { QueryArg, QueryResultRow };
80
95
 
81
96
  /** The write handle a client mutator runs against (the client `MutationTx`, §4.2):
82
97
  * reads see the current base + this transaction's own staged writes (§4.1).
@@ -95,6 +110,9 @@ export interface MutationTx {
95
110
  update(table: string, row: KeyedRow): void;
96
111
  /** Insert, or fully replace when the pk already exists (a FULL row, like `insert`). */
97
112
  upsert(table: string, row: KeyedRow): void;
113
+ /** Insert a FULL row, or do nothing if the pk already exists (the isomorphic form of the classic
114
+ * `if (!tx.row(pk)) tx.insert(row)` upsert-if-absent; renders `ON CONFLICT DO NOTHING` server-side). */
115
+ insertIgnore(table: string, row: KeyedRow): void;
98
116
  /** Delete the row identified by the pk columns. A missing row is a NO-OP. */
99
117
  delete(table: string, pk: KeyedRow): void;
100
118
  /** Run a one-shot read query (`where`/`orderBy`/`limit`/join) over the state this
@@ -112,9 +130,14 @@ export interface MutationTx {
112
130
  edit(table: string, oldRow: WireValue[], newRow: WireValue[]): void;
113
131
  }
114
132
 
115
- /** A client mutator: optimistic, deterministic, replayable — a pure function of
116
- * `(base, args)` (§5: no clock, no randomness; it is RE-INVOKED on every rebase). */
117
- export type ClientMutator = (tx: MutationTx, args: never) => void;
133
+ /** A client mutator: optimistic, deterministic, replayable — a pure function of `(base, args)` (§5:
134
+ * no clock, no randomness; it is RE-INVOKED on every rebase). Either shape is accepted:
135
+ * - a plain synchronous function `(tx, args) => void` (client-only), OR
136
+ * - a shared GENERATOR `(tx, args, ctx) => MutationGen` (the isomorphic form: the SAME body the API
137
+ * server runs against a live async transaction — MUTATORS-ISOMORPHIC). The driver detects which. */
138
+ export type ClientMutator =
139
+ | ((tx: MutationTx, args: never) => void)
140
+ | ((tx: IsoTx, args: never, ctx: MutatorCtx) => MutationGen);
118
141
 
119
142
  /** The client registry (§4.2) — one of the two registries; the server's authoritative
120
143
  * twin shares names (and possibly code), never the wire. */
@@ -203,6 +226,11 @@ interface BufferedFrame {
203
226
  export interface OptimisticBackendOptions {
204
227
  /** Stable per-client identity for the upstream envelopes (§8.1). */
205
228
  clientID: string;
229
+ /** The acting principal, for a shared (generator) mutator's `ctx.user` — re-read per invoke so a
230
+ * mid-session login is picked up, and stable across a rebase re-invoke (replayable). Plain
231
+ * client-only mutators ignore it. Defaults to the empty string (an app that registers generator
232
+ * mutators must supply this). */
233
+ user?: () => string;
206
234
  /** Buffered-frame ceiling before the §8.5 escape (drop + re-hydrate). */
207
235
  bufferCap?: number;
208
236
  /** Virtual-clock seam for the fold debounce timers (FOLDED-MUTATIONS-DESIGN §9). Defaults to
@@ -276,6 +304,8 @@ export class OptimisticBackend<S extends ColsMap> implements Backend {
276
304
  private readonly source: OptimisticSource;
277
305
  private readonly registry: ClientRegistry;
278
306
  private readonly clientID: string;
307
+ /** The acting principal provider for a shared mutator's `ctx.user` (§ shared mutators). */
308
+ private readonly user: () => string;
279
309
  private readonly bufferCap: number;
280
310
  /** Column order + pk indices per table, for the keyed `MutationTx` methods. */
281
311
  private readonly specs: TableSpecs;
@@ -366,6 +396,7 @@ export class OptimisticBackend<S extends ColsMap> implements Backend {
366
396
  this.source = source;
367
397
  this.registry = registry;
368
398
  this.clientID = opts.clientID;
399
+ this.user = opts.user ?? (() => "");
369
400
  this.bufferCap = opts.bufferCap ?? 1024;
370
401
  this.clock = opts.clock ?? REAL_CLOCK;
371
402
  // Validate each server hello against our OWN typed schema → reject a schema skew
@@ -572,6 +603,28 @@ export class OptimisticBackend<S extends ColsMap> implements Backend {
572
603
  }
573
604
  }
574
605
 
606
+ /** Run one client mutator against the staged `tx`, accepting BOTH forms (§ shared mutators):
607
+ * a plain sync function runs as-is; a shared GENERATOR is driven synchronously — every yielded
608
+ * write applies to the wasm txn now, every `tx.row` read is resolved against the same staged
609
+ * state (read-your-writes), the SAME body the API server drives asynchronously. `ctx.user` is
610
+ * the acting principal (re-read per invoke, stable across a rebase re-invoke). */
611
+ private runMutator(mutator: ClientMutator, tx: MutationTx, args: unknown): void {
612
+ if (isGeneratorMutator(mutator)) {
613
+ const gen = (mutator as (t: IsoTx, a: never, c: MutatorCtx) => MutationGen)(
614
+ isoTx,
615
+ args as never,
616
+ { user: this.user() },
617
+ );
618
+ driveMutationSync(gen, {
619
+ apply: (op) => applyOpToTx(tx, op),
620
+ read: (table, pk) => tx.row(table, pk),
621
+ query: (q) => tx.query(q),
622
+ });
623
+ } else {
624
+ (mutator as (t: MutationTx, a: never) => void)(tx, args as never);
625
+ }
626
+ }
627
+
575
628
  /** Run the named client mutator optimistically: the prediction applies to the live
576
629
  * engine now (affected views update synchronously), `(mid, name, args)` joins the
577
630
  * pending stack, and the envelope ships upstream. Returns the assigned `mid`. */
@@ -588,7 +641,7 @@ export class OptimisticBackend<S extends ColsMap> implements Backend {
588
641
  const touched = new Set<string>();
589
642
  const ops: ChildOp[] = [];
590
643
  this.local.writeWith((tx) => {
591
- mutator(trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), args as never);
644
+ this.runMutator(mutator, trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), args);
592
645
  });
593
646
  // Flush-on-enqueue (§4.2): a fold whose tables overlap this write must take its mid NOW, BEFORE
594
647
  // this write does, so wire order == local-apply order for any pair that can observe each other
@@ -627,7 +680,7 @@ export class OptimisticBackend<S extends ColsMap> implements Backend {
627
680
  const ops: ChildOp[] = [];
628
681
  try {
629
682
  this.local.writeWith((tx) => {
630
- mutator(trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops), true), args as never);
683
+ this.runMutator(mutator, trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops), true), args);
631
684
  });
632
685
  } catch (e) {
633
686
  if (e instanceof FoldReadError) {
@@ -1000,7 +1053,7 @@ export class OptimisticBackend<S extends ColsMap> implements Backend {
1000
1053
  const ops: ChildOp[] = [];
1001
1054
  try {
1002
1055
  this.local.writeWith((tx) => {
1003
- this.registry[p.name](trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), p.args as never);
1056
+ this.runMutator(this.registry[p.name], trackingTx(tx, touched, this.specs, this.localTables, this.opCollector(ops)), p.args);
1004
1057
  });
1005
1058
  } catch {
1006
1059
  // A re-invocation threw — e.g. a read-dependent mutator whose base row the server
@@ -1182,14 +1235,21 @@ function pkColsFromSchema<S extends ColsMap>(schema: Schema<S>): PkCols {
1182
1235
  return out;
1183
1236
  }
1184
1237
 
1185
- /** Per-table column order + pk indices, for the keyed `MutationTx` methods. */
1186
- type TableSpecs = Record<string, { columns: string[]; primaryKey: number[] }>;
1238
+ /** Per-table column order + pk indices + the insert plan (which columns a full insert requires vs
1239
+ * may omit-to-null) + column kinds (for the `json` stringify), for the keyed `MutationTx` methods. */
1240
+ type TableSpecs = Record<
1241
+ string,
1242
+ { columns: string[]; primaryKey: number[]; required: string[]; nullable: ReadonlySet<string>; types: Record<string, ColType> }
1243
+ >;
1187
1244
 
1188
1245
  function tableSpecsFromSchema<S extends ColsMap>(schema: Schema<S>): TableSpecs {
1189
1246
  const out: TableSpecs = {};
1190
1247
  for (const name of Object.keys(schema.tables)) {
1191
1248
  const { columns, primaryKey } = tableSpec(schema.tables[name]);
1192
- out[name] = { columns, primaryKey };
1249
+ const { required, nullable } = insertPlan(schema.tables[name]);
1250
+ const types: Record<string, ColType> = {};
1251
+ for (const c of columns) types[c] = schema.tables[name].columns[c].type;
1252
+ out[name] = { columns, primaryKey, required, nullable, types };
1193
1253
  }
1194
1254
  return out;
1195
1255
  }
@@ -1221,6 +1281,24 @@ function colIndexFromSchema<S extends ColsMap>(schema: Schema<S>): Record<string
1221
1281
  * — a folded mutator that reads state to compute its write is non-absorbing and refused. The keyed
1222
1282
  * writers (`update`/`upsert`/`delete`) still read internally to preserve unspecified columns; that
1223
1283
  * is column-preservation, not value-derivation, so it stays allowed. */
1284
+ /** Apply one logical {@link MutationOp} (yielded by a shared generator mutator) onto the client's
1285
+ * keyed {@link MutationTx} — the same methods a plain client mutator calls directly. Column
1286
+ * validation, touched-table tracking, and op collection all happen inside those methods. */
1287
+ function applyOpToTx(tx: MutationTx, op: MutationOp): void {
1288
+ switch (op.kind) {
1289
+ case "insert":
1290
+ return tx.insert(op.table, op.row);
1291
+ case "upsert":
1292
+ return tx.upsert(op.table, op.row);
1293
+ case "insertIgnore":
1294
+ return tx.insertIgnore(op.table, op.row);
1295
+ case "update":
1296
+ return tx.update(op.table, op.row);
1297
+ case "delete":
1298
+ return tx.delete(op.table, op.pk);
1299
+ }
1300
+ }
1301
+
1224
1302
  function trackingTx(
1225
1303
  tx: WasmWriteTxn,
1226
1304
  touched: Set<string>,
@@ -1250,7 +1328,8 @@ function trackingTx(
1250
1328
  };
1251
1329
 
1252
1330
  /** Validate `obj`'s keys against the table's columns; require the pk columns; with
1253
- * `full`, require EVERY column (inserts carry whole rows there are no defaults). */
1331
+ * `full`, require every NON-nullable column (a nullable column may be omitted and is filled with
1332
+ * `null` in {@link toCells}, design 206 §6.2). */
1254
1333
  const checkColumns = (table: string, obj: KeyedRow, full: boolean): void => {
1255
1334
  const s = spec(table);
1256
1335
  const unknown = Object.keys(obj).filter((k) => !s.columns.includes(k));
@@ -1259,7 +1338,7 @@ function trackingTx(
1259
1338
  `unknown column${unknown.length > 1 ? "s" : ""} ${unknown.join(", ")} on ${table} — columns: ${s.columns.join(", ")}`,
1260
1339
  );
1261
1340
  }
1262
- const required = full ? s.columns : s.primaryKey.map((i) => s.columns[i]);
1341
+ const required = full ? s.required : s.primaryKey.map((i) => s.columns[i]);
1263
1342
  const missing = required.filter((c) => !(c in obj));
1264
1343
  if (missing.length) {
1265
1344
  throw new Error(`missing ${full ? "column" : "primary-key column"}${missing.length > 1 ? "s" : ""} ${missing.join(", ")} on ${table}`);
@@ -1269,7 +1348,13 @@ function trackingTx(
1269
1348
  const pkCells = (table: string, obj: KeyedRow): WireValue[] =>
1270
1349
  spec(table).primaryKey.map((i) => obj[spec(table).columns[i]]);
1271
1350
 
1272
- const toCells = (table: string, obj: KeyedRow): WireValue[] => spec(table).columns.map((c) => obj[c]);
1351
+ // A full insert row: each cell is `obj[c]`, or `null` for an omitted nullable column (design 206
1352
+ // §6.2); a `json` object is stringified for the engine (`toCell`). Non-nullable columns are
1353
+ // guaranteed present by `checkColumns(full)`.
1354
+ const toCells = (table: string, obj: KeyedRow): WireValue[] => {
1355
+ const s = spec(table);
1356
+ return s.columns.map((c) => toCell(insertCell(obj, c), s.types[c]));
1357
+ };
1273
1358
 
1274
1359
  const toKeyed = (table: string, cells: WireValue[]): KeyedRow => {
1275
1360
  const out: KeyedRow = {};
@@ -1341,7 +1426,9 @@ function trackingTx(
1341
1426
  const current = rawGet(table, pkCells(table, row));
1342
1427
  if (!current) return; // rebase-friendly: the row may have vanished upstream
1343
1428
  const s = spec(table);
1344
- const next = s.columns.map((c, i) => (c in row ? row[c] : current[i]));
1429
+ // Named columns overwrite (a `json` object stringified via `toCell`); unnamed keep `current`,
1430
+ // which the engine already holds as a wire value (a json string), so no re-encode.
1431
+ const next = s.columns.map((c, i) => (c in row ? toCell(row[c], s.types[c]) : current[i]));
1345
1432
  edit(table, current, next);
1346
1433
  },
1347
1434
  upsert: (table, row) => {
@@ -1350,6 +1437,10 @@ function trackingTx(
1350
1437
  if (current) edit(table, current, toCells(table, row));
1351
1438
  else add(table, toCells(table, row));
1352
1439
  },
1440
+ insertIgnore: (table, row) => {
1441
+ checkColumns(table, row, true);
1442
+ if (!rawGet(table, pkCells(table, row))) add(table, toCells(table, row));
1443
+ },
1353
1444
  delete: (table, pk) => {
1354
1445
  checkColumns(table, pk, false);
1355
1446
  const current = rawGet(table, pkCells(table, pk));
package/src/client.ts CHANGED
@@ -34,6 +34,10 @@ export interface RindleClientOptions<S extends ColsMap, R extends ClientRegistry
34
34
  schema: Schema<S>;
35
35
  /** The PREDICTED mutators (the API server holds the authoritative twins by name). */
36
36
  mutators: R;
37
+ /** The acting principal for a shared (generator) mutator's `ctx.user` — the local identity the
38
+ * optimistic prediction writes under (the server injects its OWN authenticated user for the
39
+ * authoritative run). Re-read per invoke. Only needed when `mutators` are shared generators. */
40
+ user?: () => string;
37
41
  /** The app API server: named queries resolve to leases here, mutations push here. */
38
42
  api: {
39
43
  url: string;
@@ -137,7 +141,10 @@ export async function createRindleClient<S extends ColsMap, R extends ClientRegi
137
141
  }),
138
142
  });
139
143
 
140
- const { store, backend, mutate } = createOptimisticStore(opts.schema, source, opts.mutators, { clientID });
144
+ const { store, backend, mutate } = createOptimisticStore(opts.schema, source, opts.mutators, {
145
+ clientID,
146
+ user: opts.user,
147
+ });
141
148
 
142
149
  // Drain folds before the tab goes away (FOLDED-MUTATIONS-DESIGN §0.1/§3): a fold deliberately
143
150
  // holds its server write through the debounce window, so an unclean navigation would otherwise
package/src/index.ts CHANGED
@@ -39,6 +39,10 @@ export type {
39
39
  ResultType,
40
40
  } from "./backend.ts";
41
41
  export type { MutationEnvelope, OptimisticSource, ProgressFrame } from "@rindle/client";
42
+ // The shared (generator) mutator seam — a registry may hold plain client mutators OR these isomorphic
43
+ // generators (the SAME body the API server runs); re-exported here so an app registers from one import.
44
+ export { isoTx } from "@rindle/client";
45
+ export type { IsoTx, MutationGen, MutatorCtx, SharedMutator, YieldEffect } from "@rindle/client";
42
46
 
43
47
  // The one-call client for the daemon/serverless topology (API server + daemon ws).
44
48
  export { createRindleClient } from "./client.ts";