@bjornpagen/bumbledb 0.9.0 → 0.11.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 +155 -136
- package/README.md +3 -7
- package/dist/capacity.d.ts +14 -1
- package/dist/capacity.d.ts.map +1 -1
- package/dist/capacity.js.map +1 -1
- package/dist/db.d.ts +77 -109
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +121 -339
- package/dist/db.js.map +1 -1
- package/dist/index.d.ts +11 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -10
- package/dist/index.js.map +1 -1
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +8 -1
- package/dist/lower.js.map +1 -1
- package/dist/native.d.ts +69 -50
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +162 -122
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js +26 -22
- package/dist/query/atom.js.map +1 -1
- package/dist/query/find.d.ts +18 -35
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +13 -32
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +113 -122
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +336 -260
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts +12 -0
- package/dist/query/parse-ir.d.ts.map +1 -0
- package/dist/query/parse-ir.js +71 -0
- package/dist/query/parse-ir.js.map +1 -0
- package/dist/query/run.d.ts +2 -2
- package/dist/query/run.d.ts.map +1 -1
- package/dist/query/run.js +2 -13
- package/dist/query/run.js.map +1 -1
- package/dist/query/scope.d.ts +4 -16
- package/dist/query/scope.d.ts.map +1 -1
- package/dist/query/scope.js +1 -6
- package/dist/query/scope.js.map +1 -1
- package/dist/schema.js +2 -2
- package/dist/schema.js.map +1 -1
- package/dist/statements.d.ts +15 -9
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +14 -9
- package/dist/statements.js.map +1 -1
- package/package.json +2 -2
- package/src/capacity.ts +24 -1
- package/src/db.ts +182 -443
- package/src/index.ts +9 -23
- package/src/lower.ts +8 -1
- package/src/native.ts +69 -42
- package/src/query/atom.ts +255 -165
- package/src/query/find.ts +39 -80
- package/src/query/lower.ts +578 -432
- package/src/query/parse-ir.ts +82 -0
- package/src/query/run.ts +2 -14
- package/src/query/scope.ts +3 -21
- package/src/schema.ts +2 -2
- package/src/statements.ts +33 -17
- package/dist/order.d.ts +0 -87
- package/dist/order.d.ts.map +0 -1
- package/dist/order.js +0 -153
- package/dist/order.js.map +0 -1
- package/dist/query/predicate.d.ts +0 -91
- package/dist/query/predicate.d.ts.map +0 -1
- package/dist/query/predicate.js +0 -156
- package/dist/query/predicate.js.map +0 -1
- package/src/order.ts +0 -234
- package/src/query/predicate.ts +0 -269
package/dist/db.d.ts
CHANGED
|
@@ -2,39 +2,36 @@
|
|
|
2
2
|
* `Db` — the living half of the SDK (PRD-07): open/create a store from a
|
|
3
3
|
* `Schema`, write typed facts through delta transactions with race-free
|
|
4
4
|
* final-state point reads, receive rejections as typed violation VALUES
|
|
5
|
-
* keyed to statements, read through scoped snapshots
|
|
6
|
-
*
|
|
5
|
+
* keyed to statements, and read through scoped snapshots — all typed by
|
|
6
|
+
* the schema's relations record.
|
|
7
7
|
*
|
|
8
8
|
* LIFETIMES ARE DISPOSABLES, never `close()` (ruled 2026-07-23, R12): no
|
|
9
9
|
* value this module returns carries a close spelling — release is
|
|
10
|
-
* deterministic and scope-shaped in the language's own syntax.
|
|
11
|
-
* are
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
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.
|
|
10
|
+
* deterministic and scope-shaped in the language's own syntax. Snapshots
|
|
11
|
+
* are scope-shaped both ways: `read(fn)` opens one before `fn` and closes
|
|
12
|
+
* it after unconditionally (the {@link ReadScope} handed to `fn` is
|
|
13
|
+
* invalidated the moment `fn` returns), and `using snap = db.read()` hands
|
|
14
|
+
* the caller the lifetime, released by the scope's own `Symbol.dispose`
|
|
15
|
+
* at scope exit. Prepared plans are plain values whose engine-side half
|
|
16
|
+
* is reclaimed by a GC finalizer — reclamation only, never correctness.
|
|
21
17
|
*
|
|
22
18
|
* PROCESS MODEL: one process, one exclusive-lock handle per store. The
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
19
|
+
* `Db` value owns the LMDB environment's exclusive lock until process
|
|
20
|
+
* exit (or until GC reclaims the native handle); a second engine-level
|
|
21
|
+
* open of the same store is refused by the engine (`EnvironmentLocked`),
|
|
22
|
+
* matching Rust. Resume = reopen in a fresh process, or hold the one `Db`
|
|
23
|
+
* this process already opened. The host owns composition; retry is host
|
|
24
|
+
* policy.
|
|
29
25
|
*
|
|
30
26
|
* REJECTION IS DATA: a rejected commit is a domain outcome (it becomes the
|
|
31
27
|
* LLM repair prompt downstream), returned as a {@link WriteResult} carrying
|
|
32
28
|
* {@link Violation} values. Genuine failures — I/O, used-after-scope,
|
|
33
|
-
* marshal shape
|
|
29
|
+
* marshal shape, a moved generation on {@link Db.writeFrom} — throw
|
|
30
|
+
* `@superbuilders/errors` wrapped errors instead.
|
|
34
31
|
*/
|
|
35
32
|
import type { Exhumed } from "#exhume.ts";
|
|
36
33
|
import { type KeyFact, type Minted } from "#marshal.ts";
|
|
37
|
-
import type {
|
|
34
|
+
import type { FactValue } from "#native.ts";
|
|
38
35
|
import type { Query } from "#query/lower.ts";
|
|
39
36
|
import type { ParamsRecord } from "#query/scope.ts";
|
|
40
37
|
import type { AnyRelation, Fact, InsertFact } from "#relation.ts";
|
|
@@ -89,15 +86,31 @@ interface OffendingFact<Rels extends SchemaRelations> {
|
|
|
89
86
|
* `source <= target` slot as the statement was spelled, `mirrored` the
|
|
90
87
|
* engine-materialized `target <= source` partner.
|
|
91
88
|
*/
|
|
92
|
-
|
|
93
|
-
readonly
|
|
94
|
-
readonly
|
|
89
|
+
type Violation<Rels extends SchemaRelations> = {
|
|
90
|
+
readonly kind: "functionality";
|
|
91
|
+
readonly statement?: Statement;
|
|
95
92
|
readonly canonical: string;
|
|
96
|
-
readonly direction?: "sourceUnsatisfied" | "targetRequired";
|
|
97
|
-
readonly orientation?: "written" | "mirrored";
|
|
98
|
-
readonly measure?: bigint;
|
|
99
93
|
readonly facts: readonly OffendingFact<Rels>[];
|
|
100
|
-
}
|
|
94
|
+
} | {
|
|
95
|
+
readonly kind: "containment";
|
|
96
|
+
readonly statement?: Statement;
|
|
97
|
+
readonly canonical: string;
|
|
98
|
+
readonly direction: "sourceUnsatisfied" | "targetRequired";
|
|
99
|
+
readonly facts: readonly OffendingFact<Rels>[];
|
|
100
|
+
} | {
|
|
101
|
+
readonly kind: "containment";
|
|
102
|
+
readonly statement?: Statement;
|
|
103
|
+
readonly canonical: string;
|
|
104
|
+
readonly direction: "sourceUnsatisfied" | "targetRequired";
|
|
105
|
+
readonly orientation: "written" | "mirrored";
|
|
106
|
+
readonly facts: readonly OffendingFact<Rels>[];
|
|
107
|
+
} | {
|
|
108
|
+
readonly kind: "capacity";
|
|
109
|
+
readonly statement?: Statement;
|
|
110
|
+
readonly canonical: string;
|
|
111
|
+
readonly measure: bigint;
|
|
112
|
+
readonly facts: readonly OffendingFact<Rels>[];
|
|
113
|
+
};
|
|
101
114
|
/**
|
|
102
115
|
* The abandoned arm of a write result (ruled 2026-07-23, R10): present in
|
|
103
116
|
* the type EXACTLY when the callback can abandon — the conditional
|
|
@@ -134,13 +147,13 @@ type WriteResult<Rels extends SchemaRelations, R = void> = {
|
|
|
134
147
|
type DeltaBuild<Rels extends SchemaRelations, R = void> = (tx: Tx<Rels>) => R;
|
|
135
148
|
/**
|
|
136
149
|
* The runtime discriminant of {@link Abandon} values — a property probe is
|
|
137
|
-
* how `
|
|
150
|
+
* how `write`/`writeFrom` distinguish "abort without committing" from an
|
|
138
151
|
* ordinary callback result, never a guess about the host's own value shapes.
|
|
139
152
|
*/
|
|
140
153
|
declare const abandonMark: unique symbol;
|
|
141
154
|
/**
|
|
142
155
|
* The abandon sentinel {@link abandon} builds: returning one from a `write`
|
|
143
|
-
* or `
|
|
156
|
+
* or `writeFrom` callback rolls the transaction back WITHOUT
|
|
144
157
|
* committing (no empty commit is ever issued) and surfaces the payload as
|
|
145
158
|
* `{ ok: false, abandoned: payload }` (ruled 2026-07-23, R10 — the
|
|
146
159
|
* sentinel's contract is unconditional, whichever write verb received it).
|
|
@@ -153,7 +166,7 @@ interface Abandon<P> {
|
|
|
153
166
|
* Wraps a payload in the {@link Abandon} sentinel — the one way a write
|
|
154
167
|
* callback declines to commit: `return abandon(payload)` aborts the delta
|
|
155
168
|
* (nothing is committed, not even an empty commit) and the write resolves
|
|
156
|
-
* to `{ ok: false, abandoned: payload }`, from `write` and `
|
|
169
|
+
* to `{ ok: false, abandoned: payload }`, from `write` and `writeFrom`
|
|
157
170
|
* alike (R10).
|
|
158
171
|
*/
|
|
159
172
|
declare function abandon<P>(payload: P): Abandon<P>;
|
|
@@ -161,7 +174,7 @@ declare function abandon<P>(payload: P): Abandon<P>;
|
|
|
161
174
|
* One live write transaction: the submitted delta with the engine's
|
|
162
175
|
* FINAL-STATE point-read view (base + pending delta — the exact state the
|
|
163
176
|
* commit judgment judges, so check-then-act is race-free by construction).
|
|
164
|
-
* Spent when its owning `write`/`
|
|
177
|
+
* Spent when its owning `write`/`writeFrom` call resolves the attempt;
|
|
165
178
|
* any later use throws.
|
|
166
179
|
*/
|
|
167
180
|
interface Tx<Rels extends SchemaRelations> {
|
|
@@ -236,16 +249,6 @@ interface ReadScope<Rels extends SchemaRelations> extends Disposable {
|
|
|
236
249
|
* execution spelling ({@link Prepared} carries no `execute`).
|
|
237
250
|
*/
|
|
238
251
|
execute<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Row[];
|
|
239
|
-
/**
|
|
240
|
-
* Plan introspection as data (ruled 2026-07-23, R13): runs the prepared
|
|
241
|
-
* query against this scope's snapshot with counting instrumentation
|
|
242
|
-
* (the engine's ANALYZE semantics) and returns the structured
|
|
243
|
-
* {@link Explain} report — plan sections and counters as plain values,
|
|
244
|
-
* so the host reads what the engine did with its query without a
|
|
245
|
-
* second toolchain. A diagnostic surface, EXPLICITLY UNFROZEN: the
|
|
246
|
-
* shape follows the plan representation wherever it goes.
|
|
247
|
-
*/
|
|
248
|
-
explain<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Explain;
|
|
249
252
|
}
|
|
250
253
|
/**
|
|
251
254
|
* The module-private inference slot of {@link Prepared}: an optional symbol
|
|
@@ -267,23 +270,18 @@ declare const preparedTypes: unique symbol;
|
|
|
267
270
|
* everything).
|
|
268
271
|
*/
|
|
269
272
|
interface Prepared<Rels extends SchemaRelations, Row, Params extends ParamsRecord> {
|
|
270
|
-
/**
|
|
271
|
-
* The pull-based plan-drift report against a read scope's snapshot —
|
|
272
|
-
* engine-policy-free: no threshold exists engine-side; the host owns
|
|
273
|
-
* re-prepare.
|
|
274
|
-
*/
|
|
275
|
-
staleness(snap: ReadScope<Rels>): Staleness;
|
|
276
273
|
readonly [preparedTypes]?: {
|
|
274
|
+
readonly rels: Rels;
|
|
277
275
|
readonly row: Row;
|
|
278
276
|
readonly params: Params;
|
|
279
277
|
};
|
|
280
278
|
}
|
|
281
279
|
/**
|
|
282
|
-
* An open store
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
*
|
|
280
|
+
* An open store. There is no close: read through `read`/the read sugar,
|
|
281
|
+
* write through `write`/`writeFrom`, and let the process own the
|
|
282
|
+
* environment's lifetime (the engine fsyncs every commit, so durability
|
|
283
|
+
* never waits on a close). A second `open`/`create` of the same path
|
|
284
|
+
* while this handle lives is the engine's `EnvironmentLocked`.
|
|
287
285
|
*/
|
|
288
286
|
interface Db<Rels extends SchemaRelations> {
|
|
289
287
|
/** The theory this store was opened with (fingerprint-verified by the engine). */
|
|
@@ -313,8 +311,6 @@ interface Db<Rels extends SchemaRelations> {
|
|
|
313
311
|
contains<R extends MemberRelation<Rels>>(relation: R, fact: Fact<R>): boolean;
|
|
314
312
|
/** `db.execute(p, params)` === `db.read(snap => snap.execute(p, params))` — the symmetry rule. */
|
|
315
313
|
execute<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Row[];
|
|
316
|
-
/** `db.explain(p, params)` === `db.read(snap => snap.explain(p, params))` — the symmetry rule (R13). */
|
|
317
|
-
explain<Row, Params extends ParamsRecord>(prepared: Prepared<Rels, Row, Params>, params: Params): Explain;
|
|
318
314
|
/**
|
|
319
315
|
* One delta transaction: builds the delta synchronously through `fn`,
|
|
320
316
|
* commits, and returns the domain outcome. A throw from `fn` aborts
|
|
@@ -326,55 +322,29 @@ interface Db<Rels extends SchemaRelations> {
|
|
|
326
322
|
*/
|
|
327
323
|
write<R = void>(fn: DeltaBuild<Rels, R>): WriteResult<Rels, R>;
|
|
328
324
|
/**
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
* witnesses a strictly newer generation — the benign race converges.
|
|
336
|
-
* The loop's honesty bound is {@link WITNESSED_ATTEMPT_CAP}: a callback
|
|
337
|
-
* that moves the generation on EVERY attempt (a plain `db.write` before
|
|
338
|
-
* its first tx verb) would spin forever, so past the cap the typed
|
|
339
|
-
* {@link ErrWitnessedLivelock} is thrown instead of a silent loop (the
|
|
340
|
-
* engine's ruling: the error, never a loop — retry is host policy, and
|
|
341
|
-
* the cap is that policy's own diagnostic). `fn` may decline to commit
|
|
342
|
-
* by returning {@link abandon}`(payload)` — the outcome is then
|
|
343
|
-
* `{ ok: false, abandoned: payload }` and NO commit (not even an empty
|
|
344
|
-
* one) is issued.
|
|
325
|
+
* One-shot witnessed write from a live read snapshot: begins a
|
|
326
|
+
* transaction that commits only if no state-changing commit landed
|
|
327
|
+
* since `snap` was taken. Must run inside the read callback that owns
|
|
328
|
+
* `snap`. A moved generation is the typed {@link ErrGenerationMoved}
|
|
329
|
+
* — retry is host policy; this method never loops. `fn` may decline to
|
|
330
|
+
* commit by returning {@link abandon}`(payload)`.
|
|
345
331
|
*/
|
|
346
|
-
|
|
332
|
+
writeFrom<R>(snap: ReadScope<Rels>, fn: DeltaBuild<Rels, R>): WriteResult<Rels, R>;
|
|
347
333
|
/**
|
|
348
334
|
* Prepares a query value built against THIS schema (identity is the
|
|
349
335
|
* membership rule): lowers it to the engine IR, pins the plan, and
|
|
350
336
|
* returns the typed {@link Prepared} value. Every IR roster refusal —
|
|
351
|
-
* rule caps,
|
|
337
|
+
* rule caps, rec roster, type rules — is the ENGINE's typed
|
|
352
338
|
* judgment and throws here carrying its message intact.
|
|
353
339
|
*/
|
|
354
340
|
prepare<Row, Params extends ParamsRecord>(q: Query<Rels, Row, Params>): Prepared<Rels, Row, Params>;
|
|
355
341
|
}
|
|
356
342
|
/**
|
|
357
|
-
* The
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
* retries because each rerun reads a FRESHER snapshot; a workload that moves
|
|
361
|
-
* the generation on EVERY one of this many consecutive attempts is not
|
|
362
|
-
* converging and never will (see {@link ErrWitnessedLivelock}).
|
|
363
|
-
*/
|
|
364
|
-
declare const WITNESSED_ATTEMPT_CAP = 64;
|
|
365
|
-
/**
|
|
366
|
-
* The typed livelock refusal `writeWitnessed` throws past
|
|
367
|
-
* {@link WITNESSED_ATTEMPT_CAP} attempts: every attempt found the generation
|
|
368
|
-
* moved, which is only sustainable when the callback ITSELF (even
|
|
369
|
-
* indirectly) issues an interleaved plain `db.write` before its first tx
|
|
370
|
-
* verb on every attempt — each rerun then re-moves the generation it is
|
|
371
|
-
* about to witness, forever. That is host-policy pathology, not engine
|
|
372
|
-
* judgment (the engine ships the error, never a loop), so it THROWS rather
|
|
373
|
-
* than returning a result arm. Match with `errors.is`; the remedy is to
|
|
374
|
-
* move the interleaved write out of the callback (or make it first-attempt
|
|
375
|
-
* only — the delta belongs on `tx`, premise reads on `snap`).
|
|
343
|
+
* The typed generation-moved refusal `writeFrom` throws when a
|
|
344
|
+
* state-changing commit landed since the witness snapshot: retry is host
|
|
345
|
+
* policy. Match with `errors.is`.
|
|
376
346
|
*/
|
|
377
|
-
declare const
|
|
347
|
+
declare const ErrGenerationMoved: Error;
|
|
378
348
|
/**
|
|
379
349
|
* The engine twin of the schema-level class wall, as a matchable value
|
|
380
350
|
* (`errors.is`): the shared lowering rejected a spec whose statement pairs
|
|
@@ -389,25 +359,23 @@ declare const ErrNewtypeMismatch: Error;
|
|
|
389
359
|
/**
|
|
390
360
|
* The store lifecycle — `Db.create(path, schema)` / `Db.open(path, schema)`.
|
|
391
361
|
* Create refuses an already-initialized directory; open verifies format
|
|
392
|
-
* version, store kind, and the schema fingerprint.
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
* hook closes them; durability is the engine's per-commit fsync). One
|
|
398
|
-
* store kind exists: durable — resume = reopen, meaning this process's
|
|
399
|
-
* cached value or a fresh process's open.
|
|
362
|
+
* version, store kind, and the schema fingerprint. A second live handle
|
|
363
|
+
* on the same path is the engine's `EnvironmentLocked`. There is no close
|
|
364
|
+
* anywhere: the process owns the environment until GC/exit (durability is
|
|
365
|
+
* the engine's per-commit fsync). One store kind exists: durable —
|
|
366
|
+
* resume = reopen in a fresh process, or hold the `Db` this process opened.
|
|
400
367
|
*/
|
|
401
368
|
declare const Db: Readonly<{
|
|
402
|
-
/** Creates a fresh durable store at `path` from the schema
|
|
369
|
+
/** Creates a fresh durable store at `path` from the schema. */
|
|
403
370
|
create<Rels extends SchemaRelations>(path: string, theory: Schema<Rels>): Promise<Db<Rels>>;
|
|
404
371
|
/**
|
|
405
|
-
* Opens an existing durable store at `path` with the same theory
|
|
406
|
-
*
|
|
407
|
-
*
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
372
|
+
* Opens an existing durable store at `path` with the same theory.
|
|
373
|
+
* A fingerprint-matching open also BACK-FILLS the store's persisted
|
|
374
|
+
* schema descriptor when it is absent (self-describing stores, engine
|
|
375
|
+
* 50-storage.md § the `_meta` block), so a legacy store becomes
|
|
376
|
+
* exhumable after one ordinary open — adoption is automatic, never a
|
|
377
|
+
* separate verb. A second open of a still-live path is
|
|
378
|
+
* `EnvironmentLocked`.
|
|
411
379
|
*/
|
|
412
380
|
open<Rels extends SchemaRelations>(path: string, theory: Schema<Rels>): Promise<Db<Rels>>;
|
|
413
381
|
/**
|
|
@@ -425,5 +393,5 @@ declare const Db: Readonly<{
|
|
|
425
393
|
exhume(storePath: string): Promise<Exhumed>;
|
|
426
394
|
}>;
|
|
427
395
|
export type { Abandon, AbandonedArm, DeclaredKeyFact, DeltaBuild, MemberRelation, OffendingFact, Prepared, ReadScope, Tx, Violation, WriteResult };
|
|
428
|
-
export { abandon, Db,
|
|
396
|
+
export { abandon, Db, ErrGenerationMoved, ErrNewtypeMismatch };
|
|
429
397
|
//# 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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"}
|