@optimystic/db-core 0.9.3 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/chain/chain-nodes.d.ts +2 -1
- package/dist/src/chain/chain-nodes.d.ts.map +1 -1
- package/dist/src/chain/chain-nodes.js.map +1 -1
- package/dist/src/chain/chain.d.ts +3 -0
- package/dist/src/chain/chain.d.ts.map +1 -1
- package/dist/src/chain/chain.js +11 -1
- package/dist/src/chain/chain.js.map +1 -1
- package/dist/src/chain/index.d.ts +1 -0
- package/dist/src/chain/index.d.ts.map +1 -1
- package/dist/src/chain/index.js +1 -0
- package/dist/src/chain/index.js.map +1 -1
- package/dist/src/collection/collection-type-registry.d.ts +19 -0
- package/dist/src/collection/collection-type-registry.d.ts.map +1 -0
- package/dist/src/collection/collection-type-registry.js +18 -0
- package/dist/src/collection/collection-type-registry.js.map +1 -0
- package/dist/src/collection/collection.js +1 -1
- package/dist/src/collection/collection.js.map +1 -1
- package/dist/src/collection/index.d.ts +1 -0
- package/dist/src/collection/index.d.ts.map +1 -1
- package/dist/src/collection/index.js +1 -0
- package/dist/src/collection/index.js.map +1 -1
- package/dist/src/collection/struct.d.ts +6 -6
- package/dist/src/collection/struct.d.ts.map +1 -1
- package/dist/src/collections/diary/diary.js +12 -2
- package/dist/src/collections/diary/diary.js.map +1 -1
- package/dist/src/collections/tree/struct.d.ts.map +1 -1
- package/dist/src/collections/tree/struct.js +5 -1
- package/dist/src/collections/tree/struct.js.map +1 -1
- package/dist/src/log/log.d.ts +4 -1
- package/dist/src/log/log.d.ts.map +1 -1
- package/dist/src/log/log.js +6 -2
- package/dist/src/log/log.js.map +1 -1
- package/package.json +1 -1
- package/src/chain/chain-nodes.ts +3 -1
- package/src/chain/chain.ts +16 -2
- package/src/chain/index.ts +1 -0
- package/src/collection/collection-type-registry.ts +36 -0
- package/src/collection/collection.ts +3 -3
- package/src/collection/index.ts +1 -0
- package/src/collection/struct.ts +6 -7
- package/src/collections/diary/diary.ts +13 -2
- package/src/collections/tree/struct.ts +6 -1
- 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
|
|
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,
|
|
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;
|
|
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":"AAAA,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGvE,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,MAAM,MAAM,SAAS,CAAC,MAAM,IAAI;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,MAAM,GAAG;KACtC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI;IACtC,eAAe,CAAC,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC;IACrE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzG,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/chain/chain.ts"],"names":[],"mappings":"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"}
|
package/dist/src/chain/chain.js
CHANGED
|
@@ -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":"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;AAsBlC,wJAAwJ;AAExJ,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;QAChE,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
|
+
{"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 +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"}
|
package/dist/src/chain/index.js
CHANGED
|
@@ -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 =
|
|
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,
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 +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
|
|
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;
|
|
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 "./
|
|
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;
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/src/log/log.d.ts
CHANGED
|
@@ -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>,
|
|
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;
|
|
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"}
|
package/dist/src/log/log.js
CHANGED
|
@@ -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,
|
|
22
|
-
return new Log(await Chain.create(store, {
|
|
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()) {
|
package/dist/src/log/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAStE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAgB,WAAW,CAAC,CAAC;AAE7D,MAAM,OAAO,GAAG;IAEG;IADlB,YACkB,KAA+B;QAA/B,UAAK,GAAL,KAAK,CAA0B;IAEjD,CAAC;IAED,IAAI,EAAE;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAU,KAAyB,EAAE,EAAW;QAChE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAoB,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAU,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAU,KAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/log/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAStE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAgB,WAAW,CAAC,CAAC;AAE7D,MAAM,OAAO,GAAG;IAEG;IADlB,YACkB,KAA+B;QAA/B,UAAK,GAAL,KAAK,CAA0B;IAEjD,CAAC;IAED,IAAI,EAAE;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAU,KAAyB,EAAE,EAAW;QAChE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAoB,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAU,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAU,KAAyB,EAAE,OAAyD;QAChH,OAAO,IAAI,GAAG,CAAU,MAAM,KAAK,CAAC,MAAM,CAAoB,KAAK,EAAE;YACpE,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;SAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,UAAU,CAAC,OAAkB,EAAE,QAAkB,EAAE,GAAW,EAAE,WAA4B,EAAE,gBAAgC,EAAE,EAAE,YAAoB,IAAI,CAAC,GAAG,EAAE;QACrK,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAuB,CAAC;QAClH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAC9F,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,aAAa,CAAC,QAAqB,EAAE,GAAW,EAAE,YAAoB,IAAI,CAAC,GAAG,EAAE;QACrF,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,gBAAgB;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACN,SAAS,EACR,UAAU;gBAET,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtE,CAAC,CAAC,EAAE;YACN,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;SACzB,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,OAAO,CAAC,QAA4B;QACzC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,IAAI,GAAuB,CAAC;QAC5B,IAAI,cAAwD,CAAC;QAC7D,+EAA+E;QAC/E,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,OAAO,CAAoB,IAAI,CAAE,CAAC;YAChD,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACvB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtB,cAAc,GAAG,IAAI,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC/C,MAAM;YACP,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACvE,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;gBACpD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC;YAChC,CAAC,CAAC,oFAAoF;QACvF,CAAC;QACD,uEAAuE;QACvE,IAAI,cAAc,EAAE,CAAC;YACpB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,OAAO,CAAoB,IAAI,CAAE,CAAC;gBAChD,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;oBACpD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBAClB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC;oBAChC,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;IAC7E,CAAC;IAED,oJAAoJ;IACpJ,KAAK,CAAC,CAAC,MAAM,CAAC,QAAuC,EAAE,OAAO,GAAG,IAAI;QACpE,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YAC/D,MAAM,OAAO,CAAoB,IAAI,CAAE,CAAC;QACzC,CAAC;IACF,CAAC;IAED,6GAA6G;IACrG,KAAK,CAAC,cAAc,CAAC,QAAsC;QAClE,IAAI,QAAkD,CAAC;QACvD,IAAI,GAAuB,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,OAAO,CAAoB,IAAI,CAAE,CAAC;YAChD,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACvB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC3D,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAED,+EAA+E;IACvE,KAAK,CAAC,WAAW,CAAC,QAAsC;QAC/D,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAoB,UAAU,CAAC,CAAC;YACrD,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;QACF,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAU,KAAyB;QAChE,OAAO;YACN,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9E,iBAAiB,EAAE,CAAC,EAAY,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC;YAClG,QAAQ,EAAE,KAAK,EAAE,OAA0B,EAAE,OAAsC,EAAE,EAAE;gBACtF,IAAI,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpF,OAAO,CAAC,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;SACsC,CAAC;IAE1C,CAAC;CACD"}
|
package/package.json
CHANGED
package/src/chain/chain-nodes.ts
CHANGED
|
@@ -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
|
|
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
|
|
package/src/chain/chain.ts
CHANGED
|
@@ -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,
|
package/src/chain/index.ts
CHANGED
|
@@ -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:
|
|
257
|
+
header: CollectionHeaderBlock,
|
|
258
258
|
): Promise<void> {
|
|
259
|
-
const tailId =
|
|
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;
|
package/src/collection/index.ts
CHANGED
package/src/collection/struct.ts
CHANGED
|
@@ -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
|
|
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 "./
|
|
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, {
|
|
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. */
|