@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.
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/browser/PubSubBridge.d.cts +8 -2
- package/dist/browser/PubSubBridge.d.cts.map +1 -1
- package/dist/browser/PubSubBridge.d.mts +8 -2
- package/dist/browser/PubSubBridge.d.mts.map +1 -1
- package/dist/browser/PubSubBridge.d.ts +8 -2
- package/dist/browser/PubSubBridge.d.ts.map +1 -1
- package/dist/browser/index.cjs +91 -19
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +87 -15
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/neutral/PubSubBridge.d.cts +8 -2
- package/dist/neutral/PubSubBridge.d.cts.map +1 -1
- package/dist/neutral/PubSubBridge.d.mts +8 -2
- package/dist/neutral/PubSubBridge.d.mts.map +1 -1
- package/dist/neutral/PubSubBridge.d.ts +8 -2
- package/dist/neutral/PubSubBridge.d.ts.map +1 -1
- package/dist/neutral/index.cjs +91 -19
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +87 -15
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/node/PubSubBridge.d.cts +8 -2
- package/dist/node/PubSubBridge.d.cts.map +1 -1
- package/dist/node/PubSubBridge.d.mts +8 -2
- package/dist/node/PubSubBridge.d.mts.map +1 -1
- package/dist/node/PubSubBridge.d.ts +8 -2
- package/dist/node/PubSubBridge.d.ts.map +1 -1
- package/dist/node/index.cjs +92 -19
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +88 -15
- package/dist/node/index.js.map +1 -1
- package/package.json +20 -20
- package/src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts +50 -1
- package/src/PubSubBridge.ts +57 -3
- 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,
|
|
1
|
+
{"version":3,"file":"PubSubBridge.d.ts","sourceRoot":"","sources":["../../src/PubSubBridge.ts"],"names":[],"mappings":"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"}
|
package/dist/neutral/index.cjs
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
679
|
-
var
|
|
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
|
|
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,
|
|
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:
|
|
735
|
+
schema: import_module_model4.ModuleConfigSchema
|
|
704
736
|
},
|
|
705
|
-
host: this
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
1019
|
+
(0, import_module_model5.creatableModule)()
|
|
948
1020
|
], PubSubBridge);
|
|
949
1021
|
//# sourceMappingURL=index.cjs.map
|