@bjornpagen/bumbledb 0.14.0 → 0.17.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 +58 -62
- package/README.md +82 -56
- package/dist/capacity.d.ts +24 -136
- package/dist/capacity.d.ts.map +1 -1
- package/dist/capacity.js +18 -40
- package/dist/capacity.js.map +1 -1
- package/dist/closed.d.ts +0 -156
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +0 -104
- package/dist/closed.js.map +1 -1
- package/dist/db.d.ts +93 -290
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +713 -556
- package/dist/db.js.map +1 -1
- package/dist/face.d.ts +0 -133
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +0 -33
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +1 -145
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +2 -91
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +13 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -20
- package/dist/index.js.map +1 -1
- package/dist/law.d.ts +111 -93
- package/dist/law.d.ts.map +1 -1
- package/dist/law.js +23 -27
- package/dist/law.js.map +1 -1
- package/dist/lower.d.ts +9 -35
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +8 -53
- package/dist/lower.js.map +1 -1
- package/dist/marshal.d.ts +0 -65
- package/dist/marshal.d.ts.map +1 -1
- package/dist/marshal.js +0 -72
- package/dist/marshal.js.map +1 -1
- package/dist/native.d.ts +97 -390
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js +39 -61
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +10 -276
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +1 -96
- package/dist/query/atom.js.map +1 -1
- package/dist/query/find.d.ts +10 -76
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +0 -30
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +64 -146
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +19 -256
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts +0 -7
- package/dist/query/parse-ir.d.ts.map +1 -1
- package/dist/query/parse-ir.js +1 -13
- package/dist/query/parse-ir.js.map +1 -1
- package/dist/query/run.d.ts +0 -36
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +0 -44
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +24 -180
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +2 -66
- package/dist/query/scope.js.map +1 -1
- package/dist/relation.d.ts +2 -50
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +2 -37
- package/dist/relation.js.map +1 -1
- package/dist/schema.d.ts +13 -63
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +118 -92
- package/dist/schema.js.map +1 -1
- package/dist/spec.d.ts +1 -140
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +1 -68
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +6 -137
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +16 -119
- package/dist/statements.js.map +1 -1
- package/package.json +3 -3
- package/src/capacity.ts +26 -140
- package/src/closed.ts +5 -206
- package/src/db.ts +997 -854
- package/src/face.ts +0 -142
- package/src/fields.ts +4 -172
- package/src/index.ts +32 -35
- package/src/law.ts +201 -129
- package/src/lower.ts +8 -53
- package/src/marshal.ts +1 -85
- package/src/native.ts +192 -413
- package/src/query/atom.ts +26 -313
- package/src/query/find.ts +24 -110
- package/src/query/lower.ts +132 -377
- package/src/query/parse-ir.ts +1 -14
- package/src/query/run.ts +0 -45
- package/src/query/scope.ts +25 -186
- package/src/relation.ts +2 -66
- package/src/schema.ts +143 -122
- package/src/spec.ts +1 -160
- package/src/statements.ts +22 -174
- package/dist/exhume.d.ts +0 -143
- package/dist/exhume.d.ts.map +0 -1
- package/dist/exhume.js +0 -166
- package/dist/exhume.js.map +0 -1
- package/src/exhume.ts +0 -267
package/dist/fields.d.ts
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Field descriptors — the value half of the `schema!` field grammar
|
|
3
|
-
* (`docs/architecture/70-api.md`), MINIMAL edition: `bool`, `u64`, `i64`,
|
|
4
|
-
* `str`, `bytes(n)`, `interval(u64|i64[, width])`, each a plain frozen value
|
|
5
|
-
* that IS its own descriptor type — `{ kind, width?, element?, fresh? }` —
|
|
6
|
-
* honest at runtime and in the type alike. A field's VALUE type is its bare
|
|
7
|
-
* structural type (`u64` → `bigint`, `str` → `string`, `bytes(n)` →
|
|
8
|
-
* `Uint8Array`, intervals → `{ start, end }`): no brands, no phantoms, no
|
|
9
|
-
* minting casts. A descriptor carries STRUCTURE ONLY — domains are never
|
|
10
|
-
* declared anywhere (the owner ruling: THE LAWS TYPE THE COLUMNS): a
|
|
11
|
-
* field's domain is COMPUTED by `schema()` from the statement list, where
|
|
12
|
-
* the dependencies themselves induce the equivalence classes. The macro's
|
|
13
|
-
* refusals are reproduced representationally: `.fresh` exists only on u64,
|
|
14
|
-
* and no field-level constraint vocabulary of any kind exists —
|
|
15
|
-
* `unique`/`fk` are unwritable, not rejected.
|
|
16
|
-
*/
|
|
17
1
|
import type { LiteralSpec } from "./spec.js";
|
|
18
2
|
/**
|
|
19
3
|
* A half-open interval `[start, end)` as a plain value object — the ONE
|
|
@@ -21,7 +5,7 @@ import type { LiteralSpec } from "./spec.js";
|
|
|
21
5
|
* The ray is representable (`end` = the element type's MAX_END); widths
|
|
22
6
|
* and signedness are NOT modeled on the value — they are descriptor-type
|
|
23
7
|
* labels the engine judges at the typed write boundary. Interval fields
|
|
24
|
-
* derive no order (the Rust refusal
|
|
8
|
+
* derive no order (the Rust refusal,,
|
|
25
9
|
* so no comparators exist on the value type.
|
|
26
10
|
*/
|
|
27
11
|
interface IntervalValue {
|
|
@@ -36,107 +20,41 @@ interface IntervalValue {
|
|
|
36
20
|
* structural: it is assignable to any interval field.
|
|
37
21
|
*/
|
|
38
22
|
declare function span(start: bigint, end: bigint): IntervalValue;
|
|
39
|
-
/**
|
|
40
|
-
* A closed relation's roster as seen from a referencing field: the handle
|
|
41
|
-
* namespace `where()` selections and ground axioms resolve bare handle ids
|
|
42
|
-
* through (the macro's own rule: a handle is legal exactly on a field that
|
|
43
|
-
* references a closed relation). The roster is PRECISE in BOTH slots —
|
|
44
|
-
* `Name` carries the vocabulary's literal name and `H` the literal handle
|
|
45
|
-
* names in declaration order (the unbound `string` defaults exist only as
|
|
46
|
-
* the fallback where no roster is in scope). The name literal is
|
|
47
|
-
* load-bearing: the runtime twins judge roster VALUE IDENTITY, so two
|
|
48
|
-
* same-shaped vocabularies (`Yes/No` twice) are distinct — carrying the
|
|
49
|
-
* name makes the type the faithful encoding of that judgment, and a
|
|
50
|
-
* cross-vocabulary pairing fails at compile time, not construction. The
|
|
51
|
-
* runtime twin is the same frozen declaration-order value that was always
|
|
52
|
-
* there.
|
|
53
|
-
*/
|
|
54
23
|
interface ClosedRoster<Name extends string = string, H extends string = string> {
|
|
55
24
|
readonly name: Name;
|
|
56
25
|
readonly handles: readonly H[];
|
|
57
26
|
}
|
|
58
|
-
/** The `bool` field descriptor: value type `boolean`. No `.fresh` (macro parity). */
|
|
59
27
|
interface BoolField {
|
|
60
28
|
readonly kind: "bool";
|
|
61
29
|
}
|
|
62
|
-
/** The `str` field descriptor: value type `string`. No `.fresh` (macro parity). */
|
|
63
30
|
interface StrField {
|
|
64
31
|
readonly kind: "str";
|
|
65
32
|
}
|
|
66
|
-
/**
|
|
67
|
-
* A `fresh`-marked u64 field descriptor — `id: u64.fresh`. The mark is a
|
|
68
|
-
* structural label (`fresh: true`) in the descriptor type AND on the
|
|
69
|
-
* runtime value; it implies the key `R(field) -> R`, which the ENGINE
|
|
70
|
-
* materializes (`SchemaDescriptor::materialized_statements`), and it makes
|
|
71
|
-
* the field a GENERATOR — `schema()` names its equivalence class by the
|
|
72
|
-
* declaration coordinate (`"Account.id"`). Terminal: no builder property
|
|
73
|
-
* survives the mark.
|
|
74
|
-
*/
|
|
75
33
|
interface FreshU64Field {
|
|
76
34
|
readonly kind: "u64";
|
|
77
35
|
readonly fresh: true;
|
|
78
36
|
}
|
|
79
|
-
/**
|
|
80
|
-
* The `u64` field descriptor. `.fresh` marks the field as engine-minted —
|
|
81
|
-
* the property doubles as the mark itself: on an unmarked descriptor it
|
|
82
|
-
* holds the marked descriptor, on a marked one it IS the literal `true`
|
|
83
|
-
* (one structural property, read either way).
|
|
84
|
-
*/
|
|
85
37
|
interface U64Field {
|
|
86
38
|
readonly kind: "u64";
|
|
87
39
|
readonly fresh: FreshU64Field;
|
|
88
40
|
}
|
|
89
|
-
/** The `i64` field descriptor. Terminal: `.fresh` is legal on u64 only. */
|
|
90
41
|
interface I64Field {
|
|
91
42
|
readonly kind: "i64";
|
|
92
43
|
}
|
|
93
|
-
/**
|
|
94
|
-
* A `bytes<N>` field descriptor. The width is a descriptor-type label
|
|
95
|
-
* (load-bearing: the engine enforces it at the write boundary) and the
|
|
96
|
-
* value type is bare `Uint8Array`. No order is derived — no comparators
|
|
97
|
-
* exist on the value type (the engine refuses order on bytes).
|
|
98
|
-
*/
|
|
99
44
|
interface BytesField<Width extends number = number> {
|
|
100
45
|
readonly kind: "bytes";
|
|
101
46
|
readonly width: Width;
|
|
102
47
|
}
|
|
103
|
-
/**
|
|
104
|
-
* An interval field descriptor — `interval(i64)` general (rays
|
|
105
|
-
* representable), `interval(u64, w)` the fixed-width family. Element and
|
|
106
|
-
* width are descriptor-type labels; the value type is always the bare
|
|
107
|
-
* {@link IntervalValue}.
|
|
108
|
-
*/
|
|
109
48
|
interface IntervalField<Element extends "u64" | "i64" = "u64" | "i64", Width extends bigint | undefined = bigint | undefined> {
|
|
110
49
|
readonly kind: "interval";
|
|
111
50
|
readonly element: Element;
|
|
112
51
|
readonly width: Width;
|
|
113
52
|
}
|
|
114
|
-
/**
|
|
115
|
-
* A closed relation's reference field descriptor (`Kind.id`) — a u64
|
|
116
|
-
* descriptor carrying the closed linkage: the roster resolves handle
|
|
117
|
-
* literals in selections and ground axioms, and `schema()` names the id's
|
|
118
|
-
* generator class `"Kind.id"`. The handle union `H` is the field's VALUE
|
|
119
|
-
* TYPE (see {@link Infer}); `kind: "u64"` stays load-bearing for the class
|
|
120
|
-
* map and JoinOk, which compare kind/class/width/element. Terminal: no
|
|
121
|
-
* `.fresh` — a vocabulary's rows are ground axioms, never minted.
|
|
122
|
-
*/
|
|
123
53
|
interface ClosedIdField<Name extends string = string, H extends string = string> {
|
|
124
54
|
readonly kind: "u64";
|
|
125
55
|
readonly closed: ClosedRoster<Name, H>;
|
|
126
56
|
}
|
|
127
|
-
/** Any field descriptor, whatever its kind or marks. */
|
|
128
57
|
type AnyField = BoolField | StrField | U64Field | FreshU64Field | I64Field | BytesField | IntervalField | ClosedIdField;
|
|
129
|
-
/**
|
|
130
|
-
* The bare structural VALUE type of a field descriptor — the one total
|
|
131
|
-
* definition every fact, result row, and query term reads: `bool` →
|
|
132
|
-
* `boolean`, `str` → `string`, `u64`/`i64` → `bigint`, `bytes<N>` →
|
|
133
|
-
* `Uint8Array`, intervals → {@link IntervalValue}, and a closed reference →
|
|
134
|
-
* its PRECISE handle union (`"DirectPass" | "Failed"` — the string-literal
|
|
135
|
-
* union IS the value type at the TS surface; the engine keeps u64 row ids
|
|
136
|
-
* and the marshal owns the bijection). The closed arm precedes the `u64`
|
|
137
|
-
* arm because a closed reference is structurally a u64 descriptor plus the
|
|
138
|
-
* roster.
|
|
139
|
-
*/
|
|
140
58
|
type Infer<F extends AnyField> = F extends {
|
|
141
59
|
readonly kind: "bool";
|
|
142
60
|
} ? boolean : F extends {
|
|
@@ -161,79 +79,17 @@ type Infer<F extends AnyField> = F extends {
|
|
|
161
79
|
* through ill-typed input (the well-typed surfaces make it unrepresentable).
|
|
162
80
|
*/
|
|
163
81
|
declare function literalShapeError(context: string, expected: string, value: unknown): Error;
|
|
164
|
-
/**
|
|
165
|
-
* The roster a field descriptor carries — THE one reader: present exactly
|
|
166
|
-
* on a closed-reference descriptor (the structural `closed` property of
|
|
167
|
-
* {@link ClosedIdField}), absent on every other field kind. Tolerates
|
|
168
|
-
* `undefined` so name-lookup misses flow through without a re-spelled
|
|
169
|
-
* probe at every call site.
|
|
170
|
-
*/
|
|
171
82
|
declare function rosterOf(field: AnyField | undefined): ClosedRoster | undefined;
|
|
172
|
-
/** Narrows an interval-shaped value: a plain object with bigint start/end — THE one interval predicate. */
|
|
173
83
|
declare function isIntervalValue(value: unknown): value is IntervalValue;
|
|
174
|
-
/**
|
|
175
|
-
* Rejects a declaration name that JavaScript would re-order, and a name
|
|
176
|
-
* that would break the class map's coordinate encoding. Declaration order =
|
|
177
|
-
* ordinal ids is the law relations, columns, and schemas all lean on, and
|
|
178
|
-
* it is carried by object-literal key order — which ECMA-262's
|
|
179
|
-
* OrdinaryOwnPropertyKeys breaks for integer-index keys (they enumerate
|
|
180
|
-
* first, ascending, regardless of where they were written). A `.` in a name
|
|
181
|
-
* would make the law engine's `${relation}.${field}` coordinate template
|
|
182
|
-
* non-injective at BOTH tiers (relation `"A.B"` field `"x"` and relation
|
|
183
|
-
* `"A"` field `"B.x"` are one coordinate), silently merging unrelated law
|
|
184
|
-
* classes — banned here, which is exact macro parity: Rust identifiers
|
|
185
|
-
* cannot contain dots. Both are construction errors, exactly as an
|
|
186
|
-
* unparseable name is a macro expansion error.
|
|
187
|
-
*/
|
|
188
84
|
declare function assertDeclarationOrderKey(where: string, name: string): void;
|
|
189
|
-
/**
|
|
190
|
-
* Rejects a declaration record whose prototype was replaced. A plain
|
|
191
|
-
* `__proto__: {...}` property in an object literal is ECMA-262 Annex B's
|
|
192
|
-
* prototype SETTER, not a data property — the entry never becomes an own
|
|
193
|
-
* enumerable key, so the declared handle/field/relation would silently
|
|
194
|
-
* vanish from every `Object.keys`/`Object.entries` walk while the type
|
|
195
|
-
* tier still admits its name. A non-default prototype on a declaration
|
|
196
|
-
* literal proves exactly that spelling, so it is a construction error; the
|
|
197
|
-
* computed spelling `["__proto__"]: {...}` creates an own data property
|
|
198
|
-
* and is admitted (no name is reserved). `Object.create(null)` records
|
|
199
|
-
* stay admissible.
|
|
200
|
-
*/
|
|
201
85
|
declare function assertDeclarationRecord(where: string, record: object): void;
|
|
202
|
-
/** The one `u64` constructor value. */
|
|
203
86
|
declare const u64: U64Field;
|
|
204
|
-
/** The one `i64` constructor value. */
|
|
205
87
|
declare const i64: I64Field;
|
|
206
|
-
/** The one `bool` constructor value. */
|
|
207
88
|
declare const bool: BoolField;
|
|
208
|
-
/** The one `str` constructor value. */
|
|
209
89
|
declare const str: StrField;
|
|
210
|
-
/**
|
|
211
|
-
* The `bytes<N>` field constructor. The width is mandatory and a
|
|
212
|
-
* descriptor-type label; `width` is validated to 1..=64 here because the
|
|
213
|
-
* grammar pins that range at declaration (`docs/architecture/70-api.md`
|
|
214
|
-
* § the `schema!` grammar: N ∈ 1..=64 — bare `bytes` does not parse), the
|
|
215
|
-
* macro-expansion boundary's analog being construction.
|
|
216
|
-
*/
|
|
217
90
|
declare function bytes<const Width extends number>(width: Width): BytesField<Width>;
|
|
218
|
-
/**
|
|
219
|
-
* The interval field constructor — `interval(u64)` / `interval(i64)` for
|
|
220
|
-
* the general type (rays representable), `interval(u64, w)` for the
|
|
221
|
-
* fixed-width family whose width IS a descriptor-type label. The element is
|
|
222
|
-
* spelled with the u64/i64 constructor values themselves, never a string.
|
|
223
|
-
* `width >= 1` is validated here because the grammar pins it at declaration
|
|
224
|
-
* (`docs/architecture/70-api.md`: w ≥ 1; `interval<u64, 0>` is an
|
|
225
|
-
* expansion error naming the field).
|
|
226
|
-
*/
|
|
227
91
|
declare function interval<Element extends U64Field | I64Field>(element: Element): IntervalField<Element["kind"], undefined>;
|
|
228
92
|
declare function interval<Element extends U64Field | I64Field, const Width extends bigint>(element: Element, width: Width): IntervalField<Element["kind"], Width>;
|
|
229
|
-
/**
|
|
230
|
-
* Lowers one host literal at its field position to the wire
|
|
231
|
-
* {@link LiteralSpec} — the selection-literal machine ground axioms and
|
|
232
|
-
* `where()` bindings both ride (one machine, same errors — the macro's own
|
|
233
|
-
* rule). A value on a closed-reference field IS its handle NAME (verified
|
|
234
|
-
* against the roster: an unknown name is a construction error); everything
|
|
235
|
-
* else lowers to a plain value tagged by the field's structural kind.
|
|
236
|
-
*/
|
|
237
93
|
declare function literalOf(field: AnyField, value: unknown): LiteralSpec;
|
|
238
94
|
export type { AnyField, BoolField, BytesField, ClosedIdField, ClosedRoster, FreshU64Field, I64Field, Infer, IntervalField, IntervalValue, StrField, U64Field };
|
|
239
95
|
export { assertDeclarationOrderKey, assertDeclarationRecord, bool, bytes, i64, interval, isIntervalValue, literalOf, literalShapeError, rosterOf, span, str, u64 };
|
package/dist/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/fields.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Field descriptors — the value half of the `schema!` field grammar
|
|
3
|
-
* (`docs/architecture/70-api.md`), MINIMAL edition: `bool`, `u64`, `i64`,
|
|
4
|
-
* `str`, `bytes(n)`, `interval(u64|i64[, width])`, each a plain frozen value
|
|
5
|
-
* that IS its own descriptor type — `{ kind, width?, element?, fresh? }` —
|
|
6
|
-
* honest at runtime and in the type alike. A field's VALUE type is its bare
|
|
7
|
-
* structural type (`u64` → `bigint`, `str` → `string`, `bytes(n)` →
|
|
8
|
-
* `Uint8Array`, intervals → `{ start, end }`): no brands, no phantoms, no
|
|
9
|
-
* minting casts. A descriptor carries STRUCTURE ONLY — domains are never
|
|
10
|
-
* declared anywhere (the owner ruling: THE LAWS TYPE THE COLUMNS): a
|
|
11
|
-
* field's domain is COMPUTED by `schema()` from the statement list, where
|
|
12
|
-
* the dependencies themselves induce the equivalence classes. The macro's
|
|
13
|
-
* refusals are reproduced representationally: `.fresh` exists only on u64,
|
|
14
|
-
* and no field-level constraint vocabulary of any kind exists —
|
|
15
|
-
* `unique`/`fk` are unwritable, not rejected.
|
|
16
|
-
*/
|
|
17
1
|
import * as errors from "@superbuilders/errors";
|
|
18
2
|
/**
|
|
19
3
|
* Constructs an interval literal — the `start..end` spelling. Half-open
|
|
@@ -37,20 +21,12 @@ function span(start, end) {
|
|
|
37
21
|
function literalShapeError(context, expected, value) {
|
|
38
22
|
return errors.new(`${context}: expected ${expected}, got ${typeof value}`);
|
|
39
23
|
}
|
|
40
|
-
/**
|
|
41
|
-
* The roster a field descriptor carries — THE one reader: present exactly
|
|
42
|
-
* on a closed-reference descriptor (the structural `closed` property of
|
|
43
|
-
* {@link ClosedIdField}), absent on every other field kind. Tolerates
|
|
44
|
-
* `undefined` so name-lookup misses flow through without a re-spelled
|
|
45
|
-
* probe at every call site.
|
|
46
|
-
*/
|
|
47
24
|
function rosterOf(field) {
|
|
48
25
|
if (field !== undefined && "closed" in field) {
|
|
49
26
|
return field.closed;
|
|
50
27
|
}
|
|
51
28
|
return undefined;
|
|
52
29
|
}
|
|
53
|
-
/** Narrows an interval-shaped value: a plain object with bigint start/end — THE one interval predicate. */
|
|
54
30
|
function isIntervalValue(value) {
|
|
55
31
|
return (typeof value === "object" &&
|
|
56
32
|
value !== null &&
|
|
@@ -59,15 +35,6 @@ function isIntervalValue(value) {
|
|
|
59
35
|
typeof value.start === "bigint" &&
|
|
60
36
|
typeof value.end === "bigint");
|
|
61
37
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolves one closed-handle literal: the handle NAME, verified against the
|
|
64
|
-
* roster — an unknown name is a construction error, the belt the wide
|
|
65
|
-
* fallback type deliberately does not provide (structural values make any
|
|
66
|
-
* string spellable here; the roster judges). The name IS the value at the
|
|
67
|
-
* TS surface (the drizzle law); the wire literal already crossed as
|
|
68
|
-
* `{ kind: "handle", handle }`, so the output — and every fingerprint
|
|
69
|
-
* derived from it — is untouched.
|
|
70
|
-
*/
|
|
71
38
|
function handleLiteral(closed, value) {
|
|
72
39
|
if (typeof value !== "string") {
|
|
73
40
|
throw literalShapeError("selection literal", `a ${closed.name} handle name (string)`, value);
|
|
@@ -77,7 +44,6 @@ function handleLiteral(closed, value) {
|
|
|
77
44
|
}
|
|
78
45
|
return { kind: "handle", handle: value };
|
|
79
46
|
}
|
|
80
|
-
/** Lowers one interval literal at its element type. */
|
|
81
47
|
function intervalLiteral(element, value) {
|
|
82
48
|
if (!isIntervalValue(value)) {
|
|
83
49
|
throw literalShapeError("selection literal", "interval ({ start, end } bigints)", value);
|
|
@@ -87,20 +53,6 @@ function intervalLiteral(element, value) {
|
|
|
87
53
|
}
|
|
88
54
|
return { kind: "value", value: { kind: "intervalI64", start: value.start, end: value.end } };
|
|
89
55
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Rejects a declaration name that JavaScript would re-order, and a name
|
|
92
|
-
* that would break the class map's coordinate encoding. Declaration order =
|
|
93
|
-
* ordinal ids is the law relations, columns, and schemas all lean on, and
|
|
94
|
-
* it is carried by object-literal key order — which ECMA-262's
|
|
95
|
-
* OrdinaryOwnPropertyKeys breaks for integer-index keys (they enumerate
|
|
96
|
-
* first, ascending, regardless of where they were written). A `.` in a name
|
|
97
|
-
* would make the law engine's `${relation}.${field}` coordinate template
|
|
98
|
-
* non-injective at BOTH tiers (relation `"A.B"` field `"x"` and relation
|
|
99
|
-
* `"A"` field `"B.x"` are one coordinate), silently merging unrelated law
|
|
100
|
-
* classes — banned here, which is exact macro parity: Rust identifiers
|
|
101
|
-
* cannot contain dots. Both are construction errors, exactly as an
|
|
102
|
-
* unparseable name is a macro expansion error.
|
|
103
|
-
*/
|
|
104
56
|
function assertDeclarationOrderKey(where, name) {
|
|
105
57
|
if (/^(?:0|[1-9][0-9]*)$/.test(name)) {
|
|
106
58
|
throw errors.new(`${where}: name ${name} is an integer index — JavaScript object keys re-order integer indices, breaking the declaration-order law; use a non-numeric name`);
|
|
@@ -109,44 +61,20 @@ function assertDeclarationOrderKey(where, name) {
|
|
|
109
61
|
throw errors.new(`${where}: name ${name} contains a dot — the law classes key on the \`relation.field\` coordinate, so a dotted name would alias unrelated slots (macro parity: Rust identifiers cannot contain dots); use a dot-free name`);
|
|
110
62
|
}
|
|
111
63
|
}
|
|
112
|
-
/**
|
|
113
|
-
* Rejects a declaration record whose prototype was replaced. A plain
|
|
114
|
-
* `__proto__: {...}` property in an object literal is ECMA-262 Annex B's
|
|
115
|
-
* prototype SETTER, not a data property — the entry never becomes an own
|
|
116
|
-
* enumerable key, so the declared handle/field/relation would silently
|
|
117
|
-
* vanish from every `Object.keys`/`Object.entries` walk while the type
|
|
118
|
-
* tier still admits its name. A non-default prototype on a declaration
|
|
119
|
-
* literal proves exactly that spelling, so it is a construction error; the
|
|
120
|
-
* computed spelling `["__proto__"]: {...}` creates an own data property
|
|
121
|
-
* and is admitted (no name is reserved). `Object.create(null)` records
|
|
122
|
-
* stay admissible.
|
|
123
|
-
*/
|
|
124
64
|
function assertDeclarationRecord(where, record) {
|
|
125
65
|
const proto = Object.getPrototypeOf(record);
|
|
126
66
|
if (proto !== Object.prototype && proto !== null) {
|
|
127
67
|
throw errors.new(`${where}: the declaration record's prototype was replaced — a plain \`__proto__: {...}\` entry is the prototype setter, so its key silently vanishes from the declaration; spell it computed (["__proto__"]: {...}) to declare it as data`);
|
|
128
68
|
}
|
|
129
69
|
}
|
|
130
|
-
/** The one fresh-marked u64 descriptor (the `.fresh` property of the unmarked one). */
|
|
131
70
|
const freshU64 = Object.freeze({ kind: "u64", fresh: true });
|
|
132
|
-
/** The one `u64` constructor value. */
|
|
133
71
|
const u64 = Object.freeze({ kind: "u64", fresh: freshU64 });
|
|
134
|
-
/** The one `i64` constructor value. */
|
|
135
72
|
const i64 = Object.freeze({ kind: "i64" });
|
|
136
|
-
/** The one `bool` constructor value. */
|
|
137
73
|
const bool = Object.freeze({ kind: "bool" });
|
|
138
|
-
/** The one `str` constructor value. */
|
|
139
74
|
const str = Object.freeze({ kind: "str" });
|
|
140
|
-
/**
|
|
141
|
-
* The `bytes<N>` field constructor. The width is mandatory and a
|
|
142
|
-
* descriptor-type label; `width` is validated to 1..=64 here because the
|
|
143
|
-
* grammar pins that range at declaration (`docs/architecture/70-api.md`
|
|
144
|
-
* § the `schema!` grammar: N ∈ 1..=64 — bare `bytes` does not parse), the
|
|
145
|
-
* macro-expansion boundary's analog being construction.
|
|
146
|
-
*/
|
|
147
75
|
function bytes(width) {
|
|
148
76
|
if (!Number.isInteger(width) || width < 1 || width > 64) {
|
|
149
|
-
throw errors.new(`bytes width must be an integer in 1..=64 (got ${width}) —
|
|
77
|
+
throw errors.new(`bytes width must be an integer in 1..=64 (got ${width}) — the range is pinned at declaration`);
|
|
150
78
|
}
|
|
151
79
|
return Object.freeze({ kind: "bytes", width });
|
|
152
80
|
}
|
|
@@ -156,18 +84,10 @@ function interval(element, width) {
|
|
|
156
84
|
throw errors.new(`interval element must be the u64 or i64 field constructor (got ${elementKind})`);
|
|
157
85
|
}
|
|
158
86
|
if (width !== undefined && width < 1n) {
|
|
159
|
-
throw errors.new(`interval width must be >= 1 (got ${width}) —
|
|
87
|
+
throw errors.new(`interval width must be >= 1 (got ${width}) — w >= 1 is pinned at declaration`);
|
|
160
88
|
}
|
|
161
89
|
return Object.freeze({ kind: "interval", element: elementKind, width });
|
|
162
90
|
}
|
|
163
|
-
/**
|
|
164
|
-
* Lowers one host literal at its field position to the wire
|
|
165
|
-
* {@link LiteralSpec} — the selection-literal machine ground axioms and
|
|
166
|
-
* `where()` bindings both ride (one machine, same errors — the macro's own
|
|
167
|
-
* rule). A value on a closed-reference field IS its handle NAME (verified
|
|
168
|
-
* against the roster: an unknown name is a construction error); everything
|
|
169
|
-
* else lowers to a plain value tagged by the field's structural kind.
|
|
170
|
-
*/
|
|
171
91
|
function literalOf(field, value) {
|
|
172
92
|
const roster = rosterOf(field);
|
|
173
93
|
if (roster !== undefined) {
|
|
@@ -196,15 +116,6 @@ function literalOf(field, value) {
|
|
|
196
116
|
if (typeof value !== "string") {
|
|
197
117
|
throw literalShapeError("selection literal", "string", value);
|
|
198
118
|
}
|
|
199
|
-
/**
|
|
200
|
-
* The marshal's bijection law at the schema-literal seam
|
|
201
|
-
* (`marshal.ts` cellOf): a lone surrogate would cross dbCreate
|
|
202
|
-
* lossily (stored as U+FFFD engine-side), collapsing two
|
|
203
|
-
* distinct TS schema values into one stored theory/fingerprint
|
|
204
|
-
* and splitting the canonical statement rendering from the
|
|
205
|
-
* SDK's. All three string-admission seams — fact row, query
|
|
206
|
-
* literal/param, schema literal — enforce the one law.
|
|
207
|
-
*/
|
|
208
119
|
if (!value.isWellFormed()) {
|
|
209
120
|
throw literalShapeError("selection literal", "well-formed string", value);
|
|
210
121
|
}
|
package/dist/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,57 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @bjornpagen/bumbledb — the type-theoretic TypeScript SDK for the
|
|
3
3
|
* bumbledb embedded relational engine. Public surface: the structural type
|
|
4
|
-
* kernel (fields as pure structure, `relation
|
|
5
|
-
* never declared: THE LAWS TYPE THE COLUMNS, `schema
|
|
4
|
+
* kernel (fields as pure structure, `relation`, `closed` — domains are
|
|
5
|
+
* never declared: THE LAWS TYPE THE COLUMNS, `schema` computing every
|
|
6
6
|
* field's equivalence class FROM the statement list at both tiers), the
|
|
7
|
-
* statement algebra with `schema
|
|
8
|
-
* runtime (exclusive-lock stores, transactions, typed violations,
|
|
9
|
-
*
|
|
10
|
-
* closables), the query surface (kysely-shaped:
|
|
7
|
+
* statement algebra with `schema` and `SchemaSpec` lowering (PRD-06), the `Db`
|
|
8
|
+
* runtime (exclusive-lock stores, transactions, typed violations, callback
|
|
9
|
+
* instance reads, one-shot `write`/`writeFrom` with `abandon` — PRD-07), the query surface (kysely-shaped:
|
|
11
10
|
* `query(S).rule(r => { const { id, name } = v(Holder); return r.match(Holder, { id, name }).find({ name }) })` —
|
|
12
|
-
* variables minted by `v
|
|
11
|
+
* variables minted by `v` and joined by OBJECT REFERENCE (reuse is the
|
|
13
12
|
* join), the head a `find` RECORD whose keys name the answer columns
|
|
14
13
|
* (renames are real), params still STRING-named, plus negation,
|
|
15
14
|
* conditions, aggregates, and interiors / one linear rec via
|
|
16
15
|
* `q.interior` / `q.reach` —
|
|
17
|
-
* `db.prepare` as a plain value;
|
|
18
|
-
*
|
|
19
|
-
* common host identifiers — import aliasing is the answer; the SDK does
|
|
20
|
-
* not rename for collision-avoidance), the exhume surface
|
|
21
|
-
* (`Db.exhume` — the one schema-independent read path: the store's
|
|
22
|
-
* self-described shapes and raw facts by name, typed at bare structural
|
|
23
|
-
* values, deliberately schema-free). The raw native bridge is not exported.
|
|
16
|
+
* `db.prepare` as a plain value; comparisons and connectives live on
|
|
17
|
+
* the rule scope). The raw native bridge is not exported.
|
|
24
18
|
*/
|
|
25
19
|
export type { BoundsOnTarget, CapacityWeight, CapacityWindow, DurationRef, FieldRef, UnitWindowBan, WeightOnSource } from "./capacity.js";
|
|
26
20
|
export { duration, ref, weigh, within } from "./capacity.js";
|
|
27
21
|
export type { AnyClosed, AnySelectedClosed, AxiomRow, Axioms, Closed, ClosedColumn, ClosedCore, ClosedData, ClosedRow, ClosedSelectionInput, PayloadField, SelectedClosed } from "./closed.js";
|
|
28
22
|
export { closed } from "./closed.js";
|
|
29
|
-
export type { Abandon, AbandonedArm, CapacityViolation, ContainmentViolation, DeclaredKeyFact, DeclaredKeyViolation, DeltaBuild, FreshRange, ImpliedKeyViolation, MemberRelation, MirrorViolation, MutationReport, OffendingFact, Prepared,
|
|
30
|
-
export { abandon, Db,
|
|
31
|
-
export type { Exhumed, ExhumedAxiom, ExhumedDescriptor, ExhumedFact, ExhumedField, ExhumedRelation } from "./exhume.js";
|
|
32
|
-
export { ErrExhumeCorruption, ErrExhumeFormatMismatch, ErrExhumeNoDescriptor } from "./exhume.js";
|
|
23
|
+
export type { Abandon, AbandonedArm, Admission, CapacityViolation, Committed, ContainmentViolation, DeclaredKeyFact, DeclaredKeyViolation, DeltaBuild, FreshRange, ImpliedKeyViolation, MemberRelation, MirrorViolation, MutationReport, OffendingFact, OwnedInstance, Prepared, ReadInstance, SyncResult, Violation, Witness, WriteFromOutcome, WriteOutcome, WriteTx } from "./db.js";
|
|
24
|
+
export { abandon, Db, ErrAsyncCallback, ErrFingerprintMismatch, ErrForeignPrepared, ErrForeignWitness, ErrIrError, ErrNewtypeMismatch, ErrSchemaError, ErrSpentHandle, ErrUseAfterScope, InstanceBuilder } from "./db.js";
|
|
33
25
|
export type { AnyFace, Arity, Face, FaceArityMismatch, FaceData, FaceFields, FaceOwner, FaceShapeMismatch, FaceShapes, FaceSource, OwnerOf, ProjectedShape, SameArity, SameShapes } from "./face.js";
|
|
34
26
|
export { on } from "./face.js";
|
|
35
27
|
export type { AnyField, BoolField, BytesField, ClosedIdField, ClosedRoster, FreshU64Field, I64Field, Infer, IntervalField, IntervalValue, StrField, U64Field } from "./fields.js";
|
|
36
28
|
export { bool, bytes, i64, interval, span, str, u64 } from "./fields.js";
|
|
37
29
|
export type { ClassesOf, ClassWall, LawfulStatements, RelationClasses, SchemaClasses } from "./law.js";
|
|
38
|
-
export { lower
|
|
30
|
+
export { lower } from "./lower.js";
|
|
39
31
|
export type { KeyFact } from "./marshal.js";
|
|
40
32
|
export type { FactValue, ParsedQuery, QueryIr, StatementKindTag } from "./native.js";
|
|
41
33
|
export type { AnyCond, BindingInput, Cmp, FindColumn, InteriorData, MatchShape, NotAtom, RecData, RuleData, Tree } from "./query/atom.js";
|
|
42
|
-
export { ALLEN
|
|
34
|
+
export { ALLEN } from "./query/atom.js";
|
|
43
35
|
export type { Agg, FindEntry } from "./query/find.js";
|
|
44
36
|
export type { AnyQuery, AnyRuleValue, Query, QueryData, QueryParams, QueryReachStart, QueryRelation, QueryRow, QueryRuleChain, QueryRuleScope, QueryStart, RecRuleChain, RecRuleScope, RuleValue, TermOps } from "./query/lower.js";
|
|
45
37
|
export { lowerQuery, query } from "./query/lower.js";
|
|
46
|
-
export {
|
|
47
|
-
export type { ClassedField, Duration, MatchFields, MatchOwner, Param, ParamEntry, ParamsRecord, SetParam, Var, VarsOf } from "./query/scope.js";
|
|
38
|
+
export type { ClassedField, MatchFields, MatchOwner, Param, ParamEntry, ParamsRecord, SetParam, Var, VarsOf } from "./query/scope.js";
|
|
48
39
|
export { v } from "./query/scope.js";
|
|
49
40
|
export type { AnyRelation, AnySelected, Fact, FieldsShape, FreshKeys, Relation, RelationData, RelationField, RelationFields, Selected, SelectionBinding, SelectionInput } from "./relation.js";
|
|
50
41
|
export { relation } from "./relation.js";
|
|
51
42
|
export type { AnySchema, Schema, SchemaRelation, SchemaRelations } from "./schema.js";
|
|
52
43
|
export { schema } from "./schema.js";
|
|
53
44
|
export type { CapacityBoundSpec, CapacityWindowSpec, FieldSpec, LiteralSetSpec, LiteralSpec, RelationSpec, RowSpec, SchemaSpec, SideSpec, StatementSpec, ValueSpec, ValueTypeSpec, WeightSpec } from "./spec.js";
|
|
54
|
-
export { renderCapacityBound, renderCapacityWindow, renderLiteral, renderLiteralSet, renderWeight } from "./spec.js";
|
|
55
45
|
export type { CapacityData, CapacityStatement, ContainedStatement, ContainmentData, KeyData, KeyStatement, Statement, StatementData } from "./statements.js";
|
|
56
46
|
export { capacity, contained, key, mirrors, renderStatement } from "./statements.js";
|
|
57
47
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,40 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @bjornpagen/bumbledb — the type-theoretic TypeScript SDK for the
|
|
3
3
|
* bumbledb embedded relational engine. Public surface: the structural type
|
|
4
|
-
* kernel (fields as pure structure, `relation
|
|
5
|
-
* never declared: THE LAWS TYPE THE COLUMNS, `schema
|
|
4
|
+
* kernel (fields as pure structure, `relation`, `closed` — domains are
|
|
5
|
+
* never declared: THE LAWS TYPE THE COLUMNS, `schema` computing every
|
|
6
6
|
* field's equivalence class FROM the statement list at both tiers), the
|
|
7
|
-
* statement algebra with `schema
|
|
8
|
-
* runtime (exclusive-lock stores, transactions, typed violations,
|
|
9
|
-
*
|
|
10
|
-
* closables), the query surface (kysely-shaped:
|
|
7
|
+
* statement algebra with `schema` and `SchemaSpec` lowering (PRD-06), the `Db`
|
|
8
|
+
* runtime (exclusive-lock stores, transactions, typed violations, callback
|
|
9
|
+
* instance reads, one-shot `write`/`writeFrom` with `abandon` — PRD-07), the query surface (kysely-shaped:
|
|
11
10
|
* `query(S).rule(r => { const { id, name } = v(Holder); return r.match(Holder, { id, name }).find({ name }) })` —
|
|
12
|
-
* variables minted by `v
|
|
11
|
+
* variables minted by `v` and joined by OBJECT REFERENCE (reuse is the
|
|
13
12
|
* join), the head a `find` RECORD whose keys name the answer columns
|
|
14
13
|
* (renames are real), params still STRING-named, plus negation,
|
|
15
14
|
* conditions, aggregates, and interiors / one linear rec via
|
|
16
15
|
* `q.interior` / `q.reach` —
|
|
17
|
-
* `db.prepare` as a plain value;
|
|
18
|
-
*
|
|
19
|
-
* common host identifiers — import aliasing is the answer; the SDK does
|
|
20
|
-
* not rename for collision-avoidance), the exhume surface
|
|
21
|
-
* (`Db.exhume` — the one schema-independent read path: the store's
|
|
22
|
-
* self-described shapes and raw facts by name, typed at bare structural
|
|
23
|
-
* values, deliberately schema-free). The raw native bridge is not exported.
|
|
16
|
+
* `db.prepare` as a plain value; comparisons and connectives live on
|
|
17
|
+
* the rule scope). The raw native bridge is not exported.
|
|
24
18
|
*/
|
|
25
19
|
export { duration, ref, weigh, within } from "#capacity.ts";
|
|
26
20
|
export { closed } from "#closed.ts";
|
|
27
|
-
export { abandon, Db,
|
|
28
|
-
export { ErrExhumeCorruption, ErrExhumeFormatMismatch, ErrExhumeNoDescriptor } from "#exhume.ts";
|
|
21
|
+
export { abandon, Db, ErrAsyncCallback, ErrFingerprintMismatch, ErrForeignPrepared, ErrForeignWitness, ErrIrError, ErrNewtypeMismatch, ErrSchemaError, ErrSpentHandle, ErrUseAfterScope, InstanceBuilder } from "#db.ts";
|
|
29
22
|
export { on } from "#face.ts";
|
|
30
23
|
export { bool, bytes, i64, interval, span, str, u64 } from "#fields.ts";
|
|
31
|
-
export { lower
|
|
32
|
-
export { ALLEN
|
|
24
|
+
export { lower } from "#lower.ts";
|
|
25
|
+
export { ALLEN } from "#query/atom.ts";
|
|
33
26
|
export { lowerQuery, query } from "#query/lower.ts";
|
|
34
|
-
export { parseQueryIr } from "#query/parse-ir.ts";
|
|
35
27
|
export { v } from "#query/scope.ts";
|
|
36
28
|
export { relation } from "#relation.ts";
|
|
37
29
|
export { schema } from "#schema.ts";
|
|
38
|
-
export { renderCapacityBound, renderCapacityWindow, renderLiteral, renderLiteralSet, renderWeight } from "#spec.ts";
|
|
39
30
|
export { capacity, contained, key, mirrors, renderStatement } from "#statements.ts";
|
|
40
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAe3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AA2BnC,OAAO,EACN,OAAO,EACP,EAAE,EACF,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,MAAM,QAAQ,CAAA;AAiBf,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAe7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAgBjC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAmBtC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAYnD,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AAenC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AA0BnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
|