@optimystic/db-core 1.0.0-beta.2 → 1.0.0-beta.3

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 (37) hide show
  1. package/dist/src/cluster/structs.d.ts +37 -15
  2. package/dist/src/cluster/structs.d.ts.map +1 -1
  3. package/dist/src/cluster/structs.js.map +1 -1
  4. package/dist/src/collection/collection.d.ts +29 -2
  5. package/dist/src/collection/collection.d.ts.map +1 -1
  6. package/dist/src/collection/collection.js +37 -2
  7. package/dist/src/collection/collection.js.map +1 -1
  8. package/dist/src/collections/tree/struct.d.ts +81 -2
  9. package/dist/src/collections/tree/struct.d.ts.map +1 -1
  10. package/dist/src/collections/tree/struct.js +59 -0
  11. package/dist/src/collections/tree/struct.js.map +1 -1
  12. package/dist/src/collections/tree/tree.d.ts.map +1 -1
  13. package/dist/src/collections/tree/tree.js +39 -2
  14. package/dist/src/collections/tree/tree.js.map +1 -1
  15. package/dist/src/index.d.ts +1 -0
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +1 -0
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/logger-registry.d.ts +57 -0
  20. package/dist/src/logger-registry.d.ts.map +1 -0
  21. package/dist/src/logger-registry.js +168 -0
  22. package/dist/src/logger-registry.js.map +1 -0
  23. package/dist/src/logger.d.ts.map +1 -1
  24. package/dist/src/logger.js +3 -0
  25. package/dist/src/logger.js.map +1 -1
  26. package/dist/src/transactor/network-transactor.d.ts.map +1 -1
  27. package/dist/src/transactor/network-transactor.js +8 -3
  28. package/dist/src/transactor/network-transactor.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/cluster/structs.ts +277 -255
  31. package/src/collection/collection.ts +37 -2
  32. package/src/collections/tree/struct.ts +116 -26
  33. package/src/collections/tree/tree.ts +36 -2
  34. package/src/index.ts +1 -0
  35. package/src/logger-registry.ts +224 -0
  36. package/src/logger.ts +4 -0
  37. package/src/transactor/network-transactor.ts +8 -3
@@ -1,5 +1,5 @@
1
1
  import type { RepoMessage } from "../network/repo-protocol.js";
2
- import type { PendResult } from "../network/struct.js";
2
+ import type { CommitResult, PendResult } from "../network/struct.js";
3
3
  /**
4
4
  * One member's vote on a cluster transaction, in either the promise or the commit map.
5
5
  *
@@ -52,13 +52,29 @@ export type ClusterPeers = {
52
52
  };
53
53
  /**
54
54
  * One member's own report of what its storage did with this transaction at consensus-apply time; see
55
- * {@link ClusterRecord.applyOutcomes} for the trust rules. Only the pend arm exists today — a commit
56
- * refusal is not reported this way, because a commit that reached commit-consensus is authoritative
57
- * (the coordinator's own retained verdict plus the commit-promise guard cover that tier instead).
55
+ * {@link ClusterRecord.applyOutcomes} for the trust rules. The two arms report differently, and
56
+ * deliberately so:
57
+ *
58
+ * - `pend` is set ONLY for a conflict-shaped refusal. The coordinator's rule for it is "an entry
59
+ * means retry", so a success must not exist there.
60
+ * - `commit` is ALWAYS set once a commit applied — successes included — because the coordinator
61
+ * counts durable holders (`CoordinatorRepo.commit`'s durability gate), and a count needs the
62
+ * positives. Consensus votes say the cohort agreed to apply the commit; this arm says whether
63
+ * this member's storage actually holds the committed revision under the record's action
64
+ * afterwards, measured AFTER the member's own reconcile (a member that pulled the revision from a
65
+ * cohort peer reports success). A commit that reached consensus is authoritative for ordering,
66
+ * but it was never evidence of storage — which is what this arm supplies.
58
67
  */
59
68
  export type MemberApplyOutcome = {
60
69
  /** This member's storage refused the record's pend with a conflict-shaped result. */
61
70
  pend?: PendResult;
71
+ /**
72
+ * Whether this member's storage durably holds the record's committed revision, for every block
73
+ * the commit named, after applying and (if needed) reconciling. `success: true` is a durable
74
+ * holder; a failure carries storage's refusal (or a refusal built from the missing-pend throw)
75
+ * for the operator's benefit — the coordinator reads only `success`.
76
+ */
77
+ commit?: CommitResult;
62
78
  };
63
79
  export type ClusterRecord = {
64
80
  messageHash: string;
@@ -101,17 +117,23 @@ export type ClusterRecord = {
101
117
  * written by a member *after* the votes are cast, on the response it hands back, so no signed
102
118
  * payload could carry it without a further round trip.
103
119
  *
104
- * Members set only their own entry, and only for a *conflict-shaped* pend refusal (one carrying
105
- * `pending` or `missing`, per `isConflictFailure`) — the optimistic-concurrency verdict that a
106
- * rival holds the blocks or already took the revision. Successes and bare-reason faults are
107
- * omitted: a bare fault stays tolerated local divergence, mirroring the coordinator's own
108
- * local-verdict arm.
120
+ * Members set only their own entry. The pend arm is set only for a *conflict-shaped* pend
121
+ * refusal (one carrying `pending` or `missing`, per `isConflictFailure`) — the
122
+ * optimistic-concurrency verdict that a rival holds the blocks or already took the revision.
123
+ * Pend successes and bare-reason faults are omitted: a bare fault stays tolerated local
124
+ * divergence, mirroring the coordinator's own local-verdict arm. The commit arm is set for every
125
+ * applied commit, success or not, because the coordinator counts the successes
126
+ * ({@link MemberApplyOutcome}).
109
127
  *
110
- * Why unsigned is acceptable: a hostile entry can only *downgrade* a reported pend success into a
111
- * retryable conflict, which the writer answers by rebasing and trying again. The same member
128
+ * Why unsigned is acceptable: a hostile pend entry can only *downgrade* a reported pend success
129
+ * into a retryable conflict, which the writer answers by rebasing and trying again. A hostile
130
+ * commit entry is no worse: a false *success* counts one durable holder the member already
131
+ * counted for with its signed approve vote (the vote is what admits it to the majority the count
132
+ * is measured against), and a false *refusal* is again only retry pressure. The same member
112
133
  * could already force strictly worse outcomes with a signed reject or conflict vote, so this adds
113
134
  * no attack surface beyond retry pressure — and failing toward retry is the correct direction for
114
- * optimistic concurrency. Never treat an entry here as evidence of anything but "retry".
135
+ * optimistic concurrency. Never treat an entry here as evidence of anything but "retry" (pend) or
136
+ * "one more holder in a count that a signed vote already bounded" (commit).
115
137
  *
116
138
  * Old peers never set it and old coordinators ignore it, so it is wire-compatible in both
117
139
  * directions.
@@ -220,11 +242,11 @@ export interface ClusterConsensusConfig {
220
242
  * single reset here would otherwise drop the peer and sink super-majority.
221
243
  */
222
244
  promiseImmediateRetries?: number;
223
- /** Read-repair behavior: 'off' (only fetch on missing — legacy), 'lazy' (fetch when local age > window), 'paranoid' (always verify against cluster on read). Default 'lazy'. */
245
+ /** Read-repair behavior: 'off' (only fetch on missing — legacy), 'lazy' (fetch when local age > window), 'paranoid' (always verify against cluster on read, missing blocks included). Default 'lazy'. In 'off' and 'lazy', a missing block whose cohort is this node alone is re-consulted at most once per `readRepairWindowMs`. */
224
246
  readRepairMode?: 'off' | 'lazy' | 'paranoid';
225
- /** For 'lazy' mode: read-repair triggers when (now - localEntry.lastSeenCommitMs) > this. Default 10000. */
247
+ /** For 'lazy' mode: read-repair triggers when (now - localEntry.lastSeenCommitMs) > this. In 'lazy' and 'off' it is also how long a settled absence is remembered. Default 10000. */
226
248
  readRepairWindowMs?: number;
227
- /** Per-read probability of triggering read-repair in 'lazy' mode even within the window (0..1). Default 0 (no random check). */
249
+ /** Per-read probability of a cohort check in 'lazy' mode even within the window — of a held block or a settled absence (0..1). Default 0 (no random check). */
228
250
  readRepairSampleRate?: number;
229
251
  /**
230
252
  * When FRET has no confident network-size estimate, allow an undersized cluster
@@ -1 +1 @@
1
- {"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAuB,EAAE,KAAc;IAC9F,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,8BAA8B,CAAC,IAAY,EAAE,SAAoB;IAChF,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QACxF,KAAK,UAAU,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;AACF,CAAC;AA2FD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAuB,EAAE,KAAc;IAC9F,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,8BAA8B,CAAC,IAAY,EAAE,SAAoB;IAChF,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QACxF,KAAK,UAAU,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;AACF,CAAC;AAiHD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC"}
@@ -301,7 +301,27 @@ export declare class Collection<TAction> implements ICollection<TAction> {
301
301
  snapshotPending(): CollectionSnapshot<TAction>;
302
302
  /** Restore the staged state captured by {@link snapshotPending}, discarding any
303
303
  * mutations staged since. Reads through the collection then observe exactly the
304
- * snapshot state again; storage is untouched because nothing was ever synced. */
304
+ * snapshot state again; storage is untouched because nothing was ever synced.
305
+ *
306
+ * A snapshot is only restorable VERBATIM onto the committed boundary it was captured
307
+ * on. If this collection has since ADOPTED a newer committed revision — a rival's
308
+ * commit folded in by a refresh while the snapshot's transaction was in flight, e.g.
309
+ * the conflict replay that refused a guarded insert (TreeKeyTakenError) — the
310
+ * snapshot's transforms describe block state at the OLD boundary, and reinstalling
311
+ * them would shadow committed blocks with stale structure. The observed case: an
312
+ * INVENTED collection's pre-commit header/root transforms restored over the rival's
313
+ * now-committed collection make every later read descend an empty tree, silently
314
+ * hiding the committed rows. When the snapshot's pending queue is empty (the
315
+ * transaction-rollback shape: the capture predates the transaction's first stage),
316
+ * the correct restore target IS the committed state — reset the tracker empty and
317
+ * let reads flow through to the adopted revision.
318
+ *
319
+ * NOTE: a snapshot that carries PENDING actions across a moved boundary (a
320
+ * mid-transaction savepoint captured before a mid-transaction refresh adopted a
321
+ * rival's commit) still restores verbatim below — rebasing it would require an async
322
+ * replay this synchronous method cannot run. That shape predates this guard and
323
+ * keeps its old behaviour; if it is ever observed producing stale reads, the rebase
324
+ * belongs in an async caller that can replay the pending queue (see replayActions). */
305
325
  restorePending(snapshot: CollectionSnapshot<TAction>): void;
306
326
  /** A read-only {@link Tracker} pinned to this collection's committed state AS OF the
307
327
  * moment of this call, seeded with a (deep-copied) set of pre-transaction transforms.
@@ -387,7 +407,14 @@ export declare class Collection<TAction> implements ICollection<TAction> {
387
407
  * process can be at different revisions at the same instant. That gap is invisible
388
408
  * from outside the class without this accessor, which is the whole reason it
389
409
  * exists: `docs/debugging.md` (§ "Which revision did a read descend?") explains
390
- * how an operator reads the difference. */
410
+ * how an operator reads the difference.
411
+ *
412
+ * The one exception is `undefined` itself, which is a STATE rather than a revision:
413
+ * "this instance invented the collection and has never adopted a committed revision".
414
+ * For the same reason (only this instance moves it), it stays true until this instance
415
+ * updates, syncs or records a commit, so a caller holding a freshly opened instance may
416
+ * branch on it — the Quereus adapter does, to leave an invented, never-written index tree
417
+ * unflushed exactly as an unwritten table tree is left. Never branch on the NUMBER. */
391
418
  committedRevision(): number | undefined;
392
419
  /** The id of the action that PRODUCED the revision {@link committedRevision} reports —
393
420
  * this collection's lineage marker at that revision — or `undefined` when the action
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
@@ -527,8 +527,36 @@ export class Collection {
527
527
  }
528
528
  /** Restore the staged state captured by {@link snapshotPending}, discarding any
529
529
  * mutations staged since. Reads through the collection then observe exactly the
530
- * snapshot state again; storage is untouched because nothing was ever synced. */
530
+ * snapshot state again; storage is untouched because nothing was ever synced.
531
+ *
532
+ * A snapshot is only restorable VERBATIM onto the committed boundary it was captured
533
+ * on. If this collection has since ADOPTED a newer committed revision — a rival's
534
+ * commit folded in by a refresh while the snapshot's transaction was in flight, e.g.
535
+ * the conflict replay that refused a guarded insert (TreeKeyTakenError) — the
536
+ * snapshot's transforms describe block state at the OLD boundary, and reinstalling
537
+ * them would shadow committed blocks with stale structure. The observed case: an
538
+ * INVENTED collection's pre-commit header/root transforms restored over the rival's
539
+ * now-committed collection make every later read descend an empty tree, silently
540
+ * hiding the committed rows. When the snapshot's pending queue is empty (the
541
+ * transaction-rollback shape: the capture predates the transaction's first stage),
542
+ * the correct restore target IS the committed state — reset the tracker empty and
543
+ * let reads flow through to the adopted revision.
544
+ *
545
+ * NOTE: a snapshot that carries PENDING actions across a moved boundary (a
546
+ * mid-transaction savepoint captured before a mid-transaction refresh adopted a
547
+ * rival's commit) still restores verbatim below — rebasing it would require an async
548
+ * replay this synchronous method cannot run. That shape predates this guard and
549
+ * keeps its old behaviour; if it is ever observed producing stale reads, the rebase
550
+ * belongs in an async caller that can replay the pending queue (see replayActions). */
531
551
  restorePending(snapshot) {
552
+ const capturedRev = snapshot.context?.rev;
553
+ const currentRev = this.source.actionContext?.rev;
554
+ const boundaryMoved = currentRev !== undefined && (capturedRev === undefined || currentRev > capturedRev);
555
+ if (boundaryMoved && snapshot.pending.length === 0) {
556
+ this.tracker.reset();
557
+ this.pending = [];
558
+ return;
559
+ }
532
560
  this.tracker.reset(copyTransforms(snapshot.transforms));
533
561
  this.pending = [...snapshot.pending];
534
562
  }
@@ -637,7 +665,14 @@ export class Collection {
637
665
  * process can be at different revisions at the same instant. That gap is invisible
638
666
  * from outside the class without this accessor, which is the whole reason it
639
667
  * exists: `docs/debugging.md` (§ "Which revision did a read descend?") explains
640
- * how an operator reads the difference. */
668
+ * how an operator reads the difference.
669
+ *
670
+ * The one exception is `undefined` itself, which is a STATE rather than a revision:
671
+ * "this instance invented the collection and has never adopted a committed revision".
672
+ * For the same reason (only this instance moves it), it stays true until this instance
673
+ * updates, syncs or records a commit, so a caller holding a freshly opened instance may
674
+ * branch on it — the Quereus adapter does, to leave an invented, never-written index tree
675
+ * unflushed exactly as an unwritten table tree is left. Never branch on the NUMBER. */
641
676
  committedRevision() {
642
677
  return this.source.actionContext?.rev;
643
678
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,91 @@
1
- import type { BlockId, CollectionHeaderBlock } from "../../index.js";
1
+ import type { BlockId, CollectionHeaderBlock, CollectionId } from "../../index.js";
2
+ import type { KeyRange } from "../../btree/index.js";
2
3
  export declare const TreeHeaderBlockType: string;
3
4
  export type TreeCollectionHeaderBlock = CollectionHeaderBlock & {
4
5
  rootId: BlockId;
5
6
  };
6
7
  export declare const rootId$: string;
8
+ /**
9
+ * Serializable statement of the INTENT behind a staged tree entry, enforced by the
10
+ * `replace` handler every time it runs — at initial staging AND at every conflict
11
+ * replay against a newly adopted committed revision. Without a guard, staging is a
12
+ * bare upsert, and a conflict replay silently overwrites whatever a rival writer
13
+ * committed at the same key (the concurrent-INSERT lost-uniqueness bug).
14
+ *
15
+ * - `absent` — the key must not exist (SQL INSERT): a hit throws {@link TreeKeyTakenError},
16
+ * discarding the whole action's staged writes.
17
+ * - `keepExisting` — if the key exists, skip this entry silently (SQL INSERT OR IGNORE).
18
+ * - `absentRange` — no entry OTHER THAN this action's own key may exist in `range`
19
+ * (secondary-UNIQUE enforcement, where uniqueness is a property of a framed key
20
+ * PREFIX rather than one exact key: an index tree keys `indexKey ‖ primaryKey`, so
21
+ * two rows sharing a unique value sit at different keys inside one prefix range). A
22
+ * foreign hit throws {@link TreeRangeTakenError}. The entry being staged lands inside
23
+ * its own range, so the scan excludes its exact key — otherwise every guarded
24
+ * re-stage of a present key (a replay after a clean refresh) would refuse itself.
25
+ *
26
+ * MIXED VERSIONS: a peer running a build that predates guards destructures `[key, entry]`
27
+ * and ignores the third slot — its replays revert to today's silent overwrite. No version
28
+ * gating exists yet (see backlog ticket `debt-mixed-version-identify-incompatibility`).
29
+ */
30
+ export type TreeEntryGuard<TKey> = {
31
+ kind: 'absent';
32
+ } | {
33
+ kind: 'keepExisting';
34
+ } | {
35
+ kind: 'absentRange';
36
+ range: KeyRange<TKey>;
37
+ };
7
38
  /** Represents a unit of change to a tree collection. */
8
39
  export type TreeReplaceAction<TKey, TEntry> = [
9
40
  key: TKey,
10
- entry?: TEntry
41
+ entry?: TEntry,
42
+ guard?: TreeEntryGuard<TKey>
11
43
  ][];
44
+ /**
45
+ * Thrown by the tree `replace` handler when an entry guarded `absent` finds its key
46
+ * already present — at initial staging, or (the load-bearing case) at conflict replay
47
+ * after a rival writer's commit was adopted. The throw discards the whole action's
48
+ * staged writes (the handler runs inside an all-or-nothing Atomic wrapper) and
49
+ * propagates out of the sync/commit retry loops: it is not a StaleFailure, so no
50
+ * retry absorbs it, and it must never be downgraded to a retryable condition.
51
+ */
52
+ export declare class TreeKeyTakenError<TKey = unknown> extends Error {
53
+ /** The collection whose tree refused the entry. */
54
+ readonly collectionId: CollectionId;
55
+ /** The key some other writer already committed (for the `absentRange` subclass: the
56
+ * key this action was staging, whose claimed range a rival occupies). */
57
+ readonly key: TKey;
58
+ constructor(
59
+ /** The collection whose tree refused the entry. */
60
+ collectionId: CollectionId,
61
+ /** The key some other writer already committed (for the `absentRange` subclass: the
62
+ * key this action was staging, whose claimed range a rival occupies). */
63
+ key: TKey,
64
+ /** Subclass override of the rendered message; the default names the exact-key refusal. */
65
+ message?: string);
66
+ }
67
+ /**
68
+ * The `absentRange` refusal: the guarded entry's key is free, but some OTHER committed
69
+ * entry (`occupant`) sits inside the range the entry claims exclusively — for a unique
70
+ * index tree, a rival's row carrying the same unique value under a different primary
71
+ * key. A subclass of {@link TreeKeyTakenError} on purpose: every consumer that treats a
72
+ * key refusal as a non-retryable uniqueness failure (the sync/commit retry loops let it
73
+ * escape; the Quereus bridge maps it by `collectionId` to a `UNIQUE constraint failed`
74
+ * message) handles this one identically without a second arm. `collectionId` is the
75
+ * discriminator that names WHICH constraint fired — each unique index is its own
76
+ * collection — so the bridge needs nothing beyond it.
77
+ */
78
+ export declare class TreeRangeTakenError<TKey = unknown> extends TreeKeyTakenError<TKey> {
79
+ /** The range the entry claimed exclusively. */
80
+ readonly range: KeyRange<TKey>;
81
+ /** The committed key found inside `range` that is not `key`. */
82
+ readonly occupant: TKey;
83
+ constructor(collectionId: CollectionId,
84
+ /** The key this action was staging (free — it is the range that is contested). */
85
+ key: TKey,
86
+ /** The range the entry claimed exclusively. */
87
+ range: KeyRange<TKey>,
88
+ /** The committed key found inside `range` that is not `key`. */
89
+ occupant: TKey);
90
+ }
12
91
  //# sourceMappingURL=struct.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAKrE,eAAO,MAAM,mBAAmB,QAA8C,CAAC;AAO/E,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG;IAC/D,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,QAA8C,CAAC;AAEnE,wDAAwD;AACxD,MAAM,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI;IAE7C,GAAG,EAAE,IAAI;IAET,KAAK,CAAC,EAAE,MAAM;CACd,EAAE,CAAC"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,eAAO,MAAM,mBAAmB,QAA8C,CAAC;AAO/E,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG;IAC/D,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,QAA8C,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,CAAC,IAAI,IAC5B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAElD,wDAAwD;AACxD,MAAM,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI;IAE7C,GAAG,EAAE,IAAI;IAET,KAAK,CAAC,EAAE,MAAM;IAId,KAAK,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC;CAC5B,EAAE,CAAC;AAEJ;;;;;;;GAOG;AACH,qBAAa,iBAAiB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,KAAK;IAE1D,mDAAmD;aACnC,YAAY,EAAE,YAAY;IAC1C;6EACyE;aACzD,GAAG,EAAE,IAAI;;IAJzB,mDAAmD;IACnC,YAAY,EAAE,YAAY;IAC1C;6EACyE;IACzD,GAAG,EAAE,IAAI;IACzB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM;CAKjB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,iBAAiB,CAAC,IAAI,CAAC;IAK9E,+CAA+C;aAC/B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IACrC,gEAAgE;aAChD,QAAQ,EAAE,IAAI;gBAN9B,YAAY,EAAE,YAAY;IAC1B,kFAAkF;IAClF,GAAG,EAAE,IAAI;IACT,+CAA+C;IAC/B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IACrC,gEAAgE;IAChD,QAAQ,EAAE,IAAI;CAO/B"}
@@ -7,4 +7,63 @@ registerCollectionType({
7
7
  name: "Tree",
8
8
  });
9
9
  export const rootId$ = nameof("rootId");
10
+ /**
11
+ * Thrown by the tree `replace` handler when an entry guarded `absent` finds its key
12
+ * already present — at initial staging, or (the load-bearing case) at conflict replay
13
+ * after a rival writer's commit was adopted. The throw discards the whole action's
14
+ * staged writes (the handler runs inside an all-or-nothing Atomic wrapper) and
15
+ * propagates out of the sync/commit retry loops: it is not a StaleFailure, so no
16
+ * retry absorbs it, and it must never be downgraded to a retryable condition.
17
+ */
18
+ export class TreeKeyTakenError extends Error {
19
+ collectionId;
20
+ key;
21
+ constructor(
22
+ /** The collection whose tree refused the entry. */
23
+ collectionId,
24
+ /** The key some other writer already committed (for the `absentRange` subclass: the
25
+ * key this action was staging, whose claimed range a rival occupies). */
26
+ key,
27
+ /** Subclass override of the rendered message; the default names the exact-key refusal. */
28
+ message) {
29
+ super(message ?? `Tree collection ${collectionId}: key ${renderKey(key)} is already taken by a committed entry`);
30
+ this.collectionId = collectionId;
31
+ this.key = key;
32
+ this.name = 'TreeKeyTakenError';
33
+ }
34
+ }
35
+ /**
36
+ * The `absentRange` refusal: the guarded entry's key is free, but some OTHER committed
37
+ * entry (`occupant`) sits inside the range the entry claims exclusively — for a unique
38
+ * index tree, a rival's row carrying the same unique value under a different primary
39
+ * key. A subclass of {@link TreeKeyTakenError} on purpose: every consumer that treats a
40
+ * key refusal as a non-retryable uniqueness failure (the sync/commit retry loops let it
41
+ * escape; the Quereus bridge maps it by `collectionId` to a `UNIQUE constraint failed`
42
+ * message) handles this one identically without a second arm. `collectionId` is the
43
+ * discriminator that names WHICH constraint fired — each unique index is its own
44
+ * collection — so the bridge needs nothing beyond it.
45
+ */
46
+ export class TreeRangeTakenError extends TreeKeyTakenError {
47
+ range;
48
+ occupant;
49
+ constructor(collectionId,
50
+ /** The key this action was staging (free — it is the range that is contested). */
51
+ key,
52
+ /** The range the entry claimed exclusively. */
53
+ range,
54
+ /** The committed key found inside `range` that is not `key`. */
55
+ occupant) {
56
+ super(collectionId, key, `Tree collection ${collectionId}: key ${renderKey(key)} is guarded unique over a key range `
57
+ + `already occupied by committed entry ${renderKey(occupant)}`);
58
+ this.range = range;
59
+ this.occupant = occupant;
60
+ this.name = 'TreeRangeTakenError';
61
+ }
62
+ }
63
+ /** String keys render JSON-quoted so framing control bytes stay visible/escaped in logs;
64
+ * everything else via String() — JSON.stringify would throw on a bigint key, and an error
65
+ * constructor must never be the second failure. */
66
+ function renderKey(key) {
67
+ return typeof key === 'string' ? JSON.stringify(key) : String(key);
68
+ }
10
69
  //# sourceMappingURL=struct.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"struct.js","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAE/E,sBAAsB,CAAC;IACtB,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,MAAM;CACZ,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAA4B,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"struct.js","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAE/E,sBAAsB,CAAC;IACtB,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,MAAM;CACZ,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAA4B,QAAQ,CAAC,CAAC;AAyCnE;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkC,SAAQ,KAAK;IAG1C;IAGA;IALjB;IACC,mDAAmD;IACnC,YAA0B;IAC1C;6EACyE;IACzD,GAAS;IACzB,0FAA0F;IAC1F,OAAgB;QAEhB,KAAK,CAAC,OAAO,IAAI,mBAAmB,YAAY,SAAS,SAAS,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAPjG,iBAAY,GAAZ,YAAY,CAAc;QAG1B,QAAG,GAAH,GAAG,CAAM;QAKzB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAoC,SAAQ,iBAAuB;IAM9D;IAEA;IAPjB,YACC,YAA0B;IAC1B,kFAAkF;IAClF,GAAS;IACT,+CAA+C;IAC/B,KAAqB;IACrC,gEAAgE;IAChD,QAAc;QAE9B,KAAK,CAAC,YAAY,EAAE,GAAG,EACtB,mBAAmB,YAAY,SAAS,SAAS,CAAC,GAAG,CAAC,sCAAsC;cAC1F,uCAAuC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QANjD,UAAK,GAAL,KAAK,CAAgB;QAErB,aAAQ,GAAR,QAAQ,CAAM;QAK9B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,CAAC;CACD;AAED;;mDAEmD;AACnD,SAAS,SAAS,CAAC,GAAY;IAC9B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/tree.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Collection } from "../../collection/index.js";
2
2
  import { BTree } from "../../btree/index.js";
3
3
  import { CollectionTrunk } from "./collection-trunk.js";
4
- import { TreeHeaderBlockType } from "./struct.js";
4
+ import { TreeHeaderBlockType, TreeKeyTakenError, TreeRangeTakenError } from "./struct.js";
5
5
  export class Tree {
6
6
  collection;
7
7
  btree;
@@ -58,8 +58,45 @@ export class Tree {
58
58
  // freshly created and reopened trees. Binding a throwaway BTree to `trx` reuses the
59
59
  // public constructor; no btree API change needed.
60
60
  const actionTree = new BTree(trx, new CollectionTrunk(trx, id), keyFromEntry, compare, nodeCapacity);
61
- for (const [key, entry] of actions) {
61
+ for (const [key, entry, guard] of actions) {
62
62
  if (entry) {
63
+ // Enforce the entry's guard (if any) on EVERY handler run — initial staging
64
+ // and every conflict replay — so the uniqueness decision is re-made against
65
+ // the newest adopted committed state, not just the stage-time snapshot.
66
+ // A throw here discards the whole action's staged writes (Atomic wrapper).
67
+ if (guard !== undefined) {
68
+ if (guard.kind === 'absentRange') {
69
+ // Secondary-UNIQUE: the claimed range (a unique index's framed
70
+ // value prefix) must hold no entry other than this action's own
71
+ // key. Two short descents (range start and end) plus an early-exit
72
+ // walk, over the SAME store the upsert below writes to, so it sees entries earlier
73
+ // actions of this replay already staged or deleted (an UPDATE's
74
+ // delete-old half runs before its guarded insert half). The guard
75
+ // is plain data (it is serialized into the log with its action), and
76
+ // BTree.range reads the range's fields only — so a KeyRange that has
77
+ // round-tripped through JSON is scanned exactly like a live instance.
78
+ for await (const path of actionTree.range(guard.range)) {
79
+ const occupant = actionTree.at(path);
80
+ if (occupant === undefined)
81
+ continue;
82
+ const occupantKey = keyFromEntry(occupant);
83
+ if (compare(occupantKey, key) === 0)
84
+ continue; // self-exclusion
85
+ throw new TreeRangeTakenError(id, key, guard.range, occupantKey);
86
+ }
87
+ }
88
+ else {
89
+ const found = await actionTree.find(key);
90
+ if (found.on) {
91
+ if (guard.kind === 'absent') {
92
+ throw new TreeKeyTakenError(id, key);
93
+ }
94
+ // keepExisting: leave the present (rival's) entry in place and
95
+ // skip this entry silently — the INSERT OR IGNORE disposition.
96
+ continue;
97
+ }
98
+ }
99
+ }
63
100
  await actionTree.upsert(entry);
64
101
  }
65
102
  else {