@xyo-network/archivist 2.26.1 → 2.26.4
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/cjs/Abstract.d.ts +3 -2
- package/dist/cjs/Abstract.d.ts.map +1 -1
- package/dist/cjs/Abstract.js +14 -6
- package/dist/cjs/Abstract.js.map +1 -1
- package/dist/cjs/XyoArchivistConfig.d.ts +4 -11
- package/dist/cjs/XyoArchivistConfig.d.ts.map +1 -1
- package/dist/cjs/XyoArchivistConfig.js.map +1 -1
- package/dist/cjs/XyoMemoryArchivist.d.ts +1 -1
- package/dist/cjs/XyoMemoryArchivist.d.ts.map +1 -1
- package/dist/cjs/XyoMemoryArchivist.js +6 -6
- package/dist/cjs/XyoMemoryArchivist.js.map +1 -1
- package/dist/docs.json +1221 -1086
- package/dist/esm/Abstract.d.ts +3 -2
- package/dist/esm/Abstract.d.ts.map +1 -1
- package/dist/esm/Abstract.js +12 -4
- package/dist/esm/Abstract.js.map +1 -1
- package/dist/esm/XyoArchivistConfig.d.ts +4 -11
- package/dist/esm/XyoArchivistConfig.d.ts.map +1 -1
- package/dist/esm/XyoArchivistConfig.js.map +1 -1
- package/dist/esm/XyoMemoryArchivist.d.ts +1 -1
- package/dist/esm/XyoMemoryArchivist.d.ts.map +1 -1
- package/dist/esm/XyoMemoryArchivist.js +3 -3
- package/dist/esm/XyoMemoryArchivist.js.map +1 -1
- package/package.json +6 -6
- package/src/Abstract.ts +15 -6
- package/src/XyoArchivistConfig.ts +3 -11
- package/src/XyoMemoryArchivist.ts +5 -3
package/dist/esm/Abstract.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { XyoPayload } from '@xyo-network/payload';
|
|
|
4
4
|
import { NullablePromisableArray, Promisable, PromisableArray } from '@xyo-network/promisable';
|
|
5
5
|
import { Archivist } from './Archivist';
|
|
6
6
|
import { XyoArchivist, XyoArchivistQueryPayload } from './XyoArchivist';
|
|
7
|
-
import { XyoArchivistConfig,
|
|
7
|
+
import { XyoArchivistConfig, XyoArchivistParents } from './XyoArchivistConfig';
|
|
8
8
|
export declare abstract class XyoAbstractArchivist<Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload, C extends XyoArchivistConfig = XyoArchivistConfig> extends XyoAbstractModule<Q, C> implements XyoArchivist<XyoArchivistQueryPayload>, Archivist<XyoPayload, XyoPayload, XyoPayload, XyoPayload, XyoArchivistQueryPayload> {
|
|
9
9
|
abstract get(ids: string[]): NullablePromisableArray<XyoPayload<{
|
|
10
10
|
schema: string;
|
|
@@ -23,7 +23,8 @@ export declare abstract class XyoAbstractArchivist<Q extends XyoArchivistQueryPa
|
|
|
23
23
|
get resolver(): ((address: string) => XyoArchivist<XyoArchivistQueryPayload<XyoPayload<{
|
|
24
24
|
schema: string;
|
|
25
25
|
}>>>) | undefined;
|
|
26
|
+
private resolveArchivists;
|
|
26
27
|
private _parents?;
|
|
27
|
-
get parents():
|
|
28
|
+
get parents(): XyoArchivistParents;
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=Abstract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../src/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../src/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE9E,8BAAsB,oBAAoB,CACtC,CAAC,SAAS,wBAAwB,GAAG,wBAAwB,EAC7D,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAEnD,SAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAC9B,YAAW,YAAY,CAAC,wBAAwB,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,CAAC;IAEtI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEpF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/H,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;aAEtF,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IAEjF,IAAI,QAAQ;;sBAEX;IAED,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,IAAI,OAAO,wBAOV;CACF"}
|
package/dist/esm/Abstract.js
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/sdk-js';
|
|
2
2
|
import { XyoAbstractModule } from '@xyo-network/module';
|
|
3
|
-
import compact from 'lodash/compact';
|
|
4
3
|
export class XyoAbstractArchivist extends XyoAbstractModule {
|
|
5
4
|
get resolver() {
|
|
6
5
|
return this.config.resolver;
|
|
7
6
|
}
|
|
7
|
+
resolveArchivists(archivists) {
|
|
8
|
+
const resolved = {};
|
|
9
|
+
if (archivists) {
|
|
10
|
+
Object.entries(archivists).forEach(([key, value]) => {
|
|
11
|
+
resolved[key] = value ?? this.resolver?.(key) ?? null;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return resolved;
|
|
15
|
+
}
|
|
8
16
|
_parents;
|
|
9
17
|
get parents() {
|
|
10
18
|
this._parents = this._parents ?? {
|
|
11
|
-
commit:
|
|
12
|
-
read:
|
|
13
|
-
write:
|
|
19
|
+
commit: this.resolveArchivists(this.config.parents?.commit),
|
|
20
|
+
read: this.resolveArchivists(this.config.parents?.commit),
|
|
21
|
+
write: this.resolveArchivists(this.config.parents?.commit),
|
|
14
22
|
};
|
|
15
23
|
return assertEx(this._parents);
|
|
16
24
|
}
|
package/dist/esm/Abstract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Abstract.js","sourceRoot":"","sources":["../../src/Abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"Abstract.js","sourceRoot":"","sources":["../../src/Abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAQvD,MAAM,OAAgB,oBAIpB,SAAQ,iBAAuB;IAW/B,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAEO,iBAAiB,CAAC,UAA4D;QACpF,MAAM,QAAQ,GAAoD,EAAE,CAAA;QACpE,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;YACvD,CAAC,CAAC,CAAA;SACH;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,QAAQ,CAAsB;IACtC,IAAI,OAAO;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI;YAC/B,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YAC3D,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YACzD,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;SAC3D,CAAA;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;CACF"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import { XyoAccount } from '@xyo-network/account';
|
|
2
1
|
import { XyoModuleConfig } from '@xyo-network/module';
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload';
|
|
4
3
|
import { XyoArchivist, XyoArchivistQueryPayload } from './XyoArchivist';
|
|
5
4
|
export interface XyoArchivistParents {
|
|
6
|
-
read?: string
|
|
7
|
-
write?: string
|
|
8
|
-
commit?: string
|
|
9
|
-
}
|
|
10
|
-
export interface XyoResolvedArchivistParents {
|
|
11
|
-
read?: (XyoArchivist | null)[];
|
|
12
|
-
write?: (XyoArchivist | null)[];
|
|
13
|
-
commit?: (XyoArchivist | null)[];
|
|
5
|
+
read?: Record<string, XyoArchivist | null | undefined>;
|
|
6
|
+
write?: Record<string, XyoArchivist | null | undefined>;
|
|
7
|
+
commit?: Record<string, XyoArchivist | null | undefined>;
|
|
14
8
|
}
|
|
15
9
|
export declare type XyoArchivistConfig<T extends XyoPayload = XyoPayload, M extends XyoArchivist = XyoArchivist<XyoArchivistQueryPayload<T>>> = XyoModuleConfig<{
|
|
16
10
|
/** @field address of one or more parent archivists to read from */
|
|
17
11
|
parents?: XyoArchivistParents;
|
|
18
|
-
account?: XyoAccount;
|
|
19
12
|
cacheParentReads?: boolean;
|
|
20
13
|
/** @field address of archivist to write through to */
|
|
21
14
|
writeThrough?: string;
|
|
@@ -24,7 +17,7 @@ export declare class XyoArchivistConfigWrapper<C extends XyoArchivistConfig = Xy
|
|
|
24
17
|
protected config?: C;
|
|
25
18
|
constructor(config?: C);
|
|
26
19
|
get parents(): XyoArchivistParents | undefined;
|
|
27
|
-
get account(): XyoAccount | undefined;
|
|
20
|
+
get account(): import("@xyo-network/account").XyoAccount | undefined;
|
|
28
21
|
get writeThrough(): string | undefined;
|
|
29
22
|
get cacheParentReads(): boolean | undefined;
|
|
30
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoArchivistConfig.d.ts","sourceRoot":"","sources":["../../src/XyoArchivistConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"XyoArchivistConfig.d.ts","sourceRoot":"","sources":["../../src/XyoArchivistConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAEvE,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CACzD;AAED,oBAAY,kBAAkB,CAC5B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS,YAAY,GAAG,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAChE,eAAe,CACjB;IACE,mEAAmE;IACnE,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,CAAC,EACL,CAAC,CACF,CAAA;AAED,qBAAa,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IACtF,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACR,MAAM,CAAC,EAAE,CAAC;IAItB,IAAW,OAAO,oCAEjB;IAED,IAAW,OAAO,0DAEjB;IAED,IAAW,YAAY,uBAEtB;IAED,IAAW,gBAAgB,wBAE1B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoArchivistConfig.js","sourceRoot":"","sources":["../../src/XyoArchivistConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"XyoArchivistConfig.js","sourceRoot":"","sources":["../../src/XyoArchivistConfig.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,yBAAyB;IAC1B,MAAM,CAAI;IACpB,YAAY,MAAU;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAA;IAC7B,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAA;IAC7B,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,CAAA;IAClC,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACtC,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export declare type XyoMemoryArchivistConfig = XyoArchivistConfig<{
|
|
|
9
9
|
schema: 'network.xyo.module.config.archivist.memory';
|
|
10
10
|
max?: number;
|
|
11
11
|
}>;
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class XyoMemoryArchivist<Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload, C extends XyoMemoryArchivistConfig = XyoMemoryArchivistConfig> extends XyoAbstractArchivist<Q, C> {
|
|
13
13
|
query<Q>(_query: Q): Promisable<[XyoBoundWitness, XyoPayload<{
|
|
14
14
|
schema: string;
|
|
15
15
|
}>[]]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoMemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,MAAM,2BAA2B,CAAA;AACnF,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5D,oBAAY,wBAAwB,GAAG,kBAAkB,CAAC;IACxD,MAAM,EAAE,4CAA4C,CAAA;IACpD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAC,CAAA;AAEF,qBAAa,
|
|
1
|
+
{"version":3,"file":"XyoMemoryArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,MAAM,2BAA2B,CAAA;AACnF,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAIrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5D,oBAAY,wBAAwB,GAAG,kBAAkB,CAAC;IACxD,MAAM,EAAE,4CAA4C,CAAA;IACpD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAC,CAAA;AAEF,qBAAa,kBAAkB,CAC7B,CAAC,SAAS,wBAAwB,GAAG,wBAAwB,EAC7D,CAAC,SAAS,wBAAwB,GAAG,wBAAwB,CAC7D,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,eAAe,EAAE,UAAU,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,CAAC;IAGpF,IAAW,GAAG,WAEb;IAED,OAAO,CAAC,KAAK,CAA8B;gBAE/B,MAAM,EAAE,CAAC;IAKd,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAMlD,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvB,cAAc,CAAC,IAAI,EAAE,MAAM;;;IAY3B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAQ3D,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;IAS3D,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC;IAUvF,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE;IAIrC,MAAM;;;CAWpB"}
|
|
@@ -4,7 +4,7 @@ import { XyoPayloadWrapper } from '@xyo-network/payload';
|
|
|
4
4
|
import compact from 'lodash/compact';
|
|
5
5
|
import LruCache from 'lru-cache';
|
|
6
6
|
import { XyoAbstractArchivist } from './Abstract';
|
|
7
|
-
export class
|
|
7
|
+
export class XyoMemoryArchivist extends XyoAbstractArchivist {
|
|
8
8
|
query(_query) {
|
|
9
9
|
throw new Error('Method not implemented.');
|
|
10
10
|
}
|
|
@@ -25,7 +25,7 @@ export class XyoMemoryArchivistWrapper extends XyoAbstractArchivist {
|
|
|
25
25
|
this.cache.clear();
|
|
26
26
|
}
|
|
27
27
|
async getFromParents(hash) {
|
|
28
|
-
return compact(await Promise.all(compact(this.parents?.read
|
|
28
|
+
return compact(await Promise.all(compact(Object.values(this.parents?.read ?? {}).map(async (parent) => {
|
|
29
29
|
return (await parent?.get([hash]))?.[0] ?? null;
|
|
30
30
|
}))))[0];
|
|
31
31
|
}
|
|
@@ -59,7 +59,7 @@ export class XyoMemoryArchivistWrapper extends XyoAbstractArchivist {
|
|
|
59
59
|
const payloads = assertEx(await this.all(), 'Nothing to commit');
|
|
60
60
|
const builder = new XyoBoundWitnessBuilder();
|
|
61
61
|
const block = builder.payloads(payloads).witness(account).build();
|
|
62
|
-
const result = await Promise.all(compact(this.parents?.commit?.map(async (parent) => await parent?.insert?.(payloads.concat([block])))));
|
|
62
|
+
const result = await Promise.all(compact(Object.values(this.parents?.commit ?? [])?.map(async (parent) => await parent?.insert?.(payloads.concat([block])))));
|
|
63
63
|
await this.clear();
|
|
64
64
|
return result;
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAmB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACnF,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEpE,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAUjD,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@xylabs/sdk-js": "^2.6.6",
|
|
13
|
-
"@xyo-network/account": "^2.26.
|
|
14
|
-
"@xyo-network/boundwitness": "^2.26.
|
|
15
|
-
"@xyo-network/module": "^2.26.
|
|
16
|
-
"@xyo-network/payload": "^2.26.
|
|
17
|
-
"@xyo-network/promisable": "^2.26.
|
|
13
|
+
"@xyo-network/account": "^2.26.4",
|
|
14
|
+
"@xyo-network/boundwitness": "^2.26.4",
|
|
15
|
+
"@xyo-network/module": "^2.26.4",
|
|
16
|
+
"@xyo-network/payload": "^2.26.4",
|
|
17
|
+
"@xyo-network/promisable": "^2.26.4",
|
|
18
18
|
"lodash": "^4.17.21",
|
|
19
19
|
"lru-cache": "^7.14.0",
|
|
20
20
|
"tslib": "^2.4.0"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
},
|
|
57
57
|
"sideEffects": false,
|
|
58
58
|
"types": "dist/esm/index.d.ts",
|
|
59
|
-
"version": "2.26.
|
|
59
|
+
"version": "2.26.4"
|
|
60
60
|
}
|
package/src/Abstract.ts
CHANGED
|
@@ -3,11 +3,10 @@ import { XyoBoundWitness } from '@xyo-network/boundwitness'
|
|
|
3
3
|
import { XyoAbstractModule } from '@xyo-network/module'
|
|
4
4
|
import { XyoPayload } from '@xyo-network/payload'
|
|
5
5
|
import { NullablePromisableArray, Promisable, PromisableArray } from '@xyo-network/promisable'
|
|
6
|
-
import compact from 'lodash/compact'
|
|
7
6
|
|
|
8
7
|
import { Archivist } from './Archivist'
|
|
9
8
|
import { XyoArchivist, XyoArchivistQueryPayload } from './XyoArchivist'
|
|
10
|
-
import { XyoArchivistConfig,
|
|
9
|
+
import { XyoArchivistConfig, XyoArchivistParents } from './XyoArchivistConfig'
|
|
11
10
|
|
|
12
11
|
export abstract class XyoAbstractArchivist<
|
|
13
12
|
Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload,
|
|
@@ -28,12 +27,22 @@ export abstract class XyoAbstractArchivist<
|
|
|
28
27
|
return this.config.resolver
|
|
29
28
|
}
|
|
30
29
|
|
|
31
|
-
private
|
|
30
|
+
private resolveArchivists(archivists?: Record<string, XyoArchivist | null | undefined>) {
|
|
31
|
+
const resolved: Record<string, XyoArchivist | null | undefined> = {}
|
|
32
|
+
if (archivists) {
|
|
33
|
+
Object.entries(archivists).forEach(([key, value]) => {
|
|
34
|
+
resolved[key] = value ?? this.resolver?.(key) ?? null
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
return resolved
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
private _parents?: XyoArchivistParents
|
|
32
41
|
get parents() {
|
|
33
42
|
this._parents = this._parents ?? {
|
|
34
|
-
commit:
|
|
35
|
-
read:
|
|
36
|
-
write:
|
|
43
|
+
commit: this.resolveArchivists(this.config.parents?.commit),
|
|
44
|
+
read: this.resolveArchivists(this.config.parents?.commit),
|
|
45
|
+
write: this.resolveArchivists(this.config.parents?.commit),
|
|
37
46
|
}
|
|
38
47
|
return assertEx(this._parents)
|
|
39
48
|
}
|
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
import { XyoAccount } from '@xyo-network/account'
|
|
2
1
|
import { XyoModuleConfig } from '@xyo-network/module'
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload'
|
|
4
3
|
|
|
5
4
|
import { XyoArchivist, XyoArchivistQueryPayload } from './XyoArchivist'
|
|
6
5
|
|
|
7
6
|
export interface XyoArchivistParents {
|
|
8
|
-
read?: string
|
|
9
|
-
write?: string
|
|
10
|
-
commit?: string
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface XyoResolvedArchivistParents {
|
|
14
|
-
read?: (XyoArchivist | null)[]
|
|
15
|
-
write?: (XyoArchivist | null)[]
|
|
16
|
-
commit?: (XyoArchivist | null)[]
|
|
7
|
+
read?: Record<string, XyoArchivist | null | undefined>
|
|
8
|
+
write?: Record<string, XyoArchivist | null | undefined>
|
|
9
|
+
commit?: Record<string, XyoArchivist | null | undefined>
|
|
17
10
|
}
|
|
18
11
|
|
|
19
12
|
export type XyoArchivistConfig<
|
|
@@ -23,7 +16,6 @@ export type XyoArchivistConfig<
|
|
|
23
16
|
{
|
|
24
17
|
/** @field address of one or more parent archivists to read from */
|
|
25
18
|
parents?: XyoArchivistParents
|
|
26
|
-
account?: XyoAccount
|
|
27
19
|
cacheParentReads?: boolean
|
|
28
20
|
/** @field address of archivist to write through to */
|
|
29
21
|
writeThrough?: string
|
|
@@ -15,7 +15,7 @@ export type XyoMemoryArchivistConfig = XyoArchivistConfig<{
|
|
|
15
15
|
max?: number
|
|
16
16
|
}>
|
|
17
17
|
|
|
18
|
-
export class
|
|
18
|
+
export class XyoMemoryArchivist<
|
|
19
19
|
Q extends XyoArchivistQueryPayload = XyoArchivistQueryPayload,
|
|
20
20
|
C extends XyoMemoryArchivistConfig = XyoMemoryArchivistConfig,
|
|
21
21
|
> extends XyoAbstractArchivist<Q, C> {
|
|
@@ -47,7 +47,7 @@ export class XyoMemoryArchivistWrapper<
|
|
|
47
47
|
return compact(
|
|
48
48
|
await Promise.all(
|
|
49
49
|
compact(
|
|
50
|
-
this.parents?.read
|
|
50
|
+
Object.values(this.parents?.read ?? {}).map(async (parent) => {
|
|
51
51
|
return (await parent?.get([hash]))?.[0] ?? null
|
|
52
52
|
}),
|
|
53
53
|
),
|
|
@@ -91,7 +91,9 @@ export class XyoMemoryArchivistWrapper<
|
|
|
91
91
|
const payloads = assertEx(await this.all(), 'Nothing to commit')
|
|
92
92
|
const builder = new XyoBoundWitnessBuilder<XyoBoundWitness, XyoPayload>()
|
|
93
93
|
const block = builder.payloads(payloads).witness(account).build()
|
|
94
|
-
const result = await Promise.all(
|
|
94
|
+
const result = await Promise.all(
|
|
95
|
+
compact(Object.values(this.parents?.commit ?? [])?.map(async (parent) => await parent?.insert?.(payloads.concat([block])))),
|
|
96
|
+
)
|
|
95
97
|
await this.clear()
|
|
96
98
|
return result
|
|
97
99
|
}
|