@xyo-network/bridge 2.34.0 → 2.36.0-rc.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.
- package/dist/cjs/XyoBridge.d.ts +2 -2
- package/dist/cjs/XyoBridge.d.ts.map +1 -1
- package/dist/cjs/XyoBridge.js +7 -6
- package/dist/cjs/XyoBridge.js.map +1 -1
- package/dist/cjs/XyoBridgeWrapper.d.ts.map +1 -1
- package/dist/cjs/XyoBridgeWrapper.js +7 -6
- package/dist/cjs/XyoBridgeWrapper.js.map +1 -1
- package/dist/cjs/XyoHttpBridge.d.ts +3 -3
- package/dist/cjs/XyoHttpBridge.d.ts.map +1 -1
- package/dist/cjs/XyoHttpBridge.js +12 -10
- package/dist/cjs/XyoHttpBridge.js.map +1 -1
- package/dist/docs.json +2730 -1568
- package/dist/esm/XyoBridge.d.ts +2 -2
- package/dist/esm/XyoBridge.d.ts.map +1 -1
- package/dist/esm/XyoBridge.js +8 -7
- package/dist/esm/XyoBridge.js.map +1 -1
- package/dist/esm/XyoBridgeWrapper.d.ts.map +1 -1
- package/dist/esm/XyoBridgeWrapper.js +7 -6
- package/dist/esm/XyoBridgeWrapper.js.map +1 -1
- package/dist/esm/XyoHttpBridge.d.ts +3 -3
- package/dist/esm/XyoHttpBridge.d.ts.map +1 -1
- package/dist/esm/XyoHttpBridge.js +13 -11
- package/dist/esm/XyoHttpBridge.js.map +1 -1
- package/package.json +7 -6
- package/src/XyoBridge.ts +9 -7
- package/src/XyoBridgeWrapper.ts +7 -6
- package/src/XyoHttpBridge.ts +14 -12
package/dist/esm/XyoBridge.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XyoBoundWitness } from '@xyo-network/boundwitness';
|
|
2
|
-
import { XyoModule, XyoQuery } from '@xyo-network/module';
|
|
2
|
+
import { XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
3
|
import { XyoPayload } from '@xyo-network/payload';
|
|
4
4
|
import { Promisable } from '@xyo-network/promise';
|
|
5
5
|
import { BridgeModule } from './Bridge';
|
|
@@ -9,7 +9,7 @@ export declare abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBri
|
|
|
9
9
|
abstract connect(): Promisable<boolean>;
|
|
10
10
|
abstract disconnect(): Promisable<boolean>;
|
|
11
11
|
abstract forward(query: XyoQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>;
|
|
12
|
-
query<T extends
|
|
12
|
+
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T): Promise<import("@xyo-network/module").ModuleQueryResult<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
|
|
13
13
|
schema: string;
|
|
14
14
|
}>>;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,8BAAsB,SAAS,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,YAAY;IAC1H,OAAO;IAIhB,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;IACvC,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;IAE1C,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAErE,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC;;;CA0BrF"}
|
package/dist/esm/XyoBridge.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
3
|
-
import { XyoModule } from '@xyo-network/module';
|
|
3
|
+
import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
|
|
4
4
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
|
|
5
5
|
export class XyoBridge extends XyoModule {
|
|
6
6
|
queries() {
|
|
7
7
|
return [XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, ...super.queries()];
|
|
8
8
|
}
|
|
9
|
-
async query(
|
|
10
|
-
|
|
9
|
+
async query(query) {
|
|
10
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery(query);
|
|
11
|
+
const typedQuery = wrapper.query.payload;
|
|
12
|
+
assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
|
|
11
13
|
const payloads = [];
|
|
12
14
|
const queryAccount = new XyoAccount();
|
|
13
|
-
const typedQuery = query;
|
|
14
15
|
switch (typedQuery.schema) {
|
|
15
16
|
case XyoBridgeConnectQuerySchema: {
|
|
16
17
|
await this.connect();
|
|
@@ -21,14 +22,14 @@ export class XyoBridge extends XyoModule {
|
|
|
21
22
|
break;
|
|
22
23
|
}
|
|
23
24
|
default:
|
|
24
|
-
if (super.queries().includes(
|
|
25
|
-
return super.query(
|
|
25
|
+
if (super.queries().includes(typedQuery.schema)) {
|
|
26
|
+
return super.query(query);
|
|
26
27
|
}
|
|
27
28
|
else {
|
|
28
29
|
return this.forward(typedQuery);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
return this.
|
|
32
|
+
return this.bindResult(payloads, queryAccount);
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=XyoBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridge.js","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"XyoBridge.js","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAkC,MAAM,qBAAqB,CAAA;AAMzG,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAgB,SAA6D,SAAQ,SAAkB;IAClG,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;IAOQ,KAAK,CAAC,KAAK,CAAwD,KAAQ;QAClF,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAiB,KAAK,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACxC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAE9D,MAAM,QAAQ,GAA0B,EAAE,CAAA;QAC1C,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QAErC,QAAQ,UAAU,CAAC,MAAM,EAAE;YACzB,KAAK,2BAA2B,CAAC,CAAC;gBAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBACpB,MAAK;aACN;YACD,KAAK,8BAA8B,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;gBACvB,MAAK;aACN;YACD;gBACE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oBAC/C,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;iBAC1B;qBAAM;oBACL,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;iBAChC;SACJ;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAChD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridgeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoBridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoBridgeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoBridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,qBAAa,gBAAiB,SAAQ,gBAAiB,YAAW,MAAM;IAChE,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAMjD"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { XyoModuleWrapper } from '@xyo-network/module';
|
|
2
|
+
import { PayloadWrapper } from '@xyo-network/payload';
|
|
2
3
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
|
|
3
4
|
export class XyoBridgeWrapper extends XyoModuleWrapper {
|
|
4
5
|
async connect(uri) {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
await this.module.query(
|
|
6
|
+
const queryPayload = PayloadWrapper.parse({ schema: XyoBridgeConnectQuerySchema, uri });
|
|
7
|
+
const query = await this.bindQuery([queryPayload.body], queryPayload.hash);
|
|
8
|
+
await this.module.query(query[0], query[1]);
|
|
8
9
|
return true;
|
|
9
10
|
}
|
|
10
11
|
async disconnect(uri) {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
await this.module.query(
|
|
12
|
+
const queryPayload = PayloadWrapper.parse({ schema: XyoBridgeDisconnectQuerySchema, uri });
|
|
13
|
+
const query = await this.bindQuery([queryPayload.body], queryPayload.hash);
|
|
14
|
+
await this.module.query(query[0], query[1]);
|
|
14
15
|
return true;
|
|
15
16
|
}
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridgeWrapper.js","sourceRoot":"","sources":["../../src/XyoBridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoBridgeWrapper.js","sourceRoot":"","sources":["../../src/XyoBridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAA;QACvG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1G,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XyoBoundWitness } from '@xyo-network/boundwitness';
|
|
2
|
-
import {
|
|
2
|
+
import { ModuleQueryResult, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
3
|
import { XyoPayloads } from '@xyo-network/payload';
|
|
4
4
|
import { Promisable } from '@xyo-network/promise';
|
|
5
5
|
import { AxiosRequestHeaders } from 'axios';
|
|
@@ -22,7 +22,7 @@ export declare class XyoHttpBridge extends XyoModule<XyoHttpBridgeConfig> implem
|
|
|
22
22
|
get targetAddressString(): string;
|
|
23
23
|
connect(): Promisable<boolean>;
|
|
24
24
|
disconnect(): Promisable<boolean>;
|
|
25
|
-
protected forward(query: XyoQuery): Promise<[XyoBoundWitness, XyoPayloads]>;
|
|
26
|
-
query<T extends
|
|
25
|
+
protected forward(query: XyoQuery, _payloads?: XyoPayloads): Promise<[XyoBoundWitness, XyoPayloads]>;
|
|
26
|
+
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayloads): Promise<ModuleQueryResult>;
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=XyoHttpBridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAA4B,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC5H,OAAO,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAc,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAEvD,OAAO,EAAa,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAGrD,oBAAY,yBAAyB,GAAG,gCAAgC,CAAA;AACxE,eAAO,MAAM,yBAAyB,EAAE,yBAA4D,CAAA;AAEpG,oBAAY,mBAAmB,GAAG,eAAe,CAAC;IAChD,MAAM,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B,CAAC,CAAA;AAEF,qBAAa,aAAc,SAAQ,SAAS,CAAC,mBAAmB,CAAE,YAAW,YAAY;IACvF,OAAO,CAAC,KAAK,CAAW;gBAEZ,MAAM,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;IAK5D,IAAW,OAAO,WAEjB;IAED,IAAW,aAAa,uBAEvB;IAED,IAAW,mBAAmB,WAE7B;IAED,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;IAI9B,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;cAIjB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAa3F,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAwB1I"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
3
|
-
import { XyoModule } from '@xyo-network/module';
|
|
3
|
+
import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
|
|
4
4
|
import { AxiosJson } from './AxiosJson';
|
|
5
5
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
|
|
6
6
|
export const XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
|
|
@@ -25,9 +25,9 @@ export class XyoHttpBridge extends XyoModule {
|
|
|
25
25
|
disconnect() {
|
|
26
26
|
return true;
|
|
27
27
|
}
|
|
28
|
-
async forward(query) {
|
|
28
|
+
async forward(query, _payloads) {
|
|
29
29
|
try {
|
|
30
|
-
const boundQuery = this.
|
|
30
|
+
const boundQuery = this.bindQuery([query]);
|
|
31
31
|
const result = await this.axios.post(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]]);
|
|
32
32
|
return result.data;
|
|
33
33
|
}
|
|
@@ -38,11 +38,13 @@ export class XyoHttpBridge extends XyoModule {
|
|
|
38
38
|
throw error;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
async query(
|
|
42
|
-
|
|
41
|
+
async query(query, payloads) {
|
|
42
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
43
|
+
const typedQuery = wrapper.query.payload;
|
|
44
|
+
assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
|
|
43
45
|
const queryAccount = new XyoAccount();
|
|
44
|
-
const
|
|
45
|
-
switch (
|
|
46
|
+
const resultPayloads = [];
|
|
47
|
+
switch (typedQuery.schema) {
|
|
46
48
|
case XyoBridgeConnectQuerySchema: {
|
|
47
49
|
await this.connect();
|
|
48
50
|
break;
|
|
@@ -52,14 +54,14 @@ export class XyoHttpBridge extends XyoModule {
|
|
|
52
54
|
break;
|
|
53
55
|
}
|
|
54
56
|
default:
|
|
55
|
-
if (super.queries().find((schema) => schema ===
|
|
56
|
-
return super.query(
|
|
57
|
+
if (super.queries().find((schema) => schema === typedQuery.schema)) {
|
|
58
|
+
return super.query(query, payloads);
|
|
57
59
|
}
|
|
58
60
|
else {
|
|
59
|
-
return this.forward(query);
|
|
61
|
+
return this.forward(query, payloads);
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
|
-
return this.
|
|
64
|
+
return this.bindResult(resultPayloads, queryAccount);
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
//# sourceMappingURL=XyoHttpBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAkC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.7",
|
|
14
|
-
"@xyo-network/account": "^2.
|
|
15
|
-
"@xyo-network/boundwitness": "^2.
|
|
16
|
-
"@xyo-network/module": "^2.
|
|
17
|
-
"@xyo-network/payload": "^2.
|
|
18
|
-
"@xyo-network/promise": "^2.
|
|
14
|
+
"@xyo-network/account": "^2.36.0-rc.1",
|
|
15
|
+
"@xyo-network/boundwitness": "^2.36.0-rc.1",
|
|
16
|
+
"@xyo-network/module": "^2.36.0-rc.1",
|
|
17
|
+
"@xyo-network/payload": "^2.36.0-rc.1",
|
|
18
|
+
"@xyo-network/promise": "^2.36.0-rc.1",
|
|
19
19
|
"pako": "^2.0.4",
|
|
20
20
|
"tslib": "^2.4.0"
|
|
21
21
|
},
|
|
@@ -55,5 +55,6 @@
|
|
|
55
55
|
},
|
|
56
56
|
"sideEffects": false,
|
|
57
57
|
"types": "dist/esm/index.d.ts",
|
|
58
|
-
"version": "2.
|
|
58
|
+
"version": "2.36.0-rc.1",
|
|
59
|
+
"stableVersion": "2.35.0"
|
|
59
60
|
}
|
package/src/XyoBridge.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account'
|
|
3
3
|
import { XyoBoundWitness } from '@xyo-network/boundwitness'
|
|
4
|
-
import { XyoModule, XyoQuery } from '@xyo-network/module'
|
|
4
|
+
import { QueryBoundWitnessWrapper, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
|
|
5
5
|
import { XyoPayload } from '@xyo-network/payload'
|
|
6
6
|
import { Promisable } from '@xyo-network/promise'
|
|
7
7
|
|
|
@@ -19,12 +19,14 @@ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfi
|
|
|
19
19
|
|
|
20
20
|
abstract forward(query: XyoQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>
|
|
21
21
|
|
|
22
|
-
override async query<T extends
|
|
23
|
-
|
|
22
|
+
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T) {
|
|
23
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoBridgeQuery>(query)
|
|
24
|
+
const typedQuery = wrapper.query.payload
|
|
25
|
+
assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
|
|
24
26
|
|
|
25
27
|
const payloads: (XyoPayload | null)[] = []
|
|
26
28
|
const queryAccount = new XyoAccount()
|
|
27
|
-
|
|
29
|
+
|
|
28
30
|
switch (typedQuery.schema) {
|
|
29
31
|
case XyoBridgeConnectQuerySchema: {
|
|
30
32
|
await this.connect()
|
|
@@ -35,12 +37,12 @@ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfi
|
|
|
35
37
|
break
|
|
36
38
|
}
|
|
37
39
|
default:
|
|
38
|
-
if (super.queries().includes(
|
|
39
|
-
return super.query(
|
|
40
|
+
if (super.queries().includes(typedQuery.schema)) {
|
|
41
|
+
return super.query(query)
|
|
40
42
|
} else {
|
|
41
43
|
return this.forward(typedQuery)
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
|
-
return this.
|
|
46
|
+
return this.bindResult(payloads, queryAccount)
|
|
45
47
|
}
|
|
46
48
|
}
|
package/src/XyoBridgeWrapper.ts
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { XyoModuleWrapper } from '@xyo-network/module'
|
|
2
|
+
import { PayloadWrapper } from '@xyo-network/payload'
|
|
2
3
|
|
|
3
4
|
import { Bridge } from './Bridge'
|
|
4
5
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
|
|
5
6
|
|
|
6
7
|
export class XyoBridgeWrapper extends XyoModuleWrapper implements Bridge {
|
|
7
8
|
async connect(uri?: string): Promise<boolean> {
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
await this.module.query(
|
|
9
|
+
const queryPayload = PayloadWrapper.parse<XyoBridgeQuery>({ schema: XyoBridgeConnectQuerySchema, uri })
|
|
10
|
+
const query = await this.bindQuery([queryPayload.body], queryPayload.hash)
|
|
11
|
+
await this.module.query(query[0], query[1])
|
|
11
12
|
return true
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
async disconnect(uri?: string): Promise<boolean> {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
await this.module.query(
|
|
16
|
+
const queryPayload = PayloadWrapper.parse<XyoBridgeQuery>({ schema: XyoBridgeDisconnectQuerySchema, uri })
|
|
17
|
+
const query = await this.bindQuery([queryPayload.body], queryPayload.hash)
|
|
18
|
+
await this.module.query(query[0], query[1])
|
|
18
19
|
return true
|
|
19
20
|
}
|
|
20
21
|
}
|
package/src/XyoHttpBridge.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account'
|
|
3
3
|
import { XyoBoundWitness } from '@xyo-network/boundwitness'
|
|
4
|
-
import {
|
|
4
|
+
import { ModuleQueryResult, QueryBoundWitnessWrapper, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
|
|
5
5
|
import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
|
|
6
6
|
import { Promisable } from '@xyo-network/promise'
|
|
7
7
|
import { AxiosError, AxiosRequestHeaders } from 'axios'
|
|
@@ -10,7 +10,7 @@ import { AxiosJson, AxiosJsonRequestConfig } from './AxiosJson'
|
|
|
10
10
|
import { BridgeModule } from './Bridge'
|
|
11
11
|
import { XyoBridgeConfig } from './Config'
|
|
12
12
|
import { PartialBridgeConfig } from './PartialConfig'
|
|
13
|
-
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries'
|
|
13
|
+
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
|
|
14
14
|
|
|
15
15
|
export type XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config'
|
|
16
16
|
export const XyoHttpBridgeConfigSchema: XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config'
|
|
@@ -49,9 +49,9 @@ export class XyoHttpBridge extends XyoModule<XyoHttpBridgeConfig> implements Bri
|
|
|
49
49
|
return true
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
protected async forward(query: XyoQuery): Promise<[XyoBoundWitness, XyoPayloads]> {
|
|
52
|
+
protected async forward(query: XyoQuery, _payloads?: XyoPayloads): Promise<[XyoBoundWitness, XyoPayloads]> {
|
|
53
53
|
try {
|
|
54
|
-
const boundQuery = this.
|
|
54
|
+
const boundQuery = this.bindQuery([query])
|
|
55
55
|
const result = await this.axios.post<[XyoBoundWitness, XyoPayloads]>(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]])
|
|
56
56
|
return result.data
|
|
57
57
|
} catch (ex) {
|
|
@@ -62,11 +62,13 @@ export class XyoHttpBridge extends XyoModule<XyoHttpBridgeConfig> implements Bri
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
override async query<T extends
|
|
66
|
-
|
|
65
|
+
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayloads): Promise<ModuleQueryResult> {
|
|
66
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoBridgeQuery>(query, payloads)
|
|
67
|
+
const typedQuery = wrapper.query.payload
|
|
68
|
+
assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
|
|
67
69
|
const queryAccount = new XyoAccount()
|
|
68
|
-
const
|
|
69
|
-
switch (
|
|
70
|
+
const resultPayloads: (XyoPayload | null)[] = []
|
|
71
|
+
switch (typedQuery.schema) {
|
|
70
72
|
case XyoBridgeConnectQuerySchema: {
|
|
71
73
|
await this.connect()
|
|
72
74
|
break
|
|
@@ -76,12 +78,12 @@ export class XyoHttpBridge extends XyoModule<XyoHttpBridgeConfig> implements Bri
|
|
|
76
78
|
break
|
|
77
79
|
}
|
|
78
80
|
default:
|
|
79
|
-
if (super.queries().find((schema) => schema ===
|
|
80
|
-
return super.query(
|
|
81
|
+
if (super.queries().find((schema) => schema === typedQuery.schema)) {
|
|
82
|
+
return super.query(query, payloads)
|
|
81
83
|
} else {
|
|
82
|
-
return this.forward(query)
|
|
84
|
+
return this.forward(query, payloads)
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
|
-
return this.
|
|
87
|
+
return this.bindResult(resultPayloads, queryAccount)
|
|
86
88
|
}
|
|
87
89
|
}
|