@bjornpagen/bumbledb 0.12.0 → 0.14.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 +10 -8
- package/README.md +5 -4
- package/dist/capacity.d.ts +2 -2
- package/dist/closed.d.ts +4 -4
- package/dist/db.d.ts +109 -60
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +90 -71
- package/dist/db.js.map +1 -1
- package/dist/exhume.d.ts +2 -2
- package/dist/face.d.ts +3 -3
- package/dist/fields.d.ts +1 -1
- package/dist/index.d.ts +32 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/law.d.ts +5 -5
- package/dist/lower.d.ts +5 -5
- package/dist/marshal.d.ts +8 -30
- package/dist/marshal.d.ts.map +1 -1
- package/dist/marshal.js +4 -21
- package/dist/marshal.js.map +1 -1
- package/dist/native.d.ts +38 -21
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +4 -4
- package/dist/query/find.d.ts +18 -13
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +2 -2
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +10 -10
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +5 -4
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts +1 -1
- package/dist/query/parse-ir.d.ts.map +1 -1
- package/dist/query/parse-ir.js +11 -9
- package/dist/query/parse-ir.js.map +1 -1
- package/dist/query/run.d.ts +3 -3
- package/dist/query/scope.d.ts +5 -5
- package/dist/relation.d.ts +6 -17
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +3 -4
- package/dist/relation.js.map +1 -1
- package/dist/schema.d.ts +4 -4
- package/dist/statements.d.ts +4 -4
- package/package.json +4 -3
- package/src/db.ts +248 -168
- package/src/index.ts +8 -2
- package/src/marshal.ts +5 -35
- package/src/native.ts +34 -16
- package/src/query/find.ts +19 -14
- package/src/query/lower.ts +7 -6
- package/src/query/parse-ir.ts +11 -9
- package/src/relation.ts +3 -15
package/dist/query/parse-ir.js
CHANGED
|
@@ -41,27 +41,29 @@ function align(context, head, rules) {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
/** Count
|
|
44
|
+
/** Count is nullary; pack and folds require `over`. */
|
|
45
45
|
function parseFind(context, find) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (find.op.kind === "count") {
|
|
50
|
-
if ("over" in find) {
|
|
46
|
+
const raw = find;
|
|
47
|
+
if (find.kind === "count") {
|
|
48
|
+
if ("over" in raw) {
|
|
51
49
|
throw errors.new(`${context}: Count carries no over`);
|
|
52
50
|
}
|
|
53
51
|
return;
|
|
54
52
|
}
|
|
55
|
-
if (
|
|
56
|
-
|
|
53
|
+
if (find.kind === "pack" || find.kind === "aggregate" || find.kind === "aggregateMeasure") {
|
|
54
|
+
if (!("over" in raw)) {
|
|
55
|
+
throw errors.new(`${context}: ${find.kind} requires over`);
|
|
56
|
+
}
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
/** Head family of one find term: measure is a var slot;
|
|
59
|
+
/** Head family of one find term: measure is a var slot; count/pack/folds are aggregates. */
|
|
60
60
|
function findFamily(find) {
|
|
61
61
|
switch (find.kind) {
|
|
62
62
|
case "var":
|
|
63
63
|
case "measure":
|
|
64
64
|
return "var";
|
|
65
|
+
case "count":
|
|
66
|
+
case "pack":
|
|
65
67
|
case "aggregate":
|
|
66
68
|
case "aggregateMeasure":
|
|
67
69
|
return "aggregate";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-ir.js","sourceRoot":"","sources":["../../src/query/parse-ir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAG/C,oFAAoF;AACpF,SAAS,YAAY,CAAC,EAAW;IAChC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACjC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,QAAQ,EAAE,KAAK;QAC1D,KAAK,CAAC,YAAY,KAAK,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IACF,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3C,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,EAAiB,CAAA;AACzB,CAAC;AAED,0EAA0E;AAC1E,SAAS,KAAK,CAAC,OAAe,EAAE,IAA2B,EAAE,KAAwB;IACpF,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,MAAM,CAAC,GAAG,CACf,GAAG,OAAO,UAAU,SAAS,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,8BAA8B,IAAI,CAAC,MAAM,EAAE,CACzG,CAAA;QACF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,IAAI,EAAE,QAAQ;YACnD,SAAS,CAAC,GAAG,OAAO,SAAS,SAAS,SAAS,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;YAChE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;gBACrC,MAAM,MAAM,CAAC,GAAG,CACf,GAAG,OAAO,UAAU,SAAS,SAAS,QAAQ,OAAO,MAAM,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAC/F,CAAA;YACF,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"parse-ir.js","sourceRoot":"","sources":["../../src/query/parse-ir.ts"],"names":[],"mappings":"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"}
|
package/dist/query/run.d.ts
CHANGED
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
* SETS — no order or limit exists anywhere; hosts sort. The `Prepared`
|
|
16
16
|
* VALUE itself (no lifecycle, GC-reclaimed plan) lives in `#db.ts`.
|
|
17
17
|
*/
|
|
18
|
-
import type { FactValue, QueryParam } from "
|
|
19
|
-
import type { FindColumn } from "
|
|
20
|
-
import type { ParamEntry } from "
|
|
18
|
+
import type { FactValue, QueryParam } from "../native.js";
|
|
19
|
+
import type { FindColumn } from "./atom.js";
|
|
20
|
+
import type { ParamEntry } from "./scope.js";
|
|
21
21
|
/**
|
|
22
22
|
* Marshals the typed params object to the bridge's positional arguments,
|
|
23
23
|
* in registry order (= the lowering's dense `ParamId`s). A missing entry
|
package/dist/query/scope.d.ts
CHANGED
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
* {@link JoinOk} with its runtime twin {@link fieldJoins}, and the
|
|
30
30
|
* record-folding helpers `Params` and `Row` inference ride.
|
|
31
31
|
*/
|
|
32
|
-
import type { AnyClosed } from "
|
|
33
|
-
import type { AnyField, Infer } from "
|
|
34
|
-
import type { ClassLookup, ClassRecordOf, SchemaClasses } from "
|
|
35
|
-
import type { QueryParam } from "
|
|
36
|
-
import type { AnyRelation, RelationFields } from "
|
|
32
|
+
import type { AnyClosed } from "../closed.js";
|
|
33
|
+
import type { AnyField, Infer } from "../fields.js";
|
|
34
|
+
import type { ClassLookup, ClassRecordOf, SchemaClasses } from "../law.js";
|
|
35
|
+
import type { QueryParam } from "../native.js";
|
|
36
|
+
import type { AnyRelation, RelationFields } from "../relation.js";
|
|
37
37
|
/**
|
|
38
38
|
* The runtime discriminant of query term values. Host literals (bigints,
|
|
39
39
|
* strings, interval objects) never carry it, so "is this position a term
|
package/dist/relation.d.ts
CHANGED
|
@@ -7,17 +7,12 @@
|
|
|
7
7
|
* verified against their roster at construction). Fields are addressed by
|
|
8
8
|
* NAME everywhere — statements (`on(R, "holder")`), selections, and match
|
|
9
9
|
* records all spell the field's own name, checked by type
|
|
10
|
-
* (`FaceFields`/`MatchShape`). `Fact
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* (resupply-to-preserve-identity), typed exactly.
|
|
10
|
+
* (`FaceFields`/`MatchShape`). `Fact<>` is the inferred row object type
|
|
11
|
+
* at BARE structural value types (no brands): every field is present,
|
|
12
|
+
* including fresh cells. Mint with `tx.reserve` before insert.
|
|
14
13
|
*/
|
|
15
|
-
import { type AnyField, type Infer } from "
|
|
16
|
-
import { type LiteralSetSpec } from "
|
|
17
|
-
/** Flattens an intersection into one displayed object type (hover legibility). */
|
|
18
|
-
type Flatten<T> = {
|
|
19
|
-
[K in keyof T]: T[K];
|
|
20
|
-
};
|
|
14
|
+
import { type AnyField, type Infer } from "./fields.js";
|
|
15
|
+
import { type LiteralSetSpec } from "./spec.js";
|
|
21
16
|
/**
|
|
22
17
|
* Resolves a whole `where()` selection against the declared fields, in the
|
|
23
18
|
* selection's written order (macro parity: σ is spelled, not sorted). An
|
|
@@ -96,12 +91,6 @@ type FreshKeys<R extends AnyRelation> = {
|
|
|
96
91
|
readonly fresh: true;
|
|
97
92
|
} ? K : never;
|
|
98
93
|
}[keyof RelationFields<R>];
|
|
99
|
-
/**
|
|
100
|
-
* The inferred row object type of a relation as INSERTED: fresh fields
|
|
101
|
-
* optional — omitted, the engine mints; supplied, identity is preserved
|
|
102
|
-
* (the ETL resupply idiom).
|
|
103
|
-
*/
|
|
104
|
-
type InsertFact<R extends AnyRelation> = Flatten<Omit<Fact<R>, FreshKeys<R>> & Partial<Pick<Fact<R>, FreshKeys<R>>>>;
|
|
105
94
|
/**
|
|
106
95
|
* Declares one relation: `relation("Account", { id: u64.fresh,
|
|
107
96
|
* holder: u64, kind: Kind.id, ... })` — every field is a pure-structure
|
|
@@ -113,6 +102,6 @@ type InsertFact<R extends AnyRelation> = Flatten<Omit<Fact<R>, FreshKeys<R>> & P
|
|
|
113
102
|
* on. The returned value is frozen and side-effect free.
|
|
114
103
|
*/
|
|
115
104
|
declare function relation<const Name extends string, Fields extends FieldsShape>(name: Name, fields: Fields): Relation<Name, Fields>;
|
|
116
|
-
export type { AnyRelation, AnySelected, Fact, FieldsShape, FreshKeys,
|
|
105
|
+
export type { AnyRelation, AnySelected, Fact, FieldsShape, FreshKeys, Relation, RelationData, RelationField, RelationFields, Selected, SelectionBinding, SelectionInput };
|
|
117
106
|
export { relation, resolveSelection };
|
|
118
107
|
//# sourceMappingURL=relation.d.ts.map
|
package/dist/relation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/relation.js
CHANGED
|
@@ -7,10 +7,9 @@
|
|
|
7
7
|
* verified against their roster at construction). Fields are addressed by
|
|
8
8
|
* NAME everywhere — statements (`on(R, "holder")`), selections, and match
|
|
9
9
|
* records all spell the field's own name, checked by type
|
|
10
|
-
* (`FaceFields`/`MatchShape`). `Fact
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* (resupply-to-preserve-identity), typed exactly.
|
|
10
|
+
* (`FaceFields`/`MatchShape`). `Fact<>` is the inferred row object type
|
|
11
|
+
* at BARE structural value types (no brands): every field is present,
|
|
12
|
+
* including fresh cells. Mint with `tx.reserve` before insert.
|
|
14
13
|
*/
|
|
15
14
|
import * as errors from "@superbuilders/errors";
|
|
16
15
|
import { assertDeclarationOrderKey, assertDeclarationRecord, literalOf } from "#fields.ts";
|
package/dist/relation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
* DELIBERATELY left to the engine's `SchemaError` at `Db.create` — the
|
|
9
9
|
* same judge, the same two-boundary split as Rust.
|
|
10
10
|
*/
|
|
11
|
-
import type { AnyClosed } from "
|
|
12
|
-
import { type ClassesOf, type LawfulStatements, type SchemaClasses } from "
|
|
13
|
-
import type { AnyRelation } from "
|
|
14
|
-
import { type Statement } from "
|
|
11
|
+
import type { AnyClosed } from "./closed.js";
|
|
12
|
+
import { type ClassesOf, type LawfulStatements, type SchemaClasses } from "./law.js";
|
|
13
|
+
import type { AnyRelation } from "./relation.js";
|
|
14
|
+
import { type Statement } from "./statements.js";
|
|
15
15
|
/** One member of a schema's relation record. */
|
|
16
16
|
type SchemaRelation = AnyRelation | AnyClosed;
|
|
17
17
|
/** The relation record a schema is generic over — what `Db` and queries key on. */
|
package/dist/statements.d.ts
CHANGED
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
* `Db.create`/`Db.open` (the two-boundary split, engine as final
|
|
34
34
|
* authority).
|
|
35
35
|
*/
|
|
36
|
-
import { type BoundsOnTarget, type CapacityWeight, type CapacityWindow, type UnitDimensionBan, type UnitWindowBan, type WeightOnSource } from "
|
|
37
|
-
import { type AnyFace, type FaceData, type SameArity, type SameShapes } from "
|
|
38
|
-
import type { AnyRelation, RelationFields } from "
|
|
39
|
-
import { type CapacityWindowSpec, type WeightSpec } from "
|
|
36
|
+
import { type BoundsOnTarget, type CapacityWeight, type CapacityWindow, type UnitDimensionBan, type UnitWindowBan, type WeightOnSource } from "./capacity.js";
|
|
37
|
+
import { type AnyFace, type FaceData, type SameArity, type SameShapes } from "./face.js";
|
|
38
|
+
import type { AnyRelation, RelationFields } from "./relation.js";
|
|
39
|
+
import { type CapacityWindowSpec, type WeightSpec } from "./spec.js";
|
|
40
40
|
/** A `key()` statement's runtime description — owner and projection carried at exact types. */
|
|
41
41
|
interface KeyData<R extends AnyRelation, Projection extends readonly string[]> {
|
|
42
42
|
readonly kind: "key";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bjornpagen/bumbledb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Type-theoretic TypeScript SDK for the bumbledb embedded relational engine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"imports": {
|
|
13
13
|
"#test/*.ts": "./test/*.ts",
|
|
14
14
|
"#*.ts": {
|
|
15
|
-
"
|
|
15
|
+
"bumbledb-src": "./src/*.ts",
|
|
16
|
+
"types": "./dist/*.d.ts",
|
|
16
17
|
"default": "./dist/*.js"
|
|
17
18
|
}
|
|
18
19
|
},
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
},
|
|
54
55
|
"private": false,
|
|
55
56
|
"optionalDependencies": {
|
|
56
|
-
"@bjornpagen/bumbledb-darwin-arm64": "0.
|
|
57
|
+
"@bjornpagen/bumbledb-darwin-arm64": "0.14.0"
|
|
57
58
|
},
|
|
58
59
|
"scripts": {
|
|
59
60
|
"build": "node scripts/build.ts",
|