@bjornpagen/bumbledb 0.3.0 → 0.4.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/COOKBOOK.md +66 -46
- package/README.md +28 -15
- package/dist/closed.d.ts +50 -73
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +38 -109
- package/dist/closed.js.map +1 -1
- package/dist/db.d.ts +4 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +26 -3
- package/dist/db.js.map +1 -1
- package/dist/face.d.ts +39 -39
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +7 -16
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +28 -14
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +15 -14
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/marshal.d.ts +33 -6
- package/dist/marshal.d.ts.map +1 -1
- package/dist/marshal.js +67 -6
- package/dist/marshal.js.map +1 -1
- package/dist/query/atom.d.ts +59 -14
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +3 -0
- package/dist/query/atom.js.map +1 -1
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +251 -26
- package/dist/query/lower.js.map +1 -1
- package/dist/query/run.d.ts +15 -5
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +26 -6
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +35 -13
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +16 -4
- package/dist/query/scope.js.map +1 -1
- package/dist/relation.d.ts +8 -7
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +32 -10
- package/dist/relation.js.map +1 -1
- package/dist/spec.d.ts +3 -2
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +10 -4
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +79 -7
- package/dist/statements.js.map +1 -1
- package/package.json +2 -2
- package/src/closed.ts +72 -179
- package/src/db.ts +42 -5
- package/src/face.ts +34 -45
- package/src/fields.ts +46 -34
- package/src/index.ts +1 -2
- package/src/marshal.ts +74 -7
- package/src/query/atom.ts +58 -15
- package/src/query/lower.ts +301 -28
- package/src/query/run.ts +26 -6
- package/src/query/scope.ts +49 -15
- package/src/relation.ts +45 -17
- package/src/spec.ts +3 -2
- package/src/statements.ts +86 -7
package/dist/query/run.d.ts
CHANGED
|
@@ -8,9 +8,12 @@
|
|
|
8
8
|
* values — the marshal boundary is pure both ways: the engine computed
|
|
9
9
|
* the answer under the prepared head, so a decoded row that carries every
|
|
10
10
|
* select column IS a row (the trusted read seam), and nothing is asserted
|
|
11
|
-
* on any value.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* on any value. A CLOSED answer column decodes id → handle NAME through
|
|
12
|
+
* the marshal's one bijection (`handleOf` — the same read half every fact
|
|
13
|
+
* decode rides; the column's roster rides `SelectColumn.closed`), so query
|
|
14
|
+
* rows speak the vocabulary exactly as scans and gets do. Answers are
|
|
15
|
+
* SETS — no order or limit exists anywhere; hosts sort. The `Prepared`
|
|
16
|
+
* VALUE itself (no lifecycle, GC-reclaimed plan) lives in `#db.ts`.
|
|
14
17
|
*/
|
|
15
18
|
import type { FactValue, QueryParam } from "#native.ts";
|
|
16
19
|
import type { SelectColumn } from "#query/atom.ts";
|
|
@@ -20,13 +23,20 @@ import type { ParamEntry } from "#query/scope.ts";
|
|
|
20
23
|
* in registry order (= the lowering's dense `ParamId`s). A missing entry
|
|
21
24
|
* is a typed error naming the param; values tag by the anchoring use's
|
|
22
25
|
* structural type; a set param takes a readonly array (the empty set is
|
|
23
|
-
* legal and matches nothing — the engine's rule).
|
|
26
|
+
* legal and matches nothing — the engine's rule). A MEMBERSHIP-ARRAY
|
|
27
|
+
* entry (`members` present — a literal set folded into the program) is
|
|
28
|
+
* supplied by the SDK itself: each handle name rides the one
|
|
29
|
+
* roster-verification point (`taggedHandleId`, through `wireValue`) and
|
|
30
|
+
* crosses as the same `{ kind: "set", values }` a bound `r.inSet` param
|
|
31
|
+
* crosses as — the host's params object is never consulted for it.
|
|
24
32
|
*/
|
|
25
33
|
declare function wireParams(entries: readonly ParamEntry[], supplied: Readonly<Record<string, unknown>>): QueryParam[];
|
|
26
34
|
/**
|
|
27
35
|
* Decodes positional answer rows (column order = the program's head order
|
|
28
36
|
* = the select's written order) to named, frozen row objects of bare
|
|
29
|
-
* structural values.
|
|
37
|
+
* structural values. A closed column lifts its row id back to the handle
|
|
38
|
+
* NAME through the marshal's bijection — an out-of-roster id is the same
|
|
39
|
+
* pointed throw a fact decode gives, never a silent fallback.
|
|
30
40
|
*/
|
|
31
41
|
declare function decodeAnswers<Row>(select: readonly SelectColumn[], rows: FactValue[][]): Row[];
|
|
32
42
|
export { decodeAnswers, wireParams };
|
package/dist/query/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/query/run.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/query/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAe,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAuBjD;;;;;;;;;;;GAWG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,EAAE,CA8B7G;AAkBD;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,GAAG,EAAE,CAoBvF;AAED,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAA"}
|
package/dist/query/run.js
CHANGED
|
@@ -8,11 +8,15 @@
|
|
|
8
8
|
* values — the marshal boundary is pure both ways: the engine computed
|
|
9
9
|
* the answer under the prepared head, so a decoded row that carries every
|
|
10
10
|
* select column IS a row (the trusted read seam), and nothing is asserted
|
|
11
|
-
* on any value.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* on any value. A CLOSED answer column decodes id → handle NAME through
|
|
12
|
+
* the marshal's one bijection (`handleOf` — the same read half every fact
|
|
13
|
+
* decode rides; the column's roster rides `SelectColumn.closed`), so query
|
|
14
|
+
* rows speak the vocabulary exactly as scans and gets do. Answers are
|
|
15
|
+
* SETS — no order or limit exists anywhere; hosts sort. The `Prepared`
|
|
16
|
+
* VALUE itself (no lifecycle, GC-reclaimed plan) lives in `#db.ts`.
|
|
14
17
|
*/
|
|
15
18
|
import * as errors from "@superbuilders/errors";
|
|
19
|
+
import { handleOf } from "#marshal.ts";
|
|
16
20
|
import { taggedCmpLiteral } from "#query/lower.ts";
|
|
17
21
|
/** The 13-bit Allen mask ceiling (`bumbledb/crates/bumbledb/src/allen.rs`: bits above the low 13 are unrepresentable). */
|
|
18
22
|
const ALLEN_ALL_BITS = (1 << 13) - 1;
|
|
@@ -35,10 +39,23 @@ function wireValue(entry, context, value) {
|
|
|
35
39
|
* in registry order (= the lowering's dense `ParamId`s). A missing entry
|
|
36
40
|
* is a typed error naming the param; values tag by the anchoring use's
|
|
37
41
|
* structural type; a set param takes a readonly array (the empty set is
|
|
38
|
-
* legal and matches nothing — the engine's rule).
|
|
42
|
+
* legal and matches nothing — the engine's rule). A MEMBERSHIP-ARRAY
|
|
43
|
+
* entry (`members` present — a literal set folded into the program) is
|
|
44
|
+
* supplied by the SDK itself: each handle name rides the one
|
|
45
|
+
* roster-verification point (`taggedHandleId`, through `wireValue`) and
|
|
46
|
+
* crosses as the same `{ kind: "set", values }` a bound `r.inSet` param
|
|
47
|
+
* crosses as — the host's params object is never consulted for it.
|
|
39
48
|
*/
|
|
40
49
|
function wireParams(entries, supplied) {
|
|
41
50
|
return entries.map(function wireOne(entry) {
|
|
51
|
+
if (entry.members !== undefined) {
|
|
52
|
+
return {
|
|
53
|
+
kind: "set",
|
|
54
|
+
values: entry.members.map(function wireMember(member, index) {
|
|
55
|
+
return wireValue(entry, `membership array ${entry.name}[${index}]`, member);
|
|
56
|
+
})
|
|
57
|
+
};
|
|
58
|
+
}
|
|
42
59
|
const value = supplied[entry.name];
|
|
43
60
|
if (value === undefined) {
|
|
44
61
|
throw errors.new(`execute params object is missing param ${entry.name}`);
|
|
@@ -75,7 +92,9 @@ function isAnswerRow(select, decoded) {
|
|
|
75
92
|
/**
|
|
76
93
|
* Decodes positional answer rows (column order = the program's head order
|
|
77
94
|
* = the select's written order) to named, frozen row objects of bare
|
|
78
|
-
* structural values.
|
|
95
|
+
* structural values. A closed column lifts its row id back to the handle
|
|
96
|
+
* NAME through the marshal's bijection — an out-of-roster id is the same
|
|
97
|
+
* pointed throw a fact decode gives, never a silent fallback.
|
|
79
98
|
*/
|
|
80
99
|
function decodeAnswers(select, rows) {
|
|
81
100
|
return rows.map(function decodeRow(row) {
|
|
@@ -88,7 +107,8 @@ function decodeAnswers(select, rows) {
|
|
|
88
107
|
if (cell === undefined) {
|
|
89
108
|
throw errors.new(`query answer cell ${ordinal} (${column.name}) is absent`);
|
|
90
109
|
}
|
|
91
|
-
decoded[column.name] =
|
|
110
|
+
decoded[column.name] =
|
|
111
|
+
column.closed === undefined ? cell : handleOf(`query answer column ${column.name}`, column.closed, cell);
|
|
92
112
|
});
|
|
93
113
|
Object.freeze(decoded);
|
|
94
114
|
if (!isAnswerRow(select, decoded)) {
|
package/dist/query/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/query/run.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/query/run.ts"],"names":[],"mappings":"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"}
|
package/dist/query/scope.d.ts
CHANGED
|
@@ -153,29 +153,42 @@ type WidthOf<F extends AnyField> = F extends {
|
|
|
153
153
|
type ElementOf<F extends AnyField> = F extends {
|
|
154
154
|
readonly element: infer E;
|
|
155
155
|
} ? E : undefined;
|
|
156
|
+
/** Reads a closed reference's handle union; `undefined` on every non-closed kind (the roster IS descriptor structure). */
|
|
157
|
+
type RosterOf<F extends AnyField> = F extends {
|
|
158
|
+
readonly closed: {
|
|
159
|
+
readonly handles: readonly (infer H extends string)[];
|
|
160
|
+
};
|
|
161
|
+
} ? H : undefined;
|
|
156
162
|
/**
|
|
157
163
|
* The join judgment: two bound slots join iff their descriptors' structure
|
|
158
|
-
* agrees (kind, width label, interval element
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
164
|
+
* agrees (kind, width label, interval element, and the closed ROSTER — a
|
|
165
|
+
* closed reference pairs only with the same vocabulary, never with a bare
|
|
166
|
+
* u64: the roster keys every closed judgment downstream, so a join across
|
|
167
|
+
* it would decode/order/translate incoherently by binding order) AND their
|
|
168
|
+
* law-computed classes agree — same class name joins, and bare
|
|
169
|
+
* (`undefined`) pairs only with bare (ruling 3: a field in no law has no
|
|
170
|
+
* class; a bare↔classed pairing refuses). The class names come off the
|
|
171
|
+
* SCHEMA type's class map — the statements are the typing; no descriptor
|
|
172
|
+
* label beyond the roster exists to compare.
|
|
163
173
|
*/
|
|
164
174
|
type JoinOk<A extends ClassedField, B extends ClassedField> = [
|
|
165
175
|
A["field"]["kind"],
|
|
166
176
|
A["class"],
|
|
167
177
|
WidthOf<A["field"]>,
|
|
168
|
-
ElementOf<A["field"]
|
|
169
|
-
|
|
178
|
+
ElementOf<A["field"]>,
|
|
179
|
+
RosterOf<A["field"]>
|
|
180
|
+
] extends [B["field"]["kind"], B["class"], WidthOf<B["field"]>, ElementOf<B["field"]>, RosterOf<B["field"]>] ? [B["field"]["kind"], B["class"], WidthOf<B["field"]>, ElementOf<B["field"]>, RosterOf<B["field"]>] extends [
|
|
170
181
|
A["field"]["kind"],
|
|
171
182
|
A["class"],
|
|
172
183
|
WidthOf<A["field"]>,
|
|
173
|
-
ElementOf<A["field"]
|
|
184
|
+
ElementOf<A["field"]>,
|
|
185
|
+
RosterOf<A["field"]>
|
|
174
186
|
] ? true : false : false;
|
|
175
187
|
/**
|
|
176
188
|
* The runtime twin of {@link JoinOk}: two bound slots join iff descriptor
|
|
177
189
|
* structure and class agree — the same comparison the type tier makes,
|
|
178
|
-
* judged on the honest runtime values (the descriptor
|
|
190
|
+
* judged on the honest runtime values (the descriptor, the roster by VALUE
|
|
191
|
+
* IDENTITY — vocabulary identity is value identity — and the schema
|
|
179
192
|
* value's frozen class map). The rule builders throw through this on a
|
|
180
193
|
* class-unequal variable reuse, so the wall holds for untyped callers too,
|
|
181
194
|
* not only where the compiler can see.
|
|
@@ -183,13 +196,18 @@ type JoinOk<A extends ClassedField, B extends ClassedField> = [
|
|
|
183
196
|
declare function fieldJoins(a: ClassedField, b: ClassedField): boolean;
|
|
184
197
|
/**
|
|
185
198
|
* Renders one bound slot for join-mismatch diagnostics — the structural
|
|
186
|
-
* kind in the schema grammar's spelling
|
|
187
|
-
*
|
|
199
|
+
* kind in the schema grammar's spelling (a closed reference names its
|
|
200
|
+
* vocabulary: the roster is part of the structure being compared) plus the
|
|
201
|
+
* slot's law-computed class (`u64 in class Holder.id`; a lawless slot
|
|
202
|
+
* renders `bare`).
|
|
188
203
|
*/
|
|
189
204
|
declare function renderFieldKind(slot: ClassedField): string;
|
|
190
205
|
/**
|
|
191
206
|
* What a PARAM anchored at field `F` accepts at execution: the field's
|
|
192
|
-
* bare value type, exactly
|
|
207
|
+
* bare value type, exactly — at a CLOSED-reference field that is the
|
|
208
|
+
* handle-name union (`"DirectPass" | "Failed"`), translated name → row id
|
|
209
|
+
* at execute through the one roster-verification point
|
|
210
|
+
* (`taggedHandleId`). At an interval field the engine resolves the
|
|
193
211
|
* bivalent anchor to the INTERVAL reading (value equality) — the point
|
|
194
212
|
* reading of a param is spelled `pointIn(r.param(...), w)`, whose sibling
|
|
195
213
|
* anchors it element-typed.
|
|
@@ -206,13 +224,17 @@ type InferredOf<T> = T extends {
|
|
|
206
224
|
* positions) — the op keeps literal tagging op-aware at `pointIn`
|
|
207
225
|
* (the bug-hunt fix, preserved). `anchor` is `undefined` only on a query
|
|
208
226
|
* built but not yet anchored by any rule; lowering and the wire both refuse
|
|
209
|
-
* that state typed.
|
|
227
|
+
* that state typed. `members` is present exactly on a MEMBERSHIP-ARRAY
|
|
228
|
+
* entry (a literal set at a closed field, folded into the program): the
|
|
229
|
+
* SDK itself translates and supplies the set at every execute — the entry
|
|
230
|
+
* is never read from, and never demanded of, the host's params object.
|
|
210
231
|
*/
|
|
211
232
|
interface ParamEntry {
|
|
212
233
|
readonly name: string;
|
|
213
234
|
readonly shape: "value" | "set" | "mask";
|
|
214
235
|
readonly anchor: AnyField | "measure" | undefined;
|
|
215
236
|
readonly op: "binding" | "eq" | "ne" | "lt" | "le" | "gt" | "ge" | "pointIn" | "allen";
|
|
237
|
+
readonly members: readonly string[] | undefined;
|
|
216
238
|
}
|
|
217
239
|
export type { AnyTerm, ClassedField, Duration, EnvShape, Flatten, InferredOf, JoinOk, MaskParam, Param, ParamEntry, ParamsRecord, ParamValueAt, SetParam, ShapeOf, UnionToIntersection, Var, VarsRecord };
|
|
218
240
|
export { fieldJoins, inferred, isTerm, makeDuration, makeMaskParam, makeParam, makeSetParam, makeVar, makeVars, renderFieldKind, term };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/query/scope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/query/scope.ts"],"names":[],"mappings":"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"}
|
package/dist/query/scope.js
CHANGED
|
@@ -105,7 +105,8 @@ function makeDuration(name) {
|
|
|
105
105
|
/**
|
|
106
106
|
* The runtime twin of {@link JoinOk}: two bound slots join iff descriptor
|
|
107
107
|
* structure and class agree — the same comparison the type tier makes,
|
|
108
|
-
* judged on the honest runtime values (the descriptor
|
|
108
|
+
* judged on the honest runtime values (the descriptor, the roster by VALUE
|
|
109
|
+
* IDENTITY — vocabulary identity is value identity — and the schema
|
|
109
110
|
* value's frozen class map). The rule builders throw through this on a
|
|
110
111
|
* class-unequal variable reuse, so the wall holds for untyped callers too,
|
|
111
112
|
* not only where the compiler can see.
|
|
@@ -115,16 +116,27 @@ function fieldJoins(a, b) {
|
|
|
115
116
|
const widthB = "width" in b.field ? b.field.width : undefined;
|
|
116
117
|
const elementA = "element" in a.field ? a.field.element : undefined;
|
|
117
118
|
const elementB = "element" in b.field ? b.field.element : undefined;
|
|
118
|
-
|
|
119
|
+
const rosterA = "closed" in a.field ? a.field.closed : undefined;
|
|
120
|
+
const rosterB = "closed" in b.field ? b.field.closed : undefined;
|
|
121
|
+
return (a.field.kind === b.field.kind &&
|
|
122
|
+
a.class === b.class &&
|
|
123
|
+
widthA === widthB &&
|
|
124
|
+
elementA === elementB &&
|
|
125
|
+
rosterA === rosterB);
|
|
119
126
|
}
|
|
120
127
|
/**
|
|
121
128
|
* Renders one bound slot for join-mismatch diagnostics — the structural
|
|
122
|
-
* kind in the schema grammar's spelling
|
|
123
|
-
*
|
|
129
|
+
* kind in the schema grammar's spelling (a closed reference names its
|
|
130
|
+
* vocabulary: the roster is part of the structure being compared) plus the
|
|
131
|
+
* slot's law-computed class (`u64 in class Holder.id`; a lawless slot
|
|
132
|
+
* renders `bare`).
|
|
124
133
|
*/
|
|
125
134
|
function renderFieldKind(slot) {
|
|
126
135
|
const field = slot.field;
|
|
127
136
|
let base = field.kind;
|
|
137
|
+
if ("closed" in field) {
|
|
138
|
+
base = `u64 referencing ${field.closed.name}`;
|
|
139
|
+
}
|
|
128
140
|
if (field.kind === "bytes") {
|
|
129
141
|
base = `bytes<${field.width}>`;
|
|
130
142
|
}
|
package/dist/query/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/query/scope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/query/scope.ts"],"names":[],"mappings":"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"}
|
package/dist/relation.d.ts
CHANGED
|
@@ -10,9 +10,8 @@
|
|
|
10
10
|
* optional on insert input (omit-to-mint) and present on read
|
|
11
11
|
* (resupply-to-preserve-identity), typed exactly.
|
|
12
12
|
*/
|
|
13
|
-
import type { OneOf } from "#face.ts";
|
|
14
13
|
import { type AnyField, type Infer } from "#fields.ts";
|
|
15
|
-
import type
|
|
14
|
+
import { type LiteralSetSpec } from "#spec.ts";
|
|
16
15
|
/** Flattens an intersection into one displayed object type (hover legibility). */
|
|
17
16
|
type Flatten<T> = {
|
|
18
17
|
[K in keyof T]: T[K];
|
|
@@ -64,13 +63,15 @@ interface SelectionBinding {
|
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
* The `where()` argument: per field, a bare structural literal of that
|
|
67
|
-
* field's value type (a closed
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
66
|
+
* field's value type (a closed reference's literal IS its handle name —
|
|
67
|
+
* `"Savings"`, verified against the roster at construction), a plain
|
|
68
|
+
* ARRAY of such literals read disjunctively — `kind: ["Checking",
|
|
69
|
+
* "Savings"]` — or a `span(start, end)` interval literal. Membership is
|
|
70
|
+
* an array, never an operator (the drizzle law); equality-only by
|
|
71
|
+
* construction: no operator parameter exists anywhere.
|
|
71
72
|
*/
|
|
72
73
|
type SelectionInput<Fields extends FieldsShape> = {
|
|
73
|
-
readonly [K in keyof Fields]?: Infer<Fields[K]> |
|
|
74
|
+
readonly [K in keyof Fields]?: Infer<Fields[K]> | readonly Infer<Fields[K]>[];
|
|
74
75
|
};
|
|
75
76
|
/** A relation with a selection applied — what `on()` consumes as a σ-carrying source. */
|
|
76
77
|
interface Selected<Name extends string, Fields extends FieldsShape> {
|
package/dist/relation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/relation.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import * as errors from "@superbuilders/errors";
|
|
14
14
|
import { assertDeclarationOrderKey, literalOf } from "#fields.ts";
|
|
15
|
+
import { renderLiteral } from "#spec.ts";
|
|
15
16
|
/**
|
|
16
17
|
* The one trusted seam of `relation()`: the reference record is built by
|
|
17
18
|
* iterating the declared fields, and this guard verifies the checkable
|
|
@@ -26,16 +27,37 @@ function refsComplete(refs, fields) {
|
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
|
-
* Resolves one selection entry to its lowered literal set:
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* the
|
|
30
|
+
* Resolves one selection entry to its lowered literal set: a plain ARRAY
|
|
31
|
+
* (detected by `Array.isArray` — no field's value type is an array;
|
|
32
|
+
* `Uint8Array` is not one) becomes a disjunctive set, anything else the
|
|
33
|
+
* bare literal. The degenerate sets are construction errors, each
|
|
34
|
+
* self-locating (`context` names the relation and field) — the empty set
|
|
35
|
+
* selects nothing, the one-element set is the bare literal respelled, and
|
|
36
|
+
* a DUPLICATE literal (judged on the canonical rendering — the engine's
|
|
37
|
+
* own duplicate test, reached here first so its index-speak twin at
|
|
38
|
+
* `Db.create` stays unreachable from this surface) is the same respelling
|
|
39
|
+
* in disguise (the canonical-utterance law; the old set combinator's
|
|
40
|
+
* signature made the length degenerates unwritable, and the refusals here
|
|
41
|
+
* are that law's runtime seat). The lowered set — `{ kind: "many",
|
|
42
|
+
* literals }` — is byte-identical to what the combinator produced, so no
|
|
43
|
+
* fingerprint moves.
|
|
34
44
|
*/
|
|
35
|
-
function resolveEntry(field, entry) {
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
function resolveEntry(context, field, entry) {
|
|
46
|
+
if (Array.isArray(entry)) {
|
|
47
|
+
if (entry.length < 2) {
|
|
48
|
+
throw errors.new(entry.length === 0
|
|
49
|
+
? `${context}: an empty literal set selects nothing — write the selection you mean`
|
|
50
|
+
: `${context}: a one-element literal set is the bare literal respelled — write the literal (the canonical-utterance law: one meaning, one spelling)`);
|
|
51
|
+
}
|
|
52
|
+
const seen = new Set();
|
|
53
|
+
const literals = entry.map(function lowerSetLiteral(literal) {
|
|
54
|
+
const lowered = Object.freeze(literalOf(field, literal));
|
|
55
|
+
const rendered = renderLiteral(lowered);
|
|
56
|
+
if (seen.has(rendered)) {
|
|
57
|
+
throw errors.new(`${context}: the literal set spells ${rendered} twice — write it once (the canonical-utterance law: one meaning, one spelling)`);
|
|
58
|
+
}
|
|
59
|
+
seen.add(rendered);
|
|
60
|
+
return lowered;
|
|
39
61
|
});
|
|
40
62
|
return Object.freeze({ kind: "many", literals: Object.freeze(literals) });
|
|
41
63
|
}
|
|
@@ -62,7 +84,7 @@ function resolveSelection(name, ordered, entries) {
|
|
|
62
84
|
if (declared === undefined) {
|
|
63
85
|
throw errors.new(`relation ${name} has no field ${fieldName}`);
|
|
64
86
|
}
|
|
65
|
-
bindings.push(Object.freeze({ field: fieldName, set: resolveEntry(declared.field, entry) }));
|
|
87
|
+
bindings.push(Object.freeze({ field: fieldName, set: resolveEntry(`relation ${name}.${fieldName}`, declared.field, entry) }));
|
|
66
88
|
}
|
|
67
89
|
if (bindings.length === 0) {
|
|
68
90
|
throw errors.new(`relation ${name}: an empty selection is the bare relation respelled — pass the relation itself (the canonical-utterance law: one meaning, one spelling)`);
|
package/dist/relation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/spec.d.ts
CHANGED
|
@@ -83,8 +83,9 @@ type LiteralSpec = {
|
|
|
83
83
|
};
|
|
84
84
|
/**
|
|
85
85
|
* One σ binding's right side: a single literal or a literal set (read
|
|
86
|
-
* disjunctively). The SDK's selection
|
|
87
|
-
*
|
|
86
|
+
* disjunctively). The SDK's selection resolver refuses the degenerate sets
|
|
87
|
+
* (a membership array needs two members — the empty set selects nothing,
|
|
88
|
+
* the one-element set is the bare literal respelled), so a lowered `many`
|
|
88
89
|
* always carries ≥ 2 literals.
|
|
89
90
|
*/
|
|
90
91
|
type LiteralSetSpec = {
|
package/dist/spec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;GAOG;AACH,KAAK,aAAa,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrD;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC,CAAA;AAEJ;;;;;GAKG;AACH,KAAK,SAAS,GACX;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjF;;;;;GAKG;AACH,KAAK,WAAW,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/statements.d.ts
CHANGED
|
@@ -8,10 +8,16 @@
|
|
|
8
8
|
* Every field reference is checked against the relation it names in the
|
|
9
9
|
* TYPE — existence through {@link FaceFields} (`on(R, "nope")` does not
|
|
10
10
|
* compile) and STRUCTURAL compatibility through {@link SameShapes}: the two
|
|
11
|
-
* faces' projected kind/width/element
|
|
12
|
-
* (the minimal kernel — descriptors are pure structure) and
|
|
13
|
-
* positionwise equal, so a u64 face against a str face, a
|
|
14
|
-
* mismatch,
|
|
11
|
+
* faces' projected kind/width/element/roster quadruples are read off the
|
|
12
|
+
* schema type (the minimal kernel — descriptors are pure structure) and
|
|
13
|
+
* constrained positionwise equal, so a u64 face against a str face, a
|
|
14
|
+
* bytes width mismatch, an interval element mismatch, or a bare column
|
|
15
|
+
* against a closed reference is a compile error. The ROSTER slot carries a
|
|
16
|
+
* construction-time runtime twin here ({@link assertRosterAgreement} —
|
|
17
|
+
* roster IDENTITY, positionwise: a closed vocabulary's referencing column
|
|
18
|
+
* is spelled with the vocabulary's own id descriptor, the ONE spelling, so
|
|
19
|
+
* a plain u64 column can never alias a vocabulary through a declared law
|
|
20
|
+
* and the SDK's descriptor-keyed closed judgments stay sound). Domains are
|
|
15
21
|
* NOT compared here — there is no domain to compare at construction: the
|
|
16
22
|
* statements themselves are what define the equivalence classes, and the
|
|
17
23
|
* domain wall lives where they aggregate — `schema()` (the
|
package/dist/statements.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
|