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

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 (70) 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/PubSubBridgeModuleResolver.d.cts +13 -0
  14. package/dist/browser/PubSubBridgeModuleResolver.d.cts.map +1 -1
  15. package/dist/browser/PubSubBridgeModuleResolver.d.mts +13 -0
  16. package/dist/browser/PubSubBridgeModuleResolver.d.mts.map +1 -1
  17. package/dist/browser/PubSubBridgeModuleResolver.d.ts +13 -0
  18. package/dist/browser/PubSubBridgeModuleResolver.d.ts.map +1 -1
  19. package/dist/browser/index.cjs +106 -20
  20. package/dist/browser/index.cjs.map +1 -1
  21. package/dist/browser/index.js +102 -16
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  24. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  25. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  26. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  27. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  28. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  29. package/dist/neutral/PubSubBridge.d.cts +8 -2
  30. package/dist/neutral/PubSubBridge.d.cts.map +1 -1
  31. package/dist/neutral/PubSubBridge.d.mts +8 -2
  32. package/dist/neutral/PubSubBridge.d.mts.map +1 -1
  33. package/dist/neutral/PubSubBridge.d.ts +8 -2
  34. package/dist/neutral/PubSubBridge.d.ts.map +1 -1
  35. package/dist/neutral/PubSubBridgeModuleResolver.d.cts +13 -0
  36. package/dist/neutral/PubSubBridgeModuleResolver.d.cts.map +1 -1
  37. package/dist/neutral/PubSubBridgeModuleResolver.d.mts +13 -0
  38. package/dist/neutral/PubSubBridgeModuleResolver.d.mts.map +1 -1
  39. package/dist/neutral/PubSubBridgeModuleResolver.d.ts +13 -0
  40. package/dist/neutral/PubSubBridgeModuleResolver.d.ts.map +1 -1
  41. package/dist/neutral/index.cjs +106 -20
  42. package/dist/neutral/index.cjs.map +1 -1
  43. package/dist/neutral/index.js +102 -16
  44. package/dist/neutral/index.js.map +1 -1
  45. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  46. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  47. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  48. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  49. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  50. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  51. package/dist/node/PubSubBridge.d.cts +8 -2
  52. package/dist/node/PubSubBridge.d.cts.map +1 -1
  53. package/dist/node/PubSubBridge.d.mts +8 -2
  54. package/dist/node/PubSubBridge.d.mts.map +1 -1
  55. package/dist/node/PubSubBridge.d.ts +8 -2
  56. package/dist/node/PubSubBridge.d.ts.map +1 -1
  57. package/dist/node/PubSubBridgeModuleResolver.d.cts +13 -0
  58. package/dist/node/PubSubBridgeModuleResolver.d.cts.map +1 -1
  59. package/dist/node/PubSubBridgeModuleResolver.d.mts +13 -0
  60. package/dist/node/PubSubBridgeModuleResolver.d.mts.map +1 -1
  61. package/dist/node/PubSubBridgeModuleResolver.d.ts +13 -0
  62. package/dist/node/PubSubBridgeModuleResolver.d.ts.map +1 -1
  63. package/dist/node/index.cjs +107 -20
  64. package/dist/node/index.cjs.map +1 -1
  65. package/dist/node/index.js +103 -16
  66. package/dist/node/index.js.map +1 -1
  67. package/package.json +20 -20
  68. package/src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts +50 -1
  69. package/src/PubSubBridge.ts +57 -3
  70. package/src/PubSubBridgeModuleResolver.ts +10 -2
@@ -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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"}
@@ -1,10 +1,23 @@
1
1
  import { AbstractBridgeModuleResolver, BridgeModuleResolverParams } from '@xyo-network/abstract-bridge';
2
2
  import { ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
3
+ import { LRUCache } from 'lru-cache';
3
4
  import { AsyncQueryBusClient } from './AsyncQueryBus';
4
5
  export interface PubSubBridgeModuleResolverParams extends BridgeModuleResolverParams {
5
6
  busClient: AsyncQueryBusClient;
6
7
  }
7
8
  export declare class PubSubBridgeModuleResolver extends AbstractBridgeModuleResolver<PubSubBridgeModuleResolverParams> {
9
+ protected _resolvedCache: LRUCache<Lowercase<string>, ModuleInstance<import("@xylabs/object").BaseParamsFields & {
10
+ account?: import("@xyo-network/account").AccountInstance | "random" | undefined;
11
+ addToResolvers?: boolean | undefined;
12
+ allowNameResolution?: boolean | undefined;
13
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
14
+ schema: "network.xyo.module.config";
15
+ }, "schema"> & {
16
+ schema: string;
17
+ };
18
+ ephemeralQueryAccountEnabled?: boolean | undefined;
19
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
20
+ }, import("@xyo-network/module-model").ModuleEventData<object>>, unknown>;
8
21
  resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T[]>;
9
22
  }
10
23
  //# sourceMappingURL=PubSubBridgeModuleResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PubSubBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/PubSubBridgeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAG3H,OAAO,EAAsD,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAErJ,OAAO,EAAE,mBAAmB,EAA4D,MAAM,iBAAiB,CAAA;AAE/G,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,SAAS,EAAE,mBAAmB,CAAA;CAC/B;AAED,qBAAa,0BAA2B,SAAQ,4BAA4B,CAAC,gCAAgC,CAAC;IAC7F,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAyC/I"}
1
+ {"version":3,"file":"PubSubBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/PubSubBridgeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAG3H,OAAO,EAAsD,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACrJ,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAA4D,MAAM,iBAAiB,CAAA;AAE/G,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,SAAS,EAAE,mBAAmB,CAAA;CAC/B;AAED,qBAAa,0BAA2B,SAAQ,4BAA4B,CAAC,gCAAgC,CAAC;IAC5G,SAAS,CAAC,cAAc;;;;;;;;;;;8EAAuD;IAEhE,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CA8C/I"}
@@ -1,10 +1,23 @@
1
1
  import { AbstractBridgeModuleResolver, BridgeModuleResolverParams } from '@xyo-network/abstract-bridge';
2
2
  import { ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
3
+ import { LRUCache } from 'lru-cache';
3
4
  import { AsyncQueryBusClient } from './AsyncQueryBus';
4
5
  export interface PubSubBridgeModuleResolverParams extends BridgeModuleResolverParams {
5
6
  busClient: AsyncQueryBusClient;
6
7
  }
7
8
  export declare class PubSubBridgeModuleResolver extends AbstractBridgeModuleResolver<PubSubBridgeModuleResolverParams> {
9
+ protected _resolvedCache: LRUCache<Lowercase<string>, ModuleInstance<import("@xylabs/object").BaseParamsFields & {
10
+ account?: import("@xyo-network/account").AccountInstance | "random" | undefined;
11
+ addToResolvers?: boolean | undefined;
12
+ allowNameResolution?: boolean | undefined;
13
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
14
+ schema: "network.xyo.module.config";
15
+ }, "schema"> & {
16
+ schema: string;
17
+ };
18
+ ephemeralQueryAccountEnabled?: boolean | undefined;
19
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
20
+ }, import("@xyo-network/module-model").ModuleEventData<object>>, unknown>;
8
21
  resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T[]>;
9
22
  }
10
23
  //# sourceMappingURL=PubSubBridgeModuleResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PubSubBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/PubSubBridgeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAG3H,OAAO,EAAsD,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAErJ,OAAO,EAAE,mBAAmB,EAA4D,MAAM,iBAAiB,CAAA;AAE/G,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,SAAS,EAAE,mBAAmB,CAAA;CAC/B;AAED,qBAAa,0BAA2B,SAAQ,4BAA4B,CAAC,gCAAgC,CAAC;IAC7F,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAyC/I"}
1
+ {"version":3,"file":"PubSubBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/PubSubBridgeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAG3H,OAAO,EAAsD,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACrJ,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAA4D,MAAM,iBAAiB,CAAA;AAE/G,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,SAAS,EAAE,mBAAmB,CAAA;CAC/B;AAED,qBAAa,0BAA2B,SAAQ,4BAA4B,CAAC,gCAAgC,CAAC;IAC5G,SAAS,CAAC,cAAc;;;;;;;;;;;8EAAuD;IAEhE,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CA8C/I"}
@@ -1,10 +1,23 @@
1
1
  import { AbstractBridgeModuleResolver, BridgeModuleResolverParams } from '@xyo-network/abstract-bridge';
2
2
  import { ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
3
+ import { LRUCache } from 'lru-cache';
3
4
  import { AsyncQueryBusClient } from './AsyncQueryBus';
4
5
  export interface PubSubBridgeModuleResolverParams extends BridgeModuleResolverParams {
5
6
  busClient: AsyncQueryBusClient;
6
7
  }
7
8
  export declare class PubSubBridgeModuleResolver extends AbstractBridgeModuleResolver<PubSubBridgeModuleResolverParams> {
9
+ protected _resolvedCache: LRUCache<Lowercase<string>, ModuleInstance<import("@xylabs/object").BaseParamsFields & {
10
+ account?: import("@xyo-network/account").AccountInstance | "random" | undefined;
11
+ addToResolvers?: boolean | undefined;
12
+ allowNameResolution?: boolean | undefined;
13
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
14
+ schema: "network.xyo.module.config";
15
+ }, "schema"> & {
16
+ schema: string;
17
+ };
18
+ ephemeralQueryAccountEnabled?: boolean | undefined;
19
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
20
+ }, import("@xyo-network/module-model").ModuleEventData<object>>, unknown>;
8
21
  resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T[]>;
9
22
  }
10
23
  //# sourceMappingURL=PubSubBridgeModuleResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PubSubBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/PubSubBridgeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAG3H,OAAO,EAAsD,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAErJ,OAAO,EAAE,mBAAmB,EAA4D,MAAM,iBAAiB,CAAA;AAE/G,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,SAAS,EAAE,mBAAmB,CAAA;CAC/B;AAED,qBAAa,0BAA2B,SAAQ,4BAA4B,CAAC,gCAAgC,CAAC;IAC7F,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAyC/I"}
1
+ {"version":3,"file":"PubSubBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/PubSubBridgeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAG3H,OAAO,EAAsD,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACrJ,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAA4D,MAAM,iBAAiB,CAAA;AAE/G,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAClF,SAAS,EAAE,mBAAmB,CAAA;CAC/B;AAED,qBAAa,0BAA2B,SAAQ,4BAA4B,CAAC,gCAAgC,CAAC;IAC5G,SAAS,CAAC,cAAc;;;;;;;;;;;8EAAuD;IAEhE,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CA8C/I"}
@@ -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,28 +694,33 @@ 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");
716
+ var import_lru_cache3 = require("lru-cache");
684
717
  var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractBridgeModuleResolver {
685
718
  static {
686
719
  __name(this, "PubSubBridgeModuleResolver");
687
720
  }
721
+ _resolvedCache = new import_lru_cache3.LRUCache({
722
+ max: 1e3
723
+ });
688
724
  async resolveHandler(id, options) {
689
725
  const parentResult = await super.resolveHandler(id, options);
690
726
  if (parentResult.length > 0) {
@@ -692,17 +728,27 @@ var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractB
692
728
  }
693
729
  const idParts = id.split(":");
694
730
  const firstPart = idParts.shift();
695
- (0, import_assert4.assertEx)((0, import_hex.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
731
+ (0, import_assert5.assertEx)((0, import_hex2.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
696
732
  const remainderParts = idParts.join(":");
733
+ const cachedMod = this._resolvedCache.get(firstPart);
734
+ if (cachedMod) {
735
+ const result2 = idParts.length <= 0 ? cachedMod : cachedMod.resolve(remainderParts, {
736
+ ...options,
737
+ maxDepth: (options?.maxDepth ?? 5) - 1
738
+ });
739
+ return result2 ? [
740
+ result2
741
+ ] : [];
742
+ }
697
743
  const account = import_account.Account.randomSync();
698
744
  const finalParams = {
699
745
  account,
700
746
  archiving: this.params.archiving,
701
747
  busClient: this.params.busClient,
702
748
  config: {
703
- schema: import_module_model3.ModuleConfigSchema
749
+ schema: import_module_model4.ModuleConfigSchema
704
750
  },
705
- host: this.params.bridge,
751
+ host: this,
706
752
  moduleAddress: firstPart,
707
753
  onQuerySendFinished: this.params.onQuerySendFinished,
708
754
  onQuerySendStarted: this.params.onQuerySendStarted
@@ -712,16 +758,16 @@ var PubSubBridgeModuleResolver = class extends import_abstract_bridge2.AbstractB
712
758
  const state = await proxy.state();
713
759
  if (state) {
714
760
  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");
761
+ const config = (0, import_assert5.assertEx)(state.find((payload) => payload.schema === configSchema), () => "Unable to locate config");
716
762
  proxy.setConfig(config);
717
763
  }
718
764
  }
719
765
  await proxy.start?.();
720
766
  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}]`);
767
+ const instance = (0, import_assert5.assertEx)((0, import_module_model4.asModuleInstance)(wrapped, {}), () => `Failed to asModuleInstance [${id}]`);
722
768
  proxy.upResolver.add(instance);
723
769
  proxy.downResolver.add(instance);
724
- this.add(instance);
770
+ this._resolvedCache.set(instance.address, instance);
725
771
  const result = remainderParts.length > 0 ? await proxy.resolve(remainderParts, options) : instance;
726
772
  return result ? [
727
773
  result
@@ -760,7 +806,6 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
760
806
  _busHost;
761
807
  _discoverRootsMutex = new import_async_mutex2.Mutex();
762
808
  _resolver;
763
- _roots;
764
809
  get resolver() {
765
810
  this._resolver = this._resolver ?? new PubSubBridgeModuleResolver({
766
811
  archiving: {
@@ -768,7 +813,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
768
813
  resolveArchivists: this.resolveArchivingArchivists.bind(this)
769
814
  },
770
815
  bridge: this,
771
- busClient: (0, import_assert5.assertEx)(this.busClient(), () => "busClient not configured"),
816
+ busClient: (0, import_assert6.assertEx)(this.busClient(), () => "busClient not configured"),
772
817
  onQuerySendFinished: (args) => {
773
818
  (0, import_forget2.forget)(this.emit("querySendFinished", {
774
819
  module: this,
@@ -790,7 +835,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
790
835
  return this.modName ?? moduleName;
791
836
  }
792
837
  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}`);
838
+ const transformedId = (0, import_assert6.assertEx)(await import_module_model5.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
794
839
  const existingInstance = await this.resolve(transformedId);
795
840
  if (existingInstance) {
796
841
  return existingInstance.address;
@@ -799,7 +844,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
799
844
  return await this.connectInstance(instance, maxDepth);
800
845
  }
801
846
  async disconnect(id) {
802
- const transformedId = (0, import_assert5.assertEx)(await import_module_model4.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
847
+ const transformedId = (0, import_assert6.assertEx)(await import_module_model5.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
803
848
  const instance = await this.resolve(transformedId);
804
849
  if (instance) {
805
850
  this.downResolver.remove(instance.address);
@@ -809,7 +854,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
809
854
  async exposeChild(mod, options) {
810
855
  const { maxDepth = 5 } = options ?? {};
811
856
  console.log(`exposeChild: ${mod.address} ${mod?.id} ${maxDepth}`);
812
- const host = (0, import_assert5.assertEx)(this.busHost(), () => "Not configured as a host");
857
+ const host = (0, import_assert6.assertEx)(this.busHost(), () => "Not configured as a host");
813
858
  host.expose(mod);
814
859
  const children = maxDepth > 0 ? await mod.publicChildren?.() ?? [] : [];
815
860
  this.logger.log(`childrenToExpose [${mod.id}][${mod.address}]: ${(0, import_object3.toJsonString)(children.map((child) => child.id))}`);
@@ -827,7 +872,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
827
872
  }
828
873
  async exposeHandler(address, options) {
829
874
  const { required = true } = options ?? {};
830
- const mod = await (0, import_module_model4.resolveAddressToInstanceUp)(this, address);
875
+ const mod = await (0, import_module_model5.resolveAddressToInstanceUp)(this, address);
831
876
  console.log(`exposeHandler: ${address} ${mod?.id}`);
832
877
  if (required && !mod) {
833
878
  throw new Error(`Unable to find required module: ${address}`);
@@ -848,7 +893,7 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
848
893
  if (this._roots === void 0 || force) {
849
894
  const rootAddresses = (await Promise.all((this.config.roots ?? []).map((id) => {
850
895
  try {
851
- return import_module_model4.ResolveHelper.transformModuleIdentifier(id);
896
+ return import_module_model5.ResolveHelper.transformModuleIdentifier(id);
852
897
  } catch (ex) {
853
898
  this.logger?.warn("Unable to transform module identifier:", id, ex);
854
899
  return;
@@ -870,13 +915,54 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
870
915
  return this._roots;
871
916
  });
872
917
  }
918
+ // eslint-disable-next-line complexity
919
+ async resolve(idOrFilter = "*", options = {}) {
920
+ const roots = this._roots ?? [];
921
+ const workingSet = options.direction === "up" ? [
922
+ this
923
+ ] : [
924
+ ...roots,
925
+ this
926
+ ];
927
+ if (idOrFilter === "*") {
928
+ const remainingDepth = (options.maxDepth ?? 1) - 1;
929
+ return remainingDepth <= 0 ? workingSet : [
930
+ ...workingSet,
931
+ ...(await Promise.all(roots.map((mod) => mod.resolve("*", {
932
+ ...options,
933
+ maxDepth: remainingDepth
934
+ })))).flat()
935
+ ];
936
+ }
937
+ switch (typeof idOrFilter) {
938
+ case "string": {
939
+ const parts = idOrFilter.split(":");
940
+ const first = (0, import_assert6.assertEx)(parts.shift(), () => "Missing first part");
941
+ 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);
942
+ return parts.length === 0 ? firstInstance : firstInstance?.resolve(parts.join(":"), options);
943
+ }
944
+ case "object": {
945
+ const results = [];
946
+ if ((0, import_module_model5.isAddressModuleFilter)(idOrFilter)) {
947
+ for (const mod of workingSet) {
948
+ if (mod.modName && idOrFilter.address.includes(mod.address))
949
+ results.push(mod);
950
+ }
951
+ }
952
+ return results;
953
+ }
954
+ default: {
955
+ return;
956
+ }
957
+ }
958
+ }
873
959
  async startHandler() {
874
960
  this.busHost()?.start();
875
961
  return await super.startHandler();
876
962
  }
877
963
  async unexposeHandler(id, options) {
878
964
  const { maxDepth = 2, required = true } = options ?? {};
879
- const host = (0, import_assert5.assertEx)(this.busHost(), () => "Not configured as a host");
965
+ const host = (0, import_assert6.assertEx)(this.busHost(), () => "Not configured as a host");
880
966
  const module2 = await host.unexpose(id, required);
881
967
  if (module2) {
882
968
  const children = maxDepth > 0 ? await module2.publicChildren?.() ?? [] : [];
@@ -944,6 +1030,6 @@ var PubSubBridge = class extends import_abstract_bridge3.AbstractBridge {
944
1030
  }
945
1031
  };
946
1032
  PubSubBridge = _ts_decorate([
947
- (0, import_module_model4.creatableModule)()
1033
+ (0, import_module_model5.creatableModule)()
948
1034
  ], PubSubBridge);
949
1035
  //# sourceMappingURL=index.cjs.map