@xyo-network/bridge-module-resolver 2.72.9 → 2.73.1

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.
@@ -1,206 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BridgeModuleResolver = void 0;
4
- const tslib_1 = require("tslib");
5
- const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
6
- const archivist_model_1 = require("@xyo-network/archivist-model");
7
- const archivist_wrapper_1 = require("@xyo-network/archivist-wrapper");
8
- const diviner_1 = require("@xyo-network/diviner");
9
- const diviner_model_1 = require("@xyo-network/diviner-model");
10
- const error_1 = require("@xyo-network/error");
11
- const module_1 = require("@xyo-network/module");
12
- const node_model_1 = require("@xyo-network/node-model");
13
- const node_wrapper_1 = require("@xyo-network/node-wrapper");
14
- const sentinel_1 = require("@xyo-network/sentinel");
15
- const witness_model_1 = require("@xyo-network/witness-model");
16
- const witness_wrapper_1 = require("@xyo-network/witness-wrapper");
17
- const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
18
- const ProxyModule_1 = require("./ProxyModule");
19
- class BridgeModuleResolver extends module_1.CompositeModuleResolver {
20
- // TODO: Allow optional ctor param for supplying address for nested Nodes
21
- // protected readonly address?: string,
22
- constructor(bridge, wrapperAccount) {
23
- super();
24
- this.bridge = bridge;
25
- this.wrapperAccount = wrapperAccount;
26
- this.primed = undefined;
27
- this.resolvedModules = {};
28
- }
29
- get isModuleResolver() {
30
- return true;
31
- }
32
- add(_module) {
33
- throw new Error('Method not implemented.');
34
- }
35
- currentResolvedModules() {
36
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
- const result = {};
38
- yield Promise.all(Object.entries(this.resolvedModules).map(([key, value]) => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
- result[key] = (yield value);
40
- })));
41
- return result;
42
- });
43
- }
44
- getRemoteAddresses() {
45
- var _a;
46
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
- this.remoteAddresses =
48
- (_a = this.remoteAddresses) !== null && _a !== void 0 ? _a : (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
49
- const discover = yield this.bridge.targetDiscover();
50
- return (0, compact_1.default)(discover === null || discover === void 0 ? void 0 : discover.map((payload) => {
51
- if (payload.schema === address_payload_plugin_1.AddressSchema) {
52
- const schemaPayload = payload;
53
- return schemaPayload.address;
54
- }
55
- else {
56
- return null;
57
- }
58
- }));
59
- }))();
60
- return yield this.remoteAddresses;
61
- });
62
- }
63
- prime() {
64
- var _a;
65
- this.primed =
66
- (_a = this.primed) !== null && _a !== void 0 ? _a : (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
67
- yield this.resolveRemoteModules();
68
- return true;
69
- }))();
70
- return this.primed;
71
- }
72
- remove(_address) {
73
- throw new Error('Method not implemented.');
74
- }
75
- reset() {
76
- this.primed = undefined;
77
- this.remoteAddresses = undefined;
78
- this.resolvedModules = {};
79
- }
80
- resolve(nameOrAddressOrFilter, options) {
81
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
82
- const unfiltered = yield (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
83
- var _a, _b;
84
- const mutatedOptions = Object.assign(Object.assign({}, options), { maxDepth: ((_a = options === null || options === void 0 ? void 0 : options.maxDepth) !== null && _a !== void 0 ? _a : BridgeModuleResolver.defaultMaxDepth) - 1 });
85
- yield this.prime();
86
- yield this.resolveRemoteModules();
87
- if (typeof nameOrAddressOrFilter === 'string') {
88
- if (mutatedOptions.maxDepth < 0) {
89
- return undefined;
90
- }
91
- const result = (_b = (yield this.resolveByAddress(nameOrAddressOrFilter))) !== null && _b !== void 0 ? _b : (yield this.resolveByName(nameOrAddressOrFilter));
92
- return result;
93
- }
94
- else {
95
- if (mutatedOptions.maxDepth < 0) {
96
- return [];
97
- }
98
- const result = yield this.resolveRemoteModules(nameOrAddressOrFilter);
99
- return result;
100
- }
101
- }))();
102
- const identity = options === null || options === void 0 ? void 0 : options.identity;
103
- if (identity) {
104
- return Array.isArray(unfiltered) ? unfiltered === null || unfiltered === void 0 ? void 0 : unfiltered.filter((module) => identity(module)) : identity(unfiltered) ? unfiltered : undefined;
105
- }
106
- else {
107
- return unfiltered;
108
- }
109
- });
110
- }
111
- resolveByAddress(targetAddress) {
112
- var _a;
113
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
114
- const remoteAddresses = yield this.getRemoteAddresses();
115
- //check if it is even there
116
- if (!remoteAddresses.find((address) => address === targetAddress)) {
117
- //this.logger?.log(`Not in RA: ${targetAddress}`)
118
- return undefined;
119
- }
120
- const cached = this.resolvedModules[targetAddress];
121
- if (cached)
122
- return (yield cached);
123
- this.resolvedModules[targetAddress] =
124
- (_a = this.resolvedModules[targetAddress]) !== null && _a !== void 0 ? _a : ((address) => tslib_1.__awaiter(this, void 0, void 0, function* () {
125
- //discover it to set the config in the bridge
126
- yield this.bridge.targetDiscover(address);
127
- const mod = new ProxyModule_1.ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModule_1.ProxyModuleConfigSchema } });
128
- try {
129
- if ((0, archivist_model_1.isArchivistModule)(mod)) {
130
- return archivist_wrapper_1.ArchivistWrapper.wrap(mod, this.wrapperAccount);
131
- }
132
- if ((0, diviner_model_1.isDivinerModule)(mod)) {
133
- return diviner_1.DivinerWrapper.wrap(mod, this.wrapperAccount);
134
- }
135
- if ((0, witness_model_1.isWitnessModule)(mod)) {
136
- return witness_wrapper_1.WitnessWrapper.wrap(mod, this.wrapperAccount);
137
- }
138
- if ((0, node_model_1.isNodeModule)(mod)) {
139
- return node_wrapper_1.NodeWrapper.wrap(mod, this.wrapperAccount);
140
- }
141
- if ((0, sentinel_1.isSentinelModule)(mod)) {
142
- return sentinel_1.SentinelWrapper.wrap(mod, this.wrapperAccount);
143
- }
144
- console.warn(`BridgeModuleResolver: Unknown Module Type: [${targetAddress}]`);
145
- return module_1.ModuleWrapper.wrap(mod, this.wrapperAccount);
146
- }
147
- catch (ex) {
148
- (0, error_1.handleError)(ex, (error) => {
149
- console.error(`BridgeModuleResolver.resolveByAddress: ${error.message} [${targetAddress}]`);
150
- });
151
- }
152
- }))(targetAddress);
153
- return (yield this.resolvedModules[targetAddress]);
154
- });
155
- }
156
- resolveByName(name) {
157
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
158
- const modules = yield this.currentResolvedModules();
159
- return Object.values(modules)
160
- .filter((module) => module.config.name === name)
161
- .pop();
162
- });
163
- }
164
- resolveByQuery(queries) {
165
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
166
- return Object.values(yield this.currentResolvedModules()).filter((module) => {
167
- //filter out the requested queries
168
- const found = module.queries.filter((query) => queries.find((q) => q === query));
169
- //did we find all the requested queries?
170
- return queries.length === found.length;
171
- });
172
- });
173
- }
174
- resolveRemoteModules(filter) {
175
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
176
- if (filter === null || filter === void 0 ? void 0 : filter.address) {
177
- return yield this.resolveRemoteModulesByAddress(filter);
178
- }
179
- if (filter === null || filter === void 0 ? void 0 : filter.name) {
180
- return yield this.resolveRemoteModulesByName(filter);
181
- }
182
- if (filter === null || filter === void 0 ? void 0 : filter.query) {
183
- return yield this.resolveRemoteModulesByQuery(filter);
184
- }
185
- //get all of them
186
- return yield this.resolveRemoteModulesByAddress({ address: yield this.getRemoteAddresses() });
187
- });
188
- }
189
- resolveRemoteModulesByAddress(filter) {
190
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
191
- return (0, compact_1.default)(yield Promise.all(filter.address.map((address) => this.resolveByAddress(address))));
192
- });
193
- }
194
- resolveRemoteModulesByName(filter) {
195
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
196
- return (0, compact_1.default)(yield Promise.all(filter.name.map((name) => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.resolveByName(name); }))));
197
- });
198
- }
199
- resolveRemoteModulesByQuery(filter) {
200
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
201
- return (0, compact_1.default)((yield Promise.all(filter.query.map((query) => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.resolveByQuery(query); })))).flat());
202
- });
203
- }
204
- }
205
- exports.BridgeModuleResolver = BridgeModuleResolver;
206
- //# sourceMappingURL=ModuleResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProxyModule = exports.ProxyModuleConfigSchema = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = require("@xylabs/assert");
6
- const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
7
- const manifest_model_1 = require("@xyo-network/manifest-model");
8
- const module_1 = require("@xyo-network/module");
9
- const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
10
- exports.ProxyModuleConfigSchema = 'network.xyo.module.proxy.config';
11
- class ProxyModule extends module_1.BaseEmitter {
12
- constructor(proxyParams) {
13
- super({ config: proxyParams.bridge.targetConfig(proxyParams.address) });
14
- this.proxyParams = proxyParams;
15
- this.upResolver = new module_1.CompositeModuleResolver();
16
- this._busyCount = 0;
17
- }
18
- get address() {
19
- return this.proxyParams.address.toLowerCase();
20
- }
21
- get bridge() {
22
- return this.proxyParams.bridge;
23
- }
24
- get config() {
25
- const config = this.bridge.targetConfig(this.address);
26
- return config;
27
- }
28
- get downResolver() {
29
- return (0, assert_1.assertEx)(this.bridge.targetDownResolver(this.address), 'Unable to get resolver');
30
- }
31
- get queries() {
32
- return this.bridge.targetQueries(this.address);
33
- }
34
- addressPreviousHash() {
35
- throw Error('Not Implemented');
36
- }
37
- busy(closure) {
38
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
39
- if (this._busyCount <= 0) {
40
- this._busyCount = 0;
41
- const args = { busy: true, module: this };
42
- yield this.emit('moduleBusy', args);
43
- }
44
- this._busyCount++;
45
- try {
46
- return yield closure();
47
- }
48
- finally {
49
- this._busyCount--;
50
- if (this._busyCount <= 0) {
51
- this._busyCount = 0;
52
- const args = { busy: false, module: this };
53
- yield this.emit('moduleBusy', args);
54
- }
55
- }
56
- });
57
- }
58
- describe() {
59
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
- return yield this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
61
- var _a;
62
- const description = {
63
- address: this.address,
64
- queries: this.queries,
65
- };
66
- if (this.config.name) {
67
- description.name = this.config.name;
68
- }
69
- const discover = yield this.discover();
70
- description.children = (0, compact_1.default)((_a = discover === null || discover === void 0 ? void 0 : discover.map((payload) => {
71
- const address = payload.schema === address_payload_plugin_1.AddressSchema ? payload.address : undefined;
72
- return address != this.address ? address : undefined;
73
- })) !== null && _a !== void 0 ? _a : []);
74
- return description;
75
- }));
76
- });
77
- }
78
- discover() {
79
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
- return yield this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
81
- return yield this.bridge.targetDiscover();
82
- }));
83
- });
84
- }
85
- manifest() {
86
- var _a;
87
- const name = (_a = this.config.name) !== null && _a !== void 0 ? _a : 'Anonymous';
88
- return { config: Object.assign({ name }, this.config), schema: manifest_model_1.ManifestPayloadSchema };
89
- }
90
- moduleAddress() {
91
- throw Error('Not Implemented');
92
- }
93
- previousHash() {
94
- throw Error('Not Implemented');
95
- }
96
- query(query, payloads) {
97
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
- return yield this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
99
- const result = (0, assert_1.assertEx)(yield this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed');
100
- yield this.emit('moduleQueried', { module: this, payloads, query, result });
101
- return result;
102
- }));
103
- });
104
- }
105
- queryable(query, payloads, queryConfig) {
106
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
107
- return yield this.bridge.targetQueryable(this.address, query, payloads, queryConfig);
108
- });
109
- }
110
- resolve(nameOrAddressOrFilter, options) {
111
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
- return yield this.busy(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
113
- if (typeof nameOrAddressOrFilter === 'string') {
114
- return yield this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options);
115
- }
116
- else {
117
- return yield this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options);
118
- }
119
- }));
120
- });
121
- }
122
- }
123
- exports.ProxyModule = ProxyModule;
124
- //# sourceMappingURL=ProxyModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./ModuleResolver"), exports);
5
- tslib_1.__exportStar(require("./ProxyModule"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC;AAChC,wDAA6B"}
@@ -1,183 +0,0 @@
1
- import { AddressSchema } from '@xyo-network/address-payload-plugin';
2
- import { isArchivistModule } from '@xyo-network/archivist-model';
3
- import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
4
- import { DivinerWrapper } from '@xyo-network/diviner';
5
- import { isDivinerModule } from '@xyo-network/diviner-model';
6
- import { handleError } from '@xyo-network/error';
7
- import { CompositeModuleResolver, ModuleWrapper } from '@xyo-network/module';
8
- import { isNodeModule } from '@xyo-network/node-model';
9
- import { NodeWrapper } from '@xyo-network/node-wrapper';
10
- import { isSentinelModule, SentinelWrapper } from '@xyo-network/sentinel';
11
- import { isWitnessModule } from '@xyo-network/witness-model';
12
- import { WitnessWrapper } from '@xyo-network/witness-wrapper';
13
- import compact from 'lodash/compact';
14
- import { ProxyModule, ProxyModuleConfigSchema } from './ProxyModule';
15
- export class BridgeModuleResolver extends CompositeModuleResolver {
16
- bridge;
17
- wrapperAccount;
18
- primed = undefined;
19
- remoteAddresses;
20
- resolvedModules = {};
21
- // TODO: Allow optional ctor param for supplying address for nested Nodes
22
- // protected readonly address?: string,
23
- constructor(bridge, wrapperAccount) {
24
- super();
25
- this.bridge = bridge;
26
- this.wrapperAccount = wrapperAccount;
27
- }
28
- get isModuleResolver() {
29
- return true;
30
- }
31
- add(_module) {
32
- throw new Error('Method not implemented.');
33
- }
34
- async currentResolvedModules() {
35
- const result = {};
36
- await Promise.all(Object.entries(this.resolvedModules).map(async ([key, value]) => {
37
- result[key] = (await value);
38
- }));
39
- return result;
40
- }
41
- async getRemoteAddresses() {
42
- this.remoteAddresses =
43
- this.remoteAddresses ??
44
- (async () => {
45
- const discover = await this.bridge.targetDiscover();
46
- return compact(discover?.map((payload) => {
47
- if (payload.schema === AddressSchema) {
48
- const schemaPayload = payload;
49
- return schemaPayload.address;
50
- }
51
- else {
52
- return null;
53
- }
54
- }));
55
- })();
56
- return await this.remoteAddresses;
57
- }
58
- prime() {
59
- this.primed =
60
- this.primed ??
61
- (async () => {
62
- await this.resolveRemoteModules();
63
- return true;
64
- })();
65
- return this.primed;
66
- }
67
- remove(_address) {
68
- throw new Error('Method not implemented.');
69
- }
70
- reset() {
71
- this.primed = undefined;
72
- this.remoteAddresses = undefined;
73
- this.resolvedModules = {};
74
- }
75
- async resolve(nameOrAddressOrFilter, options) {
76
- const unfiltered = await (async () => {
77
- const mutatedOptions = { ...options, maxDepth: (options?.maxDepth ?? BridgeModuleResolver.defaultMaxDepth) - 1 };
78
- await this.prime();
79
- await this.resolveRemoteModules();
80
- if (typeof nameOrAddressOrFilter === 'string') {
81
- if (mutatedOptions.maxDepth < 0) {
82
- return undefined;
83
- }
84
- const result = (await this.resolveByAddress(nameOrAddressOrFilter)) ?? (await this.resolveByName(nameOrAddressOrFilter));
85
- return result;
86
- }
87
- else {
88
- if (mutatedOptions.maxDepth < 0) {
89
- return [];
90
- }
91
- const result = await this.resolveRemoteModules(nameOrAddressOrFilter);
92
- return result;
93
- }
94
- })();
95
- const identity = options?.identity;
96
- if (identity) {
97
- return Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module)) : identity(unfiltered) ? unfiltered : undefined;
98
- }
99
- else {
100
- return unfiltered;
101
- }
102
- }
103
- async resolveByAddress(targetAddress) {
104
- const remoteAddresses = await this.getRemoteAddresses();
105
- //check if it is even there
106
- if (!remoteAddresses.find((address) => address === targetAddress)) {
107
- //this.logger?.log(`Not in RA: ${targetAddress}`)
108
- return undefined;
109
- }
110
- const cached = this.resolvedModules[targetAddress];
111
- if (cached)
112
- return (await cached);
113
- this.resolvedModules[targetAddress] =
114
- this.resolvedModules[targetAddress] ??
115
- (async (address) => {
116
- //discover it to set the config in the bridge
117
- await this.bridge.targetDiscover(address);
118
- const mod = new ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModuleConfigSchema } });
119
- try {
120
- if (isArchivistModule(mod)) {
121
- return ArchivistWrapper.wrap(mod, this.wrapperAccount);
122
- }
123
- if (isDivinerModule(mod)) {
124
- return DivinerWrapper.wrap(mod, this.wrapperAccount);
125
- }
126
- if (isWitnessModule(mod)) {
127
- return WitnessWrapper.wrap(mod, this.wrapperAccount);
128
- }
129
- if (isNodeModule(mod)) {
130
- return NodeWrapper.wrap(mod, this.wrapperAccount);
131
- }
132
- if (isSentinelModule(mod)) {
133
- return SentinelWrapper.wrap(mod, this.wrapperAccount);
134
- }
135
- console.warn(`BridgeModuleResolver: Unknown Module Type: [${targetAddress}]`);
136
- return ModuleWrapper.wrap(mod, this.wrapperAccount);
137
- }
138
- catch (ex) {
139
- handleError(ex, (error) => {
140
- console.error(`BridgeModuleResolver.resolveByAddress: ${error.message} [${targetAddress}]`);
141
- });
142
- }
143
- })(targetAddress);
144
- return (await this.resolvedModules[targetAddress]);
145
- }
146
- async resolveByName(name) {
147
- const modules = await this.currentResolvedModules();
148
- return Object.values(modules)
149
- .filter((module) => module.config.name === name)
150
- .pop();
151
- }
152
- async resolveByQuery(queries) {
153
- return Object.values(await this.currentResolvedModules()).filter((module) => {
154
- //filter out the requested queries
155
- const found = module.queries.filter((query) => queries.find((q) => q === query));
156
- //did we find all the requested queries?
157
- return queries.length === found.length;
158
- });
159
- }
160
- async resolveRemoteModules(filter) {
161
- if (filter?.address) {
162
- return await this.resolveRemoteModulesByAddress(filter);
163
- }
164
- if (filter?.name) {
165
- return await this.resolveRemoteModulesByName(filter);
166
- }
167
- if (filter?.query) {
168
- return await this.resolveRemoteModulesByQuery(filter);
169
- }
170
- //get all of them
171
- return await this.resolveRemoteModulesByAddress({ address: await this.getRemoteAddresses() });
172
- }
173
- async resolveRemoteModulesByAddress(filter) {
174
- return compact(await Promise.all(filter.address.map((address) => this.resolveByAddress(address))));
175
- }
176
- async resolveRemoteModulesByName(filter) {
177
- return compact(await Promise.all(filter.name.map(async (name) => await this.resolveByName(name))));
178
- }
179
- async resolveRemoteModulesByQuery(filter) {
180
- return compact((await Promise.all(filter.query.map(async (query) => await this.resolveByQuery(query)))).flat());
181
- }
182
- }
183
- //# sourceMappingURL=ModuleResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"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"}
@@ -1,106 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { AddressSchema } from '@xyo-network/address-payload-plugin';
3
- import { ManifestPayloadSchema } from '@xyo-network/manifest-model';
4
- import { BaseEmitter, CompositeModuleResolver, } from '@xyo-network/module';
5
- import compact from 'lodash/compact';
6
- export const ProxyModuleConfigSchema = 'network.xyo.module.proxy.config';
7
- export class ProxyModule extends BaseEmitter {
8
- proxyParams;
9
- upResolver = new CompositeModuleResolver();
10
- _busyCount = 0;
11
- constructor(proxyParams) {
12
- super({ config: proxyParams.bridge.targetConfig(proxyParams.address) });
13
- this.proxyParams = proxyParams;
14
- }
15
- get address() {
16
- return this.proxyParams.address.toLowerCase();
17
- }
18
- get bridge() {
19
- return this.proxyParams.bridge;
20
- }
21
- get config() {
22
- const config = this.bridge.targetConfig(this.address);
23
- return config;
24
- }
25
- get downResolver() {
26
- return assertEx(this.bridge.targetDownResolver(this.address), 'Unable to get resolver');
27
- }
28
- get queries() {
29
- return this.bridge.targetQueries(this.address);
30
- }
31
- addressPreviousHash() {
32
- throw Error('Not Implemented');
33
- }
34
- async busy(closure) {
35
- if (this._busyCount <= 0) {
36
- this._busyCount = 0;
37
- const args = { busy: true, module: this };
38
- await this.emit('moduleBusy', args);
39
- }
40
- this._busyCount++;
41
- try {
42
- return await closure();
43
- }
44
- finally {
45
- this._busyCount--;
46
- if (this._busyCount <= 0) {
47
- this._busyCount = 0;
48
- const args = { busy: false, module: this };
49
- await this.emit('moduleBusy', args);
50
- }
51
- }
52
- }
53
- async describe() {
54
- return await this.busy(async () => {
55
- const description = {
56
- address: this.address,
57
- queries: this.queries,
58
- };
59
- if (this.config.name) {
60
- description.name = this.config.name;
61
- }
62
- const discover = await this.discover();
63
- description.children = compact(discover?.map((payload) => {
64
- const address = payload.schema === AddressSchema ? payload.address : undefined;
65
- return address != this.address ? address : undefined;
66
- }) ?? []);
67
- return description;
68
- });
69
- }
70
- async discover() {
71
- return await this.busy(async () => {
72
- return await this.bridge.targetDiscover();
73
- });
74
- }
75
- manifest() {
76
- const name = this.config.name ?? 'Anonymous';
77
- return { config: { name, ...this.config }, schema: ManifestPayloadSchema };
78
- }
79
- moduleAddress() {
80
- throw Error('Not Implemented');
81
- }
82
- previousHash() {
83
- throw Error('Not Implemented');
84
- }
85
- async query(query, payloads) {
86
- return await this.busy(async () => {
87
- const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed');
88
- await this.emit('moduleQueried', { module: this, payloads, query, result });
89
- return result;
90
- });
91
- }
92
- async queryable(query, payloads, queryConfig) {
93
- return await this.bridge.targetQueryable(this.address, query, payloads, queryConfig);
94
- }
95
- async resolve(nameOrAddressOrFilter, options) {
96
- return await this.busy(async () => {
97
- if (typeof nameOrAddressOrFilter === 'string') {
98
- return await this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options);
99
- }
100
- else {
101
- return await this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options);
102
- }
103
- });
104
- }
105
- }
106
- //# sourceMappingURL=ProxyModule.js.map