@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.
Files changed (100) hide show
  1. package/COOKBOOK.md +140 -136
  2. package/README.md +24 -11
  3. package/dist/closed.d.ts +7 -5
  4. package/dist/closed.d.ts.map +1 -1
  5. package/dist/closed.js +4 -1
  6. package/dist/closed.js.map +1 -1
  7. package/dist/count.js +1 -1
  8. package/dist/count.js.map +1 -1
  9. package/dist/db.d.ts +110 -73
  10. package/dist/db.d.ts.map +1 -1
  11. package/dist/db.js +172 -116
  12. package/dist/db.js.map +1 -1
  13. package/dist/exhume.d.ts +22 -10
  14. package/dist/exhume.d.ts.map +1 -1
  15. package/dist/exhume.js +42 -9
  16. package/dist/exhume.js.map +1 -1
  17. package/dist/face.d.ts +10 -6
  18. package/dist/face.d.ts.map +1 -1
  19. package/dist/face.js.map +1 -1
  20. package/dist/fields.d.ts +38 -16
  21. package/dist/fields.d.ts.map +1 -1
  22. package/dist/fields.js +33 -8
  23. package/dist/fields.js.map +1 -1
  24. package/dist/index.d.ts +9 -6
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +5 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/lower.d.ts +9 -9
  29. package/dist/lower.d.ts.map +1 -1
  30. package/dist/lower.js +17 -12
  31. package/dist/lower.js.map +1 -1
  32. package/dist/marshal.d.ts +17 -7
  33. package/dist/marshal.d.ts.map +1 -1
  34. package/dist/marshal.js +32 -10
  35. package/dist/marshal.js.map +1 -1
  36. package/dist/native.d.ts +60 -9
  37. package/dist/native.d.ts.map +1 -1
  38. package/dist/native.js.map +1 -1
  39. package/dist/query/atom.d.ts +199 -203
  40. package/dist/query/atom.d.ts.map +1 -1
  41. package/dist/query/atom.js +39 -48
  42. package/dist/query/atom.js.map +1 -1
  43. package/dist/query/find.d.ts +116 -0
  44. package/dist/query/find.d.ts.map +1 -0
  45. package/dist/query/{select.js → find.js} +22 -22
  46. package/dist/query/find.js.map +1 -0
  47. package/dist/query/lower.d.ts +131 -158
  48. package/dist/query/lower.d.ts.map +1 -1
  49. package/dist/query/lower.js +505 -494
  50. package/dist/query/lower.js.map +1 -1
  51. package/dist/query/predicate.d.ts +22 -14
  52. package/dist/query/predicate.d.ts.map +1 -1
  53. package/dist/query/predicate.js +35 -42
  54. package/dist/query/predicate.js.map +1 -1
  55. package/dist/query/run.d.ts +8 -8
  56. package/dist/query/run.d.ts.map +1 -1
  57. package/dist/query/run.js +16 -21
  58. package/dist/query/run.js.map +1 -1
  59. package/dist/query/scope.d.ts +139 -74
  60. package/dist/query/scope.d.ts.map +1 -1
  61. package/dist/query/scope.js +80 -33
  62. package/dist/query/scope.js.map +1 -1
  63. package/dist/relation.d.ts.map +1 -1
  64. package/dist/relation.js +3 -1
  65. package/dist/relation.js.map +1 -1
  66. package/dist/schema.d.ts.map +1 -1
  67. package/dist/schema.js +12 -2
  68. package/dist/schema.js.map +1 -1
  69. package/dist/spec.d.ts +20 -10
  70. package/dist/spec.d.ts.map +1 -1
  71. package/dist/spec.js.map +1 -1
  72. package/dist/statements.d.ts +22 -2
  73. package/dist/statements.d.ts.map +1 -1
  74. package/dist/statements.js +26 -5
  75. package/dist/statements.js.map +1 -1
  76. package/package.json +3 -3
  77. package/src/closed.ts +13 -7
  78. package/src/count.ts +1 -1
  79. package/src/db.ts +293 -177
  80. package/src/exhume.ts +48 -11
  81. package/src/face.ts +13 -6
  82. package/src/fields.ts +51 -15
  83. package/src/index.ts +12 -8
  84. package/src/lower.ts +17 -12
  85. package/src/marshal.ts +38 -13
  86. package/src/native.ts +59 -8
  87. package/src/query/atom.ts +297 -275
  88. package/src/query/find.ts +212 -0
  89. package/src/query/lower.ts +692 -724
  90. package/src/query/predicate.ts +37 -45
  91. package/src/query/run.ts +17 -22
  92. package/src/query/scope.ts +184 -90
  93. package/src/relation.ts +3 -1
  94. package/src/schema.ts +14 -2
  95. package/src/spec.ts +21 -9
  96. package/src/statements.ts +30 -6
  97. package/dist/query/select.d.ts +0 -128
  98. package/dist/query/select.d.ts.map +0 -1
  99. package/dist/query/select.js.map +0 -1
  100. package/src/query/select.ts +0 -215
package/dist/db.js 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
- * ZERO CLOSABLES: no value this module returns carries a close, dispose, or
9
- * release spelling. `Db` values are CACHED per canonical path for the life
10
- * of the process (a best-effort exit hook closes the cached environments;
11
- * correctness never depends on it the engine fsyncs every commit, so a
12
- * process that dies without the hook loses nothing that was committed).
13
- * Snapshots are internal: `read(fn)` opens one before `fn` and closes it
14
- * after unconditionally, and the {@link ReadScope} handed to `fn` is
15
- * invalidated the moment `fn` returns. Prepared plans are plain values whose
16
- * engine-side half is reclaimed by a GC finalizer reclamation only, never
17
- * correctness.
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
@@ -35,10 +38,11 @@ import { isClosedMember, sealedFieldsOf } from "#closed.ts";
35
38
  import { exhumeStore } from "#exhume.ts";
36
39
  import { rosterOf } from "#fields.ts";
37
40
  import { lower } from "#lower.ts";
38
- import { factOf, handleOf, isFreshField, isMintedFresh, keyRowOf, recordOf, rowOf } from "#marshal.ts";
41
+ import { factOf, handleOf, isFreshField, isInserted, keyRowOf, recordOf, rowOf } from "#marshal.ts";
39
42
  import { bridged, native } from "#native.ts";
40
43
  import { lowerQuery } from "#query/lower.ts";
41
44
  import { decodeAnswers, wireParams } from "#query/run.ts";
45
+ import { isStatement } from "#statements.ts";
42
46
  /**
43
47
  * The runtime discriminant of {@link Abandon} values — a property probe is
44
48
  * how `writeWitnessed` distinguishes "abort without committing" from an
@@ -46,23 +50,43 @@ import { decodeAnswers, wireParams } from "#query/run.ts";
46
50
  */
47
51
  const abandonMark = Symbol("bumbledb.abandon");
48
52
  /**
49
- * Wraps a payload in the {@link Abandon} sentinel — the one way a
50
- * `writeWitnessed` callback declines to commit: `return abandon(payload)`
51
- * aborts the delta (nothing is committed, not even an empty commit) and the
52
- * write resolves to `{ ok: false, abandoned: payload }`.
53
+ * Wraps a payload in the {@link Abandon} sentinel — the one way a write
54
+ * callback declines to commit: `return abandon(payload)` aborts the delta
55
+ * (nothing is committed, not even an empty commit) and the write resolves
56
+ * to `{ ok: false, abandoned: payload }`, from `write` and `writeWitnessed`
57
+ * alike (R10).
53
58
  */
54
59
  function abandon(payload) {
55
60
  return Object.freeze({ [abandonMark]: true, payload });
56
61
  }
57
62
  /**
58
- * Narrows a `writeWitnessed` callback result to the abandon sentinel. The
59
- * probe is the private {@link abandonMark} symbol only {@link abandon} sets,
60
- * and `R`'s `Abandon` arm is the only way a sentinel can flow out of the
63
+ * Narrows a write callback result to the abandon sentinel. The probe is
64
+ * the private {@link abandonMark} symbol only {@link abandon} sets, and
65
+ * `R`'s `Abandon` arm is the only way a sentinel can flow out of the
61
66
  * callback — so the narrowed payload type is sound by construction.
62
67
  */
63
68
  function isAbandon(value) {
64
69
  return typeof value === "object" && value !== null && abandonMark in value;
65
70
  }
71
+ /**
72
+ * The abandon outcome's trusted admission seam: the value's shape is the
73
+ * checkable half (the sentinel mark only {@link abandon} mints, and the
74
+ * outcome carrying that sentinel's own payload), and the sentinel's
75
+ * existence IS the proof `R` carries an `Abandon` arm — so the outcome is
76
+ * admitted at the conditional {@link AbandonedArm} face the type tier
77
+ * cannot resolve over an open `R`.
78
+ */
79
+ function isAbandonedOutcome(outcome, sentinel) {
80
+ return isAbandon(sentinel) && outcome.abandoned === sentinel.payload;
81
+ }
82
+ /** Builds the abandoned write outcome from the callback's own sentinel (the R10 arm's one mint). */
83
+ function abandonedOutcome(sentinel) {
84
+ const outcome = Object.freeze({ ok: false, abandoned: sentinel.payload });
85
+ if (!isAbandonedOutcome(outcome, sentinel)) {
86
+ throw errors.new("bumbledb abandon outcome construction incomplete");
87
+ }
88
+ return outcome;
89
+ }
66
90
  /**
67
91
  * The module-private inference slot of {@link Prepared}: an optional symbol
68
92
  * property (never set at runtime) that keeps the prepared value's `Row` and
@@ -167,16 +191,14 @@ function isThenable(value) {
167
191
  }
168
192
  /**
169
193
  * Narrows a keyed-get middle argument to a statement value (vs a key
170
- * object): only statement values carry `data.kind`no fact cell shape
171
- * (bool, bigint, string, bytes, `{ start, end }`) ever does, so the probe
172
- * never misreads a key object whose relation declares a field named `data`.
194
+ * object) through the statement module's admission branda
195
+ * REPRESENTATION, never a shape probe: fact cell shapes are structurally
196
+ * OPEN (an interval value carrying an excess `kind` property is a legal
197
+ * cell), so no property probe could ever be sound here, but no host-built
198
+ * key object can spell the module-private brand symbol.
173
199
  */
174
200
  function isStatementValue(value) {
175
- if (typeof value !== "object" || !("data" in value)) {
176
- return false;
177
- }
178
- const data = value.data;
179
- return typeof data === "object" && data !== null && "kind" in data;
201
+ return isStatement(value);
180
202
  }
181
203
  /**
182
204
  * THE one selector dispatch of the `get` overload pair (primary-key vs
@@ -213,7 +235,11 @@ function orientationOf(reversed) {
213
235
  * Builds the id-resolution tables from the manifest, verifying the SDK's
214
236
  * positional mirror against the engine's reported order — any drift
215
237
  * (count, kind, id, or membership) is a construction-time failure, never a
216
- * silent misattribution of a violation to the wrong statement value.
238
+ * silent misattribution of a violation to the wrong statement value. The
239
+ * declaration-ordinal law the query lowering leans on is verified in the
240
+ * same walks: relation ids and sealed field ids both equal declaration
241
+ * order, so a constructed `Tables` IS the proof and `prepare` inherits it
242
+ * structurally — never a silently misaddressed query.
217
243
  */
218
244
  function tablesOf(theory, manifest) {
219
245
  const entries = materializedEntries(theory);
@@ -236,6 +262,11 @@ function tablesOf(theory, manifest) {
236
262
  for (const field of relation.fields) {
237
263
  fieldIds.set(field.name, field.id);
238
264
  }
265
+ sealedFieldsOf(member).forEach(function verifyField(declared, fieldOrdinal) {
266
+ if (fieldIds.get(declared.name) !== fieldOrdinal) {
267
+ throw errors.new(`bumbledb manifest drift: ${relation.name}.${declared.name} has engine field id ${fieldIds.get(declared.name)}, its sealed ordinal is ${fieldOrdinal}`);
268
+ }
269
+ });
239
270
  let primaryKey;
240
271
  entries.forEach(function firstOwnedKey(entry, index) {
241
272
  if (primaryKey === undefined && entry.key !== undefined && entry.key.owner === relation.name) {
@@ -244,11 +275,15 @@ function tablesOf(theory, manifest) {
244
275
  });
245
276
  relations.set(relation.name, Object.freeze({ id: relation.id, member, fieldIds, primaryKey }));
246
277
  }
247
- for (const name of Object.keys(theory.relations)) {
248
- if (!relations.has(name)) {
278
+ Object.keys(theory.relations).forEach(function verifyRelation(name, ordinal) {
279
+ const entry = relations.get(name);
280
+ if (entry === undefined) {
249
281
  throw errors.new(`bumbledb manifest drift: schema relation ${name} is not in the manifest`);
250
282
  }
251
- }
283
+ if (entry.id !== ordinal) {
284
+ throw errors.new(`bumbledb manifest drift: relation ${name} has engine id ${entry.id}, its declaration ordinal is ${ordinal} — query lowering depends on declaration order = ids`);
285
+ }
286
+ });
252
287
  return Object.freeze({ relations, statements: Object.freeze(entries) });
253
288
  }
254
289
  /** The private lifetime records of this module's read scopes. */
@@ -454,10 +489,11 @@ function openDb(handle, theory, manifest) {
454
489
  /**
455
490
  * Builds one {@link ReadScope} over a live scope state. Every verb
456
491
  * asserts liveness first: the owning call flips `state.live` the moment
457
- * its callback returns, so a leaked scope is a typed refusal forever
492
+ * its callback returns (or the scope's own `Symbol.dispose` does, for a
493
+ * `using`-acquired scope), so a leaked scope is a typed refusal forever
458
494
  * after.
459
495
  */
460
- function makeScope(state, generation) {
496
+ function makeScope(state) {
461
497
  function assertLive() {
462
498
  if (!state.live) {
463
499
  throw errors.new("bumbledb read scope is invalidated — its owning read callback already returned");
@@ -492,14 +528,29 @@ function openDb(handle, theory, manifest) {
492
528
  const rows = bridged("execute bumbledb prepared query", function callExecute() {
493
529
  return native.preparedExecute(plan.handle, state.handle, wire);
494
530
  });
495
- return decodeAnswers(plan.select, rows);
531
+ return decodeAnswers(plan.finds, rows);
532
+ }
533
+ function explain(prepared, params) {
534
+ assertLive();
535
+ const plan = planOf(prepared);
536
+ const wire = wireParams(plan.params, recordOf(params));
537
+ return bridged("explain bumbledb prepared query", function callExplain() {
538
+ return native.preparedExplain(plan.handle, state.handle, wire);
539
+ });
540
+ }
541
+ /** The R12 teardown: invalidate, then close — idempotent through the state's close latch. */
542
+ function dispose() {
543
+ state.live = false;
544
+ closeScopeState(state);
496
545
  }
497
546
  const scope = Object.freeze({
498
- generation,
547
+ generation: state.generation,
499
548
  scan,
500
549
  get: reads.get,
501
550
  contains: reads.contains,
502
- execute
551
+ execute,
552
+ explain,
553
+ [Symbol.dispose]: dispose
503
554
  });
504
555
  scopeStates.set(scope, state);
505
556
  return scope;
@@ -511,47 +562,48 @@ function openDb(handle, theory, manifest) {
511
562
  * until the exact moment it matters, so the failure carries the census.
512
563
  */
513
564
  let liveSnapshots = 0;
514
- /** Opens one snapshot and its scope state (live until the owner flips it). */
565
+ /**
566
+ * Opens one snapshot and its scope state (live until the owner flips
567
+ * it). The witnessed generation rides the snapshot open itself — one
568
+ * crossing carries both (finding 016), so the fault-pairing close
569
+ * branch a second `dbGeneration` call needed is structurally gone.
570
+ */
515
571
  function openScopeState() {
516
- const snapHandle = bridged("open bumbledb snapshot", function openSnapshot() {
572
+ const opened = bridged("open bumbledb snapshot", function openSnapshot() {
517
573
  return native.dbSnapshot(handle);
518
574
  });
519
575
  liveSnapshots += 1;
520
- return { handle: snapHandle, live: true, owner };
576
+ return { handle: opened.snapshot, generation: opened.generation, live: true, closed: false, owner };
521
577
  }
522
- /** Closes a scope's snapshot after the owner invalidated it. */
578
+ /**
579
+ * Closes a scope's snapshot after the owner invalidated it — a LATCH:
580
+ * the snapshot closes exactly once, whichever of the owning call and
581
+ * the scope's own `Symbol.dispose` gets there first, so an early
582
+ * in-callback disposal never double-closes (and never double-counts
583
+ * the census).
584
+ */
523
585
  function closeScopeState(state) {
586
+ if (state.closed) {
587
+ return;
588
+ }
589
+ state.closed = true;
524
590
  bridged("close bumbledb snapshot", function closeSnapshot() {
525
591
  native.snapshotClose(state.handle);
526
592
  });
527
593
  liveSnapshots -= 1;
528
594
  }
529
- /**
530
- * Reads the committed generation for a just-opened scope, closing the
531
- * scope's snapshot when the read faults: `dbGeneration` opens a transient
532
- * engine read txn, so reader-table exhaustion is precisely the state in
533
- * which it throws — with one snapshot already open. An unpaired fault
534
- * here would park a snapshot worker and consume one of the engine's
535
- * reader slots FOREVER (and undercount the liveSnapshots census), each
536
- * fault ratcheting toward ReadersFull-for-the-process's-lifetime.
537
- */
538
- function generationForScope(state) {
539
- const generation = errors.trySync(function readGeneration() {
540
- return bridged("read bumbledb generation", function callGeneration() {
541
- return native.dbGeneration(handle);
542
- });
543
- });
544
- if (generation.error) {
545
- state.live = false;
546
- closeScopeState(state);
547
- throw generation.error;
548
- }
549
- return generation.data;
550
- }
551
595
  function read(fn) {
552
596
  const state = openScopeState();
553
- const generation = generationForScope(state);
554
- const scope = makeScope(state, generation);
597
+ const scope = makeScope(state);
598
+ if (fn === undefined) {
599
+ /**
600
+ * The `using` acquisition (R12): the caller owns the lifetime —
601
+ * `using snap = db.read()` — and the scope's `Symbol.dispose`
602
+ * is the deterministic release, scope-shaped in the language's
603
+ * own syntax.
604
+ */
605
+ return scope;
606
+ }
555
607
  const result = errors.trySync(function runRead() {
556
608
  return fn(scope);
557
609
  });
@@ -586,6 +638,11 @@ function openDb(handle, theory, manifest) {
586
638
  return snap.execute(prepared, params);
587
639
  });
588
640
  }
641
+ function explain(prepared, params) {
642
+ return read(function explainInScope(snap) {
643
+ return snap.explain(prepared, params);
644
+ });
645
+ }
589
646
  /**
590
647
  * Builds one {@link Tx} over a transaction-handle thunk: `write` passes
591
648
  * an already-begun handle; `writeWitnessed` passes a LAZY thunk that
@@ -618,17 +675,18 @@ function openDb(handle, theory, manifest) {
618
675
  assertLive();
619
676
  const entry = resolveOrdinary(relation);
620
677
  const txHandle = resolveTx();
621
- const values = recordOf(fact);
678
+ /** The one spread copy of the write path: `mintFreshCells` writes minted cells in place, and they must never land in the caller's own fact object. */
679
+ const values = { ...recordOf(fact) };
622
680
  const fresh = mintFreshCells(txHandle, entry, relation, values);
623
681
  const row = rowOf(relation.data, values);
624
- bridged("bumbledb tx insert", function record() {
625
- native.txInsert(txHandle, entry.id, row);
682
+ const changed = bridged("bumbledb tx insert", function record() {
683
+ return native.txInsert(txHandle, entry.id, row);
626
684
  });
627
- Object.freeze(fresh);
628
- if (!isMintedFresh(relation, fresh)) {
629
- throw errors.new(`relation ${relation.name}: minted fresh record is incomplete`);
685
+ const inserted = Object.freeze({ changed, ...fresh });
686
+ if (!isInserted(relation, inserted)) {
687
+ throw errors.new(`relation ${relation.name}: insert return record is incomplete`);
630
688
  }
631
- return fresh;
689
+ return inserted;
632
690
  }
633
691
  function remove(relation, fact) {
634
692
  assertLive();
@@ -678,6 +736,18 @@ function openDb(handle, theory, manifest) {
678
736
  });
679
737
  throw errors.new("bumbledb write callback returned a thenable — the delta build is synchronous; an async callback is refused, nothing was committed");
680
738
  }
739
+ if (isAbandon(built.data)) {
740
+ /**
741
+ * The caller's explicit decline to commit (R10): the sentinel's
742
+ * contract is unconditional — roll back, nothing committed, not
743
+ * even an empty commit; commit is unreachable for a sentinel
744
+ * result.
745
+ */
746
+ bridged("abort bumbledb write transaction", function abort() {
747
+ native.txAbort(txHandle);
748
+ });
749
+ return abandonedOutcome(built.data);
750
+ }
681
751
  const committed = errors.trySync(function commitDelta() {
682
752
  return bridged("commit bumbledb write transaction", function commit() {
683
753
  return native.txCommit(txHandle);
@@ -708,15 +778,10 @@ function openDb(handle, theory, manifest) {
708
778
  });
709
779
  }
710
780
  function write(fn) {
711
- const begun = errors.trySync(function beginDelta() {
712
- return bridged("begin bumbledb write transaction", function begin() {
713
- return native.dbWriteBegin(handle);
714
- });
781
+ const txHandle = bridged(`begin bumbledb write transaction (live snapshots: ${liveSnapshots})`, function begin() {
782
+ return native.dbWriteBegin(handle);
715
783
  });
716
- if (begun.error) {
717
- throw errors.wrap(begun.error, `begin bumbledb write transaction (live snapshots at fault: ${liveSnapshots})`);
718
- }
719
- return runDelta(begun.data, fn);
784
+ return runDelta(txHandle, fn);
720
785
  }
721
786
  /**
722
787
  * Commits an already-begun witnessed transaction and closes the
@@ -760,8 +825,7 @@ function openDb(handle, theory, manifest) {
760
825
  */
761
826
  function witnessedAttempt(fn) {
762
827
  const state = openScopeState();
763
- const generation = generationForScope(state);
764
- const scope = makeScope(state, generation);
828
+ const scope = makeScope(state);
765
829
  const pending = { tx: undefined };
766
830
  function beginWitnessed() {
767
831
  const witnessed = bridged("begin witnessed bumbledb write transaction", function begin() {
@@ -823,7 +887,7 @@ function openDb(handle, theory, manifest) {
823
887
  if (isAbandon(built.data)) {
824
888
  abortPending();
825
889
  closeScopeState(state);
826
- return Object.freeze({ ok: false, abandoned: built.data.payload });
890
+ return abandonedOutcome(built.data);
827
891
  }
828
892
  const late = errors.trySync(function resolveCommitTx() {
829
893
  if (pending.tx === undefined) {
@@ -867,38 +931,10 @@ function openDb(handle, theory, manifest) {
867
931
  }
868
932
  throw errors.wrap(ErrWitnessedLivelock, `writeWitnessed livelock: the generation moved on all ${WITNESSED_ATTEMPT_CAP} attempts against schema ${theory.name}`);
869
933
  }
870
- /**
871
- * Verifies the declaration-ordinal law the query lowering leans on
872
- * against the live manifest tables: relation ids and sealed field ids
873
- * both equal declaration order (`dbManifest` is the engine's own
874
- * pinning of it). Any drift is a construction-time failure here, never
875
- * a silently misaddressed query.
876
- */
877
- function assertOrdinalAlignment() {
878
- Object.keys(theory.relations).forEach(function verifyRelation(name, ordinal) {
879
- const entry = tables.relations.get(name);
880
- if (entry === undefined || entry.id !== ordinal) {
881
- throw errors.new(`bumbledb manifest drift: relation ${name} has engine id ${entry?.id}, its declaration ordinal is ${ordinal} — query lowering depends on declaration order = ids`);
882
- }
883
- const member = theory.relations[name];
884
- if (member === undefined) {
885
- throw errors.new(`bumbledb manifest drift: schema ${theory.name} lost relation ${name}`);
886
- }
887
- const sealed = sealedFieldsOf(member).map(function fieldName(declared) {
888
- return declared.name;
889
- });
890
- sealed.forEach(function verifyField(fieldName, fieldOrdinal) {
891
- if (entry.fieldIds.get(fieldName) !== fieldOrdinal) {
892
- throw errors.new(`bumbledb manifest drift: ${name}.${fieldName} has engine field id ${entry.fieldIds.get(fieldName)}, its sealed ordinal is ${fieldOrdinal}`);
893
- }
894
- });
895
- });
896
- }
897
934
  function prepare(q) {
898
935
  if (q.schema !== theory) {
899
936
  throw errors.new(`query was built against schema ${q.schema.name}, not the identical schema value this store opened with — schema identity is the membership rule`);
900
937
  }
901
- assertOrdinalAlignment();
902
938
  const program = lowerQuery(q);
903
939
  const outcome = bridged("prepare bumbledb program", function callPrepare() {
904
940
  return native.dbPrepare(handle, program);
@@ -927,7 +963,7 @@ function openDb(handle, theory, manifest) {
927
963
  handle: preparedHandle,
928
964
  owner,
929
965
  params: q.data.params,
930
- select: q.data.select
966
+ finds: q.data.finds
931
967
  }));
932
968
  planReclaimer.register(prepared, preparedHandle);
933
969
  return prepared;
@@ -939,6 +975,7 @@ function openDb(handle, theory, manifest) {
939
975
  get,
940
976
  contains,
941
977
  execute,
978
+ explain,
942
979
  write,
943
980
  writeWitnessed,
944
981
  prepare
@@ -987,6 +1024,24 @@ process.once("exit", function closeCachedStores() {
987
1024
  * what the types claim.
988
1025
  */
989
1026
  const ErrNewtypeMismatch = errors.new("bumbledb newtypeMismatch: a statement pairs faces whose newtypes disagree — the faces of a dependency agree on their newtype, or neither carries one");
1027
+ /**
1028
+ * `Tx.insert` returns the flattened `{ changed, ...fresh }` record (R11),
1029
+ * where the spread wins: a FRESH field literally named `changed` would
1030
+ * shadow the engine's changed-state report on every insert of its
1031
+ * relation. No field name is reserved SILENTLY — the one unspeakable
1032
+ * spelling is refused here at admission, before any store is touched.
1033
+ * Supplied (non-fresh) fields named `changed` never enter the return
1034
+ * record and stay legal.
1035
+ */
1036
+ function refuseShadowedChanged(theory) {
1037
+ for (const [name, member] of Object.entries(theory.relations)) {
1038
+ for (const declared of sealedFieldsOf(member)) {
1039
+ if (declared.name === "changed" && isFreshField(declared.field)) {
1040
+ throw errors.new(`relation ${name}: a fresh field named "changed" would shadow tx.insert's changed-state report in its { changed, ...fresh } return (R11) — rename the fresh field; a supplied field named "changed" stays legal (only fresh cells ride the return)`);
1041
+ }
1042
+ }
1043
+ }
1044
+ }
990
1045
  /**
991
1046
  * The one admission path both verbs share: canonical-path cache lookup
992
1047
  * first (a hit returns the SAME `Db` value for the identical theory, a
@@ -1000,6 +1055,7 @@ const ErrNewtypeMismatch = errors.new("bumbledb newtypeMismatch: a statement pai
1000
1055
  * the engine's message intact.
1001
1056
  */
1002
1057
  function admit(verb, storePath, theory) {
1058
+ refuseShadowedChanged(theory);
1003
1059
  const canonical = path.resolve(storePath);
1004
1060
  const cached = openStores.get(canonical);
1005
1061
  if (cached !== undefined) {
@@ -1064,12 +1120,12 @@ const Db = Object.freeze({
1064
1120
  * one schema-independent read path (no theory, no fingerprint check; the
1065
1121
  * store rebirth tool's entry). Lives beside `open`/`create` so the path
1066
1122
  * law stays in one place: the same `node:path.resolve` canonicalization,
1067
- * applied here. The value is NOT cached and carries no close: the
1068
- * engine-side handle (and the store's exclusive lock) is reclaimed by GC
1069
- * reclamation only, never correctness. A store not yet adopted rejects
1070
- * with the typed `ErrExhumeNoDescriptor` (the remedy: one
1071
- * fingerprint-matching `Db.open` under the creating schema back-fills
1072
- * the descriptor).
1123
+ * applied here. The value is NOT cached and is a DISPOSABLE lifetime
1124
+ * (R12) `using exhumed = await Db.exhume(path)` releases the engine
1125
+ * handle and the store's exclusive lock at scope exit, so a same-path
1126
+ * reopen never waits on GC. A store not yet adopted rejects with the
1127
+ * typed `ErrExhumeNoDescriptor` (the remedy: one fingerprint-matching
1128
+ * `Db.open` under the creating schema back-fills the descriptor).
1073
1129
  */
1074
1130
  async exhume(storePath) {
1075
1131
  return exhumeStore(path.resolve(storePath));
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}