@rindle/client 0.1.6 → 0.3.1
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 +70 -5
- package/dist/ast.d.ts +11 -0
- package/dist/ast.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/operators.d.ts +5 -0
- package/dist/operators.d.ts.map +1 -1
- package/dist/operators.js +5 -0
- package/dist/operators.js.map +1 -1
- package/dist/query.d.ts +155 -34
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +213 -8
- package/dist/query.js.map +1 -1
- package/dist/resolve.d.ts +40 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +109 -0
- package/dist/resolve.js.map +1 -0
- package/dist/store.d.ts +58 -15
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +221 -26
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +41 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/view.d.ts +43 -5
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +109 -31
- package/dist/view.js.map +1 -1
- package/package.json +1 -1
- package/src/ast.ts +11 -0
- package/src/index.ts +5 -0
- package/src/operators.ts +5 -0
- package/src/query.ts +505 -52
- package/src/resolve.ts +136 -0
- package/src/store.ts +227 -35
- package/src/types.ts +40 -3
- package/src/view.ts +127 -30
package/dist/store.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Ast } from "./ast.ts";
|
|
|
2
2
|
import { type Query, type QueryRoot } from "./query.ts";
|
|
3
3
|
import type { ColsMap, 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
6
|
/** One query's SSR snapshot, keyed by its `viewKey` ({@link stableKey} of the AST): the
|
|
6
7
|
* pre-projected first-paint `rows` plus the `cvMin` watermark they reflect (SSR-DESIGN.md §6.2).
|
|
7
8
|
* Serializable as-is into the HTML — `rows` are already JSON values (json columns parsed). */
|
|
@@ -34,6 +35,11 @@ export interface CachedQueryView<Q extends Query<any, any, any>> {
|
|
|
34
35
|
retain(query: Q): () => void;
|
|
35
36
|
destroy(): void;
|
|
36
37
|
}
|
|
38
|
+
export interface SyncQueryLease {
|
|
39
|
+
readonly resultType: ResultType;
|
|
40
|
+
subscribe(listener: () => void): () => void;
|
|
41
|
+
release(): void;
|
|
42
|
+
}
|
|
37
43
|
/** One live materialized view's read-only summary for a devtools pane (DEBUG-TOOLS-BROWSER-DESIGN
|
|
38
44
|
* §4.2 — "surface, not instrument"). All fields are already held by the {@link Store}; this is the
|
|
39
45
|
* single read-only accessor over the otherwise-private `views`/`asts` maps. */
|
|
@@ -53,17 +59,6 @@ export interface QueryInspect {
|
|
|
53
59
|
export interface StoreInspect {
|
|
54
60
|
queries: QueryInspect[];
|
|
55
61
|
}
|
|
56
|
-
/** A dev-only passive tap over the Store's per-query streams (DEBUG-TOOLS-BROWSER-DESIGN §6.2).
|
|
57
|
-
* Registered via {@link Store.__attachDevtools}; it ADDS a listener and never displaces the
|
|
58
|
-
* single `backend.onEvent`/`onResultType` handlers the Store already owns, so attaching devtools
|
|
59
|
-
* cannot perturb the app. Both hooks are optional. */
|
|
60
|
-
export interface StoreDevObserver {
|
|
61
|
-
/** The raw per-query {@link ChangeEvent} (hello / snapshot / batch) the Store just routed to its
|
|
62
|
-
* view — the source of the devtools delta stream (§4.3). Fired AFTER the view has folded it. */
|
|
63
|
-
onDelta?(qid: QueryId, ev: ChangeEvent): void;
|
|
64
|
-
/** A per-query {@link ResultType} transition the Store just applied to its view (§4.2). */
|
|
65
|
-
onResultType?(qid: QueryId, rt: ResultType): void;
|
|
66
|
-
}
|
|
67
62
|
export declare class Store<S extends ColsMap> {
|
|
68
63
|
/** Type-safe query entry: `store.query.issue.where.closed(false).materialize()`. */
|
|
69
64
|
readonly query: QueryRoot<S>;
|
|
@@ -72,8 +67,14 @@ export declare class Store<S extends ColsMap> {
|
|
|
72
67
|
private nextId;
|
|
73
68
|
private readonly views;
|
|
74
69
|
private readonly asts;
|
|
70
|
+
private readonly syncLeases;
|
|
75
71
|
private readonly seeds;
|
|
76
|
-
private
|
|
72
|
+
private changeListeners?;
|
|
73
|
+
private removedSubtreeWanted;
|
|
74
|
+
private resultTypeListeners?;
|
|
75
|
+
private commitDepth;
|
|
76
|
+
private readonly pendingFlush;
|
|
77
|
+
private readonly pendingChanges;
|
|
77
78
|
constructor(schema: Schema<S>, backend: Backend);
|
|
78
79
|
/** Materialize any fluent query object. Named queries subscribe remotely by `(name,args)`;
|
|
79
80
|
* ad-hoc builder queries are local-only for local-first backends. */
|
|
@@ -86,6 +87,10 @@ export declare class Store<S extends ColsMap> {
|
|
|
86
87
|
* handle. This is a lower-level API for UI bindings; ordinary app code should keep using
|
|
87
88
|
* `materialize(query)`. */
|
|
88
89
|
createCachedQueryView<Q extends Query<any, any, any>>(query: Q): CachedQueryView<Q>;
|
|
90
|
+
/** Retain a named remote query purely for normalized/local-first coverage. This does not
|
|
91
|
+
* register or materialize the query AST locally, so React can keep server sync coverage alive
|
|
92
|
+
* without subscribing to the broad coverage result tree. */
|
|
93
|
+
retainSyncQuery<Q extends Query<any, any, any>>(query: Q): SyncQueryLease;
|
|
89
94
|
/** Apply a batch of mutations (object rows → positional). Resolves when the backend has
|
|
90
95
|
* accepted them (local: applied; remote: sent). The resulting view updates flow back via
|
|
91
96
|
* the backend's event stream. */
|
|
@@ -119,6 +124,7 @@ export declare class Store<S extends ColsMap> {
|
|
|
119
124
|
* reads so an SSR render (and the matching client hydration pass) sees the seeded rows without
|
|
120
125
|
* opening a subscription. */
|
|
121
126
|
seedSnapshot(viewKey: string): DehydratedQuery | undefined;
|
|
127
|
+
primaryKeyFor(table: string): readonly string[];
|
|
122
128
|
/** Convert assembled (nested-by-name) rows (SSR-DESIGN.md §3.3) into the view's projected result
|
|
123
129
|
* shape: spread `cols` (parsing json columns), recurse into each relationship by its alias
|
|
124
130
|
* (plural → array, `.one()` → object/null, `countAs` → bare scalar). */
|
|
@@ -127,9 +133,46 @@ export declare class Store<S extends ColsMap> {
|
|
|
127
133
|
private registerMaterialized;
|
|
128
134
|
private retainRemote;
|
|
129
135
|
private onEvent;
|
|
130
|
-
/**
|
|
131
|
-
*
|
|
132
|
-
|
|
136
|
+
/** Fold a batch into its view, then notify now or — inside a commit bracket — defer the view's
|
|
137
|
+
* notification to the commit boundary, so all sibling views fold first (cross-view-atomic
|
|
138
|
+
* notification; see `commitDepth`). */
|
|
139
|
+
private applyAndTrack;
|
|
140
|
+
/** Deliver everything deferred during the just-ended commit, after every affected view has folded
|
|
141
|
+
* (cross-view-atomic notification): view subscribers first, then the raw change stream
|
|
142
|
+
* (narrators/devtools), each frame in arrival order. A throwing listener does not stop the others
|
|
143
|
+
* — the first error is re-raised only once the whole flush completes (mirroring the backend's
|
|
144
|
+
* per-query isolation). View subscribers run before change listeners, preserving the per-event
|
|
145
|
+
* order that held before coalescing (a view's subscribers fired before its change frame). */
|
|
146
|
+
private flushCommit;
|
|
147
|
+
/** Subscribe to the raw per-query {@link ChangeEvent} stream (hello / snapshot / batch) the Store
|
|
148
|
+
* routes to its views, tagged by `qid`. Fired AFTER the event is folded — and, for a commit that
|
|
149
|
+
* fans out to several queries (the in-process engine's `onCommitBoundary`), after EVERY view in
|
|
150
|
+
* that commit has folded — so a listener that re-reads ANY view (its own or a sibling) sees
|
|
151
|
+
* post-commit state, never a torn mid-commit one. Frames keep their arrival (engine-dispatch)
|
|
152
|
+
* order, one per affected query. This is the supported way to drive change-derived layers
|
|
153
|
+
* (e.g. {@link resolveChange} → @rindle/narrator, or a devtools pane) off a live store — attach
|
|
154
|
+
* BEFORE `materialize` to catch a synchronous backend's first `hello`+`snapshot`.
|
|
155
|
+
* The per-query view `WireSchema` rides the `hello` frame (also readable via `view.schema`).
|
|
156
|
+
*
|
|
157
|
+
* The third listener arg is the post-fold {@link ArrayView} for this `qid` (so a template wanting
|
|
158
|
+
* list context — current `data`, `schema`, `resultType` — needn't look it up). It is ALWAYS the
|
|
159
|
+
* plural view, even for a top-level `.one()` query: the Store retains the list-shaped view, not the
|
|
160
|
+
* SingularView wrapper handed back from `materialize`. `undefined` only if the view is mid-teardown.
|
|
161
|
+
*
|
|
162
|
+
* `opts.removedSubtree` enriches every `remove` op on this stream with the full removed subtree
|
|
163
|
+
* ({@link FlatOp.node}), so a consumer can resolve a removed row's nested subs exactly as on an
|
|
164
|
+
* `add` (a bare remove carries only the leaving row). It is reconstructed client-side from the
|
|
165
|
+
* view — no wire/engine cost — and paid only on real evictions while at least one subscriber asks.
|
|
166
|
+
*
|
|
167
|
+
* Returns a detach function; multiple listeners may attach. */
|
|
168
|
+
subscribeChanges(listener: (qid: QueryId, ev: ChangeEvent, view?: ArrayView<unknown>) => void, opts?: {
|
|
169
|
+
removedSubtree?: boolean;
|
|
170
|
+
}): () => void;
|
|
171
|
+
/** Subscribe to per-query {@link ResultType} transitions (the server-channel lifecycle the backend
|
|
172
|
+
* pushes — `unknown` → `complete`, etc.), tagged by `qid`. Fired only on a CHANGE (never replayed
|
|
173
|
+
* on attach; read `view.resultType` for the current value). The supported seam for a status-driven
|
|
174
|
+
* layer (a devtools pane). Returns a detach function; multiple listeners may attach. */
|
|
175
|
+
subscribeResultType(listener: (qid: QueryId, rt: ResultType) => void): () => void;
|
|
133
176
|
/** A read-only snapshot of every live materialized view (DEBUG-TOOLS-BROWSER-DESIGN §4.2): its
|
|
134
177
|
* qid, AST, {@link ResultType}, row count, and a capped row sample. Built fresh on each call from
|
|
135
178
|
* the live `views`/`asts` maps — never cached, never mutating. `sampleRows` caps the per-query
|
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,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -17,26 +17,70 @@ export class Store {
|
|
|
17
17
|
nextId = 1;
|
|
18
18
|
views = new Map();
|
|
19
19
|
asts = new Map();
|
|
20
|
+
syncLeases = new Map();
|
|
20
21
|
// SSR seeds (SSR-DESIGN.md §6), keyed by `viewKey`: a view materialized for one of these is
|
|
21
22
|
// seeded for first paint; a seed is consumed (dropped) the moment its query's first live
|
|
22
23
|
// `hello` lands, so later mounts don't flash stale SSR data.
|
|
23
24
|
seeds = new Map();
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
// routed event and nothing else —
|
|
27
|
-
|
|
25
|
+
// Public per-query change subscribers ({@link subscribeChanges}). `undefined` until the first
|
|
26
|
+
// subscription, so an app that never narrates (nor attaches devtools) pays one undefined-check per
|
|
27
|
+
// routed event and nothing else — no global singleton, no hot-path instrumentation. Each listener
|
|
28
|
+
// also receives the post-fold view for the qid (always the plural {@link ArrayView}, even for a
|
|
29
|
+
// `.one()` query — the Store retains the list-shaped view, not the SingularView wrapper).
|
|
30
|
+
changeListeners;
|
|
31
|
+
// How many active change subscribers asked for removed subtrees ({@link subscribeChanges} opts).
|
|
32
|
+
// `> 0` ⇒ the view reconstructs each evicted subtree onto its `remove` op before fan-out. A plain
|
|
33
|
+
// counter: the cost is paid only while at least one consumer wants it, and only on real evictions.
|
|
34
|
+
removedSubtreeWanted = 0;
|
|
35
|
+
// Public per-query {@link ResultType} subscribers ({@link subscribeResultType}). `undefined` until
|
|
36
|
+
// the first subscription. Devtools and any status-driven layer ride this instead of a private tap.
|
|
37
|
+
resultTypeListeners;
|
|
38
|
+
// Cross-view-atomic notification (the `Backend.onCommitBoundary` contract): while the backend is
|
|
39
|
+
// delivering one commit's coherent multi-query batch, fold every affected view but DEFER each
|
|
40
|
+
// view's subscriber notification, collecting the changed views here; at the commit's `end` flush
|
|
41
|
+
// them all. So when any view's subscriber runs, every sibling view touched by the same commit has
|
|
42
|
+
// already folded — a callback that re-reads another view sees post-commit data. `> 0` ⇒ inside a
|
|
43
|
+
// commit (defer); `0` ⇒ notify inline (the prior behavior, and what a backend with no commit
|
|
44
|
+
// boundary always gets). A depth counter (not a bool) is robust to any future nesting.
|
|
45
|
+
commitDepth = 0;
|
|
46
|
+
pendingFlush = new Set();
|
|
47
|
+
// The raw change-stream frames ({@link subscribeChanges}) buffered during a commit, delivered
|
|
48
|
+
// together at the boundary alongside the view flush — so a change listener (narrator/devtools)
|
|
49
|
+
// that re-reads ANY view also sees post-commit state, the same cross-view-atomic guarantee view
|
|
50
|
+
// subscribers get. Only filled while a commit is open AND a change listener exists; otherwise it
|
|
51
|
+
// stays empty and untouched (the no-narrator hot path is one undefined-check, as before).
|
|
52
|
+
pendingChanges = [];
|
|
28
53
|
constructor(schema, backend) {
|
|
29
54
|
this.schema = schema;
|
|
30
55
|
this.backend = backend;
|
|
31
56
|
this.backend.onEvent((qid, ev) => this.onEvent(qid, ev));
|
|
57
|
+
// The in-process engine brackets each commit's multi-query delivery so every affected view
|
|
58
|
+
// folds before any subscriber is notified (see `commitDepth`/`pendingFlush`). A backend with no
|
|
59
|
+
// such boundary never enters deferred mode, so its views notify inline exactly as before.
|
|
60
|
+
this.backend.onCommitBoundary?.((phase) => {
|
|
61
|
+
if (phase === "begin") {
|
|
62
|
+
this.commitDepth++;
|
|
63
|
+
}
|
|
64
|
+
else if (this.commitDepth > 0 && --this.commitDepth === 0) {
|
|
65
|
+
this.flushCommit();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
32
68
|
// Route the backend's per-query lifecycle onto its view (`view.resultType`). Backends without a
|
|
33
69
|
// lifecycle omit `onResultType`, leaving every view `complete`. A devtools tap mirrors the
|
|
34
70
|
// transition (it never displaces this single handler).
|
|
35
71
|
this.backend.onResultType?.((qid, rt) => {
|
|
36
72
|
this.views.get(qid)?.setResultType(rt);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
73
|
+
const sync = this.syncLeases.get(qid);
|
|
74
|
+
if (sync && sync.resultType !== rt) {
|
|
75
|
+
sync.resultType = rt;
|
|
76
|
+
if (rt === "complete" && sync.seedKey !== undefined)
|
|
77
|
+
this.seeds.delete(sync.seedKey);
|
|
78
|
+
for (const listener of sync.listeners)
|
|
79
|
+
listener();
|
|
80
|
+
}
|
|
81
|
+
if (this.resultTypeListeners)
|
|
82
|
+
for (const l of this.resultTypeListeners)
|
|
83
|
+
l(qid, rt);
|
|
40
84
|
});
|
|
41
85
|
// `store.query` is the LOCAL builder (201-LOCAL-ONLY-TABLES-DESIGN.md §5): it scopes over
|
|
42
86
|
// synced AND local-only tables, so a local query can join the two. Server/named queries use
|
|
@@ -73,6 +117,48 @@ export class Store {
|
|
|
73
117
|
},
|
|
74
118
|
};
|
|
75
119
|
}
|
|
120
|
+
/** Retain a named remote query purely for normalized/local-first coverage. This does not
|
|
121
|
+
* register or materialize the query AST locally, so React can keep server sync coverage alive
|
|
122
|
+
* without subscribing to the broad coverage result tree. */
|
|
123
|
+
retainSyncQuery(query) {
|
|
124
|
+
if (!this.canRetainRemoteQueries()) {
|
|
125
|
+
throw new Error("store.retainSyncQuery: this backend cannot retain a remote query without a local view.");
|
|
126
|
+
}
|
|
127
|
+
const ast = query.ast();
|
|
128
|
+
const remote = typeof query.name === "string" ? { name: query.name, args: query.args } : undefined;
|
|
129
|
+
if (!remote) {
|
|
130
|
+
throw new Error("store.retainSyncQuery: sync-only coverage requires a named query.");
|
|
131
|
+
}
|
|
132
|
+
const qid = this.nextId++;
|
|
133
|
+
const state = { resultType: "unknown", listeners: new Set(), released: false, seedKey: stableKey(ast) };
|
|
134
|
+
this.syncLeases.set(qid, state);
|
|
135
|
+
try {
|
|
136
|
+
this.backend.retainRemoteQuery?.(qid, remote, qid, ast);
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
this.syncLeases.delete(qid);
|
|
140
|
+
throw e;
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
get resultType() {
|
|
144
|
+
return state.resultType;
|
|
145
|
+
},
|
|
146
|
+
subscribe: (listener) => {
|
|
147
|
+
state.listeners.add(listener);
|
|
148
|
+
listener();
|
|
149
|
+
return () => {
|
|
150
|
+
state.listeners.delete(listener);
|
|
151
|
+
};
|
|
152
|
+
},
|
|
153
|
+
release: () => {
|
|
154
|
+
if (state.released)
|
|
155
|
+
return;
|
|
156
|
+
state.released = true;
|
|
157
|
+
this.syncLeases.delete(qid);
|
|
158
|
+
this.backend.releaseRemoteQuery?.(qid);
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
76
162
|
/** Apply a batch of mutations (object rows → positional). Resolves when the backend has
|
|
77
163
|
* accepted them (local: applied; remote: sent). The resulting view updates flow back via
|
|
78
164
|
* the backend's event stream. */
|
|
@@ -140,6 +226,12 @@ export class Store {
|
|
|
140
226
|
seedSnapshot(viewKey) {
|
|
141
227
|
return this.seeds.get(viewKey);
|
|
142
228
|
}
|
|
229
|
+
primaryKeyFor(table) {
|
|
230
|
+
const meta = this.schema.tables[table];
|
|
231
|
+
if (!meta)
|
|
232
|
+
throw new Error(`unknown table: ${table}`);
|
|
233
|
+
return meta.primaryKey;
|
|
234
|
+
}
|
|
143
235
|
/** Convert assembled (nested-by-name) rows (SSR-DESIGN.md §3.3) into the view's projected result
|
|
144
236
|
* shape: spread `cols` (parsing json columns), recurse into each relationship by its alias
|
|
145
237
|
* (plural → array, `.one()` → object/null, `countAs` → bare scalar). */
|
|
@@ -175,8 +267,10 @@ export class Store {
|
|
|
175
267
|
this.asts.set(qid, ast);
|
|
176
268
|
// Pre-create the view (PENDING) so `materialize` is synchronous for ANY backend — a remote
|
|
177
269
|
// backend's `hello` arrives async (the view reads as `[]` until then). A synchronous backend
|
|
178
|
-
// (wasm/replica) resets it during `registerQuery` below, so it returns already-hydrated.
|
|
179
|
-
|
|
270
|
+
// (wasm/replica) resets it during `registerQuery` below, so it returns already-hydrated. The
|
|
271
|
+
// view carries its `qid` (exposed as `view.qid`) so a consumer can correlate it with the raw
|
|
272
|
+
// change stream straight off `materialize(query).qid`.
|
|
273
|
+
const view = this.views.get(qid) ?? this.views.set(qid, new FlatArrayView(undefined, undefined, qid)).get(qid);
|
|
180
274
|
// Wire teardown: `destroy()` must unregister the query from the backend and drop our routing
|
|
181
275
|
// entry. Otherwise the engine keeps emitting events for the destroyed query and the Store
|
|
182
276
|
// routes them to the now-empty view — which throws on the next Child/remove ("parent not
|
|
@@ -215,7 +309,7 @@ export class Store {
|
|
|
215
309
|
if (!remote || !this.canRetainRemoteQueries())
|
|
216
310
|
return () => { };
|
|
217
311
|
const qid = this.nextId++;
|
|
218
|
-
this.backend.retainRemoteQuery?.(qid, remote, localQueryId);
|
|
312
|
+
this.backend.retainRemoteQuery?.(qid, remote, localQueryId, query.ast());
|
|
219
313
|
let released = false;
|
|
220
314
|
return () => {
|
|
221
315
|
if (released)
|
|
@@ -234,32 +328,133 @@ export class Store {
|
|
|
234
328
|
const types = ast ? this.viewTypes(ev.schema, ast) : undefined;
|
|
235
329
|
// Reset the (pre-created or existing) view IN PLACE — first hello OR a re-hydrate (new
|
|
236
330
|
// epoch) — so the materialized reference the caller holds survives a re-subscribe.
|
|
237
|
-
const view = this.views.get(qid) ?? this.views.set(qid, new FlatArrayView()).get(qid);
|
|
331
|
+
const view = this.views.get(qid) ?? this.views.set(qid, new FlatArrayView(undefined, undefined, qid)).get(qid);
|
|
238
332
|
view.reset(ev.schema, types);
|
|
239
333
|
}
|
|
240
334
|
else if (ev.type === "snapshot") {
|
|
241
|
-
this.
|
|
335
|
+
this.applyAndTrack(qid, ev.adds);
|
|
242
336
|
}
|
|
243
337
|
else {
|
|
244
|
-
this.
|
|
338
|
+
this.applyAndTrack(qid, ev.events);
|
|
339
|
+
}
|
|
340
|
+
// Fan the same post-fold frame out to subscribers (narration, devtools, …). Inside a commit
|
|
341
|
+
// bracket the frames are BUFFERED and delivered together at the boundary (after every view has
|
|
342
|
+
// folded), so a listener re-reading ANY view sees post-commit state — the same cross-view-atomic
|
|
343
|
+
// guarantee view subscribers get; outside one they go inline (still after this view's own fold,
|
|
344
|
+
// so the post-fold view passed here — and any re-read of it — reflects the post-apply state, and
|
|
345
|
+
// an opted-in removed subtree the view just attached rides along on the `remove` op).
|
|
346
|
+
// No-op (one undefined-check) when nothing is subscribed.
|
|
347
|
+
if (this.changeListeners) {
|
|
348
|
+
if (this.commitDepth > 0)
|
|
349
|
+
this.pendingChanges.push([qid, ev]);
|
|
350
|
+
else {
|
|
351
|
+
const view = this.views.get(qid);
|
|
352
|
+
for (const l of this.changeListeners)
|
|
353
|
+
l(qid, ev, view);
|
|
354
|
+
}
|
|
245
355
|
}
|
|
246
|
-
// Mirror the raw delta to any devtools tap, AFTER the view has folded it (so a pane re-reading
|
|
247
|
-
// `__inspect` sees the post-apply state). No-op (one undefined-check) when no pane is attached.
|
|
248
|
-
if (this.devObservers)
|
|
249
|
-
for (const o of this.devObservers)
|
|
250
|
-
o.onDelta?.(qid, ev);
|
|
251
356
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
357
|
+
/** Fold a batch into its view, then notify now or — inside a commit bracket — defer the view's
|
|
358
|
+
* notification to the commit boundary, so all sibling views fold first (cross-view-atomic
|
|
359
|
+
* notification; see `commitDepth`). */
|
|
360
|
+
applyAndTrack(qid, events) {
|
|
361
|
+
const view = this.views.get(qid);
|
|
362
|
+
if (!view)
|
|
363
|
+
return;
|
|
364
|
+
const deferring = this.commitDepth > 0;
|
|
365
|
+
if (view.applyChanges(events, this.removedSubtreeWanted > 0, deferring) && deferring) {
|
|
366
|
+
this.pendingFlush.add(view);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
/** Deliver everything deferred during the just-ended commit, after every affected view has folded
|
|
370
|
+
* (cross-view-atomic notification): view subscribers first, then the raw change stream
|
|
371
|
+
* (narrators/devtools), each frame in arrival order. A throwing listener does not stop the others
|
|
372
|
+
* — the first error is re-raised only once the whole flush completes (mirroring the backend's
|
|
373
|
+
* per-query isolation). View subscribers run before change listeners, preserving the per-event
|
|
374
|
+
* order that held before coalescing (a view's subscribers fired before its change frame). */
|
|
375
|
+
flushCommit() {
|
|
376
|
+
const views = this.pendingFlush.size > 0 ? [...this.pendingFlush] : [];
|
|
377
|
+
if (views.length)
|
|
378
|
+
this.pendingFlush.clear();
|
|
379
|
+
const changes = this.pendingChanges.length > 0 ? this.pendingChanges.splice(0) : [];
|
|
380
|
+
if (views.length === 0 && changes.length === 0)
|
|
381
|
+
return;
|
|
382
|
+
let firstError;
|
|
383
|
+
let hasError = false;
|
|
384
|
+
const note = (e) => {
|
|
385
|
+
if (!hasError) {
|
|
386
|
+
hasError = true;
|
|
387
|
+
firstError = e;
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
for (const view of views) {
|
|
391
|
+
try {
|
|
392
|
+
view.flush();
|
|
393
|
+
}
|
|
394
|
+
catch (e) {
|
|
395
|
+
note(e);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
if (this.changeListeners) {
|
|
399
|
+
for (const [qid, ev] of changes) {
|
|
400
|
+
const view = this.views.get(qid);
|
|
401
|
+
for (const l of this.changeListeners) {
|
|
402
|
+
try {
|
|
403
|
+
l(qid, ev, view);
|
|
404
|
+
}
|
|
405
|
+
catch (e) {
|
|
406
|
+
note(e);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
if (hasError)
|
|
412
|
+
throw firstError;
|
|
413
|
+
}
|
|
414
|
+
/** Subscribe to the raw per-query {@link ChangeEvent} stream (hello / snapshot / batch) the Store
|
|
415
|
+
* routes to its views, tagged by `qid`. Fired AFTER the event is folded — and, for a commit that
|
|
416
|
+
* fans out to several queries (the in-process engine's `onCommitBoundary`), after EVERY view in
|
|
417
|
+
* that commit has folded — so a listener that re-reads ANY view (its own or a sibling) sees
|
|
418
|
+
* post-commit state, never a torn mid-commit one. Frames keep their arrival (engine-dispatch)
|
|
419
|
+
* order, one per affected query. This is the supported way to drive change-derived layers
|
|
420
|
+
* (e.g. {@link resolveChange} → @rindle/narrator, or a devtools pane) off a live store — attach
|
|
421
|
+
* BEFORE `materialize` to catch a synchronous backend's first `hello`+`snapshot`.
|
|
422
|
+
* The per-query view `WireSchema` rides the `hello` frame (also readable via `view.schema`).
|
|
423
|
+
*
|
|
424
|
+
* The third listener arg is the post-fold {@link ArrayView} for this `qid` (so a template wanting
|
|
425
|
+
* list context — current `data`, `schema`, `resultType` — needn't look it up). It is ALWAYS the
|
|
426
|
+
* plural view, even for a top-level `.one()` query: the Store retains the list-shaped view, not the
|
|
427
|
+
* SingularView wrapper handed back from `materialize`. `undefined` only if the view is mid-teardown.
|
|
428
|
+
*
|
|
429
|
+
* `opts.removedSubtree` enriches every `remove` op on this stream with the full removed subtree
|
|
430
|
+
* ({@link FlatOp.node}), so a consumer can resolve a removed row's nested subs exactly as on an
|
|
431
|
+
* `add` (a bare remove carries only the leaving row). It is reconstructed client-side from the
|
|
432
|
+
* view — no wire/engine cost — and paid only on real evictions while at least one subscriber asks.
|
|
433
|
+
*
|
|
434
|
+
* Returns a detach function; multiple listeners may attach. */
|
|
435
|
+
subscribeChanges(listener, opts) {
|
|
436
|
+
(this.changeListeners ??= new Set()).add(listener);
|
|
437
|
+
if (opts?.removedSubtree)
|
|
438
|
+
this.removedSubtreeWanted++;
|
|
259
439
|
return () => {
|
|
260
|
-
this.
|
|
440
|
+
if (this.changeListeners?.delete(listener) && opts?.removedSubtree)
|
|
441
|
+
this.removedSubtreeWanted--;
|
|
261
442
|
};
|
|
262
443
|
}
|
|
444
|
+
/** Subscribe to per-query {@link ResultType} transitions (the server-channel lifecycle the backend
|
|
445
|
+
* pushes — `unknown` → `complete`, etc.), tagged by `qid`. Fired only on a CHANGE (never replayed
|
|
446
|
+
* on attach; read `view.resultType` for the current value). The supported seam for a status-driven
|
|
447
|
+
* layer (a devtools pane). Returns a detach function; multiple listeners may attach. */
|
|
448
|
+
subscribeResultType(listener) {
|
|
449
|
+
(this.resultTypeListeners ??= new Set()).add(listener);
|
|
450
|
+
return () => {
|
|
451
|
+
this.resultTypeListeners?.delete(listener);
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
// --- dev-only introspection (DEBUG-TOOLS-BROWSER-DESIGN §2/§6.2) --------------
|
|
455
|
+
// A single read-only accessor per the design's "surface, not instrument" rule. Only ever called
|
|
456
|
+
// by `@rindle/devtools` (imported in dev); inert otherwise. The delta + resultType taps devtools
|
|
457
|
+
// also needs are the SUPPORTED `subscribeChanges` / `subscribeResultType` seams above.
|
|
263
458
|
/** A read-only snapshot of every live materialized view (DEBUG-TOOLS-BROWSER-DESIGN §4.2): its
|
|
264
459
|
* qid, AST, {@link ResultType}, row count, and a capped row sample. Built fresh on each call from
|
|
265
460
|
* the live `views`/`asts` maps — never cached, never mutating. `sampleRows` caps the per-query
|
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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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Ast } from "./ast.ts";
|
|
1
2
|
/** A bare wire cell. (JSON columns arrive as their raw JSON string.) */
|
|
2
3
|
export type WireValue = number | string | boolean | null;
|
|
3
4
|
/** Declared column type (from the typed schema) — drives the comparator + JSON parsing. */
|
|
@@ -41,12 +42,18 @@ export interface PathSeg {
|
|
|
41
42
|
rel: number;
|
|
42
43
|
parentRow: WireValue[];
|
|
43
44
|
}
|
|
45
|
+
/** A positional change at one level of the view tree. A `remove` ships only the leaving `row`
|
|
46
|
+
* (the receiver already holds the subtree and locates it by key) — `node` is NEVER on the wire;
|
|
47
|
+
* it is an OPTIONAL client-side enrichment carrying the full removed subtree, attached by the
|
|
48
|
+
* ArrayView when a change consumer opts in (`Store.subscribeChanges(_, { removedSubtree: true })`),
|
|
49
|
+
* so a narrator can resolve a removed row's nested subs just as it can on an `add`. */
|
|
44
50
|
export type FlatOp = {
|
|
45
51
|
tag: "add";
|
|
46
52
|
node: WireNode;
|
|
47
53
|
} | {
|
|
48
54
|
tag: "remove";
|
|
49
55
|
row: WireValue[];
|
|
56
|
+
node?: WireNode;
|
|
50
57
|
} | {
|
|
51
58
|
tag: "edit";
|
|
52
59
|
old: WireValue[];
|
|
@@ -139,6 +146,22 @@ export type NormalizedEvent = {
|
|
|
139
146
|
cv?: number;
|
|
140
147
|
};
|
|
141
148
|
export type QueryId = number;
|
|
149
|
+
/** A dev-only authoritative server delta exposed by backends that can distinguish the upstream
|
|
150
|
+
* server stream from their local view/IVM stream. Flat remote backends surface clean
|
|
151
|
+
* {@link ChangeEvent}s; local-first normalized/optimistic backends surface the path-free
|
|
152
|
+
* {@link NormalizedEvent}s before they are folded into the local engine. */
|
|
153
|
+
export type BackendServerDelta = {
|
|
154
|
+
format: "flat";
|
|
155
|
+
event: ChangeEvent;
|
|
156
|
+
} | {
|
|
157
|
+
format: "normalized";
|
|
158
|
+
event: NormalizedEvent;
|
|
159
|
+
};
|
|
160
|
+
/** Dev-only passive tap over a backend's authoritative server stream. Optional because in-process
|
|
161
|
+
* backends have no server stream, and older/custom backends may only expose the Store tap. */
|
|
162
|
+
export interface BackendDevObserver {
|
|
163
|
+
onServerDelta?(qid: QueryId, ev: BackendServerDelta): void;
|
|
164
|
+
}
|
|
142
165
|
/** A query's SERVER-CHANNEL state, surfaced on its {@link ArrayView} (FOLDED-MUTATIONS-DESIGN §7 —
|
|
143
166
|
* formerly conflated with pending-ness, OPTIMISTIC-WRITES-DESIGN.md §6):
|
|
144
167
|
* - `unknown` — not hydrated: the server has not produced a first result for this query yet;
|
|
@@ -169,8 +192,9 @@ export interface Backend {
|
|
|
169
192
|
unregisterQuery(queryId: QueryId): void;
|
|
170
193
|
/** Optional split path for local-first backends: retain/release a named remote footprint
|
|
171
194
|
* without creating another local materialized view. `localQueryId`, when provided, names
|
|
172
|
-
* the local AST view this remote footprint feeds.
|
|
173
|
-
|
|
195
|
+
* the local AST view this remote footprint feeds. `ast`, when provided, gives the backend
|
|
196
|
+
* the local schema context for sync-only retains that still need aggregate/table setup. */
|
|
197
|
+
retainRemoteQuery?(queryId: QueryId, remote: RemoteQuery, localQueryId?: QueryId, ast?: Ast): void;
|
|
174
198
|
releaseRemoteQuery?(queryId: QueryId): void;
|
|
175
199
|
/** Local: applies now (changes flow back on the stream). Remote: sends to the server. */
|
|
176
200
|
mutate(mutations: Mutation[]): Promise<void>;
|
|
@@ -184,6 +208,21 @@ export interface Backend {
|
|
|
184
208
|
* each to the matching view (so `view.resultType` tracks it). Backends with no lifecycle (the
|
|
185
209
|
* in-process engine) omit it and every view stays `complete`. */
|
|
186
210
|
onResultType?(handler: (queryId: QueryId, resultType: ResultType) => void): void;
|
|
211
|
+
/** Optional: brackets one commit's coherent multi-query delivery so the Store can fold every
|
|
212
|
+
* affected view BEFORE notifying any subscriber — cross-view-atomic notification. The
|
|
213
|
+
* in-process engine derives the whole commit's per-query deltas against one consistent post-
|
|
214
|
+
* commit snapshot, then dispatches them one query at a time; without a barrier a subscriber on
|
|
215
|
+
* the first-dispatched view, re-reading a sibling view in its callback, would observe that
|
|
216
|
+
* sibling's PRE-commit state (it has not folded yet). The backend calls the handler with
|
|
217
|
+
* `"begin"` before delivering a commit's per-query `batch` events (via {@link onEvent}) and
|
|
218
|
+
* `"end"` after the last one; between them the Store folds each view but DEFERS its
|
|
219
|
+
* notification, firing every affected view's subscribers together at `"end"`. Backends with no
|
|
220
|
+
* synchronous multi-query commit boundary (a plain remote backend, where each query's frame
|
|
221
|
+
* arrives in its own message) omit it — the Store then notifies per event, exactly as before. */
|
|
222
|
+
onCommitBoundary?(handler: (phase: "begin" | "end") => void): void;
|
|
223
|
+
/** Optional dev-only authoritative server stream tap. It is additive, like
|
|
224
|
+
* `Store.subscribeChanges`, and must not displace the backend's normal event handler. */
|
|
225
|
+
__attachDevtoolsServerDeltas?(observer: BackendDevObserver): () => void;
|
|
187
226
|
}
|
|
188
227
|
/**
|
|
189
228
|
* The server side of the **normalized** local-first path (NORMALIZED-CHANGES-DESIGN.md §5/§7):
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,wEAAwE;AACxE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAEzD,2FAA2F;AAC3F,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/D;;;4FAG4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ;kEAC8D;IAC9D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB;kGAC8F;IAC9F,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4FAA4F;IAC5F,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,MAAM,GACd;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,EAAE;AACF,sFAAsF;AACtF,0EAA0E;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,EAAE;AACF,sFAAsF;AACtF,0EAA0E;AA0O1E;;8EAE8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEjE;;mEAEmE;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAEpD;qDACqD;AACrD,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,CAAC;CAChB,CAAC"}
|