@bjornpagen/bumbledb 0.20.2 → 1.0.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 +283 -1611
- package/README.md +156 -118
- package/dist/capacity.d.ts +16 -12
- package/dist/capacity.d.ts.map +1 -1
- package/dist/capacity.js +16 -48
- package/dist/capacity.js.map +1 -1
- package/dist/changes.d.ts +54 -0
- package/dist/changes.d.ts.map +1 -0
- package/dist/changes.js +245 -0
- package/dist/changes.js.map +1 -0
- package/dist/close.d.ts +24 -0
- package/dist/close.d.ts.map +1 -0
- package/dist/close.js +34 -0
- package/dist/close.js.map +1 -0
- package/dist/closed.d.ts +1 -3
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +24 -12
- package/dist/closed.js.map +1 -1
- package/dist/codec.d.ts +56 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +289 -0
- package/dist/codec.js.map +1 -0
- package/dist/compile.d.ts +68 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +75 -0
- package/dist/compile.js.map +1 -0
- package/dist/db-native.d.ts +170 -0
- package/dist/db-native.d.ts.map +1 -0
- package/dist/db-native.js +5 -0
- package/dist/db-native.js.map +1 -0
- package/dist/db.d.ts +101 -233
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +232 -1084
- package/dist/db.js.map +1 -1
- package/dist/errors.d.ts +57 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +32 -0
- package/dist/errors.js.map +1 -0
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js +2 -2
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +65 -24
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +94 -24
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +37 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -21
- package/dist/index.js.map +1 -1
- package/dist/internal/log.d.ts +24 -0
- package/dist/internal/log.d.ts.map +1 -0
- package/dist/internal/log.js +10 -0
- package/dist/internal/log.js.map +1 -0
- package/dist/law.d.ts +8 -13
- package/dist/law.d.ts.map +1 -1
- package/dist/law.js +6 -59
- package/dist/law.js.map +1 -1
- package/dist/lower.d.ts +0 -13
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +9 -17
- package/dist/lower.js.map +1 -1
- package/dist/migration.d.ts +33 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +48 -0
- package/dist/migration.js.map +1 -0
- package/dist/native.d.ts +256 -301
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js +65 -108
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +24 -13
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +7 -3
- package/dist/query/atom.js.map +1 -1
- package/dist/query/compute.d.ts +68 -0
- package/dist/query/compute.d.ts.map +1 -0
- package/dist/query/compute.js +141 -0
- package/dist/query/compute.js.map +1 -0
- package/dist/query/find.d.ts +15 -8
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +6 -2
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +23 -2
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +433 -80
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts.map +1 -1
- package/dist/query/parse-ir.js +17 -8
- package/dist/query/parse-ir.js.map +1 -1
- package/dist/query/run.d.ts +12 -2
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +26 -9
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +47 -3
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +83 -19
- package/dist/query/scope.js.map +1 -1
- package/dist/relation.d.ts +3 -8
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +16 -10
- package/dist/relation.js.map +1 -1
- package/dist/result.d.ts +47 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +50 -0
- package/dist/result.js.map +1 -0
- package/dist/rows.d.ts +69 -0
- package/dist/rows.d.ts.map +1 -0
- package/dist/rows.js +328 -0
- package/dist/rows.js.map +1 -0
- package/dist/runtime-codes.d.ts +2 -0
- package/dist/runtime-codes.d.ts.map +1 -0
- package/dist/runtime-codes.js +19 -0
- package/dist/runtime-codes.js.map +1 -0
- package/dist/runtime-errors.d.ts +106 -0
- package/dist/runtime-errors.d.ts.map +1 -0
- package/dist/runtime-errors.js +62 -0
- package/dist/runtime-errors.js.map +1 -0
- package/dist/runtime-native.d.ts +171 -0
- package/dist/runtime-native.d.ts.map +1 -0
- package/dist/runtime-native.js +5 -0
- package/dist/runtime-native.js.map +1 -0
- package/dist/runtime.d.ts +73 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +293 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scalar.d.ts +165 -0
- package/dist/scalar.d.ts.map +1 -0
- package/dist/scalar.js +344 -0
- package/dist/scalar.js.map +1 -0
- package/dist/schema.d.ts +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +34 -37
- package/dist/schema.js.map +1 -1
- package/dist/shape.d.ts +28 -0
- package/dist/shape.d.ts.map +1 -0
- package/dist/shape.js +2 -0
- package/dist/shape.js.map +1 -0
- package/dist/spec.d.ts +27 -3
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +22 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +16 -3
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +54 -28
- package/dist/statements.js.map +1 -1
- package/dist/uuid.d.ts +23 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +54 -0
- package/dist/uuid.js.map +1 -0
- package/pack-provenance.json +7 -0
- package/package.json +12 -16
- package/src/capacity.ts +34 -54
- package/src/changes.ts +361 -0
- package/src/close.ts +53 -0
- package/src/closed.ts +25 -19
- package/src/codec.ts +379 -0
- package/src/compile.ts +149 -0
- package/src/db-native.ts +247 -0
- package/src/db.ts +461 -1632
- package/src/errors.ts +50 -0
- package/src/face.ts +2 -2
- package/src/fields.ts +182 -55
- package/src/index.ts +62 -126
- package/src/internal/log.ts +51 -0
- package/src/law.ts +13 -28
- package/src/lower.ts +9 -4
- package/src/migration.ts +69 -0
- package/src/native.ts +326 -487
- package/src/query/atom.ts +61 -25
- package/src/query/compute.ts +237 -0
- package/src/query/find.ts +31 -12
- package/src/query/lower.ts +531 -143
- package/src/query/parse-ir.ts +18 -13
- package/src/query/run.ts +32 -16
- package/src/query/scope.ts +140 -8
- package/src/relation.ts +17 -21
- package/src/result.ts +130 -0
- package/src/rows.ts +404 -0
- package/src/runtime-codes.ts +18 -0
- package/src/runtime-errors.ts +69 -0
- package/src/runtime-native.ts +242 -0
- package/src/runtime.ts +440 -0
- package/src/scalar.ts +560 -0
- package/src/schema.ts +35 -37
- package/src/shape.ts +31 -0
- package/src/spec.ts +33 -3
- package/src/statements.ts +75 -68
- package/src/uuid.ts +69 -0
- package/dist/marshal.d.ts +0 -44
- package/dist/marshal.d.ts.map +0 -1
- package/dist/marshal.js +0 -165
- package/dist/marshal.js.map +0 -1
- package/src/marshal.ts +0 -200
package/dist/schema.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* `schema` — assembles relations and statements into a theory value (the
|
|
3
|
-
* `Theory` analog; what `Db.create`/`Db.open` take). Construction-time
|
|
4
|
-
* validation is the macro-EXPANSION-boundary analog: membership,
|
|
5
|
-
* implied-key duplicates, duplicate statements, a belt-and-braces handle
|
|
6
|
-
* re-verification — and the TARGET-KEY WALL ({@link verifyTargetKeys}),
|
|
7
|
-
* the value tier of the two-tier containment law
|
|
8
|
-
* (60-containment-parity): every containment/mirrors/capacity target
|
|
9
|
-
* projection must set-match a key of its relation, judged HERE with the
|
|
10
|
-
* engine's exact rule so `lower` never emits an engine-refused
|
|
11
|
-
* containment. The type tier is `law.ts`'s `TargetKeyWall` (best effort,
|
|
12
|
-
* statically known tuples); every OTHER semantic judgment (key-internal
|
|
13
|
-
* legality, fresh-on-u64, …) stays the engine's `SchemaError` at
|
|
14
|
-
* `Db.create` — the engine is the final authority for every boundary,
|
|
15
|
-
* this wall just makes the SDK agree with it first.
|
|
16
|
-
*/
|
|
17
|
-
import * as errors from "@superbuilders/errors";
|
|
1
|
+
import { AuthoringError, SdkInvariantError } from "#errors.ts";
|
|
18
2
|
import { isClosedMember, sealedFieldOf } from "#closed.ts";
|
|
19
3
|
import { assertDeclarationOrderKey, assertDeclarationRecord, rosterOf } from "#fields.ts";
|
|
20
4
|
import { classesComplete, computeClasses } from "#law.ts";
|
|
@@ -26,19 +10,14 @@ function collectImplied(name, relations) {
|
|
|
26
10
|
for (const [recordKey, member] of Object.entries(relations)) {
|
|
27
11
|
assertDeclarationOrderKey(`schema ${name} relation`, recordKey);
|
|
28
12
|
if (member.name !== recordKey) {
|
|
29
|
-
throw
|
|
13
|
+
throw new AuthoringError({
|
|
14
|
+
message: `schema ${name}: record key ${recordKey} holds relation ${member.name} — the key must equal the relation's declared name`
|
|
15
|
+
});
|
|
30
16
|
}
|
|
31
17
|
const projections = [];
|
|
32
18
|
if (isClosedMember(member)) {
|
|
33
19
|
projections.push(Object.freeze(["id"]));
|
|
34
20
|
}
|
|
35
|
-
else {
|
|
36
|
-
for (const declared of member.data.fields) {
|
|
37
|
-
if ("fresh" in declared.field && declared.field.fresh === true) {
|
|
38
|
-
projections.push(Object.freeze([declared.name]));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
21
|
for (const projection of projections) {
|
|
43
22
|
rendered.add(`${member.name}(${projection.join(", ")}) -> ${member.name}`);
|
|
44
23
|
}
|
|
@@ -57,10 +36,14 @@ function verifyMembership(name, relations, statement, rendered) {
|
|
|
57
36
|
for (const owner of statementOwners(statement)) {
|
|
58
37
|
const member = relations[owner.name];
|
|
59
38
|
if (member === undefined) {
|
|
60
|
-
throw
|
|
39
|
+
throw new AuthoringError({
|
|
40
|
+
message: `schema ${name}: relation ${owner.name} is not declared in this schema — ${rendered}`
|
|
41
|
+
});
|
|
61
42
|
}
|
|
62
43
|
if (member !== owner) {
|
|
63
|
-
throw
|
|
44
|
+
throw new AuthoringError({
|
|
45
|
+
message: `schema ${name}: statement references a different relation value named ${owner.name} than the one this schema declares — ${rendered}`
|
|
46
|
+
});
|
|
64
47
|
}
|
|
65
48
|
}
|
|
66
49
|
}
|
|
@@ -77,10 +60,14 @@ function verifyBindingHandles(name, face, binding, rendered) {
|
|
|
77
60
|
continue;
|
|
78
61
|
}
|
|
79
62
|
if (roster === undefined) {
|
|
80
|
-
throw
|
|
63
|
+
throw new AuthoringError({
|
|
64
|
+
message: `schema ${name}: ${face.owner.name}.${binding.field} is not a closed-relation reference — the handle literal ${literal.handle} is legal only on a field carrying a closed relation's roster — ${rendered}`
|
|
65
|
+
});
|
|
81
66
|
}
|
|
82
67
|
if (!roster.handles.includes(literal.handle)) {
|
|
83
|
-
throw
|
|
68
|
+
throw new AuthoringError({
|
|
69
|
+
message: `schema ${name}: closed relation ${roster.name} has no handle ${literal.handle} — ${rendered}`
|
|
70
|
+
});
|
|
84
71
|
}
|
|
85
72
|
}
|
|
86
73
|
}
|
|
@@ -148,7 +135,9 @@ function verifyClosedReferenceBinding(name, statements, face, binding, rendered)
|
|
|
148
135
|
}
|
|
149
136
|
const resolved = closedTargetOf(statements, face.owner.name, binding.field);
|
|
150
137
|
if (resolved !== roster.name) {
|
|
151
|
-
throw
|
|
138
|
+
throw new AuthoringError({
|
|
139
|
+
message: `schema ${name}: ${face.owner.name}.${binding.field} spells a ${roster.name} handle, but no declared containment resolves the closed reference — a closed reference is the plain u64 column plus its declared containment; declare contained(on(${face.owner.name}, "${binding.field}"), on(${roster.name}, "id")) — ${rendered}`
|
|
140
|
+
});
|
|
152
141
|
}
|
|
153
142
|
}
|
|
154
143
|
/**
|
|
@@ -157,7 +146,7 @@ function verifyClosedReferenceBinding(name, statements, face, binding, rendered)
|
|
|
157
146
|
* `resolve_capacity_target` mirrored exactly): every `contained`/
|
|
158
147
|
* `mirrors`/`capacity` statement's target projection must resolve a key
|
|
159
148
|
* of the target relation, judged over the SAME key population the engine
|
|
160
|
-
* materializes — the
|
|
149
|
+
* materializes — the closed auto-keys
|
|
161
150
|
* ({@link collectImplied}'s roster) first, then the declared `key`
|
|
162
151
|
* statements in written order (a key may be declared after its probe, so
|
|
163
152
|
* this wall runs over the COMPLETE list, never inside the statement
|
|
@@ -211,7 +200,9 @@ function verifyTargetKeyFace(name, face, implied, declared, rendered) {
|
|
|
211
200
|
if (face.projection.length === 1 && face.projection[0] === "id") {
|
|
212
201
|
return;
|
|
213
202
|
}
|
|
214
|
-
throw
|
|
203
|
+
throw new AuthoringError({
|
|
204
|
+
message: `schema ${name}: ${rendered}: closed target ${face.owner.name} is addressed by its synthetic id only — projection (${face.projection.join(", ")}) must be exactly (id) (rewrite the target side as on(${face.owner.name}, "id"))`
|
|
205
|
+
});
|
|
215
206
|
}
|
|
216
207
|
const roster = [...(implied.get(face.owner.name) ?? []), ...(declared.get(face.owner.name) ?? [])];
|
|
217
208
|
const want = new Set(face.projection);
|
|
@@ -240,22 +231,28 @@ function verifyTargetKeyFace(name, face, implied, declared, rendered) {
|
|
|
240
231
|
return descriptor !== undefined && descriptor.kind === "interval";
|
|
241
232
|
});
|
|
242
233
|
const hint = pointwise ? "; hint: declare the exact pointwise key `R(prefix…, interval) -> R`" : "";
|
|
243
|
-
throw
|
|
234
|
+
throw new AuthoringError({
|
|
235
|
+
message: `schema ${name}: ${rendered}: target projection (${face.projection.join(", ")}) matches no declared key of ${face.owner.name} — available keys: ${available}${hint}`
|
|
236
|
+
});
|
|
244
237
|
}
|
|
245
238
|
function schema(name, relations, statements) {
|
|
246
239
|
const implied = collectImplied(name, relations);
|
|
247
240
|
const seen = new Set();
|
|
248
241
|
for (const statement of statements) {
|
|
249
242
|
if (!isStatement(statement)) {
|
|
250
|
-
throw
|
|
243
|
+
throw new AuthoringError({
|
|
244
|
+
message: `schema ${name}: a statement is minted only by key/contained/mirrors/capacity — a structural literal skips the construction-time arity and roster walls`
|
|
245
|
+
});
|
|
251
246
|
}
|
|
252
247
|
const rendered = renderStatement(statement);
|
|
253
248
|
verifyMembership(name, relations, statement, rendered);
|
|
254
249
|
if (implied.rendered.has(rendered)) {
|
|
255
|
-
throw
|
|
250
|
+
throw new AuthoringError({
|
|
251
|
+
message: `schema ${name}: ${rendered} is redundant here (closedness already implies it) — and rejected as a duplicate`
|
|
252
|
+
});
|
|
256
253
|
}
|
|
257
254
|
if (seen.has(rendered)) {
|
|
258
|
-
throw
|
|
255
|
+
throw new AuthoringError({ message: `schema ${name}: duplicate statement — ${rendered}` });
|
|
259
256
|
}
|
|
260
257
|
seen.add(rendered);
|
|
261
258
|
verifyHandles(name, statement, rendered);
|
|
@@ -264,7 +261,7 @@ function schema(name, relations, statements) {
|
|
|
264
261
|
verifyTargetKeys(name, statements, implied.roster);
|
|
265
262
|
const classes = computeClasses(name, relations, statements);
|
|
266
263
|
if (!classesComplete(classes, relations)) {
|
|
267
|
-
throw
|
|
264
|
+
throw new SdkInvariantError({ message: `schema ${name}: class-map construction incomplete` });
|
|
268
265
|
}
|
|
269
266
|
return Object.freeze({ name, relations, statements: Object.freeze([...statements]), classes });
|
|
270
267
|
}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/shape.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Query } from "./query/lower.js";
|
|
2
|
+
import type { ParamsRecord } from "./query/scope.js";
|
|
3
|
+
/**
|
|
4
|
+
* Shared derived-type vocabulary of the chapter 35 core roster: `S` is a
|
|
5
|
+
* declared core schema value's type, `Rel<S>` its ordinary (writable)
|
|
6
|
+
* relations, `Fact<R>` the inferred row object, `Key<R>` the primary-key
|
|
7
|
+
* object accepted by `QueryReader.get`, and `QueryTemplate<S, P, A>` the
|
|
8
|
+
* immutable schema-bound logical query template. All are derived from the
|
|
9
|
+
* existing typed descriptors — no second hand-maintained roster.
|
|
10
|
+
*/
|
|
11
|
+
import type { AnyRelation, Fact } from "./relation.js";
|
|
12
|
+
import type { AnySchema } from "./schema.js";
|
|
13
|
+
/** The ordinary relations of a schema (closed vocabularies are ground axioms, never ingestion targets). */
|
|
14
|
+
type Rel<S extends AnySchema> = Extract<S["relations"][keyof S["relations"]], AnyRelation>;
|
|
15
|
+
/**
|
|
16
|
+
* The primary-key object of a relation: the fields of its FIRST
|
|
17
|
+
* materialized key statement (a closed relation's synthetic `(id)`,
|
|
18
|
+
* otherwise the first declared `key`). Keys are declared statements now —
|
|
19
|
+
* there is no fresh-implied key — so the exact projection is a schema
|
|
20
|
+
* fact, verified at execution against the compiled tables; the type admits
|
|
21
|
+
* any subset of the fact's own fields and the runtime refuses a mismatch
|
|
22
|
+
* with a typed `DbError` before any native work.
|
|
23
|
+
*/
|
|
24
|
+
type Key<R extends AnyRelation> = Partial<Fact<R>>;
|
|
25
|
+
/** Chapter 35's spelling of the immutable typed query template. */
|
|
26
|
+
type QueryTemplate<S extends AnySchema, P extends ParamsRecord, A> = Query<S["relations"], A, P>;
|
|
27
|
+
export type { Key, QueryTemplate, Rel };
|
|
28
|
+
//# sourceMappingURL=shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,2GAA2G;AAC3G,KAAK,GAAG,CAAC,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;AAE1F;;;;;;;;GAQG;AACH,KAAK,GAAG,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAElD,mEAAmE;AACnE,KAAK,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,YAAY,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAEhG,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAA"}
|
package/dist/shape.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape.js","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":""}
|
package/dist/spec.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ type ValueTypeSpec = {
|
|
|
4
4
|
readonly kind: "u64";
|
|
5
5
|
} | {
|
|
6
6
|
readonly kind: "i64";
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: "f64";
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: "uuid";
|
|
7
11
|
} | {
|
|
8
12
|
readonly kind: "string";
|
|
9
13
|
} | {
|
|
@@ -11,7 +15,7 @@ type ValueTypeSpec = {
|
|
|
11
15
|
readonly len: number;
|
|
12
16
|
} | {
|
|
13
17
|
readonly kind: "interval";
|
|
14
|
-
readonly element: "u64" | "i64";
|
|
18
|
+
readonly element: "u64" | "i64" | "f64";
|
|
15
19
|
readonly width: bigint | undefined;
|
|
16
20
|
};
|
|
17
21
|
type ValueSpec = {
|
|
@@ -23,6 +27,12 @@ type ValueSpec = {
|
|
|
23
27
|
} | {
|
|
24
28
|
readonly kind: "i64";
|
|
25
29
|
readonly value: bigint;
|
|
30
|
+
} | {
|
|
31
|
+
readonly kind: "f64";
|
|
32
|
+
readonly value: number;
|
|
33
|
+
} | {
|
|
34
|
+
readonly kind: "uuid";
|
|
35
|
+
readonly value: string;
|
|
26
36
|
} | {
|
|
27
37
|
readonly kind: "string";
|
|
28
38
|
readonly value: string;
|
|
@@ -37,6 +47,10 @@ type ValueSpec = {
|
|
|
37
47
|
readonly kind: "intervalI64";
|
|
38
48
|
readonly start: bigint;
|
|
39
49
|
readonly end: bigint;
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: "intervalF64";
|
|
52
|
+
readonly start: number;
|
|
53
|
+
readonly end: number;
|
|
40
54
|
};
|
|
41
55
|
type LiteralSpec = {
|
|
42
56
|
readonly kind: "value";
|
|
@@ -87,11 +101,15 @@ type CapacityWindowSpec = {
|
|
|
87
101
|
readonly kind: "floor";
|
|
88
102
|
readonly lo: CapacityBoundSpec;
|
|
89
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* One field: name, structural type, and host newtype label. There is no
|
|
106
|
+
* `fresh` mark: the database issues no identity, and key laws are declared
|
|
107
|
+
* statements (C01, chapter 30).
|
|
108
|
+
*/
|
|
90
109
|
interface FieldSpec {
|
|
91
110
|
readonly name: string;
|
|
92
111
|
readonly valueType: ValueTypeSpec;
|
|
93
112
|
readonly newtype: string | undefined;
|
|
94
|
-
readonly fresh: boolean;
|
|
95
113
|
}
|
|
96
114
|
interface RowSpec {
|
|
97
115
|
readonly handle: string;
|
|
@@ -137,9 +155,15 @@ interface SchemaSpec {
|
|
|
137
155
|
readonly statements: readonly StatementSpec[];
|
|
138
156
|
}
|
|
139
157
|
declare function renderLiteral(literal: LiteralSpec): string;
|
|
158
|
+
/**
|
|
159
|
+
* The canonical binary64 bit image as sixteen lowercase hex digits — the
|
|
160
|
+
* one f64 rendering (chapter 11): every NaN is the quiet canonical NaN and
|
|
161
|
+
* `-0` renders as `+0`, mirroring the engine's `f64:0x{bits:016x}`.
|
|
162
|
+
*/
|
|
163
|
+
declare function f64BitsHex(value: number): string;
|
|
140
164
|
declare function renderLiteralSet(set: LiteralSetSpec): string;
|
|
141
165
|
declare function renderCapacityWindow(window: CapacityWindowSpec): string;
|
|
142
166
|
declare function renderWeight(weight: WeightSpec): string;
|
|
143
167
|
export type { CapacityBoundSpec, CapacityWindowSpec, FieldSpec, LiteralSetSpec, LiteralSpec, RelationSpec, RowSpec, SchemaSpec, SideSpec, StatementSpec, ValueSpec, ValueTypeSpec, WeightSpec };
|
|
144
|
-
export { renderCapacityWindow, renderLiteral, renderLiteralSet, renderWeight };
|
|
168
|
+
export { f64BitsHex, renderCapacityWindow, renderLiteral, renderLiteralSet, renderWeight };
|
|
145
169
|
//# sourceMappingURL=spec.d.ts.map
|
package/dist/spec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrD;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/spec.js
CHANGED
|
@@ -61,6 +61,10 @@ function renderLiteral(literal) {
|
|
|
61
61
|
case "u64":
|
|
62
62
|
case "i64":
|
|
63
63
|
return value.value.toString();
|
|
64
|
+
case "f64":
|
|
65
|
+
return `f64:0x${f64BitsHex(value.value)}`;
|
|
66
|
+
case "uuid":
|
|
67
|
+
return `uuid:${value.value}`;
|
|
64
68
|
case "string": {
|
|
65
69
|
let out = '"';
|
|
66
70
|
for (const ch of value.value) {
|
|
@@ -78,8 +82,25 @@ function renderLiteral(literal) {
|
|
|
78
82
|
case "intervalU64":
|
|
79
83
|
case "intervalI64":
|
|
80
84
|
return `${value.start}..${value.end}`;
|
|
85
|
+
case "intervalF64":
|
|
86
|
+
return `f64:0x${f64BitsHex(value.start)}..f64:0x${f64BitsHex(value.end)}`;
|
|
81
87
|
}
|
|
82
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* The canonical binary64 bit image as sixteen lowercase hex digits — the
|
|
91
|
+
* one f64 rendering (chapter 11): every NaN is the quiet canonical NaN and
|
|
92
|
+
* `-0` renders as `+0`, mirroring the engine's `f64:0x{bits:016x}`.
|
|
93
|
+
*/
|
|
94
|
+
function f64BitsHex(value) {
|
|
95
|
+
const image = new DataView(new ArrayBuffer(8));
|
|
96
|
+
if (Number.isNaN(value)) {
|
|
97
|
+
image.setBigUint64(0, 0x7ff8000000000000n);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
image.setFloat64(0, value === 0 ? 0 : value);
|
|
101
|
+
}
|
|
102
|
+
return image.getBigUint64(0).toString(16).padStart(16, "0");
|
|
103
|
+
}
|
|
83
104
|
function renderLiteralSet(set) {
|
|
84
105
|
if (set.kind === "one") {
|
|
85
106
|
return renderLiteral(set.literal);
|
|
@@ -116,5 +137,5 @@ function renderWeight(weight) {
|
|
|
116
137
|
return `[Duration(${weight.field})]`;
|
|
117
138
|
}
|
|
118
139
|
}
|
|
119
|
-
export { renderCapacityWindow, renderLiteral, renderLiteralSet, renderWeight };
|
|
140
|
+
export { f64BitsHex, renderCapacityWindow, renderLiteral, renderLiteralSet, renderWeight };
|
|
120
141
|
//# sourceMappingURL=spec.js.map
|
package/dist/spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/statements.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type BoundsOnTarget, type CapacityWeight, type CapacityWindow, type UnitDimensionBan, type
|
|
1
|
+
import { type BoundsOnTarget, type CapacityWeight, type CapacityWindow, type UnitDimensionBan, type WeightOnSource } from "./capacity.js";
|
|
2
2
|
import { type AnyFace, type FaceData, type SameArity, type SameShapes } from "./face.js";
|
|
3
3
|
import type { AnyRelation, RelationFields } from "./relation.js";
|
|
4
4
|
import { type CapacityWindowSpec, type WeightSpec } from "./spec.js";
|
|
@@ -59,8 +59,21 @@ interface KeyStatement<R extends AnyRelation, Projection extends readonly string
|
|
|
59
59
|
declare function key<R extends AnyRelation, const Projection extends readonly [keyof RelationFields<R> & string, ...(keyof RelationFields<R> & string)[]]>(relation: R, fields: Projection): KeyStatement<R, Projection>;
|
|
60
60
|
declare function contained<A extends AnyFace, B extends AnyFace>(source: A, target: B & SameArity<A, B> & SameShapes<A, B>): ContainedStatement<A["data"], B["data"]>;
|
|
61
61
|
declare function mirrors<A extends AnyFace, B extends AnyFace>(source: A, target: B & SameArity<A, B> & SameShapes<A, B>): ContainedStatement<A["data"], B["data"]>;
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
/**
|
|
63
|
+
* The chapter 34 NAMED-OPTIONS capacity call — it replaces the old four
|
|
64
|
+
* positional arguments: `capacity(target, { from, weight?, within })`.
|
|
65
|
+
* Unit weight is the default; `weigh(...)`/`within(...)` remain the only
|
|
66
|
+
* mints for the weight/window values.
|
|
67
|
+
*/
|
|
68
|
+
declare function capacity<B extends AnyFace, W extends CapacityWindow, A extends AnyFace>(target: B, options: {
|
|
69
|
+
readonly from: A & SameArity<B, A> & SameShapes<B, A>;
|
|
70
|
+
readonly within: W & UnitDimensionBan<W> & BoundsOnTarget<W, B>;
|
|
71
|
+
}): CapacityStatement<B["data"], A["data"]>;
|
|
72
|
+
declare function capacity<B extends AnyFace, M extends CapacityWeight, W extends CapacityWindow, A extends AnyFace>(target: B, options: {
|
|
73
|
+
readonly from: A & SameArity<B, A> & SameShapes<B, A>;
|
|
74
|
+
readonly weight: M & WeightOnSource<M, A>;
|
|
75
|
+
readonly within: W & BoundsOnTarget<W, B>;
|
|
76
|
+
}): CapacityStatement<B["data"], A["data"]>;
|
|
64
77
|
declare function renderStatement(statement: Statement): string;
|
|
65
78
|
export type { CapacityData, CapacityStatement, ContainedStatement, ContainmentData, KeyData, KeyStatement, Statement, StatementData };
|
|
66
79
|
export { capacity, contained, isStatement, key, mirrors, renderStatement };
|
package/dist/statements.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
|
package/dist/statements.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as errors from "@superbuilders/errors";
|
|
2
1
|
import { isCapacityWeight, isCapacityWindow, unitWeight } from "#capacity.ts";
|
|
3
2
|
import { isClosedMember, sealedFieldOf } from "#closed.ts";
|
|
3
|
+
import { AuthoringError } from "#errors.ts";
|
|
4
4
|
import { renderFace } from "#face.ts";
|
|
5
5
|
import { rosterOf, rostersAgree } from "#fields.ts";
|
|
6
6
|
import { renderCapacityWindow, renderWeight } from "#spec.ts";
|
|
@@ -22,7 +22,9 @@ function renderRosterSide(roster) {
|
|
|
22
22
|
*/
|
|
23
23
|
function assertArityAgreement(source, target, statement) {
|
|
24
24
|
if (source.projection.length !== target.projection.length) {
|
|
25
|
-
throw
|
|
25
|
+
throw new AuthoringError({
|
|
26
|
+
message: `${source.owner.name}(${source.projection.join(", ")}) and ${target.owner.name}(${target.projection.join(", ")}) project ${source.projection.length} vs ${target.projection.length} fields — positional pairing requires both faces to project equally many — ${renderStatement(statement)}`
|
|
27
|
+
});
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
function assertRosterAgreement(source, target, statement) {
|
|
@@ -34,7 +36,9 @@ function assertRosterAgreement(source, target, statement) {
|
|
|
34
36
|
const sourceRoster = rosterOf(sealedFieldOf(source.owner, fieldName));
|
|
35
37
|
const targetRoster = rosterOf(sealedFieldOf(target.owner, targetField));
|
|
36
38
|
if (!rostersAgree(sourceRoster, targetRoster)) {
|
|
37
|
-
throw
|
|
39
|
+
throw new AuthoringError({
|
|
40
|
+
message: `${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)}`
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
});
|
|
40
44
|
}
|
|
@@ -56,12 +60,16 @@ function assertRosterAgreement(source, target, statement) {
|
|
|
56
60
|
*/
|
|
57
61
|
function key(relation, fields) {
|
|
58
62
|
if (isClosedMember(relation)) {
|
|
59
|
-
throw
|
|
63
|
+
throw new AuthoringError({
|
|
64
|
+
message: `key(${relation.name}, ...): closedness already materializes ${relation.name}(id) -> ${relation.name} — an explicit key on a closed relation is rejected as a duplicate`
|
|
65
|
+
});
|
|
60
66
|
}
|
|
61
67
|
const seen = new Set();
|
|
62
68
|
for (const fieldName of fields) {
|
|
63
69
|
if (seen.has(fieldName)) {
|
|
64
|
-
throw
|
|
70
|
+
throw new AuthoringError({
|
|
71
|
+
message: `key(${relation.name}, ...): the projection spells ${fieldName} twice — write it once (the canonical-utterance law: one meaning, one spelling)`
|
|
72
|
+
});
|
|
65
73
|
}
|
|
66
74
|
seen.add(fieldName);
|
|
67
75
|
}
|
|
@@ -100,13 +108,19 @@ function assertWeightOnSource(weight, source, statement) {
|
|
|
100
108
|
}
|
|
101
109
|
const field = sealedFieldOf(source.owner, weight.field);
|
|
102
110
|
if (field === undefined) {
|
|
103
|
-
throw
|
|
111
|
+
throw new AuthoringError({
|
|
112
|
+
message: `${source.owner.name} has no field ${weight.field} — a weight names a field of the SOURCE's own row (the weight vocabulary is closed at the row) — ${renderStatement(statement)}`
|
|
113
|
+
});
|
|
104
114
|
}
|
|
105
115
|
if (weight.kind === "field" && field.kind !== "u64") {
|
|
106
|
-
throw
|
|
116
|
+
throw new AuthoringError({
|
|
117
|
+
message: `${source.owner.name}.${weight.field} is ${field.kind}, not u64 — a weight is u64-encoded (a signed weight would break the polarity scheduler: an insert could lower a sum) — ${renderStatement(statement)}`
|
|
118
|
+
});
|
|
107
119
|
}
|
|
108
120
|
if (weight.kind === "durationField" && field.kind !== "interval") {
|
|
109
|
-
throw
|
|
121
|
+
throw new AuthoringError({
|
|
122
|
+
message: `${source.owner.name}.${weight.field} is ${field.kind}, not an interval — Duration(...) weighs an interval field's measure — ${renderStatement(statement)}`
|
|
123
|
+
});
|
|
110
124
|
}
|
|
111
125
|
}
|
|
112
126
|
function assertBoundsOnTarget(window, target, statement) {
|
|
@@ -117,40 +131,52 @@ function assertBoundsOnTarget(window, target, statement) {
|
|
|
117
131
|
}
|
|
118
132
|
const field = sealedFieldOf(target.owner, bound.field);
|
|
119
133
|
if (field === undefined) {
|
|
120
|
-
throw
|
|
134
|
+
throw new AuthoringError({
|
|
135
|
+
message: `${target.owner.name} has no field ${bound.field} — a dependent bound names a field of the TARGET's own row (bound names resolve against the target's full roster) — ${renderStatement(statement)}`
|
|
136
|
+
});
|
|
121
137
|
}
|
|
122
138
|
if (bound.kind === "field" && field.kind !== "u64") {
|
|
123
|
-
throw
|
|
139
|
+
throw new AuthoringError({
|
|
140
|
+
message: `${target.owner.name}.${bound.field} is ${field.kind}, not u64 — a dependent bound reads a u64 field of the TARGET row (Duration(...) is the interval-measure spelling) — ${renderStatement(statement)}`
|
|
141
|
+
});
|
|
124
142
|
}
|
|
125
143
|
if (bound.kind === "durationField" && field.kind !== "interval") {
|
|
126
|
-
throw
|
|
144
|
+
throw new AuthoringError({
|
|
145
|
+
message: `${target.owner.name}.${bound.field} is ${field.kind}, not an interval — Duration(...) bounds by an interval field's measure — ${renderStatement(statement)}`
|
|
146
|
+
});
|
|
127
147
|
}
|
|
128
148
|
}
|
|
129
149
|
}
|
|
130
|
-
function capacity(target,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
150
|
+
function capacity(target, options) {
|
|
151
|
+
if (typeof options !== "object" || options === null || !("from" in options) || !("within" in options)) {
|
|
152
|
+
throw new AuthoringError({
|
|
153
|
+
message: "capacity takes named options — capacity(target, { from, weight?, within }) (chapter 34's one spelling; the positional arguments are deleted)"
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
const windowValue = options.within;
|
|
157
|
+
const source = options.from;
|
|
134
158
|
if (!isCapacityWindow(windowValue)) {
|
|
135
|
-
throw
|
|
159
|
+
throw new AuthoringError({
|
|
160
|
+
message: "a capacity window is minted only by within() — a structural literal skips the ban table (the canonical-utterance law)"
|
|
161
|
+
});
|
|
136
162
|
}
|
|
137
163
|
let weight = unitWeight;
|
|
138
|
-
if (
|
|
139
|
-
if (!isCapacityWeight(
|
|
140
|
-
throw
|
|
164
|
+
if (options.weight !== undefined) {
|
|
165
|
+
if (!isCapacityWeight(options.weight)) {
|
|
166
|
+
throw new AuthoringError({
|
|
167
|
+
message: "a capacity weight is minted only by weigh() — a structural literal skips the row-local weight wall"
|
|
168
|
+
});
|
|
141
169
|
}
|
|
142
|
-
weight =
|
|
170
|
+
weight = options.weight.weight;
|
|
143
171
|
}
|
|
144
172
|
const window = windowValue.window;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (weight.kind === "unit" && window.kind === "floor") {
|
|
149
|
-
throw errors.new("`{N..*}` on the unit instance — a bare count floor is refused; weigh the source (`<=[w]{N..*}` stays legal) or drop the bound");
|
|
150
|
-
}
|
|
151
|
-
// CapacityDimensionMixing twin — ruled 2026-07-24): a count of facts
|
|
173
|
+
// The unit-floor and vacuous-window ban tables are deleted (C01):
|
|
174
|
+
// `{1..*}`, `{N..*}` and `{0..*}` are accepted canonical laws now.
|
|
175
|
+
// CapacityDimensionMixing (C18) remains — genuinely different semantics.
|
|
152
176
|
if (weight.kind === "unit" && window.kind === "range" && window.hi.kind === "durationField") {
|
|
153
|
-
throw
|
|
177
|
+
throw new AuthoringError({
|
|
178
|
+
message: `a unit (count) window against the duration() bound on ${window.hi.field} mixes dimensions (C18) — weigh the source with weigh(duration(field)), or bound by a u64 field or literal`
|
|
179
|
+
});
|
|
154
180
|
}
|
|
155
181
|
const data = Object.freeze({
|
|
156
182
|
kind: "capacity",
|