@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.
Files changed (44) hide show
  1. package/dist/cjs/AbstractNode.d.ts +3 -1
  2. package/dist/cjs/AbstractNode.d.ts.map +1 -1
  3. package/dist/cjs/AbstractNode.js +30 -0
  4. package/dist/cjs/AbstractNode.js.map +1 -1
  5. package/dist/cjs/Node.d.ts +2 -0
  6. package/dist/cjs/Node.d.ts.map +1 -1
  7. package/dist/cjs/NodeWrapper.d.ts +2 -9
  8. package/dist/cjs/NodeWrapper.d.ts.map +1 -1
  9. package/dist/cjs/NodeWrapper.js +0 -24
  10. package/dist/cjs/NodeWrapper.js.map +1 -1
  11. package/dist/cjs/index.d.ts +0 -1
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +0 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/docs.json +1745 -4048
  16. package/dist/esm/AbstractNode.d.ts +3 -1
  17. package/dist/esm/AbstractNode.d.ts.map +1 -1
  18. package/dist/esm/AbstractNode.js +27 -2
  19. package/dist/esm/AbstractNode.js.map +1 -1
  20. package/dist/esm/Node.d.ts +2 -0
  21. package/dist/esm/Node.d.ts.map +1 -1
  22. package/dist/esm/NodeWrapper.d.ts +2 -9
  23. package/dist/esm/NodeWrapper.d.ts.map +1 -1
  24. package/dist/esm/NodeWrapper.js +0 -20
  25. package/dist/esm/NodeWrapper.js.map +1 -1
  26. package/dist/esm/index.d.ts +0 -1
  27. package/dist/esm/index.d.ts.map +1 -1
  28. package/dist/esm/index.js +0 -1
  29. package/dist/esm/index.js.map +1 -1
  30. package/package.json +7 -7
  31. package/src/AbstractNode.ts +30 -2
  32. package/src/MemoryNode.spec.ts +64 -5
  33. package/src/Node.ts +3 -0
  34. package/src/NodeWrapper.ts +2 -29
  35. package/src/index.ts +0 -1
  36. package/dist/cjs/NodeModule.d.ts +0 -10
  37. package/dist/cjs/NodeModule.d.ts.map +0 -1
  38. package/dist/cjs/NodeModule.js +0 -3
  39. package/dist/cjs/NodeModule.js.map +0 -1
  40. package/dist/esm/NodeModule.d.ts +0 -10
  41. package/dist/esm/NodeModule.d.ts.map +0 -1
  42. package/dist/esm/NodeModule.js +0 -2
  43. package/dist/esm/NodeModule.js.map +0 -1
  44. 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 './NodeModule';
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":"AAGA,OAAO,EACL,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAEjB,oBAAoB,EAEpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,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;IAMxC,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"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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 { Module, ModuleFilter, ModuleWrapper } from '@xyo-network/module';
3
- import { Promisable } from '@xyo-network/promise';
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,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAYzC,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,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM/B,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI5C,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAInD,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAItD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;CAG1C"}
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"}
@@ -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":"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"}
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"}
@@ -2,7 +2,6 @@ export * from './AbstractNode';
2
2
  export * from './Config';
3
3
  export * from './MemoryNode';
4
4
  export * from './Node';
5
- export * from './NodeModule';
6
5
  export * from './NodeWrapper';
7
6
  export * from './PartialConfig';
8
7
  export * from './Queries';
@@ -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,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
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
@@ -2,7 +2,6 @@ export * from './AbstractNode';
2
2
  export * from './Config';
3
3
  export * from './MemoryNode';
4
4
  export * from './Node';
5
- export * from './NodeModule';
6
5
  export * from './NodeWrapper';
7
6
  export * from './PartialConfig';
8
7
  export * from './Queries';
@@ -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,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
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.11",
15
- "@xyo-network/address-payload-plugin": "^2.42.11",
16
- "@xyo-network/archivist": "^2.42.11",
17
- "@xyo-network/module": "^2.42.11",
18
- "@xyo-network/payload": "^2.42.11",
19
- "@xyo-network/promise": "^2.42.11",
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.11"
65
+ "version": "2.42.13"
66
66
  }
@@ -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 './NodeModule'
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()]
@@ -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: NodeModule = await MemoryNode.create()
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
- await node.register(archivist)
37
+ node.register(archivist)
38
38
  node.attach(archivist.address)
39
- await node.register(diviner)
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
@@ -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 { Module, ModuleFilter, ModuleWrapper } from '@xyo-network/module'
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 './NodeModule'
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
@@ -2,7 +2,6 @@ export * from './AbstractNode'
2
2
  export * from './Config'
3
3
  export * from './MemoryNode'
4
4
  export * from './Node'
5
- export * from './NodeModule'
6
5
  export * from './NodeWrapper'
7
6
  export * from './PartialConfig'
8
7
  export * from './Queries'
@@ -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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=NodeModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeModule.js","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":""}
@@ -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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=NodeModule.js.map
@@ -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
- }