@xyo-network/node 2.42.11 → 2.42.13
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/AbstractNode.d.ts +3 -1
- package/dist/cjs/AbstractNode.d.ts.map +1 -1
- package/dist/cjs/AbstractNode.js +30 -0
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/Node.d.ts +2 -0
- package/dist/cjs/Node.d.ts.map +1 -1
- package/dist/cjs/NodeWrapper.d.ts +2 -9
- package/dist/cjs/NodeWrapper.d.ts.map +1 -1
- package/dist/cjs/NodeWrapper.js +0 -24
- package/dist/cjs/NodeWrapper.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +1745 -4048
- package/dist/esm/AbstractNode.d.ts +3 -1
- package/dist/esm/AbstractNode.d.ts.map +1 -1
- package/dist/esm/AbstractNode.js +27 -2
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/Node.d.ts +2 -0
- package/dist/esm/Node.d.ts.map +1 -1
- package/dist/esm/NodeWrapper.d.ts +2 -9
- package/dist/esm/NodeWrapper.d.ts.map +1 -1
- package/dist/esm/NodeWrapper.js +0 -20
- package/dist/esm/NodeWrapper.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +7 -7
- package/src/AbstractNode.ts +30 -2
- package/src/MemoryNode.spec.ts +64 -5
- package/src/Node.ts +3 -0
- package/src/NodeWrapper.ts +2 -29
- package/src/index.ts +0 -1
- package/dist/cjs/NodeModule.d.ts +0 -10
- package/dist/cjs/NodeModule.d.ts.map +0 -1
- package/dist/cjs/NodeModule.js +0 -3
- package/dist/cjs/NodeModule.js.map +0 -1
- package/dist/esm/NodeModule.d.ts +0 -10
- package/dist/esm/NodeModule.d.ts.map +0 -1
- package/dist/esm/NodeModule.js +0 -2
- package/dist/esm/NodeModule.js.map +0 -1
- package/src/NodeModule.ts +0 -11
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { Account } from '@xyo-network/account';
|
|
1
2
|
import { AbstractModule, Module, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, SimpleModuleResolver, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
2
3
|
import { XyoPayload } from '@xyo-network/payload';
|
|
3
4
|
import { Promisable } from '@xyo-network/promise';
|
|
4
5
|
import { NodeConfig } from './Config';
|
|
5
|
-
import { NodeModule } from './
|
|
6
|
+
import { NodeModule } from './Node';
|
|
6
7
|
export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractModule<TConfig> implements NodeModule {
|
|
7
8
|
static configSchema: "network.xyo.node.config";
|
|
8
9
|
isModuleResolver: boolean;
|
|
@@ -13,6 +14,7 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
|
|
|
13
14
|
attached(): Promise<string[]>;
|
|
14
15
|
attachedModules(): Promise<TModule[]>;
|
|
15
16
|
description(): Promise<ModuleDescription>;
|
|
17
|
+
discover(_queryAccount?: Account | undefined): Promise<XyoPayload[]>;
|
|
16
18
|
queries(): string[];
|
|
17
19
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
18
20
|
register(_module: TModule): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EACL,cAAc,EAGd,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAEjB,oBAAoB,EAEpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAkB,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAKnC,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CACzG,SAAQ,cAAc,CAAC,OAAO,CAC9B,YAAW,UAAU;IAErB,MAAM,CAAC,YAAY,4BAAmB;IAC/B,gBAAgB,UAAO;IAE9B,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACzD,OAAO,CAAC,UAAU,CAAC,CAAQ;IAE3B,SAAS,aAAa,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC;WAK/E,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzF,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAyBnE,OAAO;IAIR,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2C1I,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,UAAU,IAAI,MAAM,EAAE;IAItB,iBAAiB,IAAI,OAAO,EAAE;IAIf,KAAK;IAKpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAClE;AAED,2CAA2C;AAC3C,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,YAAY,CAC1I,OAAO,EACP,OAAO,CACR;CAAG"}
|
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { Account } from '@xyo-network/account';
|
|
3
3
|
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
4
|
-
import { AbstractModule, QueryBoundWitnessWrapper, SimpleModuleResolver, XyoErrorBuilder, } from '@xyo-network/module';
|
|
5
|
-
import { XyoPayloadBuilder } from '@xyo-network/payload';
|
|
4
|
+
import { AbstractModule, AbstractModuleDiscoverQuerySchema, QueryBoundWitnessWrapper, SimpleModuleResolver, XyoErrorBuilder, } from '@xyo-network/module';
|
|
5
|
+
import { PayloadWrapper, XyoPayloadBuilder } from '@xyo-network/payload';
|
|
6
6
|
import { NodeConfigSchema } from './Config';
|
|
7
7
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
|
|
8
|
+
const childModuleDiscoverQueryPayload = PayloadWrapper.parse({ schema: AbstractModuleDiscoverQuerySchema });
|
|
8
9
|
export class AbstractNode extends AbstractModule {
|
|
9
10
|
static configSchema = NodeConfigSchema;
|
|
10
11
|
isModuleResolver = true;
|
|
@@ -28,6 +29,30 @@ export class AbstractNode extends AbstractModule {
|
|
|
28
29
|
const children = await Promise.all((await this.attachedModules()).map((mod) => mod.description()));
|
|
29
30
|
return { ...desc, children };
|
|
30
31
|
}
|
|
32
|
+
async discover(_queryAccount) {
|
|
33
|
+
const parent = await super.discover(_queryAccount);
|
|
34
|
+
// const childMods = (await this.attachedModules()).map((mod) => new ModuleWrapper(mod))
|
|
35
|
+
// const query = await this.bindQuery(childModuleDiscoverQueryPayload)
|
|
36
|
+
// const childModQueryResults = await Promise.all(
|
|
37
|
+
// childMods.map((mod) => {
|
|
38
|
+
// try {
|
|
39
|
+
// return mod.query(query[0], query[1])
|
|
40
|
+
// } catch {
|
|
41
|
+
// // TODO: remove this once we ensure all modules
|
|
42
|
+
// // implement discover query
|
|
43
|
+
// return undefined
|
|
44
|
+
// }
|
|
45
|
+
// }),
|
|
46
|
+
// )
|
|
47
|
+
// const children = compact(childModQueryResults)
|
|
48
|
+
// .map((result) => {
|
|
49
|
+
// const [bw, payloads] = result
|
|
50
|
+
// return [bw, ...payloads]
|
|
51
|
+
// })
|
|
52
|
+
// .flatMap((x) => x)
|
|
53
|
+
// return [...parent, ...children]
|
|
54
|
+
return parent;
|
|
55
|
+
}
|
|
31
56
|
queries() {
|
|
32
57
|
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries()];
|
|
33
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EACL,cAAc,EAEd,iCAAiC,EAMjC,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAEhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGpF,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,wBAAwB,EAAgB,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAEtJ,MAAM,+BAA+B,GAAG,cAAc,CAAC,KAAK,CAA8B,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC,CAAA;AAExI,MAAM,OAAgB,YACpB,SAAQ,cAAuB;IAG/B,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAA;IAC/B,gBAAgB,GAAG,IAAI,CAAA;IAEpB,gBAAgB,CAA+B;IACjD,UAAU,CAAS;IAE3B,YAAsB,MAA6B,EAAE,gBAAgD;QACnG,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,oBAAoB,EAAW,CAAA;IACjF,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAA0C;QACrE,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAiB,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IAEQ,KAAK,CAAC,WAAW;QACxB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAA;QACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAClG,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC9B,CAAC;IACQ,KAAK,CAAC,QAAQ,CAAC,aAAmC;QACzD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAClD,wFAAwF;QACxF,sEAAsE;QACtE,kDAAkD;QAClD,6BAA6B;QAC7B,YAAY;QACZ,6CAA6C;QAC7C,gBAAgB;QAChB,wDAAwD;QACxD,oCAAoC;QACpC,yBAAyB;QACzB,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,iDAAiD;QACjD,uBAAuB;QACvB,oCAAoC;QACpC,+BAA+B;QAC/B,OAAO;QACP,uBAAuB;QACvB,kCAAkC;QAClC,OAAO,MAAM,CAAA;IACf,CAAC;IAEe,OAAO;QACrB,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3I,CAAC;IAEQ,KAAK,CAAC,KAAK,CAAwD,KAAQ,EAAE,QAAuB;QAC3G,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAe,KAAK,EAAE,QAAQ,CAAC,CAAA;QAClF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACxC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAE9D,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,MAAM,cAAc,GAAiB,EAAE,CAAA;QACvC,IAAI;YACF,QAAQ,UAAU,CAAC,MAAM,EAAE;gBACzB,KAAK,wBAAwB,CAAC,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;oBAC/B,MAAK;iBACN;gBACD,KAAK,wBAAwB,CAAC,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;oBAC/B,MAAK;iBACN;gBACD,KAAK,0BAA0B,CAAC,CAAC;oBAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACvC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;wBAC/B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;wBAC5F,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBAC7B;oBACD,MAAK;iBACN;gBACD,KAAK,4BAA4B,CAAC,CAAC;oBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;oBACnC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;wBAC/B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;wBAC5F,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBAC7B;oBACD,MAAK;iBACN;gBACD;oBACE,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;aAC5C;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,cAAc,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;SAChF;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACtD,CAAC;IAED,QAAQ,CAAC,OAAgB;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,iBAAiB;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAEQ,KAAK,CAAC,KAAK;QAClB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;;AAQH,2CAA2C;AAC3C,MAAM,OAAgB,OAAkG,SAAQ,YAG/H;CAAG"}
|
package/dist/esm/Node.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Module } from '@xyo-network/module';
|
|
1
2
|
import { Promisable } from '@xyo-network/promise';
|
|
2
3
|
export interface Node {
|
|
3
4
|
attach(address: string, name?: string): void;
|
|
@@ -5,4 +6,5 @@ export interface Node {
|
|
|
5
6
|
detach(address: string): void;
|
|
6
7
|
registered(): Promisable<string[]>;
|
|
7
8
|
}
|
|
9
|
+
export type NodeModule = Node & Module;
|
|
8
10
|
//# sourceMappingURL=Node.d.ts.map
|
package/dist/esm/Node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/Node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5C,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAChC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;CACnC"}
|
|
1
|
+
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/Node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5C,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAChC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,CAAA"}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
import { ArchivistWrapper } from '@xyo-network/archivist';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { NodeModule } from './NodeModule';
|
|
2
|
+
import { ModuleWrapper } from '@xyo-network/module';
|
|
3
|
+
import { NodeModule } from './Node';
|
|
5
4
|
export declare class NodeWrapper<TModule extends NodeModule = NodeModule> extends ModuleWrapper<TModule> implements NodeModule {
|
|
6
5
|
isModuleResolver: boolean;
|
|
7
6
|
private _archivist?;
|
|
8
7
|
get archivist(): ArchivistWrapper;
|
|
9
8
|
attach(address: string, name?: string): Promise<void>;
|
|
10
9
|
attached(): Promise<string[]>;
|
|
11
|
-
attachedModules(): Promise<Module[]>;
|
|
12
10
|
detach(address: string): Promise<void>;
|
|
13
|
-
register(mod: Module): Promisable<void>;
|
|
14
11
|
registered(): Promise<string[]>;
|
|
15
|
-
registeredModules(): Promise<Module[]>;
|
|
16
|
-
resolve(filter: ModuleFilter): Promisable<Module[]>;
|
|
17
|
-
tryResolve(filter: ModuleFilter): Promisable<Module[]>;
|
|
18
|
-
unregister(mod: Module): Promisable<void>;
|
|
19
12
|
}
|
|
20
13
|
//# sourceMappingURL=NodeWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAYnC,qBAAa,WAAW,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAE,YAAW,UAAU;IAC7G,gBAAgB,UAAO;IAE9B,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,IAAW,SAAS,qBAGnB;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAKtC"}
|
package/dist/esm/NodeWrapper.js
CHANGED
|
@@ -2,7 +2,6 @@ import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
|
2
2
|
import { ArchivistWrapper } from '@xyo-network/archivist';
|
|
3
3
|
import { ModuleWrapper } from '@xyo-network/module';
|
|
4
4
|
import { isXyoPayloadOfSchemaType, PayloadWrapper } from '@xyo-network/payload';
|
|
5
|
-
import compact from 'lodash/compact';
|
|
6
5
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema, } from './Queries';
|
|
7
6
|
export class NodeWrapper extends ModuleWrapper {
|
|
8
7
|
isModuleResolver = true;
|
|
@@ -20,33 +19,14 @@ export class NodeWrapper extends ModuleWrapper {
|
|
|
20
19
|
const payloads = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType(AddressSchema));
|
|
21
20
|
return payloads.map((p) => p.address);
|
|
22
21
|
}
|
|
23
|
-
async attachedModules() {
|
|
24
|
-
const addresses = await this.attached();
|
|
25
|
-
return compact(await this.resolve({ address: addresses }));
|
|
26
|
-
}
|
|
27
22
|
async detach(address) {
|
|
28
23
|
const queryPayload = PayloadWrapper.parse({ address, schema: XyoNodeDetachQuerySchema });
|
|
29
24
|
await this.sendQuery(queryPayload);
|
|
30
25
|
}
|
|
31
|
-
register(mod) {
|
|
32
|
-
return this.module.register(mod);
|
|
33
|
-
}
|
|
34
26
|
async registered() {
|
|
35
27
|
const queryPayload = PayloadWrapper.parse({ schema: XyoNodeRegisteredQuerySchema });
|
|
36
28
|
const payloads = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType(AddressSchema));
|
|
37
29
|
return payloads.map((p) => p.address);
|
|
38
30
|
}
|
|
39
|
-
async registeredModules() {
|
|
40
|
-
return await this.module.registeredModules();
|
|
41
|
-
}
|
|
42
|
-
resolve(filter) {
|
|
43
|
-
return this.module.resolve(filter);
|
|
44
|
-
}
|
|
45
|
-
tryResolve(filter) {
|
|
46
|
-
return this.module.tryResolve(filter);
|
|
47
|
-
}
|
|
48
|
-
unregister(mod) {
|
|
49
|
-
return this.module.unregister(mod);
|
|
50
|
-
}
|
|
51
31
|
}
|
|
52
32
|
//# sourceMappingURL=NodeWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.js","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeWrapper.js","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG/E,OAAO,EAEL,0BAA0B,EAE1B,wBAAwB,EAExB,wBAAwB,EAExB,4BAA4B,GAC7B,MAAM,WAAW,CAAA;AAElB,MAAM,OAAO,WAAqD,SAAQ,aAAsB;IACvF,gBAAgB,GAAG,IAAI,CAAA;IAEtB,UAAU,CAAmB;IAErC,IAAW,SAAS;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtE,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,IAAa;QACzC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;QAClH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAuB,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAA;QACvG,MAAM,QAAQ,GAAqB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAiB,aAAa,CAAC,CAAC,CAAA;QACvI,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;QAC5G,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAyB,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAA;QAC3G,MAAM,QAAQ,GAAqB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAiB,aAAa,CAAC,CAAC,CAAA;QACvI,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;CACF"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.11",
|
|
14
|
-
"@xyo-network/account": "^2.42.
|
|
15
|
-
"@xyo-network/address-payload-plugin": "^2.42.
|
|
16
|
-
"@xyo-network/archivist": "^2.42.
|
|
17
|
-
"@xyo-network/module": "^2.42.
|
|
18
|
-
"@xyo-network/payload": "^2.42.
|
|
19
|
-
"@xyo-network/promise": "^2.42.
|
|
14
|
+
"@xyo-network/account": "^2.42.13",
|
|
15
|
+
"@xyo-network/address-payload-plugin": "^2.42.13",
|
|
16
|
+
"@xyo-network/archivist": "^2.42.13",
|
|
17
|
+
"@xyo-network/module": "^2.42.13",
|
|
18
|
+
"@xyo-network/payload": "^2.42.13",
|
|
19
|
+
"@xyo-network/promise": "^2.42.13",
|
|
20
20
|
"lodash": "^4.17.21",
|
|
21
21
|
"tslib": "^2.4.1"
|
|
22
22
|
},
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
},
|
|
63
63
|
"sideEffects": false,
|
|
64
64
|
"types": "dist/esm/index.d.ts",
|
|
65
|
-
"version": "2.42.
|
|
65
|
+
"version": "2.42.13"
|
|
66
66
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { Account } from '@xyo-network/account'
|
|
|
3
3
|
import { AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
4
4
|
import {
|
|
5
5
|
AbstractModule,
|
|
6
|
+
AbstractModuleDiscoverQuery,
|
|
7
|
+
AbstractModuleDiscoverQuerySchema,
|
|
6
8
|
Module,
|
|
7
9
|
ModuleDescription,
|
|
8
10
|
ModuleFilter,
|
|
@@ -13,13 +15,15 @@ import {
|
|
|
13
15
|
XyoErrorBuilder,
|
|
14
16
|
XyoQueryBoundWitness,
|
|
15
17
|
} from '@xyo-network/module'
|
|
16
|
-
import { XyoPayload, XyoPayloadBuilder } from '@xyo-network/payload'
|
|
18
|
+
import { PayloadWrapper, XyoPayload, XyoPayloadBuilder } from '@xyo-network/payload'
|
|
17
19
|
import { Promisable } from '@xyo-network/promise'
|
|
18
20
|
|
|
19
21
|
import { NodeConfig, NodeConfigSchema } from './Config'
|
|
20
|
-
import { NodeModule } from './
|
|
22
|
+
import { NodeModule } from './Node'
|
|
21
23
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeQuery, XyoNodeRegisteredQuerySchema } from './Queries'
|
|
22
24
|
|
|
25
|
+
const childModuleDiscoverQueryPayload = PayloadWrapper.parse<AbstractModuleDiscoverQuery>({ schema: AbstractModuleDiscoverQuerySchema })
|
|
26
|
+
|
|
23
27
|
export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module>
|
|
24
28
|
extends AbstractModule<TConfig>
|
|
25
29
|
implements NodeModule
|
|
@@ -52,6 +56,30 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TMod
|
|
|
52
56
|
const children = await Promise.all((await this.attachedModules()).map((mod) => mod.description()))
|
|
53
57
|
return { ...desc, children }
|
|
54
58
|
}
|
|
59
|
+
override async discover(_queryAccount?: Account | undefined): Promise<XyoPayload[]> {
|
|
60
|
+
const parent = await super.discover(_queryAccount)
|
|
61
|
+
// const childMods = (await this.attachedModules()).map((mod) => new ModuleWrapper(mod))
|
|
62
|
+
// const query = await this.bindQuery(childModuleDiscoverQueryPayload)
|
|
63
|
+
// const childModQueryResults = await Promise.all(
|
|
64
|
+
// childMods.map((mod) => {
|
|
65
|
+
// try {
|
|
66
|
+
// return mod.query(query[0], query[1])
|
|
67
|
+
// } catch {
|
|
68
|
+
// // TODO: remove this once we ensure all modules
|
|
69
|
+
// // implement discover query
|
|
70
|
+
// return undefined
|
|
71
|
+
// }
|
|
72
|
+
// }),
|
|
73
|
+
// )
|
|
74
|
+
// const children = compact(childModQueryResults)
|
|
75
|
+
// .map((result) => {
|
|
76
|
+
// const [bw, payloads] = result
|
|
77
|
+
// return [bw, ...payloads]
|
|
78
|
+
// })
|
|
79
|
+
// .flatMap((x) => x)
|
|
80
|
+
// return [...parent, ...children]
|
|
81
|
+
return parent
|
|
82
|
+
}
|
|
55
83
|
|
|
56
84
|
public override queries() {
|
|
57
85
|
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries()]
|
package/src/MemoryNode.spec.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable max-statements */
|
|
2
|
+
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
2
3
|
import { ArchivistWrapper, MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist'
|
|
3
4
|
import {
|
|
4
5
|
ArchivistPayloadDiviner,
|
|
@@ -8,12 +9,11 @@ import {
|
|
|
8
9
|
XyoHuriPayload,
|
|
9
10
|
XyoHuriSchema,
|
|
10
11
|
} from '@xyo-network/diviner'
|
|
11
|
-
import { AbstractModule, ModuleDescription, SimpleModuleResolver } from '@xyo-network/module'
|
|
12
|
+
import { AbstractModule, Module, ModuleDescription, SimpleModuleResolver } from '@xyo-network/module'
|
|
12
13
|
import { Account, PayloadWrapper, XyoPayload, XyoPayloadBuilder, XyoPayloadSchema } from '@xyo-network/protocol'
|
|
13
14
|
|
|
14
15
|
import { NodeConfigSchema } from './Config'
|
|
15
16
|
import { MemoryNode } from './MemoryNode'
|
|
16
|
-
import { NodeModule } from './NodeModule'
|
|
17
17
|
|
|
18
18
|
describe('MemoryNode', () => {
|
|
19
19
|
const testAccount1 = new Account({ phrase: 'testPhrase1' })
|
|
@@ -28,15 +28,15 @@ describe('MemoryNode', () => {
|
|
|
28
28
|
describe('create', () => {
|
|
29
29
|
it('Creates MemoryNode', async () => {
|
|
30
30
|
const XyoMemoryArchivist = (await import('@xyo-network/archivist')).MemoryArchivist
|
|
31
|
-
const node
|
|
31
|
+
const node = await MemoryNode.create()
|
|
32
32
|
const archivist = await XyoMemoryArchivist.create()
|
|
33
33
|
const diviner: AbstractModule = await ArchivistPayloadDiviner.create({
|
|
34
34
|
config: { archivist: archivist.address, schema: XyoArchivistPayloadDivinerConfigSchema },
|
|
35
35
|
resolver: new SimpleModuleResolver().add(archivist),
|
|
36
36
|
})
|
|
37
|
-
|
|
37
|
+
node.register(archivist)
|
|
38
38
|
node.attach(archivist.address)
|
|
39
|
-
|
|
39
|
+
node.register(diviner)
|
|
40
40
|
node.attach(diviner.address)
|
|
41
41
|
expect((await node.registered()).length).toBe(2)
|
|
42
42
|
expect((await node.attached()).length).toBe(2)
|
|
@@ -248,6 +248,65 @@ describe('MemoryNode', () => {
|
|
|
248
248
|
})
|
|
249
249
|
})
|
|
250
250
|
})
|
|
251
|
+
describe('discover', () => {
|
|
252
|
+
const archivistConfig = { schema: MemoryArchivistConfigSchema }
|
|
253
|
+
const validateDiscoveryResponse = (mod: Module, response: XyoPayload[]) => {
|
|
254
|
+
expect(response).toBeArray()
|
|
255
|
+
const address = response.find((p) => p.schema === AddressSchema) as AddressPayload
|
|
256
|
+
expect(address).toBeObject()
|
|
257
|
+
expect(address.address).toEqual(mod.address)
|
|
258
|
+
const config = response.find((p) => p.schema === mod.config.schema)
|
|
259
|
+
expect(config).toBeObject()
|
|
260
|
+
expect(config).toEqual(mod.config)
|
|
261
|
+
const queries = response.filter((p) => mod.queries().includes(p.schema))
|
|
262
|
+
expect(queries.length).toBeGreaterThanOrEqual(0)
|
|
263
|
+
queries.map((query) => {
|
|
264
|
+
expect(query).toBeObject()
|
|
265
|
+
})
|
|
266
|
+
}
|
|
267
|
+
describe('node without child modules', () => {
|
|
268
|
+
it('describes node alone', async () => {
|
|
269
|
+
const description = await node.discover()
|
|
270
|
+
validateDiscoveryResponse(node, description)
|
|
271
|
+
})
|
|
272
|
+
})
|
|
273
|
+
describe('node with child modules', () => {
|
|
274
|
+
beforeEach(async () => {
|
|
275
|
+
const modules = await Promise.all([
|
|
276
|
+
await MemoryArchivist.create({ account: testAccount2, config: archivistConfig }),
|
|
277
|
+
await MemoryArchivist.create({ account: testAccount3, config: archivistConfig }),
|
|
278
|
+
])
|
|
279
|
+
modules.map((mod) => {
|
|
280
|
+
node.register(mod)
|
|
281
|
+
node.attach(mod.address)
|
|
282
|
+
})
|
|
283
|
+
})
|
|
284
|
+
it('describes node and child modules', async () => {
|
|
285
|
+
const description = await node.discover()
|
|
286
|
+
validateDiscoveryResponse(node, description)
|
|
287
|
+
})
|
|
288
|
+
})
|
|
289
|
+
describe('node with nested nodes and modules', () => {
|
|
290
|
+
beforeEach(async () => {
|
|
291
|
+
const nestedNode = await MemoryNode.create({ account: testAccount2, config: nodeConfig })
|
|
292
|
+
const nestedModules = await Promise.all([await MemoryArchivist.create({ account: testAccount3, config: archivistConfig })])
|
|
293
|
+
nestedModules.map((mod) => {
|
|
294
|
+
nestedNode.register(mod)
|
|
295
|
+
nestedNode.attach(mod.address)
|
|
296
|
+
})
|
|
297
|
+
const rootModules: AbstractModule[] = await Promise.all([await MemoryArchivist.create({ account: testAccount4, config: archivistConfig })])
|
|
298
|
+
rootModules.push(nestedNode)
|
|
299
|
+
rootModules.map((mod) => {
|
|
300
|
+
node.register(mod)
|
|
301
|
+
node.attach(mod.address)
|
|
302
|
+
})
|
|
303
|
+
})
|
|
304
|
+
it('describes node and all nested nodes and child modules', async () => {
|
|
305
|
+
const description = await node.discover()
|
|
306
|
+
validateDiscoveryResponse(node, description)
|
|
307
|
+
})
|
|
308
|
+
})
|
|
309
|
+
})
|
|
251
310
|
})
|
|
252
311
|
|
|
253
312
|
const prettyPrintDescription = (description: ModuleDescription) => {
|
package/src/Node.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Module } from '@xyo-network/module'
|
|
1
2
|
import { Promisable } from '@xyo-network/promise'
|
|
2
3
|
|
|
3
4
|
export interface Node {
|
|
@@ -6,3 +7,5 @@ export interface Node {
|
|
|
6
7
|
detach(address: string): void
|
|
7
8
|
registered(): Promisable<string[]>
|
|
8
9
|
}
|
|
10
|
+
|
|
11
|
+
export type NodeModule = Node & Module
|
package/src/NodeWrapper.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
2
2
|
import { ArchivistWrapper } from '@xyo-network/archivist'
|
|
3
|
-
import {
|
|
3
|
+
import { ModuleWrapper } from '@xyo-network/module'
|
|
4
4
|
import { isXyoPayloadOfSchemaType, PayloadWrapper } from '@xyo-network/payload'
|
|
5
|
-
import { Promisable } from '@xyo-network/promise'
|
|
6
|
-
import compact from 'lodash/compact'
|
|
7
5
|
|
|
8
|
-
import { NodeModule } from './
|
|
6
|
+
import { NodeModule } from './Node'
|
|
9
7
|
import {
|
|
10
8
|
XyoNodeAttachedQuery,
|
|
11
9
|
XyoNodeAttachedQuerySchema,
|
|
@@ -38,39 +36,14 @@ export class NodeWrapper<TModule extends NodeModule = NodeModule> extends Module
|
|
|
38
36
|
return payloads.map((p) => p.address)
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
async attachedModules(): Promise<Module[]> {
|
|
42
|
-
const addresses = await this.attached()
|
|
43
|
-
return compact(await this.resolve({ address: addresses }))
|
|
44
|
-
}
|
|
45
|
-
|
|
46
39
|
async detach(address: string): Promise<void> {
|
|
47
40
|
const queryPayload = PayloadWrapper.parse<XyoNodeDetachQuery>({ address, schema: XyoNodeDetachQuerySchema })
|
|
48
41
|
await this.sendQuery(queryPayload)
|
|
49
42
|
}
|
|
50
43
|
|
|
51
|
-
register(mod: Module): Promisable<void> {
|
|
52
|
-
return this.module.register(mod)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
44
|
async registered(): Promise<string[]> {
|
|
56
45
|
const queryPayload = PayloadWrapper.parse<XyoNodeRegisteredQuery>({ schema: XyoNodeRegisteredQuerySchema })
|
|
57
46
|
const payloads: AddressPayload[] = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType<AddressPayload>(AddressSchema))
|
|
58
47
|
return payloads.map((p) => p.address)
|
|
59
48
|
}
|
|
60
|
-
|
|
61
|
-
async registeredModules(): Promise<Module[]> {
|
|
62
|
-
return await this.module.registeredModules()
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
resolve(filter: ModuleFilter): Promisable<Module[]> {
|
|
66
|
-
return this.module.resolve(filter)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
tryResolve(filter: ModuleFilter): Promisable<Module[]> {
|
|
70
|
-
return this.module.tryResolve(filter)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
unregister(mod: Module): Promisable<void> {
|
|
74
|
-
return this.module.unregister(mod)
|
|
75
|
-
}
|
|
76
49
|
}
|
package/src/index.ts
CHANGED
package/dist/cjs/NodeModule.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Module, ModuleResolver } from '@xyo-network/module';
|
|
2
|
-
import { Promisable, PromisableArray } from '@xyo-network/promise';
|
|
3
|
-
import { Node } from './Node';
|
|
4
|
-
export interface NodeModule<TModule extends Module = Module> extends Node, Module, ModuleResolver {
|
|
5
|
-
attachedModules(): PromisableArray<TModule>;
|
|
6
|
-
register(module: TModule): Promisable<void>;
|
|
7
|
-
registeredModules(): PromisableArray<TModule>;
|
|
8
|
-
unregister(module: TModule): Promisable<void>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=NodeModule.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModule.d.ts","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC5D,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,EAAE,cAAc;IAC/F,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,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAC9C"}
|
package/dist/cjs/NodeModule.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModule.js","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":""}
|
package/dist/esm/NodeModule.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Module, ModuleResolver } from '@xyo-network/module';
|
|
2
|
-
import { Promisable, PromisableArray } from '@xyo-network/promise';
|
|
3
|
-
import { Node } from './Node';
|
|
4
|
-
export interface NodeModule<TModule extends Module = Module> extends Node, Module, ModuleResolver {
|
|
5
|
-
attachedModules(): PromisableArray<TModule>;
|
|
6
|
-
register(module: TModule): Promisable<void>;
|
|
7
|
-
registeredModules(): PromisableArray<TModule>;
|
|
8
|
-
unregister(module: TModule): Promisable<void>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=NodeModule.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModule.d.ts","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC5D,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,EAAE,cAAc;IAC/F,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,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAC9C"}
|
package/dist/esm/NodeModule.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModule.js","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":""}
|
package/src/NodeModule.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Module, ModuleResolver } from '@xyo-network/module'
|
|
2
|
-
import { Promisable, PromisableArray } from '@xyo-network/promise'
|
|
3
|
-
|
|
4
|
-
import { Node } from './Node'
|
|
5
|
-
|
|
6
|
-
export interface NodeModule<TModule extends Module = Module> extends Node, Module, ModuleResolver {
|
|
7
|
-
attachedModules(): PromisableArray<TModule>
|
|
8
|
-
register(module: TModule): Promisable<void>
|
|
9
|
-
registeredModules(): PromisableArray<TModule>
|
|
10
|
-
unregister(module: TModule): Promisable<void>
|
|
11
|
-
}
|