@rindle/normalized 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 +4 -0
- package/dist/backend.d.ts +7 -0
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +51 -6
- package/dist/backend.js.map +1 -1
- package/package.json +3 -3
- package/src/backend.ts +46 -4
package/README.md
CHANGED
|
@@ -21,3 +21,7 @@ transaction. The `Db` re-materializes and each query's `FlatArrayView` folds the
|
|
|
21
21
|
|
|
22
22
|
The `NormalizedStore` wiring (remote normalized stream → `NormalizedSync` → wasm `Db`) lands
|
|
23
23
|
in Slice 5.
|
|
24
|
+
|
|
25
|
+
Site docs — the change vocabulary these streams carry:
|
|
26
|
+
[rindle.sh/docs/change-model](https://rindle.sh/docs/change-model) · for agents:
|
|
27
|
+
[llms.txt](https://rindle.sh/llms.txt)
|
package/dist/backend.d.ts
CHANGED
|
@@ -19,6 +19,13 @@ export declare class NormalizedBackend<S extends ColsMap> implements Backend {
|
|
|
19
19
|
private readonly sourceToRemote;
|
|
20
20
|
private readonly resultTypes;
|
|
21
21
|
private readonly hydrated;
|
|
22
|
+
/** Local qids that are JUST hydrating on the in-flight `onNormalized` snapshot — set only for the
|
|
23
|
+
* duration of its `local.mutate`, so the local-event forwarder stamps their fold `catchUp`: the
|
|
24
|
+
* whole first result set arrives as a `batch` (we hydrate the view by mutating the embedded engine,
|
|
25
|
+
* which speaks in batches — there is no second `snapshot`), and `catchUp` is the flag that tells the
|
|
26
|
+
* Store this batch IS hydration (retire the SSR seed, phase it as a snapshot for narration). The
|
|
27
|
+
* optimistic backend does the identical thing across its reconcile cycle. `null` outside a hydrate. */
|
|
28
|
+
private catchUpQids;
|
|
22
29
|
private resultTypeHandler;
|
|
23
30
|
/** The client's OWN typed per-table schemas (for CRIT#4 validation), fixed at construction. */
|
|
24
31
|
private readonly clientTables;
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAoBA,OAAO,EAA0B,KAAK,EAAa,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,QAAQ,EAER,gBAAgB,EAEhB,OAAO,EACP,WAAW,EACX,UAAU,EACV,MAAM,EACP,MAAM,gBAAgB,CAAC;AASxB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AA2B/F,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO,CAAE,YAAW,OAAO;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,OAAO,CAAqD;IACpE;;;;gFAI4E;IAC5E,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2C;IAC/E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD;0FACsF;IACtF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC;0GACsG;IACtG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;gBAEnD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/backend.js
CHANGED
|
@@ -63,6 +63,13 @@ export class NormalizedBackend {
|
|
|
63
63
|
sourceToRemote = new Map();
|
|
64
64
|
resultTypes = new Map();
|
|
65
65
|
hydrated = new Set();
|
|
66
|
+
/** Local qids that are JUST hydrating on the in-flight `onNormalized` snapshot — set only for the
|
|
67
|
+
* duration of its `local.mutate`, so the local-event forwarder stamps their fold `catchUp`: the
|
|
68
|
+
* whole first result set arrives as a `batch` (we hydrate the view by mutating the embedded engine,
|
|
69
|
+
* which speaks in batches — there is no second `snapshot`), and `catchUp` is the flag that tells the
|
|
70
|
+
* Store this batch IS hydration (retire the SSR seed, phase it as a snapshot for narration). The
|
|
71
|
+
* optimistic backend does the identical thing across its reconcile cycle. `null` outside a hydrate. */
|
|
72
|
+
catchUpQids = null;
|
|
66
73
|
resultTypeHandler = () => { };
|
|
67
74
|
/** The client's OWN typed per-table schemas (for CRIT#4 validation), fixed at construction. */
|
|
68
75
|
clientTables;
|
|
@@ -80,8 +87,14 @@ export class NormalizedBackend {
|
|
|
80
87
|
queryAggTables = new Map();
|
|
81
88
|
constructor(schema, source) {
|
|
82
89
|
this.local = new WasmBackend(schema);
|
|
83
|
-
// The local engine's flat stream IS this backend's stream upward (→ the Store's views).
|
|
84
|
-
|
|
90
|
+
// The local engine's flat stream IS this backend's stream upward (→ the Store's views). A
|
|
91
|
+
// just-hydrating query's first result set arrives here as a `batch` (we fold it by mutating the
|
|
92
|
+
// engine); stamp it `catchUp` so the Store treats it as hydration (retire the SSR seed, phase it
|
|
93
|
+
// as a snapshot) rather than an incremental change — see {@link catchUpQids}.
|
|
94
|
+
this.local.onEvent((qid, ev) => {
|
|
95
|
+
const stamped = ev.type === "batch" && this.catchUpQids?.has(qid) ? { ...ev, catchUp: true } : ev;
|
|
96
|
+
this.handler(qid, stamped);
|
|
97
|
+
});
|
|
85
98
|
// Forward the local engine's commit brackets up to the Store (cross-view-atomic notification):
|
|
86
99
|
// a normalized batch's net base mutations commit to `this.local` in one transaction, so its
|
|
87
100
|
// commit boundary is ours — every view those rows touch then notifies together.
|
|
@@ -247,10 +260,42 @@ export class NormalizedBackend {
|
|
|
247
260
|
// degenerates to all-adds; for a re-hydrate it removes rows that left during the gap. A
|
|
248
261
|
// `batch` is an incremental delta → `applyBatch`.
|
|
249
262
|
const muts = ev.type === "snapshot" ? this.sync.rehydrate(qid, ev.ops) : this.sync.applyBatch(qid, ev.ops);
|
|
250
|
-
if (
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
263
|
+
if (ev.type !== "snapshot") {
|
|
264
|
+
if (muts.length)
|
|
265
|
+
void this.local.mutate(muts); // incremental delta → local engine → views
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
// A snapshot is the query's hydration point. Flip its views to `complete` BEFORE folding the rows
|
|
269
|
+
// (the Store retires the SSR seed only once the query is authoritative), and capture the local
|
|
270
|
+
// qids that transition into hydrated on THIS snapshot so the forwarder stamps their fold `catchUp`
|
|
271
|
+
// — the first result set is delivered by mutating the engine, i.e. as a `batch`, not a `snapshot`.
|
|
272
|
+
// (An already-live view reading the same rows sees them as a genuine incremental add, so it is NOT
|
|
273
|
+
// in this set and folds a normal batch.) Order mirrors the optimistic backend (hydrate → complete,
|
|
274
|
+
// THEN the catch-up delta).
|
|
275
|
+
const wasHydrated = new Set(this.hydrated);
|
|
276
|
+
this.markSubHydrated(qid);
|
|
277
|
+
let newly = null;
|
|
278
|
+
for (const localQid of this.hydrated) {
|
|
279
|
+
if (!wasHydrated.has(localQid))
|
|
280
|
+
(newly ??= new Set()).add(localQid);
|
|
281
|
+
}
|
|
282
|
+
this.catchUpQids = newly;
|
|
283
|
+
try {
|
|
284
|
+
if (muts.length)
|
|
285
|
+
void this.local.mutate(muts); // → local engine → flat stream → views
|
|
286
|
+
}
|
|
287
|
+
finally {
|
|
288
|
+
this.catchUpQids = null;
|
|
289
|
+
}
|
|
290
|
+
// A hydration can fold NOTHING: a 0-row result, or one whose rows are already present in the engine
|
|
291
|
+
// (fully covered by an already-hydrated sibling → the shared rows dedup to 0 net muts). Then no
|
|
292
|
+
// batch was emitted above, so the Store never saw the hydration point and the SSR seed would stay
|
|
293
|
+
// stuck. Signal it explicitly with an EMPTY catch-up per just-hydrated qid — the Store retires the
|
|
294
|
+
// seed and reveals whatever is already in the view's tree.
|
|
295
|
+
if (!muts.length && newly) {
|
|
296
|
+
for (const localQid of newly)
|
|
297
|
+
this.handler(localQid, { type: "batch", events: [], catchUp: true });
|
|
298
|
+
}
|
|
254
299
|
}
|
|
255
300
|
emitServerDelta(sourceQid, ev) {
|
|
256
301
|
if (!this.devObservers.size)
|
package/dist/backend.js.map
CHANGED
|
@@ -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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindle/normalized",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"README.md"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@rindle/client": "0.
|
|
29
|
-
"@rindle/wasm": "0.
|
|
28
|
+
"@rindle/client": "0.5.0",
|
|
29
|
+
"@rindle/wasm": "0.5.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^22.10.0",
|
package/src/backend.ts
CHANGED
|
@@ -87,6 +87,13 @@ export class NormalizedBackend<S extends ColsMap> implements Backend {
|
|
|
87
87
|
private readonly sourceToRemote = new Map<QueryId, string>();
|
|
88
88
|
private readonly resultTypes = new Map<QueryId, ResultType>();
|
|
89
89
|
private readonly hydrated = new Set<QueryId>();
|
|
90
|
+
/** Local qids that are JUST hydrating on the in-flight `onNormalized` snapshot — set only for the
|
|
91
|
+
* duration of its `local.mutate`, so the local-event forwarder stamps their fold `catchUp`: the
|
|
92
|
+
* whole first result set arrives as a `batch` (we hydrate the view by mutating the embedded engine,
|
|
93
|
+
* which speaks in batches — there is no second `snapshot`), and `catchUp` is the flag that tells the
|
|
94
|
+
* Store this batch IS hydration (retire the SSR seed, phase it as a snapshot for narration). The
|
|
95
|
+
* optimistic backend does the identical thing across its reconcile cycle. `null` outside a hydrate. */
|
|
96
|
+
private catchUpQids: Set<QueryId> | null = null;
|
|
90
97
|
private resultTypeHandler: (qid: QueryId, rt: ResultType) => void = () => {};
|
|
91
98
|
/** The client's OWN typed per-table schemas (for CRIT#4 validation), fixed at construction. */
|
|
92
99
|
private readonly clientTables: NormalizedTableSchema[];
|
|
@@ -105,8 +112,14 @@ export class NormalizedBackend<S extends ColsMap> implements Backend {
|
|
|
105
112
|
|
|
106
113
|
constructor(schema: Schema<S>, source: NormalizedSource) {
|
|
107
114
|
this.local = new WasmBackend(schema);
|
|
108
|
-
// The local engine's flat stream IS this backend's stream upward (→ the Store's views).
|
|
109
|
-
|
|
115
|
+
// The local engine's flat stream IS this backend's stream upward (→ the Store's views). A
|
|
116
|
+
// just-hydrating query's first result set arrives here as a `batch` (we fold it by mutating the
|
|
117
|
+
// engine); stamp it `catchUp` so the Store treats it as hydration (retire the SSR seed, phase it
|
|
118
|
+
// as a snapshot) rather than an incremental change — see {@link catchUpQids}.
|
|
119
|
+
this.local.onEvent((qid, ev) => {
|
|
120
|
+
const stamped = ev.type === "batch" && this.catchUpQids?.has(qid) ? { ...ev, catchUp: true } : ev;
|
|
121
|
+
this.handler(qid, stamped);
|
|
122
|
+
});
|
|
110
123
|
// Forward the local engine's commit brackets up to the Store (cross-view-atomic notification):
|
|
111
124
|
// a normalized batch's net base mutations commit to `this.local` in one transaction, so its
|
|
112
125
|
// commit boundary is ours — every view those rows touch then notifies together.
|
|
@@ -270,8 +283,37 @@ export class NormalizedBackend<S extends ColsMap> implements Backend {
|
|
|
270
283
|
// degenerates to all-adds; for a re-hydrate it removes rows that left during the gap. A
|
|
271
284
|
// `batch` is an incremental delta → `applyBatch`.
|
|
272
285
|
const muts = ev.type === "snapshot" ? this.sync.rehydrate(qid, ev.ops) : this.sync.applyBatch(qid, ev.ops);
|
|
273
|
-
if (
|
|
274
|
-
|
|
286
|
+
if (ev.type !== "snapshot") {
|
|
287
|
+
if (muts.length) void this.local.mutate(muts); // incremental delta → local engine → views
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
// A snapshot is the query's hydration point. Flip its views to `complete` BEFORE folding the rows
|
|
291
|
+
// (the Store retires the SSR seed only once the query is authoritative), and capture the local
|
|
292
|
+
// qids that transition into hydrated on THIS snapshot so the forwarder stamps their fold `catchUp`
|
|
293
|
+
// — the first result set is delivered by mutating the engine, i.e. as a `batch`, not a `snapshot`.
|
|
294
|
+
// (An already-live view reading the same rows sees them as a genuine incremental add, so it is NOT
|
|
295
|
+
// in this set and folds a normal batch.) Order mirrors the optimistic backend (hydrate → complete,
|
|
296
|
+
// THEN the catch-up delta).
|
|
297
|
+
const wasHydrated = new Set(this.hydrated);
|
|
298
|
+
this.markSubHydrated(qid);
|
|
299
|
+
let newly: Set<QueryId> | null = null;
|
|
300
|
+
for (const localQid of this.hydrated) {
|
|
301
|
+
if (!wasHydrated.has(localQid)) (newly ??= new Set()).add(localQid);
|
|
302
|
+
}
|
|
303
|
+
this.catchUpQids = newly;
|
|
304
|
+
try {
|
|
305
|
+
if (muts.length) void this.local.mutate(muts); // → local engine → flat stream → views
|
|
306
|
+
} finally {
|
|
307
|
+
this.catchUpQids = null;
|
|
308
|
+
}
|
|
309
|
+
// A hydration can fold NOTHING: a 0-row result, or one whose rows are already present in the engine
|
|
310
|
+
// (fully covered by an already-hydrated sibling → the shared rows dedup to 0 net muts). Then no
|
|
311
|
+
// batch was emitted above, so the Store never saw the hydration point and the SSR seed would stay
|
|
312
|
+
// stuck. Signal it explicitly with an EMPTY catch-up per just-hydrated qid — the Store retires the
|
|
313
|
+
// seed and reveals whatever is already in the view's tree.
|
|
314
|
+
if (!muts.length && newly) {
|
|
315
|
+
for (const localQid of newly) this.handler(localQid, { type: "batch", events: [], catchUp: true });
|
|
316
|
+
}
|
|
275
317
|
}
|
|
276
318
|
|
|
277
319
|
private emitServerDelta(sourceQid: QueryId, ev: NormalizedEvent): void {
|