@xyo-network/bridge 2.38.0-rc.9 → 2.38.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.
@@ -1,5 +1,4 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
- import { XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
1
+ import { ModuleQueryResult, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
3
2
  import { XyoPayload } from '@xyo-network/payload';
4
3
  import { Promisable } from '@xyo-network/promise';
5
4
  import { BridgeModule } from './Bridge';
@@ -8,9 +7,7 @@ export declare abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBri
8
7
  queries(): string[];
9
8
  abstract connect(): Promisable<boolean>;
10
9
  abstract disconnect(): Promisable<boolean>;
11
- abstract forward(query: XyoQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>;
12
- query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<import("@xyo-network/module").ModuleQueryResult<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
13
- schema: string;
14
- }>>;
10
+ abstract forward(query: XyoQuery): Promise<ModuleQueryResult>;
11
+ query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
15
12
  }
16
13
  //# sourceMappingURL=XyoBridge.d.ts.map
@@ -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,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,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE;;;CAyB9G"}
1
+ {"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA6C,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC7I,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,iBAAiB,CAAC;IAE9C,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA8B3I"}
@@ -1,6 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { XyoAccount } from '@xyo-network/account';
3
- import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
3
+ import { QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule } from '@xyo-network/module';
4
4
  import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
5
5
  export class XyoBridge extends XyoModule {
6
6
  queries() {
@@ -11,22 +11,28 @@ export class XyoBridge extends XyoModule {
11
11
  const typedQuery = wrapper.query.payload;
12
12
  assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
13
13
  const queryAccount = new XyoAccount();
14
- switch (typedQuery.schema) {
15
- case XyoBridgeConnectQuerySchema: {
16
- await this.connect();
17
- break;
18
- }
19
- case XyoBridgeDisconnectQuerySchema: {
20
- await this.disconnect();
21
- break;
22
- }
23
- default:
24
- if (super.queries().includes(typedQuery.schema)) {
25
- return super.query(query, payloads);
14
+ try {
15
+ switch (typedQuery.schema) {
16
+ case XyoBridgeConnectQuerySchema: {
17
+ await this.connect();
18
+ break;
26
19
  }
27
- else {
28
- return this.forward(typedQuery);
20
+ case XyoBridgeDisconnectQuerySchema: {
21
+ await this.disconnect();
22
+ break;
29
23
  }
24
+ default:
25
+ if (super.queries().includes(typedQuery.schema)) {
26
+ return super.query(query, payloads);
27
+ }
28
+ else {
29
+ return this.forward(typedQuery);
30
+ }
31
+ }
32
+ }
33
+ catch (ex) {
34
+ const error = ex;
35
+ return this.bindResult([new XyoErrorBuilder([wrapper.hash], error.message).build()], queryAccount);
30
36
  }
31
37
  return this.bindResult([], queryAccount);
32
38
  }
@@ -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,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,EAAE,QAAuB;QAC3G,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,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,EAAE,QAAQ,CAAC,CAAA;iBACpC;qBAAM;oBACL,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;iBAChC;SACJ;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;IAC1C,CAAC;CACF"}
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;AACjD,OAAO,EAAqB,wBAAwB,EAAE,eAAe,EAAE,SAAS,EAAkC,MAAM,qBAAqB,CAAA;AAM7I,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,EAAE,QAAuB;QAC3G,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,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QAErC,IAAI;YACF,QAAQ,UAAU,CAAC,MAAM,EAAE;gBACzB,KAAK,2BAA2B,CAAC,CAAC;oBAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;oBACpB,MAAK;iBACN;gBACD,KAAK,8BAA8B,CAAC,CAAC;oBACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;oBACvB,MAAK;iBACN;gBACD;oBACE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;wBAC/C,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;qBACpC;yBAAM;wBACL,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;qBAChC;aACJ;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;SACnG;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;IAC1C,CAAC;CACF"}
@@ -1,6 +1,5 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
1
  import { ModuleQueryResult, XyoModule, XyoModuleParams, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
3
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
2
+ import { XyoPayload } from '@xyo-network/payload';
4
3
  import { Promisable } from '@xyo-network/promise';
5
4
  import { Axios, AxiosRequestHeaders } from 'axios';
6
5
  import { AxiosJsonRequestConfig } from './AxiosJson';
@@ -17,14 +16,15 @@ export interface XyoHttpBridgeParams<TConfig extends XyoHttpBridgeConfig = XyoHt
17
16
  axios: Axios;
18
17
  }
19
18
  export declare class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeConfig> extends XyoModule<TConfig> implements BridgeModule {
19
+ static create(params: XyoHttpBridgeParams): Promise<XyoHttpBridge>;
20
20
  private axios;
21
- constructor(params: XyoHttpBridgeParams<TConfig>);
21
+ private constructor();
22
22
  get nodeUri(): string;
23
23
  get targetAddress(): string | undefined;
24
24
  get targetAddressString(): string;
25
25
  connect(): Promisable<boolean>;
26
26
  disconnect(): Promisable<boolean>;
27
- protected forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<[XyoBoundWitness, XyoPayloads]>;
27
+ protected forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
28
28
  query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
29
29
  }
30
30
  //# 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,iBAAiB,EAA4B,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC7I,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAc,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAE9D,OAAO,EAAa,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,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,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC9H,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,aAAa,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,YAAY;IACtI,OAAO,CAAC,KAAK,CAAW;gBAEZ,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAKhD,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,QAAQ,CAAC,EAAE,UAAU,EAAE,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,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAwB3I"}
1
+ {"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAGjB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAc,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAE9D,OAAO,EAAa,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,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,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC9H,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,aAAa,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,YAAY;WAChH,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOjF,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO;IAKP,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,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAa9E,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA6B3I"}
@@ -1,10 +1,15 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { XyoAccount } from '@xyo-network/account';
3
- import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
3
+ import { QueryBoundWitnessWrapper, XyoErrorBuilder, 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';
7
7
  export class XyoHttpBridge extends XyoModule {
8
+ static async create(params) {
9
+ const module = new XyoHttpBridge(params);
10
+ await module.start();
11
+ return module;
12
+ }
8
13
  axios;
9
14
  constructor(params) {
10
15
  super(params);
@@ -44,22 +49,28 @@ export class XyoHttpBridge extends XyoModule {
44
49
  assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
45
50
  const queryAccount = new XyoAccount();
46
51
  const resultPayloads = [];
47
- switch (typedQuery.schema) {
48
- case XyoBridgeConnectQuerySchema: {
49
- await this.connect();
50
- break;
51
- }
52
- case XyoBridgeDisconnectQuerySchema: {
53
- await this.disconnect();
54
- break;
55
- }
56
- default:
57
- if (super.queries().find((schema) => schema === typedQuery.schema)) {
58
- return super.query(query, payloads);
52
+ try {
53
+ switch (typedQuery.schema) {
54
+ case XyoBridgeConnectQuerySchema: {
55
+ await this.connect();
56
+ break;
59
57
  }
60
- else {
61
- return this.forward(query, payloads);
58
+ case XyoBridgeDisconnectQuerySchema: {
59
+ await this.disconnect();
60
+ break;
62
61
  }
62
+ default:
63
+ if (super.queries().find((schema) => schema === typedQuery.schema)) {
64
+ return super.query(query, payloads);
65
+ }
66
+ else {
67
+ return this.forward(query, payloads);
68
+ }
69
+ }
70
+ }
71
+ catch (ex) {
72
+ const error = ex;
73
+ resultPayloads.push(new XyoErrorBuilder([wrapper.hash], error.message).build());
63
74
  }
64
75
  return this.bindResult(resultPayloads, queryAccount);
65
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,11 +11,10 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.6.9",
14
- "@xyo-network/account": "^2.38.0-rc.9",
15
- "@xyo-network/boundwitness": "^2.38.0-rc.9",
16
- "@xyo-network/module": "^2.38.0-rc.9",
17
- "@xyo-network/payload": "^2.38.0-rc.9",
18
- "@xyo-network/promise": "^2.38.0-rc.9",
14
+ "@xyo-network/account": "^2.38.0",
15
+ "@xyo-network/module": "^2.38.0",
16
+ "@xyo-network/payload": "^2.38.0",
17
+ "@xyo-network/promise": "^2.38.0",
19
18
  "pako": "^2.0.4",
20
19
  "tslib": "^2.4.0"
21
20
  },
@@ -55,6 +54,5 @@
55
54
  },
56
55
  "sideEffects": false,
57
56
  "types": "dist/esm/index.d.ts",
58
- "version": "2.38.0-rc.9",
59
- "stableVersion": "2.37.6"
57
+ "version": "2.38.0"
60
58
  }
package/src/XyoBridge.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { XyoAccount } from '@xyo-network/account'
3
- import { XyoBoundWitness } from '@xyo-network/boundwitness'
4
- import { QueryBoundWitnessWrapper, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
3
+ import { ModuleQueryResult, QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
5
4
  import { XyoPayload } from '@xyo-network/payload'
6
5
  import { Promisable } from '@xyo-network/promise'
7
6
 
@@ -17,30 +16,35 @@ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfi
17
16
  abstract connect(): Promisable<boolean>
18
17
  abstract disconnect(): Promisable<boolean>
19
18
 
20
- abstract forward(query: XyoQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>
19
+ abstract forward(query: XyoQuery): Promise<ModuleQueryResult>
21
20
 
22
- override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]) {
21
+ override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
23
22
  const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoBridgeQuery>(query)
24
23
  const typedQuery = wrapper.query.payload
25
24
  assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
26
25
 
27
26
  const queryAccount = new XyoAccount()
28
27
 
29
- switch (typedQuery.schema) {
30
- case XyoBridgeConnectQuerySchema: {
31
- await this.connect()
32
- break
33
- }
34
- case XyoBridgeDisconnectQuerySchema: {
35
- await this.disconnect()
36
- break
37
- }
38
- default:
39
- if (super.queries().includes(typedQuery.schema)) {
40
- return super.query(query, payloads)
41
- } else {
42
- return this.forward(typedQuery)
28
+ try {
29
+ switch (typedQuery.schema) {
30
+ case XyoBridgeConnectQuerySchema: {
31
+ await this.connect()
32
+ break
43
33
  }
34
+ case XyoBridgeDisconnectQuerySchema: {
35
+ await this.disconnect()
36
+ break
37
+ }
38
+ default:
39
+ if (super.queries().includes(typedQuery.schema)) {
40
+ return super.query(query, payloads)
41
+ } else {
42
+ return this.forward(typedQuery)
43
+ }
44
+ }
45
+ } catch (ex) {
46
+ const error = ex as Error
47
+ return this.bindResult([new XyoErrorBuilder([wrapper.hash], error.message).build()], queryAccount)
44
48
  }
45
49
  return this.bindResult([], queryAccount)
46
50
  }
@@ -3,15 +3,16 @@ import { uuid } from '@xyo-network/core'
3
3
  import { PayloadWrapper } from '@xyo-network/payload'
4
4
  import { Axios } from 'axios'
5
5
 
6
- import { XyoHttpBridge, XyoHttpBridgeConfig, XyoHttpBridgeConfigSchema, XyoHttpBridgeParams } from './XyoHttpBridge'
6
+ import { XyoHttpBridge, XyoHttpBridgeConfigSchema } from './XyoHttpBridge'
7
7
 
8
8
  test('XyoHttpBridge', async () => {
9
9
  const nodeUri = `${process.env.API_DOMAIN}` ?? 'https://beta.api.archivist.xyo.network'
10
10
  const targetAddress = 'temp'
11
+
11
12
  const bridge = await XyoHttpBridge.create({
12
13
  axios: new Axios(),
13
- config: { nodeUri, schema: XyoHttpBridgeConfigSchema, targetAddress } as XyoHttpBridgeConfig,
14
- } as XyoHttpBridgeParams)
14
+ config: { nodeUri, schema: XyoHttpBridgeConfigSchema, targetAddress },
15
+ })
15
16
  const wrapper = new XyoArchivistWrapper(bridge)
16
17
  const debugPayload = {
17
18
  nonce: uuid(),
@@ -1,8 +1,15 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { XyoAccount } from '@xyo-network/account'
3
- import { XyoBoundWitness } from '@xyo-network/boundwitness'
4
- import { ModuleQueryResult, QueryBoundWitnessWrapper, XyoModule, XyoModuleParams, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
5
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
3
+ import {
4
+ ModuleQueryResult,
5
+ QueryBoundWitnessWrapper,
6
+ XyoErrorBuilder,
7
+ XyoModule,
8
+ XyoModuleParams,
9
+ XyoQuery,
10
+ XyoQueryBoundWitness,
11
+ } from '@xyo-network/module'
12
+ import { XyoPayload } from '@xyo-network/payload'
6
13
  import { Promisable } from '@xyo-network/promise'
7
14
  import { Axios, AxiosError, AxiosRequestHeaders } from 'axios'
8
15
 
@@ -25,9 +32,16 @@ export interface XyoHttpBridgeParams<TConfig extends XyoHttpBridgeConfig = XyoHt
25
32
  }
26
33
 
27
34
  export class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeConfig> extends XyoModule<TConfig> implements BridgeModule {
35
+ static override async create(params: XyoHttpBridgeParams): Promise<XyoHttpBridge>
36
+ static override async create(params: XyoModuleParams): Promise<XyoHttpBridge> {
37
+ const module = new XyoHttpBridge(params as XyoHttpBridgeParams)
38
+ await module.start()
39
+ return module
40
+ }
41
+
28
42
  private axios: AxiosJson
29
43
 
30
- constructor(params: XyoHttpBridgeParams<TConfig>) {
44
+ private constructor(params: XyoHttpBridgeParams<TConfig>) {
31
45
  super(params)
32
46
  this.axios = new AxiosJson(this.config?.axios)
33
47
  }
@@ -52,10 +66,10 @@ export class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeCo
52
66
  return true
53
67
  }
54
68
 
55
- protected async forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<[XyoBoundWitness, XyoPayloads]> {
69
+ protected async forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
56
70
  try {
57
71
  const boundQuery = this.bindQuery(query, payloads)
58
- const result = await this.axios.post<[XyoBoundWitness, XyoPayloads]>(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]])
72
+ const result = await this.axios.post<ModuleQueryResult>(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]])
59
73
  return result.data
60
74
  } catch (ex) {
61
75
  const error = ex as AxiosError
@@ -71,21 +85,26 @@ export class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeCo
71
85
  assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
72
86
  const queryAccount = new XyoAccount()
73
87
  const resultPayloads: (XyoPayload | null)[] = []
74
- switch (typedQuery.schema) {
75
- case XyoBridgeConnectQuerySchema: {
76
- await this.connect()
77
- break
78
- }
79
- case XyoBridgeDisconnectQuerySchema: {
80
- await this.disconnect()
81
- break
82
- }
83
- default:
84
- if (super.queries().find((schema) => schema === typedQuery.schema)) {
85
- return super.query(query, payloads)
86
- } else {
87
- return this.forward(query, payloads)
88
+ try {
89
+ switch (typedQuery.schema) {
90
+ case XyoBridgeConnectQuerySchema: {
91
+ await this.connect()
92
+ break
93
+ }
94
+ case XyoBridgeDisconnectQuerySchema: {
95
+ await this.disconnect()
96
+ break
88
97
  }
98
+ default:
99
+ if (super.queries().find((schema) => schema === typedQuery.schema)) {
100
+ return super.query(query, payloads)
101
+ } else {
102
+ return this.forward(query, payloads)
103
+ }
104
+ }
105
+ } catch (ex) {
106
+ const error = ex as Error
107
+ resultPayloads.push(new XyoErrorBuilder([wrapper.hash], error.message).build())
89
108
  }
90
109
  return this.bindResult(resultPayloads, queryAccount)
91
110
  }