@xyo-network/bridge 2.32.0-rc.2 → 2.32.0-rc.3

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.
Files changed (56) hide show
  1. package/dist/cjs/Bridge.d.ts +2 -2
  2. package/dist/cjs/Bridge.d.ts.map +1 -1
  3. package/dist/cjs/Config.d.ts +3 -1
  4. package/dist/cjs/Config.d.ts.map +1 -1
  5. package/dist/cjs/PartialBridgeConfig.d.ts +5 -0
  6. package/dist/cjs/PartialBridgeConfig.d.ts.map +1 -0
  7. package/dist/cjs/PartialBridgeConfig.js +3 -0
  8. package/dist/cjs/PartialBridgeConfig.js.map +1 -0
  9. package/dist/cjs/Queries/index.d.ts +3 -2
  10. package/dist/cjs/Queries/index.d.ts.map +1 -1
  11. package/dist/cjs/Queries/index.js.map +1 -1
  12. package/dist/cjs/XyoBridge.d.ts +4 -3
  13. package/dist/cjs/XyoBridge.d.ts.map +1 -1
  14. package/dist/cjs/XyoBridge.js +11 -5
  15. package/dist/cjs/XyoBridge.js.map +1 -1
  16. package/dist/cjs/XyoHttpBridge.d.ts +28 -0
  17. package/dist/cjs/XyoHttpBridge.d.ts.map +1 -0
  18. package/dist/cjs/XyoHttpBridge.js +100 -0
  19. package/dist/cjs/XyoHttpBridge.js.map +1 -0
  20. package/dist/cjs/index.d.ts +2 -0
  21. package/dist/cjs/index.d.ts.map +1 -1
  22. package/dist/cjs/index.js +2 -0
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/docs.json +3775 -1633
  25. package/dist/esm/Bridge.d.ts +2 -2
  26. package/dist/esm/Bridge.d.ts.map +1 -1
  27. package/dist/esm/Config.d.ts +3 -1
  28. package/dist/esm/Config.d.ts.map +1 -1
  29. package/dist/esm/PartialBridgeConfig.d.ts +5 -0
  30. package/dist/esm/PartialBridgeConfig.d.ts.map +1 -0
  31. package/dist/esm/PartialBridgeConfig.js +2 -0
  32. package/dist/esm/PartialBridgeConfig.js.map +1 -0
  33. package/dist/esm/Queries/index.d.ts +3 -2
  34. package/dist/esm/Queries/index.d.ts.map +1 -1
  35. package/dist/esm/Queries/index.js.map +1 -1
  36. package/dist/esm/XyoBridge.d.ts +4 -3
  37. package/dist/esm/XyoBridge.d.ts.map +1 -1
  38. package/dist/esm/XyoBridge.js +10 -5
  39. package/dist/esm/XyoBridge.js.map +1 -1
  40. package/dist/esm/XyoHttpBridge.d.ts +28 -0
  41. package/dist/esm/XyoHttpBridge.d.ts.map +1 -0
  42. package/dist/esm/XyoHttpBridge.js +89 -0
  43. package/dist/esm/XyoHttpBridge.js.map +1 -0
  44. package/dist/esm/index.d.ts +2 -0
  45. package/dist/esm/index.d.ts.map +1 -1
  46. package/dist/esm/index.js +2 -0
  47. package/dist/esm/index.js.map +1 -1
  48. package/package.json +9 -5
  49. package/src/Bridge.ts +2 -2
  50. package/src/Config.ts +5 -1
  51. package/src/PartialBridgeConfig.ts +5 -0
  52. package/src/Queries/index.ts +4 -2
  53. package/src/XyoBridge.ts +13 -7
  54. package/src/XyoHttpBridge.spec.ts +20 -0
  55. package/src/XyoHttpBridge.ts +112 -0
  56. package/src/index.ts +2 -0
@@ -2,8 +2,8 @@ import { Module } from '@xyo-network/module';
2
2
  import { Promisable } from '@xyo-network/promisable';
3
3
  import { XyoBridgeQuery } from './Queries';
4
4
  export interface Bridge {
5
- connect: (uri?: string) => Promisable<boolean>;
6
- disconnect: (uri?: string) => Promisable<boolean>;
5
+ connect: () => Promisable<boolean>;
6
+ disconnect: () => Promisable<boolean>;
7
7
  }
8
8
  export interface BridgeModule<TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends Bridge, Module<TQuery> {
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Bridge.d.ts","sourceRoot":"","sources":["../../src/Bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;IAC9C,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CAAG"}
1
+ {"version":3,"file":"Bridge.d.ts","sourceRoot":"","sources":["../../src/Bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CAAG"}
@@ -2,5 +2,7 @@ import { XyoModuleConfig } from '@xyo-network/module';
2
2
  import { XyoPayload } from '@xyo-network/payload';
3
3
  export declare type XyoBridgeConfigSchema = 'network.xyo.bridge.config';
4
4
  export declare const XyoBridgeConfigSchema: XyoBridgeConfigSchema;
5
- export declare type XyoBridgeConfig<TConfig extends XyoPayload = XyoPayload> = XyoModuleConfig<TConfig>;
5
+ export declare type XyoBridgeConfig<TConfig extends XyoPayload = XyoPayload> = XyoModuleConfig<{
6
+ uri: string;
7
+ } & TConfig>;
6
8
  //# sourceMappingURL=Config.d.ts.map
@@ -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,CAAC,OAAO,CAAC,CAAA"}
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,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CACZ,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { XyoBridgeConfig } from './Config';
2
+ export declare type PartialBridgeConfig<T extends XyoBridgeConfig> = Omit<T, 'schema'> & {
3
+ schema?: T['schema'];
4
+ };
5
+ //# sourceMappingURL=PartialBridgeConfig.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PartialBridgeConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartialBridgeConfig.js","sourceRoot":"","sources":["../../src/PartialBridgeConfig.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
+ import { XyoModuleQuery, XyoModuleQuerySchema } from '@xyo-network/module';
1
2
  import { XyoBridgeConnectQuery, XyoBridgeConnectQuerySchema } from './Connect';
2
3
  import { XyoBridgeDisconnectQuery, XyoBridgeDisconnectQuerySchema } from './Disconnect';
3
4
  export * from './Connect';
4
5
  export * from './Disconnect';
5
- export declare type XyoBridgeQuery = XyoBridgeConnectQuery | XyoBridgeDisconnectQuery;
6
- export declare type XyoBridgeQuerySchema = XyoBridgeConnectQuerySchema | XyoBridgeDisconnectQuerySchema;
6
+ export declare type XyoBridgeQuery = XyoBridgeConnectQuery | XyoBridgeDisconnectQuery | XyoModuleQuery;
7
+ export declare type XyoBridgeQuerySchema = XyoBridgeConnectQuerySchema | XyoBridgeDisconnectQuerySchema | XyoModuleQuerySchema;
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAEvF,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAE5B,oBAAY,cAAc,GAAG,qBAAqB,GAAG,wBAAwB,CAAA;AAE7E,oBAAY,oBAAoB,GAAG,2BAA2B,GAAG,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1E,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAEvF,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAE5B,oBAAY,cAAc,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,cAAc,CAAA;AAE9F,oBAAY,oBAAoB,GAAG,2BAA2B,GAAG,8BAA8B,GAAG,oBAAoB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAKA,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
@@ -6,9 +6,10 @@ import { BridgeModule } from './Bridge';
6
6
  import { XyoBridgeConfig } from './Config';
7
7
  import { XyoBridgeQuery } from './Queries';
8
8
  export declare abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfig, TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends XyoModule<TConfig, TQuery> implements BridgeModule<TQuery> {
9
- get queries(): "network.xyo.query.bridge.connect"[];
10
- abstract connect(uri?: string): Promisable<boolean>;
11
- abstract disconnect(uri?: string): Promisable<boolean>;
9
+ queries(): ("network.xyo.query.bridge.connect" | "network.xyo.query.bridge.disconnect" | TQuery["schema"])[];
10
+ abstract connect(): Promisable<boolean>;
11
+ abstract disconnect(): Promisable<boolean>;
12
+ abstract forward(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>;
12
13
  query(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>;
13
14
  }
14
15
  //# sourceMappingURL=XyoBridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAA+D,cAAc,EAAE,MAAM,WAAW,CAAA;AAEvG,8BAAsB,SAAS,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAAE,MAAM,SAAS,cAAc,GAAG,cAAc,CAC/H,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,CACjC,YAAW,YAAY,CAAC,MAAM,CAAC;IAE/B,IAAa,OAAO,yCAEnB;IAED,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAEvC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;CAgBvF"}
1
+ {"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAA+D,cAAc,EAAE,MAAM,WAAW,CAAA;AAEvG,8BAAsB,SAAS,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,EAAE,MAAM,SAAS,cAAc,GAAG,cAAc,CAC/H,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,CACjC,YAAW,YAAY,CAAC,MAAM,CAAC;IAEtB,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,MAAM,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;CAoBvF"}
@@ -1,22 +1,27 @@
1
1
  import { XyoModule } from '@xyo-network/module';
2
2
  import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
3
3
  export class XyoBridge extends XyoModule {
4
- get queries() {
5
- return [XyoBridgeConnectQuerySchema];
4
+ queries() {
5
+ return [XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, ...super.queries()];
6
6
  }
7
7
  async query(query) {
8
8
  const payloads = [];
9
9
  switch (query.schema) {
10
10
  case XyoBridgeConnectQuerySchema: {
11
- await this.connect(query?.uri);
11
+ await this.connect();
12
12
  break;
13
13
  }
14
14
  case XyoBridgeDisconnectQuerySchema: {
15
- await this.disconnect(query?.uri);
15
+ await this.disconnect();
16
16
  break;
17
17
  }
18
18
  default:
19
- return super.query(query);
19
+ if (super.queries().find((schema) => schema === query.schema)) {
20
+ return super.query(query);
21
+ }
22
+ else {
23
+ return super.query(query);
24
+ }
20
25
  }
21
26
  return [this.bindPayloads(payloads), payloads];
22
27
  }
@@ -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;IAGlC,IAAa,OAAO;QAClB,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACtC,CAAC;IAKQ,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,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAC9B,MAAK;aACN;YACD,KAAK,8BAA8B,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACjC,MAAK;aACN;YACD;gBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC5B;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChD,CAAC;CACF"}
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,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;iBAC1B;SACJ;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChD,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
+ import { XyoModule } from '@xyo-network/module';
3
+ import { XyoPayloads } from '@xyo-network/payload';
4
+ import { Promisable } from '@xyo-network/promisable';
5
+ import { AxiosRequestConfig, AxiosRequestHeaders } from 'axios';
6
+ import { BridgeModule } from './Bridge';
7
+ import { XyoBridgeConfig } from './Config';
8
+ import { PartialBridgeConfig } from './PartialBridgeConfig';
9
+ import { XyoBridgeQuery } from './Queries';
10
+ export declare type XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
11
+ export declare const XyoHttpBridgeConfigSchema: XyoHttpBridgeConfigSchema;
12
+ export declare type XyoHttpBridgeConfig = XyoBridgeConfig<{
13
+ schema: XyoHttpBridgeConfigSchema;
14
+ headers?: AxiosRequestHeaders;
15
+ axios?: AxiosRequestConfig;
16
+ }>;
17
+ export declare class XyoHttpBridge<TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends XyoModule<XyoHttpBridgeConfig, TQuery> implements BridgeModule<TQuery> {
18
+ private axios;
19
+ constructor(config: PartialBridgeConfig<XyoHttpBridgeConfig>);
20
+ get uri(): string;
21
+ private get axiosHeaders();
22
+ private get axiosConfig();
23
+ connect(): Promisable<boolean>;
24
+ disconnect(): Promisable<boolean>;
25
+ forward(query: TQuery): Promise<[XyoBoundWitness, XyoPayloads]>;
26
+ query(query: TQuery): Promise<[XyoBoundWitness, XyoPayloads]>;
27
+ }
28
+ //# sourceMappingURL=XyoHttpBridge.d.ts.map
@@ -0,0 +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,EAAqB,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAGlF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,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,kBAAkB,CAAA;CAC3B,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,CAAA;gBAED,MAAM,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;IAK5D,IAAW,GAAG,WAEb;IAED,OAAO,KAAK,YAAY,GAMvB;IAED,OAAO,KAAK,WAAW,GAqBtB;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;IActD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CAqB7E"}
@@ -0,0 +1,89 @@
1
+ import { assertEx } from '@xylabs/assert';
2
+ import { XyoModule } from '@xyo-network/module';
3
+ import { Axios } from 'axios';
4
+ import { gzip } from 'pako';
5
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
6
+ export const XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
7
+ export class XyoHttpBridge extends XyoModule {
8
+ axios;
9
+ constructor(config) {
10
+ super({ schema: XyoHttpBridgeConfigSchema, ...config });
11
+ this.axios = new Axios(this.axiosConfig);
12
+ }
13
+ get uri() {
14
+ return assertEx(this.config?.uri, 'Missing URI');
15
+ }
16
+ get axiosHeaders() {
17
+ return {
18
+ ...this.config?.headers,
19
+ Accept: 'application/json, text/plain, *.*',
20
+ 'Content-Type': 'application/json',
21
+ };
22
+ }
23
+ get axiosConfig() {
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
+ };
45
+ }
46
+ connect() {
47
+ return true;
48
+ }
49
+ disconnect() {
50
+ return true;
51
+ }
52
+ async forward(query) {
53
+ try {
54
+ const result = await this.axios.post(this.uri, query);
55
+ console.log(`Status: ${result.status}`);
56
+ console.log(`Data: ${JSON.stringify(result.data, null, 2)}`);
57
+ return result.data;
58
+ }
59
+ catch (ex) {
60
+ const error = ex;
61
+ console.log(`Error Status: ${error.status}`);
62
+ console.log(`Error Cause: ${JSON.stringify(error.cause, null, 2)}`);
63
+ throw error;
64
+ }
65
+ }
66
+ async query(query) {
67
+ console.log(`Query: ${query.schema}`);
68
+ const payloads = [];
69
+ switch (query.schema) {
70
+ case XyoBridgeConnectQuerySchema: {
71
+ await this.connect();
72
+ break;
73
+ }
74
+ case XyoBridgeDisconnectQuerySchema: {
75
+ await this.disconnect();
76
+ break;
77
+ }
78
+ default:
79
+ if (super.queries().find((schema) => schema === query.schema)) {
80
+ return super.query(query);
81
+ }
82
+ else {
83
+ return this.forward(query);
84
+ }
85
+ }
86
+ return [this.bindPayloads(payloads), payloads];
87
+ }
88
+ }
89
+ //# sourceMappingURL=XyoHttpBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export * from './Config';
2
+ export * from './PartialBridgeConfig';
2
3
  export * from './Queries';
3
4
  export * from './XyoBridge';
4
5
  export * from './XyoBridgeWrapper';
6
+ export * from './XyoHttpBridge';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './Config';
2
+ export * from './PartialBridgeConfig';
2
3
  export * from './Queries';
3
4
  export * from './XyoBridge';
4
5
  export * from './XyoBridgeWrapper';
6
+ export * from './XyoHttpBridge';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA"}
package/package.json CHANGED
@@ -10,12 +10,16 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/boundwitness": "^2.32.0-rc.2",
14
- "@xyo-network/module": "^2.32.0-rc.2",
15
- "@xyo-network/payload": "^2.32.0-rc.2",
16
- "@xyo-network/promisable": "^2.32.0-rc.2",
13
+ "@xyo-network/boundwitness": "^2.32.0-rc.3",
14
+ "@xyo-network/module": "^2.32.0-rc.3",
15
+ "@xyo-network/payload": "^2.32.0-rc.3",
16
+ "@xyo-network/promisable": "^2.32.0-rc.3",
17
+ "pako": "^2.0.4",
17
18
  "tslib": "^2.4.0"
18
19
  },
20
+ "peerDependencies": {
21
+ "axios": "^0.27.2"
22
+ },
19
23
  "description": "Primary SDK for using XYO Protocol 2.0",
20
24
  "browser": "dist/esm/index.js",
21
25
  "docs": "dist/docs.json",
@@ -49,6 +53,6 @@
49
53
  },
50
54
  "sideEffects": false,
51
55
  "types": "dist/esm/index.d.ts",
52
- "version": "2.32.0-rc.2",
56
+ "version": "2.32.0-rc.3",
53
57
  "stableVersion": "2.31.5"
54
58
  }
package/src/Bridge.ts CHANGED
@@ -4,8 +4,8 @@ import { Promisable } from '@xyo-network/promisable'
4
4
  import { XyoBridgeQuery } from './Queries'
5
5
 
6
6
  export interface Bridge {
7
- connect: (uri?: string) => Promisable<boolean>
8
- disconnect: (uri?: string) => Promisable<boolean>
7
+ connect: () => Promisable<boolean>
8
+ disconnect: () => Promisable<boolean>
9
9
  }
10
10
 
11
11
  export interface BridgeModule<TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends Bridge, Module<TQuery> {}
package/src/Config.ts CHANGED
@@ -4,4 +4,8 @@ import { XyoPayload } from '@xyo-network/payload'
4
4
  export type XyoBridgeConfigSchema = 'network.xyo.bridge.config'
5
5
  export const XyoBridgeConfigSchema: XyoBridgeConfigSchema = 'network.xyo.bridge.config'
6
6
 
7
- export type XyoBridgeConfig<TConfig extends XyoPayload = XyoPayload> = XyoModuleConfig<TConfig>
7
+ export type XyoBridgeConfig<TConfig extends XyoPayload = XyoPayload> = XyoModuleConfig<
8
+ {
9
+ uri: string
10
+ } & TConfig
11
+ >
@@ -0,0 +1,5 @@
1
+ import { XyoBridgeConfig } from './Config'
2
+
3
+ export type PartialBridgeConfig<T extends XyoBridgeConfig> = Omit<T, 'schema'> & {
4
+ schema?: T['schema']
5
+ }
@@ -1,9 +1,11 @@
1
+ import { XyoModuleQuery, XyoModuleQuerySchema } from '@xyo-network/module'
2
+
1
3
  import { XyoBridgeConnectQuery, XyoBridgeConnectQuerySchema } from './Connect'
2
4
  import { XyoBridgeDisconnectQuery, XyoBridgeDisconnectQuerySchema } from './Disconnect'
3
5
 
4
6
  export * from './Connect'
5
7
  export * from './Disconnect'
6
8
 
7
- export type XyoBridgeQuery = XyoBridgeConnectQuery | XyoBridgeDisconnectQuery
9
+ export type XyoBridgeQuery = XyoBridgeConnectQuery | XyoBridgeDisconnectQuery | XyoModuleQuery
8
10
 
9
- export type XyoBridgeQuerySchema = XyoBridgeConnectQuerySchema | XyoBridgeDisconnectQuerySchema
11
+ export type XyoBridgeQuerySchema = XyoBridgeConnectQuerySchema | XyoBridgeDisconnectQuerySchema | XyoModuleQuerySchema
package/src/XyoBridge.ts CHANGED
@@ -11,26 +11,32 @@ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfi
11
11
  extends XyoModule<TConfig, TQuery>
12
12
  implements BridgeModule<TQuery>
13
13
  {
14
- override get queries() {
15
- return [XyoBridgeConnectQuerySchema]
14
+ override queries() {
15
+ return [XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, ...super.queries()]
16
16
  }
17
17
 
18
- abstract connect(uri?: string): Promisable<boolean>
19
- abstract disconnect(uri?: string): Promisable<boolean>
18
+ abstract connect(): Promisable<boolean>
19
+ abstract disconnect(): Promisable<boolean>
20
+
21
+ abstract forward(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>
20
22
 
21
23
  override async query(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]> {
22
24
  const payloads: (XyoPayload | null)[] = []
23
25
  switch (query.schema) {
24
26
  case XyoBridgeConnectQuerySchema: {
25
- await this.connect(query?.uri)
27
+ await this.connect()
26
28
  break
27
29
  }
28
30
  case XyoBridgeDisconnectQuerySchema: {
29
- await this.disconnect(query?.uri)
31
+ await this.disconnect()
30
32
  break
31
33
  }
32
34
  default:
33
- return super.query(query)
35
+ if (super.queries().find((schema) => schema === query.schema)) {
36
+ return super.query(query)
37
+ } else {
38
+ return super.query(query)
39
+ }
34
40
  }
35
41
  return [this.bindPayloads(payloads), payloads]
36
42
  }
@@ -0,0 +1,20 @@
1
+ import { XyoArchivistWrapper } from '@xyo-network/archivist'
2
+ import { XyoPayloadWrapper } from '@xyo-network/payload'
3
+ import { XyoIdPayload, XyoIdSchema } from '@xyo-network/payload-plugins'
4
+
5
+ import { XyoHttpBridge } from './XyoHttpBridge'
6
+
7
+ test('XyoHttpBridge', async () => {
8
+ const bridge = new XyoHttpBridge({ uri: `${process.env.API_DOMAIN}` ?? 'https://beta.api.archivist.xyo.network' })
9
+ const wrapper = new XyoArchivistWrapper(bridge)
10
+ const idPayload: XyoIdPayload = {
11
+ salt: 'test',
12
+ schema: XyoIdSchema,
13
+ }
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ const result = await wrapper.insert([idPayload])
16
+ //expect(result).toBeDefined()
17
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
+ const result2 = await wrapper.get([new XyoPayloadWrapper(idPayload).hash])
19
+ //expect(result2).toBeDefined()
20
+ })
@@ -0,0 +1,112 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { XyoBoundWitness } from '@xyo-network/boundwitness'
3
+ import { XyoModule } from '@xyo-network/module'
4
+ import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
5
+ import { Promisable } from '@xyo-network/promisable'
6
+ import { Axios, AxiosError, AxiosRequestConfig, AxiosRequestHeaders } from 'axios'
7
+ import { gzip } from 'pako'
8
+
9
+ import { BridgeModule } from './Bridge'
10
+ import { XyoBridgeConfig } from './Config'
11
+ import { PartialBridgeConfig } from './PartialBridgeConfig'
12
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
13
+
14
+ export type XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config'
15
+ export const XyoHttpBridgeConfigSchema: XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config'
16
+
17
+ export type XyoHttpBridgeConfig = XyoBridgeConfig<{
18
+ schema: XyoHttpBridgeConfigSchema
19
+ headers?: AxiosRequestHeaders
20
+ axios?: AxiosRequestConfig
21
+ }>
22
+
23
+ export class XyoHttpBridge<TQuery extends XyoBridgeQuery = XyoBridgeQuery>
24
+ extends XyoModule<XyoHttpBridgeConfig, TQuery>
25
+ implements BridgeModule<TQuery>
26
+ {
27
+ private axios
28
+
29
+ constructor(config: PartialBridgeConfig<XyoHttpBridgeConfig>) {
30
+ super({ schema: XyoHttpBridgeConfigSchema, ...config })
31
+ this.axios = new Axios(this.axiosConfig)
32
+ }
33
+
34
+ public get uri() {
35
+ return assertEx(this.config?.uri, 'Missing URI')
36
+ }
37
+
38
+ private get axiosHeaders(): AxiosRequestHeaders {
39
+ return {
40
+ ...this.config?.headers,
41
+ Accept: 'application/json, text/plain, *.*',
42
+ 'Content-Type': 'application/json',
43
+ }
44
+ }
45
+
46
+ private get axiosConfig(): AxiosRequestConfig {
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
+ }
67
+ }
68
+
69
+ connect(): Promisable<boolean> {
70
+ return true
71
+ }
72
+
73
+ disconnect(): Promisable<boolean> {
74
+ return true
75
+ }
76
+
77
+ async forward(query: TQuery): Promise<[XyoBoundWitness, XyoPayloads]> {
78
+ try {
79
+ const result = await this.axios.post<[XyoBoundWitness, XyoPayloads]>(this.uri, query)
80
+ console.log(`Status: ${result.status}`)
81
+ console.log(`Data: ${JSON.stringify(result.data, null, 2)}`)
82
+ return result.data
83
+ } catch (ex) {
84
+ const error = ex as AxiosError
85
+ console.log(`Error Status: ${error.status}`)
86
+ console.log(`Error Cause: ${JSON.stringify(error.cause, null, 2)}`)
87
+ throw error
88
+ }
89
+ }
90
+
91
+ override async query(query: TQuery): Promise<[XyoBoundWitness, XyoPayloads]> {
92
+ console.log(`Query: ${query.schema}`)
93
+ const payloads: (XyoPayload | null)[] = []
94
+ switch (query.schema) {
95
+ case XyoBridgeConnectQuerySchema: {
96
+ await this.connect()
97
+ break
98
+ }
99
+ case XyoBridgeDisconnectQuerySchema: {
100
+ await this.disconnect()
101
+ break
102
+ }
103
+ default:
104
+ if (super.queries().find((schema) => schema === query.schema)) {
105
+ return super.query(query)
106
+ } else {
107
+ return this.forward(query)
108
+ }
109
+ }
110
+ return [this.bindPayloads(payloads), payloads]
111
+ }
112
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './Config'
2
+ export * from './PartialBridgeConfig'
2
3
  export * from './Queries'
3
4
  export * from './XyoBridge'
4
5
  export * from './XyoBridgeWrapper'
6
+ export * from './XyoHttpBridge'