@xyo-network/node-abstract 2.93.9 → 2.94.0

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.
@@ -23,7 +23,7 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
23
23
  resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
24
24
  protected attachedPrivateModules(maxDepth?: number): Promise<ModuleInstance[]>;
25
25
  protected attachedPublicModules(maxDepth?: number): Promise<ModuleInstance[]>;
26
- protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
26
+ protected generateConfigAndAddress(maxDepth?: number): Promise<Payload[]>;
27
27
  protected manifestHandler(maxDepth?: number, ignoreAddresses?: Address[]): Promise<ModuleManifestPayload>;
28
28
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
29
29
  private resolveAll;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY1D,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAuB9F,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAoBV,cAAc;IAsB5B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -23,7 +23,7 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
23
23
  resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
24
24
  protected attachedPrivateModules(maxDepth?: number): Promise<ModuleInstance[]>;
25
25
  protected attachedPublicModules(maxDepth?: number): Promise<ModuleInstance[]>;
26
- protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
26
+ protected generateConfigAndAddress(maxDepth?: number): Promise<Payload[]>;
27
27
  protected manifestHandler(maxDepth?: number, ignoreAddresses?: Address[]): Promise<ModuleManifestPayload>;
28
28
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
29
29
  private resolveAll;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY1D,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAuB9F,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAoBV,cAAc;IAsB5B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -23,7 +23,7 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
23
23
  resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
24
24
  protected attachedPrivateModules(maxDepth?: number): Promise<ModuleInstance[]>;
25
25
  protected attachedPublicModules(maxDepth?: number): Promise<ModuleInstance[]>;
26
- protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
26
+ protected generateConfigAndAddress(maxDepth?: number): Promise<Payload[]>;
27
27
  protected manifestHandler(maxDepth?: number, ignoreAddresses?: Address[]): Promise<ModuleManifestPayload>;
28
28
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
29
29
  private resolveAll;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAYjD,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAuB9F,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAoBV,cAAc;IAsB5B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOrB,QAAQ,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItG,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAChH,yEAAyE;IAC1D,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAiDvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY1D,eAAe,CAAC,QAAQ,SAAI,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAuB9F,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAoBV,cAAc;IAsB5B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -128,7 +128,7 @@ var AbstractNode = class extends import_module_abstract.AbstractModuleInstance {
128
128
  visibility: "public"
129
129
  }) ?? [])).filter((module2) => module2.address !== this.address);
130
130
  }
131
- async discoverHandler(maxDepth = 5) {
131
+ async generateConfigAndAddress(maxDepth = 5) {
132
132
  const childMods = await this.attachedPublicModules(maxDepth);
133
133
  const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
134
134
  schema: import_address_payload_plugin.AddressSchema
@@ -137,7 +137,7 @@ var AbstractNode = class extends import_module_abstract.AbstractModuleInstance {
137
137
  name: mod.config.name
138
138
  }).build()));
139
139
  return [
140
- ...await super.discoverHandler(maxDepth),
140
+ ...await super.generateConfigAndAddress(maxDepth),
141
141
  ...childModAddresses
142
142
  ];
143
143
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","generateConfigAndAddress","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
@@ -104,7 +104,7 @@ var AbstractNode = class extends AbstractModuleInstance {
104
104
  visibility: "public"
105
105
  }) ?? [])).filter((module) => module.address !== this.address);
106
106
  }
107
- async discoverHandler(maxDepth = 5) {
107
+ async generateConfigAndAddress(maxDepth = 5) {
108
108
  const childMods = await this.attachedPublicModules(maxDepth);
109
109
  const childModAddresses = await Promise.all(childMods.map((mod) => new PayloadBuilder({
110
110
  schema: AddressSchema
@@ -113,7 +113,7 @@ var AbstractNode = class extends AbstractModuleInstance {
113
113
  name: mod.config.name
114
114
  }).build()));
115
115
  return [
116
- ...await super.discoverHandler(maxDepth),
116
+ ...await super.generateConfigAndAddress(maxDepth),
117
117
  ...childModAddresses
118
118
  ];
119
119
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
1
+ {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","generateConfigAndAddress","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined"]}
@@ -23,7 +23,7 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
23
23
  resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
24
24
  protected attachedPrivateModules(maxDepth?: number): Promise<ModuleInstance[]>;
25
25
  protected attachedPublicModules(maxDepth?: number): Promise<ModuleInstance[]>;
26
- protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
26
+ protected generateConfigAndAddress(maxDepth?: number): Promise<Payload[]>;
27
27
  protected manifestHandler(maxDepth?: number, ignoreAddresses?: Address[]): Promise<ModuleManifestPayload>;
28
28
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
29
29
  private resolveAll;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
23
23
  resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
24
24
  protected attachedPrivateModules(maxDepth?: number): Promise<ModuleInstance[]>;
25
25
  protected attachedPublicModules(maxDepth?: number): Promise<ModuleInstance[]>;
26
- protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
26
+ protected generateConfigAndAddress(maxDepth?: number): Promise<Payload[]>;
27
27
  protected manifestHandler(maxDepth?: number, ignoreAddresses?: Address[]): Promise<ModuleManifestPayload>;
28
28
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
29
29
  private resolveAll;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
23
23
  resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
24
24
  protected attachedPrivateModules(maxDepth?: number): Promise<ModuleInstance[]>;
25
25
  protected attachedPublicModules(maxDepth?: number): Promise<ModuleInstance[]>;
26
- protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
26
+ protected generateConfigAndAddress(maxDepth?: number): Promise<Payload[]>;
27
27
  protected manifestHandler(maxDepth?: number, ignoreAddresses?: Address[]): Promise<ModuleManifestPayload>;
28
28
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
29
29
  private resolveAll;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -127,7 +127,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
127
127
  visibility: "public"
128
128
  }) ?? [])).filter((module2) => module2.address !== this.address);
129
129
  }
130
- async discoverHandler(maxDepth = 5) {
130
+ async generateConfigAndAddress(maxDepth = 5) {
131
131
  const childMods = await this.attachedPublicModules(maxDepth);
132
132
  const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
133
133
  schema: import_address_payload_plugin.AddressSchema
@@ -136,7 +136,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
136
136
  name: mod.config.name
137
137
  }).build()));
138
138
  return [
139
- ...await super.discoverHandler(maxDepth),
139
+ ...await super.generateConfigAndAddress(maxDepth),
140
140
  ...childModAddresses
141
141
  ];
142
142
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","generateConfigAndAddress","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
@@ -103,7 +103,7 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
103
103
  visibility: "public"
104
104
  }) ?? [])).filter((module) => module.address !== this.address);
105
105
  }
106
- async discoverHandler(maxDepth = 5) {
106
+ async generateConfigAndAddress(maxDepth = 5) {
107
107
  const childMods = await this.attachedPublicModules(maxDepth);
108
108
  const childModAddresses = await Promise.all(childMods.map((mod) => new PayloadBuilder({
109
109
  schema: AddressSchema
@@ -112,7 +112,7 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
112
112
  name: mod.config.name
113
113
  }).build()));
114
114
  return [
115
- ...await super.discoverHandler(maxDepth),
115
+ ...await super.generateConfigAndAddress(maxDepth),
116
116
  ...childModAddresses
117
117
  ];
118
118
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async discoverHandler(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","discoverHandler","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
1
+ {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(\n idOrFilter: ModuleFilter | ModuleIdentifier = '*',\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const { visibility = 'all' } = options ?? {}\n const mutatedOptions = { ...options, visibility }\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (idOrFilter === '*') {\n switch (options?.visibility) {\n case 'private': {\n return (await this.resolvePrivate('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n case 'all': {\n return (await this.resolveAll('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n default: {\n return (await super.resolve('*', mutatedOptions)).filter((mod) => mod.address !== this.address)\n }\n }\n }\n if (typeof idOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(idOrFilter, mutatedOptions)\n }\n case 'private': {\n return await this.resolvePrivate(idOrFilter, mutatedOptions)\n }\n default: {\n return await super.resolve(idOrFilter, mutatedOptions)\n }\n }\n }\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.privateResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 5): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1, visibility: 'public' })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(idOrFilter, options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n private async resolvePrivate(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n if (idOrFilter === '*') {\n return down ? await this.privateResolver.resolve(idOrFilter) : []\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(idOrFilter) : undefined\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolve","idOrFilter","options","visibility","mutatedOptions","resolvePrivate","filter","mod","resolveAll","privateResolver","downResolver","generateConfigAndAddress","childMods","childModAddresses","Promise","all","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","direction","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","undefined","configSchemas","NodeConfigSchema"]}
package/package.json CHANGED
@@ -13,15 +13,15 @@
13
13
  "@xylabs/assert": "^3.0.24",
14
14
  "@xylabs/hex": "^3.0.24",
15
15
  "@xylabs/promise": "^3.0.24",
16
- "@xyo-network/address-payload-plugin": "~2.93.9",
17
- "@xyo-network/boundwitness-model": "~2.93.9",
18
- "@xyo-network/boundwitness-wrapper": "~2.93.9",
19
- "@xyo-network/manifest-model": "~2.93.9",
20
- "@xyo-network/module-abstract": "~2.93.9",
21
- "@xyo-network/module-model": "~2.93.9",
22
- "@xyo-network/node-model": "~2.93.9",
23
- "@xyo-network/payload-builder": "~2.93.9",
24
- "@xyo-network/payload-model": "~2.93.9"
16
+ "@xyo-network/address-payload-plugin": "~2.94.0",
17
+ "@xyo-network/boundwitness-model": "~2.94.0",
18
+ "@xyo-network/boundwitness-wrapper": "~2.94.0",
19
+ "@xyo-network/manifest-model": "~2.94.0",
20
+ "@xyo-network/module-abstract": "~2.94.0",
21
+ "@xyo-network/module-model": "~2.94.0",
22
+ "@xyo-network/node-model": "~2.94.0",
23
+ "@xyo-network/payload-builder": "~2.94.0",
24
+ "@xyo-network/payload-model": "~2.94.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@xylabs/ts-scripts-yarn3": "^3.5.2",
@@ -67,6 +67,6 @@
67
67
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
68
68
  },
69
69
  "sideEffects": false,
70
- "version": "2.93.9",
70
+ "version": "2.94.0",
71
71
  "type": "module"
72
72
  }
@@ -129,7 +129,7 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
129
129
  return (await (this.downResolver.resolve('*', { maxDepth, visibility: 'public' }) ?? [])).filter((module) => module.address !== this.address)
130
130
  }
131
131
 
132
- protected override async discoverHandler(maxDepth = 5): Promise<Payload[]> {
132
+ protected override async generateConfigAndAddress(maxDepth = 5): Promise<Payload[]> {
133
133
  const childMods = await this.attachedPublicModules(maxDepth)
134
134
  //console.log(`childMods: ${toJsonString(childMods)}`)
135
135
  const childModAddresses = await Promise.all(
@@ -138,7 +138,7 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
138
138
  ),
139
139
  )
140
140
 
141
- return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]
141
+ return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]
142
142
  }
143
143
 
144
144
  protected override async manifestHandler(maxDepth = 5, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {