@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/README.md
CHANGED
|
@@ -8,22 +8,45 @@ backend such as [`@rindle/wasm`](../wasm) (local, in-process) or a remote (netwo
|
|
|
8
8
|
## Schema + queries
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
table,
|
|
13
|
+
string,
|
|
14
|
+
number,
|
|
15
|
+
boolean,
|
|
16
|
+
json,
|
|
17
|
+
createSchema,
|
|
18
|
+
defineRelationships,
|
|
19
|
+
rel,
|
|
20
|
+
extendSchema,
|
|
21
|
+
eq,
|
|
22
|
+
gt,
|
|
23
|
+
ilike,
|
|
24
|
+
or,
|
|
25
|
+
exists,
|
|
26
|
+
} from "@rindle/client";
|
|
12
27
|
|
|
13
28
|
const issue = table("issue")
|
|
14
29
|
.columns({ id: number(), title: string(), priority: number(), meta: json<{ tags: string[] }>() })
|
|
15
30
|
.primaryKey("id");
|
|
16
31
|
|
|
17
|
-
const
|
|
32
|
+
const comment = table("comment")
|
|
33
|
+
.columns({ id: number(), issueId: number(), body: string() })
|
|
34
|
+
.primaryKey("id");
|
|
35
|
+
|
|
36
|
+
const schema = createSchema({ tables: [issue, comment] }); // pass to `new Store(schema, backend)`
|
|
37
|
+
|
|
38
|
+
const rels = defineRelationships({
|
|
39
|
+
issueComments: rel(issue, comment, { id: "issueId" }),
|
|
40
|
+
});
|
|
18
41
|
```
|
|
19
42
|
|
|
20
43
|
- **Operators** are named value-functions: `eq / ne / gt / ge / lt / le / like / ilike / inList / …`.
|
|
21
44
|
- **`where`** is a typed proxy — `where.closed(false)`, `where.priority(gt(3))` — with camelCase
|
|
22
45
|
sugar `whereClosed(false)`. Multiple `where`s are AND-ed.
|
|
23
46
|
- **`or` / `and` / `exists`** are plain top-level functions (no closure): conditions carry their
|
|
24
|
-
table type, e.g. `where(or(issue.priority(gt(8)), exists(comment, { parent: ["id"], child: ["
|
|
25
|
-
- **Nesting** is `sub(alias,
|
|
26
|
-
|
|
47
|
+
table type, e.g. `where(or(issue.priority(gt(8)), exists(comment, { parent: ["id"], child: ["issueId"] })))`.
|
|
48
|
+
- **Nesting** is `sub(alias, relationship, build?)`, or
|
|
49
|
+
`sub(alias, childTable, correlation, build?)` when you want to spell the join inline.
|
|
27
50
|
- **Paging / single-row**: `orderBy(col, dir)`, `limit(n)`, `start(cursor, { exclusive })` (cursor
|
|
28
51
|
paging from a partial row over the sort columns), and `one()`.
|
|
29
52
|
|
|
@@ -38,6 +61,48 @@ const view = store.query.issue.where.id(id).one().materialize();
|
|
|
38
61
|
view.subscribe((row) => render(row)); // row: Issue | null, not Issue[]
|
|
39
62
|
```
|
|
40
63
|
|
|
64
|
+
## Named queries + fragments
|
|
65
|
+
|
|
66
|
+
Remote subscriptions should be named with `defineQuery`. The returned value is callable: it
|
|
67
|
+
validates untrusted args, builds the query, and stamps it with the `(name, args)` wire identity that
|
|
68
|
+
remote backends subscribe to.
|
|
69
|
+
|
|
70
|
+
Fragments are reusable selections over a table. They compose into named queries with `include`
|
|
71
|
+
(same row) and `sub` (related rows), so a React screen can open one root query while child
|
|
72
|
+
components keep owning their own data declarations.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { defineFragment, defineQuery, newQueryBuilder } from "@rindle/client";
|
|
76
|
+
import type { FragmentData, FragmentRef } from "@rindle/client";
|
|
77
|
+
|
|
78
|
+
const q = newQueryBuilder(schema);
|
|
79
|
+
|
|
80
|
+
export const IssueCardFragment = defineFragment(issue, (i) =>
|
|
81
|
+
i
|
|
82
|
+
.select("id", "title")
|
|
83
|
+
.countAs("commentCount", rels.issueComments),
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
export type IssueCardData = FragmentData<typeof IssueCardFragment>;
|
|
87
|
+
export type IssueCardRef = FragmentRef<typeof IssueCardFragment>;
|
|
88
|
+
|
|
89
|
+
export const issuesPageQuery = defineQuery(
|
|
90
|
+
"issuesPage",
|
|
91
|
+
(raw): { limit: number } => {
|
|
92
|
+
const limit = Number((raw as { limit?: unknown }).limit);
|
|
93
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > 100) throw new Error("bad limit");
|
|
94
|
+
return { limit };
|
|
95
|
+
},
|
|
96
|
+
({ limit }) => q.issue.orderBy("id", "asc").limit(limit).include(IssueCardFragment),
|
|
97
|
+
);
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`FragmentData<F>` is the local data shape read by the component that owns `F`. `FragmentRef<F>` is
|
|
101
|
+
the opaque token React passes between components; use `fragmentKey(ref)` from `@rindle/client` or
|
|
102
|
+
`@rindle/react` for stable list keys. Passing a fragment directly to `sub(alias, rel, ChildFragment)`
|
|
103
|
+
creates child refs in the React-facing local data. Passing an inline builder such as
|
|
104
|
+
`sub(alias, rel, (q) => q.include(ChildFragment).orderBy(...))` keeps that child payload inline for
|
|
105
|
+
the parent to read.
|
|
41
106
|
|
|
42
107
|
## Local-only tables
|
|
43
108
|
|
package/dist/ast.d.ts
CHANGED
|
@@ -78,6 +78,17 @@ export interface Ast {
|
|
|
78
78
|
* with a plain singular join + the same projection instead of a `reduce`. Only meaningful
|
|
79
79
|
* with `aggregate`; absent ⇒ `false`. */
|
|
80
80
|
aggregatePrecomputed?: boolean;
|
|
81
|
+
/** Top-level `GROUP BY` columns (names), meaningful only alongside a root {@link Ast.aggregate}
|
|
82
|
+
* (`REDUCE-DESIGN.md` §8). Empty + `aggregate` set ⇒ a **global** aggregate (one `[count]` row);
|
|
83
|
+
* non-empty ⇒ one `[group…, count]` row per distinct value-tuple. Distinct from a relationship
|
|
84
|
+
* aggregate's implicit grouping (the correlation child key). Absent on the wire ⇒ empty. */
|
|
85
|
+
groupBy?: string[];
|
|
86
|
+
/** `HAVING` — a filter over the **post-aggregation** rows of a root {@link Ast.aggregate}
|
|
87
|
+
* (`REDUCE-DESIGN.md` §4: a filter directly above the `reduce`). Its condition addresses the
|
|
88
|
+
* aggregate's *output* columns — the {@link Ast.groupBy} columns and the synthetic `count`
|
|
89
|
+
* column — not base-table columns (those go in {@link Ast.where}, which filters rows *below* the
|
|
90
|
+
* reduce). Absent ⇒ no post-aggregation filter. */
|
|
91
|
+
having?: Condition;
|
|
81
92
|
orderBy?: OrderPart[];
|
|
82
93
|
}
|
|
83
94
|
//# sourceMappingURL=ast.d.ts.map
|
package/dist/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjC,qFAAqF;AACrF,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElD,0FAA0F;AAC1F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC;AAErE,uDAAuD;AACvD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzC,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAChB,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,WAAW,GACX,IAAI,GACJ,QAAQ,CAAC;AAEb,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE/C;sFACsF;AACtF,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;8FAE8F;AAC9F,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;CAC5C;AAED;;qFAEqF;AACrF,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAEhC;0FAC0F;AAC1F,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;uEAEmE;IACnE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;iGAE6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;8CAI0C;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjC,qFAAqF;AACrF,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElD,0FAA0F;AAC1F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC;AAErE,uDAAuD;AACvD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzC,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAChB,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,WAAW,GACX,IAAI,GACJ,QAAQ,CAAC;AAEb,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE/C;sFACsF;AACtF,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;8FAE8F;AAC9F,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;CAC5C;AAED;;qFAEqF;AACrF,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAEhC;0FAC0F;AAC1F,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;uEAEmE;IACnE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;iGAE6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;8CAI0C;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;iGAG6F;IAC7F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;wDAIoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ export * from "./query.ts";
|
|
|
4
4
|
export * from "./view.ts";
|
|
5
5
|
export * from "./store.ts";
|
|
6
6
|
export * from "./ssr.ts";
|
|
7
|
+
export { resolveChange, subRow } from "./resolve.ts";
|
|
8
|
+
export type { NamedRow, ResolvedChange } from "./resolve.ts";
|
|
7
9
|
export { stableKey } from "./key.ts";
|
|
8
10
|
export { COMPARATOR_VERSION, compareNumber, compareRows, compareString, compareValue } from "./compare.ts";
|
|
9
|
-
export type { Backend, ChangeEvent, ColType, FlatChange, FlatOp, Mutation, MutationEnvelope, NormalizedEvent, NormalizedOp, NormalizedSource, NormalizedTableSchema, OptimisticSource, PathSeg, ProgressFrame, QueryId, RemoteQuery, ResultType, WireNode, WireProjection, WireRel, WireSchema, WireValue, } from "./types.ts";
|
|
11
|
+
export type { Backend, BackendDevObserver, BackendServerDelta, ChangeEvent, ColType, FlatChange, FlatOp, Mutation, MutationEnvelope, NormalizedEvent, NormalizedOp, NormalizedSource, NormalizedTableSchema, OptimisticSource, PathSeg, ProgressFrame, QueryId, RemoteQuery, ResultType, WireNode, WireProjection, WireRel, WireSchema, WireValue, } from "./types.ts";
|
|
10
12
|
export { CLIENT_MUTATIONS_SCHEMA, CLIENT_MUTATIONS_TABLE, LMID_QUERY_NAME } from "./types.ts";
|
|
11
13
|
export type { Aggregate, Ast, Bound, Condition, CorrelatedSubquery, Correlation, Dir, ExistsOp, LitValue, OrderPart, SimpleOp, ValuePosition, } from "./ast.ts";
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3G,YAAY,EACV,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EACP,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG9F,YAAY,EACV,SAAS,EACT,GAAG,EACH,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,GACd,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3G,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EACP,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG9F,YAAY,EACV,SAAS,EACT,GAAG,EACH,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,GACd,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export * from "./query.js"; // Query, QueryRoot, queries/newQueryBuilder, define
|
|
|
7
7
|
export * from "./view.js"; // ArrayView, SingularArrayView, FlatArrayView, SingularView, ViewTypes
|
|
8
8
|
export * from "./store.js"; // Store, WriteTx, AssembledNode, DehydratedQuery, DehydratedState
|
|
9
9
|
export * from "./ssr.js"; // createServerStore, ServerStore, OneShotBackend, OneShotQueryFn, OneShotResult, ServerStoreOptions
|
|
10
|
+
export { resolveChange, subRow } from "./resolve.js"; // positional FlatChange → named rows (inverse of the wire encoder)
|
|
10
11
|
export { stableKey } from "./key.js"; // canonical viewKey for an AST (shared with @rindle/react)
|
|
11
12
|
export { COMPARATOR_VERSION, compareNumber, compareRows, compareString, compareValue } from "./compare.js";
|
|
12
13
|
export { CLIENT_MUTATIONS_SCHEMA, CLIENT_MUTATIONS_TABLE, LMID_QUERY_NAME } from "./types.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0FAA0F;AAC1F,8CAA8C;AAE9C,cAAc,aAAa,CAAC,CAAC,gIAAgI;AAC7J,cAAc,gBAAgB,CAAC,CAAC,mGAAmG;AACnI,cAAc,YAAY,CAAC,CAAC,uIAAuI;AACnK,cAAc,WAAW,CAAC,CAAC,uEAAuE;AAClG,cAAc,YAAY,CAAC,CAAC,kEAAkE;AAC9F,cAAc,UAAU,CAAC,CAAC,oGAAoG;AAE9H,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC,CAAC,2DAA2D;AAEjG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0FAA0F;AAC1F,8CAA8C;AAE9C,cAAc,aAAa,CAAC,CAAC,gIAAgI;AAC7J,cAAc,gBAAgB,CAAC,CAAC,mGAAmG;AACnI,cAAc,YAAY,CAAC,CAAC,uIAAuI;AACnK,cAAc,WAAW,CAAC,CAAC,uEAAuE;AAClG,cAAc,YAAY,CAAC,CAAC,kEAAkE;AAC9F,cAAc,UAAU,CAAC,CAAC,oGAAoG;AAE9H,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC,CAAC,mEAAmE;AAGzH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC,CAAC,2DAA2D;AAEjG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA6B3G,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/operators.d.ts
CHANGED
|
@@ -22,6 +22,11 @@ export declare const inList: <V>(values: V[]) => Pred<V>;
|
|
|
22
22
|
export declare const notInList: <V>(values: V[]) => Pred<V>;
|
|
23
23
|
export declare const is: <V>(v: V) => Pred<V>;
|
|
24
24
|
export declare const isNot: <V>(v: V) => Pred<V>;
|
|
25
|
+
/** `IS NULL` — a field-agnostic null check. `V` is inferred from the field's expected `Arg<V>`
|
|
26
|
+
* (e.g. `where.signedAt(isNull())`), so it fits a column of any type without a cast. */
|
|
27
|
+
export declare const isNull: <V = never>() => Pred<V>;
|
|
28
|
+
/** `IS NOT NULL` — the negation of {@link isNull}; `V` is inferred from the field, like {@link isNull}. */
|
|
29
|
+
export declare const isNotNull: <V = never>() => Pred<V>;
|
|
25
30
|
/** A field argument: its typed predicate, or a bare value (bare = `eq` sugar). */
|
|
26
31
|
export type Arg<V> = Pred<V> | V;
|
|
27
32
|
/** A condition over row `R`. The runtime value is the wire {@link Condition}; `R` is a
|
package/dist/operators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9D,QAAA,MAAM,IAAI,EAAE,OAAO,MAA8B,CAAC;AAElD,8FAA8F;AAC9F,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CAClB;AAMD,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAErD;AAED,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA2B,CAAC;AAC/D,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA4B,CAAC;AAChE,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA2B,CAAC;AACvF,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA4B,CAAC;AACxF,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA2B,CAAC;AACvF,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA4B,CAAC;AACxF,eAAO,MAAM,IAAI,GAAI,SAAS,MAAM,KAAG,IAAI,CAAC,MAAM,CAAwB,CAAC;AAC3E,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,KAAG,IAAI,CAAC,MAAM,CAA4B,CAAC;AAClF,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,KAAG,IAAI,CAAC,MAAM,CAAyB,CAAC;AAC7E,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,IAAI,CAAC,MAAM,CAA6B,CAAC;AACpF,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;AAChF,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,CAAC,CAAqC,CAAC;AACvF,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAA4B,CAAC;AAChE,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,IAAI,CAAC,CAAC,CAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"}
|
package/dist/operators.js
CHANGED
|
@@ -23,6 +23,11 @@ export const inList = (values) => mk("IN", values);
|
|
|
23
23
|
export const notInList = (values) => mk("NOT IN", values);
|
|
24
24
|
export const is = (v) => mk("IS", v);
|
|
25
25
|
export const isNot = (v) => mk("IS NOT", v);
|
|
26
|
+
/** `IS NULL` — a field-agnostic null check. `V` is inferred from the field's expected `Arg<V>`
|
|
27
|
+
* (e.g. `where.signedAt(isNull())`), so it fits a column of any type without a cast. */
|
|
28
|
+
export const isNull = () => mk("IS", null);
|
|
29
|
+
/** `IS NOT NULL` — the negation of {@link isNull}; `V` is inferred from the field, like {@link isNull}. */
|
|
30
|
+
export const isNotNull = () => mk("IS NOT", null);
|
|
26
31
|
/** Build a `simple` condition from a field name + (predicate | bare value). */
|
|
27
32
|
export function fieldCondition(field, arg) {
|
|
28
33
|
const op = isPred(arg) ? arg.op : "=";
|
package/dist/operators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,2FAA2F;AAC3F,sFAAsF;AACtF,4DAA4D;AAI5D,MAAM,IAAI,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAUlD,SAAS,EAAE,CAAI,EAAY,EAAE,KAAe;IAC1C,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAa,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAA6B,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC9F,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAa,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAa,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,EAAE,GAAG,CAA4B,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAa,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,EAAE,GAAG,CAA4B,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAa,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,EAAE,GAAG,CAA4B,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAa,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,EAAE,GAAG,CAA4B,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAa,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,OAAe,EAAgB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAgB,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAgB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAgB,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,MAAW,EAAW,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,MAAkB,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,MAAW,EAAW,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAkB,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAa,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,CAAI,EAAW,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"}
|
package/dist/query.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type { Ast, Dir } from "./ast.ts";
|
|
1
|
+
import type { Ast, CorrelatedSubquery, Dir, LitValue, SimpleOp } from "./ast.ts";
|
|
2
2
|
import type { Arg, Cond } from "./operators.ts";
|
|
3
3
|
import type { AnyCols, ColsMap, ColT, Relationship, RowOf, Schema, TableLike } from "./schema.ts";
|
|
4
4
|
import type { ArrayView, SingularArrayView } from "./view.ts";
|
|
5
|
-
type FieldFn<C extends AnyCols, K extends keyof C, Rels, One extends boolean, Sel extends string> = (arg: Arg<ColT<C[K]>>) => Query<C, Rels, One, Sel>;
|
|
5
|
+
type FieldFn<C extends AnyCols, K extends keyof C, Rels, One extends boolean, Sel extends string, LocalRels> = (arg: Arg<ColT<C[K]>>) => Query<C, Rels, One, Sel, LocalRels>;
|
|
6
6
|
/** `where.closed(false)`, `where.priority(gt(3))`. */
|
|
7
|
-
type WhereProxy<C extends AnyCols, Rels, One extends boolean, Sel extends string> = {
|
|
8
|
-
[K in keyof C]: FieldFn<C, K, Rels, One, Sel>;
|
|
7
|
+
type WhereProxy<C extends AnyCols, Rels, One extends boolean, Sel extends string, LocalRels> = {
|
|
8
|
+
[K in keyof C]: FieldFn<C, K, Rels, One, Sel, LocalRels>;
|
|
9
9
|
};
|
|
10
10
|
/** `whereClosed(false)`, `wherePriority(gt(3))`. */
|
|
11
|
-
type WhereSugar<C extends AnyCols, Rels, One extends boolean, Sel extends string> = {
|
|
12
|
-
[K in keyof C as `where${Capitalize<string & K>}`]: FieldFn<C, K, Rels, One, Sel>;
|
|
11
|
+
type WhereSugar<C extends AnyCols, Rels, One extends boolean, Sel extends string, LocalRels> = {
|
|
12
|
+
[K in keyof C as `where${Capitalize<string & K>}`]: FieldFn<C, K, Rels, One, Sel, LocalRels>;
|
|
13
13
|
};
|
|
14
14
|
/** What `materialize()` returns: singular (`R | null`) for a top-level `.one()`, else plural. */
|
|
15
15
|
type MaterializedView<R, One extends boolean> = One extends true ? SingularArrayView<R> : ArrayView<R>;
|
|
@@ -22,29 +22,53 @@ type MaterializedView<R, One extends boolean> = One extends true ? SingularArray
|
|
|
22
22
|
* narrowing is always sound versus a runtime row that may still carry more.
|
|
23
23
|
*/
|
|
24
24
|
type Projected<C extends AnyCols, Sel extends string> = [Sel] extends [never] ? RowOf<C> : Pick<RowOf<C>, Sel & keyof C>;
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* The accumulating result row of a top-level aggregate (REDUCE-DESIGN.md §8). `Agg` is `false`
|
|
27
|
+
* until {@link QueryBase.count}/{@link QueryBase.groupBy} reshapes the query; then it is the
|
|
28
|
+
* group-by columns intersected with the synthetic `{ count: number }`. {@link AggAcc} treats the
|
|
29
|
+
* `false` state as `{}` so the intersections in `count`/`groupBy` compose either way.
|
|
30
|
+
*/
|
|
31
|
+
type AggAcc<Agg> = [Agg] extends [false] ? {} : Agg;
|
|
32
|
+
/** `having`'s field binder: one accessor per aggregate-OUTPUT column (the group-by columns plus the
|
|
33
|
+
* synthetic numeric `count`), each producing a {@link Cond} over that aggregate row. It is the only
|
|
34
|
+
* way to name `count` in a predicate (it lives on no base table); compose several with `and`/`or`. */
|
|
35
|
+
type HavingProxy<Row> = {
|
|
36
|
+
[K in keyof Row & string]: (arg: Arg<Row[K]>) => Cond<Row>;
|
|
37
|
+
};
|
|
38
|
+
/** The `countAs` relationship aliases of a query — the {@link Rels} keys whose value is the scalar
|
|
39
|
+
* `number` a count aggregate surfaces. These are the only aliases {@link QueryBase.having}'s
|
|
40
|
+
* parent-by-child-aggregate overload accepts (a plain `sub` alias carries a row object, not a
|
|
41
|
+
* number, so it is rejected). */
|
|
42
|
+
type AggregateAlias<Rels> = {
|
|
43
|
+
[K in keyof Rels]: Rels[K] extends number ? K & string : never;
|
|
44
|
+
}[keyof Rels];
|
|
45
|
+
/** What a query materializes: the post-aggregation row once reshaped by {@link QueryBase.count}
|
|
46
|
+
* (`Agg`), else the projected base row plus its relationship values. */
|
|
47
|
+
type ResultRow<C extends AnyCols, Rels, Sel extends string, Agg> = [Agg] extends [false] ? Projected<C, Sel> & Rels : Agg;
|
|
48
|
+
type FragmentEdge<C extends AnyCols, Rels, Sel extends string, LocalRels> = (q: Query<C, Rels, false, Sel, LocalRels>) => Query<C, Rels, boolean, Sel, LocalRels>;
|
|
49
|
+
interface QueryBase<C extends AnyCols, Rels, One extends boolean, Sel extends string, LocalRels, Agg = false> {
|
|
26
50
|
/** Present when this local query came from `defineQuery`; used as the remote identity. */
|
|
27
51
|
readonly name?: string;
|
|
28
52
|
/** Present when this local query came from `defineQuery`; sent with `name` upstream. */
|
|
29
53
|
readonly args?: unknown;
|
|
30
54
|
/** Condition form — consumes `or()`/`and()`/`exists()`/field conditions (AND-ed across calls).
|
|
31
55
|
* Filters over the FULL column set (`RowOf<C>`), independent of what's `select`ed/masked. */
|
|
32
|
-
where(cond: Cond<RowOf<C>>): Query<C, Rels, One, Sel>;
|
|
33
|
-
orderBy<K extends keyof C>(col: K, dir: Dir): Query<C, Rels, One, Sel>;
|
|
56
|
+
where(cond: Cond<RowOf<C>>): Query<C, Rels, One, Sel, LocalRels>;
|
|
57
|
+
orderBy<K extends keyof C>(col: K, dir: Dir): Query<C, Rels, One, Sel, LocalRels>;
|
|
34
58
|
/** Project a subset of columns (PROJECTION-SUPPORT-DESIGN.md §6, masking §6/§10.6). Chainable
|
|
35
59
|
* (each call unions into `Sel`); omit to select all. Drives what the server syncs, what the
|
|
36
60
|
* view reports, AND — once any column is named — narrows the result row TYPE to exactly the
|
|
37
61
|
* selection (masking). `where`/`orderBy`/`start`/`sub` still see the full column set. */
|
|
38
|
-
select<K extends keyof C & string>(...cols: K[]): Query<C, Rels, One, Sel | K>;
|
|
39
|
-
limit(n: number): Query<C, Rels, One, Sel>;
|
|
62
|
+
select<K extends keyof C & string>(...cols: K[]): Query<C, Rels, One, Sel | K, LocalRels>;
|
|
63
|
+
limit(n: number): Query<C, Rels, One, Sel, LocalRels>;
|
|
40
64
|
/** Cursor paging: start at (or, with `exclusive`, after) the partial `cursor` row over the
|
|
41
65
|
* sort columns. Lowers to a `Skip` in the engine. */
|
|
42
66
|
start(cursor: Partial<RowOf<C>>, opts?: {
|
|
43
67
|
exclusive?: boolean;
|
|
44
|
-
}): Query<C, Rels, One, Sel>;
|
|
68
|
+
}): Query<C, Rels, One, Sel, LocalRels>;
|
|
45
69
|
/** Return a single row: `materialize()` yields a {@link SingularArrayView} (`data: R | null`)
|
|
46
70
|
* and the engine caps the query to `limit = 1`. */
|
|
47
|
-
one(): Query<C, Rels, true, Sel>;
|
|
71
|
+
one(): Query<C, Rels, true, Sel, LocalRels>;
|
|
48
72
|
/** **Merge** a {@link Fragment} into THIS node — Relay's "spread on the same type" (§5). The
|
|
49
73
|
* fragment must be over the same table (enforced in the result type: a fragment over a different
|
|
50
74
|
* table yields `never`, plus a runtime throw). Unions the projection (`Sel | FSel`), folds in the
|
|
@@ -59,7 +83,38 @@ interface QueryBase<C extends AnyCols, Rels, One extends boolean, Sel extends st
|
|
|
59
83
|
* `include` keeps `C` out of any contravariant position — preserving `Query<Concrete>`'s
|
|
60
84
|
* assignability to `Query<AnyCols>` (needed by `Store<ColsMap>`/`QueryRoot`). Same-table is then
|
|
61
85
|
* checked as the mutual-assignability of `C` and `FC` in the return type. */
|
|
62
|
-
include<FC extends AnyCols, FRels = {}, FSel extends string = never>(fragment: Fragment<FC, FRels, FSel>): [C] extends [FC] ? ([FC] extends [C] ? Query<C, Rels & FRels, One, Sel | FSel> : never) : never;
|
|
86
|
+
include<FC extends AnyCols, FRels = {}, FSel extends string = never, FLocalRels = FRels>(fragment: Fragment<FC, FRels, FSel, FLocalRels>): [C] extends [FC] ? ([FC] extends [C] ? Query<C, Rels & FRels, One, Sel | FSel, LocalRels & FLocalRels> : never) : never;
|
|
87
|
+
/** Nest a child fragment as an opaque local-read ref. The coverage query still composes the
|
|
88
|
+
* child's full AST at runtime; the React-facing fragment data exposes only refs at this
|
|
89
|
+
* boundary so the child component owns its local subscription. */
|
|
90
|
+
sub<A extends string, CC extends AnyCols, CRels = {}, CSel extends string = never, CLocalRels = CRels, F extends Fragment<CC, CRels, CSel, CLocalRels> = Fragment<CC, CRels, CSel, CLocalRels>>(alias: A, child: TableLike<CC>, corr: {
|
|
91
|
+
parent: Array<keyof C & string>;
|
|
92
|
+
child: Array<keyof CC & string>;
|
|
93
|
+
}, build: F, edge: FragmentEdge<CC, CRels, CSel, CLocalRels>): Query<C, Rels & {
|
|
94
|
+
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
95
|
+
}, One, Sel, LocalRels & {
|
|
96
|
+
[P in A]: Array<FragmentRef<F>>;
|
|
97
|
+
}>;
|
|
98
|
+
sub<A extends string, CC extends AnyCols, CRels = {}, CSel extends string = never, CLocalRels = CRels, F extends Fragment<CC, CRels, CSel, CLocalRels> = Fragment<CC, CRels, CSel, CLocalRels>>(alias: A, child: TableLike<CC>, corr: {
|
|
99
|
+
parent: Array<keyof C & string>;
|
|
100
|
+
child: Array<keyof CC & string>;
|
|
101
|
+
}, build: F): Query<C, Rels & {
|
|
102
|
+
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
103
|
+
}, One, Sel, LocalRels & {
|
|
104
|
+
[P in A]: Array<FragmentRef<F>>;
|
|
105
|
+
}>;
|
|
106
|
+
/** Relationship-value form of the fragment-ref overload above. */
|
|
107
|
+
sub<A extends string, CC extends AnyCols, CRels = {}, CSel extends string = never, CLocalRels = CRels, F extends Fragment<CC, CRels, CSel, CLocalRels> = Fragment<CC, CRels, CSel, CLocalRels>>(alias: A, relationship: Relationship<C, CC>, build: F, edge: FragmentEdge<CC, CRels, CSel, CLocalRels>): Query<C, Rels & {
|
|
108
|
+
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
109
|
+
}, One, Sel, LocalRels & {
|
|
110
|
+
[P in A]: Array<FragmentRef<F>>;
|
|
111
|
+
}>;
|
|
112
|
+
/** Relationship-value form of the fragment-ref overload above. */
|
|
113
|
+
sub<A extends string, CC extends AnyCols, CRels = {}, CSel extends string = never, CLocalRels = CRels, F extends Fragment<CC, CRels, CSel, CLocalRels> = Fragment<CC, CRels, CSel, CLocalRels>>(alias: A, relationship: Relationship<C, CC>, build: F): Query<C, Rels & {
|
|
114
|
+
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
115
|
+
}, One, Sel, LocalRels & {
|
|
116
|
+
[P in A]: Array<FragmentRef<F>>;
|
|
117
|
+
}>;
|
|
63
118
|
/** Nest a child by EXPLICIT correlation (no schema relationship). `alias` is the result key.
|
|
64
119
|
* The child's own projection (`CSel`) masks the nested row, so a fragment spread here
|
|
65
120
|
* contributes exactly the columns it declared. */
|
|
@@ -68,13 +123,17 @@ interface QueryBase<C extends AnyCols, Rels, One extends boolean, Sel extends st
|
|
|
68
123
|
child: Array<keyof CC & string>;
|
|
69
124
|
}, build?: (q: Query<CC>) => Query<CC, CRels, boolean, CSel>): Query<C, Rels & {
|
|
70
125
|
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
71
|
-
}, One, Sel
|
|
126
|
+
}, One, Sel, LocalRels & {
|
|
127
|
+
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
128
|
+
}>;
|
|
72
129
|
/** Nest a child by a named {@link Relationship} (`rel(parent, child, {...})`) — the correlation comes
|
|
73
130
|
* from the relationship, so no `{ parent, child }` keys are restated. The relationship must belong to
|
|
74
131
|
* THIS table (its parent columns are checked against `C`). `alias` is still the result key. */
|
|
75
132
|
sub<A extends string, CC extends AnyCols, CRels = {}, CSel extends string = never>(alias: A, relationship: Relationship<C, CC>, build?: (q: Query<CC>) => Query<CC, CRels, boolean, CSel>): Query<C, Rels & {
|
|
76
133
|
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
77
|
-
}, One, Sel
|
|
134
|
+
}, One, Sel, LocalRels & {
|
|
135
|
+
[P in A]: Array<Projected<CC, CSel> & CRels>;
|
|
136
|
+
}>;
|
|
78
137
|
/** Add a **relationship aggregate** — `issue.countAs("commentCount", comment, …)`
|
|
79
138
|
* (`REDUCE-DESIGN.md` §9). Like {@link sub} (explicit correlation, optional child
|
|
80
139
|
* `build` for a filtered `count(child WHERE …)`), but the relationship surfaces a single
|
|
@@ -85,23 +144,61 @@ interface QueryBase<C extends AnyCols, Rels, One extends boolean, Sel extends st
|
|
|
85
144
|
child: Array<keyof CC & string>;
|
|
86
145
|
}, build?: (q: Query<CC>) => Query<CC, unknown>): Query<C, Rels & {
|
|
87
146
|
[P in A]: number;
|
|
88
|
-
}, One, Sel
|
|
147
|
+
}, One, Sel, LocalRels & {
|
|
148
|
+
[P in A]: number;
|
|
149
|
+
}>;
|
|
89
150
|
/** `countAs` by a named {@link Relationship} — like the explicit form, but the correlation comes from
|
|
90
151
|
* `rel(...)` instead of being restated. */
|
|
91
152
|
countAs<A extends string, CC extends AnyCols>(alias: A, relationship: Relationship<C, CC>, build?: (q: Query<CC>) => Query<CC, unknown>): Query<C, Rels & {
|
|
92
153
|
[P in A]: number;
|
|
93
|
-
}, One, Sel
|
|
154
|
+
}, One, Sel, LocalRels & {
|
|
155
|
+
[P in A]: number;
|
|
156
|
+
}>;
|
|
157
|
+
/** Reshape this query into a top-level `count(*)` aggregate (`REDUCE-DESIGN.md` §8) — the SQL
|
|
158
|
+
* `SELECT count(*) FROM table [GROUP BY …] [HAVING …]`. Without {@link groupBy} it is a GLOBAL
|
|
159
|
+
* count (one `{ count }` row, value `0` even on empty input); with it, one `{ …group, count }`
|
|
160
|
+
* row per distinct group. The result row becomes the aggregate's OUTPUT — the group-by columns
|
|
161
|
+
* plus a numeric `count` — so chain {@link having} to filter it. Distinct from {@link countAs}
|
|
162
|
+
* (a child-relationship scalar attached to the parent row); this reshapes the query ITSELF. The
|
|
163
|
+
* engine rejects pairing a root aggregate with `select`/`sub`/`countAs`/`orderBy`/`limit`/`one`. */
|
|
164
|
+
count(): Query<C, Rels, One, Sel, LocalRels, AggAcc<Agg> & {
|
|
165
|
+
count: number;
|
|
166
|
+
}>;
|
|
167
|
+
/** Add a top-level `GROUP BY` column (chain for a compound key); only meaningful with
|
|
168
|
+
* {@link count}. Each grouped column joins the aggregate result row, keyed + sorted by the
|
|
169
|
+
* group key. */
|
|
170
|
+
groupBy<K extends keyof C & string>(col: K): Query<C, Rels, One, Sel, LocalRels, AggAcc<Agg> & Pick<RowOf<C>, K>>;
|
|
171
|
+
/** `HAVING (…)` — filter the **post-aggregation** rows of a {@link count} query (`REDUCE-DESIGN.md`
|
|
172
|
+
* §4: a filter directly above the reduce). `build` receives a field binder over the aggregate's
|
|
173
|
+
* OUTPUT columns — the {@link groupBy} columns and the synthetic `count` — and returns a
|
|
174
|
+
* {@link Cond}; compose several with `and`/`or`. E.g.
|
|
175
|
+
* `.groupBy("status").count().having((h) => h.count(gt(3)))`. Distinct from {@link where}, which
|
|
176
|
+
* filters base rows BELOW the reduce. */
|
|
177
|
+
having(build: (h: HavingProxy<AggAcc<Agg>>) => Cond<AggAcc<Agg>>): Query<C, Rels, One, Sel, LocalRels, Agg>;
|
|
178
|
+
/** `HAVING count(child) <op> n` — filter THIS parent by a child relationship aggregate's count
|
|
179
|
+
* (`PARENT-AGGREGATE-FILTER-DESIGN.md`). `alias` must name a {@link countAs} relationship already
|
|
180
|
+
* on this query; this drops parents whose child count fails `<op> val`, maintained incrementally
|
|
181
|
+
* (a child add/remove crossing the threshold adds/removes the parent). The display `countAs` is
|
|
182
|
+
* untouched — a survivor still shows its real count. Distinct from the {@link having} overload
|
|
183
|
+
* above, which filters a top-level {@link count}'s own output rows.
|
|
184
|
+
*
|
|
185
|
+
* **v1: high-pass predicates only** — predicates *false* at count 0 (`>`, `>=`/`=`/`!=` for
|
|
186
|
+
* `n ≥ 1`). A childless parent forms no group, so the engine rejects (at build) a predicate *true*
|
|
187
|
+
* at count 0 (`<=`, `< n` for `n ≥ 1`, `= 0`, `>= 0`); those need row-widening (deferred). */
|
|
188
|
+
having<A extends AggregateAlias<Rels>>(alias: A, op: SimpleOp, val: number): Query<C, Rels, One, Sel, LocalRels, Agg>;
|
|
94
189
|
/** The compiled Zero-wire AST (what a backend's `query` consumes). */
|
|
95
190
|
ast(): Ast;
|
|
96
191
|
/** Materialize into a live, typed view. Wired by the Store/backend. A top-level `.one()`
|
|
97
|
-
* yields a {@link SingularArrayView}; otherwise an {@link ArrayView}. The row is
|
|
98
|
-
*
|
|
99
|
-
|
|
192
|
+
* yields a {@link SingularArrayView}; otherwise an {@link ArrayView}. The row is the aggregate
|
|
193
|
+
* output once {@link count} reshaped the query, else masked to the projection ({@link Projected})
|
|
194
|
+
* — full {@link RowOf} until a column is `select`ed. */
|
|
195
|
+
materialize(): MaterializedView<ResultRow<C, Rels, Sel, Agg>, One>;
|
|
100
196
|
}
|
|
101
|
-
export type Query<C extends AnyCols, Rels = {}, One extends boolean = false, Sel extends string = never> = Omit<QueryBase<C, Rels, One, Sel>, "where"> & {
|
|
102
|
-
where: QueryBase<C, Rels, One, Sel>["where"] & WhereProxy<C, Rels, One, Sel>;
|
|
103
|
-
} & WhereSugar<C, Rels, One, Sel>;
|
|
104
|
-
type AnyQuery = Query<any, any, any>;
|
|
197
|
+
export type Query<C extends AnyCols, Rels = {}, One extends boolean = false, Sel extends string = never, LocalRels = Rels, Agg = false> = Omit<QueryBase<C, Rels, One, Sel, LocalRels, Agg>, "where"> & {
|
|
198
|
+
where: QueryBase<C, Rels, One, Sel, LocalRels, Agg>["where"] & WhereProxy<C, Rels, One, Sel, LocalRels>;
|
|
199
|
+
} & WhereSugar<C, Rels, One, Sel, LocalRels>;
|
|
200
|
+
export type AnyQuery = Query<any, any, any, any, any, any>;
|
|
201
|
+
export type QueryLocalData<Q extends AnyQuery> = Q extends Query<infer C, any, infer One, infer Sel, infer LocalRels, infer Agg> ? [Agg] extends [false] ? One extends true ? (Projected<C, Sel> & LocalRels) | null : readonly (Projected<C, Sel> & LocalRels)[] : readonly Agg[] : never;
|
|
105
202
|
/** Turn raw, UNTRUSTED wire args into the canonical, typed args a query is built from. Its return
|
|
106
203
|
* type IS the query's args type — written once, it flows to both the client call signature and the
|
|
107
204
|
* `build` step, so there's no second place to restate the shape. */
|
|
@@ -182,6 +279,7 @@ export declare function defineQuery<Q extends AnyQuery>(name: string, build: ()
|
|
|
182
279
|
export declare function defineQuery<Args, Ctx extends readonly unknown[], Q extends AnyQuery>(name: string, build: (args: Args, ...ctx: Ctx) => Q): NamedQuery<Args, Ctx, Q>;
|
|
183
280
|
export declare function defineQuery<Args, Ctx extends readonly unknown[], Q extends AnyQuery>(name: string, validate: QueryValidator<Args>, build: (args: Args, ...ctx: Ctx) => Q): NamedQuery<Args, Ctx, Q>;
|
|
184
281
|
declare const FRAGMENT_BRAND: unique symbol;
|
|
282
|
+
declare const LOCAL_FRAGMENT_REF_BRAND: unique symbol;
|
|
185
283
|
/**
|
|
186
284
|
* A reusable, typed *selection over a table* — Relay's "fragment", promoted to a first-class
|
|
187
285
|
* value. **Two verbs** compose a fragment, on one axis — does its data belong to THIS row or to a
|
|
@@ -198,18 +296,31 @@ declare const FRAGMENT_BRAND: unique symbol;
|
|
|
198
296
|
* fragments assembles ONE {@link Ast} → one materialization → one `/query` — the whole point
|
|
199
297
|
* (no request waterfall; design §1).
|
|
200
298
|
*/
|
|
201
|
-
export interface Fragment<C extends AnyCols, Rels = {}, Sel extends string = never> {
|
|
202
|
-
(q: Query<C>): Query<C, Rels, false, Sel>;
|
|
299
|
+
export interface Fragment<C extends AnyCols, Rels = {}, Sel extends string = never, LocalRels = Rels> {
|
|
300
|
+
(q: Query<C>): Query<C, Rels, false, Sel, LocalRels>;
|
|
203
301
|
readonly table: TableLike<C>;
|
|
204
302
|
readonly [FRAGMENT_BRAND]: true;
|
|
205
303
|
}
|
|
206
304
|
/**
|
|
207
|
-
* The
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* columns it declared. A fragment with no `select` stays the full `RowOf<C> & Rels` (§10.6).
|
|
305
|
+
* The data returned by `useFragment(fragment, ref)`: the fragment's own selected columns plus
|
|
306
|
+
* immediate relationship values. Relationships whose builder is another fragment surface as
|
|
307
|
+
* opaque {@link FragmentRef}s, so child-owned payload is read only by the child fragment reader.
|
|
211
308
|
*/
|
|
212
|
-
export type
|
|
309
|
+
export type FragmentData<F> = F extends Fragment<infer C, unknown, infer Sel, infer LocalRels> ? Projected<C, Sel> & LocalRels : never;
|
|
310
|
+
export interface FragmentCoverage<Q extends AnyQuery = AnyQuery> {
|
|
311
|
+
readonly key: string;
|
|
312
|
+
readonly query: Q;
|
|
313
|
+
}
|
|
314
|
+
export interface LocalFragmentRef<F extends Fragment<any, any, any, any> = Fragment<any, any, any, any>> {
|
|
315
|
+
readonly [LOCAL_FRAGMENT_REF_BRAND]: true;
|
|
316
|
+
readonly source: "local";
|
|
317
|
+
readonly table: string;
|
|
318
|
+
readonly pk: Readonly<Record<string, LitValue>>;
|
|
319
|
+
readonly coverage: FragmentCoverage;
|
|
320
|
+
readonly __fragment?: F;
|
|
321
|
+
}
|
|
322
|
+
/** The opaque token a parent passes to a component that reads {@link FragmentData} for `F`. */
|
|
323
|
+
export type FragmentRef<F> = F extends Fragment<any, any, any, any> ? LocalFragmentRef<F> : never;
|
|
213
324
|
/**
|
|
214
325
|
* Define a co-located, composable {@link Fragment}: a named selection over `table`. The returned
|
|
215
326
|
* value is callable (the `build` transform), so it threads through the existing `sub`/`Rels`
|
|
@@ -222,9 +333,19 @@ export type FragmentRef<F> = F extends Fragment<infer C, infer Rels, infer Sel>
|
|
|
222
333
|
* .sub("author", schema.user, { parent: ["authorId"], child: ["id"] }, UserAvatar));
|
|
223
334
|
* ```
|
|
224
335
|
*/
|
|
225
|
-
export declare function defineFragment<C extends AnyCols, Rels = {}, Sel extends string = never>(table: TableLike<C>, build: (q: Query<C>) => Query<C, Rels, boolean, Sel>): Fragment<C, Rels, Sel>;
|
|
336
|
+
export declare function defineFragment<C extends AnyCols, Rels = {}, Sel extends string = never, LocalRels = Rels>(table: TableLike<C>, build: (q: Query<C>) => Query<C, Rels, boolean, Sel, LocalRels>): Fragment<C, Rels, Sel, LocalRels>;
|
|
226
337
|
/** Runtime guard: is `v` a {@link Fragment} (a `defineFragment` value, not a plain build fn)? */
|
|
227
|
-
export declare function isFragment(v: unknown): v is Fragment<AnyCols, unknown>;
|
|
338
|
+
export declare function isFragment(v: unknown): v is Fragment<AnyCols, unknown, never, unknown>;
|
|
339
|
+
export declare function isFragmentRelationship(rel: CorrelatedSubquery): boolean;
|
|
340
|
+
export declare function fragmentKey(ref: FragmentRef<any>): string;
|
|
341
|
+
export declare function createLocalFragmentRef<F extends Fragment<any, any, any>>(fragment: F, pk: Record<string, LitValue>, coverage: FragmentCoverage): LocalFragmentRef<F>;
|
|
342
|
+
export declare function createLocalFragmentRefForTable<F extends Fragment<any, any, any>>(table: string, pk: Record<string, LitValue>, coverage: FragmentCoverage): LocalFragmentRef<F>;
|
|
343
|
+
export declare function createRootFragmentRef<F extends Fragment<any, any, any>, Q extends AnyQuery>(fragment: F, query: Q, coverageKey?: string): LocalFragmentRef<F>;
|
|
344
|
+
export declare function fragmentAst<F extends Fragment<any, any, any>>(fragment: F): Ast;
|
|
345
|
+
export declare function localFragmentReadAst<F extends Fragment<any, any, any>>(fragment: F, ref: LocalFragmentRef<F>, primaryKeyFor: (table: string) => readonly string[]): Ast;
|
|
346
|
+
export declare function localRootFragmentRefsAst<F extends Fragment<any, any, any>>(fragment: F, query: AnyQuery, primaryKeyFor: (table: string) => readonly string[]): Ast;
|
|
347
|
+
export declare function localQueryReadAst(query: AnyQuery, primaryKeyFor: (table: string) => readonly string[]): Ast;
|
|
348
|
+
export declare function queryFromAst(ast: Ast): AnyQuery;
|
|
228
349
|
/** Throw if `ast` references a local-only table ANYWHERE — the complete form of the {@link queries}
|
|
229
350
|
* root guard (Q1 / E3 client half). The root proxy `get` only sees the table accessed off the
|
|
230
351
|
* builder root; a local table reached through a relationship / `sub` / `countAs` / `exists` CHILD is
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|