@xyo-network/node 2.47.8 → 2.47.10

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 (53) hide show
  1. package/dist/cjs/AbstractNode.js +23 -0
  2. package/dist/cjs/AbstractNode.js.map +1 -1
  3. package/dist/cjs/Events/ModuleAttached.js +2 -0
  4. package/dist/cjs/Events/ModuleAttached.js.map +1 -1
  5. package/dist/cjs/Events/ModuleDetached.js +5 -0
  6. package/dist/cjs/Events/ModuleDetached.js.map +1 -0
  7. package/dist/cjs/Events/ModuleRegistered.js +5 -0
  8. package/dist/cjs/Events/ModuleRegistered.js.map +1 -0
  9. package/dist/cjs/Events/index.js +2 -1
  10. package/dist/cjs/Events/index.js.map +1 -1
  11. package/dist/cjs/MemoryNode.js +1 -16
  12. package/dist/cjs/MemoryNode.js.map +1 -1
  13. package/dist/docs.json +23499 -15366
  14. package/dist/esm/AbstractNode.js +23 -1
  15. package/dist/esm/AbstractNode.js.map +1 -1
  16. package/dist/esm/Events/ModuleAttached.js +1 -1
  17. package/dist/esm/Events/ModuleAttached.js.map +1 -1
  18. package/dist/esm/Events/ModuleDetached.js +2 -0
  19. package/dist/esm/Events/ModuleDetached.js.map +1 -0
  20. package/dist/esm/Events/ModuleRegistered.js +2 -0
  21. package/dist/esm/Events/ModuleRegistered.js.map +1 -0
  22. package/dist/esm/Events/index.js +2 -1
  23. package/dist/esm/Events/index.js.map +1 -1
  24. package/dist/esm/MemoryNode.js +1 -15
  25. package/dist/esm/MemoryNode.js.map +1 -1
  26. package/dist/types/AbstractNode.d.ts +12 -3
  27. package/dist/types/AbstractNode.d.ts.map +1 -1
  28. package/dist/types/Events/ModuleAttached.d.ts +5 -12
  29. package/dist/types/Events/ModuleAttached.d.ts.map +1 -1
  30. package/dist/types/Events/ModuleDetached.d.ts +6 -0
  31. package/dist/types/Events/ModuleDetached.d.ts.map +1 -0
  32. package/dist/types/Events/ModuleRegistered.d.ts +6 -0
  33. package/dist/types/Events/ModuleRegistered.d.ts.map +1 -0
  34. package/dist/types/Events/index.d.ts +2 -1
  35. package/dist/types/Events/index.d.ts.map +1 -1
  36. package/dist/types/MemoryNode.d.ts +1 -7
  37. package/dist/types/MemoryNode.d.ts.map +1 -1
  38. package/package.json +12 -12
  39. package/src/AbstractNode.ts +50 -2
  40. package/src/Events/ModuleAttached.ts +5 -12
  41. package/src/Events/ModuleDetached.ts +8 -0
  42. package/src/Events/ModuleRegistered.ts +8 -0
  43. package/src/Events/index.ts +2 -1
  44. package/src/MemoryNode.ts +4 -35
  45. package/dist/cjs/Events/ResolverChanged.js +0 -3
  46. package/dist/cjs/Events/ResolverChanged.js.map +0 -1
  47. package/dist/esm/Events/ResolverChanged.js +0 -2
  48. package/dist/esm/Events/ResolverChanged.js.map +0 -1
  49. package/dist/types/Events/ResolverChanged.d.ts +0 -7
  50. package/dist/types/Events/ResolverChanged.d.ts.map +0 -1
  51. package/src/Events/ResolverChanged.ts +0 -8
  52. package/src/spec/MemoryNode.spec.ts +0 -410
  53. package/src/spec/__snapshots__/MemoryNode.spec.ts.snap +0 -53
@@ -1,13 +1,18 @@
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, CompositeModuleResolver, QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
4
+ import { AbstractModule, CompositeModuleResolver, ModuleQueriedEvent, QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
5
5
  import { XyoPayloadBuilder } from '@xyo-network/payload-builder';
6
6
  import { NodeConfigSchema } from './Config';
7
+ import { ModuleAttachedEvent, ModuleDetachedEvent, ModuleRegisteredEvent, } from './Events';
7
8
  import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
8
9
  export class AbstractNode extends AbstractModule {
9
10
  static configSchema = NodeConfigSchema;
10
11
  internalResolver = new CompositeModuleResolver();
12
+ moduleAttachedEventListeners = [];
13
+ moduleDetachedEventListeners = [];
14
+ moduleQueriedEventListeners = [];
15
+ moduleRegisteredEventListeners = [];
11
16
  isNode = true;
12
17
  constructor(params) {
13
18
  super(params);
@@ -35,6 +40,23 @@ export class AbstractNode extends AbstractModule {
35
40
  const childModAddresses = childMods.map((mod) => new XyoPayloadBuilder({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build());
36
41
  return [...(await super.discover()), ...childModAddresses];
37
42
  }
43
+ on(event, listener) {
44
+ switch (event) {
45
+ case ModuleAttachedEvent:
46
+ this.moduleAttachedEventListeners?.push(listener);
47
+ break;
48
+ case ModuleDetachedEvent:
49
+ this.moduleDetachedEventListeners?.push(listener);
50
+ break;
51
+ case ModuleRegisteredEvent:
52
+ this.moduleRegisteredEventListeners?.push(listener);
53
+ break;
54
+ case ModuleQueriedEvent:
55
+ this.moduleQueriedEventListeners?.push(listener);
56
+ break;
57
+ }
58
+ return this;
59
+ }
38
60
  async query(query, payloads, queryConfig) {
39
61
  const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
40
62
  const typedQuery = wrapper.query.payload;
@@ -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,2 +1,2 @@
1
- export {};
1
+ export const ModuleAttachedEvent = 'moduleAttached';
2
2
  //# sourceMappingURL=ModuleAttached.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleAttached.js","sourceRoot":"","sources":["../../../src/Events/ModuleAttached.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ModuleAttached.js","sourceRoot":"","sources":["../../../src/Events/ModuleAttached.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAwB,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const ModuleDetachedEvent = 'moduleDetached';
2
+ //# sourceMappingURL=ModuleDetached.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDetached.js","sourceRoot":"","sources":["../../../src/Events/ModuleDetached.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAwB,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const ModuleRegisteredEvent = 'moduleRegistered';
2
+ //# sourceMappingURL=ModuleRegistered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleRegistered.js","sourceRoot":"","sources":["../../../src/Events/ModuleRegistered.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAA0B,kBAAkB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export * from './ModuleAttached';
2
- export * from './ResolverChanged';
2
+ export * from './ModuleDetached';
3
+ export * from './ModuleRegistered';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA"}
@@ -6,10 +6,7 @@ import { AbstractNode } from './AbstractNode';
6
6
  import { NodeConfigSchema } from './Config';
7
7
  export class MemoryNode extends AbstractNode {
8
8
  static configSchema = NodeConfigSchema;
9
- moduleAttachedEventListeners = [];
10
- moduleDetachedEventListeners = [];
11
9
  registeredModuleMap = new Map();
12
- resolverChangedEventListeners = [];
13
10
  static async create(params) {
14
11
  return (await super.create(params));
15
12
  }
@@ -43,17 +40,6 @@ export class MemoryNode extends AbstractNode {
43
40
  const args = { module, name: module.config.name };
44
41
  this.moduleDetachedEventListeners?.map((listener) => listener(args));
45
42
  }
46
- on(event, listener) {
47
- switch (event) {
48
- case 'moduleAttached':
49
- this.moduleAttachedEventListeners?.push(listener);
50
- break;
51
- case 'moduleResolverChanged':
52
- this.resolverChangedEventListeners?.push(listener);
53
- break;
54
- }
55
- return this;
56
- }
57
43
  register(module) {
58
44
  assertEx(!this.registeredModuleMap.get(module.address), `Module already registered at that address[${module.address}]`);
59
45
  this.registeredModuleMap.set(module.address, module);
@@ -75,7 +61,7 @@ export class MemoryNode extends AbstractNode {
75
61
  const local = this.resolver?.resolve(filter) || [];
76
62
  const resolved = await Promise.allSettled([internal, external, local]);
77
63
  const errors = resolved.filter(rejected).map((r) => Error(r.reason));
78
- if (errors) {
64
+ if (errors.length) {
79
65
  this.logger?.error(`Resolve Errors: ${JSON.stringify(errors, null, 2)}`);
80
66
  }
81
67
  return resolved
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import { AbstractModule, CompositeModuleResolver, Module, ModuleConfig, ModuleConstructable, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
1
+ import { AbstractModule, CompositeModuleResolver, EventListener, Module, ModuleConfig, ModuleConstructable, ModuleFilter, ModuleParams, ModuleQueriedEvent, ModuleQueriedEventArgs, ModuleQueriedEventEmitter, ModuleQueryResult, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
2
2
  import { XyoPayload } from '@xyo-network/payload-model';
3
3
  import { Promisable } from '@xyo-network/promise';
4
4
  import { NodeConfig } from './Config';
5
+ import { ModuleAttachedEvent, ModuleAttachedEventArgs, ModuleAttachedEventEmitter, ModuleDetachedEvent, ModuleDetachedEventArgs, ModuleDetachedEventEmitter, ModuleRegisteredEvent, ModuleRegisteredEventArgs, ModuleRegisteredEventEmitter } from './Events';
5
6
  import { NodeModule } from './Node';
6
7
  export type AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> = ModuleParams<TConfig, {
7
8
  internalResolver?: CompositeModuleResolver;
8
9
  }>;
9
- export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule {
10
+ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule, ModuleAttachedEventEmitter, ModuleDetachedEventEmitter, ModuleRegisteredEventEmitter, ModuleQueriedEventEmitter {
10
11
  static readonly configSchema: "network.xyo.node.config";
11
- protected internalResolver: CompositeModuleResolver<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
12
+ protected readonly internalResolver: CompositeModuleResolver<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
12
13
  name?: string | undefined;
13
14
  security?: {
14
15
  allowAnonymous?: boolean | undefined;
@@ -18,6 +19,10 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
18
19
  } & {
19
20
  schema: string;
20
21
  }>>;
22
+ protected readonly moduleAttachedEventListeners: EventListener<ModuleAttachedEventArgs>[];
23
+ protected readonly moduleDetachedEventListeners: EventListener<ModuleDetachedEventArgs>[];
24
+ protected readonly moduleQueriedEventListeners: EventListener<ModuleQueriedEventArgs>[];
25
+ protected readonly moduleRegisteredEventListeners: EventListener<ModuleRegisteredEventArgs>[];
21
26
  private readonly isNode;
22
27
  protected constructor(params: AbstractNodeParams<TConfig>);
23
28
  get isModuleResolver(): boolean;
@@ -27,6 +32,10 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
27
32
  attached(): Promise<string[]>;
28
33
  attachedModules(): Promise<Module[]>;
29
34
  discover(): Promise<XyoPayload[]>;
35
+ on(event: ModuleQueriedEvent, listener: (args: ModuleQueriedEventArgs) => void): this;
36
+ on(event: ModuleAttachedEvent, listener: (args: ModuleAttachedEventArgs) => void): this;
37
+ on(event: ModuleDetachedEvent, listener: (args: ModuleDetachedEventArgs) => void): this;
38
+ on(event: ModuleRegisteredEvent, listener: (args: ModuleRegisteredEventArgs) => void): this;
30
39
  query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
31
40
  register(_module: Module): Promisable<this>;
32
41
  registered(): Promisable<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAGb,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGnC,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,YAAY,CACpF,OAAO,EACP;IACE,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;CAC3C,CACF,CAAA;AAED,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAE,YAAW,UAAU;IAC/H,gBAAyB,YAAY,4BAAmB;IAExD,SAAS,CAAC,gBAAgB;;;;;;;;;QAAgC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,SAAS,aAAa,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAIzD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IASjC,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EACrH,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IA0C7B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAIlC,iBAAiB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAI1B,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhE;;;;;;;;;;OAUG;IACG,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAC1E,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,EACvC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,EAAE,CAAC;IAIA,KAAK;IAKpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAI7C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;CACnD;AAED,2CAA2C;AAC3C,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;CAAG"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,6 @@
1
- import { ModuleEventEmitter } from '@xyo-network/module';
2
- import { Module } from '@xyo-network/module-model';
3
- export interface ModuleAttachedEventArgs {
4
- module: Module;
5
- name?: string;
6
- }
7
- export interface ModuleDetachedEventArgs {
8
- module: Module;
9
- name?: string;
10
- }
11
- export type ModuleAttachedEventEmitter = ModuleEventEmitter<'moduleAttached', ModuleAttachedEventArgs>;
12
- export type ModuleDetachedEventEmitter = ModuleEventEmitter<'moduleDetached', ModuleDetachedEventArgs>;
1
+ import { ModuleEventArgs, ModuleEventEmitter } from '@xyo-network/module';
2
+ export type ModuleAttachedEvent = 'moduleAttached';
3
+ export declare const ModuleAttachedEvent: ModuleAttachedEvent;
4
+ export type ModuleAttachedEventArgs = ModuleEventArgs;
5
+ export type ModuleAttachedEventEmitter = ModuleEventEmitter<ModuleAttachedEvent, ModuleAttachedEventArgs>;
13
6
  //# sourceMappingURL=ModuleAttached.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleAttached.d.ts","sourceRoot":"","sources":["../../../src/Events/ModuleAttached.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAA;AACtG,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"ModuleAttached.d.ts","sourceRoot":"","sources":["../../../src/Events/ModuleAttached.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAEzE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAClD,eAAO,MAAM,mBAAmB,EAAE,mBAAsC,CAAA;AAExE,MAAM,MAAM,uBAAuB,GAAG,eAAe,CAAA;AAErD,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { ModuleEventArgs, ModuleEventEmitter } from '@xyo-network/module';
2
+ export type ModuleDetachedEvent = 'moduleDetached';
3
+ export declare const ModuleDetachedEvent: ModuleDetachedEvent;
4
+ export type ModuleDetachedEventArgs = ModuleEventArgs;
5
+ export type ModuleDetachedEventEmitter = ModuleEventEmitter<ModuleDetachedEvent, ModuleDetachedEventArgs>;
6
+ //# sourceMappingURL=ModuleDetached.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDetached.d.ts","sourceRoot":"","sources":["../../../src/Events/ModuleDetached.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAEzE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAClD,eAAO,MAAM,mBAAmB,EAAE,mBAAsC,CAAA;AAExE,MAAM,MAAM,uBAAuB,GAAG,eAAe,CAAA;AAErD,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { ModuleEventArgs, ModuleEventEmitter } from '@xyo-network/module';
2
+ export type ModuleRegisteredEvent = 'moduleRegistered';
3
+ export declare const ModuleRegisteredEvent: ModuleRegisteredEvent;
4
+ export type ModuleRegisteredEventArgs = ModuleEventArgs;
5
+ export type ModuleRegisteredEventEmitter = ModuleEventEmitter<ModuleRegisteredEvent, ModuleRegisteredEventArgs>;
6
+ //# sourceMappingURL=ModuleRegistered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleRegistered.d.ts","sourceRoot":"","sources":["../../../src/Events/ModuleRegistered.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAEzE,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAA;AACtD,eAAO,MAAM,qBAAqB,EAAE,qBAA0C,CAAA;AAE9E,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAA;AAEvD,MAAM,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export * from './ModuleAttached';
2
- export * from './ResolverChanged';
2
+ export * from './ModuleDetached';
3
+ export * from './ModuleRegistered';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA"}
@@ -1,19 +1,13 @@
1
1
  import { Module, ModuleFilter } from '@xyo-network/module';
2
2
  import { AbstractNode, AbstractNodeParams } from './AbstractNode';
3
3
  import { NodeConfig } from './Config';
4
- import { ModuleAttachedEventArgs, ModuleAttachedEventEmitter, ModuleResolverChangedEventArgs, ResolverChangedEventEmitter } from './Events';
5
4
  export type MemoryNodeParams<TConfig extends NodeConfig = NodeConfig> = AbstractNodeParams<TConfig>;
6
- export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends AbstractNode<TConfig> implements ModuleAttachedEventEmitter, ResolverChangedEventEmitter {
5
+ export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends AbstractNode<TConfig> {
7
6
  static configSchema: "network.xyo.node.config";
8
- private readonly moduleAttachedEventListeners;
9
- private readonly moduleDetachedEventListeners;
10
7
  private registeredModuleMap;
11
- private readonly resolverChangedEventListeners;
12
8
  static create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode>;
13
9
  attach(address: string, external?: boolean): Promise<void>;
14
10
  detach(address: string): void;
15
- on(event: 'moduleAttached', listener: (args: ModuleAttachedEventArgs) => void): this;
16
- on(event: 'moduleResolverChanged', listener: (args: ModuleResolverChangedEventArgs) => void): this;
17
11
  register(module: Module): this;
18
12
  registered(): string[];
19
13
  registeredModules(): Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE3F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,UAAU,CAAA;AAOjB,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAEnG,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAC7D,SAAQ,YAAY,CAAC,OAAO,CAC5B,YAAW,0BAA0B,EAAE,2BAA2B;IAElE,OAAgB,YAAY,4BAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+C;IAC5F,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+C;IAC5F,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAsD;WAE9E,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAItE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAwBhD,MAAM,CAAC,OAAO,EAAE,MAAM;IAkB/B,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI;IACpF,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,IAAI,GAAG,IAAI;IAazF,QAAQ,CAAC,MAAM,EAAE,MAAM;IAMvB,UAAU;IAMV,iBAAiB;;;;;;;;;;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBvD,UAAU,CAAC,MAAM,EAAE,MAAM;CAKnC"}
1
+ {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAEnG,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC5F,OAAgB,YAAY,4BAAmB;IAE/C,OAAO,CAAC,mBAAmB,CAA4B;WAEjC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAItE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAwBhD,MAAM,CAAC,OAAO,EAAE,MAAM;IAkBtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAMvB,UAAU;IAMV,iBAAiB;;;;;;;;;;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBvD,UAAU,CAAC,MAAM,EAAE,MAAM;CAKnC"}
package/package.json CHANGED
@@ -13,19 +13,19 @@
13
13
  "@xylabs/assert": "^2.7.1",
14
14
  "@xylabs/exists": "^2.7.1",
15
15
  "@xylabs/promise": "^2.7.1",
16
- "@xyo-network/account": "^2.47.8",
17
- "@xyo-network/address-payload-plugin": "^2.47.8",
18
- "@xyo-network/archivist-wrapper": "^2.47.8",
19
- "@xyo-network/module": "^2.47.8",
20
- "@xyo-network/module-model": "^2.47.8",
21
- "@xyo-network/payload-builder": "^2.47.8",
22
- "@xyo-network/payload-model": "^2.47.8",
23
- "@xyo-network/payload-wrapper": "^2.47.8",
24
- "@xyo-network/promise": "^2.47.8"
16
+ "@xyo-network/account": "^2.47.10",
17
+ "@xyo-network/address-payload-plugin": "^2.47.10",
18
+ "@xyo-network/archivist-wrapper": "^2.47.10",
19
+ "@xyo-network/module": "^2.47.10",
20
+ "@xyo-network/module-model": "^2.47.10",
21
+ "@xyo-network/payload-builder": "^2.47.10",
22
+ "@xyo-network/payload-model": "^2.47.10",
23
+ "@xyo-network/payload-wrapper": "^2.47.10",
24
+ "@xyo-network/promise": "^2.47.10"
25
25
  },
26
26
  "devDependencies": {
27
- "@xylabs/ts-scripts-yarn3": "^2.14.16",
28
- "@xylabs/tsconfig": "^2.14.16",
27
+ "@xylabs/ts-scripts-yarn3": "^2.15.0",
28
+ "@xylabs/tsconfig": "^2.15.0",
29
29
  "typescript": "^4.9.5"
30
30
  },
31
31
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -61,5 +61,5 @@
61
61
  },
62
62
  "sideEffects": false,
63
63
  "types": "dist/types/index.d.ts",
64
- "version": "2.47.8"
64
+ "version": "2.47.10"
65
65
  }
@@ -4,11 +4,15 @@ import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plug
4
4
  import {
5
5
  AbstractModule,
6
6
  CompositeModuleResolver,
7
+ EventListener,
7
8
  Module,
8
9
  ModuleConfig,
9
10
  ModuleConstructable,
10
11
  ModuleFilter,
11
12
  ModuleParams,
13
+ ModuleQueriedEvent,
14
+ ModuleQueriedEventArgs,
15
+ ModuleQueriedEventEmitter,
12
16
  ModuleQueryResult,
13
17
  ModuleWrapper,
14
18
  QueryBoundWitnessWrapper,
@@ -20,6 +24,17 @@ import { XyoPayload } from '@xyo-network/payload-model'
20
24
  import { Promisable } from '@xyo-network/promise'
21
25
 
22
26
  import { NodeConfig, NodeConfigSchema } from './Config'
27
+ import {
28
+ ModuleAttachedEvent,
29
+ ModuleAttachedEventArgs,
30
+ ModuleAttachedEventEmitter,
31
+ ModuleDetachedEvent,
32
+ ModuleDetachedEventArgs,
33
+ ModuleDetachedEventEmitter,
34
+ ModuleRegisteredEvent,
35
+ ModuleRegisteredEventArgs,
36
+ ModuleRegisteredEventEmitter,
37
+ } from './Events'
23
38
  import { NodeModule } from './Node'
24
39
  import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeQuery, XyoNodeRegisteredQuerySchema } from './Queries'
25
40
 
@@ -30,10 +45,18 @@ export type AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> = Module
30
45
  }
31
46
  >
32
47
 
33
- export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule {
48
+ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig>
49
+ extends AbstractModule<TConfig>
50
+ implements NodeModule, ModuleAttachedEventEmitter, ModuleDetachedEventEmitter, ModuleRegisteredEventEmitter, ModuleQueriedEventEmitter
51
+ {
34
52
  static override readonly configSchema = NodeConfigSchema
35
53
 
36
- protected internalResolver = new CompositeModuleResolver()
54
+ protected readonly internalResolver = new CompositeModuleResolver()
55
+
56
+ protected readonly moduleAttachedEventListeners: EventListener<ModuleAttachedEventArgs>[] = []
57
+ protected readonly moduleDetachedEventListeners: EventListener<ModuleDetachedEventArgs>[] = []
58
+ protected readonly moduleQueriedEventListeners: EventListener<ModuleQueriedEventArgs>[] = []
59
+ protected readonly moduleRegisteredEventListeners: EventListener<ModuleRegisteredEventArgs>[] = []
37
60
 
38
61
  private readonly isNode = true
39
62
 
@@ -74,6 +97,31 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> exte
74
97
  return [...(await super.discover()), ...childModAddresses]
75
98
  }
76
99
 
100
+ on(event: ModuleQueriedEvent, listener: (args: ModuleQueriedEventArgs) => void): this
101
+ on(event: ModuleAttachedEvent, listener: (args: ModuleAttachedEventArgs) => void): this
102
+ on(event: ModuleDetachedEvent, listener: (args: ModuleDetachedEventArgs) => void): this
103
+ on(event: ModuleRegisteredEvent, listener: (args: ModuleRegisteredEventArgs) => void): this
104
+ on(
105
+ event: ModuleQueriedEvent | ModuleAttachedEvent | ModuleDetachedEvent | ModuleRegisteredEvent,
106
+ listener: (args: ModuleQueriedEventArgs) => void,
107
+ ): this {
108
+ switch (event) {
109
+ case ModuleAttachedEvent:
110
+ this.moduleAttachedEventListeners?.push(listener as EventListener<ModuleAttachedEventArgs>)
111
+ break
112
+ case ModuleDetachedEvent:
113
+ this.moduleDetachedEventListeners?.push(listener as EventListener<ModuleDetachedEventArgs>)
114
+ break
115
+ case ModuleRegisteredEvent:
116
+ this.moduleRegisteredEventListeners?.push(listener as EventListener<ModuleRegisteredEventArgs>)
117
+ break
118
+ case ModuleQueriedEvent:
119
+ this.moduleQueriedEventListeners?.push(listener as EventListener<ModuleQueriedEventArgs>)
120
+ break
121
+ }
122
+ return this
123
+ }
124
+
77
125
  override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
78
126
  query: T,
79
127
  payloads?: XyoPayload[],
@@ -1,15 +1,8 @@
1
- import { ModuleEventEmitter } from '@xyo-network/module'
2
- import { Module } from '@xyo-network/module-model'
1
+ import { ModuleEventArgs, ModuleEventEmitter } from '@xyo-network/module'
3
2
 
4
- export interface ModuleAttachedEventArgs {
5
- module: Module
6
- name?: string
7
- }
3
+ export type ModuleAttachedEvent = 'moduleAttached'
4
+ export const ModuleAttachedEvent: ModuleAttachedEvent = 'moduleAttached'
8
5
 
9
- export interface ModuleDetachedEventArgs {
10
- module: Module
11
- name?: string
12
- }
6
+ export type ModuleAttachedEventArgs = ModuleEventArgs
13
7
 
14
- export type ModuleAttachedEventEmitter = ModuleEventEmitter<'moduleAttached', ModuleAttachedEventArgs>
15
- export type ModuleDetachedEventEmitter = ModuleEventEmitter<'moduleDetached', ModuleDetachedEventArgs>
8
+ export type ModuleAttachedEventEmitter = ModuleEventEmitter<ModuleAttachedEvent, ModuleAttachedEventArgs>
@@ -0,0 +1,8 @@
1
+ import { ModuleEventArgs, ModuleEventEmitter } from '@xyo-network/module'
2
+
3
+ export type ModuleDetachedEvent = 'moduleDetached'
4
+ export const ModuleDetachedEvent: ModuleDetachedEvent = 'moduleDetached'
5
+
6
+ export type ModuleDetachedEventArgs = ModuleEventArgs
7
+
8
+ export type ModuleDetachedEventEmitter = ModuleEventEmitter<ModuleDetachedEvent, ModuleDetachedEventArgs>
@@ -0,0 +1,8 @@
1
+ import { ModuleEventArgs, ModuleEventEmitter } from '@xyo-network/module'
2
+
3
+ export type ModuleRegisteredEvent = 'moduleRegistered'
4
+ export const ModuleRegisteredEvent: ModuleRegisteredEvent = 'moduleRegistered'
5
+
6
+ export type ModuleRegisteredEventArgs = ModuleEventArgs
7
+
8
+ export type ModuleRegisteredEventEmitter = ModuleEventEmitter<ModuleRegisteredEvent, ModuleRegisteredEventArgs>
@@ -1,2 +1,3 @@
1
1
  export * from './ModuleAttached'
2
- export * from './ResolverChanged'
2
+ export * from './ModuleDetached'
3
+ export * from './ModuleRegistered'
package/src/MemoryNode.ts CHANGED
@@ -1,34 +1,17 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { exists } from '@xylabs/exists'
3
3
  import { fulfilled, rejected } from '@xylabs/promise'
4
- import { duplicateModules, EventListener, Module, ModuleFilter } from '@xyo-network/module'
4
+ import { duplicateModules, Module, ModuleFilter } from '@xyo-network/module'
5
5
 
6
6
  import { AbstractNode, AbstractNodeParams } from './AbstractNode'
7
7
  import { NodeConfig, NodeConfigSchema } from './Config'
8
- import {
9
- ModuleAttachedEventArgs,
10
- ModuleAttachedEventEmitter,
11
- ModuleDetachedEventArgs,
12
- ModuleResolverChangedEventArgs,
13
- ResolverChangedEventEmitter,
14
- } from './Events'
15
-
16
- type SupportedEventTypes = 'moduleAttached' | 'moduleResolverChanged'
17
- type SupportedEventListeners<T extends SupportedEventTypes> = T extends 'moduleAttached'
18
- ? EventListener<ModuleAttachedEventArgs>
19
- : EventListener<ModuleResolverChangedEventArgs>
20
8
 
21
9
  export type MemoryNodeParams<TConfig extends NodeConfig = NodeConfig> = AbstractNodeParams<TConfig>
22
10
 
23
- export class MemoryNode<TConfig extends NodeConfig = NodeConfig>
24
- extends AbstractNode<TConfig>
25
- implements ModuleAttachedEventEmitter, ResolverChangedEventEmitter
26
- {
11
+ export class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends AbstractNode<TConfig> {
27
12
  static override configSchema = NodeConfigSchema
28
- private readonly moduleAttachedEventListeners: EventListener<ModuleAttachedEventArgs>[] = []
29
- private readonly moduleDetachedEventListeners: EventListener<ModuleDetachedEventArgs>[] = []
13
+
30
14
  private registeredModuleMap = new Map<string, Module>()
31
- private readonly resolverChangedEventListeners: EventListener<ModuleResolverChangedEventArgs>[] = []
32
15
 
33
16
  static override async create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode> {
34
17
  return (await super.create(params)) as MemoryNode
@@ -76,20 +59,6 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig>
76
59
  this.moduleDetachedEventListeners?.map((listener) => listener(args))
77
60
  }
78
61
 
79
- on(event: 'moduleAttached', listener: (args: ModuleAttachedEventArgs) => void): this
80
- on(event: 'moduleResolverChanged', listener: (args: ModuleResolverChangedEventArgs) => void): this
81
- on<T extends SupportedEventTypes>(event: T, listener: SupportedEventListeners<T>): this {
82
- switch (event) {
83
- case 'moduleAttached':
84
- this.moduleAttachedEventListeners?.push(listener as EventListener<ModuleAttachedEventArgs>)
85
- break
86
- case 'moduleResolverChanged':
87
- this.resolverChangedEventListeners?.push(listener as EventListener<ModuleResolverChangedEventArgs>)
88
- break
89
- }
90
- return this
91
- }
92
-
93
62
  override register(module: Module) {
94
63
  assertEx(!this.registeredModuleMap.get(module.address), `Module already registered at that address[${module.address}]`)
95
64
  this.registeredModuleMap.set(module.address, module)
@@ -116,7 +85,7 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig>
116
85
 
117
86
  const errors = resolved.filter(rejected).map((r) => Error(r.reason))
118
87
 
119
- if (errors) {
88
+ if (errors.length) {
120
89
  this.logger?.error(`Resolve Errors: ${JSON.stringify(errors, null, 2)}`)
121
90
  }
122
91
 
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ResolverChanged.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolverChanged.js","sourceRoot":"","sources":["../../../src/Events/ResolverChanged.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ResolverChanged.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolverChanged.js","sourceRoot":"","sources":["../../../src/Events/ResolverChanged.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { ModuleEventEmitter } from '@xyo-network/module';
2
- import { ModuleResolver } from '@xyo-network/module-model';
3
- export interface ModuleResolverChangedEventArgs {
4
- resolver?: ModuleResolver;
5
- }
6
- export type ResolverChangedEventEmitter = ModuleEventEmitter<'moduleResolverChanged', ModuleResolverChangedEventArgs>;
7
- //# sourceMappingURL=ResolverChanged.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolverChanged.d.ts","sourceRoot":"","sources":["../../../src/Events/ResolverChanged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,uBAAuB,EAAE,8BAA8B,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- import { ModuleEventEmitter } from '@xyo-network/module'
2
- import { ModuleResolver } from '@xyo-network/module-model'
3
-
4
- export interface ModuleResolverChangedEventArgs {
5
- resolver?: ModuleResolver
6
- }
7
-
8
- export type ResolverChangedEventEmitter = ModuleEventEmitter<'moduleResolverChanged', ModuleResolverChangedEventArgs>