@xyo-network/bridge 2.32.0-rc.4 → 2.32.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/AxiosJson.d.ts +10 -0
- package/dist/cjs/AxiosJson.d.ts.map +1 -0
- package/dist/cjs/AxiosJson.js +36 -0
- package/dist/cjs/AxiosJson.js.map +1 -0
- package/dist/cjs/Config.d.ts +2 -1
- package/dist/cjs/Config.d.ts.map +1 -1
- package/dist/cjs/PartialConfig.d.ts +4 -0
- package/dist/cjs/PartialConfig.d.ts.map +1 -0
- package/dist/cjs/{PartialBridgeConfig.js → PartialConfig.js} +1 -1
- package/dist/cjs/PartialConfig.js.map +1 -0
- package/dist/cjs/XyoBridge.js +1 -1
- package/dist/cjs/XyoBridge.js.map +1 -1
- package/dist/cjs/XyoHttpBridge.d.ts +7 -6
- package/dist/cjs/XyoHttpBridge.d.ts.map +1 -1
- package/dist/cjs/XyoHttpBridge.js +12 -31
- package/dist/cjs/XyoHttpBridge.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +697 -748
- package/dist/esm/AxiosJson.d.ts +10 -0
- package/dist/esm/AxiosJson.d.ts.map +1 -0
- package/dist/esm/AxiosJson.js +39 -0
- package/dist/esm/AxiosJson.js.map +1 -0
- package/dist/esm/Config.d.ts +2 -1
- package/dist/esm/Config.d.ts.map +1 -1
- package/dist/esm/PartialConfig.d.ts +4 -0
- package/dist/esm/PartialConfig.d.ts.map +1 -0
- package/dist/esm/PartialConfig.js +2 -0
- package/dist/esm/PartialConfig.js.map +1 -0
- package/dist/esm/XyoBridge.js +1 -1
- package/dist/esm/XyoBridge.js.map +1 -1
- package/dist/esm/XyoHttpBridge.d.ts +7 -6
- package/dist/esm/XyoHttpBridge.d.ts.map +1 -1
- package/dist/esm/XyoHttpBridge.js +10 -34
- package/dist/esm/XyoHttpBridge.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +5 -6
- package/src/AxiosJson.ts +43 -0
- package/src/Config.ts +2 -1
- package/src/PartialConfig.ts +5 -0
- package/src/XyoBridge.ts +1 -1
- package/src/XyoHttpBridge.spec.ts +10 -9
- package/src/XyoHttpBridge.ts +14 -36
- package/src/index.ts +1 -1
- package/dist/cjs/PartialBridgeConfig.d.ts +0 -5
- package/dist/cjs/PartialBridgeConfig.d.ts.map +0 -1
- package/dist/cjs/PartialBridgeConfig.js.map +0 -1
- package/dist/esm/PartialBridgeConfig.d.ts +0 -5
- package/dist/esm/PartialBridgeConfig.d.ts.map +0 -1
- package/dist/esm/PartialBridgeConfig.js +0 -2
- package/dist/esm/PartialBridgeConfig.js.map +0 -1
- package/src/PartialBridgeConfig.ts +0 -5
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Axios, AxiosRequestConfig } from 'axios';
|
|
2
|
+
export declare type AxiosJsonRequestConfig<D = any> = AxiosRequestConfig<D> & {
|
|
3
|
+
compressLength?: number;
|
|
4
|
+
};
|
|
5
|
+
export declare class AxiosJson extends Axios {
|
|
6
|
+
constructor(config?: AxiosJsonRequestConfig);
|
|
7
|
+
private static axiosHeaders;
|
|
8
|
+
private static axiosConfig;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AxiosJson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxiosJson.d.ts","sourceRoot":"","sources":["../../src/AxiosJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAuB,MAAM,OAAO,CAAA;AAItE,oBAAY,sBAAsB,CAAC,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjG,qBAAa,SAAU,SAAQ,KAAK;gBACtB,MAAM,CAAC,EAAE,sBAAsB;IAI3C,OAAO,CAAC,MAAM,CAAC,YAAY;IAQ3B,OAAO,CAAC,MAAM,CAAC,WAAW;CAuB3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Axios } from 'axios';
|
|
2
|
+
import { gzip } from 'pako';
|
|
3
|
+
export class AxiosJson extends Axios {
|
|
4
|
+
constructor(config) {
|
|
5
|
+
super(AxiosJson.axiosConfig(config));
|
|
6
|
+
}
|
|
7
|
+
static axiosHeaders(headers) {
|
|
8
|
+
return {
|
|
9
|
+
Accept: 'application/json, text/plain, *.*',
|
|
10
|
+
'Content-Type': 'application/json',
|
|
11
|
+
...headers,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
static axiosConfig({ compressLength, headers, ...config } = {}) {
|
|
15
|
+
return {
|
|
16
|
+
headers: this.axiosHeaders(headers),
|
|
17
|
+
transformRequest: (data, headers) => {
|
|
18
|
+
const json = JSON.stringify(data);
|
|
19
|
+
if (headers && data) {
|
|
20
|
+
if (json.length > (compressLength ?? 1024)) {
|
|
21
|
+
headers['Content-Encoding'] = 'gzip';
|
|
22
|
+
return gzip(JSON.stringify(data)).buffer;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return JSON.stringify(data);
|
|
26
|
+
},
|
|
27
|
+
transformResponse: (data) => {
|
|
28
|
+
try {
|
|
29
|
+
return JSON.parse(data);
|
|
30
|
+
}
|
|
31
|
+
catch (ex) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
...config,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=AxiosJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxiosJson.js","sourceRoot":"","sources":["../../src/AxiosJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA2C,MAAM,OAAO,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,MAA+B;QACzC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,OAA6B;QACvD,OAAO;YACL,MAAM,EAAE,mCAAmC;YAC3C,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO;SACX,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,KAA6B,EAAE;QAC5F,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBACjC,IAAI,OAAO,IAAI,IAAI,EAAE;oBACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,EAAE;wBAC1C,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAA;wBACpC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;qBACzC;iBACF;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;YACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACxB;gBAAC,OAAO,EAAE,EAAE;oBACX,OAAO,IAAI,CAAA;iBACZ;YACH,CAAC;YACD,GAAG,MAAM;SACV,CAAA;IACH,CAAC;CACF"}
|
package/dist/esm/Config.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { XyoPayload } from '@xyo-network/payload';
|
|
|
3
3
|
export declare type XyoBridgeConfigSchema = 'network.xyo.bridge.config';
|
|
4
4
|
export declare const XyoBridgeConfigSchema: XyoBridgeConfigSchema;
|
|
5
5
|
export declare type XyoBridgeConfig<TConfig extends XyoPayload = XyoPayload> = XyoModuleConfig<{
|
|
6
|
-
|
|
6
|
+
nodeUri: string;
|
|
7
|
+
targetAddress?: string;
|
|
7
8
|
} & TConfig>;
|
|
8
9
|
//# sourceMappingURL=Config.d.ts.map
|
package/dist/esm/Config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,qBAAqB,GAAG,2BAA2B,CAAA;AAC/D,eAAO,MAAM,qBAAqB,EAAE,qBAAmD,CAAA;AAEvF,oBAAY,eAAe,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,eAAe,CACpF;IACE,
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,qBAAqB,GAAG,2BAA2B,CAAA;AAC/D,eAAO,MAAM,qBAAqB,EAAE,qBAAmD,CAAA;AAEvF,oBAAY,eAAe,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,eAAe,CACpF;IACE,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,OAAO,CACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PartialConfig.d.ts","sourceRoot":"","sources":["../../src/PartialConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,oBAAY,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PartialConfig.js","sourceRoot":"","sources":["../../src/PartialConfig.ts"],"names":[],"mappings":""}
|
package/dist/esm/XyoBridge.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridge.js","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAM/C,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAgB,SACpB,SAAQ,SAA0B;IAGzB,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;IAOQ,KAAK,CAAC,KAAK,CAAC,KAAa;QAChC,MAAM,QAAQ,GAA0B,EAAE,CAAA;QAC1C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,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,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC7D,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;iBAC1B;qBAAM;oBACL,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoBridge.js","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAM/C,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAgB,SACpB,SAAQ,SAA0B;IAGzB,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;IAOQ,KAAK,CAAC,KAAK,CAAC,KAAa;QAChC,MAAM,QAAQ,GAA0B,EAAE,CAAA;QAC1C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,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,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC7D,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;iBAC1B;qBAAM;oBACL,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;iBAC3B;SACJ;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChD,CAAC;CACF"}
|
|
@@ -2,24 +2,25 @@ import { XyoBoundWitness } from '@xyo-network/boundwitness';
|
|
|
2
2
|
import { XyoModule } from '@xyo-network/module';
|
|
3
3
|
import { XyoPayloads } from '@xyo-network/payload';
|
|
4
4
|
import { Promisable } from '@xyo-network/promisable';
|
|
5
|
-
import {
|
|
5
|
+
import { AxiosRequestHeaders } from 'axios';
|
|
6
|
+
import { AxiosJsonRequestConfig } from './AxiosJson';
|
|
6
7
|
import { BridgeModule } from './Bridge';
|
|
7
8
|
import { XyoBridgeConfig } from './Config';
|
|
8
|
-
import { PartialBridgeConfig } from './
|
|
9
|
+
import { PartialBridgeConfig } from './PartialConfig';
|
|
9
10
|
import { XyoBridgeQuery } from './Queries';
|
|
10
11
|
export declare type XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
|
|
11
12
|
export declare const XyoHttpBridgeConfigSchema: XyoHttpBridgeConfigSchema;
|
|
12
13
|
export declare type XyoHttpBridgeConfig = XyoBridgeConfig<{
|
|
13
14
|
schema: XyoHttpBridgeConfigSchema;
|
|
14
15
|
headers?: AxiosRequestHeaders;
|
|
15
|
-
axios?:
|
|
16
|
+
axios?: AxiosJsonRequestConfig;
|
|
16
17
|
}>;
|
|
17
18
|
export declare class XyoHttpBridge<TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends XyoModule<XyoHttpBridgeConfig, TQuery> implements BridgeModule<TQuery> {
|
|
18
19
|
private axios;
|
|
19
20
|
constructor(config: PartialBridgeConfig<XyoHttpBridgeConfig>);
|
|
20
|
-
get
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
get nodeUri(): string;
|
|
22
|
+
get targetAddress(): string | undefined;
|
|
23
|
+
get targetAddressString(): string;
|
|
23
24
|
connect(): Promisable<boolean>;
|
|
24
25
|
disconnect(): Promisable<boolean>;
|
|
25
26
|
forward(query: TQuery): Promise<[XyoBoundWitness, XyoPayloads]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,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;AACrD,OAAO,EAA+D,cAAc,EAAE,MAAM,WAAW,CAAA;AAEvG,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,aAAa,CAAC,MAAM,SAAS,cAAc,GAAG,cAAc,CACvE,SAAQ,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAC7C,YAAW,YAAY,CAAC,MAAM,CAAC;IAE/B,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;IAI3B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAetD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CAqB7E"}
|
|
@@ -1,47 +1,22 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoModule } from '@xyo-network/module';
|
|
3
|
-
import {
|
|
4
|
-
import { gzip } from 'pako';
|
|
3
|
+
import { AxiosJson } from './AxiosJson';
|
|
5
4
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
|
|
6
5
|
export const XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
|
|
7
6
|
export class XyoHttpBridge extends XyoModule {
|
|
8
7
|
axios;
|
|
9
8
|
constructor(config) {
|
|
10
9
|
super({ schema: XyoHttpBridgeConfigSchema, ...config });
|
|
11
|
-
this.axios = new
|
|
10
|
+
this.axios = new AxiosJson(this.config?.axios);
|
|
12
11
|
}
|
|
13
|
-
get
|
|
14
|
-
return assertEx(this.config?.
|
|
12
|
+
get nodeUri() {
|
|
13
|
+
return assertEx(this.config?.nodeUri, 'Missing nodeUri');
|
|
15
14
|
}
|
|
16
|
-
get
|
|
17
|
-
return
|
|
18
|
-
...this.config?.headers,
|
|
19
|
-
Accept: 'application/json, text/plain, *.*',
|
|
20
|
-
'Content-Type': 'application/json',
|
|
21
|
-
};
|
|
15
|
+
get targetAddress() {
|
|
16
|
+
return this.config?.targetAddress;
|
|
22
17
|
}
|
|
23
|
-
get
|
|
24
|
-
return
|
|
25
|
-
headers: this.axiosHeaders,
|
|
26
|
-
transformRequest: (data, headers) => {
|
|
27
|
-
const json = JSON.stringify(data);
|
|
28
|
-
if (headers && data) {
|
|
29
|
-
if (json.length > (this.config?.axios ?? 1024)) {
|
|
30
|
-
headers['Content-Encoding'] = 'gzip';
|
|
31
|
-
return gzip(JSON.stringify(data)).buffer;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return JSON.stringify(data);
|
|
35
|
-
},
|
|
36
|
-
transformResponse: (data) => {
|
|
37
|
-
try {
|
|
38
|
-
return JSON.parse(data);
|
|
39
|
-
}
|
|
40
|
-
catch (ex) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
};
|
|
18
|
+
get targetAddressString() {
|
|
19
|
+
return this.targetAddress ?? '';
|
|
45
20
|
}
|
|
46
21
|
connect() {
|
|
47
22
|
return true;
|
|
@@ -51,7 +26,8 @@ export class XyoHttpBridge extends XyoModule {
|
|
|
51
26
|
}
|
|
52
27
|
async forward(query) {
|
|
53
28
|
try {
|
|
54
|
-
const
|
|
29
|
+
const boundQuery = this.bindPayloads([query]);
|
|
30
|
+
const result = await this.axios.post(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]]);
|
|
55
31
|
console.log(`Status: ${result.status}`);
|
|
56
32
|
console.log(`Data: ${JSON.stringify(result.data, null, 2)}`);
|
|
57
33
|
return result.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.7",
|
|
14
|
-
"@xyo-network/boundwitness": "^2.32.0
|
|
15
|
-
"@xyo-network/module": "^2.32.0
|
|
16
|
-
"@xyo-network/payload": "^2.32.0
|
|
17
|
-
"@xyo-network/promisable": "^2.32.0
|
|
14
|
+
"@xyo-network/boundwitness": "^2.32.0",
|
|
15
|
+
"@xyo-network/module": "^2.32.0",
|
|
16
|
+
"@xyo-network/payload": "^2.32.0",
|
|
17
|
+
"@xyo-network/promisable": "^2.32.0",
|
|
18
18
|
"pako": "^2.0.4",
|
|
19
19
|
"tslib": "^2.4.0"
|
|
20
20
|
},
|
|
@@ -54,6 +54,5 @@
|
|
|
54
54
|
},
|
|
55
55
|
"sideEffects": false,
|
|
56
56
|
"types": "dist/esm/index.d.ts",
|
|
57
|
-
"version": "2.32.0
|
|
58
|
-
"stableVersion": "2.31.5"
|
|
57
|
+
"version": "2.32.0"
|
|
59
58
|
}
|
package/src/AxiosJson.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Axios, AxiosRequestConfig, AxiosRequestHeaders } from 'axios'
|
|
2
|
+
import { gzip } from 'pako'
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
export type AxiosJsonRequestConfig<D = any> = AxiosRequestConfig<D> & { compressLength?: number }
|
|
6
|
+
|
|
7
|
+
export class AxiosJson extends Axios {
|
|
8
|
+
constructor(config?: AxiosJsonRequestConfig) {
|
|
9
|
+
super(AxiosJson.axiosConfig(config))
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
private static axiosHeaders(headers?: AxiosRequestHeaders): AxiosRequestHeaders {
|
|
13
|
+
return {
|
|
14
|
+
Accept: 'application/json, text/plain, *.*',
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
...headers,
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
private static axiosConfig({ compressLength, headers, ...config }: AxiosJsonRequestConfig = {}): AxiosRequestConfig {
|
|
21
|
+
return {
|
|
22
|
+
headers: this.axiosHeaders(headers),
|
|
23
|
+
transformRequest: (data, headers) => {
|
|
24
|
+
const json = JSON.stringify(data)
|
|
25
|
+
if (headers && data) {
|
|
26
|
+
if (json.length > (compressLength ?? 1024)) {
|
|
27
|
+
headers['Content-Encoding'] = 'gzip'
|
|
28
|
+
return gzip(JSON.stringify(data)).buffer
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return JSON.stringify(data)
|
|
32
|
+
},
|
|
33
|
+
transformResponse: (data) => {
|
|
34
|
+
try {
|
|
35
|
+
return JSON.parse(data)
|
|
36
|
+
} catch (ex) {
|
|
37
|
+
return null
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
...config,
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
package/src/Config.ts
CHANGED
package/src/XyoBridge.ts
CHANGED
|
@@ -35,7 +35,7 @@ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfi
|
|
|
35
35
|
if (super.queries().find((schema) => schema === query.schema)) {
|
|
36
36
|
return super.query(query)
|
|
37
37
|
} else {
|
|
38
|
-
return
|
|
38
|
+
return this.forward(query)
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
return [this.bindPayloads(payloads), payloads]
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { XyoArchivistWrapper } from '@xyo-network/archivist'
|
|
2
|
+
import { uuid } from '@xyo-network/core'
|
|
2
3
|
import { XyoPayloadWrapper } from '@xyo-network/payload'
|
|
3
|
-
import { XyoIdPayload, XyoIdSchema } from '@xyo-network/payload-plugins'
|
|
4
4
|
|
|
5
5
|
import { XyoHttpBridge } from './XyoHttpBridge'
|
|
6
6
|
|
|
7
7
|
test('XyoHttpBridge', async () => {
|
|
8
|
-
const
|
|
8
|
+
const nodeUri = `${process.env.API_DOMAIN}` ?? 'https://beta.api.archivist.xyo.network'
|
|
9
|
+
const targetAddress = 'temp'
|
|
10
|
+
const bridge = new XyoHttpBridge({ nodeUri, targetAddress })
|
|
9
11
|
const wrapper = new XyoArchivistWrapper(bridge)
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
schema:
|
|
12
|
+
const debugPayload = {
|
|
13
|
+
nonce: uuid(),
|
|
14
|
+
schema: 'network.xyo.debug',
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
const result = await wrapper.insert([debugPayload])
|
|
17
|
+
console.log(result)
|
|
16
18
|
//expect(result).toBeDefined()
|
|
17
|
-
|
|
18
|
-
const result2 = await wrapper.get([new XyoPayloadWrapper(idPayload).hash])
|
|
19
|
+
await wrapper.get([new XyoPayloadWrapper(debugPayload).hash])
|
|
19
20
|
//expect(result2).toBeDefined()
|
|
20
21
|
})
|
package/src/XyoHttpBridge.ts
CHANGED
|
@@ -3,12 +3,12 @@ import { XyoBoundWitness } from '@xyo-network/boundwitness'
|
|
|
3
3
|
import { XyoModule } from '@xyo-network/module'
|
|
4
4
|
import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
|
|
5
5
|
import { Promisable } from '@xyo-network/promisable'
|
|
6
|
-
import {
|
|
7
|
-
import { gzip } from 'pako'
|
|
6
|
+
import { AxiosError, AxiosRequestHeaders } from 'axios'
|
|
8
7
|
|
|
8
|
+
import { AxiosJson, AxiosJsonRequestConfig } from './AxiosJson'
|
|
9
9
|
import { BridgeModule } from './Bridge'
|
|
10
10
|
import { XyoBridgeConfig } from './Config'
|
|
11
|
-
import { PartialBridgeConfig } from './
|
|
11
|
+
import { PartialBridgeConfig } from './PartialConfig'
|
|
12
12
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
|
|
13
13
|
|
|
14
14
|
export type XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config'
|
|
@@ -17,53 +17,30 @@ export const XyoHttpBridgeConfigSchema: XyoHttpBridgeConfigSchema = 'network.xyo
|
|
|
17
17
|
export type XyoHttpBridgeConfig = XyoBridgeConfig<{
|
|
18
18
|
schema: XyoHttpBridgeConfigSchema
|
|
19
19
|
headers?: AxiosRequestHeaders
|
|
20
|
-
axios?:
|
|
20
|
+
axios?: AxiosJsonRequestConfig
|
|
21
21
|
}>
|
|
22
22
|
|
|
23
23
|
export class XyoHttpBridge<TQuery extends XyoBridgeQuery = XyoBridgeQuery>
|
|
24
24
|
extends XyoModule<XyoHttpBridgeConfig, TQuery>
|
|
25
25
|
implements BridgeModule<TQuery>
|
|
26
26
|
{
|
|
27
|
-
private axios
|
|
27
|
+
private axios: AxiosJson
|
|
28
28
|
|
|
29
29
|
constructor(config: PartialBridgeConfig<XyoHttpBridgeConfig>) {
|
|
30
30
|
super({ schema: XyoHttpBridgeConfigSchema, ...config })
|
|
31
|
-
this.axios = new
|
|
31
|
+
this.axios = new AxiosJson(this.config?.axios)
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
public get
|
|
35
|
-
return assertEx(this.config?.
|
|
34
|
+
public get nodeUri() {
|
|
35
|
+
return assertEx(this.config?.nodeUri, 'Missing nodeUri')
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
return
|
|
40
|
-
...this.config?.headers,
|
|
41
|
-
Accept: 'application/json, text/plain, *.*',
|
|
42
|
-
'Content-Type': 'application/json',
|
|
43
|
-
}
|
|
38
|
+
public get targetAddress() {
|
|
39
|
+
return this.config?.targetAddress
|
|
44
40
|
}
|
|
45
41
|
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
headers: this.axiosHeaders,
|
|
49
|
-
transformRequest: (data, headers) => {
|
|
50
|
-
const json = JSON.stringify(data)
|
|
51
|
-
if (headers && data) {
|
|
52
|
-
if (json.length > (this.config?.axios ?? 1024)) {
|
|
53
|
-
headers['Content-Encoding'] = 'gzip'
|
|
54
|
-
return gzip(JSON.stringify(data)).buffer
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return JSON.stringify(data)
|
|
58
|
-
},
|
|
59
|
-
transformResponse: (data) => {
|
|
60
|
-
try {
|
|
61
|
-
return JSON.parse(data)
|
|
62
|
-
} catch (ex) {
|
|
63
|
-
return null
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
}
|
|
42
|
+
public get targetAddressString() {
|
|
43
|
+
return this.targetAddress ?? ''
|
|
67
44
|
}
|
|
68
45
|
|
|
69
46
|
connect(): Promisable<boolean> {
|
|
@@ -76,7 +53,8 @@ export class XyoHttpBridge<TQuery extends XyoBridgeQuery = XyoBridgeQuery>
|
|
|
76
53
|
|
|
77
54
|
async forward(query: TQuery): Promise<[XyoBoundWitness, XyoPayloads]> {
|
|
78
55
|
try {
|
|
79
|
-
const
|
|
56
|
+
const boundQuery = this.bindPayloads([query])
|
|
57
|
+
const result = await this.axios.post<[XyoBoundWitness, XyoPayloads]>(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]])
|
|
80
58
|
console.log(`Status: ${result.status}`)
|
|
81
59
|
console.log(`Data: ${JSON.stringify(result.data, null, 2)}`)
|
|
82
60
|
return result.data
|
package/src/index.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PartialBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/PartialBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,oBAAY,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/E,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CACrB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PartialBridgeConfig.js","sourceRoot":"","sources":["../../src/PartialBridgeConfig.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PartialBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/PartialBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,oBAAY,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/E,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CACrB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PartialBridgeConfig.js","sourceRoot":"","sources":["../../src/PartialBridgeConfig.ts"],"names":[],"mappings":""}
|