@optimystic/db-core 0.21.0 → 0.22.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 (61) hide show
  1. package/dist/src/btree/btree.d.ts +2 -1
  2. package/dist/src/btree/btree.d.ts.map +1 -1
  3. package/dist/src/btree/btree.js +1 -1
  4. package/dist/src/btree/btree.js.map +1 -1
  5. package/dist/src/chain/chain.d.ts +1 -1
  6. package/dist/src/chain/chain.d.ts.map +1 -1
  7. package/dist/src/chain/chain.js +1 -1
  8. package/dist/src/chain/chain.js.map +1 -1
  9. package/dist/src/collection/collection.d.ts +3 -1
  10. package/dist/src/collection/collection.d.ts.map +1 -1
  11. package/dist/src/collection/collection.js +7 -2
  12. package/dist/src/collection/collection.js.map +1 -1
  13. package/dist/src/collections/diary/diary.d.ts.map +1 -1
  14. package/dist/src/collections/diary/diary.js +2 -1
  15. package/dist/src/collections/diary/diary.js.map +1 -1
  16. package/dist/src/collections/diary/struct.js +1 -1
  17. package/dist/src/collections/diary/struct.js.map +1 -1
  18. package/dist/src/collections/tree/collection-trunk.js +1 -1
  19. package/dist/src/collections/tree/collection-trunk.js.map +1 -1
  20. package/dist/src/collections/tree/struct.d.ts +1 -1
  21. package/dist/src/collections/tree/struct.d.ts.map +1 -1
  22. package/dist/src/collections/tree/struct.js +2 -1
  23. package/dist/src/collections/tree/struct.js.map +1 -1
  24. package/dist/src/log/log.d.ts +1 -1
  25. package/dist/src/log/log.d.ts.map +1 -1
  26. package/dist/src/log/log.js +2 -2
  27. package/dist/src/log/log.js.map +1 -1
  28. package/dist/src/testing/test-transactor.d.ts +1 -1
  29. package/dist/src/testing/test-transactor.d.ts.map +1 -1
  30. package/dist/src/testing/test-transactor.js +12 -4
  31. package/dist/src/testing/test-transactor.js.map +1 -1
  32. package/dist/src/transaction/coordinator.d.ts.map +1 -1
  33. package/dist/src/transaction/coordinator.js +2 -1
  34. package/dist/src/transaction/coordinator.js.map +1 -1
  35. package/dist/src/transactor/network-transactor.d.ts.map +1 -1
  36. package/dist/src/transactor/network-transactor.js +9 -5
  37. package/dist/src/transactor/network-transactor.js.map +1 -1
  38. package/dist/src/transform/cache-source.js +1 -1
  39. package/dist/src/transform/cache-source.js.map +1 -1
  40. package/dist/src/transform/helpers.d.ts +6 -1
  41. package/dist/src/transform/helpers.d.ts.map +1 -1
  42. package/dist/src/transform/helpers.js +7 -6
  43. package/dist/src/transform/helpers.js.map +1 -1
  44. package/dist/src/transform/tracker.d.ts.map +1 -1
  45. package/dist/src/transform/tracker.js +2 -1
  46. package/dist/src/transform/tracker.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/btree/btree.ts +2 -1
  49. package/src/chain/chain.ts +2 -1
  50. package/src/collection/collection.ts +7 -2
  51. package/src/collections/diary/diary.ts +2 -1
  52. package/src/collections/diary/struct.ts +1 -1
  53. package/src/collections/tree/collection-trunk.ts +1 -1
  54. package/src/collections/tree/struct.ts +3 -1
  55. package/src/log/log.ts +2 -2
  56. package/src/testing/test-transactor.ts +16 -3
  57. package/src/transaction/coordinator.ts +2 -1
  58. package/src/transactor/network-transactor.ts +9 -5
  59. package/src/transform/cache-source.ts +1 -1
  60. package/src/transform/helpers.ts +7 -6
  61. package/src/transform/tracker.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../src/transform/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../src/transform/tracker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimystic/db-core",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "type": "module",
5
5
  "description": "Core database functionality for Optimystic",
6
6
  "main": "dist/src/index.js",
@@ -1,4 +1,5 @@
1
- import { Path, PathBranch, type ITreeTrunk, type KeyRange, type getTrunkFunc } from "./index.js";
1
+ import { Path, PathBranch } from "./path.js";
2
+ import type { ITreeTrunk, KeyRange, getTrunkFunc } from "./index.js";
2
3
  import type { BlockId, BlockStore } from "../blocks/index.js";
3
4
  import { apply, get } from "../blocks/index.js";
4
5
  import { TreeLeafBlockType, TreeBranchBlockType, entries$, nodes$, partitions$ } from "./nodes.js";
@@ -1,4 +1,5 @@
1
- import { Atomic, type BlockStore, type BlockId, type IBlock } from "../index.js";
1
+ import { Atomic } from "../transform/atomic.js";
2
+ import type { BlockStore, BlockId, IBlock } from "../index.js";
2
3
  import { ChainDataBlockType, ChainHeaderBlockType, entries$, headId$, nextId$, priorId$, tailId$ } from "./chain-nodes.js";
3
4
  import type { ChainDataNode, ChainHeaderNode } from "./chain-nodes.js";
4
5
  import { apply } from "../blocks/index.js";
@@ -1,8 +1,13 @@
1
1
  import type { IBlock, Action, ActionType, ActionHandler, BlockId, ITransactor, BlockStore, Transforms, ActionId } from "../index.js";
2
- import { Log, Atomic, Tracker, copyTransforms, CacheSource, isTransformsEmpty, TransactorSource } from "../index.js";
2
+ import { Log } from "../log/log.js";
3
+ import { Atomic } from "../transform/atomic.js";
4
+ import { Tracker } from "../transform/tracker.js";
5
+ import { CacheSource } from "../transform/cache-source.js";
6
+ import { copyTransforms, isTransformsEmpty } from "../transform/helpers.js";
7
+ import { TransactorSource } from "../transactor/transactor-source.js";
3
8
  import { BlockUnavailableError } from "../network/struct.js";
4
9
  import type { CollectionHeaderBlock, CollectionId, ICollection, SyncOptions } from "./index.js";
5
- import { CollectionHeaderVanishedError, SyncRetryExhaustedError } from "./index.js";
10
+ import { CollectionHeaderVanishedError, SyncRetryExhaustedError } from "./struct.js";
6
11
  import type { ActionContext } from "./action.js";
7
12
  import type { ReadDependency } from "../transaction/transaction.js";
8
13
  import { clampPriority } from "../transaction/transaction.js";
@@ -1,5 +1,6 @@
1
- import { Collection, registerCollectionType } from "../../index.js";
1
+ import { Collection } from "../../collection/collection.js";
2
2
  import type { ITransactor, Action, BlockId, BlockStore, IBlock, CollectionInitOptions, CollectionId } from "../../index.js";
3
+ import { registerCollectionType } from "../../collection/collection-type-registry.js";
3
4
  import { DiaryHeaderBlockType } from "./struct.js";
4
5
 
5
6
  /** A diary keeps every entry in the log itself, so the header block is the whole structure
@@ -1,3 +1,3 @@
1
- import { registerBlockType } from "../../index.js";
1
+ import { registerBlockType } from "../../blocks/block-types.js";
2
2
 
3
3
  export const DiaryHeaderBlockType = registerBlockType("DIH", "DiaryHeaderBlock");
@@ -1,4 +1,4 @@
1
- import { apply, get } from "../../index.js";
1
+ import { apply, get } from "../../blocks/helpers.js";
2
2
  import type { BlockId, BlockStore, IBlock, ITreeTrunk } from "../../index.js";
3
3
  import type { ITreeNode } from "../../btree/nodes.js";
4
4
  import { rootId$, type TreeCollectionHeaderBlock } from "./struct.js";
@@ -1,4 +1,6 @@
1
- import { type BlockId, type CollectionHeaderBlock, registerBlockType, registerCollectionType } from "../../index.js";
1
+ import type { BlockId, CollectionHeaderBlock } from "../../index.js";
2
+ import { registerBlockType } from "../../blocks/block-types.js";
3
+ import { registerCollectionType } from "../../collection/collection-type-registry.js";
2
4
  import { nameof } from "../../utility/nameof.js";
3
5
 
4
6
  export const TreeHeaderBlockType = registerBlockType("TRE", "TreeHeaderBlock");
package/src/log/log.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { sha256 } from 'multiformats/hashes/sha2'
2
- import { Chain, entryAt } from "../index.js";
2
+ import { Chain, entryAt } from "../chain/chain.js";
3
3
  import { nameof } from "../utility/nameof.js";
4
4
  import type { IBlock, BlockId, ActionId, CollectionId, ChainPath, ActionRev, ActionContext, ChainInitOptions, BlockStore, ReadDependency } from "../index.js";
5
5
  import type { ChainDataNode } from '../chain/chain-nodes.js';
6
6
  import type { LogEntry, ActionEntry, DisputeResolutionProof, InvalidationEntry, RevertedBlock } from "./index.js";
7
- import { LogDataBlockType, LogHeaderBlockType } from "./index.js";
7
+ import { LogDataBlockType, LogHeaderBlockType } from "./struct.js";
8
8
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
9
9
  import type { GetFromResult } from './struct.js';
10
10
 
@@ -1,4 +1,6 @@
1
- import { type ITransactor, type GetBlockResults, type ActionBlocks, type BlockActionStatus, type PendResult, type CommitResult, type PendRequest, type BlockId, type CommitRequest, type BlockGets, type IBlock, type ActionId, type ActionTransforms, type Transform, type Transforms, ensuredMap, Latches, type ClusterNomineesResult } from "../index.js";
1
+ import type { ITransactor, GetBlockResults, ActionBlocks, BlockActionStatus, PendResult, CommitResult, PendRequest, BlockId, CommitRequest, BlockGets, IBlock, ActionId, ActionTransforms, Transform, Transforms, ClusterNomineesResult } from "../index.js";
2
+ import { ensuredMap } from "../utility/ensured.js";
3
+ import { Latches } from "../utility/latches.js";
2
4
  import { applyTransform, blockIdsForTransforms, transformForBlockId, emptyTransforms, concatTransform, transformsFromTransform } from "../transform/index.js";
3
5
 
4
6
  type RevisionNumber = number;
@@ -483,7 +485,18 @@ function latestMaterializedAt(blockState: BlockState, maxRev: number): { block:
483
485
  return undefined;
484
486
  }
485
487
 
488
+ /**
489
+ * `applyTransform` over cloned inputs, so a returned block never aliases stored state.
490
+ *
491
+ * An absent base is NOT a short circuit: an insert needs no base — `applyTransform` adopts it as
492
+ * the block. Bailing out on `!block` made this double silently drop a pending-only insert read
493
+ * through the pending overlay, the one shape `StorageRepo.get` serves with content but no
494
+ * `materializedRev` (see docs/internals.md § the `unavailable`/`materializedRev` bullets). A
495
+ * pending UPDATE over an absent base still resolves to undefined, matching the real repo.
496
+ */
486
497
  function applyTransformSafe(block: IBlock | undefined, transform: Transform): IBlock | undefined {
487
- if (!block) return undefined;
488
- return applyTransform(structuredClone(block), transform);
498
+ return applyTransform(
499
+ block ? structuredClone(block) : undefined,
500
+ transform.insert ? { ...transform, insert: structuredClone(transform.insert) } : transform
501
+ );
489
502
  }
@@ -5,7 +5,8 @@ import { isConflictFailure } from "../network/stale-failure.js";
5
5
  import type { Collection } from "../collection/collection.js";
6
6
  import type { SyncOptions } from "../collection/index.js";
7
7
  import { isTransactionExpired, clampPriority } from "./transaction.js";
8
- import { Log, blockIdsForTransforms } from "../index.js";
8
+ import { Log } from "../log/log.js";
9
+ import { blockIdsForTransforms } from "../transform/helpers.js";
9
10
  import { collectOperations, hashOperations } from "./operations-hash.js";
10
11
  import { CoordinatorPartialCommitError, CoordinatorStaleLossError } from "./errors.js";
11
12
  import { jitteredBackoffMs, abortableDelay, makeAbortError } from "../utility/backoff.js";
@@ -4,7 +4,12 @@ import { highestStaleAt, isConflictFailure } from "../network/stale-failure.js";
4
4
  import { BlockUnavailableError } from "../network/struct.js";
5
5
  import type { ActionTransforms, ActionBlocks, BlockActionStatus, ITransactor, PendSuccess, StaleFailure, IKeyNetwork, BlockId, GetBlockResults, PendResult, CommitResult, PendRequest, IRepo, BlockGets, Transforms, CommitRequest, ActionId, RepoCommitRequest, ClusterNomineesResult, CollectionId, IBlock, CoordinatorIntent } from "../index.js";
6
6
  import type { IBlockChangeNotifier, CollectionChangeListener } from "./change-notifier.js";
7
- import { transformForBlockId, groupBy, concatTransforms, concatTransform, transformsFromTransform, blockIdsForTransforms, Log, Tracker, CacheSource, TransactorSource } from "../index.js";
7
+ import { transformForBlockId, concatTransforms, concatTransform, transformsFromTransform, blockIdsForTransforms } from "../transform/helpers.js";
8
+ import { Tracker } from "../transform/tracker.js";
9
+ import { CacheSource } from "../transform/cache-source.js";
10
+ import { TransactorSource } from "./transactor-source.js";
11
+ import { Log } from "../log/log.js";
12
+ import { groupBy } from "../utility/groupby.js";
8
13
  import { blockIdToBytes } from "../utility/block-id-to-bytes.js";
9
14
  import { isRecordEmpty } from "../utility/is-record-empty.js";
10
15
  import { type CoordinatorBatch, makeBatchesByPeer, incompleteBatches, everyBatch, allBatches, mergeBlocks, processBatches, createBatchesForPayload } from "../utility/batch-coordinator.js";
@@ -641,7 +646,6 @@ export class NetworkTransactor implements ITransactor, IBlockChangeNotifier {
641
646
  async commit(request: CommitRequest): Promise<CommitResult> {
642
647
  const t0 = Date.now();
643
648
  log('commit actionId=%s rev=%d blockIds=%d', request.actionId, request.rev, request.blockIds.length);
644
- const allBlockIds = [...new Set([...request.blockIds, request.tailId])];
645
649
 
646
650
  // Commit the header block if provided and not already in blockIds.
647
651
  // `request.tailId` is threaded into every per-block commit so the coordinator carries it into the
@@ -649,14 +653,14 @@ export class NetworkTransactor implements ITransactor, IBlockChangeNotifier {
649
653
  // CollectionChangeEvent (the reactivity topic anchor). Without this the per-block RepoCommitRequest
650
654
  // drops the collection tail and reactivity origination is gated off (undefined tail → non-member).
651
655
  if (request.headerId && !request.blockIds.includes(request.headerId)) {
652
- const headerResult = await this.commitBlock(request.headerId, allBlockIds, request.actionId, request.rev, request.tailId);
656
+ const headerResult = await this.commitBlock(request.headerId, request.actionId, request.rev, request.tailId);
653
657
  if (!headerResult.success) {
654
658
  return headerResult;
655
659
  }
656
660
  }
657
661
 
658
662
  // Commit the tail block
659
- const tailResult = await this.commitBlock(request.tailId, allBlockIds, request.actionId, request.rev, request.tailId);
663
+ const tailResult = await this.commitBlock(request.tailId, request.actionId, request.rev, request.tailId);
660
664
  if (!tailResult.success) {
661
665
  return tailResult;
662
666
  }
@@ -679,7 +683,7 @@ export class NetworkTransactor implements ITransactor, IBlockChangeNotifier {
679
683
  return { success: true };
680
684
  }
681
685
 
682
- private async commitBlock(blockId: BlockId, blockIds: BlockId[], actionId: ActionId, rev: number, tailId?: BlockId): Promise<CommitResult> {
686
+ private async commitBlock(blockId: BlockId, actionId: ActionId, rev: number, tailId?: BlockId): Promise<CommitResult> {
683
687
  const { batches: tailBatches, error: tailError } = await this.commitBlocks({ blockIds: [blockId], actionId, rev, tailId });
684
688
  if (tailError) {
685
689
  // commit is a pure attempt: stale → { success:false }, transient → throw. Cancellation
@@ -1,5 +1,5 @@
1
1
  import type { IBlock, BlockHeader, BlockId, BlockSource, BlockType, ReadPurpose, Transforms } from "../index.js";
2
- import { applyOperation } from "../index.js";
2
+ import { applyOperation } from "./helpers.js";
3
3
  import { LruMap } from "../utility/lru-map.js";
4
4
  import { createLogger } from "../logger.js";
5
5
  import type { ReadDependencyCollector } from "../transaction/read-dependency-collector.js";
@@ -148,11 +148,12 @@ export function applyTransform(block: IBlock | undefined, transform: Transform):
148
148
  return block;
149
149
  }
150
150
 
151
- /** Concatenates a transform to the given transforms */
151
+ /**
152
+ * Concatenates a single block's transform onto the given transforms.
153
+ *
154
+ * Delegates to `mergeTransforms` so the two helpers cannot drift: updates for a shared
155
+ * block id concatenate (order-preserving), deletes dedupe, inserts stay last-wins.
156
+ */
152
157
  export function concatTransform(transforms: Transforms, blockId: BlockId, transform: Transform): Transforms {
153
- return {
154
- inserts: { ...transforms.inserts, ...(transform.insert ? { [blockId]: transform.insert } : {}) },
155
- updates: { ...transforms.updates, ...(transform.updates ? { [blockId]: transform.updates } : {}) },
156
- deletes: [...(transforms.deletes ?? []), ...(transform.delete ? [blockId] : [])]
157
- };
158
+ return mergeTransforms(transforms, transformsFromTransform(transform, blockId));
158
159
  }
@@ -1,5 +1,6 @@
1
1
  import type { IBlock, BlockId, BlockStore as IBlockStore, BlockHeader, BlockOperation, BlockType, BlockSource as IBlockSource, ReadPurpose } from "../index.js";
2
- import { applyOperation, applyOperations, emptyTransforms, blockIdsForTransforms, ensured } from "../index.js";
2
+ import { applyOperation, applyOperations, emptyTransforms, blockIdsForTransforms } from "./helpers.js";
3
+ import { ensured } from "../utility/ensured.js";
3
4
 
4
5
  /** A block store that collects transformations, without applying them to the underlying source.
5
6
  * Transformations are also applied to the retrieved blocks, making it seem like the source has been modified.