@rindle/client 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -161
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/query.d.ts +34 -3
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +31 -8
- package/dist/query.js.map +1 -1
- package/dist/schema.d.ts +30 -6
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +35 -5
- package/dist/schema.js.map +1 -1
- package/dist/store.d.ts +46 -3
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +151 -20
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +71 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/view.d.ts +63 -8
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +328 -18
- package/dist/view.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/query.ts +91 -10
- package/src/schema.ts +50 -9
- package/src/store.ts +146 -18
- package/src/types.ts +77 -3
- package/src/view.ts +325 -18
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;0EAO0E;AAC1E,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CAClB;AACD,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEtE;;;;;;iBAMiB;AACjB,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IAC3C,QAAQ,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAClC;AAOD,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,OAAK,UAAU,CAAC,CAAC,CAAyB,CAAC;AAC3F,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,OAAK,UAAU,CAAC,CAAC,CAAyB,CAAC;AAC3F,eAAO,MAAM,OAAO,QAAO,UAAU,CAAC,OAAO,CAAgC,CAAC;AAC9E,eAAO,MAAM,IAAI,GAAI,CAAC,GAAG,OAAO,OAAK,UAAU,CAAC,CAAC,CAAuB,CAAC;AAEzE,0FAA0F;AAC1F,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAE7D,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM;IAC3G,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAMpB,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC;IACnC
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -76,7 +76,7 @@ export function extendSchema(base, opts) {
|
|
|
76
76
|
const tables = { ...base.tables };
|
|
77
77
|
for (const t of opts.tables) {
|
|
78
78
|
const m = t[SCHEMA];
|
|
79
|
-
if (m.local
|
|
79
|
+
if (!m.local) {
|
|
80
80
|
throw new Error(`extendSchema: table "${m.name}" is not local-only — synced tables must be generated from the daemon schema.`);
|
|
81
81
|
}
|
|
82
82
|
addTableMeta(tables, m, "extendSchema");
|
|
@@ -150,7 +150,9 @@ function assertRefinementMatches(m, baseMeta) {
|
|
|
150
150
|
cols.every((c) => baseMeta.columns[c] !== undefined && m.columns[c].type === baseMeta.columns[c].type) &&
|
|
151
151
|
m.primaryKey.length === baseMeta.primaryKey.length &&
|
|
152
152
|
m.primaryKey.every((k, i) => baseMeta.primaryKey[i] === k) &&
|
|
153
|
-
|
|
153
|
+
// Locality must match EXACTLY, including the persisted-vs-session variant (a refinement
|
|
154
|
+
// flipping `true` ↔ `"session"` would silently change the table's durability).
|
|
155
|
+
(m.local ?? false) === (baseMeta.local ?? false);
|
|
154
156
|
if (!matches) {
|
|
155
157
|
throw new Error(`refineSchema: table "${m.name}" does not match the schema's table of that name — pass the ` +
|
|
156
158
|
`output of refineTable over the SAME generated def (identical columns, kinds, primary key, ` +
|
|
@@ -158,14 +160,42 @@ function assertRefinementMatches(m, baseMeta) {
|
|
|
158
160
|
}
|
|
159
161
|
}
|
|
160
162
|
/** Whether `table` is a {@link TableMeta.local local-only} table in `schema` (an unknown table
|
|
161
|
-
* reads as non-local). The single locality predicate the backends key off.
|
|
163
|
+
* reads as non-local). The single locality predicate the backends key off. BOTH variants —
|
|
164
|
+
* `true` and `"session"` — are local here; the persisted/ephemeral split matters only to the
|
|
165
|
+
* persistence plane ({@link persistedLocalTableNames}). */
|
|
162
166
|
export function isLocalTable(schema, table) {
|
|
163
|
-
return schema.tables[table]?.local
|
|
167
|
+
return Boolean(schema.tables[table]?.local);
|
|
164
168
|
}
|
|
165
|
-
/** The set of local-only table names in `schema` (`201-LOCAL-ONLY-TABLES-DESIGN.md` §4)
|
|
169
|
+
/** The set of local-only table names in `schema` (`201-LOCAL-ONLY-TABLES-DESIGN.md` §4) — BOTH
|
|
170
|
+
* variants (`true` and `"session"`); every locality rule except persistence keys off this set. */
|
|
166
171
|
export function localTableNames(schema) {
|
|
167
172
|
return new Set(Object.keys(schema.tables).filter((n) => schema.tables[n].local));
|
|
168
173
|
}
|
|
174
|
+
/** The subset of {@link localTableNames} eligible for the persistence plane — `local: true` only.
|
|
175
|
+
* A `local: "session"` table stays outside it: never persisted, never replicated across tabs
|
|
176
|
+
* (`207-LOCAL-TABLE-PERSISTENCE-DESIGN.md` §5.4). */
|
|
177
|
+
export function persistedLocalTableNames(schema) {
|
|
178
|
+
return new Set(Object.keys(schema.tables).filter((n) => schema.tables[n].local === true));
|
|
179
|
+
}
|
|
180
|
+
/** A stable fingerprint of the schema's PERSISTED local tables only — the persistence gate's
|
|
181
|
+
* `schemaHash` (`207-LOCAL-TABLE-PERSISTENCE-DESIGN.md` §3.3 / P7). Per `local: true` table:
|
|
182
|
+
* `(name, ordered column names + types + optionality, pk columns)`. Column order is kept (rows are
|
|
183
|
+
* positional); tables are sorted by name so registration order can't skew it; synced-table AND
|
|
184
|
+
* `local: "session"` changes never move it (reshaping an ephemeral table must not wipe durable
|
|
185
|
+
* data). The value is the canonical descriptor itself, not a digest — local-table sets are tiny,
|
|
186
|
+
* and exactness (no collision can ever skip a P7 clear) beats compactness here. */
|
|
187
|
+
export function localSchemaHash(schema) {
|
|
188
|
+
// Derived from persistedLocalTableNames — the hash's contract is "fingerprints exactly the
|
|
189
|
+
// tables the plane persists", so the two must share one predicate, not two copies of it.
|
|
190
|
+
const tables = [...persistedLocalTableNames(schema)]
|
|
191
|
+
.sort()
|
|
192
|
+
.map((n) => {
|
|
193
|
+
const meta = schema.tables[n];
|
|
194
|
+
const cols = Object.keys(meta.columns).map((c) => [c, meta.columns[c].type, meta.columns[c].optional === true]);
|
|
195
|
+
return [n, cols, meta.primaryKey];
|
|
196
|
+
});
|
|
197
|
+
return `v1:${JSON.stringify(tables)}`;
|
|
198
|
+
}
|
|
169
199
|
// ----------------------------- relationships (FRAGMENT-COMPOSITION-DESIGN §4.2, named edges) -----
|
|
170
200
|
//
|
|
171
201
|
// A relationship is the correlation (`parent.col → child.col`) declared ONCE as a value, so `sub`,
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,EAAE;AACF,6EAA6E;AAC7E,2FAA2F;AAC3F,sFAAsF;AACtF,0FAA0F;AAC1F,qCAAqC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA8BhD,MAAM,OAAO,GAAG,CAAI,IAAa,EAAE,QAAQ,GAAG,KAAK,EAAiB,EAAE,CAAC,CAAC;IACtE,IAAI;IACJ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAW,IAAI,EAAE,IAAI,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,GAA6C,EAAE,CAAC,OAAO,CAAI,QAAQ,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,MAAM,GAAG,GAA6C,EAAE,CAAC,OAAO,CAAI,QAAQ,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,OAAO,GAAG,GAAwB,EAAE,CAAC,OAAO,CAAU,SAAS,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,IAAI,GAAG,GAA+B,EAAE,CAAC,OAAO,CAAI,MAAM,CAAC,CAAC;AAEzE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,MAAM,GAAkB,MAAM,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Ast } from "./ast.ts";
|
|
|
2
2
|
import { type Query, type QueryRoot } from "./query.ts";
|
|
3
3
|
import type { ColsMap, InsertOf, RowOf, Schema } from "./schema.ts";
|
|
4
4
|
import type { Backend, ChangeEvent, QueryId, ResultType, WireValue } from "./types.ts";
|
|
5
|
-
import { type ArrayView } from "./view.ts";
|
|
5
|
+
import { type ArrayView, type ViewChangeListener } from "./view.ts";
|
|
6
6
|
/** One query's SSR snapshot, keyed by its `viewKey` ({@link stableKey} of the AST): the
|
|
7
7
|
* pre-projected first-paint `rows` plus the `cvMin` watermark they reflect (SSR-DESIGN.md §6.2).
|
|
8
8
|
* Serializable as-is into the HTML — `rows` are already JSON values (json columns parsed). */
|
|
@@ -76,13 +76,33 @@ export declare class Store<S extends ColsMap> {
|
|
|
76
76
|
private changeListeners?;
|
|
77
77
|
private removedSubtreeWanted;
|
|
78
78
|
private resultTypeListeners?;
|
|
79
|
+
private readonly hasResultTypeLifecycle;
|
|
79
80
|
private commitDepth;
|
|
80
81
|
private readonly pendingFlush;
|
|
81
82
|
private readonly pendingChanges;
|
|
82
83
|
constructor(schema: Schema<S>, backend: Backend);
|
|
83
84
|
/** Materialize any fluent query object. Named queries subscribe remotely by `(name,args)`;
|
|
84
|
-
* ad-hoc builder queries are local-only for local-first backends.
|
|
85
|
-
|
|
85
|
+
* ad-hoc builder queries are local-only for local-first backends.
|
|
86
|
+
*
|
|
87
|
+
* `opts.onChanges` binds a narrator to this view's DIFF stream ({@link ArrayView.onChanges}) — the
|
|
88
|
+
* per-view seam that replaces filtering the store-global {@link subscribeChanges} by `qid`. It is
|
|
89
|
+
* wired BEFORE the backend registers the query, so a synchronous backend's first `snapshot` (fired
|
|
90
|
+
* inside `registerQuery`, before this returns) is delivered too. */
|
|
91
|
+
materialize<Q extends Query<any, any, any>>(query: Q, opts?: {
|
|
92
|
+
onChanges?: ViewChangeListener;
|
|
93
|
+
}): ReturnType<Q["materialize"]>;
|
|
94
|
+
/** One-shot AUTHORITATIVE read: materialize `query`, wait until its result is server-authoritative
|
|
95
|
+
* ({@link ResultType} `"complete"`), read the data once, then destroy the view — resolving with the
|
|
96
|
+
* plain result rather than a live subscription. Rejects if the query enters the `"error"` state. Use
|
|
97
|
+
* it for exports, imports, undo snapshots — anywhere that wants the current answer as a value.
|
|
98
|
+
*
|
|
99
|
+
* A synchronous local-first backend (wasm/replica) has already delivered the first snapshot inside
|
|
100
|
+
* {@link materialize}, so the view is `"complete"` on entry and this settles on the next microtask
|
|
101
|
+
* without ever attaching a listener; a remote backend settles when the first live snapshot lands.
|
|
102
|
+
* The query is NEVER left subscribed — the view is destroyed before the promise settles either way.
|
|
103
|
+
* (A remote query that never completes leaves the promise pending, exactly as a `resultType` poll
|
|
104
|
+
* would; race a timeout at the call site if you need one.) */
|
|
105
|
+
readOnce<Q extends Query<any, any, any>>(query: Q): Promise<ReturnType<Q["materialize"]>["data"]>;
|
|
86
106
|
/** True when the backend can retain a remote named query independently from the local
|
|
87
107
|
* materialized AST view. React uses this to keep one local view per AST while still sending
|
|
88
108
|
* every mounted `(name,args)` lease through the backend. */
|
|
@@ -137,6 +157,29 @@ export declare class Store<S extends ColsMap> {
|
|
|
137
157
|
private registerMaterialized;
|
|
138
158
|
private retainRemote;
|
|
139
159
|
private onEvent;
|
|
160
|
+
/** Retire a view's SSR seed — from the view (so `data` switches from the seed to the maintained
|
|
161
|
+
* tree) AND from the seeds map (so no later mount re-seeds a now-live query) — but ONLY once the
|
|
162
|
+
* query is AUTHORITATIVE (`resultType === "complete"`). Called BEFORE the fold it accompanies, so
|
|
163
|
+
* that fold's notify already reflects the live tree with no empty gap. Idempotent.
|
|
164
|
+
*
|
|
165
|
+
* The gate is the fix for the synchronous optimistic/wasm backend: it fires a query's FIRST snapshot
|
|
166
|
+
* from LOCAL, not-yet-synced state while the query is still `unknown` (`registerMaterialized` marks a
|
|
167
|
+
* lifecycle-backed remote view `unknown` up front for exactly this), then delivers the authoritative
|
|
168
|
+
* rows one event later as a `catchUp` batch — having already flipped the query to `complete`. So the
|
|
169
|
+
* seed survives the pre-sync snapshot (`unknown` ⇒ skip) and retires on the catch-up (`complete` ⇒
|
|
170
|
+
* retire). A lifecycle-LESS backend (pure wasm, the SSR one-shot, tests) is `complete` from creation,
|
|
171
|
+
* so its first snapshot retires the seed exactly as before this gate existed. */
|
|
172
|
+
private retireSeedIfLive;
|
|
173
|
+
/** Retire the SSR seed (if authoritative) and fold the accompanying hydration delta — BEFORE the
|
|
174
|
+
* fold so its notify already reflects the live tree with no empty gap. The subtlety: a hydration
|
|
175
|
+
* can fold NOTHING — a 0-row authoritative result, or one whose rows are already present in `top`
|
|
176
|
+
* (a query whose result is fully covered by an already-hydrated sibling: the shared rows dedup to
|
|
177
|
+
* zero net base mutations). Then {@link FlatArrayView.applyChanges} notifies nothing, so the
|
|
178
|
+
* seed→tree switch would never reach subscribers and the view freezes on the stale seed. Guard
|
|
179
|
+
* against that: if the seed retired but the fold was a no-op, force the handoff notify (inline, or
|
|
180
|
+
* via the commit-boundary flush). Flash-safe — the forced notify only fires when there was nothing
|
|
181
|
+
* to fold, so `data` is already the correct live tree by then. */
|
|
182
|
+
private foldHydration;
|
|
140
183
|
/** Fold a batch into its view, then notify now or — inside a commit bracket — defer the view's
|
|
141
184
|
* notification to the commit boundary, so all sibling views fold first (cross-view-atomic
|
|
142
185
|
* notification; see `commitDepth`). */
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAW,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAiC,OAAO,EAAe,UAAU,EAAc,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/I,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -20,7 +20,9 @@ export class Store {
|
|
|
20
20
|
syncLeases = new Map();
|
|
21
21
|
// SSR seeds (SSR-DESIGN.md §6), keyed by `viewKey`: a view materialized for one of these is
|
|
22
22
|
// seeded for first paint; a seed is consumed (dropped) the moment its query's first live
|
|
23
|
-
// `hello`
|
|
23
|
+
// SNAPSHOT lands — NOT its `hello` — so the seed bridges the `hello`→snapshot gap (the live
|
|
24
|
+
// data arrives on the snapshot, a round-trip after the hello) and later mounts of a now-live
|
|
25
|
+
// query don't re-seed stale SSR data.
|
|
24
26
|
seeds = new Map();
|
|
25
27
|
// Public per-query change subscribers ({@link subscribeChanges}). `undefined` until the first
|
|
26
28
|
// subscription, so an app that never narrates (nor attaches devtools) pays one undefined-check per
|
|
@@ -35,6 +37,12 @@ export class Store {
|
|
|
35
37
|
// Public per-query {@link ResultType} subscribers ({@link subscribeResultType}). `undefined` until
|
|
36
38
|
// the first subscription. Devtools and any status-driven layer ride this instead of a private tap.
|
|
37
39
|
resultTypeListeners;
|
|
40
|
+
// Whether the backend drives a per-query resultType lifecycle (`onResultType`). When it does, a
|
|
41
|
+
// REMOTE query is marked PENDING (`unknown`) at register (`registerMaterialized`) so its synchronous
|
|
42
|
+
// pre-sync snapshot — the optimistic/wasm backend fetches local, not-yet-synced state INSIDE
|
|
43
|
+
// `registerQuery` — can't be mistaken for the authoritative answer and retire the SSR seed. When it
|
|
44
|
+
// doesn't, every view stays `complete` and the first snapshot IS authoritative (unchanged behavior).
|
|
45
|
+
hasResultTypeLifecycle;
|
|
38
46
|
// Cross-view-atomic notification (the `Backend.onCommitBoundary` contract): while the backend is
|
|
39
47
|
// delivering one commit's coherent multi-query batch, fold every affected view but DEFER each
|
|
40
48
|
// view's subscriber notification, collecting the changed views here; at the commit's `end` flush
|
|
@@ -53,6 +61,7 @@ export class Store {
|
|
|
53
61
|
constructor(schema, backend) {
|
|
54
62
|
this.schema = schema;
|
|
55
63
|
this.backend = backend;
|
|
64
|
+
this.hasResultTypeLifecycle = typeof backend.onResultType === "function";
|
|
56
65
|
this.backend.onEvent((qid, ev) => this.onEvent(qid, ev));
|
|
57
66
|
// The in-process engine brackets each commit's multi-query delivery so every affected view
|
|
58
67
|
// folds before any subscriber is notified (see `commitDepth`/`pendingFlush`). A backend with no
|
|
@@ -88,10 +97,58 @@ export class Store {
|
|
|
88
97
|
this.query = queries(this.schema, (query) => this.materialize(query), { includeLocal: true });
|
|
89
98
|
}
|
|
90
99
|
/** Materialize any fluent query object. Named queries subscribe remotely by `(name,args)`;
|
|
91
|
-
* ad-hoc builder queries are local-only for local-first backends.
|
|
92
|
-
|
|
100
|
+
* ad-hoc builder queries are local-only for local-first backends.
|
|
101
|
+
*
|
|
102
|
+
* `opts.onChanges` binds a narrator to this view's DIFF stream ({@link ArrayView.onChanges}) — the
|
|
103
|
+
* per-view seam that replaces filtering the store-global {@link subscribeChanges} by `qid`. It is
|
|
104
|
+
* wired BEFORE the backend registers the query, so a synchronous backend's first `snapshot` (fired
|
|
105
|
+
* inside `registerQuery`, before this returns) is delivered too. */
|
|
106
|
+
materialize(query, opts) {
|
|
93
107
|
const remote = typeof query.name === "string" ? { name: query.name, args: query.args } : undefined;
|
|
94
|
-
return this.registerMaterialized(query.ast(), remote).view;
|
|
108
|
+
return this.registerMaterialized(query.ast(), remote, opts?.onChanges).view;
|
|
109
|
+
}
|
|
110
|
+
/** One-shot AUTHORITATIVE read: materialize `query`, wait until its result is server-authoritative
|
|
111
|
+
* ({@link ResultType} `"complete"`), read the data once, then destroy the view — resolving with the
|
|
112
|
+
* plain result rather than a live subscription. Rejects if the query enters the `"error"` state. Use
|
|
113
|
+
* it for exports, imports, undo snapshots — anywhere that wants the current answer as a value.
|
|
114
|
+
*
|
|
115
|
+
* A synchronous local-first backend (wasm/replica) has already delivered the first snapshot inside
|
|
116
|
+
* {@link materialize}, so the view is `"complete"` on entry and this settles on the next microtask
|
|
117
|
+
* without ever attaching a listener; a remote backend settles when the first live snapshot lands.
|
|
118
|
+
* The query is NEVER left subscribed — the view is destroyed before the promise settles either way.
|
|
119
|
+
* (A remote query that never completes leaves the promise pending, exactly as a `resultType` poll
|
|
120
|
+
* would; race a timeout at the call site if you need one.) */
|
|
121
|
+
readOnce(query) {
|
|
122
|
+
const view = this.materialize(query);
|
|
123
|
+
return new Promise((resolve, reject) => {
|
|
124
|
+
let settled = false;
|
|
125
|
+
let detach;
|
|
126
|
+
const settle = () => {
|
|
127
|
+
const rt = view.resultType;
|
|
128
|
+
if (rt !== "complete" && rt !== "error")
|
|
129
|
+
return false;
|
|
130
|
+
settled = true;
|
|
131
|
+
detach?.();
|
|
132
|
+
if (rt === "error") {
|
|
133
|
+
view.destroy();
|
|
134
|
+
reject(new Error("store.readOnce: query entered the error result state"));
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const data = view.data;
|
|
138
|
+
view.destroy();
|
|
139
|
+
resolve(data);
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
};
|
|
143
|
+
// A synchronous backend is already `complete` here — settle now, never attaching a listener.
|
|
144
|
+
// (`subscribeResultType` never replays on attach, so the pre-check is what covers this case.)
|
|
145
|
+
if (settle())
|
|
146
|
+
return;
|
|
147
|
+
detach = this.subscribeResultType((qid) => {
|
|
148
|
+
if (!settled && qid === view.qid)
|
|
149
|
+
settle();
|
|
150
|
+
});
|
|
151
|
+
});
|
|
95
152
|
}
|
|
96
153
|
/** True when the backend can retain a remote named query independently from the local
|
|
97
154
|
* materialized AST view. React uses this to keep one local view per AST while still sending
|
|
@@ -262,7 +319,7 @@ export class Store {
|
|
|
262
319
|
return out;
|
|
263
320
|
}
|
|
264
321
|
// --- internals ---------------------------------------------------------------
|
|
265
|
-
registerMaterialized(ast, remote) {
|
|
322
|
+
registerMaterialized(ast, remote, onChanges) {
|
|
266
323
|
const qid = this.nextId++;
|
|
267
324
|
this.asts.set(qid, ast);
|
|
268
325
|
// Pre-create the view (PENDING) so `materialize` is synchronous for ANY backend — a remote
|
|
@@ -284,6 +341,25 @@ export class Store {
|
|
|
284
341
|
}
|
|
285
342
|
baseDestroy();
|
|
286
343
|
};
|
|
344
|
+
// Bind the narrator BEFORE `registerQuery` fires (a synchronous backend dispatches this query's
|
|
345
|
+
// first `hello`+`snapshot` inside it) so the initial snapshot reaches the change listener too.
|
|
346
|
+
if (onChanges)
|
|
347
|
+
view.onChanges(onChanges);
|
|
348
|
+
// SSR first paint (SSR-DESIGN.md §6): seed the view — and, for a lifecycle-backed REMOTE query,
|
|
349
|
+
// mark it PENDING (`unknown`) — BEFORE `registerQuery`, because a synchronous optimistic/wasm
|
|
350
|
+
// backend fires this query's first `hello`+`snapshot` from LOCAL, not-yet-synced state INSIDE that
|
|
351
|
+
// call. Doing both here first means (a) that pre-sync snapshot finds the seed already applied (so
|
|
352
|
+
// `data` shows it, not an empty tree) and (b) the view already reads `unknown`, so `retireSeedIfLive`
|
|
353
|
+
// KEEPS the seed through it — on the optimistic backend the real hydration point is the later
|
|
354
|
+
// `catchUp` batch (which flips the query to `complete` FIRST, then folds the authoritative rows).
|
|
355
|
+
// A LOCAL query is authoritative at register (its local snapshot IS the answer), so it keeps the
|
|
356
|
+
// default `complete`; a lifecycle-LESS backend has no `onResultType`, so every view stays `complete`
|
|
357
|
+
// and its first snapshot retires the seed exactly as before.
|
|
358
|
+
const seed = this.seeds.get(stableKey(ast));
|
|
359
|
+
if (seed)
|
|
360
|
+
view.seed(seed.rows);
|
|
361
|
+
if (remote !== undefined && this.hasResultTypeLifecycle)
|
|
362
|
+
view.setResultType("unknown");
|
|
287
363
|
// If the backend rejects the registration (E3: a remote query naming a local-only table), roll
|
|
288
364
|
// back the per-qid state we just created — otherwise the view + ast entry leak (the caller never
|
|
289
365
|
// gets a handle to `destroy()` them, since the throw aborts before we return).
|
|
@@ -295,12 +371,6 @@ export class Store {
|
|
|
295
371
|
this.asts.delete(qid);
|
|
296
372
|
throw e;
|
|
297
373
|
}
|
|
298
|
-
// SSR first paint (SSR-DESIGN.md §6): if this AST was preloaded/hydrated, seed the view now.
|
|
299
|
-
// A synchronous backend (wasm) already reset the view above, so its live data wins and the
|
|
300
|
-
// seed is inert; an async backend (ws) leaves it PENDING, so the seed shows until `hello`.
|
|
301
|
-
const seed = this.seeds.get(stableKey(ast));
|
|
302
|
-
if (seed)
|
|
303
|
-
view.seed(seed.rows);
|
|
304
374
|
// A top-level `.one()` (engine-capped to limit 1) unwraps at the result boundary.
|
|
305
375
|
return { qid, view: ast.one ? new SingularView(view) : view };
|
|
306
376
|
}
|
|
@@ -321,21 +391,30 @@ export class Store {
|
|
|
321
391
|
onEvent(qid, ev) {
|
|
322
392
|
if (ev.type === "hello") {
|
|
323
393
|
const ast = this.asts.get(qid);
|
|
324
|
-
// First live hello for this view ⇒ retire its SSR seed: the maintained tree now owns the
|
|
325
|
-
// result, so no future mount of the same query should flash the stale first-paint rows.
|
|
326
|
-
if (ast)
|
|
327
|
-
this.seeds.delete(stableKey(ast));
|
|
328
394
|
const types = ast ? this.viewTypes(ev.schema, ast) : undefined;
|
|
329
395
|
// Reset the (pre-created or existing) view IN PLACE — first hello OR a re-hydrate (new
|
|
330
|
-
// epoch) — so the materialized reference the caller holds survives a re-subscribe.
|
|
396
|
+
// epoch) — so the materialized reference the caller holds survives a re-subscribe. The SSR
|
|
397
|
+
// seed is KEPT across the reset and retired on the first `snapshot` below (the live data
|
|
398
|
+
// lands then, not on the hello), so a seeded query bridges the gap instead of flashing empty.
|
|
331
399
|
const view = this.views.get(qid) ?? this.views.set(qid, new FlatArrayView(undefined, undefined, qid)).get(qid);
|
|
332
400
|
view.reset(ev.schema, types);
|
|
333
401
|
}
|
|
334
402
|
else if (ev.type === "snapshot") {
|
|
335
|
-
|
|
403
|
+
// A snapshot is a hydration point — retire the SSR seed and fold, gated on the query being
|
|
404
|
+
// AUTHORITATIVE. {@link foldHydration} handles the empty-fold case (a re-hydrate to nothing).
|
|
405
|
+
this.foldHydration(qid, ev.adds, "snapshot");
|
|
406
|
+
}
|
|
407
|
+
else if (ev.catchUp) {
|
|
408
|
+
// A `catchUp` batch is a query's initial hydration delivered as a delta — on the optimistic /
|
|
409
|
+
// normalized backend THIS (not the earlier pre-sync snapshot) is the real hydration point,
|
|
410
|
+
// arriving right after the query flips to `complete`. Retire the seed + fold, phased as a
|
|
411
|
+
// `snapshot` so a narrator's "what CHANGED" default ignores the initial rows.
|
|
412
|
+
this.foldHydration(qid, ev.events, "snapshot");
|
|
336
413
|
}
|
|
337
414
|
else {
|
|
338
|
-
|
|
415
|
+
// A plain (non-catchUp) batch is a post-hydration delta — the seed is long gone by then, and
|
|
416
|
+
// this is the incremental hot path, so it does no seed work at all.
|
|
417
|
+
this.applyAndTrack(qid, ev.events, "batch");
|
|
339
418
|
}
|
|
340
419
|
// Fan the same post-fold frame out to subscribers (narration, devtools, …). Inside a commit
|
|
341
420
|
// bracket the frames are BUFFERED and delivered together at the boundary (after every view has
|
|
@@ -354,15 +433,67 @@ export class Store {
|
|
|
354
433
|
}
|
|
355
434
|
}
|
|
356
435
|
}
|
|
436
|
+
/** Retire a view's SSR seed — from the view (so `data` switches from the seed to the maintained
|
|
437
|
+
* tree) AND from the seeds map (so no later mount re-seeds a now-live query) — but ONLY once the
|
|
438
|
+
* query is AUTHORITATIVE (`resultType === "complete"`). Called BEFORE the fold it accompanies, so
|
|
439
|
+
* that fold's notify already reflects the live tree with no empty gap. Idempotent.
|
|
440
|
+
*
|
|
441
|
+
* The gate is the fix for the synchronous optimistic/wasm backend: it fires a query's FIRST snapshot
|
|
442
|
+
* from LOCAL, not-yet-synced state while the query is still `unknown` (`registerMaterialized` marks a
|
|
443
|
+
* lifecycle-backed remote view `unknown` up front for exactly this), then delivers the authoritative
|
|
444
|
+
* rows one event later as a `catchUp` batch — having already flipped the query to `complete`. So the
|
|
445
|
+
* seed survives the pre-sync snapshot (`unknown` ⇒ skip) and retires on the catch-up (`complete` ⇒
|
|
446
|
+
* retire). A lifecycle-LESS backend (pure wasm, the SSR one-shot, tests) is `complete` from creation,
|
|
447
|
+
* so its first snapshot retires the seed exactly as before this gate existed. */
|
|
448
|
+
retireSeedIfLive(qid) {
|
|
449
|
+
const view = this.views.get(qid);
|
|
450
|
+
if (!view || view.resultType !== "complete")
|
|
451
|
+
return false;
|
|
452
|
+
const retired = view.retireSeed(); // idempotent — false once the seed is already retired
|
|
453
|
+
// Drop the map entry (so no later mount re-seeds a now-live query) only when we actually retired,
|
|
454
|
+
// and only pay the `stableKey` hash while a seed is outstanding (the map is empty on a no-SSR app).
|
|
455
|
+
if (retired && this.seeds.size > 0) {
|
|
456
|
+
const ast = this.asts.get(qid);
|
|
457
|
+
if (ast)
|
|
458
|
+
this.seeds.delete(stableKey(ast));
|
|
459
|
+
}
|
|
460
|
+
return retired;
|
|
461
|
+
}
|
|
462
|
+
/** Retire the SSR seed (if authoritative) and fold the accompanying hydration delta — BEFORE the
|
|
463
|
+
* fold so its notify already reflects the live tree with no empty gap. The subtlety: a hydration
|
|
464
|
+
* can fold NOTHING — a 0-row authoritative result, or one whose rows are already present in `top`
|
|
465
|
+
* (a query whose result is fully covered by an already-hydrated sibling: the shared rows dedup to
|
|
466
|
+
* zero net base mutations). Then {@link FlatArrayView.applyChanges} notifies nothing, so the
|
|
467
|
+
* seed→tree switch would never reach subscribers and the view freezes on the stale seed. Guard
|
|
468
|
+
* against that: if the seed retired but the fold was a no-op, force the handoff notify (inline, or
|
|
469
|
+
* via the commit-boundary flush). Flash-safe — the forced notify only fires when there was nothing
|
|
470
|
+
* to fold, so `data` is already the correct live tree by then. */
|
|
471
|
+
foldHydration(qid, events, phase) {
|
|
472
|
+
const retired = this.retireSeedIfLive(qid);
|
|
473
|
+
const view = this.views.get(qid);
|
|
474
|
+
if (!view)
|
|
475
|
+
return;
|
|
476
|
+
const deferring = this.commitDepth > 0;
|
|
477
|
+
const changed = view.applyChanges(events, this.removedSubtreeWanted > 0, deferring, phase);
|
|
478
|
+
if (deferring) {
|
|
479
|
+
// Flush at the boundary if the fold changed the tree OR a retire is owed a notify (flush()
|
|
480
|
+
// always notifies, even with no buffered segments).
|
|
481
|
+
if (changed || retired)
|
|
482
|
+
this.pendingFlush.add(view);
|
|
483
|
+
}
|
|
484
|
+
else if (retired && !changed) {
|
|
485
|
+
view.notify(); // the fold notified nothing but the seed retired — land the handoff
|
|
486
|
+
}
|
|
487
|
+
}
|
|
357
488
|
/** Fold a batch into its view, then notify now or — inside a commit bracket — defer the view's
|
|
358
489
|
* notification to the commit boundary, so all sibling views fold first (cross-view-atomic
|
|
359
490
|
* notification; see `commitDepth`). */
|
|
360
|
-
applyAndTrack(qid, events) {
|
|
491
|
+
applyAndTrack(qid, events, phase) {
|
|
361
492
|
const view = this.views.get(qid);
|
|
362
493
|
if (!view)
|
|
363
494
|
return;
|
|
364
495
|
const deferring = this.commitDepth > 0;
|
|
365
|
-
if (view.applyChanges(events, this.removedSubtreeWanted > 0, deferring) && deferring) {
|
|
496
|
+
if (view.applyChanges(events, this.removedSubtreeWanted > 0, deferring, phase) && deferring) {
|
|
366
497
|
this.pendingFlush.add(view);
|
|
367
498
|
}
|
|
368
499
|
}
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|