@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/node/index.cjs
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
716
|
-
var
|
|
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
|
|
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,
|
|
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:
|
|
770
|
+
schema: import_module_model4.ModuleConfigSchema
|
|
739
771
|
},
|
|
740
|
-
host: this
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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 = {
|