@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.
- package/COOKBOOK.md +503 -427
- package/README.md +84 -36
- package/dist/closed.d.ts +111 -38
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +94 -99
- package/dist/closed.js.map +1 -1
- package/dist/db.d.ts +16 -2
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +46 -8
- package/dist/db.js.map +1 -1
- package/dist/face.d.ts +114 -69
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +38 -21
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +72 -87
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +35 -67
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +18 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -7
- package/dist/index.js.map +1 -1
- package/dist/law.d.ts +224 -0
- package/dist/law.d.ts.map +1 -0
- package/dist/law.js +224 -0
- package/dist/law.js.map +1 -0
- package/dist/lower.d.ts +17 -10
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +34 -23
- package/dist/lower.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/native.d.ts +6 -2
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +139 -56
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +7 -1
- package/dist/query/atom.js.map +1 -1
- package/dist/query/lower.d.ts +71 -56
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +341 -69
- package/dist/query/lower.js.map +1 -1
- package/dist/query/predicate.d.ts +10 -9
- package/dist/query/predicate.d.ts.map +1 -1
- package/dist/query/predicate.js +2 -2
- package/dist/query/predicate.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 +100 -43
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +89 -30
- package/dist/query/scope.js.map +1 -1
- package/dist/query/select.d.ts +5 -5
- package/dist/query/select.d.ts.map +1 -1
- package/dist/relation.d.ts +29 -15
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +45 -17
- package/dist/relation.js.map +1 -1
- package/dist/schema.d.ts +41 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +16 -2
- package/dist/schema.js.map +1 -1
- package/dist/spec.d.ts +10 -8
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +67 -31
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +97 -20
- package/dist/statements.js.map +1 -1
- package/package.json +2 -2
- package/src/closed.ts +214 -146
- package/src/db.ts +65 -10
- package/src/face.ts +169 -102
- package/src/fields.ts +97 -164
- package/src/index.ts +43 -18
- package/src/law.ts +519 -0
- package/src/lower.ts +36 -23
- package/src/marshal.ts +74 -7
- package/src/native.ts +6 -2
- package/src/query/atom.ts +155 -65
- package/src/query/lower.ts +572 -167
- package/src/query/predicate.ts +43 -33
- package/src/query/run.ts +26 -6
- package/src/query/scope.ts +161 -51
- package/src/query/select.ts +5 -5
- package/src/relation.ts +60 -26
- package/src/schema.ts +48 -7
- package/src/spec.ts +10 -8
- package/src/statements.ts +165 -46
package/dist/statements.js
CHANGED
|
@@ -7,12 +7,22 @@
|
|
|
7
7
|
*
|
|
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
|
-
* compile) and
|
|
11
|
-
* faces' projected
|
|
12
|
-
* (
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* compile) and STRUCTURAL compatibility through {@link SameShapes}: the two
|
|
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
|
|
21
|
+
* NOT compared here — there is no domain to compare at construction: the
|
|
22
|
+
* statements themselves are what define the equivalence classes, and the
|
|
23
|
+
* domain wall lives where they aggregate — `schema()` (the
|
|
24
|
+
* one-generator-per-class law) and query joins (class names off the schema
|
|
25
|
+
* type). What is only a SEMANTIC property — the target side of a
|
|
16
26
|
* containment resolving a declared key of its relation — is DELIBERATELY
|
|
17
27
|
* not (and cannot be) stated here: whether `B(y)` is a key of `B` depends
|
|
18
28
|
* on which `key()` statements the surrounding `schema()` collects, a set no
|
|
@@ -23,6 +33,66 @@
|
|
|
23
33
|
import * as errors from "@superbuilders/errors";
|
|
24
34
|
import { renderFace } from "#face.ts";
|
|
25
35
|
import { renderWindow } from "#spec.ts";
|
|
36
|
+
/**
|
|
37
|
+
* The field descriptor one face position projects: an ordinary relation's
|
|
38
|
+
* declared field; a closed relation's SEALED shape — the synthetic `id`
|
|
39
|
+
* (the value's own roster-carrying descriptor, by identity) or a declared
|
|
40
|
+
* payload column. `undefined` when the name is foreign (the type tier makes
|
|
41
|
+
* that unwritable; the engine re-judges projections at `Db.create`).
|
|
42
|
+
*/
|
|
43
|
+
function projectedFieldOf(face, fieldName) {
|
|
44
|
+
const owner = face.owner;
|
|
45
|
+
if ("axioms" in owner) {
|
|
46
|
+
if (fieldName === "id") {
|
|
47
|
+
return owner.id;
|
|
48
|
+
}
|
|
49
|
+
const column = owner.data.columns.find(function byName(candidate) {
|
|
50
|
+
return candidate.name === fieldName;
|
|
51
|
+
});
|
|
52
|
+
return column?.field;
|
|
53
|
+
}
|
|
54
|
+
const declared = owner.data.fields.find(function byName(candidate) {
|
|
55
|
+
return candidate.name === fieldName;
|
|
56
|
+
});
|
|
57
|
+
return declared?.field;
|
|
58
|
+
}
|
|
59
|
+
/** The roster a descriptor carries: present exactly on a closed reference, absent on every other kind. */
|
|
60
|
+
function rosterOfField(field) {
|
|
61
|
+
if (field !== undefined && "closed" in field) {
|
|
62
|
+
return field.closed;
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/** Renders one face position's closedness for the roster-agreement diagnostics. */
|
|
67
|
+
function renderRosterSide(roster) {
|
|
68
|
+
return roster === undefined ? "a bare column" : `a ${roster.name} reference`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The runtime twin of {@link SameShapes}'s roster slot: the two faces'
|
|
72
|
+
* projected descriptors must agree POSITIONWISE on closedness — the same
|
|
73
|
+
* roster (value identity — vocabulary identity is value identity, the
|
|
74
|
+
* SDK's membership rule everywhere) or none. Without this wall a plain u64
|
|
75
|
+
* column could alias a closed vocabulary through a declared containment
|
|
76
|
+
* (`docs/architecture/10-data-model.md` spells the ENGINE encoding that
|
|
77
|
+
* way), and every descriptor-keyed closed judgment — the orderable ban,
|
|
78
|
+
* the name↔id marshal, answer decode — would silently miss it. The
|
|
79
|
+
* vocabulary's own descriptor (`Kind.id`) is the ONE spelling of a closed
|
|
80
|
+
* reference at this surface (the canonical-utterance law); the engine
|
|
81
|
+
* cannot backstop this one — the wire carries plain u64s, no rosters.
|
|
82
|
+
*/
|
|
83
|
+
function assertRosterAgreement(source, target, statement) {
|
|
84
|
+
source.projection.forEach(function agreeAt(fieldName, position) {
|
|
85
|
+
const targetField = target.projection[position];
|
|
86
|
+
if (targetField === undefined) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const sourceRoster = rosterOfField(projectedFieldOf(source, fieldName));
|
|
90
|
+
const targetRoster = rosterOfField(projectedFieldOf(target, targetField));
|
|
91
|
+
if (sourceRoster !== targetRoster) {
|
|
92
|
+
throw errors.new(`${source.owner.name}.${fieldName} is ${renderRosterSide(sourceRoster)} but ${target.owner.name}.${targetField} is ${renderRosterSide(targetRoster)} — closedness rides the descriptor: a closed reference is spelled with the vocabulary's own id descriptor (one meaning, one spelling), so faces pair closed-with-closed through one roster or bare-with-bare, never across — ${renderStatement(statement)}`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
26
96
|
/**
|
|
27
97
|
* `R(X) -> R` — the FD key form, composite keys as tuples. No selection
|
|
28
98
|
* parameter exists (the FD-with-selection shape is unrepresentable, as in
|
|
@@ -31,7 +101,7 @@ import { renderWindow } from "#spec.ts";
|
|
|
31
101
|
* explicit one would only ever be a duplicate. Every projected name is
|
|
32
102
|
* checked against `R`'s field block in the type, and the tuple is carried
|
|
33
103
|
* in the returned value's type ({@link KeyStatement}) — keyed point reads
|
|
34
|
-
* through THIS statement are typed field-for-field,
|
|
104
|
+
* through THIS statement are typed field-for-field, descriptors resolvable
|
|
35
105
|
* through the owner's schema type.
|
|
36
106
|
*/
|
|
37
107
|
function key(relation, fields) {
|
|
@@ -47,12 +117,12 @@ function key(relation, fields) {
|
|
|
47
117
|
}
|
|
48
118
|
/**
|
|
49
119
|
* `A(X|φ) <= B(Y|ψ)` — conditional inclusion, source left. Arity mismatch
|
|
50
|
-
* between the two faces is a type error ({@link SameArity}); a
|
|
51
|
-
* pair is a type error ({@link
|
|
52
|
-
* equality of the projected
|
|
53
|
-
* resolve a declared key of B — a SEMANTIC property of the whole
|
|
54
|
-
* set that no face type can state, DELIBERATELY judged by the
|
|
55
|
-
* `Db.create`/`Db.open` (`SchemaError`), never re-checked here.
|
|
120
|
+
* between the two faces is a type error ({@link SameArity}); a structurally
|
|
121
|
+
* mismatched pair is a type error ({@link SameShapes} — positionwise
|
|
122
|
+
* equality of the projected kind/width/element triples). The target side
|
|
123
|
+
* must resolve a declared key of B — a SEMANTIC property of the whole
|
|
124
|
+
* statement set that no face type can state, DELIBERATELY judged by the
|
|
125
|
+
* engine at `Db.create`/`Db.open` (`SchemaError`), never re-checked here.
|
|
56
126
|
*/
|
|
57
127
|
function contained(source, target) {
|
|
58
128
|
const data = Object.freeze({
|
|
@@ -61,7 +131,9 @@ function contained(source, target) {
|
|
|
61
131
|
target: target.data,
|
|
62
132
|
bidirectional: false
|
|
63
133
|
});
|
|
64
|
-
|
|
134
|
+
const statement = Object.freeze({ data });
|
|
135
|
+
assertRosterAgreement(data.source, data.target, statement);
|
|
136
|
+
return statement;
|
|
65
137
|
}
|
|
66
138
|
/**
|
|
67
139
|
* `A(X|φ) == B(Y|ψ)` — the bidirectional abbreviation, one utterance: the
|
|
@@ -69,8 +141,8 @@ function contained(source, target) {
|
|
|
69
141
|
* two faces (each side contains the other). It lowers to the two adjacent
|
|
70
142
|
* containments in the `A <= B` first order (macro parity — the engine
|
|
71
143
|
* performs the split, source-first) and renders as `==` once, in the
|
|
72
|
-
* written orientation. Faces pair by arity AND
|
|
73
|
-
* {@link contained}.
|
|
144
|
+
* written orientation. Faces pair by arity AND structural shape, exactly
|
|
145
|
+
* as {@link contained}.
|
|
74
146
|
*/
|
|
75
147
|
function mirrors(source, target) {
|
|
76
148
|
const data = Object.freeze({
|
|
@@ -79,7 +151,9 @@ function mirrors(source, target) {
|
|
|
79
151
|
target: target.data,
|
|
80
152
|
bidirectional: true
|
|
81
153
|
});
|
|
82
|
-
|
|
154
|
+
const statement = Object.freeze({ data });
|
|
155
|
+
assertRosterAgreement(data.source, data.target, statement);
|
|
156
|
+
return statement;
|
|
83
157
|
}
|
|
84
158
|
/**
|
|
85
159
|
* `B(Y|ψ) <={window} A(X|φ)` — the cardinality window. READ CAREFULLY: the
|
|
@@ -87,8 +161,9 @@ function mirrors(source, target) {
|
|
|
87
161
|
* target-left — macro parity), and the RIGHT face is the counted source.
|
|
88
162
|
* `window(on(Holder, "id"), atMost(3n), on(Account, "holder"))` says: each
|
|
89
163
|
* Holder id groups at most three Account rows by holder. The two faces
|
|
90
|
-
* pair by arity AND
|
|
91
|
-
* the grouping join reads the same positionwise field
|
|
164
|
+
* pair by arity AND structural shape ({@link SameShapes}), exactly as
|
|
165
|
+
* containment — the grouping join reads the same positionwise field
|
|
166
|
+
* pairing.
|
|
92
167
|
*/
|
|
93
168
|
function window(target, count, source) {
|
|
94
169
|
const data = Object.freeze({
|
|
@@ -97,7 +172,9 @@ function window(target, count, source) {
|
|
|
97
172
|
window: count.window,
|
|
98
173
|
source: source.data
|
|
99
174
|
});
|
|
100
|
-
|
|
175
|
+
const statement = Object.freeze({ data });
|
|
176
|
+
assertRosterAgreement(data.source, data.target, statement);
|
|
177
|
+
return statement;
|
|
101
178
|
}
|
|
102
179
|
/**
|
|
103
180
|
* Renders one statement in the CANONICAL macro spelling
|
package/dist/statements.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bjornpagen/bumbledb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Type-theoretic TypeScript SDK for the bumbledb embedded relational engine",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@superbuilders/errors": "^4.0.2"
|
|
45
45
|
},
|
|
46
46
|
"optionalDependencies": {
|
|
47
|
-
"@bjornpagen/bumbledb-darwin-arm64": "0.
|
|
47
|
+
"@bjornpagen/bumbledb-darwin-arm64": "0.4.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@biomejs/biome": "^2.0.0-beta.5",
|