@bjornpagen/bumbledb 0.2.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.
Files changed (94) hide show
  1. package/COOKBOOK.md +503 -427
  2. package/README.md +84 -36
  3. package/dist/closed.d.ts +111 -38
  4. package/dist/closed.d.ts.map +1 -1
  5. package/dist/closed.js +94 -99
  6. package/dist/closed.js.map +1 -1
  7. package/dist/db.d.ts +16 -2
  8. package/dist/db.d.ts.map +1 -1
  9. package/dist/db.js +46 -8
  10. package/dist/db.js.map +1 -1
  11. package/dist/face.d.ts +114 -69
  12. package/dist/face.d.ts.map +1 -1
  13. package/dist/face.js +38 -21
  14. package/dist/face.js.map +1 -1
  15. package/dist/fields.d.ts +72 -87
  16. package/dist/fields.d.ts.map +1 -1
  17. package/dist/fields.js +35 -67
  18. package/dist/fields.js.map +1 -1
  19. package/dist/index.d.ts +18 -13
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +11 -7
  22. package/dist/index.js.map +1 -1
  23. package/dist/law.d.ts +224 -0
  24. package/dist/law.d.ts.map +1 -0
  25. package/dist/law.js +224 -0
  26. package/dist/law.js.map +1 -0
  27. package/dist/lower.d.ts +17 -10
  28. package/dist/lower.d.ts.map +1 -1
  29. package/dist/lower.js +34 -23
  30. package/dist/lower.js.map +1 -1
  31. package/dist/marshal.d.ts +33 -6
  32. package/dist/marshal.d.ts.map +1 -1
  33. package/dist/marshal.js +67 -6
  34. package/dist/marshal.js.map +1 -1
  35. package/dist/native.d.ts +6 -2
  36. package/dist/native.d.ts.map +1 -1
  37. package/dist/native.js.map +1 -1
  38. package/dist/query/atom.d.ts +139 -56
  39. package/dist/query/atom.d.ts.map +1 -1
  40. package/dist/query/atom.js +7 -1
  41. package/dist/query/atom.js.map +1 -1
  42. package/dist/query/lower.d.ts +71 -56
  43. package/dist/query/lower.d.ts.map +1 -1
  44. package/dist/query/lower.js +341 -69
  45. package/dist/query/lower.js.map +1 -1
  46. package/dist/query/predicate.d.ts +10 -9
  47. package/dist/query/predicate.d.ts.map +1 -1
  48. package/dist/query/predicate.js +2 -2
  49. package/dist/query/predicate.js.map +1 -1
  50. package/dist/query/run.d.ts +15 -5
  51. package/dist/query/run.d.ts.map +1 -1
  52. package/dist/query/run.js +26 -6
  53. package/dist/query/run.js.map +1 -1
  54. package/dist/query/scope.d.ts +100 -43
  55. package/dist/query/scope.d.ts.map +1 -1
  56. package/dist/query/scope.js +89 -30
  57. package/dist/query/scope.js.map +1 -1
  58. package/dist/query/select.d.ts +5 -5
  59. package/dist/query/select.d.ts.map +1 -1
  60. package/dist/relation.d.ts +29 -15
  61. package/dist/relation.d.ts.map +1 -1
  62. package/dist/relation.js +45 -17
  63. package/dist/relation.js.map +1 -1
  64. package/dist/schema.d.ts +41 -3
  65. package/dist/schema.d.ts.map +1 -1
  66. package/dist/schema.js +16 -2
  67. package/dist/schema.js.map +1 -1
  68. package/dist/spec.d.ts +10 -8
  69. package/dist/spec.d.ts.map +1 -1
  70. package/dist/spec.js.map +1 -1
  71. package/dist/statements.d.ts +67 -31
  72. package/dist/statements.d.ts.map +1 -1
  73. package/dist/statements.js +97 -20
  74. package/dist/statements.js.map +1 -1
  75. package/package.json +2 -2
  76. package/src/closed.ts +214 -146
  77. package/src/db.ts +65 -10
  78. package/src/face.ts +169 -102
  79. package/src/fields.ts +97 -164
  80. package/src/index.ts +43 -18
  81. package/src/law.ts +519 -0
  82. package/src/lower.ts +36 -23
  83. package/src/marshal.ts +74 -7
  84. package/src/native.ts +6 -2
  85. package/src/query/atom.ts +155 -65
  86. package/src/query/lower.ts +572 -167
  87. package/src/query/predicate.ts +43 -33
  88. package/src/query/run.ts +26 -6
  89. package/src/query/scope.ts +161 -51
  90. package/src/query/select.ts +5 -5
  91. package/src/relation.ts +60 -26
  92. package/src/schema.ts +48 -7
  93. package/src/spec.ts +10 -8
  94. package/src/statements.ts +165 -46
@@ -25,19 +25,26 @@
25
25
  * pre-checked here.
26
26
  */
27
27
  import type { AnyField } from "#fields.ts";
28
+ import type { ClassRecordOf, SchemaClasses } from "#law.ts";
28
29
  import type { ProgramIr, TaggedValue } from "#native.ts";
29
- import type { AnyCond, BindEnv, BindParamsShape, CheckBindings, CheckCond, CmpKind, CondParamsShape, MatchShape, RecData, RuleData, SelectColumn } from "#query/atom.ts";
30
+ import type { AnyCond, BindEnv, BindParamsShape, CheckBindings, CheckCond, CmpKind, CondParamsShape, MatchFields, MatchOwner, MatchShape, RecData, RuleData, SelectColumn } from "#query/atom.ts";
30
31
  import { allen, and, covers, eq, ge, gt, le, lt, ne, not, or, pointIn } from "#query/atom.ts";
31
- import type { EnvShape, Flatten, InferredOf, JoinOk, ParamEntry, ParamsRecord, Var } from "#query/scope.ts";
32
- import { inferred, makeDuration, makeMaskParam, makeParam, makeSetParam, makeVar } from "#query/scope.ts";
32
+ import type { ClassedField, EnvShape, Flatten, InferredOf, JoinOk, ParamEntry, ParamsRecord, Var } from "#query/scope.ts";
33
+ import { inferred, makeDuration, makeMaskParam, makeParam, makeSetParam, makeVar, makeVars } from "#query/scope.ts";
33
34
  import type { CheckNameSelect, CheckSelect, RowOfNameSelect, RowOfSelect, SelectEntry } from "#query/select.ts";
34
35
  import { argMax, argMin, count, countDistinct, max, min, pack, sum } from "#query/select.ts";
35
- import type { AnyRelation, FieldsShape, RelationFields } from "#relation.ts";
36
+ import type { FieldsShape } from "#relation.ts";
36
37
  import type { AnySchema, Schema, SchemaRelations } from "#schema.ts";
37
- /** The ordinary (matchable) relations of a schema's record — closed relations lack the relation shape entirely. */
38
- type QueryRelation<Rels extends SchemaRelations> = Extract<Rels[keyof Rels], AnyRelation>;
39
- /** The environment after one bindings record: the incoming env plus every var the record binds. */
40
- type EnvOfMatch<Env extends EnvShape, F extends FieldsShape, B> = Flatten<Env & BindEnv<F, B>> extends infer E extends EnvShape ? E : never;
38
+ /**
39
+ * The matchable members of a schema's record — ordinary relations AND
40
+ * closed vocabularies query atoms: a closed atom is an ordinary EDB
41
+ * atom over the sealed extension; the ENGINE decides whether it folds to a
42
+ * plan-constant member set or joins the L1-resident virtual image — the
43
+ * SDK lowers pass-through and never knows which).
44
+ */
45
+ type QueryRelation<Rels extends SchemaRelations> = Extract<Rels[keyof Rels], MatchOwner>;
46
+ /** The environment after one bindings record: the incoming env plus every var the record binds (as classed slots). */
47
+ type EnvOfMatch<Env extends EnvShape, F extends FieldsShape, CR, B> = Flatten<Env & BindEnv<F, CR, B>> extends infer E extends EnvShape ? E : never;
41
48
  /** Reads an inferred-params carrier off a rec reference or rule value. */
42
49
  type ParamsOf<T> = InferredOf<T> extends {
43
50
  readonly params: infer P extends ParamsRecord;
@@ -47,12 +54,13 @@ type RowOf<T> = InferredOf<T> extends {
47
54
  readonly row: infer R;
48
55
  } ? R : never;
49
56
  /**
50
- * A recursive predicate's HEAD signature as field descriptors, position
51
- * for position — carried on the rec reference so an `idb` join can be
52
- * judged against it; `undefined` on values that carry no head (a plain
53
- * query rule, or an unthreaded rec handle before its first rule).
57
+ * A recursive predicate's HEAD signature as classed slots (descriptor +
58
+ * law-computed class), position for position — carried on the rec
59
+ * reference so an `idb` join can be judged against it; `undefined` on
60
+ * values that carry no head (a plain query rule, or an unthreaded rec
61
+ * handle before its first rule).
54
62
  */
55
- type HeadShape = readonly AnyField[] | undefined;
63
+ type HeadShape = readonly ClassedField[] | undefined;
56
64
  /**
57
65
  * One finished rule as a plain value: the runtime data plus the inferred
58
66
  * row/params carrier (and, for a RECURSIVE rule, the head's positional
@@ -75,7 +83,7 @@ type HeadFieldsOf<Env extends EnvShape, S extends readonly string[]> = {
75
83
  };
76
84
  /** Reads an inferred-head carrier off a rule value or rec reference. */
77
85
  type HeadOf<T> = InferredOf<T> extends {
78
- readonly head: infer H extends readonly AnyField[];
86
+ readonly head: infer H extends readonly ClassedField[];
79
87
  } ? H : undefined;
80
88
  /**
81
89
  * A recursive predicate REFERENCE — the shape `idb()` targets carry: the
@@ -94,18 +102,18 @@ interface RecRef<Name extends string, P extends ParamsRecord, Head extends HeadS
94
102
  readonly head: Head;
95
103
  };
96
104
  }
97
- /** One `idb` position's judgment: the var must be bound by a relation atom, domain-equal to the head column when the head is carried. */
98
- type IdbVarOk<Env extends EnvShape, T, F> = T extends Var<infer N extends string> ? N extends keyof Env ? F extends AnyField ? JoinOk<Env[N], F> : true : false : false;
105
+ /** One `idb` position's judgment: the var must be bound by a relation atom, class-equal to the head slot when the head is carried. */
106
+ type IdbVarOk<Env extends EnvShape, T, F> = T extends Var<infer N extends string> ? N extends keyof Env ? F extends ClassedField ? JoinOk<Env[N], F> : true : false : false;
99
107
  /**
100
108
  * The validated `idb` variable tuple: every var must already be bound by a
101
109
  * relation atom of the rule; and when the target carries its head
102
110
  * signature (the threaded rec handle), the tuple must match the head's
103
- * arity and every position must be domain-equal to its head column — the
111
+ * arity and every position must be class-equal to its head slot — the
104
112
  * same wall `JoinOk` holds for EDB atoms. An unthreaded handle carries no
105
- * head; its joins stay boundness-checked here and arity/domain-judged at
113
+ * head; its joins stay boundness-checked here and arity/class-judged at
106
114
  * prepare (the engine's law stands behind both tiers).
107
115
  */
108
- type CheckIdbVars<Env extends EnvShape, V, Head extends HeadShape = undefined> = Head extends readonly AnyField[] ? V extends readonly unknown[] ? V["length"] extends Head["length"] ? {
116
+ type CheckIdbVars<Env extends EnvShape, V, Head extends HeadShape = undefined> = Head extends readonly ClassedField[] ? V extends readonly unknown[] ? V["length"] extends Head["length"] ? {
109
117
  readonly [I in keyof V]: IdbVarOk<Env, V[I], Head[I & keyof Head]> extends true ? V[I] : never;
110
118
  } : {
111
119
  readonly [I in keyof V]: never;
@@ -121,6 +129,8 @@ type CheckIdbVars<Env extends EnvShape, V, Head extends HeadShape = undefined> =
121
129
  interface TermOps {
122
130
  /** Declares/names one variable: typed by the field it first binds; reuse joins. */
123
131
  readonly var: typeof makeVar;
132
+ /** Mints several variables at once — `const { service, w } = r.vars("service", "w")`: each name typed exactly; duplicates refuse. */
133
+ readonly vars: typeof makeVars;
124
134
  /** Names one scalar parameter: typed by its use; the key of the execute params object. */
125
135
  readonly param: typeof makeParam;
126
136
  /** Names one ∈-set parameter (the IR's `ParamSet`): bound to a readonly array at execution. */
@@ -150,28 +160,28 @@ interface TermOps {
150
160
  readonly argMin: typeof argMin;
151
161
  readonly pack: typeof pack;
152
162
  }
153
- /** The rule builder a `query(S).rule(...)` callback receives: the ops plus the first atom. */
154
- interface QueryRuleScope<Rels extends SchemaRelations> extends TermOps {
155
- /** The first EDB atom of the rule: fields bind vars, params, ∈-sets, or bare literals; absence is the wildcard (same-named vars within the record join domain-equal). */
156
- match<R extends QueryRelation<Rels>, const B extends MatchShape<RelationFields<R>>>(relation: R, bindings: B & CheckBindings<Record<never, never>, RelationFields<R>, B>): QueryRuleChain<Rels, EnvOfMatch<Record<never, never>, RelationFields<R>, B>, BindParamsShape<RelationFields<R>, B>>;
163
+ /** The rule builder a `query(S).rule(...)` callback receives: the ops plus the first atom (`Classes` — the schema type's class map, the join judge's authority). */
164
+ interface QueryRuleScope<Rels extends SchemaRelations, Classes extends SchemaClasses = SchemaClasses> extends TermOps {
165
+ /** The first EDB atom of the rule: fields bind vars, params, ∈-sets, or bare literals; absence is the wildcard (same-named vars within the record join class-equal). */
166
+ match<R extends QueryRelation<Rels>, const B extends MatchShape<MatchFields<R>>>(relation: R, bindings: B & CheckBindings<Record<never, never>, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>): QueryRuleChain<Rels, EnvOfMatch<Record<never, never>, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>, BindParamsShape<MatchFields<R>, B>, Classes>;
157
167
  }
158
168
  /** The chain of a plain query rule: more atoms, residual predicates, then the head. */
159
- interface QueryRuleChain<Rels extends SchemaRelations, Env extends EnvShape, P extends ParamsRecord> {
160
- /** One more positive EDB atom — var reuse joins, domain-equal by the environment check. */
161
- match<R extends QueryRelation<Rels>, const B extends MatchShape<RelationFields<R>>>(relation: R, bindings: B & CheckBindings<Env, RelationFields<R>, B>): QueryRuleChain<Rels, EnvOfMatch<Env, RelationFields<R>, B>, Flatten<P & BindParamsShape<RelationFields<R>, B>>>;
169
+ interface QueryRuleChain<Rels extends SchemaRelations, Env extends EnvShape, P extends ParamsRecord, Classes extends SchemaClasses = SchemaClasses> {
170
+ /** One more positive EDB atom — var reuse joins, class-equal by the environment check. */
171
+ match<R extends QueryRelation<Rels>, const B extends MatchShape<MatchFields<R>>>(relation: R, bindings: B & CheckBindings<Env, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>): QueryRuleChain<Rels, EnvOfMatch<Env, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>, Flatten<P & BindParamsShape<MatchFields<R>, B>>, Classes>;
162
172
  /** One residual predicate: a comparison, an `and`/`or` tree, or a negated atom (`r.not`). */
163
- where<const C extends AnyCond>(cond: CheckCond<Env, C> & C): QueryRuleChain<Rels, Env, Flatten<P & CondParamsShape<Env, C>>>;
173
+ where<const C extends AnyCond>(cond: CheckCond<Env, Classes, C> & C): QueryRuleChain<Rels, Env, Flatten<P & CondParamsShape<Env, C>>, Classes>;
164
174
  /** The head projection: var names, the measure, and aggregates; written order = answer column order. */
165
175
  select<const S extends readonly SelectEntry[]>(...entries: CheckSelect<Env, S> & S): RuleValue<RowOfSelect<Env, S>, P>;
166
176
  }
167
177
  /** The rule builder an OUTPUT rule of a `program()` receives: a query rule plus finished-stratum `idb` atoms. */
168
- interface OutputRuleScope<Rels extends SchemaRelations> extends TermOps {
169
- match<R extends QueryRelation<Rels>, const B extends MatchShape<RelationFields<R>>>(relation: R, bindings: B & CheckBindings<Record<never, never>, RelationFields<R>, B>): OutputRuleChain<Rels, EnvOfMatch<Record<never, never>, RelationFields<R>, B>, BindParamsShape<RelationFields<R>, B>>;
178
+ interface OutputRuleScope<Rels extends SchemaRelations, Classes extends SchemaClasses = SchemaClasses> extends TermOps {
179
+ match<R extends QueryRelation<Rels>, const B extends MatchShape<MatchFields<R>>>(relation: R, bindings: B & CheckBindings<Record<never, never>, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>): OutputRuleChain<Rels, EnvOfMatch<Record<never, never>, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>, BindParamsShape<MatchFields<R>, B>, Classes>;
170
180
  }
171
181
  /** The chain of an output rule: atoms, predicates, `idb` joins over the program's recs, then the head. */
172
- interface OutputRuleChain<Rels extends SchemaRelations, Env extends EnvShape, P extends ParamsRecord> {
173
- match<R extends QueryRelation<Rels>, const B extends MatchShape<RelationFields<R>>>(relation: R, bindings: B & CheckBindings<Env, RelationFields<R>, B>): OutputRuleChain<Rels, EnvOfMatch<Env, RelationFields<R>, B>, Flatten<P & BindParamsShape<RelationFields<R>, B>>>;
174
- where<const C extends AnyCond>(cond: CheckCond<Env, C> & C): OutputRuleChain<Rels, Env, Flatten<P & CondParamsShape<Env, C>>>;
182
+ interface OutputRuleChain<Rels extends SchemaRelations, Env extends EnvShape, P extends ParamsRecord, Classes extends SchemaClasses = SchemaClasses> {
183
+ match<R extends QueryRelation<Rels>, const B extends MatchShape<MatchFields<R>>>(relation: R, bindings: B & CheckBindings<Env, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>): OutputRuleChain<Rels, EnvOfMatch<Env, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>, Flatten<P & BindParamsShape<MatchFields<R>, B>>, Classes>;
184
+ where<const C extends AnyCond>(cond: CheckCond<Env, Classes, C> & C): OutputRuleChain<Rels, Env, Flatten<P & CondParamsShape<Env, C>>, Classes>;
175
185
  /**
176
186
  * One `idb` atom over a FINISHED stratum (any rec of this program): a
177
187
  * positional join against the rec's head. An idb atom is a join
@@ -179,15 +189,15 @@ interface OutputRuleChain<Rels extends SchemaRelations, Env extends EnvShape, P
179
189
  * the rule (the theory's own domain relation; the rec's answers are
180
190
  * theory values, so the join is identity). Threading the rec value the
181
191
  * last `.rule(...)` returned carries its rules' params into `Params`
182
- * AND its head signature, so the join is arity- and domain-checked
192
+ * AND its head signature, so the join is arity- and class-checked
183
193
  * against the head at compile time.
184
194
  */
185
- idb<Target extends RecRef<string, ParamsRecord>, const V extends readonly Var<string>[]>(target: Target, ...vars: CheckIdbVars<Env, V, HeadOf<Target>> & V): OutputRuleChain<Rels, Env, Flatten<P & ParamsOf<Target>>>;
195
+ idb<Target extends RecRef<string, ParamsRecord>, const V extends readonly Var<string>[]>(target: Target, ...vars: CheckIdbVars<Env, V, HeadOf<Target>> & V): OutputRuleChain<Rels, Env, Flatten<P & ParamsOf<Target>>, Classes>;
186
196
  select<const S extends readonly SelectEntry[]>(...entries: CheckSelect<Env, S> & S): RuleValue<RowOfSelect<Env, S>, P>;
187
197
  }
188
198
  /** The rule builder a RECURSIVE rule (`rec.rule(...)`) receives. */
189
- interface RecRuleScope<Rels extends SchemaRelations, Self extends string> extends TermOps {
190
- match<R extends QueryRelation<Rels>, const B extends MatchShape<RelationFields<R>>>(relation: R, bindings: B & CheckBindings<Record<never, never>, RelationFields<R>, B>): RecRuleChain<Rels, Self, EnvOfMatch<Record<never, never>, RelationFields<R>, B>, BindParamsShape<RelationFields<R>, B>>;
199
+ interface RecRuleScope<Rels extends SchemaRelations, Self extends string, Classes extends SchemaClasses = SchemaClasses> extends TermOps {
200
+ match<R extends QueryRelation<Rels>, const B extends MatchShape<MatchFields<R>>>(relation: R, bindings: B & CheckBindings<Record<never, never>, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>): RecRuleChain<Rels, Self, EnvOfMatch<Record<never, never>, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>, BindParamsShape<MatchFields<R>, B>, Classes>;
191
201
  }
192
202
  /**
193
203
  * The chain of a recursive rule. Its `idb` accepts ONLY the rec itself —
@@ -197,12 +207,12 @@ interface RecRuleScope<Rels extends SchemaRelations, Self extends string> extend
197
207
  * measure are unrepresentable in a recursive head (the strata judge's
198
208
  * `AggregationThroughCycle`/`MeasureInRecursiveHead`, made unwritable).
199
209
  */
200
- interface RecRuleChain<Rels extends SchemaRelations, Self extends string, Env extends EnvShape, P extends ParamsRecord> {
201
- match<R extends QueryRelation<Rels>, const B extends MatchShape<RelationFields<R>>>(relation: R, bindings: B & CheckBindings<Env, RelationFields<R>, B>): RecRuleChain<Rels, Self, EnvOfMatch<Env, RelationFields<R>, B>, Flatten<P & BindParamsShape<RelationFields<R>, B>>>;
202
- where<const C extends AnyCond>(cond: CheckCond<Env, C> & C): RecRuleChain<Rels, Self, Env, Flatten<P & CondParamsShape<Env, C>>>;
203
- /** The self-recursive atom: `idb(self, ...boundVars)` — only this rec's own reference is accepted (threaded, its head arity- and domain-checks the join). */
204
- idb<Target extends RecRef<Self, ParamsRecord>, const V extends readonly Var<string>[]>(target: Target, ...vars: CheckIdbVars<Env, V, HeadOf<Target>> & V): RecRuleChain<Rels, Self, Env, P>;
205
- /** The recursive head: bound variable names only (the creation quarantine, restated for fixpoint topology); the value carries the head's field descriptors for `idb` pairing. */
210
+ interface RecRuleChain<Rels extends SchemaRelations, Self extends string, Env extends EnvShape, P extends ParamsRecord, Classes extends SchemaClasses = SchemaClasses> {
211
+ match<R extends QueryRelation<Rels>, const B extends MatchShape<MatchFields<R>>>(relation: R, bindings: B & CheckBindings<Env, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>): RecRuleChain<Rels, Self, EnvOfMatch<Env, MatchFields<R>, ClassRecordOf<Classes, R["name"]>, B>, Flatten<P & BindParamsShape<MatchFields<R>, B>>, Classes>;
212
+ where<const C extends AnyCond>(cond: CheckCond<Env, Classes, C> & C): RecRuleChain<Rels, Self, Env, Flatten<P & CondParamsShape<Env, C>>, Classes>;
213
+ /** The self-recursive atom: `idb(self, ...boundVars)` — only this rec's own reference is accepted (threaded, its head arity- and class-checks the join). */
214
+ idb<Target extends RecRef<Self, ParamsRecord>, const V extends readonly Var<string>[]>(target: Target, ...vars: CheckIdbVars<Env, V, HeadOf<Target>> & V): RecRuleChain<Rels, Self, Env, P, Classes>;
215
+ /** The recursive head: bound variable names only (the creation quarantine, restated for fixpoint topology); the value carries the head's classed slots for `idb` pairing. */
206
216
  select<const S extends readonly string[]>(...names: CheckNameSelect<Env, S> & S): RuleValue<RowOfNameSelect<Env, S>, P, HeadFieldsOf<Env, S>>;
207
217
  }
208
218
  /** A query's runtime description — everything lowering, the wire marshal, and answer decode read. */
@@ -222,11 +232,11 @@ interface QueryData {
222
232
  * the rules use. Prepare with `db.prepare(q)`; nothing here touches an
223
233
  * engine.
224
234
  */
225
- interface Query<Rels extends SchemaRelations, Row, Params extends ParamsRecord> {
226
- readonly schema: Schema<Rels>;
235
+ interface Query<Rels extends SchemaRelations, Row, Params extends ParamsRecord, Classes extends SchemaClasses = SchemaClasses> {
236
+ readonly schema: Schema<Rels, Classes>;
227
237
  readonly data: QueryData;
228
238
  /** One more rule — the query's answers are the SET UNION of its rules' answers; every rule derives the same head. */
229
- rule<RV extends AnyRuleValue>(build: (r: QueryRuleScope<Rels>) => RV): Query<Rels, Row | RowOf<RV>, Flatten<Params & ParamsOf<RV>>>;
239
+ rule<RV extends AnyRuleValue>(build: (r: QueryRuleScope<Rels, Classes>) => RV): Query<Rels, Row | RowOf<RV>, Flatten<Params & ParamsOf<RV>>, Classes>;
230
240
  readonly [inferred]?: {
231
241
  readonly row: Row;
232
242
  readonly params: Params;
@@ -246,8 +256,8 @@ type QueryRow<Q extends AnyQuery> = RowOf<Q>;
246
256
  /** Extracts a query value's inferred execute-params type. */
247
257
  type QueryParams<Q extends AnyQuery> = ParamsOf<Q>;
248
258
  /** The entry value of `query(S)`: the first `.rule` mints the query. */
249
- interface QueryStart<Rels extends SchemaRelations> {
250
- rule<RV extends AnyRuleValue>(build: (r: QueryRuleScope<Rels>) => RV): Query<Rels, RowOf<RV>, ParamsOf<RV>>;
259
+ interface QueryStart<Rels extends SchemaRelations, Classes extends SchemaClasses = SchemaClasses> {
260
+ rule<RV extends AnyRuleValue>(build: (r: QueryRuleScope<Rels, Classes>) => RV): Query<Rels, RowOf<RV>, ParamsOf<RV>, Classes>;
251
261
  }
252
262
  /**
253
263
  * The one runtime chain every context shares — non-generic on purpose: the
@@ -259,17 +269,19 @@ interface QueryStart<Rels extends SchemaRelations> {
259
269
  * (bound variable names only — the creation quarantine).
260
270
  */
261
271
  interface RawChain {
262
- match(relation: AnyRelation, bindings: Readonly<Record<string, unknown>>): RawChain;
272
+ match(relation: MatchOwner, bindings: Readonly<Record<string, unknown>>): RawChain;
263
273
  where(cond: AnyCond): RawChain;
264
274
  idb(target: RecRef<string, ParamsRecord>, ...vars: readonly Var<string>[]): RawChain;
265
275
  select(...entries: readonly SelectEntry[]): RuleValue<never, never>;
266
276
  }
267
277
  /** The runtime rule-builder shape beneath every typed scope. */
268
278
  interface RawScope extends TermOps {
269
- match(relation: AnyRelation, bindings: Readonly<Record<string, unknown>>): RawChain;
279
+ match(relation: MatchOwner, bindings: Readonly<Record<string, unknown>>): RawChain;
270
280
  }
271
- /** Which rule family a chain builds — gates `idb` and the recursive select. */
281
+ /** Which rule family a chain builds — gates `idb` and the recursive select — plus the schema's runtime class map (the join judge's authority). */
272
282
  type ChainContext = {
283
+ readonly classes: SchemaClasses;
284
+ } & ({
273
285
  readonly kind: "query";
274
286
  } | {
275
287
  readonly kind: "rec";
@@ -277,24 +289,27 @@ type ChainContext = {
277
289
  } | {
278
290
  readonly kind: "output";
279
291
  readonly program: ProgramState;
280
- };
292
+ });
281
293
  /** Builds one runtime rule-builder over a context. */
282
294
  declare function makeRawScope(context: ChainContext): RawScope;
283
295
  /** Builds one output-rule builder over a program's recs. */
284
- declare function makeOutputRuleScope<Rels extends SchemaRelations>(program: ProgramState): OutputRuleScope<Rels>;
285
- /** One program's build-time registry: its recs in declaration order, sealed when the output is declared. */
296
+ declare function makeOutputRuleScope<Rels extends SchemaRelations, Classes extends SchemaClasses>(program: ProgramState): OutputRuleScope<Rels, Classes>;
297
+ /** One program's build-time registry: its recs in declaration order (sealed when the output is declared) and the theory's class map. */
286
298
  interface ProgramState {
287
299
  readonly recs: RecData[];
300
+ readonly classes: SchemaClasses;
288
301
  sealed: boolean;
289
302
  }
290
303
  /** Assembles one typed query value (rules already completed). */
291
- declare function makeQuery<Rels extends SchemaRelations, Row, P extends ParamsRecord>(theory: Schema<Rels>, recs: readonly RecData[], rules: readonly RuleData[]): Query<Rels, Row, P>;
304
+ declare function makeQuery<Rels extends SchemaRelations, Row, P extends ParamsRecord, Classes extends SchemaClasses>(theory: Schema<Rels, Classes>, recs: readonly RecData[], rules: readonly RuleData[]): Query<Rels, Row, P, Classes>;
292
305
  /**
293
306
  * Opens a query over a schema: `query(S).rule(r => ...)`. Each `.rule`
294
307
  * adds one conjunctive rule; multiple rules are the set union (answers are
295
- * SETS — no order or limit exists anywhere; hosts sort).
308
+ * SETS — no order or limit exists anywhere; hosts sort). The schema's
309
+ * law-computed class map rides into every rule builder — the join walls
310
+ * compare class names off it, at the type level and at construction alike.
296
311
  */
297
- declare function query<Rels extends SchemaRelations>(theory: Schema<Rels>): QueryStart<Rels>;
312
+ declare function query<Rels extends SchemaRelations, Classes extends SchemaClasses>(theory: Schema<Rels, Classes>): QueryStart<Rels, Classes>;
298
313
  /**
299
314
  * Tags one host literal at a FIELD position (atom bindings): the field's
300
315
  * structural kind directs the tag, never a guess. At an interval field a
@@ -1 +1 @@
1
- {"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../../src/query/lower.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../../src/query/lower.ts"],"names":[],"mappings":"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"}