@bjornpagen/bumbledb 0.5.0 → 0.7.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 +140 -136
- package/README.md +24 -11
- package/dist/closed.d.ts +7 -5
- package/dist/closed.d.ts.map +1 -1
- package/dist/closed.js +4 -1
- package/dist/closed.js.map +1 -1
- package/dist/count.js +1 -1
- package/dist/count.js.map +1 -1
- package/dist/db.d.ts +110 -73
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +172 -116
- package/dist/db.js.map +1 -1
- package/dist/exhume.d.ts +22 -10
- package/dist/exhume.d.ts.map +1 -1
- package/dist/exhume.js +42 -9
- package/dist/exhume.js.map +1 -1
- package/dist/face.d.ts +10 -6
- package/dist/face.d.ts.map +1 -1
- package/dist/face.js.map +1 -1
- package/dist/fields.d.ts +38 -16
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +33 -8
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/lower.d.ts +9 -9
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +17 -12
- package/dist/lower.js.map +1 -1
- package/dist/marshal.d.ts +17 -7
- package/dist/marshal.d.ts.map +1 -1
- package/dist/marshal.js +32 -10
- package/dist/marshal.js.map +1 -1
- package/dist/native.d.ts +60 -9
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +199 -203
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +39 -48
- package/dist/query/atom.js.map +1 -1
- package/dist/query/find.d.ts +116 -0
- package/dist/query/find.d.ts.map +1 -0
- package/dist/query/{select.js → find.js} +22 -22
- package/dist/query/find.js.map +1 -0
- package/dist/query/lower.d.ts +131 -158
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +505 -494
- package/dist/query/lower.js.map +1 -1
- package/dist/query/predicate.d.ts +22 -14
- package/dist/query/predicate.d.ts.map +1 -1
- package/dist/query/predicate.js +35 -42
- package/dist/query/predicate.js.map +1 -1
- package/dist/query/run.d.ts +8 -8
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +16 -21
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +139 -74
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +80 -33
- package/dist/query/scope.js.map +1 -1
- package/dist/relation.d.ts.map +1 -1
- package/dist/relation.js +3 -1
- package/dist/relation.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +12 -2
- package/dist/schema.js.map +1 -1
- package/dist/spec.d.ts +20 -10
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/statements.d.ts +22 -2
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +26 -5
- package/dist/statements.js.map +1 -1
- package/package.json +3 -3
- package/src/closed.ts +13 -7
- package/src/count.ts +1 -1
- package/src/db.ts +293 -177
- package/src/exhume.ts +48 -11
- package/src/face.ts +13 -6
- package/src/fields.ts +51 -15
- package/src/index.ts +12 -8
- package/src/lower.ts +17 -12
- package/src/marshal.ts +38 -13
- package/src/native.ts +59 -8
- package/src/query/atom.ts +297 -275
- package/src/query/find.ts +212 -0
- package/src/query/lower.ts +692 -724
- package/src/query/predicate.ts +37 -45
- package/src/query/run.ts +17 -22
- package/src/query/scope.ts +184 -90
- package/src/relation.ts +3 -1
- package/src/schema.ts +14 -2
- package/src/spec.ts +21 -9
- package/src/statements.ts +30 -6
- package/dist/query/select.d.ts +0 -128
- package/dist/query/select.d.ts.map +0 -1
- package/dist/query/select.js.map +0 -1
- package/src/query/select.ts +0 -215
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ classes, inferred query rows, and rejections that arrive as data rather than
|
|
|
27
27
|
exceptions.
|
|
28
28
|
|
|
29
29
|
```ts
|
|
30
|
-
import { bool, closed, contained, Db, gt, type Infer, key, on, query, relation, schema, u64 } from "@bjornpagen/bumbledb"
|
|
30
|
+
import { bool, closed, contained, Db, gt, type Infer, key, on, query, relation, schema, u64, v } from "@bjornpagen/bumbledb"
|
|
31
31
|
|
|
32
32
|
// A closed relation: a sealed roster of axioms with typed payload columns.
|
|
33
33
|
// At the host surface a handle is its NAME — the string literal "DirectPass"
|
|
@@ -75,24 +75,37 @@ if (!result.ok) {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
// Query: Datalog as values.
|
|
79
|
-
//
|
|
78
|
+
// Query: Datalog as values. v(R) mints a fresh variable per column, typed by
|
|
79
|
+
// the column's law-class; reusing one by object reference IS the join, and
|
|
80
|
+
// rows are typed from the find keys. Params are typed by use.
|
|
80
81
|
// `gt` is one of the free comparison exports.
|
|
81
82
|
const certifiedAbove = query(Review).rule((r) => {
|
|
82
|
-
const a =
|
|
83
|
-
const
|
|
84
|
-
const rank = r.var("rank")
|
|
83
|
+
const { attempt: a, kind: k } = v(Certificate)
|
|
84
|
+
const { rank } = v(Kind)
|
|
85
85
|
return r
|
|
86
86
|
.match(Certificate, { attempt: a, kind: k })
|
|
87
|
-
.match(Kind, { id: k, mastered: true, rank }) // ψ on the read side too
|
|
87
|
+
.match(Kind, { id: k, mastered: true, rank }) // k reused at Kind.id — that reuse is the join; ψ on the read side too
|
|
88
88
|
.where(gt(rank, r.param("floor")))
|
|
89
|
-
.
|
|
89
|
+
.find({ a, rank })
|
|
90
90
|
})
|
|
91
91
|
|
|
92
92
|
const prepared = db.prepare(certifiedAbove)
|
|
93
93
|
const rows = db.execute(prepared, { floor: 15n }) // rows: { a: bigint; rank: bigint }[]
|
|
94
94
|
console.log(rows)
|
|
95
95
|
|
|
96
|
+
// Lifetimes are disposables, never close() (Node 26 explicit resource
|
|
97
|
+
// management): a read scope acquired without a callback is released by its
|
|
98
|
+
// `using` declaration at scope exit — deterministic, in the language's own
|
|
99
|
+
// syntax. `db.read(fn)` remains the callback spelling of the same scope.
|
|
100
|
+
{
|
|
101
|
+
using snap = db.read()
|
|
102
|
+
console.log(snap.generation, snap.execute(prepared, { floor: 15n }))
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// explain(): the plan as data — what the engine did with the query, plan
|
|
106
|
+
// sections and counters as plain values (a diagnostic surface, unfrozen).
|
|
107
|
+
console.log(db.explain(prepared, { floor: 15n }).emits)
|
|
108
|
+
|
|
96
109
|
// Host dispatch over the sealed roster is native `switch` narrowing over
|
|
97
110
|
// the handle union ("DirectPass" | "JudgedPass" | "Failed") — exhaustive
|
|
98
111
|
// via `satisfies never`; the sealed axioms read back typed.
|
|
@@ -119,9 +132,9 @@ The drizzle law governs this surface: the SDK's job at the host boundary is tran
|
|
|
119
132
|
|
|
120
133
|
- The structural type kernel — fields as pure structure (`bool`, `bytes`, `i64`, `u64`, `str`, `interval`, `span`), `relation()`, and `closed()` sealed rosters with typed axiom payloads. A closed reference's value type IS the handle union (`Infer` speaks it); dispatch is native `switch` narrowing with `satisfies never` exhaustiveness. Domains are never declared: `schema()` computes every field's class from the statement list.
|
|
121
134
|
- The statement algebra — `schema()`, `key`, `contained`, `mirrors`, `window`; faces via `on` (set membership is a plain array in `.where`); counts via `exactly`, `atLeast`, `atMost`, `between`, `none`; ψ-selection via `.where` on relations and closed rosters.
|
|
122
|
-
- The `Db` runtime — `Db.create`/`Db.open`, path-cached stores, transactions, typed violations, scoped snapshot reads, the
|
|
123
|
-
- The query surface — Datalog as values, `query(S).rule(r => ...)`:
|
|
124
|
-
- The exhume surface — `Db.exhume`, the schema-independent read path: a store's self-described shapes and raw facts by name, with typed refusals (`ErrExhumeNoDescriptor`, `ErrExhumeFormatMismatch`, `ErrExhumeCorruption`).
|
|
135
|
+
- The `Db` runtime — `Db.create`/`Db.open`, path-cached stores, transactions, typed violations, scoped snapshot reads (`db.read(fn)`, or `using snap = db.read()` — lifetimes are disposables, never `close()`), the write verbs with `abandon` (returning `abandon(payload)` from `write` or `writeWitnessed` rolls the transaction back; the outcome arm is in the result type), and `db.explain` — the prepared plan as data.
|
|
136
|
+
- The query surface — Datalog as values, `query(S).rule(r => ...)`: `v(R)`-minted vars (identity is the object reference — reusing one across binding positions IS the join), `find({...})` named result heads (renames are real), params typed by use unchanged, negation, aggregates, and the free comparison/connective exports (`eq`, `ne`, `lt`, `le`, `gt`, `ge`, `and`, `or`, `not`, `allen`/`ALLEN`, `pointIn`); set membership at a closed field is a plain array in the match record (`r.match(Ticket, { priority: ["Normal", "Urgent"] })` — closed-only there: an ordinary field's membership is a bound `r.inSet` param); stratified recursion via `program()`; `db.prepare` as a plain value.
|
|
137
|
+
- The exhume surface — `Db.exhume`, the schema-independent read path: a store's self-described shapes and raw facts by name, with typed refusals (`ErrExhumeNoDescriptor`, `ErrExhumeFormatMismatch`, `ErrExhumeCorruption`). A disposable lifetime: `using exhumed = await Db.exhume(path)` releases the store's exclusive lock at scope exit.
|
|
125
138
|
|
|
126
139
|
## Cookbook
|
|
127
140
|
|
package/dist/closed.d.ts
CHANGED
|
@@ -98,12 +98,14 @@ interface ClosedCore<Name extends string, Handles extends string, Cols extends R
|
|
|
98
98
|
* The closed reference descriptor: `kind: Kind.id` in another relation's
|
|
99
99
|
* field block is the reference through which handle literals become
|
|
100
100
|
* legal in that relation's selections. Pure structure plus the PRECISE
|
|
101
|
-
* roster (`ClosedIdField<Handles>` — the handle union is the
|
|
102
|
-
* value type under `Infer
|
|
103
|
-
*
|
|
104
|
-
*
|
|
101
|
+
* roster (`ClosedIdField<Name, Handles>` — the handle union is the
|
|
102
|
+
* field's value type under `Infer`, and the name literal keeps two
|
|
103
|
+
* same-shaped vocabularies distinct at the type tier, matching the
|
|
104
|
+
* runtime's roster-identity judgment); the referencing field's domain is
|
|
105
|
+
* law-born: `schema()` computes it from the declared containment
|
|
106
|
+
* (`"Kind.id"`, the generator class).
|
|
105
107
|
*/
|
|
106
|
-
readonly id: ClosedIdField<Handles>;
|
|
108
|
+
readonly id: ClosedIdField<Name, Handles>;
|
|
107
109
|
readonly data: ClosedData;
|
|
108
110
|
/** Payload readback: handle to its declared column values, bare and structural. */
|
|
109
111
|
readonly axioms: Axioms<Handles, Cols>;
|
package/dist/closed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closed.d.ts","sourceRoot":"","sources":["../src/closed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACN,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"closed.d.ts","sourceRoot":"","sources":["../src/closed.ts"],"names":[],"mappings":"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"}
|
package/dist/closed.js
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* shape.
|
|
31
31
|
*/
|
|
32
32
|
import * as errors from "@superbuilders/errors";
|
|
33
|
-
import { assertDeclarationOrderKey, literalOf } from "#fields.ts";
|
|
33
|
+
import { assertDeclarationOrderKey, assertDeclarationRecord, literalOf } from "#fields.ts";
|
|
34
34
|
import { resolveSelection } from "#relation.ts";
|
|
35
35
|
/**
|
|
36
36
|
* THE relation-kind discriminant — the ONE spelling of "is this schema
|
|
@@ -160,9 +160,11 @@ function closedBare(name, handles) {
|
|
|
160
160
|
* axioms record's own keys.
|
|
161
161
|
*/
|
|
162
162
|
function closedPayload(name, columns, axioms) {
|
|
163
|
+
assertDeclarationRecord(`closed relation ${name} columns`, columns);
|
|
163
164
|
for (const columnName of Object.keys(columns)) {
|
|
164
165
|
assertDeclarationOrderKey(`closed relation ${name} column`, columnName);
|
|
165
166
|
}
|
|
167
|
+
assertDeclarationRecord(`closed relation ${name} axioms`, axioms);
|
|
166
168
|
const handles = Object.keys(axioms);
|
|
167
169
|
for (const handle of handles) {
|
|
168
170
|
assertDeclarationOrderKey(`closed relation ${name} handle`, handle);
|
|
@@ -192,6 +194,7 @@ function surfaceMinted(value, cols) {
|
|
|
192
194
|
* ψ-selection `where()`.
|
|
193
195
|
*/
|
|
194
196
|
function mintClosed(name, handles, columns, axioms) {
|
|
197
|
+
assertDeclarationOrderKey("closed relation", name);
|
|
195
198
|
if (handles.length === 0) {
|
|
196
199
|
throw errors.new(`closed relation ${name}: at least one handle is required (an empty vocabulary declares nothing)`);
|
|
197
200
|
}
|
package/dist/closed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closed.js","sourceRoot":"","sources":["../src/closed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAEN,yBAAyB,
|
|
1
|
+
{"version":3,"file":"closed.js","sourceRoot":"","sources":["../src/closed.ts"],"names":[],"mappings":"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"}
|
package/dist/count.js
CHANGED
|
@@ -46,7 +46,7 @@ function exactly(n) {
|
|
|
46
46
|
throw errors.new(`window counts are u64: exactly(${n}) is out of domain`);
|
|
47
47
|
}
|
|
48
48
|
if (n === 0n) {
|
|
49
|
-
throw errors.new("`{0
|
|
49
|
+
throw errors.new("`{0}` is the exclusion — write none");
|
|
50
50
|
}
|
|
51
51
|
return admit(Object.freeze({ kind: "exact", n }));
|
|
52
52
|
}
|
package/dist/count.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count.js","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAG/C,sDAAsD;AACtD,MAAM,SAAS,GAAe,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AAErE;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAkB,MAAM,CAAC,yBAAyB,CAAC,CAAA;AAYjE,4DAA4D;AAC5D,SAAS,KAAK,CAAC,MAAkB;IAChC,MAAM,KAAK,GAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAA;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC;AAyED;;;;GAIG;AACH,SAAS,OAAO,CAAyB,CAAoB;IAC5D,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,oBAAoB,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"count.js","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -5,16 +5,19 @@
|
|
|
5
5
|
* keyed to statements, read through scoped snapshots, and run the witnessed
|
|
6
6
|
* read-compute-write loop — all typed by the schema's relations record.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
8
|
+
* LIFETIMES ARE DISPOSABLES, never `close()` (ruled 2026-07-23, R12): no
|
|
9
|
+
* value this module returns carries a close spelling — release is
|
|
10
|
+
* deterministic and scope-shaped in the language's own syntax. `Db` values
|
|
11
|
+
* are CACHED per canonical path for the life of the process (a best-effort
|
|
12
|
+
* exit hook closes the cached environments; correctness never depends on it
|
|
13
|
+
* — the engine fsyncs every commit, so a process that dies without the hook
|
|
14
|
+
* loses nothing that was committed). Snapshots are scope-shaped both ways:
|
|
15
|
+
* `read(fn)` opens one before `fn` and closes it after unconditionally
|
|
16
|
+
* (the {@link ReadScope} handed to `fn` is invalidated the moment `fn`
|
|
17
|
+
* returns), and `using snap = db.read()` hands the caller the lifetime,
|
|
18
|
+
* released by the scope's own `Symbol.dispose` at scope exit. Prepared
|
|
19
|
+
* plans are plain values whose engine-side half is reclaimed by a GC
|
|
20
|
+
* finalizer — reclamation only, never correctness.
|
|
18
21
|
*
|
|
19
22
|
* PROCESS MODEL: one process, one exclusive-lock handle per store. The
|
|
20
23
|
* cached `Db` value owns the LMDB environment's exclusive lock until
|
|
@@ -31,12 +34,12 @@
|
|
|
31
34
|
*/
|
|
32
35
|
import type { Exhumed } from "#exhume.ts";
|
|
33
36
|
import { type KeyFact, type Minted } from "#marshal.ts";
|
|
34
|
-
import type { FactValue, Staleness, StatementKindTag } from "#native.ts";
|
|
37
|
+
import type { Explain, FactValue, Staleness, StatementKindTag } from "#native.ts";
|
|
35
38
|
import type { Query } from "#query/lower.ts";
|
|
36
39
|
import type { ParamsRecord } from "#query/scope.ts";
|
|
37
40
|
import type { AnyRelation, Fact, InsertFact } from "#relation.ts";
|
|
38
41
|
import type { Schema, SchemaRelations } from "#schema.ts";
|
|
39
|
-
import type
|
|
42
|
+
import { type KeyStatement, type Statement } from "#statements.ts";
|
|
40
43
|
/**
|
|
41
44
|
* The ordinary (writable, scannable) relations of a schema's record — the
|
|
42
45
|
* only values the runtime methods accept: closed relations lack the
|
|
@@ -94,19 +97,39 @@ interface Violation<Rels extends SchemaRelations> {
|
|
|
94
97
|
readonly facts: readonly OffendingFact<Rels>[];
|
|
95
98
|
}
|
|
96
99
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
+
* The abandoned arm of a write result (ruled 2026-07-23, R10): present in
|
|
101
|
+
* the type EXACTLY when the callback can abandon — the conditional
|
|
102
|
+
* distributes over `R`, so a callback with no `Abandon` arm contributes
|
|
103
|
+
* `never` and the arm vanishes from the sum. The outcome is in the type;
|
|
104
|
+
* a dead arm is never handled.
|
|
100
105
|
*/
|
|
101
|
-
type
|
|
106
|
+
type AbandonedArm<R> = R extends Abandon<infer P> ? {
|
|
107
|
+
readonly ok: false;
|
|
108
|
+
readonly abandoned: P;
|
|
109
|
+
} : never;
|
|
110
|
+
/**
|
|
111
|
+
* A write's domain outcome, one sum for BOTH verbs (ruled 2026-07-23,
|
|
112
|
+
* R10): the committed generation; the COMPLETE violation set (every
|
|
113
|
+
* violated statement cited once, per direction for a containment, in
|
|
114
|
+
* materialized statement order); or the callback's own abandon payload —
|
|
115
|
+
* commit-vs-abandon is in the type, so a caller's explicit decline to
|
|
116
|
+
* commit can never be silently discarded. Narrows on `.ok`, then (when the
|
|
117
|
+
* callback can abandon) on `"violations" in result`.
|
|
118
|
+
*/
|
|
119
|
+
type WriteResult<Rels extends SchemaRelations, R = void> = {
|
|
102
120
|
readonly ok: true;
|
|
103
121
|
readonly generation: bigint;
|
|
104
122
|
} | {
|
|
105
123
|
readonly ok: false;
|
|
106
124
|
readonly violations: readonly Violation<Rels>[];
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
|
|
125
|
+
} | AbandonedArm<R>;
|
|
126
|
+
/**
|
|
127
|
+
* The delta-building callback of a write: runs synchronously against the
|
|
128
|
+
* live transaction. Returning {@link abandon}`(payload)` rolls the
|
|
129
|
+
* transaction back (R10) — the result type carries the payload arm exactly
|
|
130
|
+
* then.
|
|
131
|
+
*/
|
|
132
|
+
type DeltaBuild<Rels extends SchemaRelations, R = void> = (tx: Tx<Rels>) => R;
|
|
110
133
|
/**
|
|
111
134
|
* The runtime discriminant of {@link Abandon} values — a property probe is
|
|
112
135
|
* how `writeWitnessed` distinguishes "abort without committing" from an
|
|
@@ -114,44 +137,24 @@ type DeltaBuild<Rels extends SchemaRelations> = (tx: Tx<Rels>) => void;
|
|
|
114
137
|
*/
|
|
115
138
|
declare const abandonMark: unique symbol;
|
|
116
139
|
/**
|
|
117
|
-
* The abandon sentinel {@link abandon} builds: returning one from a
|
|
118
|
-
* `writeWitnessed` callback
|
|
119
|
-
* commit is ever issued) and surfaces the payload as
|
|
120
|
-
* `{ ok: false, abandoned: payload }
|
|
140
|
+
* The abandon sentinel {@link abandon} builds: returning one from a `write`
|
|
141
|
+
* or `writeWitnessed` callback rolls the transaction back WITHOUT
|
|
142
|
+
* committing (no empty commit is ever issued) and surfaces the payload as
|
|
143
|
+
* `{ ok: false, abandoned: payload }` (ruled 2026-07-23, R10 — the
|
|
144
|
+
* sentinel's contract is unconditional, whichever write verb received it).
|
|
121
145
|
*/
|
|
122
146
|
interface Abandon<P> {
|
|
123
147
|
readonly [abandonMark]: true;
|
|
124
148
|
readonly payload: P;
|
|
125
149
|
}
|
|
126
150
|
/**
|
|
127
|
-
* Wraps a payload in the {@link Abandon} sentinel — the one way a
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
151
|
+
* Wraps a payload in the {@link Abandon} sentinel — the one way a write
|
|
152
|
+
* callback declines to commit: `return abandon(payload)` aborts the delta
|
|
153
|
+
* (nothing is committed, not even an empty commit) and the write resolves
|
|
154
|
+
* to `{ ok: false, abandoned: payload }`, from `write` and `writeWitnessed`
|
|
155
|
+
* alike (R10).
|
|
131
156
|
*/
|
|
132
157
|
declare function abandon<P>(payload: P): Abandon<P>;
|
|
133
|
-
/**
|
|
134
|
-
* The abandon payload type a `writeWitnessed` callback's return type
|
|
135
|
-
* implies: the payload of its `Abandon` arm, `never` when the callback can
|
|
136
|
-
* never abandon (the `abandoned` outcome is then statically unreachable).
|
|
137
|
-
*/
|
|
138
|
-
type AbandonedPayload<R> = R extends Abandon<infer P> ? P : never;
|
|
139
|
-
/**
|
|
140
|
-
* `writeWitnessed`'s domain outcome: the committed generation, the COMPLETE
|
|
141
|
-
* engine violation set (rejection-as-data, exactly {@link WriteResult}'s
|
|
142
|
-
* false arm), or the callback's own abandon payload. Narrows on `.ok`, then
|
|
143
|
-
* on `"violations" in result`.
|
|
144
|
-
*/
|
|
145
|
-
type WitnessedWriteResult<Rels extends SchemaRelations, R> = {
|
|
146
|
-
readonly ok: true;
|
|
147
|
-
readonly generation: bigint;
|
|
148
|
-
} | {
|
|
149
|
-
readonly ok: false;
|
|
150
|
-
readonly violations: readonly Violation<Rels>[];
|
|
151
|
-
} | {
|
|
152
|
-
readonly ok: false;
|
|
153
|
-
readonly abandoned: AbandonedPayload<R>;
|
|
154
|
-
};
|
|
155
158
|
/**
|
|
156
159
|
* One live write transaction: the submitted delta with the engine's
|
|
157
160
|
* FINAL-STATE point-read view (base + pending delta — the exact state the
|
|
@@ -163,10 +166,19 @@ interface Tx<Rels extends SchemaRelations> {
|
|
|
163
166
|
/**
|
|
164
167
|
* Records one insert. Omitted fresh fields are MINTED through the
|
|
165
168
|
* engine's alloc lane and returned as bare bigints; supplying them instead
|
|
166
|
-
* preserves identity (the resupply idiom). Returns
|
|
167
|
-
*
|
|
169
|
+
* preserves identity (the resupply idiom). Returns `{ changed, ...fresh }`
|
|
170
|
+
* (ruled 2026-07-23, R11): the engine's changed-state report — the Rust
|
|
171
|
+
* surface's `insert(&fact) -> bool` bijection `delete` always honored —
|
|
172
|
+
* beside the relation's fresh cells, minted or resupplied. The
|
|
173
|
+
* idempotent-replay lane reads the bit from the insert itself; no extra
|
|
174
|
+
* `contains` round trip exists. The flattened shape cannot carry a FRESH
|
|
175
|
+
* cell literally named `changed` beside the report, so admission refuses
|
|
176
|
+
* that one spelling ({@link refuseShadowedChanged}) — never a silent
|
|
177
|
+
* shadow here.
|
|
168
178
|
*/
|
|
169
|
-
insert<R extends MemberRelation<Rels>>(relation: R, fact: InsertFact<R>):
|
|
179
|
+
insert<R extends MemberRelation<Rels>>(relation: R, fact: InsertFact<R>): {
|
|
180
|
+
readonly changed: boolean;
|
|
181
|
+
} & Minted<R>;
|
|
170
182
|
/** Records one delete; `true` iff the final state changed. */
|
|
171
183
|
delete<R extends MemberRelation<Rels>>(relation: R, fact: Fact<R>): boolean;
|
|
172
184
|
/** Final-state membership of one complete fact. */
|
|
@@ -184,19 +196,20 @@ interface Tx<Rels extends SchemaRelations> {
|
|
|
184
196
|
get<R extends MemberRelation<Rels>, const P extends readonly string[]>(relation: R, keyStatement: KeyStatement<R, P>, key: DeclaredKeyFact<R, P>): Fact<R> | undefined;
|
|
185
197
|
}
|
|
186
198
|
/**
|
|
187
|
-
* The read view one `db.read(fn)` call scopes
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
199
|
+
* The read view one `db.read(fn)` call scopes — or one `using snap =
|
|
200
|
+
* db.read()` acquisition owns (ruled 2026-07-23, R12: lifetimes are
|
|
201
|
+
* disposables, never `close()`). The callback form invalidates the value
|
|
202
|
+
* when `fn` returns; the `using` form releases it at scope exit through
|
|
203
|
+
* `Symbol.dispose` — either way the release is deterministic and
|
|
204
|
+
* scope-shaped, every later verb call throws a typed used-after-scope
|
|
205
|
+
* error, and the underlying snapshot (with its LMDB reader slot) is
|
|
206
|
+
* already closed.
|
|
193
207
|
*/
|
|
194
|
-
interface ReadScope<Rels extends SchemaRelations> {
|
|
208
|
+
interface ReadScope<Rels extends SchemaRelations> extends Disposable {
|
|
195
209
|
/**
|
|
196
|
-
* The committed generation this scope witnessed —
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* open and the generation read.
|
|
210
|
+
* The committed generation this scope witnessed — carried by the
|
|
211
|
+
* snapshot open itself (one crossing, inside the snapshot's own
|
|
212
|
+
* transaction), so it is atomic with the snapshot by construction.
|
|
200
213
|
*/
|
|
201
214
|
readonly generation: bigint;
|
|
202
215
|
/** Full-relation export in row-id order, decoded to bare structural facts. */
|
|
@@ -221,6 +234,16 @@ interface ReadScope<Rels extends SchemaRelations> {
|
|
|
221
234
|
* execution spelling ({@link Prepared} carries no `execute`).
|
|
222
235
|
*/
|
|
223
236
|
execute<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Row[];
|
|
237
|
+
/**
|
|
238
|
+
* Plan introspection as data (ruled 2026-07-23, R13): runs the prepared
|
|
239
|
+
* query against this scope's snapshot with counting instrumentation
|
|
240
|
+
* (the engine's ANALYZE semantics) and returns the structured
|
|
241
|
+
* {@link Explain} report — plan sections and counters as plain values,
|
|
242
|
+
* so the host reads what the engine did with its query without a
|
|
243
|
+
* second toolchain. A diagnostic surface, EXPLICITLY UNFROZEN: the
|
|
244
|
+
* shape follows the plan representation wherever it goes.
|
|
245
|
+
*/
|
|
246
|
+
explain<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Explain;
|
|
224
247
|
}
|
|
225
248
|
/**
|
|
226
249
|
* The module-private inference slot of {@link Prepared}: an optional symbol
|
|
@@ -270,6 +293,14 @@ interface Db<Rels extends SchemaRelations> {
|
|
|
270
293
|
* when `fn` returns — a used-after-scope call throws a typed error.
|
|
271
294
|
*/
|
|
272
295
|
read<T>(fn: (snap: ReadScope<Rels>) => T): T;
|
|
296
|
+
/**
|
|
297
|
+
* The `using` acquisition (ruled 2026-07-23, R12): `using snap =
|
|
298
|
+
* db.read()` — the caller owns the scope's lifetime, and the scope's
|
|
299
|
+
* `Symbol.dispose` releases the snapshot deterministically at scope
|
|
300
|
+
* exit, in the language's own syntax. Lifetimes are disposables, never
|
|
301
|
+
* `close()`.
|
|
302
|
+
*/
|
|
303
|
+
read(): ReadScope<Rels>;
|
|
273
304
|
/** `db.scan(r)` === `db.read(snap => snap.scan(r))` — the symmetry rule. */
|
|
274
305
|
scan<R extends MemberRelation<Rels>>(relation: R): Fact<R>[];
|
|
275
306
|
/** `db.get(r, k)` === `db.read(snap => snap.get(r, k))` — the symmetry rule. */
|
|
@@ -280,12 +311,18 @@ interface Db<Rels extends SchemaRelations> {
|
|
|
280
311
|
contains<R extends MemberRelation<Rels>>(relation: R, fact: Fact<R>): boolean;
|
|
281
312
|
/** `db.execute(p, params)` === `db.read(snap => snap.execute(p, params))` — the symmetry rule. */
|
|
282
313
|
execute<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Row[];
|
|
314
|
+
/** `db.explain(p, params)` === `db.read(snap => snap.explain(p, params))` — the symmetry rule (R13). */
|
|
315
|
+
explain<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Explain;
|
|
283
316
|
/**
|
|
284
317
|
* One delta transaction: builds the delta synchronously through `fn`,
|
|
285
318
|
* commits, and returns the domain outcome. A throw from `fn` aborts
|
|
286
|
-
* the delta (LMDB untouched) and rethrows wrapped.
|
|
319
|
+
* the delta (LMDB untouched) and rethrows wrapped. `fn` may decline to
|
|
320
|
+
* commit by returning {@link abandon}`(payload)` (ruled 2026-07-23,
|
|
321
|
+
* R10): the transaction rolls back — nothing is committed, not even an
|
|
322
|
+
* empty commit — and the outcome is `{ ok: false, abandoned: payload }`,
|
|
323
|
+
* an arm the result type carries exactly when the callback can abandon.
|
|
287
324
|
*/
|
|
288
|
-
write(fn: DeltaBuild<Rels>): WriteResult<Rels>;
|
|
325
|
+
write<R = void>(fn: DeltaBuild<Rels, R>): WriteResult<Rels, R>;
|
|
289
326
|
/**
|
|
290
327
|
* The ONE witnessed-write form: snapshot → `fn` (premise reads via
|
|
291
328
|
* `snap`, delta via `tx`) → witnessed commit, which lands only if no
|
|
@@ -304,7 +341,7 @@ interface Db<Rels extends SchemaRelations> {
|
|
|
304
341
|
* `{ ok: false, abandoned: payload }` and NO commit (not even an empty
|
|
305
342
|
* one) is issued.
|
|
306
343
|
*/
|
|
307
|
-
writeWitnessed<R>(fn: (snap: ReadScope<Rels>, tx: Tx<Rels>) => R):
|
|
344
|
+
writeWitnessed<R>(fn: (snap: ReadScope<Rels>, tx: Tx<Rels>) => R): WriteResult<Rels, R>;
|
|
308
345
|
/**
|
|
309
346
|
* Prepares a query value built against THIS schema (identity is the
|
|
310
347
|
* membership rule): lowers it to the engine IR, pins the plan, and
|
|
@@ -376,15 +413,15 @@ declare const Db: Readonly<{
|
|
|
376
413
|
* one schema-independent read path (no theory, no fingerprint check; the
|
|
377
414
|
* store rebirth tool's entry). Lives beside `open`/`create` so the path
|
|
378
415
|
* law stays in one place: the same `node:path.resolve` canonicalization,
|
|
379
|
-
* applied here. The value is NOT cached and
|
|
380
|
-
*
|
|
381
|
-
*
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
* the descriptor).
|
|
416
|
+
* applied here. The value is NOT cached and is a DISPOSABLE lifetime
|
|
417
|
+
* (R12) — `using exhumed = await Db.exhume(path)` releases the engine
|
|
418
|
+
* handle and the store's exclusive lock at scope exit, so a same-path
|
|
419
|
+
* reopen never waits on GC. A store not yet adopted rejects with the
|
|
420
|
+
* typed `ErrExhumeNoDescriptor` (the remedy: one fingerprint-matching
|
|
421
|
+
* `Db.open` under the creating schema back-fills the descriptor).
|
|
385
422
|
*/
|
|
386
423
|
exhume(storePath: string): Promise<Exhumed>;
|
|
387
424
|
}>;
|
|
388
|
-
export type { Abandon, DeclaredKeyFact, DeltaBuild, MemberRelation, OffendingFact, Prepared, ReadScope, Tx, Violation,
|
|
425
|
+
export type { Abandon, AbandonedArm, DeclaredKeyFact, DeltaBuild, MemberRelation, OffendingFact, Prepared, ReadScope, Tx, Violation, WriteResult };
|
|
389
426
|
export { abandon, Db, ErrNewtypeMismatch, ErrWitnessedLivelock, WITNESSED_ATTEMPT_CAP };
|
|
390
427
|
//# sourceMappingURL=db.d.ts.map
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|