@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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"}
@@ -635,7 +635,10 @@ var AsyncQueryBusModuleHost = class extends AbstractModuleHost {
635
635
  };
636
636
 
637
637
  // src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts
638
+ var import_assert4 = require("@xylabs/assert");
639
+ var import_hex = require("@xylabs/hex");
638
640
  var import_abstract_bridge = require("@xyo-network/abstract-bridge");
641
+ var import_module_model3 = require("@xyo-network/module-model");
639
642
  var AsyncQueryBusModuleProxy = class _AsyncQueryBusModuleProxy extends import_abstract_bridge.AbstractModuleProxy {
640
643
  static {
641
644
  __name(this, "AsyncQueryBusModuleProxy");
@@ -651,6 +654,34 @@ var AsyncQueryBusModuleProxy = class _AsyncQueryBusModuleProxy extends import_ab
651
654
  async proxyQueryHandler(query, payloads) {
652
655
  return await this.params.busClient.send(this.address, query, payloads);
653
656
  }
657
+ async resolve(idOrFilter = "*", options = {}) {
658
+ const config = {
659
+ address: this.address,
660
+ dead: this.dead,
661
+ downResolver: this.downResolver,
662
+ logger: this.logger,
663
+ module: this,
664
+ transformers: this.moduleIdentifierTransformers,
665
+ upResolver: this.upResolver
666
+ };
667
+ if (idOrFilter === "*") {
668
+ return (await import_module_model3.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
669
+ }
670
+ switch (typeof idOrFilter) {
671
+ case "string": {
672
+ const parts = idOrFilter.split(":");
673
+ const first = (0, import_assert4.assertEx)(parts.shift(), () => "Missing first");
674
+ const address = (0, import_hex.isAddress)(first) ? first : this.childAddressByName(first);
675
+ return this.params.host.resolve(address);
676
+ }
677
+ case "object": {
678
+ return (await import_module_model3.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
679
+ }
680
+ default: {
681
+ return (await import_module_model3.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
682
+ }
683
+ }
684
+ }
654
685
  async startHandler() {
655
686
  return await super.startHandler();
656
687
  }
@@ -663,24 +694,25 @@ var PubSubBridgeSchema = "network.xyo.bridge.pubsub";
663
694
  var PubSubBridgeConfigSchema = `${PubSubBridgeSchema}.config`;
664
695
 
665
696
  // src/PubSubBridge.ts
666
- var import_assert5 = require("@xylabs/assert");
697
+ var import_assert6 = require("@xylabs/assert");
667
698
  var import_exists = require("@xylabs/exists");
668
699
  var import_forget2 = require("@xylabs/forget");
700
+ var import_hex3 = require("@xylabs/hex");
669
701
  var import_object3 = require("@xylabs/object");
670
702
  var import_abstract_bridge3 = require("@xyo-network/abstract-bridge");
671
703
  var import_address_payload_plugin = require("@xyo-network/address-payload-plugin");
672
- var import_module_model4 = require("@xyo-network/module-model");
704
+ var import_module_model5 = require("@xyo-network/module-model");
673
705
  var import_node_model = require("@xyo-network/node-model");
674
706
  var import_payload_model = require("@xyo-network/payload-model");
675
707
  var import_async_mutex2 = require("async-mutex");
676
708
 
677
709
  // src/PubSubBridgeModuleResolver.ts
678
- var import_assert4 = require("@xylabs/assert");
679
- var import_hex = require("@xylabs/hex");
710
+ var import_assert5 = require("@xylabs/assert");
711
+ var import_hex2 = require("@xylabs/hex");
680
712
  var import_abstract_bridge2 = require("@xyo-network/abstract-bridge");
681
713
  var import_account = require("@xyo-network/account");
682
714
  var import_config_payload_plugin = require("@xyo-network/config-payload-plugin");
683
- var import_module_model3 = require("@xyo-network/module-model");
715
+ var import_module_model4 = require("@xyo-network/module-model");
684
716
  var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractBridgeModuleResolver {
685
717
  static {
686
718
  __name(this, "PubSubBridgeModuleResolver");
@@ -692,7 +724,7 @@ var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractB
692
724
  }
693
725
  const idParts = id.split(":");
694
726
  const firstPart = idParts.shift();
695
- (0, import_assert4.assertEx)((0, import_hex.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
727
+ (0, import_assert5.assertEx)((0, import_hex2.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
696
728
  const remainderParts = idParts.join(":");
697
729
  const account = import_account.Account.randomSync();
698
730
  const finalParams = {
@@ -700,9 +732,9 @@ var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractB
700
732
  archiving: this.params.archiving,
701
733
  busClient: this.params.busClient,
702
734
  config: {
703
- schema: import_module_model3.ModuleConfigSchema
735
+ schema: import_module_model4.ModuleConfigSchema
704
736
  },
705
- host: this.params.bridge,
737
+ host: this,
706
738
  moduleAddress: firstPart,
707
739
  onQuerySendFinished: this.params.onQuerySendFinished,
708
740
  onQuerySendStarted: this.params.onQuerySendStarted
@@ -712,13 +744,13 @@ var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractB
712
744
  const state = await proxy.state();
713
745
  if (state) {
714
746
  const configSchema = state.find((payload) => payload.schema === import_config_payload_plugin.ConfigSchema)?.config;
715
- const config = (0, import_assert4.assertEx)(state.find((payload) => payload.schema === configSchema), () => "Unable to locate config");
747
+ const config = (0, import_assert5.assertEx)(state.find((payload) => payload.schema === configSchema), () => "Unable to locate config");
716
748
  proxy.setConfig(config);
717
749
  }
718
750
  }
719
751
  await proxy.start?.();
720
752
  const wrapped = (0, import_abstract_bridge2.wrapModuleWithType)(proxy, account);
721
- const instance = (0, import_assert4.assertEx)((0, import_module_model3.asModuleInstance)(wrapped, {}), () => `Failed to asModuleInstance [${id}]`);
753
+ const instance = (0, import_assert5.assertEx)((0, import_module_model4.asModuleInstance)(wrapped, {}), () => `Failed to asModuleInstance [${id}]`);
722
754
  proxy.upResolver.add(instance);
723
755
  proxy.downResolver.add(instance);
724
756
  this.add(instance);
@@ -760,7 +792,6 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
760
792
  _busHost;
761
793
  _discoverRootsMutex = new import_async_mutex2.Mutex();
762
794
  _resolver;
763
- _roots;
764
795
  get resolver() {
765
796
  this._resolver = this._resolver ?? new PubSubBridgeModuleResolver({
766
797
  archiving: {
@@ -768,7 +799,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
768
799
  resolveArchivists: this.resolveArchivingArchivists.bind(this)
769
800
  },
770
801
  bridge: this,
771
- busClient: (0, import_assert5.assertEx)(this.busClient(), () => "busClient not configured"),
802
+ busClient: (0, import_assert6.assertEx)(this.busClient(), () => "busClient not configured"),
772
803
  onQuerySendFinished: (args) => {
773
804
  (0, import_forget2.forget)(this.emit("querySendFinished", {
774
805
  module: this,
@@ -790,7 +821,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
790
821
  return this.modName ?? moduleName;
791
822
  }
792
823
  async connect(id, maxDepth = 5) {
793
- const transformedId = (0, import_assert5.assertEx)(await import_module_model4.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
824
+ const transformedId = (0, import_assert6.assertEx)(await import_module_model5.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
794
825
  const existingInstance = await this.resolve(transformedId);
795
826
  if (existingInstance) {
796
827
  return existingInstance.address;
@@ -799,7 +830,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
799
830
  return await this.connectInstance(instance, maxDepth);
800
831
  }
801
832
  async disconnect(id) {
802
- const transformedId = (0, import_assert5.assertEx)(await import_module_model4.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
833
+ const transformedId = (0, import_assert6.assertEx)(await import_module_model5.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
803
834
  const instance = await this.resolve(transformedId);
804
835
  if (instance) {
805
836
  this.downResolver.remove(instance.address);
@@ -809,7 +840,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
809
840
  async exposeChild(mod, options) {
810
841
  const { maxDepth = 5 } = options ?? {};
811
842
  console.log(`exposeChild: ${mod.address} ${mod?.id} ${maxDepth}`);
812
- const host = (0, import_assert5.assertEx)(this.busHost(), () => "Not configured as a host");
843
+ const host = (0, import_assert6.assertEx)(this.busHost(), () => "Not configured as a host");
813
844
  host.expose(mod);
814
845
  const children = maxDepth > 0 ? await mod.publicChildren?.() ?? [] : [];
815
846
  this.logger.log(`childrenToExpose [${mod.id}][${mod.address}]: ${(0, import_object3.toJsonString)(children.map((child) => child.id))}`);
@@ -827,7 +858,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
827
858
  }
828
859
  async exposeHandler(address, options) {
829
860
  const { required = true } = options ?? {};
830
- const mod = await (0, import_module_model4.resolveAddressToInstanceUp)(this, address);
861
+ const mod = await (0, import_module_model5.resolveAddressToInstanceUp)(this, address);
831
862
  console.log(`exposeHandler: ${address} ${mod?.id}`);
832
863
  if (required && !mod) {
833
864
  throw new Error(`Unable to find required module: ${address}`);
@@ -848,7 +879,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
848
879
  if (this._roots === void 0 || force) {
849
880
  const rootAddresses = (await Promise.all((this.config.roots ?? []).map((id) => {
850
881
  try {
851
- return import_module_model4.ResolveHelper.transformModuleIdentifier(id);
882
+ return import_module_model5.ResolveHelper.transformModuleIdentifier(id);
852
883
  } catch (ex) {
853
884
  this.logger?.warn("Unable to transform module identifier:", id, ex);
854
885
  return;
@@ -870,13 +901,54 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
870
901
  return this._roots;
871
902
  });
872
903
  }
904
+ // eslint-disable-next-line complexity
905
+ async resolve(idOrFilter = "*", options = {}) {
906
+ const roots = this._roots ?? [];
907
+ const workingSet = options.direction === "up" ? [
908
+ this
909
+ ] : [
910
+ ...roots,
911
+ this
912
+ ];
913
+ if (idOrFilter === "*") {
914
+ const remainingDepth = (options.maxDepth ?? 1) - 1;
915
+ return remainingDepth <= 0 ? workingSet : [
916
+ ...workingSet,
917
+ ...(await Promise.all(roots.map((mod) => mod.resolve("*", {
918
+ ...options,
919
+ maxDepth: remainingDepth
920
+ })))).flat()
921
+ ];
922
+ }
923
+ switch (typeof idOrFilter) {
924
+ case "string": {
925
+ const parts = idOrFilter.split(":");
926
+ const first = (0, import_assert6.assertEx)(parts.shift(), () => "Missing first part");
927
+ const firstInstance = (0, import_hex3.isAddress)(first) ? await (0, import_module_model5.resolveAddressToInstance)(this, first, void 0, [], options.direction) : this._roots?.find((mod) => mod.id === first);
928
+ return parts.length === 0 ? firstInstance : firstInstance?.resolve(parts.join(":"), options);
929
+ }
930
+ case "object": {
931
+ const results = [];
932
+ if ((0, import_module_model5.isAddressModuleFilter)(idOrFilter)) {
933
+ for (const mod of workingSet) {
934
+ if (mod.modName && idOrFilter.address.includes(mod.address))
935
+ results.push(mod);
936
+ }
937
+ }
938
+ return results;
939
+ }
940
+ default: {
941
+ return;
942
+ }
943
+ }
944
+ }
873
945
  async startHandler() {
874
946
  this.busHost()?.start();
875
947
  return await super.startHandler();
876
948
  }
877
949
  async unexposeHandler(id, options) {
878
950
  const { maxDepth = 2, required = true } = options ?? {};
879
- const host = (0, import_assert5.assertEx)(this.busHost(), () => "Not configured as a host");
951
+ const host = (0, import_assert6.assertEx)(this.busHost(), () => "Not configured as a host");
880
952
  const module2 = await host.unexpose(id, required);
881
953
  if (module2) {
882
954
  const children = maxDepth > 0 ? await module2.publicChildren?.() ?? [] : [];
@@ -944,6 +1016,6 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
944
1016
  }
945
1017
  };
946
1018
  PubSubBridge = _ts_decorate([
947
- (0, import_module_model4.creatableModule)()
1019
+ (0, import_module_model5.creatableModule)()
948
1020
  ], PubSubBridge);
949
1021
  //# sourceMappingURL=index.cjs.map