@xyo-network/bridge 2.46.4 → 2.47.0
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/cjs/AbstractBridge.js +1 -7
- package/dist/cjs/AbstractBridge.js.map +1 -1
- package/dist/cjs/BridgeWrapper.js +32 -0
- package/dist/cjs/BridgeWrapper.js.map +1 -1
- package/dist/cjs/HttpBridge.js +53 -34
- package/dist/cjs/HttpBridge.js.map +1 -1
- package/dist/cjs/HttpProxyModule.js +39 -0
- package/dist/cjs/HttpProxyModule.js.map +1 -0
- package/dist/cjs/RemoteModuleResolver.js +15 -38
- package/dist/cjs/RemoteModuleResolver.js.map +1 -1
- package/dist/docs.json +15257 -9644
- package/dist/esm/AbstractBridge.js +2 -7
- package/dist/esm/AbstractBridge.js.map +1 -1
- package/dist/esm/BridgeWrapper.js +23 -1
- package/dist/esm/BridgeWrapper.js.map +1 -1
- package/dist/esm/HttpBridge.js +46 -30
- package/dist/esm/HttpBridge.js.map +1 -1
- package/dist/esm/HttpProxyModule.js +32 -0
- package/dist/esm/HttpProxyModule.js.map +1 -0
- package/dist/esm/RemoteModuleResolver.js +10 -29
- package/dist/esm/RemoteModuleResolver.js.map +1 -1
- package/dist/types/AbstractBridge.d.ts +6 -2
- package/dist/types/AbstractBridge.d.ts.map +1 -1
- package/dist/types/Bridge.d.ts +8 -2
- package/dist/types/Bridge.d.ts.map +1 -1
- package/dist/types/BridgeWrapper.d.ts +29 -3
- package/dist/types/BridgeWrapper.d.ts.map +1 -1
- package/dist/types/HttpBridge.d.ts +30 -10
- package/dist/types/HttpBridge.d.ts.map +1 -1
- package/dist/types/HttpProxyModule.d.ts +25 -0
- package/dist/types/HttpProxyModule.d.ts.map +1 -0
- package/dist/types/RemoteModuleResolver.d.ts +3 -3
- package/dist/types/RemoteModuleResolver.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/AbstractBridge.ts +22 -7
- package/src/Bridge.ts +10 -2
- package/src/BridgeWrapper.ts +49 -3
- package/src/HttpBridge.ts +54 -30
- package/src/HttpProxyModule.ts +37 -0
- package/src/RemoteModuleResolver.ts +13 -41
- package/src/spec/HttpBridge.spec.ts +6 -2
|
@@ -11,7 +11,6 @@ class AbstractBridge extends module_1.AbstractModule {
|
|
|
11
11
|
}
|
|
12
12
|
query(query, payloads) {
|
|
13
13
|
const _super = Object.create(null, {
|
|
14
|
-
queries: { get: () => super.queries },
|
|
15
14
|
query: { get: () => super.query }
|
|
16
15
|
});
|
|
17
16
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -29,12 +28,7 @@ class AbstractBridge extends module_1.AbstractModule {
|
|
|
29
28
|
break;
|
|
30
29
|
}
|
|
31
30
|
default:
|
|
32
|
-
|
|
33
|
-
return _super.query.call(this, query, payloads);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return this.forward(typedQuery);
|
|
37
|
-
}
|
|
31
|
+
return _super.query.call(this, query, payloads);
|
|
38
32
|
}
|
|
39
33
|
}
|
|
40
34
|
catch (ex) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractBridge.js","sourceRoot":"","sources":["../../src/AbstractBridge.ts"],"names":[],"mappings":";;;;AAAA,kDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"AbstractBridge.js","sourceRoot":"","sources":["../../src/AbstractBridge.ts"],"names":[],"mappings":";;;;AAAA,kDAA8C;AAC9C,gDAW4B;AAM5B,uCAAuG;AAEvG,MAAsB,cAA4D,SAAQ,uBAAuB;IAG/G,IAAa,OAAO;QAClB,OAAO,CAAC,qCAA2B,EAAE,wCAA8B,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IACxF,CAAC;IAEc,KAAK,CAAwD,KAAQ,EAAE,QAAuB;;;;;YAC3G,MAAM,OAAO,GAAG,iCAAwB,CAAC,UAAU,CAAiB,KAAK,EAAE,QAAQ,CAAC,CAAA;YACpF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;YACxC,MAAM,YAAY,GAAG,IAAI,iBAAO,EAAE,CAAA;YAClC,IAAI;gBACF,QAAQ,UAAU,CAAC,MAAM,EAAE;oBACzB,KAAK,qCAA2B,CAAC,CAAC;wBAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;wBACpB,MAAK;qBACN;oBACD,KAAK,wCAA8B,CAAC,CAAC;wBACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;wBACvB,MAAK;qBACN;oBACD;wBACE,OAAO,OAAM,KAAK,YAAC,KAAK,EAAE,QAAQ,EAAC;iBACtC;aACF;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,wBAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;aACnG;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;KAAA;CAYF;AAzCD,wCAyCC"}
|
|
@@ -6,6 +6,9 @@ const module_1 = require("@xyo-network/module");
|
|
|
6
6
|
const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
|
|
7
7
|
const Queries_1 = require("./Queries");
|
|
8
8
|
class BridgeWrapper extends module_1.ModuleWrapper {
|
|
9
|
+
get targetResolver() {
|
|
10
|
+
return this.module.targetResolver;
|
|
11
|
+
}
|
|
9
12
|
connect(uri) {
|
|
10
13
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
14
|
const queryPayload = payload_wrapper_1.PayloadWrapper.parse({ schema: Queries_1.XyoBridgeConnectQuerySchema, uri });
|
|
@@ -20,6 +23,35 @@ class BridgeWrapper extends module_1.ModuleWrapper {
|
|
|
20
23
|
return true;
|
|
21
24
|
});
|
|
22
25
|
}
|
|
26
|
+
targetDiscover(address) {
|
|
27
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const queryPayload = payload_wrapper_1.PayloadWrapper.parse({ schema: module_1.ModuleDiscoverQuerySchema });
|
|
29
|
+
return yield this.sendTargetQuery(address, queryPayload);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
targetQuery(address, query, payloads) {
|
|
33
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
return yield this.module.targetQuery(address, query, payloads);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
targetQueryable(address, query, payloads, queryConfig) {
|
|
38
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return yield this.module.targetQueryable(address, query, payloads, queryConfig);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
targetResolve(address, filter) {
|
|
43
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
return yield this.module.targetResolve(address, filter);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
sendTargetQuery(address, queryPayload, payloads) {
|
|
48
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const query = yield this.bindQuery(queryPayload, payloads);
|
|
50
|
+
const result = yield this.module.targetQuery(address, query[0], query[1]);
|
|
51
|
+
this.throwErrors(query, result);
|
|
52
|
+
return result[1];
|
|
53
|
+
});
|
|
54
|
+
}
|
|
23
55
|
}
|
|
24
56
|
exports.BridgeWrapper = BridgeWrapper;
|
|
25
57
|
//# sourceMappingURL=BridgeWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeWrapper.js","sourceRoot":"","sources":["../../src/BridgeWrapper.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"BridgeWrapper.js","sourceRoot":"","sources":["../../src/BridgeWrapper.ts"],"names":[],"mappings":";;;;AAAA,gDAS4B;AAE5B,kEAA6D;AAG7D,uCAAuG;AAEvG,MAAa,aAAc,SAAQ,sBAA2B;IAC5D,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;IACnC,CAAC;IAEK,OAAO,CAAC,GAAY;;YACxB,MAAM,YAAY,GAAG,gCAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,qCAA2B,EAAE,GAAG,EAAE,CAAC,CAAA;YACvG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAEK,UAAU,CAAC,GAAY;;YAC3B,MAAM,YAAY,GAAG,gCAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,wCAA8B,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1G,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAEK,cAAc,CAAC,OAAe;;YAClC,MAAM,YAAY,GAAG,gCAAc,CAAC,KAAK,CAAsB,EAAE,MAAM,EAAE,kCAAyB,EAAE,CAAC,CAAA;YACrG,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC1D,CAAC;KAAA;IAEK,WAAW,CACf,OAAe,EACf,KAAQ,EACR,QAAuB;;YAEvB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAChE,CAAC;KAAA;IAEK,eAAe,CAAC,OAAe,EAAE,KAA2B,EAAE,QAAuB,EAAE,WAA0B;;YACrH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QACjF,CAAC;KAAA;IAEK,aAAa,CAAC,OAAe,EAAE,MAAqB;;YACxD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzD,CAAC;KAAA;IAEe,eAAe,CAC7B,OAAe,EACf,YAAe,EACf,QAAsB;;YAEtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;YAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACzE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;KAAA;CACF;AAhDD,sCAgDC"}
|
package/dist/cjs/HttpBridge.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.HttpBridge = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const assert_1 = require("@xylabs/assert");
|
|
6
6
|
const account_1 = require("@xyo-network/account");
|
|
7
|
+
const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
|
|
7
8
|
const axios_1 = require("@xyo-network/axios");
|
|
8
9
|
const module_1 = require("@xyo-network/module");
|
|
9
10
|
const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
|
|
@@ -15,36 +16,33 @@ class HttpBridge extends module_1.AbstractModule {
|
|
|
15
16
|
constructor(params) {
|
|
16
17
|
var _a;
|
|
17
18
|
super(params);
|
|
18
|
-
this.
|
|
19
|
+
this._targetQueries = {};
|
|
19
20
|
this.axios = (_a = params.axios) !== null && _a !== void 0 ? _a : new axios_1.AxiosJson();
|
|
20
|
-
this.
|
|
21
|
+
this._targetResolver = new RemoteModuleResolver_1.RemoteModuleResolver(this);
|
|
21
22
|
}
|
|
22
23
|
get nodeUri() {
|
|
23
24
|
var _a;
|
|
24
25
|
return (0, assert_1.assertEx)((_a = this.config) === null || _a === void 0 ? void 0 : _a.nodeUri, 'Missing nodeUri');
|
|
25
26
|
}
|
|
26
|
-
get queries() {
|
|
27
|
-
return [...super.queries, ...this.remoteQueries];
|
|
28
|
-
}
|
|
29
27
|
get targetAddress() {
|
|
30
28
|
var _a;
|
|
31
|
-
return (_a = this.config) === null || _a === void 0 ? void 0 : _a.targetAddress;
|
|
29
|
+
return (0, assert_1.assertEx)((_a = this.config) === null || _a === void 0 ? void 0 : _a.targetAddress, 'targetAddress not set');
|
|
30
|
+
}
|
|
31
|
+
get targetResolver() {
|
|
32
|
+
return this._targetResolver;
|
|
32
33
|
}
|
|
33
34
|
static create(params) {
|
|
34
35
|
const _super = Object.create(null, {
|
|
35
36
|
create: { get: () => super.create }
|
|
36
37
|
});
|
|
38
|
+
var _a;
|
|
37
39
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
38
40
|
const result = (yield _super.create.call(this, params));
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
return schemaPayload.query;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return null;
|
|
41
|
+
const discover = yield result.targetDiscover((_a = params.config.targetAddress) !== null && _a !== void 0 ? _a : '');
|
|
42
|
+
yield Promise.all(discover.map((payload) => {
|
|
43
|
+
const addressPayload = payload;
|
|
44
|
+
if (addressPayload.schema === address_payload_plugin_1.AddressSchema) {
|
|
45
|
+
return result.targetDiscover(addressPayload.address);
|
|
48
46
|
}
|
|
49
47
|
}));
|
|
50
48
|
return result;
|
|
@@ -56,15 +54,8 @@ class HttpBridge extends module_1.AbstractModule {
|
|
|
56
54
|
disconnect() {
|
|
57
55
|
return true;
|
|
58
56
|
}
|
|
59
|
-
discover() {
|
|
60
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
const queryPayload = payload_wrapper_1.PayloadWrapper.parse({ schema: module_1.ModuleDiscoverQuerySchema });
|
|
62
|
-
return (yield this.forward(queryPayload))[1];
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
57
|
query(query, payloads) {
|
|
66
58
|
const _super = Object.create(null, {
|
|
67
|
-
queries: { get: () => super.queries },
|
|
68
59
|
query: { get: () => super.query }
|
|
69
60
|
});
|
|
70
61
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -83,12 +74,7 @@ class HttpBridge extends module_1.AbstractModule {
|
|
|
83
74
|
break;
|
|
84
75
|
}
|
|
85
76
|
default:
|
|
86
|
-
|
|
87
|
-
return yield _super.query.call(this, query, payloads);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
return yield this.forward(query, payloads);
|
|
91
|
-
}
|
|
77
|
+
return yield _super.query.call(this, query, payloads);
|
|
92
78
|
}
|
|
93
79
|
}
|
|
94
80
|
catch (ex) {
|
|
@@ -103,25 +89,58 @@ class HttpBridge extends module_1.AbstractModule {
|
|
|
103
89
|
resolve: { get: () => super.resolve }
|
|
104
90
|
});
|
|
105
91
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
106
|
-
return [...(yield _super.resolve.call(this, filter)), ...(yield this.
|
|
92
|
+
return [...(yield _super.resolve.call(this, filter)), ...(yield this.targetResolver.resolve(filter))];
|
|
107
93
|
});
|
|
108
94
|
}
|
|
109
|
-
|
|
110
|
-
var _a
|
|
95
|
+
targetDiscover(address) {
|
|
96
|
+
var _a;
|
|
97
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
const queryPayload = payload_wrapper_1.PayloadWrapper.parse({ schema: module_1.ModuleDiscoverQuerySchema });
|
|
99
|
+
const discover = (0, assert_1.assertEx)(yield this.targetQuery(address, queryPayload), `Unable to resolve [${address}]`)[1];
|
|
100
|
+
this._targetQueries[address] = (0, compact_1.default)((_a = discover === null || discover === void 0 ? void 0 : discover.map((payload) => {
|
|
101
|
+
if (payload.schema === query_payload_plugin_1.QuerySchema) {
|
|
102
|
+
const schemaPayload = payload;
|
|
103
|
+
return schemaPayload.query;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
})) !== null && _a !== void 0 ? _a : []);
|
|
109
|
+
return discover;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
targetQueries(address) {
|
|
113
|
+
return (0, assert_1.assertEx)(this._targetQueries[address], `targetConfig not set [${address}]`);
|
|
114
|
+
}
|
|
115
|
+
targetQuery(address, query, payloads = []) {
|
|
116
|
+
var _a, _b, _c;
|
|
111
117
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
112
118
|
try {
|
|
113
119
|
const boundQuery = yield this.bindQuery(query, payloads);
|
|
114
|
-
const
|
|
120
|
+
const path = `${this.nodeUri}/${address}`;
|
|
121
|
+
const result = yield this.axios.post(path, boundQuery);
|
|
122
|
+
if (result.status >= 400) {
|
|
123
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(`targetQuery failed [${path}]`);
|
|
124
|
+
throw `targetQuery failed [${path}] [${result.status}]`;
|
|
125
|
+
}
|
|
115
126
|
return result.data.data;
|
|
116
127
|
}
|
|
117
128
|
catch (ex) {
|
|
118
129
|
const error = ex;
|
|
119
|
-
(
|
|
120
|
-
(
|
|
130
|
+
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Error Status: ${error.status}`);
|
|
131
|
+
(_c = this.logger) === null || _c === void 0 ? void 0 : _c.error(`Error Cause: ${JSON.stringify(error.cause, null, 2)}`);
|
|
121
132
|
throw error;
|
|
122
133
|
}
|
|
123
134
|
});
|
|
124
135
|
}
|
|
136
|
+
targetQueryable(_address, _query, _payloads, _queryConfig) {
|
|
137
|
+
throw 'targetQueryable not available';
|
|
138
|
+
}
|
|
139
|
+
targetResolve(address, filter) {
|
|
140
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
return yield this.targetResolver.resolve(filter);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
125
144
|
}
|
|
126
145
|
exports.HttpBridge = HttpBridge;
|
|
127
146
|
//# sourceMappingURL=HttpBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpBridge.js","sourceRoot":"","sources":["../../src/HttpBridge.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,kDAA8C;
|
|
1
|
+
{"version":3,"file":"HttpBridge.js","sourceRoot":"","sources":["../../src/HttpBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpProxyModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const module_1 = require("@xyo-network/module");
|
|
6
|
+
class HttpProxyModule {
|
|
7
|
+
constructor(bridge, _address) {
|
|
8
|
+
this.bridge = bridge;
|
|
9
|
+
this._address = _address;
|
|
10
|
+
}
|
|
11
|
+
get address() {
|
|
12
|
+
return this._address;
|
|
13
|
+
}
|
|
14
|
+
get config() {
|
|
15
|
+
return { schema: module_1.ModuleConfigSchema };
|
|
16
|
+
}
|
|
17
|
+
get queries() {
|
|
18
|
+
return this.bridge.targetQueries(this.address);
|
|
19
|
+
}
|
|
20
|
+
get resolver() {
|
|
21
|
+
return this.bridge.targetResolver;
|
|
22
|
+
}
|
|
23
|
+
query(query, payloads) {
|
|
24
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
return yield this.bridge.targetQuery(this.address, query, payloads);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
queryable(query, payloads, queryConfig) {
|
|
29
|
+
return this.bridge.targetQueryable(this.address, query, payloads, queryConfig);
|
|
30
|
+
}
|
|
31
|
+
/* Resolves a filter from the perspective of the module, including through the parent/gateway module */
|
|
32
|
+
resolve(filter) {
|
|
33
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
return yield this.bridge.targetResolve(this.address, filter);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.HttpProxyModule = HttpProxyModule;
|
|
39
|
+
//# sourceMappingURL=HttpProxyModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpProxyModule.js","sourceRoot":"","sources":["../../src/HttpProxyModule.ts"],"names":[],"mappings":";;;;AAAA,gDAAqI;AAKrI,MAAa,eAAe;IAC1B,YAA+B,MAAkB,EAAqB,QAAgB;QAAvD,WAAM,GAAN,MAAM,CAAY;QAAqB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAE1F,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,EAAE,MAAM,EAAE,2BAAkB,EAAE,CAAA;IACvC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;IACnC,CAAC;IAEK,KAAK,CAAwD,KAAQ,EAAE,QAAuB;;YAClG,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrE,CAAC;KAAA;IAED,SAAS,CAAC,KAA2B,EAAE,QAAuB,EAAE,WAA0B;QACxF,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IAChF,CAAC;IAED,uGAAuG;IACjG,OAAO,CAAC,MAAqB;;YACjC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC9D,CAAC;KAAA;CACF;AA/BD,0CA+BC"}
|
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RemoteModuleResolver = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const assert_1 = require("@xylabs/assert");
|
|
6
5
|
const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
|
|
7
6
|
const module_1 = require("@xyo-network/module");
|
|
8
7
|
const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
|
|
9
8
|
const flatten_1 = tslib_1.__importDefault(require("lodash/flatten"));
|
|
10
|
-
const
|
|
11
|
-
const HttpBridgeConfig_1 = require("./HttpBridgeConfig");
|
|
9
|
+
const HttpProxyModule_1 = require("./HttpProxyModule");
|
|
12
10
|
class RemoteModuleResolver extends module_1.CompositeModuleResolver {
|
|
13
11
|
// TODO: Allow optional ctor param for supplying address for nested Nodes
|
|
14
12
|
// protected readonly address?: string,
|
|
@@ -28,22 +26,12 @@ class RemoteModuleResolver extends module_1.CompositeModuleResolver {
|
|
|
28
26
|
}
|
|
29
27
|
resolve(filter) {
|
|
30
28
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
|
|
32
|
-
return this.filterLocalModules(mods, filter);
|
|
29
|
+
return yield Promise.all((0, flatten_1.default)(yield this.resolveRemoteModules(filter)));
|
|
33
30
|
});
|
|
34
31
|
}
|
|
35
|
-
filterLocalModules(mods, filter) {
|
|
36
|
-
// TODO: Handle filter?.query
|
|
37
|
-
if (filter === null || filter === void 0 ? void 0 : filter.query)
|
|
38
|
-
throw new Error('Filtering by query not yet implemented by this resolver');
|
|
39
|
-
const config = filter === null || filter === void 0 ? void 0 : filter.config;
|
|
40
|
-
const filtered = (config === null || config === void 0 ? void 0 : config.length) ? mods.filter((mod) => config.includes(mod.config.schema)) : mods;
|
|
41
|
-
return filtered;
|
|
42
|
-
}
|
|
43
32
|
getRemoteAddresses() {
|
|
44
33
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const
|
|
46
|
-
const discover = yield nodeWrapper.discover();
|
|
34
|
+
const discover = yield this.bridge.targetDiscover('');
|
|
47
35
|
return (0, compact_1.default)(discover.map((payload) => {
|
|
48
36
|
if (payload.schema === address_payload_plugin_1.AddressSchema) {
|
|
49
37
|
const schemaPayload = payload;
|
|
@@ -56,37 +44,26 @@ class RemoteModuleResolver extends module_1.CompositeModuleResolver {
|
|
|
56
44
|
});
|
|
57
45
|
}
|
|
58
46
|
resolveByAddress(targetAddress) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
});
|
|
66
|
-
this.resolvedModules[targetAddress] = mod;
|
|
67
|
-
return mod;
|
|
68
|
-
});
|
|
47
|
+
const cached = this.resolvedModules[targetAddress];
|
|
48
|
+
if (cached)
|
|
49
|
+
return cached;
|
|
50
|
+
const mod = new HttpProxyModule_1.HttpProxyModule(this.bridge, targetAddress);
|
|
51
|
+
this.resolvedModules[targetAddress] = mod;
|
|
52
|
+
return mod;
|
|
69
53
|
}
|
|
70
54
|
resolveByName(name) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const mod = yield HttpBridge_1.HttpBridge.create({
|
|
76
|
-
config: { name, nodeUri: this.bridge.nodeUri, schema: HttpBridgeConfig_1.HttpBridgeConfigSchema },
|
|
77
|
-
});
|
|
78
|
-
this.resolvedModules[name] = mod;
|
|
79
|
-
this.resolvedModules[mod.address] = mod;
|
|
80
|
-
return mod;
|
|
81
|
-
});
|
|
55
|
+
const cached = this.resolvedModules[name];
|
|
56
|
+
if (cached)
|
|
57
|
+
return cached;
|
|
58
|
+
return undefined;
|
|
82
59
|
}
|
|
83
60
|
resolveRemoteModules(filter) {
|
|
84
61
|
var _a, _b;
|
|
85
62
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
63
|
const addresses = filter ? filter === null || filter === void 0 ? void 0 : filter.address : yield this.getRemoteAddresses();
|
|
87
64
|
const names = filter === null || filter === void 0 ? void 0 : filter.name;
|
|
88
|
-
const byAddress = yield Promise.all((_a = addresses === null || addresses === void 0 ? void 0 : addresses.map((address) => this.resolveByAddress(address))) !== null && _a !== void 0 ? _a : []);
|
|
89
|
-
const byName = yield Promise.all((_b = names === null || names === void 0 ? void 0 : names.map((name) => this.resolveByName(name))) !== null && _b !== void 0 ? _b : []);
|
|
65
|
+
const byAddress = (0, compact_1.default)(yield Promise.all((_a = addresses === null || addresses === void 0 ? void 0 : addresses.map((address) => this.resolveByAddress(address))) !== null && _a !== void 0 ? _a : []));
|
|
66
|
+
const byName = (0, compact_1.default)(yield Promise.all((_b = names === null || names === void 0 ? void 0 : names.map((name) => this.resolveByName(name))) !== null && _b !== void 0 ? _b : []));
|
|
90
67
|
return [...byAddress, ...byName];
|
|
91
68
|
});
|
|
92
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteModuleResolver.js","sourceRoot":"","sources":["../../src/RemoteModuleResolver.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"RemoteModuleResolver.js","sourceRoot":"","sources":["../../src/RemoteModuleResolver.ts"],"names":[],"mappings":"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"}
|