@xyo-network/bridge 2.46.3 → 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 -33
- 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/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +18938 -13129
- 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 +48 -32
- 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/esm/index.js +1 -0
- package/dist/esm/index.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/dist/types/index.d.ts +1 -0
- package/dist/types/index.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 +56 -32
- package/src/HttpProxyModule.ts +37 -0
- package/src/RemoteModuleResolver.ts +13 -41
- package/src/index.ts +1 -0
- package/src/spec/HttpBridge.spec.ts +6 -4
|
@@ -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,24 +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
|
-
|
|
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;
|
|
110
117
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
111
118
|
try {
|
|
112
119
|
const boundQuery = yield this.bindQuery(query, payloads);
|
|
113
|
-
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
|
+
}
|
|
114
126
|
return result.data.data;
|
|
115
127
|
}
|
|
116
128
|
catch (ex) {
|
|
117
129
|
const error = ex;
|
|
118
|
-
|
|
119
|
-
|
|
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)}`);
|
|
120
132
|
throw error;
|
|
121
133
|
}
|
|
122
134
|
});
|
|
123
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
|
+
}
|
|
124
144
|
}
|
|
125
145
|
exports.HttpBridge = HttpBridge;
|
|
126
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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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -5,6 +5,7 @@ tslib_1.__exportStar(require("./AbstractBridge"), exports);
|
|
|
5
5
|
tslib_1.__exportStar(require("./BridgeWrapper"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./Config"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./HttpBridge"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./HttpBridgeConfig"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./PartialConfig"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./Queries"), exports);
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC;AAChC,0DAA+B;AAC/B,mDAAwB;AACxB,uDAA4B;AAC5B,0DAA+B;AAC/B,oDAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC;AAChC,0DAA+B;AAC/B,mDAAwB;AACxB,uDAA4B;AAC5B,6DAAkC;AAClC,0DAA+B;AAC/B,oDAAyB"}
|