@optimystic/db-core 0.9.2 → 0.10.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 (43) hide show
  1. package/dist/src/chain/chain-nodes.d.ts +2 -1
  2. package/dist/src/chain/chain-nodes.d.ts.map +1 -1
  3. package/dist/src/chain/chain-nodes.js.map +1 -1
  4. package/dist/src/chain/chain.d.ts +3 -0
  5. package/dist/src/chain/chain.d.ts.map +1 -1
  6. package/dist/src/chain/chain.js +11 -1
  7. package/dist/src/chain/chain.js.map +1 -1
  8. package/dist/src/chain/index.d.ts +1 -0
  9. package/dist/src/chain/index.d.ts.map +1 -1
  10. package/dist/src/chain/index.js +1 -0
  11. package/dist/src/chain/index.js.map +1 -1
  12. package/dist/src/collection/collection-type-registry.d.ts +19 -0
  13. package/dist/src/collection/collection-type-registry.d.ts.map +1 -0
  14. package/dist/src/collection/collection-type-registry.js +18 -0
  15. package/dist/src/collection/collection-type-registry.js.map +1 -0
  16. package/dist/src/collection/collection.js +1 -1
  17. package/dist/src/collection/collection.js.map +1 -1
  18. package/dist/src/collection/index.d.ts +1 -0
  19. package/dist/src/collection/index.d.ts.map +1 -1
  20. package/dist/src/collection/index.js +1 -0
  21. package/dist/src/collection/index.js.map +1 -1
  22. package/dist/src/collection/struct.d.ts +6 -6
  23. package/dist/src/collection/struct.d.ts.map +1 -1
  24. package/dist/src/collections/diary/diary.js +12 -2
  25. package/dist/src/collections/diary/diary.js.map +1 -1
  26. package/dist/src/collections/tree/struct.d.ts.map +1 -1
  27. package/dist/src/collections/tree/struct.js +5 -1
  28. package/dist/src/collections/tree/struct.js.map +1 -1
  29. package/dist/src/log/log.d.ts +4 -1
  30. package/dist/src/log/log.d.ts.map +1 -1
  31. package/dist/src/log/log.js +6 -2
  32. package/dist/src/log/log.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/chain/chain-nodes.ts +3 -1
  35. package/src/chain/chain.ts +16 -2
  36. package/src/chain/index.ts +1 -0
  37. package/src/collection/collection-type-registry.ts +36 -0
  38. package/src/collection/collection.ts +3 -3
  39. package/src/collection/index.ts +1 -0
  40. package/src/collection/struct.ts +6 -7
  41. package/src/collections/diary/diary.ts +13 -2
  42. package/src/collections/tree/struct.ts +6 -1
  43. package/src/log/log.ts +6 -2
@@ -8,10 +8,11 @@ export declare const entries$: string;
8
8
  export declare const priorId$: string;
9
9
  export declare const nextId$: string;
10
10
  export declare const ChainDataBlockType: string;
11
- export type ChainHeaderNode = IBlock & {
11
+ export type IChainHeader = {
12
12
  headId: BlockId;
13
13
  tailId: BlockId;
14
14
  };
15
+ export type ChainHeaderNode = IBlock & IChainHeader;
15
16
  export declare const headId$: string;
16
17
  export declare const tailId$: string;
17
18
  export declare const ChainHeaderBlockType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chain-nodes.d.ts","sourceRoot":"","sources":["../../../src/chain/chain-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAGlF,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,GAAG;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAwC,CAAC;AAC9D,eAAO,MAAM,QAAQ,QAAwC,CAAC;AAC9D,eAAO,MAAM,OAAO,QAAuC,CAAC;AAE5D,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,QAAoC,CAAC;AACzD,eAAO,MAAM,OAAO,QAAoC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,QAA+C,CAAC"}
1
+ {"version":3,"file":"chain-nodes.d.ts","sourceRoot":"","sources":["../../../src/chain/chain-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAGlF,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,GAAG;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAwC,CAAC;AAC9D,eAAO,MAAM,QAAQ,QAAwC,CAAC;AAC9D,eAAO,MAAM,OAAO,QAAuC,CAAC;AAE5D,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,YAAY,CAAC;AAEpD,eAAO,MAAM,OAAO,QAAoC,CAAC;AACzD,eAAO,MAAM,OAAO,QAAoC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,QAA+C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chain-nodes.js","sourceRoot":"","sources":["../../../src/chain/chain-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAqB,QAAQ,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAO7E,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAkB,QAAQ,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAkB,QAAQ,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"chain-nodes.js","sourceRoot":"","sources":["../../../src/chain/chain-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAqB,QAAQ,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAS7E,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAkB,QAAQ,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAkB,QAAQ,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC"}
@@ -16,6 +16,9 @@ export type ChainInitOptions<TEntry> = {
16
16
  };
17
17
  export type ChainCreateOptions<TEntry> = ChainInitOptions<TEntry> & {
18
18
  newId?: BlockId;
19
+ /** Use an already-inserted block as the chain header instead of creating a new one.
20
+ * headId and tailId will be set on it via apply(). */
21
+ existingHeaderId?: BlockId;
19
22
  };
20
23
  /** Represents a chain of blocks, forming a stack, queue, or log. */
21
24
  export declare class Chain<TEntry> {
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/chain/chain.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { Atomic } from "../index.js";
2
2
  import { ChainDataBlockType, ChainHeaderBlockType, entries$, headId$, nextId$, priorId$, tailId$ } from "./chain-nodes.js";
3
3
  import { apply } from "../blocks/index.js";
4
4
  export const EntriesPerBlock = 32;
5
- // TODO: Generalize the header access so that it can be merged with upstream header (e.g. collection header) and thus avoid another level of indirection
6
5
  /** Represents a chain of blocks, forming a stack, queue, or log. */
7
6
  export class Chain {
8
7
  store;
@@ -16,6 +15,17 @@ export class Chain {
16
15
  /** Creates a new queue, with an optional given id. */
17
16
  static async create(store, options) {
18
17
  const tailBlock = Chain.createTailBlock(store, options);
18
+ if (options?.existingHeaderId) {
19
+ // Use an already-inserted block as the chain header
20
+ const existing = await store.tryGet(options.existingHeaderId);
21
+ if (!existing) {
22
+ throw new Error(`Existing header block ${options.existingHeaderId} not found`);
23
+ }
24
+ apply(store, existing, [headId$, 0, 0, tailBlock.header.id]);
25
+ apply(store, existing, [tailId$, 0, 0, tailBlock.header.id]);
26
+ store.insert(tailBlock);
27
+ return new Chain(store, existing.header.id, options);
28
+ }
19
29
  const headerBlock = {
20
30
  ...(options?.createHeaderBlock?.(options?.newId) ?? { header: store.createBlockHeader(ChainHeaderBlockType, options?.newId) }),
21
31
  headId: tailBlock.header.id,
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/chain/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA8C,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3H,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAyBlC,oEAAoE;AACpE,MAAM,OAAO,KAAK;IAEP;IACO;IACC;IAHlB,YACU,KAAyB,EAClB,EAAW,EACV,OAAkC;QAF1C,UAAK,GAAL,KAAK,CAAoB;QAClB,OAAE,GAAF,EAAE,CAAS;QACV,YAAO,GAAP,OAAO,CAA2B;IAEpD,CAAC;IAED,sDAAsD;IACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAS,KAAyB,EAAE,OAAoC;QAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAS,KAAK,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC/B,oDAAoD;YACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,gBAAgB,YAAY,CAAC,CAAC;YAChF,CAAC;YACD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,IAAI,KAAK,CAAS,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,WAAW,GAAG;YACnB,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9H,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;SACR,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxB,OAAO,IAAI,KAAK,CAAS,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,eAAe,CAAS,KAAyB,EAAE,OAA+C;QAChH,OAAO;YACN,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5F,OAAO,EAAE,EAAc;YACvB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,SAAS;SACQ,CAAC;IAC5B,CAAC;IAED,kFAAkF;IAClF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAS,KAAyB,EAAE,EAAW,EAAE,OAAkC;QACnG,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAgC,CAAC;QAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,6FAA6F;QAC7F,MAAM,SAAS,GAAG,WAAkB,CAAC,CAAC,iDAAiD;QACvF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAS,KAAK,EAAE,OAAO,CAAC,CAAC;YAChE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxB,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,IAAI,KAAK,CAAS,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,GAAG,OAAiB;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,GAAG,OAAO,CAAC;QAEnB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,kCAAkC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG;gBACf,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACtG,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvB,MAAM,EAAE,SAAS;aACQ,CAAC;YAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,GAAG,OAAO,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,CAAC;QAEb,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,IAAuB,EAAE,KAAa;QAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,kBAAkB;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC3B,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7D,MAAM;YACP,CAAC;iBAAM,CAAC,CAAC,uBAAuB;gBAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC3B,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAA0B,CAAC;oBAC/D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC,CAAC,2CAA2C;oBACnD,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;oBACzD,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,yBAAyB;gBACvD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACvC,MAAM;YACP,CAAC;iBAAM,CAAC,CAAC,wBAAwB;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC3B,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAA0B,CAAC;oBAC9D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC,CAAC,2CAA2C;oBACnD,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;oBACzD,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,QAA4B,EAAE,OAAO,GAAG,IAAI;QACzD,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACR,CAAC;QACD,IAAI,KAAK,GAAsC,IAAI,CAAC,KAAK,CAAC;QAE1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,EAAE,CAAC;gBACd,OAAO,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;oBAC9C,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACvD,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClG,KAAK,GAAG,CAAC,CAAC;YACX,CAAC;QACF,CAAC;aAAM,CAAC;YACP,OAAO,KAAK,EAAE,CAAC;gBACd,OAAO,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;oBAC5B,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACvD,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpG,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;QACF,CAAC;IACF,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,IAAI,CAAC,IAAuB;QACjC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,OAAO;YACN,WAAW;YACX,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAA0B;YACrE,KAAK,EAAE,CAAC;SACR,CAAC;IACH,CAAC;IAED,sGAAsG;IACtG,KAAK,CAAC,IAAI,CAAC,IAAuB;QACjC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAC;QACnF,OAAO;YACN,WAAW;YACX,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;SACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrD,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,8HAA8H;QAC9H,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;YACrB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAA0B,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7G,CAAC;IAGD,KAAK,CAAC,OAAO,CAAC,MAAwB;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrD,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,iIAAiI;QACjI,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;YACtB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAA0B,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,CAAC;IAGD,KAAK,CAAC,SAAS;QACd,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAgC,CAAC;IACxE,CAAC;CACD;AAED,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAS,IAAuB;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,OAAO,CAAS,IAAuB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./chain.js";
2
+ export * from "./chain-nodes.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./chain.js";
2
+ export * from "./chain-nodes.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { BlockType } from "../blocks/index.js";
2
+ import type { ITransactor } from "../transactor/index.js";
3
+ import type { CollectionId, ICollection } from "./struct.js";
4
+ export interface CollectionTypeDescriptor {
5
+ /** The block type used for this collection's header block (e.g. "DIH", "TRE") */
6
+ blockType: BlockType;
7
+ /** Human-readable name (e.g. "Diary", "Tree") */
8
+ name: string;
9
+ /** Optional factory to open a collection with default settings.
10
+ * Not all types support this (e.g. Tree requires keyFromEntry/compare). */
11
+ open?: (transactor: ITransactor, id: CollectionId) => Promise<ICollection<any>>;
12
+ }
13
+ /** Register a collection type by its header block type. Throws if already registered. */
14
+ export declare function registerCollectionType(descriptor: CollectionTypeDescriptor): void;
15
+ /** Look up a collection type descriptor by its header block type. */
16
+ export declare function getCollectionType(blockType: BlockType): CollectionTypeDescriptor | undefined;
17
+ /** Returns all registered collection type descriptors. */
18
+ export declare function getCollectionTypes(): ReadonlyMap<BlockType, CollectionTypeDescriptor>;
19
+ //# sourceMappingURL=collection-type-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-type-registry.d.ts","sourceRoot":"","sources":["../../../src/collection/collection-type-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACxC,iFAAiF;IACjF,SAAS,EAAE,SAAS,CAAC;IACrB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb;gFAC4E;IAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;CAChF;AAID,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAQjF;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,wBAAwB,GAAG,SAAS,CAE5F;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,IAAI,WAAW,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAErF"}
@@ -0,0 +1,18 @@
1
+ const collectionTypes = new Map();
2
+ /** Register a collection type by its header block type. Throws if already registered. */
3
+ export function registerCollectionType(descriptor) {
4
+ if (collectionTypes.has(descriptor.blockType)) {
5
+ throw new Error(`Collection type ${descriptor.blockType} (${descriptor.name}) already registered`
6
+ + ` (${collectionTypes.get(descriptor.blockType).name})`);
7
+ }
8
+ collectionTypes.set(descriptor.blockType, descriptor);
9
+ }
10
+ /** Look up a collection type descriptor by its header block type. */
11
+ export function getCollectionType(blockType) {
12
+ return collectionTypes.get(blockType);
13
+ }
14
+ /** Returns all registered collection type descriptors. */
15
+ export function getCollectionTypes() {
16
+ return collectionTypes;
17
+ }
18
+ //# sourceMappingURL=collection-type-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-type-registry.js","sourceRoot":"","sources":["../../../src/collection/collection-type-registry.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuC,CAAC;AAEvE,yFAAyF;AACzF,MAAM,UAAU,sBAAsB,CAAC,UAAoC;IAC1E,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACd,mBAAmB,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,IAAI,sBAAsB;cAC/E,KAAK,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAE,CAAC,IAAI,GAAG,CACzD,CAAC;IACH,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACrD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,kBAAkB;IACjC,OAAO,eAAe,CAAC;AACxB,CAAC"}
@@ -220,7 +220,7 @@ export class Collection {
220
220
  * non-tail blocks during chain walks.
221
221
  */
222
222
  static async bootstrapContext(source, transactor, header) {
223
- const tailId = Object.hasOwn(header, 'tailId') ? header.tailId : undefined;
223
+ const tailId = header.tailId;
224
224
  if (tailId) {
225
225
  const tailResult = await transactor.get({ blockIds: [tailId] });
226
226
  const tailState = tailResult?.[tailId]?.state;
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGrH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAchC,MAAM,OAAO,UAAU;IAKL;IACA;IACC;IACA;IAEA;IAED;IACC;IAZV,OAAO,GAAsB,EAAE,CAAC;IACvB,OAAO,CAAS;IAEjC,YACiB,EAAgB,EAChB,UAAuB,EACtB,QAAoD,EACpD,MAAgC;IACjD,iDAAiD;IAChC,WAAgC;IACjD,sBAAsB;IACN,OAAwB,EACvB,cAAuG;QARxG,OAAE,GAAF,EAAE,CAAc;QAChB,eAAU,GAAV,UAAU,CAAa;QACtB,aAAQ,GAAR,QAAQ,CAA4C;QACpD,WAAM,GAAN,MAAM,CAA0B;QAEhC,gBAAW,GAAX,WAAW,CAAqB;QAEjC,YAAO,GAAP,OAAO,CAAiB;QACvB,mBAAc,GAAd,cAAc,CAAyF;QAExH,IAAI,CAAC,OAAO,GAAG,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAU,UAAuB,EAAE,EAAgB,EAAE,IAAoC;QACjH,sHAAsH;QACtH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAsC,CAAC;QAE5E,IAAI,MAAM,EAAE,CAAC,CAAC,4BAA4B;YACzC,4EAA4E;YAC5E,+EAA+E;YAC/E,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAE9D,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAkB,OAAO,EAAE,EAAE,CAAC,CAAE,CAAC;YAC5D,MAAM,CAAC,aAAa,GAAG,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC;aAAM,CAAC,CAAC,4BAA4B;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC;YACjC,MAAM,GAAG,CAAC,IAAI,CAAkB,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,OAA0B;QACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC;QACpC,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAG,OAA0B;QACtD,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAG,OAA0B;QAC3D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;IAED,gIAAgI;IAChI,KAAK,CAAC,MAAM;QACX,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,cAAc;QAC3B,0DAA0D;QAC1D,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpC,0EAA0E;QAC1E,+EAA+E;QAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,uEAAuE;QACvE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAkB,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5E,uDAAuD;QACvD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YAC3C,mEAAmE;YACnE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC3F,MAAM,CAAC,OAAO,CAAsB,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3F,CAAC;QAED,uFAAuF;QACvF,IAAI,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC;IAC7C,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,IAAI;QACT,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,YAAY;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3E,gGAAgG;YAChG,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,gHAAgH;YAChH,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAExD,sDAAsD;YACtD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAkB,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAEvG,sCAAsC;YACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnI,IAAI,YAAY,EAAE,CAAC;gBAClB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC1B,+EAA+E;oBAC/E,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;gBACxE,CAAC;gBACD,yFAAyF;gBACzF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACP,0DAA0D;gBAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClD,uEAAuE;gBACvE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;oBACpD,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;oBACjG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAED,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI;QAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAkB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,aAAa;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,qFAAqF;QACrF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED,mBAAmB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;IAED,qBAAqB;QACpB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACO,gBAAgB,CAAC,MAAuB,EAAE,SAA4B;QAC/E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAC;YACd,CAAC;iBAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBACnC,4DAA4D;gBAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACpC,MAAgC,EAChC,UAAuB,EACvB,MAAc;QAEd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,MAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;YAC9C,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;gBACvB,MAAM,CAAC,aAAa,GAAG;oBACtB,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBAC/E,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG;iBACzB,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./collection.js";
2
2
  export * from "./struct.js";
3
3
  export * from "./action.js";
4
+ export * from "./collection-type-registry.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./collection.js";
2
2
  export * from "./struct.js";
3
3
  export * from "./action.js";
4
+ export * from "./collection-type-registry.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import type { IBlock, BlockId, Action } from "../index.js";
2
+ import type { IChainHeader } from "../chain/chain-nodes.js";
2
3
  export type CollectionId = BlockId;
3
- export type CollectionHeaderType = 'CH';
4
- export type CollectionHeaderBlock = IBlock & {
5
- header: {
6
- type: CollectionHeaderType;
7
- };
8
- };
4
+ export type CollectionHeaderBlock = IBlock & Partial<IChainHeader>;
9
5
  export interface ICollection<TAction> {
6
+ readonly id: CollectionId;
7
+ act(...actions: Action<TAction>[]): Promise<void>;
10
8
  update(): Promise<void>;
11
9
  sync(): Promise<void>;
10
+ updateAndSync(): Promise<void>;
11
+ selectLog(forward?: boolean): AsyncIterableIterator<Action<TAction>>;
12
12
  }
13
13
  export type CreateCollectionAction = Action<void> & {
14
14
  type: "create";
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../src/collection/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAExC,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG;IAC5C,MAAM,EAAE;QACP,IAAI,EAAE,oBAAoB,CAAC;KAC3B,CAAC;CACF,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,OAAO;IACnC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;IACnD,IAAI,EAAE,QAAQ,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../src/collection/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEnE,MAAM,WAAW,WAAW,CAAC,OAAO;IACnC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACrE;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;IACnD,IAAI,EAAE,QAAQ,CAAC;CACf,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Collection } from "../../index.js";
2
- import { DiaryHeaderBlockType } from "./index.js";
1
+ import { Collection, registerCollectionType } from "../../index.js";
2
+ import { DiaryHeaderBlockType } from "./struct.js";
3
3
  export class Diary {
4
4
  collection;
5
5
  constructor(collection) {
@@ -38,4 +38,14 @@ export class Diary {
38
38
  }
39
39
  }
40
40
  }
41
+ registerCollectionType({
42
+ blockType: DiaryHeaderBlockType,
43
+ name: "Diary",
44
+ open: (transactor, id) => Collection.createOrOpen(transactor, id, {
45
+ modules: { "append": async () => { } },
46
+ createHeaderBlock: (hid, store) => ({
47
+ header: store.createBlockHeader(DiaryHeaderBlockType, hid)
48
+ })
49
+ }),
50
+ });
41
51
  //# sourceMappingURL=diary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diary.js","sourceRoot":"","sources":["../../../../src/collections/diary/diary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,OAAO,KAAK;IAEE;IADhB,YACgB,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAE9C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAS,OAAoB,EAAE,EAAgB;QAC9D,MAAM,IAAI,GAAkC;YACxC,OAAO,EAAE;gBACd,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;oBAC/B,sDAAsD;oBACtD,oCAAoC;gBACrC,CAAC;aACK;YACD,iBAAiB,EAAE,CAAC,EAAW,EAAE,KAAyB,EAAE,EAAE,CAAC,CAAC;gBAC5D,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,EAAE,CAAC;aAC5D,CAAC;SACL,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,MAAM,MAAM,GAAmB;YAC3B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI;QACxB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,CAAC,IAAI,CAAC;QACrB,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"diary.js","sourceRoot":"","sources":["../../../../src/collections/diary/diary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,OAAO,KAAK;IAEE;IADhB,YACgB,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAE9C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAS,OAAoB,EAAE,EAAgB;QAC9D,MAAM,IAAI,GAAkC;YACxC,OAAO,EAAE;gBACd,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;oBAC/B,sDAAsD;oBACtD,oCAAoC;gBACrC,CAAC;aACK;YACD,iBAAiB,EAAE,CAAC,EAAW,EAAE,KAAyB,EAAE,EAAE,CAAC,CAAC;gBAC5D,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,EAAE,CAAC;aAC5D,CAAC;SACL,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,MAAM,MAAM,GAAmB;YAC3B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI;QACxB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,CAAC,IAAI,CAAC;QACrB,CAAC;IACL,CAAC;CACJ;AAED,sBAAsB,CAAC;IACtB,SAAS,EAAE,oBAAoB;IAC/B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,EAAE;QACjE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE;QACrC,iBAAiB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,GAAG,CAAC;SAC1D,CAAC;KACF,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,qBAAqB,EAAqB,MAAM,gBAAgB,CAAC;AAG7F,eAAO,MAAM,mBAAmB,QAA8C,CAAC;AAE/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,EAAE,KAAK,OAAO,EAAE,KAAK,qBAAqB,EAA6C,MAAM,gBAAgB,CAAC;AAGrH,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,5 +1,9 @@
1
- import { registerBlockType } from "../../index.js";
1
+ import { registerBlockType, registerCollectionType } from "../../index.js";
2
2
  import { nameof } from "../../utility/nameof.js";
3
3
  export const TreeHeaderBlockType = registerBlockType("TRE", "TreeHeaderBlock");
4
+ registerCollectionType({
5
+ blockType: TreeHeaderBlockType,
6
+ name: "Tree",
7
+ });
4
8
  export const rootId$ = nameof("rootId");
5
9
  //# sourceMappingURL=struct.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"struct.js","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAM/E,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":"AAAA,OAAO,EAA4C,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACrH,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"}
@@ -15,7 +15,10 @@ export declare class Log<TAction> {
15
15
  /** Opens a presumably existing log. */
16
16
  static open<TAction>(store: BlockStore<IBlock>, id: BlockId): Promise<Log<TAction> | undefined>;
17
17
  /** Creates a new log. */
18
- static create<TAction>(store: BlockStore<IBlock>, newId?: BlockId): Promise<Log<TAction>>;
18
+ static create<TAction>(store: BlockStore<IBlock>, options?: {
19
+ newId?: BlockId;
20
+ existingHeaderId?: BlockId;
21
+ }): Promise<Log<TAction>>;
19
22
  /** Adds a new entry to the log. */
20
23
  addActions(actions: TAction[], actionId: ActionId, rev: number, getBlockIds: () => BlockId[], collectionIds?: CollectionId[], timestamp?: number): Promise<{
21
24
  entry: {
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAoB,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9I,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,YAAY,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,QAAQ,CAAC,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAC7D;IACD,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEH,eAAO,MAAM,UAAU,QAAqC,CAAC;AAE7D,qBAAa,GAAG,CAAC,OAAO;IAEtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IADvB,SAAS,aACS,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAIjD,IAAI,EAAE,WAEL;IAED,uCAAuC;WAC1B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAKrG,yBAAyB;WACZ,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO;IAIvE,mCAAmC;IAC7B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,EAAE,EAAE,aAAa,GAAE,YAAY,EAAO,EAAE,SAAS,GAAE,MAAmB;;;;;;;;;;;;;;IAQtK,oCAAoC;IAC9B,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAmB;;;;;;;;;;IAMtF,0CAA0C;IACpC,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgB5D,wEAAwE;IAClE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAmC5E,oJAAoJ;IAC7I,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,UAAO;IAMrE,6GAA6G;YAC/F,cAAc;IAc5B,+EAA+E;YACjE,WAAW;IAWzB,OAAO,CAAC,MAAM,CAAC,eAAe;CAa9B"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAoB,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9I,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,YAAY,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,QAAQ,CAAC,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAC7D;IACD,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEH,eAAO,MAAM,UAAU,QAAqC,CAAC;AAE7D,qBAAa,GAAG,CAAC,OAAO;IAEtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IADvB,SAAS,aACS,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAIjD,IAAI,EAAE,WAEL;IAED,uCAAuC;WAC1B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAKrG,yBAAyB;WACZ,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;IAQjH,mCAAmC;IAC7B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,EAAE,EAAE,aAAa,GAAE,YAAY,EAAO,EAAE,SAAS,GAAE,MAAmB;;;;;;;;;;;;;;IAQtK,oCAAoC;IAC9B,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAmB;;;;;;;;;;IAMtF,0CAA0C;IACpC,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgB5D,wEAAwE;IAClE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAmC5E,oJAAoJ;IAC7I,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,UAAO;IAMrE,6GAA6G;YAC/F,cAAc;IAc5B,+EAA+E;YACjE,WAAW;IAWzB,OAAO,CAAC,MAAM,CAAC,eAAe;CAa9B"}
@@ -18,8 +18,12 @@ export class Log {
18
18
  return chain ? new Log(chain) : undefined;
19
19
  }
20
20
  /** Creates a new log. */
21
- static async create(store, newId) {
22
- return new Log(await Chain.create(store, { ...Log.getChainOptions(store), newId }));
21
+ static async create(store, options) {
22
+ return new Log(await Chain.create(store, {
23
+ ...Log.getChainOptions(store),
24
+ newId: options?.newId,
25
+ existingHeaderId: options?.existingHeaderId,
26
+ }));
23
27
  }
24
28
  /** Adds a new entry to the log. */
25
29
  async addActions(actions, actionId, rev, getBlockIds, collectionIds = [], timestamp = Date.now()) {
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/log/log.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.9.2",
3
+ "version": "0.10.0",
4
4
  "type": "module",
5
5
  "description": "Core database functionality for Optimystic",
6
6
  "main": "dist/src/index.js",
@@ -13,11 +13,13 @@ export const nextId$ = nameof<ChainDataNode<any>>("nextId");
13
13
 
14
14
  export const ChainDataBlockType = registerBlockType('CHD', 'ChainDataBlock');
15
15
 
16
- export type ChainHeaderNode = IBlock & {
16
+ export type IChainHeader = {
17
17
  headId: BlockId;
18
18
  tailId: BlockId;
19
19
  };
20
20
 
21
+ export type ChainHeaderNode = IBlock & IChainHeader;
22
+
21
23
  export const headId$ = nameof<ChainHeaderNode>("headId");
22
24
  export const tailId$ = nameof<ChainHeaderNode>("tailId");
23
25
 
@@ -23,10 +23,11 @@ export type ChainInitOptions<TEntry> = {
23
23
 
24
24
  export type ChainCreateOptions<TEntry> = ChainInitOptions<TEntry> & {
25
25
  newId?: BlockId;
26
+ /** Use an already-inserted block as the chain header instead of creating a new one.
27
+ * headId and tailId will be set on it via apply(). */
28
+ existingHeaderId?: BlockId;
26
29
  };
27
30
 
28
- // TODO: Generalize the header access so that it can be merged with upstream header (e.g. collection header) and thus avoid another level of indirection
29
-
30
31
  /** Represents a chain of blocks, forming a stack, queue, or log. */
31
32
  export class Chain<TEntry> {
32
33
  private constructor(
@@ -39,6 +40,19 @@ export class Chain<TEntry> {
39
40
  /** Creates a new queue, with an optional given id. */
40
41
  static async create<TEntry>(store: BlockStore<IBlock>, options?: ChainCreateOptions<TEntry>) {
41
42
  const tailBlock = Chain.createTailBlock<TEntry>(store, options);
43
+
44
+ if (options?.existingHeaderId) {
45
+ // Use an already-inserted block as the chain header
46
+ const existing = await store.tryGet(options.existingHeaderId);
47
+ if (!existing) {
48
+ throw new Error(`Existing header block ${options.existingHeaderId} not found`);
49
+ }
50
+ apply(store, existing, [headId$, 0, 0, tailBlock.header.id]);
51
+ apply(store, existing, [tailId$, 0, 0, tailBlock.header.id]);
52
+ store.insert(tailBlock);
53
+ return new Chain<TEntry>(store, existing.header.id, options);
54
+ }
55
+
42
56
  const headerBlock = {
43
57
  ...(options?.createHeaderBlock?.(options?.newId) ?? { header: store.createBlockHeader(ChainHeaderBlockType, options?.newId) }),
44
58
  headId: tailBlock.header.id,
@@ -1,2 +1,3 @@
1
1
  export * from "./chain.js";
2
+ export * from "./chain-nodes.js";
2
3
 
@@ -0,0 +1,36 @@
1
+ import type { BlockType } from "../blocks/index.js";
2
+ import type { ITransactor } from "../transactor/index.js";
3
+ import type { CollectionId, ICollection } from "./struct.js";
4
+
5
+ export interface CollectionTypeDescriptor {
6
+ /** The block type used for this collection's header block (e.g. "DIH", "TRE") */
7
+ blockType: BlockType;
8
+ /** Human-readable name (e.g. "Diary", "Tree") */
9
+ name: string;
10
+ /** Optional factory to open a collection with default settings.
11
+ * Not all types support this (e.g. Tree requires keyFromEntry/compare). */
12
+ open?: (transactor: ITransactor, id: CollectionId) => Promise<ICollection<any>>;
13
+ }
14
+
15
+ const collectionTypes = new Map<BlockType, CollectionTypeDescriptor>();
16
+
17
+ /** Register a collection type by its header block type. Throws if already registered. */
18
+ export function registerCollectionType(descriptor: CollectionTypeDescriptor): void {
19
+ if (collectionTypes.has(descriptor.blockType)) {
20
+ throw new Error(
21
+ `Collection type ${descriptor.blockType} (${descriptor.name}) already registered`
22
+ + ` (${collectionTypes.get(descriptor.blockType)!.name})`
23
+ );
24
+ }
25
+ collectionTypes.set(descriptor.blockType, descriptor);
26
+ }
27
+
28
+ /** Look up a collection type descriptor by its header block type. */
29
+ export function getCollectionType(blockType: BlockType): CollectionTypeDescriptor | undefined {
30
+ return collectionTypes.get(blockType);
31
+ }
32
+
33
+ /** Returns all registered collection type descriptors. */
34
+ export function getCollectionTypes(): ReadonlyMap<BlockType, CollectionTypeDescriptor> {
35
+ return collectionTypes;
36
+ }
@@ -107,7 +107,7 @@ export class Collection<TAction> implements ICollection<TAction> {
107
107
 
108
108
  // Bootstrap context from committed tail so pending blocks are accessible.
109
109
  // Read through tracker so Chain.open inside Log.open reuses the cached header.
110
- const header = await tracker.tryGet(this.id);
110
+ const header = await tracker.tryGet(this.id) as CollectionHeaderBlock | undefined;
111
111
  if (header) {
112
112
  await Collection.bootstrapContext(source, this.transactor, header);
113
113
  }
@@ -254,9 +254,9 @@ export class Collection<TAction> implements ICollection<TAction> {
254
254
  private static async bootstrapContext(
255
255
  source: TransactorSource<IBlock>,
256
256
  transactor: ITransactor,
257
- header: IBlock,
257
+ header: CollectionHeaderBlock,
258
258
  ): Promise<void> {
259
- const tailId = Object.hasOwn(header, 'tailId') ? (header as any).tailId as BlockId : undefined;
259
+ const tailId = header.tailId;
260
260
  if (tailId) {
261
261
  const tailResult = await transactor.get({ blockIds: [tailId] });
262
262
  const tailState = tailResult?.[tailId]?.state;
@@ -1,3 +1,4 @@
1
1
  export * from "./collection.js";
2
2
  export * from "./struct.js";
3
3
  export * from "./action.js";
4
+ export * from "./collection-type-registry.js";
@@ -1,18 +1,17 @@
1
1
  import type { IBlock, BlockId, Action } from "../index.js";
2
+ import type { IChainHeader } from "../chain/chain-nodes.js";
2
3
 
3
4
  export type CollectionId = BlockId;
4
5
 
5
- export type CollectionHeaderType = 'CH';
6
-
7
- export type CollectionHeaderBlock = IBlock & {
8
- header: {
9
- type: CollectionHeaderType;
10
- };
11
- };
6
+ export type CollectionHeaderBlock = IBlock & Partial<IChainHeader>;
12
7
 
13
8
  export interface ICollection<TAction> {
9
+ readonly id: CollectionId;
10
+ act(...actions: Action<TAction>[]): Promise<void>;
14
11
  update(): Promise<void>;
15
12
  sync(): Promise<void>;
13
+ updateAndSync(): Promise<void>;
14
+ selectLog(forward?: boolean): AsyncIterableIterator<Action<TAction>>;
16
15
  }
17
16
 
18
17
  export type CreateCollectionAction = Action<void> & {
@@ -1,6 +1,6 @@
1
- import { Collection } from "../../index.js";
1
+ import { Collection, registerCollectionType } from "../../index.js";
2
2
  import type { ITransactor, Action, BlockId, BlockStore, IBlock, CollectionInitOptions, CollectionId } from "../../index.js";
3
- import { DiaryHeaderBlockType } from "./index.js";
3
+ import { DiaryHeaderBlockType } from "./struct.js";
4
4
 
5
5
  export class Diary<TEntry> {
6
6
  private constructor(
@@ -46,3 +46,14 @@ export class Diary<TEntry> {
46
46
  }
47
47
  }
48
48
  }
49
+
50
+ registerCollectionType({
51
+ blockType: DiaryHeaderBlockType,
52
+ name: "Diary",
53
+ open: (transactor, id) => Collection.createOrOpen(transactor, id, {
54
+ modules: { "append": async () => {} },
55
+ createHeaderBlock: (hid, store) => ({
56
+ header: store.createBlockHeader(DiaryHeaderBlockType, hid)
57
+ })
58
+ }),
59
+ });
@@ -1,8 +1,13 @@
1
- import { type BlockId, type CollectionHeaderBlock, registerBlockType } from "../../index.js";
1
+ import { type BlockId, type CollectionHeaderBlock, registerBlockType, registerCollectionType } from "../../index.js";
2
2
  import { nameof } from "../../utility/nameof.js";
3
3
 
4
4
  export const TreeHeaderBlockType = registerBlockType("TRE", "TreeHeaderBlock");
5
5
 
6
+ registerCollectionType({
7
+ blockType: TreeHeaderBlockType,
8
+ name: "Tree",
9
+ });
10
+
6
11
  export type TreeCollectionHeaderBlock = CollectionHeaderBlock & {
7
12
  rootId: BlockId;
8
13
  };
package/src/log/log.ts CHANGED
@@ -33,8 +33,12 @@ export class Log<TAction> {
33
33
  }
34
34
 
35
35
  /** Creates a new log. */
36
- static async create<TAction>(store: BlockStore<IBlock>, newId?: BlockId) {
37
- return new Log<TAction>(await Chain.create<LogEntry<TAction>>(store, { ...Log.getChainOptions(store), newId }));
36
+ static async create<TAction>(store: BlockStore<IBlock>, options?: { newId?: BlockId; existingHeaderId?: BlockId }) {
37
+ return new Log<TAction>(await Chain.create<LogEntry<TAction>>(store, {
38
+ ...Log.getChainOptions(store),
39
+ newId: options?.newId,
40
+ existingHeaderId: options?.existingHeaderId,
41
+ }));
38
42
  }
39
43
 
40
44
  /** Adds a new entry to the log. */