@bjornpagen/bumbledb 0.2.0 → 0.3.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 (84) hide show
  1. package/COOKBOOK.md +462 -406
  2. package/README.md +66 -31
  3. package/dist/closed.d.ts +121 -25
  4. package/dist/closed.d.ts.map +1 -1
  5. package/dist/closed.js +108 -42
  6. package/dist/closed.js.map +1 -1
  7. package/dist/db.d.ts +12 -1
  8. package/dist/db.d.ts.map +1 -1
  9. package/dist/db.js +20 -5
  10. package/dist/db.js.map +1 -1
  11. package/dist/face.d.ts +100 -55
  12. package/dist/face.d.ts.map +1 -1
  13. package/dist/face.js +36 -10
  14. package/dist/face.js.map +1 -1
  15. package/dist/fields.d.ts +50 -79
  16. package/dist/fields.d.ts.map +1 -1
  17. package/dist/fields.js +20 -53
  18. package/dist/fields.js.map +1 -1
  19. package/dist/index.d.ts +17 -12
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +10 -6
  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/native.d.ts +6 -2
  32. package/dist/native.d.ts.map +1 -1
  33. package/dist/native.js.map +1 -1
  34. package/dist/query/atom.d.ts +88 -50
  35. package/dist/query/atom.d.ts.map +1 -1
  36. package/dist/query/atom.js +4 -1
  37. package/dist/query/atom.js.map +1 -1
  38. package/dist/query/lower.d.ts +71 -56
  39. package/dist/query/lower.d.ts.map +1 -1
  40. package/dist/query/lower.js +90 -43
  41. package/dist/query/lower.js.map +1 -1
  42. package/dist/query/predicate.d.ts +10 -9
  43. package/dist/query/predicate.d.ts.map +1 -1
  44. package/dist/query/predicate.js +2 -2
  45. package/dist/query/predicate.js.map +1 -1
  46. package/dist/query/scope.d.ts +76 -41
  47. package/dist/query/scope.d.ts.map +1 -1
  48. package/dist/query/scope.js +77 -30
  49. package/dist/query/scope.js.map +1 -1
  50. package/dist/query/select.d.ts +5 -5
  51. package/dist/query/select.d.ts.map +1 -1
  52. package/dist/relation.d.ts +21 -8
  53. package/dist/relation.d.ts.map +1 -1
  54. package/dist/relation.js +13 -7
  55. package/dist/relation.js.map +1 -1
  56. package/dist/schema.d.ts +41 -3
  57. package/dist/schema.d.ts.map +1 -1
  58. package/dist/schema.js +16 -2
  59. package/dist/schema.js.map +1 -1
  60. package/dist/spec.d.ts +7 -6
  61. package/dist/spec.d.ts.map +1 -1
  62. package/dist/spec.js.map +1 -1
  63. package/dist/statements.d.ts +61 -31
  64. package/dist/statements.d.ts.map +1 -1
  65. package/dist/statements.js +22 -17
  66. package/dist/statements.js.map +1 -1
  67. package/package.json +2 -2
  68. package/src/closed.ts +243 -68
  69. package/src/db.ts +23 -5
  70. package/src/face.ts +162 -84
  71. package/src/fields.ts +57 -136
  72. package/src/index.ts +42 -16
  73. package/src/law.ts +519 -0
  74. package/src/lower.ts +36 -23
  75. package/src/native.ts +6 -2
  76. package/src/query/atom.ts +105 -58
  77. package/src/query/lower.ts +271 -139
  78. package/src/query/predicate.ts +43 -33
  79. package/src/query/scope.ts +125 -49
  80. package/src/query/select.ts +5 -5
  81. package/src/relation.ts +15 -9
  82. package/src/schema.ts +48 -7
  83. package/src/spec.ts +7 -6
  84. package/src/statements.ts +83 -43
@@ -27,11 +27,12 @@
27
27
  import * as errors from "@superbuilders/errors";
28
28
  import { assertDeclarationOrderKey } from "#fields.ts";
29
29
  import { allen, and, covers, eq, ge, gt, le, lt, ne, not, or, pointIn } from "#query/atom.ts";
30
- import { fieldJoins, inferred, isTerm, makeDuration, makeMaskParam, makeParam, makeSetParam, makeVar, renderFieldKind, term } from "#query/scope.ts";
30
+ import { fieldJoins, inferred, isTerm, makeDuration, makeMaskParam, makeParam, makeSetParam, makeVar, makeVars, renderFieldKind, term } from "#query/scope.ts";
31
31
  import { argMax, argMin, count, countDistinct, max, min, pack, sum } from "#query/select.ts";
32
32
  /** The frozen constructor vocabulary every rule builder spreads. */
33
33
  const termOps = Object.freeze({
34
34
  var: makeVar,
35
+ vars: makeVars,
35
36
  param: makeParam,
36
37
  inSet: makeSetParam,
37
38
  maskParam: makeMaskParam,
@@ -64,31 +65,52 @@ const EMPTY_RULE = Object.freeze({
64
65
  paramUses: Object.freeze([])
65
66
  });
66
67
  /**
67
- * Resolves a bindings record against a relation's declared fields, in the
68
- * record's written order: terms classify by their runtime tag, everything
69
- * else is a bare literal (typed by the FIELD at lowering — the membership
70
- * typing rule included).
68
+ * The ordered matchable fields of an atom owner the runtime twin of the
69
+ * type tier's `MatchFields`: a relation's declared fields; a closed
70
+ * relation's SEALED shape, the synthetic `id` (the value's own
71
+ * roster-carrying descriptor, by identity) at ordinal 0 and the declared
72
+ * payload columns at declared index + 1 (the sealed shift, mirroring
73
+ * `spec.rs`'s resolver — a `ClosedColumn` is structurally a
74
+ * {@link RelationField}). The lowering golden pins this mapping.
71
75
  */
72
- function resolveBindings(context, relation, bindings) {
76
+ function matchFieldsOf(owner) {
77
+ if ("axioms" in owner) {
78
+ return [Object.freeze({ name: "id", field: owner.id }), ...owner.data.columns];
79
+ }
80
+ return owner.data.fields;
81
+ }
82
+ /**
83
+ * Resolves a bindings record against an atom owner's matchable fields (a
84
+ * relation's declared fields; a closed relation's sealed id + columns), in
85
+ * the record's written order: terms classify by their runtime tag,
86
+ * everything else is a bare literal (typed by the FIELD at lowering — the
87
+ * membership typing rule included). Every bound field carries its
88
+ * law-computed class, read off the schema value's frozen class map — the
89
+ * runtime twin of the type tier's `SlotAt` lookups.
90
+ */
91
+ function resolveBindings(context, relation, bindings, classes) {
73
92
  const entries = [];
74
93
  const vars = [];
75
94
  const uses = [];
95
+ const relationClasses = classes[relation.name];
96
+ const ordered = matchFieldsOf(relation);
76
97
  for (const [fieldName, value] of Object.entries(bindings)) {
77
98
  if (value === undefined) {
78
99
  continue;
79
100
  }
80
- const declared = relation.data.fields.find(function byName(candidate) {
101
+ const declared = ordered.find(function byName(candidate) {
81
102
  return candidate.name === fieldName;
82
103
  });
83
104
  if (declared === undefined) {
84
105
  throw errors.new(`${context} has no field ${fieldName}`);
85
106
  }
107
+ const fieldClass = relationClasses?.[fieldName];
86
108
  let bound;
87
109
  if (isTerm(value)) {
88
110
  switch (value[term]) {
89
111
  case "var": {
90
112
  bound = Object.freeze({ kind: "var", name: value.name });
91
- vars.push(Object.freeze({ name: value.name, field: declared.field }));
113
+ vars.push(Object.freeze({ name: value.name, slot: Object.freeze({ field: declared.field, class: fieldClass }) }));
92
114
  break;
93
115
  }
94
116
  case "param": {
@@ -110,7 +132,7 @@ function resolveBindings(context, relation, bindings) {
110
132
  else {
111
133
  bound = Object.freeze({ kind: "literal", value });
112
134
  }
113
- entries.push(Object.freeze({ field: fieldName, data: declared.field, term: bound }));
135
+ entries.push(Object.freeze({ field: fieldName, data: declared.field, class: fieldClass, term: bound }));
114
136
  }
115
137
  return {
116
138
  atom: Object.freeze({ relation, bindings: Object.freeze(entries) }),
@@ -121,20 +143,20 @@ function resolveBindings(context, relation, bindings) {
121
143
  /**
122
144
  * Extends a rule state with one positive atom. Vars bind on first
123
145
  * occurrence; every LATER occurrence (a later atom's field or a same-record
124
- * sibling) is a join and must be domain-equal — the construction-time twin
125
- * of the type tier's `JoinOk`, so the domain wall holds for untyped
126
- * callers too.
146
+ * sibling) is a join and must be class-equal — the construction-time twin
147
+ * of the type tier's `JoinOk` (bare pairs only with bare), so the domain
148
+ * wall holds for untyped callers too.
127
149
  */
128
- function advanceMatch(state, relation, bindings) {
129
- const resolved = resolveBindings(`relation ${relation.name}`, relation, bindings);
150
+ function advanceMatch(state, relation, bindings, classes) {
151
+ const resolved = resolveBindings(`relation ${relation.name}`, relation, bindings, classes);
130
152
  const varFields = { ...state.varFields };
131
153
  for (const bound of resolved.vars) {
132
154
  const existing = varFields[bound.name];
133
155
  if (existing === undefined) {
134
- varFields[bound.name] = bound.field;
156
+ varFields[bound.name] = bound.slot;
135
157
  }
136
- else if (!fieldJoins(existing, bound.field)) {
137
- throw errors.new(`relation ${relation.name}: the variable ${bound.name} joins domain-unequal fields — first bound at ${renderFieldKind(existing)}, reused at ${renderFieldKind(bound.field)} (a var joins only domain-equal fields)`);
158
+ else if (!fieldJoins(existing, bound.slot)) {
159
+ throw errors.new(`relation ${relation.name}: the variable ${bound.name} joins domain-unequal fields — first bound at ${renderFieldKind(existing)}, reused at ${renderFieldKind(bound.slot)} (a var joins only class-equal slots; bare pairs only with bare)`);
138
160
  }
139
161
  }
140
162
  return {
@@ -173,7 +195,7 @@ function sideUses(op, side, sibling, varFields, uses) {
173
195
  }
174
196
  let anchor;
175
197
  if (sibling.kind === "var") {
176
- anchor = varFields[sibling.name];
198
+ anchor = varFields[sibling.name]?.field;
177
199
  }
178
200
  else if (sibling.kind === "measure") {
179
201
  anchor = "measure";
@@ -222,7 +244,7 @@ function condDataOf(cond, varFields, uses) {
222
244
  throw errors.new("a negated atom is not a condition-tree node — pass not(...) to where() directly, never inside and()/or()");
223
245
  }
224
246
  /** Extends a rule state with one `.where` item (a condition or a negated atom). */
225
- function advanceWhere(state, cond) {
247
+ function advanceWhere(state, cond, classes) {
226
248
  if (typeof cond !== "object" || cond === null || !("cond" in cond)) {
227
249
  throw errors.new("where() takes a comparison, an and()/or() tree, or a negated atom");
228
250
  }
@@ -231,7 +253,7 @@ function advanceWhere(state, cond) {
231
253
  const bindings = Object.fromEntries(Object.entries(cond.bindings ?? {}).filter(function defined([, value]) {
232
254
  return value !== undefined;
233
255
  }));
234
- const resolved = resolveBindings(`negated relation ${relation.name}`, relation, bindings);
256
+ const resolved = resolveBindings(`negated relation ${relation.name}`, relation, bindings, classes);
235
257
  return {
236
258
  items: Object.freeze([...state.items, Object.freeze({ kind: "negated", atom: resolved.atom })]),
237
259
  varFields: state.varFields,
@@ -325,20 +347,28 @@ function aggregateColumnOf(entry) {
325
347
  }
326
348
  /** Requires a var name to be bound by a relation atom of the rule. */
327
349
  function assertBound(context, varFields, name) {
328
- const field = varFields[name];
329
- if (field === undefined) {
350
+ const slot = varFields[name];
351
+ if (slot === undefined) {
330
352
  throw errors.new(`${context}: the variable ${name} is not bound by a relation atom of the rule`);
331
353
  }
332
- return field;
354
+ return slot;
333
355
  }
334
356
  /** Requires a var name to be bound at an interval field (the measure's and pack's domain). */
335
357
  function assertIntervalBound(context, varFields, name) {
336
- const field = assertBound(context, varFields, name);
337
- if (field.kind !== "interval") {
358
+ const slot = assertBound(context, varFields, name);
359
+ if (slot.field.kind !== "interval") {
338
360
  throw errors.new(`${context}: ${name} is not interval-typed — the measure is defined over interval-typed variables only`);
339
361
  }
340
362
  }
341
- /** Validates one condition's variable references against the rule's bound names. */
363
+ /**
364
+ * Validates one condition's variable references against the rule's bound
365
+ * names — and, for `eq`/`ne` over two variables, holds the class wall: the
366
+ * unification IS a join, so the two slots must be class-equal exactly as a
367
+ * match-reuse join must be (the construction-time twin of the type tier's
368
+ * `EqOk` → `JoinOk`; bare pairs only with bare). The engine cannot backstop
369
+ * this one — the query IR carries no domains — so the wall lives here for
370
+ * untyped callers too.
371
+ */
342
372
  function validateCond(context, varFields, cond) {
343
373
  if (cond.kind === "cmp") {
344
374
  for (const side of [cond.lhs, cond.rhs]) {
@@ -349,6 +379,13 @@ function validateCond(context, varFields, cond) {
349
379
  assertIntervalBound(context, varFields, side.name);
350
380
  }
351
381
  }
382
+ if ((cond.op === "eq" || cond.op === "ne") && cond.lhs.kind === "var" && cond.rhs.kind === "var") {
383
+ const lhs = assertBound(context, varFields, cond.lhs.name);
384
+ const rhs = assertBound(context, varFields, cond.rhs.name);
385
+ if (!fieldJoins(lhs, rhs)) {
386
+ throw errors.new(`${context}: ${cond.op}(${cond.lhs.name}, ${cond.rhs.name}) unifies domain-unequal fields — ${cond.lhs.name} bound at ${renderFieldKind(lhs)}, ${cond.rhs.name} at ${renderFieldKind(rhs)} (a var joins only class-equal slots; bare pairs only with bare)`);
387
+ }
388
+ }
352
389
  return;
353
390
  }
354
391
  for (const child of cond.children) {
@@ -418,8 +455,9 @@ function completeRule(context, state, columns) {
418
455
  if (bound === undefined) {
419
456
  throw errors.new(`${context}: negated ${item.atom.relation.name} atom binds the variable ${binding.term.name} at position ${binding.field}, but no positive atom of the rule binds it — a negated atom binds nothing, only rejects (the safety rule)`);
420
457
  }
421
- if (!fieldJoins(bound, binding.data)) {
422
- throw errors.new(`${context}: negated ${item.atom.relation.name} atom reuses the variable ${binding.term.name} at ${binding.field} (${renderFieldKind(binding.data)}), but the rule binds it at ${renderFieldKind(bound)} — a var joins only domain-equal fields`);
458
+ const negatedSlot = { field: binding.data, class: binding.class };
459
+ if (!fieldJoins(bound, negatedSlot)) {
460
+ throw errors.new(`${context}: negated ${item.atom.relation.name} atom reuses the variable ${binding.term.name} at ${binding.field} (${renderFieldKind(negatedSlot)}), but the rule binds it at ${renderFieldKind(bound)} — a var joins only class-equal slots; bare pairs only with bare`);
423
461
  }
424
462
  }
425
463
  }
@@ -435,9 +473,9 @@ function completeRule(context, state, columns) {
435
473
  if (column === undefined || column.entry.kind !== "var") {
436
474
  return;
437
475
  }
438
- const headField = head?.varFields[column.entry.over];
439
- if (headField !== undefined && !fieldJoins(headField, bound)) {
440
- throw errors.new(`${context}: idb ${item.rec.name} joins the variable ${name} (${renderFieldKind(bound)}) at head position ${position} (${column.name}: ${renderFieldKind(headField)}) — a var joins only domain-equal fields`);
476
+ const headSlot = head?.varFields[column.entry.over];
477
+ if (headSlot !== undefined && !fieldJoins(headSlot, bound)) {
478
+ throw errors.new(`${context}: idb ${item.rec.name} joins the variable ${name} (${renderFieldKind(bound)}) at head position ${position} (${column.name}: ${renderFieldKind(headSlot)}) — a var joins only class-equal slots; bare pairs only with bare`);
441
479
  }
442
480
  });
443
481
  }
@@ -496,10 +534,10 @@ function selectColumns(context, entries) {
496
534
  function makeRawChain(context, state) {
497
535
  const chain = {
498
536
  match(relation, bindings) {
499
- return makeRawChain(context, advanceMatch(state, relation, bindings));
537
+ return makeRawChain(context, advanceMatch(state, relation, bindings, context.classes));
500
538
  },
501
539
  where(cond) {
502
- return makeRawChain(context, advanceWhere(state, cond));
540
+ return makeRawChain(context, advanceWhere(state, cond, context.classes));
503
541
  },
504
542
  idb(target, ...vars) {
505
543
  return makeRawChain(context, idbAdvance(context, state, target, vars));
@@ -516,7 +554,7 @@ function makeRawScope(context) {
516
554
  const scope = {
517
555
  ...termOps,
518
556
  match(relation, bindings) {
519
- return makeRawChain(context, advanceMatch(EMPTY_RULE, relation, bindings));
557
+ return makeRawChain(context, advanceMatch(EMPTY_RULE, relation, bindings, context.classes));
520
558
  }
521
559
  };
522
560
  Object.freeze(scope);
@@ -535,8 +573,8 @@ function isTypedScope(scope) {
535
573
  return typeof scope.match === "function";
536
574
  }
537
575
  /** Builds one query-rule builder (the typed face of the raw builder). */
538
- function makeQueryRuleScope() {
539
- const raw = makeRawScope({ kind: "query" });
576
+ function makeQueryRuleScope(classes) {
577
+ const raw = makeRawScope({ kind: "query", classes });
540
578
  if (!isTypedScope(raw)) {
541
579
  throw errors.new("query rule builder construction incomplete");
542
580
  }
@@ -544,7 +582,7 @@ function makeQueryRuleScope() {
544
582
  }
545
583
  /** Builds one output-rule builder over a program's recs. */
546
584
  function makeOutputRuleScope(program) {
547
- const raw = makeRawScope({ kind: "output", program });
585
+ const raw = makeRawScope({ kind: "output", program, classes: program.classes });
548
586
  if (!isTypedScope(raw)) {
549
587
  throw errors.new("program output rule builder construction incomplete");
550
588
  }
@@ -635,7 +673,7 @@ function makeRawQuery(theory, recs, rules) {
635
673
  schema: theory,
636
674
  data,
637
675
  rule(build) {
638
- const built = build(makeRawScope({ kind: "query" }));
676
+ const built = build(makeRawScope({ kind: "query", classes: theory.classes }));
639
677
  return makeRawQuery(theory, recs, [...rules, built.rule]);
640
678
  }
641
679
  };
@@ -661,12 +699,14 @@ function makeQuery(theory, recs, rules) {
661
699
  /**
662
700
  * Opens a query over a schema: `query(S).rule(r => ...)`. Each `.rule`
663
701
  * adds one conjunctive rule; multiple rules are the set union (answers are
664
- * SETS — no order or limit exists anywhere; hosts sort).
702
+ * SETS — no order or limit exists anywhere; hosts sort). The schema's
703
+ * law-computed class map rides into every rule builder — the join walls
704
+ * compare class names off it, at the type level and at construction alike.
665
705
  */
666
706
  function query(theory) {
667
707
  const start = {
668
708
  rule(build) {
669
- const built = build(makeQueryRuleScope());
709
+ const built = build(makeQueryRuleScope(theory.classes));
670
710
  return makeQuery(theory, [], [built.rule]);
671
711
  }
672
712
  };
@@ -822,7 +862,13 @@ function paramIdOf(ctx, name) {
822
862
  }
823
863
  return id;
824
864
  }
825
- /** Lowers one EDB atom (either polarity). */
865
+ /**
866
+ * Lowers one EDB atom (either polarity). A CLOSED owner lowers through the
867
+ * same edb source — its ordinal is its record-declaration slot exactly like
868
+ * an ordinary relation's — with field ordinals over the SEALED shape: `id`
869
+ * at 0, each payload column at its declared index + 1 (`matchFieldsOf`
870
+ * carries the shift; the lowering golden pins it).
871
+ */
826
872
  function lowerAtom(ctx, atom, ids) {
827
873
  const member = ctx.theory.relations[atom.relation.name];
828
874
  if (member !== atom.relation) {
@@ -832,8 +878,9 @@ function lowerAtom(ctx, atom, ids) {
832
878
  if (relationId === undefined) {
833
879
  throw errors.new(`query lowering: relation ${atom.relation.name} has no ordinal`);
834
880
  }
881
+ const ordered = matchFieldsOf(atom.relation);
835
882
  const bindings = atom.bindings.map(function lowerBinding(binding) {
836
- const ordinal = atom.relation.data.fields.findIndex(function byName(candidate) {
883
+ const ordinal = ordered.findIndex(function byName(candidate) {
837
884
  return candidate.name === binding.field;
838
885
  });
839
886
  if (ordinal < 0) {
@@ -895,7 +942,7 @@ function lowerCmpTerm(ctx, rule, side, sibling, ids, op) {
895
942
  /** Resolves the anchor a comparison literal tags by: the sibling's field, the measure, or an anchored param. */
896
943
  function cmpAnchorOf(ctx, rule, sibling) {
897
944
  if (sibling.kind === "var") {
898
- return rule.varFields[sibling.name];
945
+ return rule.varFields[sibling.name]?.field;
899
946
  }
900
947
  if (sibling.kind === "measure") {
901
948
  return "measure";
@@ -1 +1 @@
1
- {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../src/query/lower.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../src/query/lower.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@
26
26
  * rules use. Everything deeper — strata legality, signature sealing, the
27
27
  * three oracles — is the ENGINE's judge, surfacing typed at prepare.
28
28
  */
29
+ import type { SchemaClasses } from "#law.ts";
29
30
  import type { AnyRuleValue, HeadOf, HeadShape, OutputRuleScope, ParamsOf, Query, RecRef, RecRuleScope, RowOf } from "#query/lower.ts";
30
31
  import type { Flatten, ParamsRecord, ShapeOf } from "#query/scope.ts";
31
32
  import { inferred } from "#query/scope.ts";
@@ -39,35 +40,35 @@ import type { Schema, SchemaRelations } from "#schema.ts";
39
40
  * runtime alignment check's law), so a threaded handle's `idb` joins are
40
41
  * arity- and domain-checked against the head.
41
42
  */
42
- interface Rec<Rels extends SchemaRelations, Name extends string, P extends ParamsRecord, Head extends HeadShape = undefined> extends RecRef<Name, P, Head> {
43
- rule<RV extends AnyRuleValue>(build: (r: RecRuleScope<Rels, Name>) => RV): Rec<Rels, Name, Flatten<P & ParamsOf<RV>>, Head extends undefined ? HeadOf<RV> : Head>;
43
+ interface Rec<Rels extends SchemaRelations, Name extends string, P extends ParamsRecord, Head extends HeadShape = undefined, Classes extends SchemaClasses = SchemaClasses> extends RecRef<Name, P, Head> {
44
+ rule<RV extends AnyRuleValue>(build: (r: RecRuleScope<Rels, Name, Classes>) => RV): Rec<Rels, Name, Flatten<P & ParamsOf<RV>>, Head extends undefined ? HeadOf<RV> : Head, Classes>;
44
45
  readonly [inferred]?: {
45
46
  readonly params: P;
46
47
  readonly head: Head;
47
48
  };
48
49
  }
49
50
  /** One output-rule builder function. */
50
- type OutputBuild<Rels extends SchemaRelations> = (r: OutputRuleScope<Rels>) => AnyRuleValue;
51
+ type OutputBuild<Rels extends SchemaRelations, Classes extends SchemaClasses = SchemaClasses> = (r: OutputRuleScope<Rels, Classes>) => AnyRuleValue;
51
52
  /** A build function's rule value. */
52
53
  type BuiltRule<F> = F extends (r: never) => infer RV ? RV : never;
53
54
  /** The union row of a tuple of output builds. */
54
- type OutputRow<Builds extends readonly OutputBuild<SchemaRelations>[]> = RowOf<BuiltRule<Builds[number]>>;
55
+ type OutputRow<Builds extends readonly OutputBuild<SchemaRelations, SchemaClasses>[]> = RowOf<BuiltRule<Builds[number]>>;
55
56
  /** The intersected params record of a tuple of output builds. */
56
- type OutputParams<Builds extends readonly OutputBuild<SchemaRelations>[]> = ShapeOf<ParamsOf<BuiltRule<Builds[number]>>>;
57
+ type OutputParams<Builds extends readonly OutputBuild<SchemaRelations, SchemaClasses>[]> = ShapeOf<ParamsOf<BuiltRule<Builds[number]>>>;
57
58
  /**
58
59
  * The program scope: declare recs, attach their rules, then declare the
59
60
  * output — which seals the recs (a later `rec`/`rule` is a construction
60
61
  * error) and returns the program as an ordinary query value.
61
62
  */
62
- interface ProgramScope<Rels extends SchemaRelations> {
63
+ interface ProgramScope<Rels extends SchemaRelations, Classes extends SchemaClasses = SchemaClasses> {
63
64
  /** Declares one recursive predicate; declaration order = its dense `PredId`. */
64
- rec<const Name extends string>(name: Name): Rec<Rels, Name, Record<never, never>>;
65
+ rec<const Name extends string>(name: Name): Rec<Rels, Name, Record<never, never>, undefined, Classes>;
65
66
  /**
66
67
  * Declares the output predicate (one rule per build; multiple rules =
67
68
  * set union) and seals the program. Must be what the `program()`
68
69
  * callback returns.
69
70
  */
70
- output<const Builds extends readonly OutputBuild<Rels>[]>(...builds: Builds): Query<Rels, OutputRow<Builds>, OutputParams<Builds>>;
71
+ output<const Builds extends readonly OutputBuild<Rels, Classes>[]>(...builds: Builds): Query<Rels, OutputRow<Builds>, OutputParams<Builds>, Classes>;
71
72
  }
72
73
  /**
73
74
  * Builds a stratified program over a schema. The callback declares recs
@@ -76,7 +77,7 @@ interface ProgramScope<Rels extends SchemaRelations> {
76
77
  * the one `ProgramIr` shape the engine executes under the per-stratum
77
78
  * fixpoint driver.
78
79
  */
79
- declare function program<Rels extends SchemaRelations, Q extends Query<Rels, unknown, ParamsRecord>>(theory: Schema<Rels>, build: (p: ProgramScope<Rels>) => Q): Q;
80
+ declare function program<Rels extends SchemaRelations, Classes extends SchemaClasses, Q extends Query<Rels, unknown, ParamsRecord, Classes>>(theory: Schema<Rels, Classes>, build: (p: ProgramScope<Rels, Classes>) => Q): Q;
80
81
  export type { OutputBuild, ProgramScope, Rec };
81
82
  export { program };
82
83
  //# sourceMappingURL=predicate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../../src/query/predicate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../../src/query/predicate.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ function makeRawRec(state, name, data) {
38
38
  if (state.sealed) {
39
39
  throw errors.new(`rec ${name}: the program's output is already declared — recursive rules attach before p.output`);
40
40
  }
41
- const built = build(makeRawScope({ kind: "rec", self: data }));
41
+ const built = build(makeRawScope({ kind: "rec", self: data, classes: state.classes }));
42
42
  const head = data.rules[0];
43
43
  if (head !== undefined) {
44
44
  const declared = head.select.map(function columnName(column) {
@@ -82,7 +82,7 @@ function makeRec(state, name, data) {
82
82
  * fixpoint driver.
83
83
  */
84
84
  function program(theory, build) {
85
- const state = { recs: [], sealed: false };
85
+ const state = { recs: [], classes: theory.classes, sealed: false };
86
86
  const names = new Set();
87
87
  const made = { query: undefined };
88
88
  const scope = {
@@ -1 +1 @@
1
- {"version":3,"file":"predicate.js","sourceRoot":"","sources":["../../src/query/predicate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predicate.js","sourceRoot":"","sources":["../../src/query/predicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAiB/C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAkE1C,0DAA0D;AAC1D,SAAS,UAAU,CAAsB,KAAmB,EAAE,IAAU,EAAE,IAAa;IACtF,MAAM,GAAG,GAAiB;QACzB,IAAI;QACJ,IAAI;QACJ,IAAI,CAAC,KAAK;YACT,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,GAAG,CACf,OAAO,IAAI,qFAAqF,CAChG,CAAA;YACF,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM;oBAC1D,OAAO,MAAM,CAAC,IAAI,CAAA;gBACnB,CAAC,CAAC,CAAA;gBACF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM;oBACjE,OAAO,MAAM,CAAC,IAAI,CAAA;gBACnB,CAAC,CAAC,CAAA;gBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,MAAM,MAAM,CAAC,GAAG,CACf,OAAO,IAAI,yDAAyD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxI,CAAA;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,UAAU,CAAO,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC;KACD,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAKlB,IAAa,EAAE,GAAiB;IACjC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAA;AACzB,CAAC;AAED,wDAAwD;AACxD,SAAS,OAAO,CAKd,KAAmB,EAAE,IAAU,EAAE,IAAa;IAC/C,MAAM,GAAG,GAAG,UAAU,CAAO,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/C,IAAI,CAAC,WAAW,CAAyB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,kCAAkC,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,SAAS,OAAO,CAId,MAA6B,EAAE,KAA4C;IAC5E,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IAChF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,MAAM,IAAI,GAAuB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACrD,MAAM,KAAK,GAAgC;QAC1C,GAAG,CAA4B,IAAU;YACxC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,GAAG,CAAC,iDAAiD,IAAI,uBAAuB,CAAC,CAAA;YAC/F,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,GAAG,CACf,wBAAwB,IAAI,wEAAwE,CACpG,CAAA;YACF,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACf,MAAM,IAAI,GAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;YACzC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,OAAO,CAA4C,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7E,CAAC;QACD,MAAM,CACL,GAAG,MAAc;YAEjB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAA;YAC5G,CAAC;YACD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;YACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,CAAC,GAAG,CACf,gBAAgB,GAAG,CAAC,IAAI,wEAAwE,CAChG,CAAA;gBACF,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAA;YAChE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,QAAQ;gBACnD,OAAO,QAAQ,CAAC,mBAAmB,CAAgB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAChE,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,GAAG,SAAS,CAAyD,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACtG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;YACd,OAAO,CAAC,CAAA;QACT,CAAC;KACD,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAA;IAClH,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAGD,OAAO,EAAE,OAAO,EAAE,CAAA"}