@rindle/client 0.2.0 → 0.4.2
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/ast.d.ts +11 -0
- package/dist/ast.d.ts.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/mutation-ops.d.ts +140 -0
- package/dist/mutation-ops.d.ts.map +1 -0
- package/dist/mutation-ops.js +60 -0
- package/dist/mutation-ops.js.map +1 -0
- 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 +65 -9
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +56 -1
- 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/schema.d.ts +53 -5
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +65 -4
- package/dist/schema.js.map +1 -1
- package/dist/ssr.d.ts +14 -0
- package/dist/ssr.d.ts.map +1 -1
- package/dist/ssr.js +15 -0
- package/dist/ssr.js.map +1 -1
- package/dist/store.d.ts +47 -15
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +163 -25
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +37 -0
- 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 +87 -22
- package/dist/view.js.map +1 -1
- package/package.json +1 -1
- package/src/ast.ts +11 -0
- package/src/index.ts +29 -1
- package/src/mutation-ops.ts +190 -0
- package/src/operators.ts +5 -0
- package/src/query.ts +142 -13
- package/src/resolve.ts +136 -0
- package/src/schema.ts +130 -5
- package/src/ssr.ts +21 -0
- package/src/store.ts +157 -34
- package/src/types.ts +35 -1
- package/src/view.ts +103 -22
package/dist/query.js
CHANGED
|
@@ -187,7 +187,7 @@ function localizeFragmentAst(ast, primaryKeyFor) {
|
|
|
187
187
|
return out;
|
|
188
188
|
}
|
|
189
189
|
function emptyState(table) {
|
|
190
|
-
return { table, wheres: [], orderBy: [], related: [], one: false };
|
|
190
|
+
return { table, wheres: [], orderBy: [], related: [], one: false, groupBy: [] };
|
|
191
191
|
}
|
|
192
192
|
function compile(s) {
|
|
193
193
|
const ast = { table: s.table };
|
|
@@ -209,6 +209,19 @@ function compile(s) {
|
|
|
209
209
|
ast.one = true;
|
|
210
210
|
if (s.select && s.select.length > 0)
|
|
211
211
|
ast.select = s.select;
|
|
212
|
+
if (s.aggregate !== undefined)
|
|
213
|
+
ast.aggregate = s.aggregate;
|
|
214
|
+
if (s.groupBy.length > 0)
|
|
215
|
+
ast.groupBy = s.groupBy;
|
|
216
|
+
if (s.having !== undefined)
|
|
217
|
+
ast.having = s.having;
|
|
218
|
+
// The engine takes the aggregate lowering ONLY when `aggregate` is set (REDUCE-DESIGN.md §8 /
|
|
219
|
+
// builder `build_pipeline`); `groupBy`/`having` on the row spine would be silently ignored. Fail
|
|
220
|
+
// loudly so a forgotten `.count()` is a clear error, not a query that quietly returns all rows.
|
|
221
|
+
if ((ast.groupBy !== undefined || ast.having !== undefined) && ast.aggregate === undefined) {
|
|
222
|
+
throw new Error("groupBy()/having() require count(): a top-level GROUP BY / HAVING is only honored on an " +
|
|
223
|
+
"aggregate query (REDUCE-DESIGN.md §8) — add .count().");
|
|
224
|
+
}
|
|
212
225
|
return ast;
|
|
213
226
|
}
|
|
214
227
|
/** Every base table an AST draws rows from — the root plus every related / `EXISTS` subquery (a
|
|
@@ -443,6 +456,48 @@ guardAst) {
|
|
|
443
456
|
};
|
|
444
457
|
return next({ related: [...s.related, csq] });
|
|
445
458
|
},
|
|
459
|
+
// Top-level aggregate (REDUCE-DESIGN §8): `count` reshapes this query into a `count(*)`;
|
|
460
|
+
// `groupBy` partitions it; `having` filters the post-aggregation rows. `having`'s callback gets
|
|
461
|
+
// a field binder over the aggregate's output columns (group cols + the synthetic `count`), so a
|
|
462
|
+
// predicate can name `count` — which lives on no base table — exactly like `where.<field>(…)`.
|
|
463
|
+
count: () => next({ aggregate: "count" }),
|
|
464
|
+
groupBy: (col) => next({ groupBy: [...s.groupBy, col] }),
|
|
465
|
+
having: (a, op, val) => {
|
|
466
|
+
// Overload 1 — top-level aggregate HAVING: `having((h) => h.count(gt(3)))`. The callback
|
|
467
|
+
// binds the aggregate's output columns (group cols + the synthetic `count`).
|
|
468
|
+
if (typeof a === "function") {
|
|
469
|
+
const build = a;
|
|
470
|
+
const h = new Proxy({}, {
|
|
471
|
+
get: (_t, prop) => (typeof prop === "string" ? (arg) => fieldCondition(prop, arg) : undefined),
|
|
472
|
+
});
|
|
473
|
+
return next({ having: build(h) });
|
|
474
|
+
}
|
|
475
|
+
// Overload 2 — filter THIS parent by a child aggregate's count:
|
|
476
|
+
// `.having("commentCount", ">", 10)` (PARENT-AGGREGATE-FILTER-DESIGN.md). Bind the existing
|
|
477
|
+
// `countAs(alias, …)` relationship and push a hidden EXISTS whose subquery clones the same
|
|
478
|
+
// correlation + child + `count` aggregate, plus a `HAVING count <op> val`. The engine lowers
|
|
479
|
+
// it to an EXISTS over a HAVING-filtered reduce; the display `countAs` is untouched.
|
|
480
|
+
const alias = a;
|
|
481
|
+
const display = s.related.find((r) => r.subquery.alias === alias && r.subquery.aggregate === "count");
|
|
482
|
+
if (!display) {
|
|
483
|
+
throw new Error(`having("${alias}", …): this query has no countAs("${alias}", …) relationship to filter ` +
|
|
484
|
+
`on — attach the child count aggregate first.`);
|
|
485
|
+
}
|
|
486
|
+
const gate = {
|
|
487
|
+
correlation: display.correlation,
|
|
488
|
+
subquery: {
|
|
489
|
+
...display.subquery,
|
|
490
|
+
alias: `__having_${alias}`,
|
|
491
|
+
having: {
|
|
492
|
+
type: "simple",
|
|
493
|
+
op: op,
|
|
494
|
+
left: { type: "column", name: "count" },
|
|
495
|
+
right: { type: "literal", value: val },
|
|
496
|
+
},
|
|
497
|
+
},
|
|
498
|
+
};
|
|
499
|
+
return next({ wheres: [...s.wheres, { type: "correlatedSubquery", op: "EXISTS", related: gate }] });
|
|
500
|
+
},
|
|
446
501
|
ast: () => {
|
|
447
502
|
const a = compile(s);
|
|
448
503
|
guardAst?.(a);
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { FlatChange, WireNode, WireSchema, WireValue } from "./types.ts";
|
|
2
|
+
/** A row named against its level's wire columns. */
|
|
3
|
+
export type NamedRow = Record<string, WireValue>;
|
|
4
|
+
/** One resolved change: a `FlatChange` lifted out of positional/indexed wire form into names,
|
|
5
|
+
* using the query's `WireSchema` (from `hello`) as the sole position→name source. */
|
|
6
|
+
export interface ResolvedChange {
|
|
7
|
+
/** Relationship-alias chain from the query root to the changed level (`[]` ⇒ the root rows). */
|
|
8
|
+
aliasChain: string[];
|
|
9
|
+
/** The alias of the changed level (`""` ⇒ root), i.e. the last of `aliasChain`. */
|
|
10
|
+
alias: string;
|
|
11
|
+
op: "add" | "remove" | "edit";
|
|
12
|
+
/** The affected row, named. For `edit` this is the NEW row; see `old` for the prior one. */
|
|
13
|
+
row: NamedRow;
|
|
14
|
+
/** The prior row, named (present only for `edit`). */
|
|
15
|
+
old?: NamedRow;
|
|
16
|
+
/** The PARENT row (named), for a nested/aggregate change — e.g. the `ticket_type` whose `sold`
|
|
17
|
+
* count moved. Taken from the path's last `parentRow`; absent for a root-level change. */
|
|
18
|
+
parent?: NamedRow;
|
|
19
|
+
/** Set when the changed level is a `countAs`/aggregate slot. The value is EXACT — read from the
|
|
20
|
+
* slot's projected count column (`WireRel.project.col`). */
|
|
21
|
+
aggregate?: {
|
|
22
|
+
alias: string;
|
|
23
|
+
value: WireValue;
|
|
24
|
+
previous?: WireValue;
|
|
25
|
+
};
|
|
26
|
+
/** The raw node whose children a consumer can dig a named sub-row out of (via {@link subRow}). On
|
|
27
|
+
* an `add` the engine always ships it; on a `remove` it is present only when the consumer opted
|
|
28
|
+
* into the removed subtree (see the `op` mapping below). */
|
|
29
|
+
node?: WireNode;
|
|
30
|
+
/** The changed level's `WireSchema` — used by {@link subRow} to resolve a named sub of `node`. */
|
|
31
|
+
levelSchema: WireSchema;
|
|
32
|
+
}
|
|
33
|
+
/** Lift one `FlatChange` into a {@link ResolvedChange} against the query's `WireSchema`, or `null`
|
|
34
|
+
* if its path doesn't resolve to a materialized level. */
|
|
35
|
+
export declare function resolveChange(schema: WireSchema, change: FlatChange): ResolvedChange | null;
|
|
36
|
+
/** Read a named sub-row off a change's `node` by relationship alias (e.g. the `guest` under an
|
|
37
|
+
* `rsvp`) — the `add` node, or a `remove`'s subtree when the consumer opted into it. The alias →
|
|
38
|
+
* wire slot mapping comes from the changed level's `WireSchema`. `null` when no node rode along. */
|
|
39
|
+
export declare function subRow(rc: ResolvedChange, alias: string): NamedRow | null;
|
|
40
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAW,QAAQ,EAAW,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhG,oDAAoD;AACpD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEjD;sFACsF;AACtF,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9B,4FAA4F;IAC5F,GAAG,EAAE,QAAQ,CAAC;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf;+FAC2F;IAC3F,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB;iEAC6D;IAC7D,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IACtE;;iEAE6D;IAC7D,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,kGAAkG;IAClG,WAAW,EAAE,UAAU,CAAC;CACzB;AA8BD;2DAC2D;AAC3D,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAuC3F;AAED;;qGAEqG;AACrG,wBAAgB,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQzE"}
|
package/dist/resolve.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// Positional → named change resolution: the inverse of the wire encoder.
|
|
2
|
+
//
|
|
3
|
+
// A backend ships per-query `FlatChange`s (types.ts): `{ path: PathSeg[], op: add|remove|edit }`,
|
|
4
|
+
// where `path` indexes into the view's relationship tree and rows are POSITIONAL cells. The view
|
|
5
|
+
// (view.ts) folds those into the materialized tree positionally; this module instead LIFTS one
|
|
6
|
+
// change out of positional/indexed wire form into NAMED rows, resolving it against the query's OWN
|
|
7
|
+
// `WireSchema` (the per-subscription view schema the engine ships once on its `hello` frame): per
|
|
8
|
+
// level the column NAMES in wire order, and the relationships in SLOT order (a gating exists/notExists
|
|
9
|
+
// slot is `child: null`; a `countAs` slot carries a `project` annotation). So `path[i].rel` indexes
|
|
10
|
+
// `schema.relationships[i]` directly, and a positional `row` names against `schema.columns` — both
|
|
11
|
+
// authoritative, straight from the engine.
|
|
12
|
+
//
|
|
13
|
+
// Resolving against the hello schema (rather than re-deriving positions from the query `Ast`) means
|
|
14
|
+
// we assume NOTHING about slot ordering and NOTHING about column order: it stays correct under
|
|
15
|
+
// `.select()` projections and any future slot layout. The result — named rows + an aggregate's exact
|
|
16
|
+
// new value — is what a higher layer (e.g. @rindle/narrator) renders into prose, but it is broadly
|
|
17
|
+
// useful to anything consuming a `FlatChange` (logging, devtools, change-driven overlays).
|
|
18
|
+
//
|
|
19
|
+
// NOTE on aggregates (`countAs`): the slot's `project.col` names the EXACT count cell in the child
|
|
20
|
+
// row, so a count change reports the exact new value (and previous, on an edit) — not a best-effort
|
|
21
|
+
// guess. A remove of the aggregate row means the count fell to its identity (`project.identity`).
|
|
22
|
+
/** Name positional `cells` against a level's wire `columns` (insertion = wire order). */
|
|
23
|
+
function nameRow(cells, cols) {
|
|
24
|
+
const out = {};
|
|
25
|
+
if (!cells)
|
|
26
|
+
return out;
|
|
27
|
+
for (let i = 0; i < cols.length; i++)
|
|
28
|
+
out[cols[i]] = cells[i] ?? null;
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
/** Walk a `path` from the root `WireSchema` down the relationship tree. Returns the reached level,
|
|
32
|
+
* the alias chain, and the LAST relationship traversed (its `project` marks an aggregate slot).
|
|
33
|
+
* `null` if a hop addresses an unknown or gating (`child: null`) slot. */
|
|
34
|
+
function descend(root, path) {
|
|
35
|
+
let level = root;
|
|
36
|
+
let lastRel = null;
|
|
37
|
+
const aliasChain = [];
|
|
38
|
+
for (const seg of path) {
|
|
39
|
+
const rel = level.relationships[seg.rel];
|
|
40
|
+
if (!rel || !rel.child)
|
|
41
|
+
return null; // unknown / gating slot — not a materialized level
|
|
42
|
+
lastRel = rel;
|
|
43
|
+
level = rel.child;
|
|
44
|
+
aliasChain.push(rel.name);
|
|
45
|
+
}
|
|
46
|
+
return { level, lastRel, aliasChain };
|
|
47
|
+
}
|
|
48
|
+
/** Lift one `FlatChange` into a {@link ResolvedChange} against the query's `WireSchema`, or `null`
|
|
49
|
+
* if its path doesn't resolve to a materialized level. */
|
|
50
|
+
export function resolveChange(schema, change) {
|
|
51
|
+
const here = descend(schema, change.path);
|
|
52
|
+
if (!here)
|
|
53
|
+
return null;
|
|
54
|
+
const { level, lastRel, aliasChain } = here;
|
|
55
|
+
const cols = level.columns;
|
|
56
|
+
const alias = aliasChain.length ? aliasChain[aliasChain.length - 1] : "";
|
|
57
|
+
const base = { aliasChain, alias, levelSchema: level };
|
|
58
|
+
// The parent row (for a nested/aggregate change) sits in the last path seg, named against the
|
|
59
|
+
// level one hop up.
|
|
60
|
+
if (change.path.length) {
|
|
61
|
+
const up = descend(schema, change.path.slice(0, -1));
|
|
62
|
+
const parentCells = change.path[change.path.length - 1].parentRow;
|
|
63
|
+
if (up)
|
|
64
|
+
base.parent = nameRow(parentCells, up.level.columns);
|
|
65
|
+
}
|
|
66
|
+
// A `countAs` slot carries a scalar `project` annotation on the relationship we descended through:
|
|
67
|
+
// `project.col` is the exact count cell, `project.identity` the empty value (0 for count).
|
|
68
|
+
const proj = lastRel?.project ?? null;
|
|
69
|
+
const agg = (cells) => (proj && cells ? (cells[proj.col] ?? null) : null);
|
|
70
|
+
const op = change.op;
|
|
71
|
+
if (op.tag === "add") {
|
|
72
|
+
const r = { ...base, op: "add", row: nameRow(op.node.row, cols), node: op.node };
|
|
73
|
+
if (proj)
|
|
74
|
+
r.aggregate = { alias, value: agg(op.node.row) };
|
|
75
|
+
return r;
|
|
76
|
+
}
|
|
77
|
+
if (op.tag === "remove") {
|
|
78
|
+
const r = { ...base, op: "remove", row: nameRow(op.row, cols) };
|
|
79
|
+
// The removed subtree rides along only when the consumer opted into it (the ArrayView attaches
|
|
80
|
+
// it client-side — `Store.subscribeChanges(_, { removedSubtree: true })`). When present, `subRow`
|
|
81
|
+
// resolves a removed row's nested subs exactly as on an `add`; absent, a remove is row-only.
|
|
82
|
+
if (op.node)
|
|
83
|
+
r.node = op.node;
|
|
84
|
+
if (proj)
|
|
85
|
+
r.aggregate = { alias, value: proj.identity };
|
|
86
|
+
return r;
|
|
87
|
+
}
|
|
88
|
+
// edit
|
|
89
|
+
const r = { ...base, op: "edit", row: nameRow(op.new, cols), old: nameRow(op.old, cols) };
|
|
90
|
+
if (proj)
|
|
91
|
+
r.aggregate = { alias, value: agg(op.new), previous: agg(op.old) };
|
|
92
|
+
return r;
|
|
93
|
+
}
|
|
94
|
+
/** Read a named sub-row off a change's `node` by relationship alias (e.g. the `guest` under an
|
|
95
|
+
* `rsvp`) — the `add` node, or a `remove`'s subtree when the consumer opted into it. The alias →
|
|
96
|
+
* wire slot mapping comes from the changed level's `WireSchema`. `null` when no node rode along. */
|
|
97
|
+
export function subRow(rc, alias) {
|
|
98
|
+
if (!rc.node)
|
|
99
|
+
return null;
|
|
100
|
+
const rel = rc.levelSchema.relationships.find((r) => r.name === alias);
|
|
101
|
+
if (!rel || !rel.child)
|
|
102
|
+
return null;
|
|
103
|
+
const slot = rc.node.rels.find((s) => s.rel === rel.slot);
|
|
104
|
+
const child = slot?.children[0];
|
|
105
|
+
if (!child)
|
|
106
|
+
return null;
|
|
107
|
+
return nameRow(child.row, rel.child.columns);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Arg, Cond } from "./operators.ts";
|
|
2
2
|
import type { ColType } from "./types.ts";
|
|
3
|
-
/** A column descriptor. `type` drives the comparator + JSON parsing; `__t` is a phantom.
|
|
3
|
+
/** A column descriptor. `type` drives the comparator + JSON parsing; `__t` is a phantom. A
|
|
4
|
+
* nullable column is a `Col<T | null>` — that is the ONLY thing nullability changes at the type
|
|
5
|
+
* level, so `RowOf` (and the field-condition factory) widen automatically. */
|
|
4
6
|
export interface Col<T> {
|
|
5
7
|
readonly type: ColType;
|
|
6
8
|
readonly __t?: T;
|
|
@@ -10,10 +12,19 @@ export type AnyCols = Record<string, Col<unknown>>;
|
|
|
10
12
|
export type RowOf<C extends AnyCols> = {
|
|
11
13
|
[K in keyof C]: ColT<C[K]>;
|
|
12
14
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
/** The chainable form returned by the column factories: a {@link Col} plus `.nullable()`.
|
|
16
|
+
*
|
|
17
|
+
* `.nullable()` widens the column's value type to `T | null` — its `Row<…>` field becomes
|
|
18
|
+
* `T | null`, and (design 206 Phase 2) it may be omitted from an insert. `rindle schema gen` emits
|
|
19
|
+
* `.nullable()` for every nullable (non-`NOT NULL`) SQL column; you can also call it by hand on a
|
|
20
|
+
* local-only table's columns. It is idempotent and stays chainable. */
|
|
21
|
+
export interface ColBuilder<T> extends Col<T> {
|
|
22
|
+
nullable(): ColBuilder<T | null>;
|
|
23
|
+
}
|
|
24
|
+
export declare const string: <T extends string = string>() => ColBuilder<T>;
|
|
25
|
+
export declare const number: <T extends number = number>() => ColBuilder<T>;
|
|
26
|
+
export declare const boolean: () => ColBuilder<boolean>;
|
|
27
|
+
export declare const json: <T = unknown>() => ColBuilder<T>;
|
|
17
28
|
/** Metadata key on a {@link TableDef} (a `unique symbol`, so no column name collides). */
|
|
18
29
|
export declare const SCHEMA: unique symbol;
|
|
19
30
|
export interface TableMeta<N extends string = string, C extends AnyCols = AnyCols> {
|
|
@@ -92,6 +103,43 @@ export declare function createSchema<const T extends readonly AnyTable[]>(opts:
|
|
|
92
103
|
export declare function extendSchema<S extends ColsMap, const T extends readonly AnyTable[]>(base: Schema<S>, opts: {
|
|
93
104
|
tables: T;
|
|
94
105
|
}): Schema<S & SchemaOf<T>>;
|
|
106
|
+
/** Per-column narrowings for {@link refineTable}: each entry must keep the column's kind and narrow
|
|
107
|
+
* its TS type (`Col<T2>` with `T2 extends T`) — `json<Meta>()` on a json column, a literal-union
|
|
108
|
+
* `string<"a" | "b">()` on a string column. Kind changes are rejected (cross-kind at compile time,
|
|
109
|
+
* same-phantom kind flips like `string()` on a json column at runtime). */
|
|
110
|
+
export type ColRefinements<C extends AnyCols> = {
|
|
111
|
+
readonly [K in keyof C]?: Col<ColT<C[K]>>;
|
|
112
|
+
};
|
|
113
|
+
/** `C` with the columns named in `R` re-typed to their refined `Col`s. */
|
|
114
|
+
export type RefinedCols<C extends AnyCols, R extends ColRefinements<C>> = {
|
|
115
|
+
[K in keyof C]: K extends keyof R ? (R[K] extends Col<unknown> ? R[K] : C[K]) : C[K];
|
|
116
|
+
};
|
|
117
|
+
/** Narrow a generated table's column TYPES without touching its runtime shape.
|
|
118
|
+
*
|
|
119
|
+
* Returns the SAME def, re-typed (identity, after validating that every refined column exists and
|
|
120
|
+
* keeps its kind) — so conditions built from it, `rel(...)`s anchored on it, and `Row<typeof t>`
|
|
121
|
+
* all see the narrowed types. Pass the result to {@link refineSchema} so query roots narrow too. */
|
|
122
|
+
export declare function refineTable<N extends string, C extends AnyCols, R extends ColRefinements<C>>(base: TableDef<N, C>, cols: R): TableDef<N, RefinedCols<C, R>>;
|
|
123
|
+
/** A table def acceptable to {@link refineSchema} over `Schema<S>`: its NAME must be one of `S`'s
|
|
124
|
+
* tables (a def for an unknown table is a compile error at the call site). */
|
|
125
|
+
export type RefinableTable<S extends ColsMap> = {
|
|
126
|
+
readonly [SCHEMA]: TableMeta<Extract<keyof S, string>, AnyCols>;
|
|
127
|
+
};
|
|
128
|
+
/** `S` with each table named in `T` re-typed to that def's (refined) columns. (The inner
|
|
129
|
+
* `extends AnyCols` guard is how the checker proves the remapped `SchemaOf<T>[K]` is a column
|
|
130
|
+
* map while `T` is still generic; it always holds for a concrete `T`.) */
|
|
131
|
+
export type RefinedColsMap<S extends ColsMap, T extends readonly AnyTable[]> = {
|
|
132
|
+
[K in keyof S]: K extends keyof SchemaOf<T> ? (SchemaOf<T>[K] extends AnyCols ? SchemaOf<T>[K] : S[K]) : S[K];
|
|
133
|
+
};
|
|
134
|
+
/** Swap {@link refineTable}-narrowed table defs into a generated schema, re-typing those tables for
|
|
135
|
+
* everything downstream of the schema (`newQueryBuilder`/`queries` roots, store row types).
|
|
136
|
+
*
|
|
137
|
+
* Runtime-validated identity: each def must name a table already in the schema and match its
|
|
138
|
+
* runtime shape exactly (same columns, kinds, primary key, and locality) — refinement narrows TS
|
|
139
|
+
* types, never what's on the wire. Composes with {@link extendSchema} in either order. */
|
|
140
|
+
export declare function refineSchema<S extends ColsMap, const T extends readonly RefinableTable<S>[]>(base: Schema<S>, opts: {
|
|
141
|
+
tables: T;
|
|
142
|
+
}): Schema<RefinedColsMap<S, T>>;
|
|
95
143
|
/** Whether `table` is a {@link TableMeta.local local-only} table in `schema` (an unknown table
|
|
96
144
|
* reads as non-local). The single locality predicate the backends key off. */
|
|
97
145
|
export declare function isLocalTable<S extends ColsMap>(schema: Schema<S>, table: string): boolean;
|
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,MAAM,YAAY,CAAC;AAE1C
|
|
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,MAAM,YAAY,CAAC;AAE1C;;+EAE+E;AAC/E,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,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;;;;;wEAKwE;AACxE,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IAC3C,QAAQ,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAClC;AAGD,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;IAC/E,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAIpB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;iCAG6B;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B;;6CAEyC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,IAAI;IAC1D,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC;AAEF;;2DAE2D;AAC3D,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,IAAI;IAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAE1C;;8DAE8D;AAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEzE;oFACoF;AACpF,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY;YAExD,CAAC,SAAS,OAAO,QAAQ,CAAC;mBAEnB,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;EAM3E;AAYD,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,CAEhD;AAED,wFAAwF;AACxF,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,QAAQ,EAAE,IAAI;KACnD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC;CAC1E,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IACjD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACrD,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CACpB;AAED;;;;;;mFAMmF;AACnF,eAAO,MAAM,uBAAuB,iCAAkC,CAAC;AAEvE,0GAA0G;AAC1G,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,QAAQ,EAAE,EAAE,IAAI,EAAE;IACtE,MAAM,EAAE,CAAC,CAAC;CACX,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAOtB;AAED;;;;;;mEAMmE;AACnE,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,SAAS,QAAQ,EAAE,EACjF,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EACf,IAAI,EAAE;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAClB,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAYzB;AA8BD;;;4EAG4E;AAC5E,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,IAAI;IAC9C,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,IAAI;KACvE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrF,CAAC;AAEF;;;;qGAIqG;AACrG,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC1F,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,CAAC,GACN,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAgBhC;AAED;+EAC+E;AAC/E,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,IAAI;IAC9C,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;CACjE,CAAC;AAEF;;2EAE2E;AAC3E,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,IAAI;KAC5E,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC9G,CAAC;AAEF;;;;;2FAK2F;AAC3F,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,EAC1F,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EACf,IAAI,EAAE;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAClB,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB9B;AAsBD;+EAC+E;AAC/E,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzF;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAEjF;AAQD,mGAAmG;AACnG,QAAA,MAAM,kBAAkB,EAAE,OAAO,MAAsC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,OAAO;IAClE,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAChG,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;CACrC;AAED,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,OAAO,EACxD,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EACtB,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAC7D,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAItB;AAED;yGACyG;AACzG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEzF;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAE/D;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAItF;AAED;;;;;;;;oFAQoF;AACpF,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,OAAO,EACtD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAK7D"}
|
package/dist/schema.js
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
// (WASM-CLIENT-DESIGN.md §6). Schema metadata is stored under a `unique symbol` key so it
|
|
7
7
|
// never collides with a column name.
|
|
8
8
|
import { fieldCondition } from "./operators.js";
|
|
9
|
-
|
|
10
|
-
export const
|
|
11
|
-
export const
|
|
12
|
-
export const
|
|
9
|
+
const makeCol = (type) => ({ type, nullable: () => makeCol(type) });
|
|
10
|
+
export const string = () => makeCol("string");
|
|
11
|
+
export const number = () => makeCol("number");
|
|
12
|
+
export const boolean = () => makeCol("boolean");
|
|
13
|
+
export const json = () => makeCol("json");
|
|
13
14
|
/** Metadata key on a {@link TableDef} (a `unique symbol`, so no column name collides). */
|
|
14
15
|
export const SCHEMA = Symbol("rindle.schema");
|
|
15
16
|
/** `table("issue").columns({ id: string(), … }).primaryKey("id")`. Pass `{ local: true }` for a
|
|
@@ -92,6 +93,66 @@ function addTableMeta(tables, m, caller) {
|
|
|
92
93
|
}
|
|
93
94
|
tables[m.name] = m;
|
|
94
95
|
}
|
|
96
|
+
/** Narrow a generated table's column TYPES without touching its runtime shape.
|
|
97
|
+
*
|
|
98
|
+
* Returns the SAME def, re-typed (identity, after validating that every refined column exists and
|
|
99
|
+
* keeps its kind) — so conditions built from it, `rel(...)`s anchored on it, and `Row<typeof t>`
|
|
100
|
+
* all see the narrowed types. Pass the result to {@link refineSchema} so query roots narrow too. */
|
|
101
|
+
export function refineTable(base, cols) {
|
|
102
|
+
const meta = base[SCHEMA];
|
|
103
|
+
for (const [name, col] of Object.entries(cols)) {
|
|
104
|
+
if (col === undefined)
|
|
105
|
+
continue;
|
|
106
|
+
const baseCol = meta.columns[name];
|
|
107
|
+
if (baseCol === undefined) {
|
|
108
|
+
throw new Error(`refineTable: table "${meta.name}" has no column "${name}".`);
|
|
109
|
+
}
|
|
110
|
+
if (col.type !== baseCol.type) {
|
|
111
|
+
throw new Error(`refineTable: column "${meta.name}.${name}" is ${baseCol.type}, not ${col.type} — a refinement ` +
|
|
112
|
+
`may only narrow the TS type WITHIN a column's kind, never change the kind itself.`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return base;
|
|
116
|
+
}
|
|
117
|
+
/** Swap {@link refineTable}-narrowed table defs into a generated schema, re-typing those tables for
|
|
118
|
+
* everything downstream of the schema (`newQueryBuilder`/`queries` roots, store row types).
|
|
119
|
+
*
|
|
120
|
+
* Runtime-validated identity: each def must name a table already in the schema and match its
|
|
121
|
+
* runtime shape exactly (same columns, kinds, primary key, and locality) — refinement narrows TS
|
|
122
|
+
* types, never what's on the wire. Composes with {@link extendSchema} in either order. */
|
|
123
|
+
export function refineSchema(base, opts) {
|
|
124
|
+
const seen = new Set();
|
|
125
|
+
for (const t of opts.tables) {
|
|
126
|
+
const m = t[SCHEMA];
|
|
127
|
+
const baseMeta = base.tables[m.name];
|
|
128
|
+
if (baseMeta === undefined) {
|
|
129
|
+
throw new Error(`refineSchema: schema has no table "${m.name}" — refinement re-types existing tables only ` +
|
|
130
|
+
`(add local-only tables with extendSchema).`);
|
|
131
|
+
}
|
|
132
|
+
if (seen.has(m.name)) {
|
|
133
|
+
throw new Error(`refineSchema: table "${m.name}" is refined twice.`);
|
|
134
|
+
}
|
|
135
|
+
seen.add(m.name);
|
|
136
|
+
assertRefinementMatches(m, baseMeta);
|
|
137
|
+
}
|
|
138
|
+
return base;
|
|
139
|
+
}
|
|
140
|
+
/** The refined def must be the same table the schema already carries — identical column set, kinds,
|
|
141
|
+
* primary key, and locality — so swapping its TYPE in cannot change any runtime behavior. */
|
|
142
|
+
function assertRefinementMatches(m, baseMeta) {
|
|
143
|
+
const cols = Object.keys(m.columns);
|
|
144
|
+
const baseCols = Object.keys(baseMeta.columns);
|
|
145
|
+
const matches = cols.length === baseCols.length &&
|
|
146
|
+
cols.every((c) => baseMeta.columns[c] !== undefined && m.columns[c].type === baseMeta.columns[c].type) &&
|
|
147
|
+
m.primaryKey.length === baseMeta.primaryKey.length &&
|
|
148
|
+
m.primaryKey.every((k, i) => baseMeta.primaryKey[i] === k) &&
|
|
149
|
+
(m.local === true) === (baseMeta.local === true);
|
|
150
|
+
if (!matches) {
|
|
151
|
+
throw new Error(`refineSchema: table "${m.name}" does not match the schema's table of that name — pass the ` +
|
|
152
|
+
`output of refineTable over the SAME generated def (identical columns, kinds, primary key, ` +
|
|
153
|
+
`and locality).`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
95
156
|
/** Whether `table` is a {@link TableMeta.local local-only} table in `schema` (an unknown table
|
|
96
157
|
* reads as non-local). The single locality predicate the backends key off. */
|
|
97
158
|
export function isLocalTable(schema, table) {
|
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;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/ssr.d.ts
CHANGED
|
@@ -68,6 +68,20 @@ export declare class ServerStore<S extends ColsMap> {
|
|
|
68
68
|
/** The dehydrated first-paint cache for every preloaded query — embed in the HTML, then
|
|
69
69
|
* `store.hydrate(...)` it in the browser. */
|
|
70
70
|
dehydrate(): DehydratedState;
|
|
71
|
+
/**
|
|
72
|
+
* Loader-phase convenience over {@link preload} + {@link dehydrate}: preload EVERY query (reads run
|
|
73
|
+
* concurrently) and return the dehydrated first-paint cache. Composition keeps this to one read per
|
|
74
|
+
* composed root query — no request waterfall (SSR-DESIGN.md §6.2).
|
|
75
|
+
*
|
|
76
|
+
* A failed read degrades to NO seed for that one query — `onError` fires and the browser's live
|
|
77
|
+
* engine fills it in right after hydration — rather than rejecting the whole batch (which would trip
|
|
78
|
+
* the route's error boundary). The seed is a first-paint optimization; the live `subscribe` is the
|
|
79
|
+
* source of truth, so a missing seed never affects correctness. Without `onError` a failed read is
|
|
80
|
+
* swallowed silently — pass one to log.
|
|
81
|
+
*/
|
|
82
|
+
preloadAll(queries: Array<Query<any, any, any>>, opts?: {
|
|
83
|
+
onError?: (query: Query<any, any, any>, err: unknown) => void;
|
|
84
|
+
}): Promise<DehydratedState>;
|
|
71
85
|
}
|
|
72
86
|
/** Construct a {@link ServerStore} — the one-shot REST Store for server-side rendering. */
|
|
73
87
|
export declare function createServerStore<S extends ColsMap>(schema: Schema<S>, opts: ServerStoreOptions): ServerStore<S>;
|
package/dist/ssr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../src/ssr.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvF;;wFAEwF;AACxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;4EAU4E;AAC5E,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3F,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IACxE,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IACpC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG7C,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;CACxE;AAED,MAAM,WAAW,kBAAkB;IACjC,oGAAoG;IACpG,KAAK,EAAE,cAAc,CAAC;IACtB;;+EAE2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;6DAGyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO;IACxC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB;IAMvD;kFAC8E;IACxE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD;kDAC8C;IAC9C,SAAS,IAAI,eAAe;
|
|
1
|
+
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../src/ssr.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvF;;wFAEwF;AACxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;4EAU4E;AAC5E,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3F,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IACxE,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IACpC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG7C,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;CACxE;AAED,MAAM,WAAW,kBAAkB;IACjC,oGAAoG;IACpG,KAAK,EAAE,cAAc,CAAC;IACtB;;+EAE2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;6DAGyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO;IACxC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB;IAMvD;kFAC8E;IACxE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD;kDAC8C;IAC9C,SAAS,IAAI,eAAe;IAI5B;;;;;;;;;;OAUG;IACG,UAAU,CACd,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACpC,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;KAAO,GAC3E,OAAO,CAAC,eAAe,CAAC;CAM5B;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,kBAAkB,GACvB,WAAW,CAAC,CAAC,CAAC,CAEhB"}
|