@xyo-network/bridge-pub-sub 2.101.2 → 2.101.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  2. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  3. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  4. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  5. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  6. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  7. package/dist/browser/PubSubBridge.d.cts +8 -2
  8. package/dist/browser/PubSubBridge.d.cts.map +1 -1
  9. package/dist/browser/PubSubBridge.d.mts +8 -2
  10. package/dist/browser/PubSubBridge.d.mts.map +1 -1
  11. package/dist/browser/PubSubBridge.d.ts +8 -2
  12. package/dist/browser/PubSubBridge.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +91 -19
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +87 -15
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  18. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  19. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  20. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  21. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  22. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  23. package/dist/neutral/PubSubBridge.d.cts +8 -2
  24. package/dist/neutral/PubSubBridge.d.cts.map +1 -1
  25. package/dist/neutral/PubSubBridge.d.mts +8 -2
  26. package/dist/neutral/PubSubBridge.d.mts.map +1 -1
  27. package/dist/neutral/PubSubBridge.d.ts +8 -2
  28. package/dist/neutral/PubSubBridge.d.ts.map +1 -1
  29. package/dist/neutral/index.cjs +91 -19
  30. package/dist/neutral/index.cjs.map +1 -1
  31. package/dist/neutral/index.js +87 -15
  32. package/dist/neutral/index.js.map +1 -1
  33. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  34. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  35. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  36. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  37. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  38. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  39. package/dist/node/PubSubBridge.d.cts +8 -2
  40. package/dist/node/PubSubBridge.d.cts.map +1 -1
  41. package/dist/node/PubSubBridge.d.mts +8 -2
  42. package/dist/node/PubSubBridge.d.mts.map +1 -1
  43. package/dist/node/PubSubBridge.d.ts +8 -2
  44. package/dist/node/PubSubBridge.d.ts.map +1 -1
  45. package/dist/node/index.cjs +92 -19
  46. package/dist/node/index.cjs.map +1 -1
  47. package/dist/node/index.js +88 -15
  48. package/dist/node/index.js.map +1 -1
  49. package/package.json +20 -20
  50. package/src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts +50 -1
  51. package/src/PubSubBridge.ts +57 -3
  52. package/src/PubSubBridgeModuleResolver.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { Address } from '@xylabs/hex';
2
2
  import { AbstractBridge } from '@xyo-network/abstract-bridge';
3
3
  import { BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions } from '@xyo-network/bridge-model';
4
- import { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
4
+ import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
5
5
  import { Schema } from '@xyo-network/payload-model';
6
6
  import { LRUCache } from 'lru-cache';
7
7
  import { AsyncQueryBusClient, AsyncQueryBusHost } from './AsyncQueryBus';
@@ -19,7 +19,6 @@ export declare class PubSubBridge<TParams extends PubSubBridgeParams = PubSubBri
19
19
  private _busHost?;
20
20
  private _discoverRootsMutex;
21
21
  private _resolver?;
22
- private _roots?;
23
22
  get resolver(): PubSubBridgeModuleResolver;
24
23
  protected get moduleName(): string;
25
24
  connect(id: ModuleIdentifier, maxDepth?: number): Promise<Address | undefined>;
@@ -28,6 +27,13 @@ export declare class PubSubBridge<TParams extends PubSubBridgeParams = PubSubBri
28
27
  exposeHandler(address: Address, options?: BridgeExposeOptions | undefined): Promise<ModuleInstance[]>;
29
28
  exposedHandler(): Address[];
30
29
  getRoots(force?: boolean): Promise<ModuleInstance[]>;
30
+ /** @deprecated do not pass undefined. If trying to get all, pass '*' */
31
+ resolve(): Promise<ModuleInstance[]>;
32
+ resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
33
+ resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
34
+ resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
35
+ /** @deprecated use '*' if trying to resolve all */
36
+ resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
31
37
  startHandler(): Promise<boolean>;
32
38
  unexposeHandler(id: ModuleIdentifier, options?: BridgeUnexposeOptions | undefined): Promise<ModuleInstance[]>;
33
39
  protected busClient(): AsyncQueryBusClient<import("./AsyncQueryBus").AsyncQueryBusClientParams> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"PubSubBridge.d.ts","sourceRoot":"","sources":["../../src/PubSubBridge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EAKtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAmB,gBAAgB,EAAE,cAAc,EAA6C,MAAM,2BAA2B,CAAA;AAExI,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAIzE,qBACa,YAAY,CAAC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAE,YAAW,YAAY,CAAC,OAAO,CAAC;IACjJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqD;IACrG,gBAAyB,mBAAmB,EAAE,MAAM,CAA2B;IAE/E,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAK;IAC1C,SAAS,CAAC,0BAA0B,EAAE,MAAM,CAAK;IACjD,SAAS,CAAC,oCAAoC,EAAE,MAAM,CAAK;IAC3D,SAAS,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAK;IAC3C,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE/C,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAkB;IAEjC,IAAa,QAAQ,IAAI,0BAA0B,CAiBlD;IAED,SAAS,KAAK,UAAU,WAEvB;IAEK,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAazE,UAAU,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAS9D,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiBtG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAa3G,cAAc,IAAI,OAAO,EAAE;IAKrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsC3C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC,eAAe,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBnH,SAAS,CAAC,SAAS;IAWnB,SAAS,CAAC,OAAO;cAiBD,eAAe,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAkBnF,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS;CAI7D"}
1
+ {"version":3,"file":"PubSubBridge.d.ts","sourceRoot":"","sources":["../../src/PubSubBridge.ts"],"names":[],"mappings":"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"}
@@ -673,7 +673,10 @@ __name(_AsyncQueryBusModuleHost, "AsyncQueryBusModuleHost");
673
673
  var AsyncQueryBusModuleHost = _AsyncQueryBusModuleHost;
674
674
 
675
675
  // src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts
676
+ var import_assert4 = require("@xylabs/assert");
677
+ var import_hex = require("@xylabs/hex");
676
678
  var import_abstract_bridge = require("@xyo-network/abstract-bridge");
679
+ var import_module_model3 = require("@xyo-network/module-model");
677
680
  var _AsyncQueryBusModuleProxy = class _AsyncQueryBusModuleProxy extends import_abstract_bridge.AbstractModuleProxy {
678
681
  constructor(params) {
679
682
  _AsyncQueryBusModuleProxy.createCount = _AsyncQueryBusModuleProxy.createCount + 1;
@@ -685,6 +688,34 @@ var _AsyncQueryBusModuleProxy = class _AsyncQueryBusModuleProxy extends import_a
685
688
  async proxyQueryHandler(query, payloads) {
686
689
  return await this.params.busClient.send(this.address, query, payloads);
687
690
  }
691
+ async resolve(idOrFilter = "*", options = {}) {
692
+ const config = {
693
+ address: this.address,
694
+ dead: this.dead,
695
+ downResolver: this.downResolver,
696
+ logger: this.logger,
697
+ module: this,
698
+ transformers: this.moduleIdentifierTransformers,
699
+ upResolver: this.upResolver
700
+ };
701
+ if (idOrFilter === "*") {
702
+ return (await import_module_model3.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
703
+ }
704
+ switch (typeof idOrFilter) {
705
+ case "string": {
706
+ const parts = idOrFilter.split(":");
707
+ const first = (0, import_assert4.assertEx)(parts.shift(), () => "Missing first");
708
+ const address = (0, import_hex.isAddress)(first) ? first : this.childAddressByName(first);
709
+ return this.params.host.resolve(address);
710
+ }
711
+ case "object": {
712
+ return (await import_module_model3.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
713
+ }
714
+ default: {
715
+ return (await import_module_model3.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
716
+ }
717
+ }
718
+ }
688
719
  async startHandler() {
689
720
  return await super.startHandler();
690
721
  }
@@ -700,24 +731,25 @@ var PubSubBridgeSchema = "network.xyo.bridge.pubsub";
700
731
  var PubSubBridgeConfigSchema = `${PubSubBridgeSchema}.config`;
701
732
 
702
733
  // src/PubSubBridge.ts
703
- var import_assert5 = require("@xylabs/assert");
734
+ var import_assert6 = require("@xylabs/assert");
704
735
  var import_exists = require("@xylabs/exists");
705
736
  var import_forget2 = require("@xylabs/forget");
737
+ var import_hex3 = require("@xylabs/hex");
706
738
  var import_object3 = require("@xylabs/object");
707
739
  var import_abstract_bridge3 = require("@xyo-network/abstract-bridge");
708
740
  var import_address_payload_plugin = require("@xyo-network/address-payload-plugin");
709
- var import_module_model4 = require("@xyo-network/module-model");
741
+ var import_module_model5 = require("@xyo-network/module-model");
710
742
  var import_node_model = require("@xyo-network/node-model");
711
743
  var import_payload_model = require("@xyo-network/payload-model");
712
744
  var import_async_mutex2 = require("async-mutex");
713
745
 
714
746
  // src/PubSubBridgeModuleResolver.ts
715
- var import_assert4 = require("@xylabs/assert");
716
- var import_hex = require("@xylabs/hex");
747
+ var import_assert5 = require("@xylabs/assert");
748
+ var import_hex2 = require("@xylabs/hex");
717
749
  var import_abstract_bridge2 = require("@xyo-network/abstract-bridge");
718
750
  var import_account = require("@xyo-network/account");
719
751
  var import_config_payload_plugin = require("@xyo-network/config-payload-plugin");
720
- var import_module_model3 = require("@xyo-network/module-model");
752
+ var import_module_model4 = require("@xyo-network/module-model");
721
753
  var _PubSubBridgeModuleResolver = class _PubSubBridgeModuleResolver extends import_abstract_bridge2.AbstractBridgeModuleResolver {
722
754
  async resolveHandler(id, options) {
723
755
  var _a, _b;
@@ -727,7 +759,7 @@ var _PubSubBridgeModuleResolver = class _PubSubBridgeModuleResolver extends impo
727
759
  }
728
760
  const idParts = id.split(":");
729
761
  const firstPart = idParts.shift();
730
- (0, import_assert4.assertEx)((0, import_hex.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
762
+ (0, import_assert5.assertEx)((0, import_hex2.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
731
763
  const remainderParts = idParts.join(":");
732
764
  const account = import_account.Account.randomSync();
733
765
  const finalParams = {
@@ -735,9 +767,9 @@ var _PubSubBridgeModuleResolver = class _PubSubBridgeModuleResolver extends impo
735
767
  archiving: this.params.archiving,
736
768
  busClient: this.params.busClient,
737
769
  config: {
738
- schema: import_module_model3.ModuleConfigSchema
770
+ schema: import_module_model4.ModuleConfigSchema
739
771
  },
740
- host: this.params.bridge,
772
+ host: this,
741
773
  moduleAddress: firstPart,
742
774
  onQuerySendFinished: this.params.onQuerySendFinished,
743
775
  onQuerySendStarted: this.params.onQuerySendStarted
@@ -747,13 +779,13 @@ var _PubSubBridgeModuleResolver = class _PubSubBridgeModuleResolver extends impo
747
779
  const state = await proxy.state();
748
780
  if (state) {
749
781
  const configSchema = (_a = state.find((payload) => payload.schema === import_config_payload_plugin.ConfigSchema)) == null ? void 0 : _a.config;
750
- const config = (0, import_assert4.assertEx)(state.find((payload) => payload.schema === configSchema), () => "Unable to locate config");
782
+ const config = (0, import_assert5.assertEx)(state.find((payload) => payload.schema === configSchema), () => "Unable to locate config");
751
783
  proxy.setConfig(config);
752
784
  }
753
785
  }
754
786
  await ((_b = proxy.start) == null ? void 0 : _b.call(proxy));
755
787
  const wrapped = (0, import_abstract_bridge2.wrapModuleWithType)(proxy, account);
756
- const instance = (0, import_assert4.assertEx)((0, import_module_model3.asModuleInstance)(wrapped, {}), () => `Failed to asModuleInstance [${id}]`);
788
+ const instance = (0, import_assert5.assertEx)((0, import_module_model4.asModuleInstance)(wrapped, {}), () => `Failed to asModuleInstance [${id}]`);
757
789
  proxy.upResolver.add(instance);
758
790
  proxy.downResolver.add(instance);
759
791
  this.add(instance);
@@ -789,7 +821,6 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
789
821
  _busHost;
790
822
  _discoverRootsMutex = new import_async_mutex2.Mutex();
791
823
  _resolver;
792
- _roots;
793
824
  get resolver() {
794
825
  this._resolver = this._resolver ?? new PubSubBridgeModuleResolver({
795
826
  archiving: {
@@ -797,7 +828,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
797
828
  resolveArchivists: this.resolveArchivingArchivists.bind(this)
798
829
  },
799
830
  bridge: this,
800
- busClient: (0, import_assert5.assertEx)(this.busClient(), () => "busClient not configured"),
831
+ busClient: (0, import_assert6.assertEx)(this.busClient(), () => "busClient not configured"),
801
832
  onQuerySendFinished: (args) => {
802
833
  (0, import_forget2.forget)(this.emit("querySendFinished", {
803
834
  module: this,
@@ -819,7 +850,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
819
850
  return this.modName ?? moduleName;
820
851
  }
821
852
  async connect(id, maxDepth = 5) {
822
- const transformedId = (0, import_assert5.assertEx)(await import_module_model4.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
853
+ const transformedId = (0, import_assert6.assertEx)(await import_module_model5.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
823
854
  const existingInstance = await this.resolve(transformedId);
824
855
  if (existingInstance) {
825
856
  return existingInstance.address;
@@ -828,7 +859,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
828
859
  return await this.connectInstance(instance, maxDepth);
829
860
  }
830
861
  async disconnect(id) {
831
- const transformedId = (0, import_assert5.assertEx)(await import_module_model4.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
862
+ const transformedId = (0, import_assert6.assertEx)(await import_module_model5.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
832
863
  const instance = await this.resolve(transformedId);
833
864
  if (instance) {
834
865
  this.downResolver.remove(instance.address);
@@ -839,7 +870,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
839
870
  var _a, _b;
840
871
  const { maxDepth = 5 } = options ?? {};
841
872
  console.log(`exposeChild: ${mod.address} ${mod == null ? void 0 : mod.id} ${maxDepth}`);
842
- const host = (0, import_assert5.assertEx)(this.busHost(), () => "Not configured as a host");
873
+ const host = (0, import_assert6.assertEx)(this.busHost(), () => "Not configured as a host");
843
874
  host.expose(mod);
844
875
  const children = maxDepth > 0 ? await ((_a = mod.publicChildren) == null ? void 0 : _a.call(mod)) ?? [] : [];
845
876
  this.logger.log(`childrenToExpose [${mod.id}][${mod.address}]: ${(0, import_object3.toJsonString)(children.map((child) => child.id))}`);
@@ -857,7 +888,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
857
888
  }
858
889
  async exposeHandler(address, options) {
859
890
  const { required = true } = options ?? {};
860
- const mod = await (0, import_module_model4.resolveAddressToInstanceUp)(this, address);
891
+ const mod = await (0, import_module_model5.resolveAddressToInstanceUp)(this, address);
861
892
  console.log(`exposeHandler: ${address} ${mod == null ? void 0 : mod.id}`);
862
893
  if (required && !mod) {
863
894
  throw new Error(`Unable to find required module: ${address}`);
@@ -880,7 +911,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
880
911
  const rootAddresses = (await Promise.all((this.config.roots ?? []).map((id) => {
881
912
  var _a;
882
913
  try {
883
- return import_module_model4.ResolveHelper.transformModuleIdentifier(id);
914
+ return import_module_model5.ResolveHelper.transformModuleIdentifier(id);
884
915
  } catch (ex) {
885
916
  (_a = this.logger) == null ? void 0 : _a.warn("Unable to transform module identifier:", id, ex);
886
917
  return;
@@ -903,6 +934,48 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
903
934
  return this._roots;
904
935
  });
905
936
  }
937
+ // eslint-disable-next-line complexity
938
+ async resolve(idOrFilter = "*", options = {}) {
939
+ var _a;
940
+ const roots = this._roots ?? [];
941
+ const workingSet = options.direction === "up" ? [
942
+ this
943
+ ] : [
944
+ ...roots,
945
+ this
946
+ ];
947
+ if (idOrFilter === "*") {
948
+ const remainingDepth = (options.maxDepth ?? 1) - 1;
949
+ return remainingDepth <= 0 ? workingSet : [
950
+ ...workingSet,
951
+ ...(await Promise.all(roots.map((mod) => mod.resolve("*", {
952
+ ...options,
953
+ maxDepth: remainingDepth
954
+ })))).flat()
955
+ ];
956
+ }
957
+ switch (typeof idOrFilter) {
958
+ case "string": {
959
+ const parts = idOrFilter.split(":");
960
+ const first = (0, import_assert6.assertEx)(parts.shift(), () => "Missing first part");
961
+ const firstInstance = (0, import_hex3.isAddress)(first) ? await (0, import_module_model5.resolveAddressToInstance)(this, first, void 0, [], options.direction) : (_a = this._roots) == null ? void 0 : _a.find((mod) => mod.id === first);
962
+ return parts.length === 0 ? firstInstance : firstInstance == null ? void 0 : firstInstance.resolve(parts.join(":"), options);
963
+ }
964
+ case "object": {
965
+ const results = [];
966
+ if ((0, import_module_model5.isAddressModuleFilter)(idOrFilter)) {
967
+ for (const mod of workingSet) {
968
+ if (mod.modName && idOrFilter.address.includes(mod.address))
969
+ results.push(mod);
970
+ }
971
+ }
972
+ return results;
973
+ }
974
+ default: {
975
+ return;
976
+ }
977
+ }
978
+ }
906
979
  async startHandler() {
907
980
  var _a;
908
981
  (_a = this.busHost()) == null ? void 0 : _a.start();
@@ -911,7 +984,7 @@ var _PubSubBridge = class _PubSubBridge extends import_abstract_bridge3.Abstract
911
984
  async unexposeHandler(id, options) {
912
985
  var _a;
913
986
  const { maxDepth = 2, required = true } = options ?? {};
914
- const host = (0, import_assert5.assertEx)(this.busHost(), () => "Not configured as a host");
987
+ const host = (0, import_assert6.assertEx)(this.busHost(), () => "Not configured as a host");
915
988
  const module2 = await host.unexpose(id, required);
916
989
  if (module2) {
917
990
  const children = maxDepth > 0 ? await ((_a = module2.publicChildren) == null ? void 0 : _a.call(module2)) ?? [] : [];
@@ -988,7 +1061,7 @@ __publicField(_PubSubBridge, "configSchemas", [
988
1061
  __publicField(_PubSubBridge, "defaultConfigSchema", PubSubBridgeConfigSchema);
989
1062
  var PubSubBridge = _PubSubBridge;
990
1063
  PubSubBridge = _ts_decorate([
991
- (0, import_module_model4.creatableModule)()
1064
+ (0, import_module_model5.creatableModule)()
992
1065
  ], PubSubBridge);
993
1066
  // Annotate the CommonJS export names for ESM import in node:
994
1067
  0 && (module.exports = {