@xyo-network/node 2.41.0 → 2.41.2
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/MemoryNode.d.ts +4 -7
- package/dist/cjs/MemoryNode.d.ts.map +1 -1
- package/dist/cjs/MemoryNode.js +10 -30
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/cjs/NodeModule.d.ts +3 -2
- package/dist/cjs/NodeModule.d.ts.map +1 -1
- package/dist/cjs/XyoNode.d.ts +11 -6
- package/dist/cjs/XyoNode.d.ts.map +1 -1
- package/dist/cjs/XyoNode.js +26 -5
- package/dist/cjs/XyoNode.js.map +1 -1
- package/dist/cjs/XyoNodeWrapper.d.ts +4 -2
- package/dist/cjs/XyoNodeWrapper.d.ts.map +1 -1
- package/dist/cjs/XyoNodeWrapper.js +9 -3
- package/dist/cjs/XyoNodeWrapper.js.map +1 -1
- package/dist/docs.json +2727 -1493
- package/dist/esm/MemoryNode.d.ts +4 -7
- package/dist/esm/MemoryNode.d.ts.map +1 -1
- package/dist/esm/MemoryNode.js +8 -29
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/esm/NodeModule.d.ts +3 -2
- package/dist/esm/NodeModule.d.ts.map +1 -1
- package/dist/esm/XyoNode.d.ts +11 -6
- package/dist/esm/XyoNode.d.ts.map +1 -1
- package/dist/esm/XyoNode.js +19 -7
- package/dist/esm/XyoNode.js.map +1 -1
- package/dist/esm/XyoNodeWrapper.d.ts +4 -2
- package/dist/esm/XyoNodeWrapper.d.ts.map +1 -1
- package/dist/esm/XyoNodeWrapper.js +9 -3
- package/dist/esm/XyoNodeWrapper.js.map +1 -1
- package/package.json +7 -7
- package/src/MemoryNode.spec.ts +2 -2
- package/src/MemoryNode.ts +11 -34
- package/src/NodeModule.ts +3 -2
- package/src/XyoNode.ts +39 -11
- package/src/XyoNodeWrapper.ts +12 -4
package/dist/esm/MemoryNode.d.ts
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModuleFilter, XyoModule, XyoModuleParams } from '@xyo-network/module';
|
|
2
2
|
import { NodeConfig } from './Config';
|
|
3
3
|
import { XyoNode } from './XyoNode';
|
|
4
|
-
export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
5
|
-
private attachedModuleMap;
|
|
4
|
+
export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends XyoModule = XyoModule> extends XyoNode<TConfig, TModule> {
|
|
6
5
|
private registeredModuleMap;
|
|
7
6
|
static create(params?: XyoModuleParams<NodeConfig>): Promise<MemoryNode>;
|
|
8
7
|
attach(address: string): void;
|
|
9
|
-
attached(): string[];
|
|
10
|
-
attachedModules(): TModule[];
|
|
11
8
|
detach(address: string): void;
|
|
12
|
-
find(schema: string[]): (TModule | null)[];
|
|
13
9
|
queries(): string[];
|
|
14
10
|
register(module: TModule): void;
|
|
15
11
|
registered(): string[];
|
|
16
12
|
registeredModules(): TModule[];
|
|
17
|
-
resolve(
|
|
13
|
+
resolve(filter?: ModuleFilter): Promise<TModule[]>;
|
|
14
|
+
unregister(module: TModule): void;
|
|
18
15
|
}
|
|
19
16
|
//# sourceMappingURL=MemoryNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACvI,OAAO,CAAC,mBAAmB,CAA6B;WAElC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAI9E,MAAM,CAAC,OAAO,EAAE,MAAM;IAKtB,MAAM,CAAC,OAAO,EAAE,MAAM;IAIf,OAAO,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,MAAM,EAAE,OAAO;IAKxB,UAAU;IAMV,iBAAiB;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIxD,UAAU,CAAC,MAAM,EAAE,OAAO;CAGpC"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -1,44 +1,23 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
|
-
import { XyoArchivistGetQuerySchema } from '@xyo-network/archivist';
|
|
3
2
|
import { XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema } from './Queries';
|
|
4
3
|
import { XyoNode } from './XyoNode';
|
|
5
4
|
export class MemoryNode extends XyoNode {
|
|
6
|
-
attachedModuleMap = new Map();
|
|
7
5
|
registeredModuleMap = new Map();
|
|
8
6
|
static async create(params) {
|
|
9
7
|
return (await super.create(params));
|
|
10
8
|
}
|
|
11
9
|
attach(address) {
|
|
12
10
|
const module = assertEx(this.registeredModuleMap.get(address), 'No module found at that address');
|
|
13
|
-
this.
|
|
14
|
-
}
|
|
15
|
-
attached() {
|
|
16
|
-
return Array.from(this.attachedModuleMap.keys()).map((key) => {
|
|
17
|
-
return key;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
attachedModules() {
|
|
21
|
-
return Array.from(this.attachedModuleMap.values()).map((value) => {
|
|
22
|
-
return value;
|
|
23
|
-
});
|
|
11
|
+
this.internalResolver.add(module);
|
|
24
12
|
}
|
|
25
13
|
detach(address) {
|
|
26
|
-
this.
|
|
27
|
-
}
|
|
28
|
-
find(schema) {
|
|
29
|
-
return schema.map((schema) => {
|
|
30
|
-
this.logger?.log(`Finding in MemoryNode: ${schema}`);
|
|
31
|
-
if (schema === 'network.xyo.archivist') {
|
|
32
|
-
this.logger?.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`);
|
|
33
|
-
return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null;
|
|
34
|
-
}
|
|
35
|
-
return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null;
|
|
36
|
-
});
|
|
14
|
+
this.internalResolver.remove(address);
|
|
37
15
|
}
|
|
38
16
|
queries() {
|
|
39
17
|
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, ...super.queries()];
|
|
40
18
|
}
|
|
41
19
|
register(module) {
|
|
20
|
+
module.resolver = this.internalResolver;
|
|
42
21
|
this.registeredModuleMap.set(module.address, module);
|
|
43
22
|
}
|
|
44
23
|
registered() {
|
|
@@ -51,11 +30,11 @@ export class MemoryNode extends XyoNode {
|
|
|
51
30
|
return value;
|
|
52
31
|
});
|
|
53
32
|
}
|
|
54
|
-
resolve(
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
33
|
+
async resolve(filter) {
|
|
34
|
+
return (await this.internalResolver.resolve(filter)) ?? (await this.resolver?.resolve(filter)) ?? [];
|
|
35
|
+
}
|
|
36
|
+
unregister(module) {
|
|
37
|
+
this.registeredModuleMap.delete(module.address);
|
|
59
38
|
}
|
|
60
39
|
}
|
|
61
40
|
//# sourceMappingURL=MemoryNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,UAA2F,SAAQ,OAAyB;IAC/H,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAExD,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAoC;QAC/D,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAe,CAAA;IACnD,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAA;QACjG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAEe,OAAO;QACrB,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjF,CAAC;IAEQ,QAAQ,CAAC,MAAe;QAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACvC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;IAEQ,UAAU;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,iBAAiB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,KAAK,CAAC,OAAO,CAAC,MAAqB;QAC1C,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACtG,CAAC;IAEQ,UAAU,CAAC,MAAe;QACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;CACF"}
|
package/dist/esm/NodeModule.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Module } from '@xyo-network/module';
|
|
1
|
+
import { Module, ModuleFilter } from '@xyo-network/module';
|
|
2
2
|
import { Promisable, PromisableArray } from '@xyo-network/promise';
|
|
3
3
|
import { Node } from './Node';
|
|
4
4
|
export interface NodeModule<TModule extends Module = Module> extends Node, Module {
|
|
5
5
|
attachedModules(): PromisableArray<TModule>;
|
|
6
6
|
register(module: TModule): Promisable<void>;
|
|
7
7
|
registeredModules(): PromisableArray<TModule>;
|
|
8
|
-
resolve(
|
|
8
|
+
resolve(filter?: ModuleFilter): Promisable<TModule[]>;
|
|
9
|
+
unregister(module: TModule): Promisable<void>;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=NodeModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModule.d.ts","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"NodeModule.d.ts","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,WAAW,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,EAAE,MAAM;IAC/E,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC3C,iBAAiB,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;IACrD,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAC9C"}
|
package/dist/esm/XyoNode.d.ts
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
|
-
import { Module, ModuleQueryResult, XyoModule, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
1
|
+
import { Module, ModuleFilter, ModuleQueryResult, ModuleResolver, XyoModule, XyoModuleParams, XyoModuleResolver, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
2
2
|
import { XyoPayload } from '@xyo-network/payload';
|
|
3
|
+
import { Promisable } from '@xyo-network/promise';
|
|
3
4
|
import { NodeConfig } from './Config';
|
|
4
5
|
import { NodeModule } from './NodeModule';
|
|
5
|
-
export declare abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
6
|
+
export declare abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule extends XyoModule = XyoModule> extends XyoModule<TConfig> implements NodeModule, ModuleResolver {
|
|
7
|
+
isModuleResolver: boolean;
|
|
8
|
+
protected internalResolver: XyoModuleResolver<TModule>;
|
|
6
9
|
private _archivist?;
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
protected constructor(params: XyoModuleParams<TConfig>, internalResolver?: XyoModuleResolver<TModule>);
|
|
11
|
+
static create(params?: Partial<XyoModuleParams<NodeConfig>>): Promise<XyoNode>;
|
|
12
|
+
attached(): Promise<string[]>;
|
|
13
|
+
attachedModules(): Promise<TModule[]>;
|
|
9
14
|
getArchivist(): Promise<Module>;
|
|
10
15
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
11
16
|
register(_module: TModule): void;
|
|
12
17
|
registered(): string[];
|
|
13
18
|
registeredModules(): TModule[];
|
|
14
19
|
start(): Promise<this>;
|
|
20
|
+
unregister(_module: TModule): void;
|
|
15
21
|
private storeInstanceData;
|
|
16
22
|
abstract attach(_address: string): void;
|
|
17
23
|
abstract detach(_address: string): void;
|
|
18
|
-
abstract
|
|
19
|
-
abstract resolve(_address: string[]): (TModule | null)[];
|
|
24
|
+
abstract resolve(_filter?: ModuleFilter): Promisable<TModule[]>;
|
|
20
25
|
}
|
|
21
26
|
//# sourceMappingURL=XyoNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,cAAc,EAGd,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,CAC1G,SAAQ,SAAS,CAAC,OAAO,CACzB,YAAW,UAAU,EAAE,cAAc;IAE9B,gBAAgB,UAAO;IAE9B,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACtD,OAAO,CAAC,UAAU,CAAC,CAAQ;IAE3B,SAAS,aAAa,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC;WAK/E,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvF,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAU7B,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmC1I,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,UAAU,IAAI,MAAM,EAAE;IAItB,iBAAiB,IAAI,OAAO,EAAE;IAIf,KAAK;IAMpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAIpB,iBAAiB;IAM/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAChE"}
|
package/dist/esm/XyoNode.js
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
3
3
|
import { XyoArchivistWrapper, XyoMemoryArchivist } from '@xyo-network/archivist';
|
|
4
|
-
import { QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule } from '@xyo-network/module';
|
|
4
|
+
import { QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule, XyoModuleResolver, } from '@xyo-network/module';
|
|
5
5
|
import { XyoModuleInstanceSchema } from '@xyo-network/module-instance-payload-plugin';
|
|
6
6
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
|
|
7
7
|
export class XyoNode extends XyoModule {
|
|
8
|
+
isModuleResolver = true;
|
|
9
|
+
internalResolver;
|
|
8
10
|
_archivist;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
constructor(params, internalResolver) {
|
|
12
|
+
super(params);
|
|
13
|
+
this.internalResolver = internalResolver ?? new XyoModuleResolver();
|
|
11
14
|
}
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
static async create(params) {
|
|
16
|
+
return (await super.create(params));
|
|
17
|
+
}
|
|
18
|
+
async attached() {
|
|
19
|
+
return (await this.attachedModules()).map((module) => module.address);
|
|
20
|
+
}
|
|
21
|
+
async attachedModules() {
|
|
22
|
+
return await (this.internalResolver.resolve() ?? []);
|
|
14
23
|
}
|
|
15
24
|
async getArchivist() {
|
|
16
25
|
if (!this._archivist) {
|
|
17
26
|
this._archivist =
|
|
18
27
|
this._archivist ??
|
|
19
|
-
(this.config?.archivist ? this.resolver?.
|
|
28
|
+
(this.config?.archivist ? ((await this.resolver?.resolve({ address: [this.config?.archivist] })) ?? []).shift() : undefined) ??
|
|
20
29
|
(await XyoMemoryArchivist.create());
|
|
21
30
|
}
|
|
22
31
|
return this._archivist;
|
|
@@ -38,7 +47,7 @@ export class XyoNode extends XyoModule {
|
|
|
38
47
|
break;
|
|
39
48
|
}
|
|
40
49
|
case XyoNodeAttachedQuerySchema: {
|
|
41
|
-
this.attached();
|
|
50
|
+
await this.attached();
|
|
42
51
|
break;
|
|
43
52
|
}
|
|
44
53
|
case XyoNodeRegisteredQuerySchema: {
|
|
@@ -69,6 +78,9 @@ export class XyoNode extends XyoModule {
|
|
|
69
78
|
await this.storeInstanceData();
|
|
70
79
|
return this;
|
|
71
80
|
}
|
|
81
|
+
unregister(_module) {
|
|
82
|
+
throw new Error('Method not implemented.');
|
|
83
|
+
}
|
|
72
84
|
async storeInstanceData() {
|
|
73
85
|
const payload = { address: this.address, queries: this.queries, schema: XyoModuleInstanceSchema };
|
|
74
86
|
const [bw] = await this.bindResult([payload]);
|
package/dist/esm/XyoNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XyoArchivistWrapper } from '@xyo-network/archivist';
|
|
2
|
-
import { Module, XyoModule, XyoModuleWrapper } from '@xyo-network/module';
|
|
2
|
+
import { Module, ModuleFilter, XyoModule, XyoModuleWrapper } from '@xyo-network/module';
|
|
3
3
|
import { Promisable } from '@xyo-network/promise';
|
|
4
4
|
import { NodeModule } from './NodeModule';
|
|
5
5
|
export declare class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
@@ -9,9 +9,11 @@ export declare class XyoNodeWrapper extends XyoModuleWrapper implements NodeModu
|
|
|
9
9
|
attached(): Promise<string[]>;
|
|
10
10
|
attachedModules(): Promise<XyoModule[]>;
|
|
11
11
|
detach(address: string): Promise<void>;
|
|
12
|
+
find(_filter: ModuleFilter): Promisable<XyoModule[]>;
|
|
12
13
|
register(_module: Module): void;
|
|
13
14
|
registered(): Promise<string[]>;
|
|
14
15
|
registeredModules(): Promise<XyoModule[]>;
|
|
15
|
-
resolve(
|
|
16
|
+
resolve(_filter: ModuleFilter): Promisable<XyoModule[]>;
|
|
17
|
+
unregister(_module: Module): void;
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=XyoNodeWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNodeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoNodeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAYzC,qBAAa,cAAe,SAAQ,gBAAiB,YAAW,UAAU;IACxE,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,IAAW,SAAS,wBAGnB;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ7B,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKvC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAIpD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ/B,iBAAiB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAK/C,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAIvD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAGlC"}
|
|
@@ -24,7 +24,7 @@ export class XyoNodeWrapper extends XyoModuleWrapper {
|
|
|
24
24
|
}
|
|
25
25
|
async attachedModules() {
|
|
26
26
|
const addresses = await this.attached();
|
|
27
|
-
return compact(await this.resolve(addresses));
|
|
27
|
+
return compact(await this.resolve({ address: addresses }));
|
|
28
28
|
}
|
|
29
29
|
async detach(address) {
|
|
30
30
|
const queryPayload = PayloadWrapper.parse({ address, schema: XyoNodeDetachQuerySchema });
|
|
@@ -32,6 +32,9 @@ export class XyoNodeWrapper extends XyoModuleWrapper {
|
|
|
32
32
|
const result = await this.module.query(query[0], query[1]);
|
|
33
33
|
this.throwErrors(query, result);
|
|
34
34
|
}
|
|
35
|
+
find(_filter) {
|
|
36
|
+
throw Error('Not implemented');
|
|
37
|
+
}
|
|
35
38
|
register(_module) {
|
|
36
39
|
throw Error('Not implemented');
|
|
37
40
|
}
|
|
@@ -44,9 +47,12 @@ export class XyoNodeWrapper extends XyoModuleWrapper {
|
|
|
44
47
|
}
|
|
45
48
|
async registeredModules() {
|
|
46
49
|
const addresses = await this.registered();
|
|
47
|
-
return compact(await this.resolve(addresses));
|
|
50
|
+
return compact(await this.resolve({ address: addresses }));
|
|
51
|
+
}
|
|
52
|
+
resolve(_filter) {
|
|
53
|
+
throw Error('Not implemented');
|
|
48
54
|
}
|
|
49
|
-
|
|
55
|
+
unregister(_module) {
|
|
50
56
|
throw Error('Not implemented');
|
|
51
57
|
}
|
|
52
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNodeWrapper.js","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoNodeWrapper.js","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.9",
|
|
14
|
-
"@xyo-network/account": "^2.41.
|
|
15
|
-
"@xyo-network/archivist": "^2.41.
|
|
16
|
-
"@xyo-network/module": "^2.41.
|
|
17
|
-
"@xyo-network/module-instance-payload-plugin": "^2.41.
|
|
18
|
-
"@xyo-network/payload": "^2.41.
|
|
19
|
-
"@xyo-network/promise": "^2.41.
|
|
14
|
+
"@xyo-network/account": "^2.41.2",
|
|
15
|
+
"@xyo-network/archivist": "^2.41.2",
|
|
16
|
+
"@xyo-network/module": "^2.41.2",
|
|
17
|
+
"@xyo-network/module-instance-payload-plugin": "^2.41.2",
|
|
18
|
+
"@xyo-network/payload": "^2.41.2",
|
|
19
|
+
"@xyo-network/promise": "^2.41.2",
|
|
20
20
|
"lodash": "^4.17.21",
|
|
21
21
|
"tslib": "^2.4.1"
|
|
22
22
|
},
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
},
|
|
62
62
|
"sideEffects": false,
|
|
63
63
|
"types": "dist/esm/index.d.ts",
|
|
64
|
-
"version": "2.41.
|
|
64
|
+
"version": "2.41.2"
|
|
65
65
|
}
|
package/src/MemoryNode.spec.ts
CHANGED
|
@@ -28,7 +28,7 @@ test('Create Node', async () => {
|
|
|
28
28
|
node.attach(diviner.address)
|
|
29
29
|
expect((await node.registered()).length).toBe(2)
|
|
30
30
|
expect((await node.attached()).length).toBe(2)
|
|
31
|
-
const foundArchivist = (await node.resolve([archivist.address])).shift()
|
|
31
|
+
const foundArchivist = (await node.resolve({ address: [archivist.address] })).shift()
|
|
32
32
|
expect(foundArchivist).toBeDefined()
|
|
33
33
|
expect(foundArchivist?.address).toBe(archivist.address)
|
|
34
34
|
const testPayload = new XyoPayloadBuilder<XyoPayload<{ schema: XyoPayloadSchema; test: boolean }>>({ schema: XyoPayloadSchema })
|
|
@@ -47,7 +47,7 @@ test('Create Node', async () => {
|
|
|
47
47
|
if (payloads && payloads[0]) {
|
|
48
48
|
const huri = new PayloadWrapper(payloads[0]).hash
|
|
49
49
|
const huriPayload: XyoHuriPayload = { huri: [huri], schema: XyoHuriSchema }
|
|
50
|
-
const module = (await node.resolve([diviner.address])).shift() as DivinerModule
|
|
50
|
+
const module = (await node.resolve({ address: [diviner.address] })).shift() as DivinerModule
|
|
51
51
|
const foundDiviner = module ? new XyoDivinerWrapper(module) : null
|
|
52
52
|
expect(foundDiviner).toBeDefined()
|
|
53
53
|
if (foundDiviner) {
|
package/src/MemoryNode.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import {
|
|
3
|
-
import { Module, XyoModuleParams } from '@xyo-network/module'
|
|
2
|
+
import { ModuleFilter, XyoModule, XyoModuleParams } from '@xyo-network/module'
|
|
4
3
|
|
|
5
4
|
import { NodeConfig } from './Config'
|
|
6
5
|
import { XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema } from './Queries'
|
|
7
6
|
import { XyoNode } from './XyoNode'
|
|
8
7
|
|
|
9
|
-
export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
10
|
-
private attachedModuleMap = new Map<string, TModule>()
|
|
8
|
+
export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends XyoModule = XyoModule> extends XyoNode<TConfig, TModule> {
|
|
11
9
|
private registeredModuleMap = new Map<string, TModule>()
|
|
12
10
|
|
|
13
11
|
static override async create(params?: XyoModuleParams<NodeConfig>): Promise<MemoryNode> {
|
|
@@ -16,34 +14,11 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
|
16
14
|
|
|
17
15
|
override attach(address: string) {
|
|
18
16
|
const module = assertEx(this.registeredModuleMap.get(address), 'No module found at that address')
|
|
19
|
-
this.
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
override attached() {
|
|
23
|
-
return Array.from(this.attachedModuleMap.keys()).map((key) => {
|
|
24
|
-
return key
|
|
25
|
-
})
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
override attachedModules() {
|
|
29
|
-
return Array.from(this.attachedModuleMap.values()).map((value) => {
|
|
30
|
-
return value
|
|
31
|
-
})
|
|
17
|
+
this.internalResolver.add(module)
|
|
32
18
|
}
|
|
33
19
|
|
|
34
20
|
override detach(address: string) {
|
|
35
|
-
this.
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
override find(schema: string[]): (TModule | null)[] {
|
|
39
|
-
return schema.map((schema) => {
|
|
40
|
-
this.logger?.log(`Finding in MemoryNode: ${schema}`)
|
|
41
|
-
if (schema === 'network.xyo.archivist') {
|
|
42
|
-
this.logger?.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`)
|
|
43
|
-
return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null
|
|
44
|
-
}
|
|
45
|
-
return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null
|
|
46
|
-
})
|
|
21
|
+
this.internalResolver.remove(address)
|
|
47
22
|
}
|
|
48
23
|
|
|
49
24
|
public override queries(): string[] {
|
|
@@ -51,6 +26,7 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
|
51
26
|
}
|
|
52
27
|
|
|
53
28
|
override register(module: TModule) {
|
|
29
|
+
module.resolver = this.internalResolver
|
|
54
30
|
this.registeredModuleMap.set(module.address, module)
|
|
55
31
|
}
|
|
56
32
|
|
|
@@ -66,10 +42,11 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
|
66
42
|
})
|
|
67
43
|
}
|
|
68
44
|
|
|
69
|
-
override resolve(
|
|
70
|
-
return
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
45
|
+
override async resolve(filter?: ModuleFilter): Promise<TModule[]> {
|
|
46
|
+
return (await this.internalResolver.resolve(filter)) ?? (await this.resolver?.resolve(filter)) ?? []
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override unregister(module: TModule) {
|
|
50
|
+
this.registeredModuleMap.delete(module.address)
|
|
74
51
|
}
|
|
75
52
|
}
|
package/src/NodeModule.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Module } from '@xyo-network/module'
|
|
1
|
+
import { Module, ModuleFilter } from '@xyo-network/module'
|
|
2
2
|
import { Promisable, PromisableArray } from '@xyo-network/promise'
|
|
3
3
|
|
|
4
4
|
import { Node } from './Node'
|
|
@@ -7,5 +7,6 @@ export interface NodeModule<TModule extends Module = Module> extends Node, Modul
|
|
|
7
7
|
attachedModules(): PromisableArray<TModule>
|
|
8
8
|
register(module: TModule): Promisable<void>
|
|
9
9
|
registeredModules(): PromisableArray<TModule>
|
|
10
|
-
resolve(
|
|
10
|
+
resolve(filter?: ModuleFilter): Promisable<TModule[]>
|
|
11
|
+
unregister(module: TModule): Promisable<void>
|
|
11
12
|
}
|
package/src/XyoNode.ts
CHANGED
|
@@ -1,32 +1,57 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account'
|
|
3
3
|
import { XyoArchivistWrapper, XyoMemoryArchivist } from '@xyo-network/archivist'
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
Module,
|
|
6
|
+
ModuleFilter,
|
|
7
|
+
ModuleQueryResult,
|
|
8
|
+
ModuleResolver,
|
|
9
|
+
QueryBoundWitnessWrapper,
|
|
10
|
+
XyoErrorBuilder,
|
|
11
|
+
XyoModule,
|
|
12
|
+
XyoModuleParams,
|
|
13
|
+
XyoModuleResolver,
|
|
14
|
+
XyoQueryBoundWitness,
|
|
15
|
+
} from '@xyo-network/module'
|
|
5
16
|
import { XyoModuleInstanceSchema } from '@xyo-network/module-instance-payload-plugin'
|
|
6
17
|
import { XyoPayload } from '@xyo-network/payload'
|
|
18
|
+
import { Promisable } from '@xyo-network/promise'
|
|
7
19
|
|
|
8
20
|
import { NodeConfig } from './Config'
|
|
9
21
|
import { NodeModule } from './NodeModule'
|
|
10
22
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeQuery, XyoNodeRegisteredQuerySchema } from './Queries'
|
|
11
|
-
|
|
23
|
+
|
|
24
|
+
export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule extends XyoModule = XyoModule>
|
|
12
25
|
extends XyoModule<TConfig>
|
|
13
|
-
implements NodeModule
|
|
26
|
+
implements NodeModule, ModuleResolver
|
|
14
27
|
{
|
|
28
|
+
public isModuleResolver = true
|
|
29
|
+
|
|
30
|
+
protected internalResolver: XyoModuleResolver<TModule>
|
|
15
31
|
private _archivist?: Module
|
|
16
32
|
|
|
17
|
-
|
|
18
|
-
|
|
33
|
+
protected constructor(params: XyoModuleParams<TConfig>, internalResolver?: XyoModuleResolver<TModule>) {
|
|
34
|
+
super(params)
|
|
35
|
+
this.internalResolver = internalResolver ?? new XyoModuleResolver<TModule>()
|
|
19
36
|
}
|
|
20
37
|
|
|
21
|
-
|
|
22
|
-
|
|
38
|
+
static override async create(params?: Partial<XyoModuleParams<NodeConfig>>): Promise<XyoNode> {
|
|
39
|
+
return (await super.create(params)) as XyoNode
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async attached(): Promise<string[]> {
|
|
43
|
+
return (await this.attachedModules()).map((module) => module.address)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async attachedModules(): Promise<TModule[]> {
|
|
47
|
+
return await (this.internalResolver.resolve() ?? [])
|
|
23
48
|
}
|
|
24
49
|
|
|
25
50
|
public async getArchivist(): Promise<Module> {
|
|
26
51
|
if (!this._archivist) {
|
|
27
52
|
this._archivist =
|
|
28
53
|
this._archivist ??
|
|
29
|
-
(this.config?.archivist ? this.resolver?.
|
|
54
|
+
(this.config?.archivist ? ((await this.resolver?.resolve({ address: [this.config?.archivist] })) ?? []).shift() : undefined) ??
|
|
30
55
|
(await XyoMemoryArchivist.create())
|
|
31
56
|
}
|
|
32
57
|
return this._archivist
|
|
@@ -50,7 +75,7 @@ export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule e
|
|
|
50
75
|
break
|
|
51
76
|
}
|
|
52
77
|
case XyoNodeAttachedQuerySchema: {
|
|
53
|
-
this.attached()
|
|
78
|
+
await this.attached()
|
|
54
79
|
break
|
|
55
80
|
}
|
|
56
81
|
case XyoNodeRegisteredQuerySchema: {
|
|
@@ -85,6 +110,10 @@ export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule e
|
|
|
85
110
|
return this
|
|
86
111
|
}
|
|
87
112
|
|
|
113
|
+
unregister(_module: TModule): void {
|
|
114
|
+
throw new Error('Method not implemented.')
|
|
115
|
+
}
|
|
116
|
+
|
|
88
117
|
private async storeInstanceData() {
|
|
89
118
|
const payload = { address: this.address, queries: this.queries, schema: XyoModuleInstanceSchema }
|
|
90
119
|
const [bw] = await this.bindResult([payload])
|
|
@@ -93,6 +122,5 @@ export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule e
|
|
|
93
122
|
|
|
94
123
|
abstract attach(_address: string): void
|
|
95
124
|
abstract detach(_address: string): void
|
|
96
|
-
abstract
|
|
97
|
-
abstract resolve(_address: string[]): (TModule | null)[]
|
|
125
|
+
abstract resolve(_filter?: ModuleFilter): Promisable<TModule[]>
|
|
98
126
|
}
|
package/src/XyoNodeWrapper.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XyoArchivistWrapper } from '@xyo-network/archivist'
|
|
2
|
-
import { Module, XyoModule, XyoModuleWrapper } from '@xyo-network/module'
|
|
2
|
+
import { Module, ModuleFilter, XyoModule, XyoModuleWrapper } from '@xyo-network/module'
|
|
3
3
|
import { PayloadWrapper } from '@xyo-network/payload'
|
|
4
4
|
import { Promisable } from '@xyo-network/promise'
|
|
5
5
|
import compact from 'lodash/compact'
|
|
@@ -40,7 +40,7 @@ export class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
|
40
40
|
|
|
41
41
|
async attachedModules(): Promise<XyoModule[]> {
|
|
42
42
|
const addresses = await this.attached()
|
|
43
|
-
return compact(await this.resolve(addresses))
|
|
43
|
+
return compact(await this.resolve({ address: addresses }))
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
async detach(address: string): Promise<void> {
|
|
@@ -50,6 +50,10 @@ export class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
|
50
50
|
this.throwErrors(query, result)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
find(_filter: ModuleFilter): Promisable<XyoModule[]> {
|
|
54
|
+
throw Error('Not implemented')
|
|
55
|
+
}
|
|
56
|
+
|
|
53
57
|
register(_module: Module): void {
|
|
54
58
|
throw Error('Not implemented')
|
|
55
59
|
}
|
|
@@ -64,10 +68,14 @@ export class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
|
64
68
|
|
|
65
69
|
async registeredModules(): Promise<XyoModule[]> {
|
|
66
70
|
const addresses = await this.registered()
|
|
67
|
-
return compact(await this.resolve(addresses))
|
|
71
|
+
return compact(await this.resolve({ address: addresses }))
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
resolve(_filter: ModuleFilter): Promisable<XyoModule[]> {
|
|
75
|
+
throw Error('Not implemented')
|
|
68
76
|
}
|
|
69
77
|
|
|
70
|
-
|
|
78
|
+
unregister(_module: Module): void {
|
|
71
79
|
throw Error('Not implemented')
|
|
72
80
|
}
|
|
73
81
|
}
|