@xyo-network/bridge 0.42.0 → 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 (124) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +67 -8
  3. package/dist/cjs/Bridge.d.ts +10 -0
  4. package/dist/cjs/Bridge.d.ts.map +1 -0
  5. package/dist/{@types/index.js → cjs/Bridge.js} +1 -1
  6. package/dist/cjs/Bridge.js.map +1 -0
  7. package/dist/cjs/Config.d.ts +8 -0
  8. package/dist/cjs/Config.d.ts.map +1 -0
  9. package/dist/cjs/Config.js +5 -0
  10. package/dist/cjs/Config.js.map +1 -0
  11. package/dist/cjs/PartialBridgeConfig.d.ts +5 -0
  12. package/dist/cjs/PartialBridgeConfig.d.ts.map +1 -0
  13. package/dist/cjs/PartialBridgeConfig.js +3 -0
  14. package/dist/cjs/PartialBridgeConfig.js.map +1 -0
  15. package/dist/cjs/Queries/Connect.d.ts +8 -0
  16. package/dist/cjs/Queries/Connect.d.ts.map +1 -0
  17. package/dist/cjs/Queries/Connect.js +5 -0
  18. package/dist/cjs/Queries/Connect.js.map +1 -0
  19. package/dist/cjs/Queries/Disconnect.d.ts +8 -0
  20. package/dist/cjs/Queries/Disconnect.d.ts.map +1 -0
  21. package/dist/cjs/Queries/Disconnect.js +5 -0
  22. package/dist/cjs/Queries/Disconnect.js.map +1 -0
  23. package/dist/cjs/Queries/index.d.ts +8 -0
  24. package/dist/cjs/Queries/index.d.ts.map +1 -0
  25. package/dist/cjs/Queries/index.js +6 -0
  26. package/dist/cjs/Queries/index.js.map +1 -0
  27. package/dist/cjs/XyoBridge.d.ts +15 -0
  28. package/dist/cjs/XyoBridge.d.ts.map +1 -0
  29. package/dist/cjs/XyoBridge.js +40 -0
  30. package/dist/cjs/XyoBridge.js.map +1 -0
  31. package/dist/cjs/XyoBridgeWrapper.d.ts +7 -0
  32. package/dist/cjs/XyoBridgeWrapper.d.ts.map +1 -0
  33. package/dist/cjs/XyoBridgeWrapper.js +24 -0
  34. package/dist/cjs/XyoBridgeWrapper.js.map +1 -0
  35. package/dist/cjs/XyoHttpBridge.d.ts +28 -0
  36. package/dist/cjs/XyoHttpBridge.d.ts.map +1 -0
  37. package/dist/cjs/XyoHttpBridge.js +100 -0
  38. package/dist/cjs/XyoHttpBridge.js.map +1 -0
  39. package/dist/cjs/index.d.ts +7 -0
  40. package/dist/cjs/index.d.ts.map +1 -0
  41. package/dist/cjs/index.js +10 -0
  42. package/dist/cjs/index.js.map +1 -0
  43. package/dist/docs.json +5945 -0
  44. package/dist/esm/Bridge.d.ts +10 -0
  45. package/dist/esm/Bridge.d.ts.map +1 -0
  46. package/dist/esm/Bridge.js +2 -0
  47. package/dist/esm/Bridge.js.map +1 -0
  48. package/dist/esm/Config.d.ts +8 -0
  49. package/dist/esm/Config.d.ts.map +1 -0
  50. package/dist/esm/Config.js +2 -0
  51. package/dist/esm/Config.js.map +1 -0
  52. package/dist/esm/PartialBridgeConfig.d.ts +5 -0
  53. package/dist/esm/PartialBridgeConfig.d.ts.map +1 -0
  54. package/dist/esm/PartialBridgeConfig.js +2 -0
  55. package/dist/esm/PartialBridgeConfig.js.map +1 -0
  56. package/dist/esm/Queries/Connect.d.ts +8 -0
  57. package/dist/esm/Queries/Connect.d.ts.map +1 -0
  58. package/dist/esm/Queries/Connect.js +2 -0
  59. package/dist/esm/Queries/Connect.js.map +1 -0
  60. package/dist/esm/Queries/Disconnect.d.ts +8 -0
  61. package/dist/esm/Queries/Disconnect.d.ts.map +1 -0
  62. package/dist/esm/Queries/Disconnect.js +2 -0
  63. package/dist/esm/Queries/Disconnect.js.map +1 -0
  64. package/dist/esm/Queries/index.d.ts +8 -0
  65. package/dist/esm/Queries/index.d.ts.map +1 -0
  66. package/dist/esm/Queries/index.js +3 -0
  67. package/dist/esm/Queries/index.js.map +1 -0
  68. package/dist/esm/XyoBridge.d.ts +15 -0
  69. package/dist/esm/XyoBridge.d.ts.map +1 -0
  70. package/dist/esm/XyoBridge.js +29 -0
  71. package/dist/esm/XyoBridge.js.map +1 -0
  72. package/dist/esm/XyoBridgeWrapper.d.ts +7 -0
  73. package/dist/esm/XyoBridgeWrapper.d.ts.map +1 -0
  74. package/dist/esm/XyoBridgeWrapper.js +15 -0
  75. package/dist/esm/XyoBridgeWrapper.js.map +1 -0
  76. package/dist/esm/XyoHttpBridge.d.ts +28 -0
  77. package/dist/esm/XyoHttpBridge.d.ts.map +1 -0
  78. package/dist/esm/XyoHttpBridge.js +89 -0
  79. package/dist/esm/XyoHttpBridge.js.map +1 -0
  80. package/dist/esm/index.d.ts +7 -0
  81. package/dist/esm/index.d.ts.map +1 -0
  82. package/dist/esm/index.js +7 -0
  83. package/dist/esm/index.js.map +1 -0
  84. package/package.json +53 -42
  85. package/src/Bridge.ts +11 -0
  86. package/src/Config.ts +11 -0
  87. package/src/PartialBridgeConfig.ts +5 -0
  88. package/src/Queries/Connect.ts +9 -0
  89. package/src/Queries/Disconnect.ts +9 -0
  90. package/src/Queries/index.ts +11 -0
  91. package/src/XyoBridge.ts +43 -0
  92. package/src/XyoBridgeWrapper.ts +18 -0
  93. package/src/XyoHttpBridge.spec.ts +20 -0
  94. package/src/XyoHttpBridge.ts +112 -0
  95. package/src/index.ts +6 -2
  96. package/dist/@types/index.d.ts +0 -15
  97. package/dist/@types/index.d.ts.map +0 -1
  98. package/dist/@types/index.js.map +0 -1
  99. package/dist/app/index.d.ts +0 -1
  100. package/dist/app/index.d.ts.map +0 -1
  101. package/dist/app/index.js +0 -48
  102. package/dist/app/index.js.map +0 -1
  103. package/dist/index.d.ts +0 -3
  104. package/dist/index.d.ts.map +0 -1
  105. package/dist/index.js +0 -5
  106. package/dist/index.js.map +0 -1
  107. package/dist/xyo-bridge-bound-witness-success-listener.d.ts +0 -20
  108. package/dist/xyo-bridge-bound-witness-success-listener.d.ts.map +0 -1
  109. package/dist/xyo-bridge-bound-witness-success-listener.js +0 -100
  110. package/dist/xyo-bridge-bound-witness-success-listener.js.map +0 -1
  111. package/dist/xyo-bridge-procedure-catalogue.d.ts +0 -9
  112. package/dist/xyo-bridge-procedure-catalogue.d.ts.map +0 -1
  113. package/dist/xyo-bridge-procedure-catalogue.js +0 -28
  114. package/dist/xyo-bridge-procedure-catalogue.js.map +0 -1
  115. package/dist/xyo-bridge.d.ts +0 -31
  116. package/dist/xyo-bridge.d.ts.map +0 -1
  117. package/dist/xyo-bridge.js +0 -130
  118. package/dist/xyo-bridge.js.map +0 -1
  119. package/src/@types/index.ts +0 -16
  120. package/src/app/index.ts +0 -55
  121. package/src/xyo-bridge-bound-witness-success-listener.ts +0 -108
  122. package/src/xyo-bridge-procedure-catalogue.ts +0 -33
  123. package/src/xyo-bridge.ts +0 -184
  124. package/tsconfig.json +0 -31
@@ -0,0 +1,10 @@
1
+ import { Module } from '@xyo-network/module';
2
+ import { Promisable } from '@xyo-network/promisable';
3
+ import { XyoBridgeQuery } from './Queries';
4
+ export interface Bridge {
5
+ connect: () => Promisable<boolean>;
6
+ disconnect: () => Promisable<boolean>;
7
+ }
8
+ export interface BridgeModule<TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends Bridge, Module<TQuery> {
9
+ }
10
+ //# sourceMappingURL=Bridge.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../src/Bridge.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { XyoModuleConfig } from '@xyo-network/module';
2
+ import { XyoPayload } from '@xyo-network/payload';
3
+ export declare type XyoBridgeConfigSchema = 'network.xyo.bridge.config';
4
+ export declare const XyoBridgeConfigSchema: XyoBridgeConfigSchema;
5
+ export declare type XyoBridgeConfig<TConfig extends XyoPayload = XyoPayload> = XyoModuleConfig<{
6
+ uri: string;
7
+ } & TConfig>;
8
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +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,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CACZ,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoBridgeConfigSchema = 'network.xyo.bridge.config';
2
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,qBAAqB,GAA0B,2BAA2B,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":""}
@@ -0,0 +1,8 @@
1
+ import { XyoQuery } from '@xyo-network/module';
2
+ export declare type XyoBridgeConnectQuerySchema = 'network.xyo.query.bridge.connect';
3
+ export declare const XyoBridgeConnectQuerySchema: XyoBridgeConnectQuerySchema;
4
+ export declare type XyoBridgeConnectQuery = XyoQuery<{
5
+ schema: XyoBridgeConnectQuerySchema;
6
+ uri?: string;
7
+ }>;
8
+ //# sourceMappingURL=Connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Connect.d.ts","sourceRoot":"","sources":["../../../src/Queries/Connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,oBAAY,2BAA2B,GAAG,kCAAkC,CAAA;AAC5E,eAAO,MAAM,2BAA2B,EAAE,2BAAgE,CAAA;AAE1G,oBAAY,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,2BAA2B,CAAA;IACnC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoBridgeConnectQuerySchema = 'network.xyo.query.bridge.connect';
2
+ //# sourceMappingURL=Connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Connect.js","sourceRoot":"","sources":["../../../src/Queries/Connect.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,2BAA2B,GAAgC,kCAAkC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { XyoQuery } from '@xyo-network/module';
2
+ export declare type XyoBridgeDisconnectQuerySchema = 'network.xyo.query.bridge.disconnect';
3
+ export declare const XyoBridgeDisconnectQuerySchema: XyoBridgeDisconnectQuerySchema;
4
+ export declare type XyoBridgeDisconnectQuery = XyoQuery<{
5
+ schema: XyoBridgeDisconnectQuerySchema;
6
+ uri?: string;
7
+ }>;
8
+ //# sourceMappingURL=Disconnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disconnect.d.ts","sourceRoot":"","sources":["../../../src/Queries/Disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,oBAAY,8BAA8B,GAAG,qCAAqC,CAAA;AAClF,eAAO,MAAM,8BAA8B,EAAE,8BAAsE,CAAA;AAEnH,oBAAY,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,MAAM,EAAE,8BAA8B,CAAA;IACtC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoBridgeDisconnectQuerySchema = 'network.xyo.query.bridge.disconnect';
2
+ //# sourceMappingURL=Disconnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disconnect.js","sourceRoot":"","sources":["../../../src/Queries/Disconnect.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,8BAA8B,GAAmC,qCAAqC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { XyoModuleQuery, XyoModuleQuerySchema } from '@xyo-network/module';
2
+ import { XyoBridgeConnectQuery, XyoBridgeConnectQuerySchema } from './Connect';
3
+ import { XyoBridgeDisconnectQuery, XyoBridgeDisconnectQuerySchema } from './Disconnect';
4
+ export * from './Connect';
5
+ export * from './Disconnect';
6
+ export declare type XyoBridgeQuery = XyoBridgeConnectQuery | XyoBridgeDisconnectQuery | XyoModuleQuery;
7
+ export declare type XyoBridgeQuerySchema = XyoBridgeConnectQuerySchema | XyoBridgeDisconnectQuerySchema | XyoModuleQuerySchema;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export * from './Connect';
2
+ export * from './Disconnect';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAKA,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
+ import { XyoModule } from '@xyo-network/module';
3
+ import { XyoPayload } from '@xyo-network/payload';
4
+ import { Promisable } from '@xyo-network/promisable';
5
+ import { BridgeModule } from './Bridge';
6
+ import { XyoBridgeConfig } from './Config';
7
+ import { XyoBridgeQuery } from './Queries';
8
+ export declare abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfig, TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends XyoModule<TConfig, TQuery> implements BridgeModule<TQuery> {
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)[]]>;
13
+ query(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>;
14
+ }
15
+ //# sourceMappingURL=XyoBridge.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,29 @@
1
+ import { XyoModule } from '@xyo-network/module';
2
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
3
+ export class XyoBridge extends XyoModule {
4
+ queries() {
5
+ return [XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, ...super.queries()];
6
+ }
7
+ async query(query) {
8
+ const payloads = [];
9
+ switch (query.schema) {
10
+ case XyoBridgeConnectQuerySchema: {
11
+ await this.connect();
12
+ break;
13
+ }
14
+ case XyoBridgeDisconnectQuerySchema: {
15
+ await this.disconnect();
16
+ break;
17
+ }
18
+ default:
19
+ if (super.queries().find((schema) => schema === query.schema)) {
20
+ return super.query(query);
21
+ }
22
+ else {
23
+ return super.query(query);
24
+ }
25
+ }
26
+ return [this.bindPayloads(payloads), payloads];
27
+ }
28
+ }
29
+ //# sourceMappingURL=XyoBridge.js.map
@@ -0,0 +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,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,7 @@
1
+ import { XyoModuleWrapper } from '@xyo-network/module';
2
+ import { Bridge } from './Bridge';
3
+ export declare class XyoBridgeWrapper extends XyoModuleWrapper implements Bridge {
4
+ connect(uri?: string): Promise<boolean>;
5
+ disconnect(uri?: string): Promise<boolean>;
6
+ }
7
+ //# sourceMappingURL=XyoBridgeWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoBridgeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoBridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,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;IAMvC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAKjD"}
@@ -0,0 +1,15 @@
1
+ import { XyoModuleWrapper } from '@xyo-network/module';
2
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
3
+ export class XyoBridgeWrapper extends XyoModuleWrapper {
4
+ async connect(uri) {
5
+ const query = { schema: XyoBridgeConnectQuerySchema, uri };
6
+ await this.module.query(query);
7
+ return true;
8
+ }
9
+ async disconnect(uri) {
10
+ const query = { schema: XyoBridgeDisconnectQuerySchema, uri };
11
+ await this.module.query(query);
12
+ return true;
13
+ }
14
+ }
15
+ //# sourceMappingURL=XyoBridgeWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoBridgeWrapper.js","sourceRoot":"","sources":["../../src/XyoBridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,MAAM,KAAK,GAAmB,EAAE,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAA;QAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,MAAM,KAAK,GAAmB,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAA;QAC7E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,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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"}
@@ -0,0 +1,7 @@
1
+ export * from './Config';
2
+ export * from './PartialBridgeConfig';
3
+ export * from './Queries';
4
+ export * from './XyoBridge';
5
+ export * from './XyoBridgeWrapper';
6
+ export * from './XyoHttpBridge';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,7 @@
1
+ export * from './Config';
2
+ export * from './PartialBridgeConfig';
3
+ export * from './Queries';
4
+ export * from './XyoBridge';
5
+ export * from './XyoBridgeWrapper';
6
+ export * from './XyoHttpBridge';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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
@@ -1,47 +1,58 @@
1
1
  {
2
2
  "name": "@xyo-network/bridge",
3
- "version": "0.42.0",
4
- "description": "A XYO Network bridge",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "author": "Carter Harrison",
8
- "license": "MIT",
3
+ "author": {
4
+ "email": "support@xyo.network",
5
+ "name": "XYO Development Team",
6
+ "url": "https://xyo.network"
7
+ },
8
+ "bugs": {
9
+ "email": "support@xyo.network",
10
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
+ },
9
12
  "dependencies": {
10
- "@xyo-network/base": "^0.42.0",
11
- "@xyo-network/base-node": "^0.42.0",
12
- "@xyo-network/ble": "^0.42.0",
13
- "@xyo-network/ble.noble": "^0.42.0",
14
- "@xyo-network/bound-witness": "^0.42.0",
15
- "@xyo-network/bridge-queue-repository": "^0.42.0",
16
- "@xyo-network/bridge-queue-repository.keyvalue": "^0.42.0",
17
- "@xyo-network/hashing": "^0.42.0",
18
- "@xyo-network/logger": "^0.42.0",
19
- "@xyo-network/network": "^0.42.0",
20
- "@xyo-network/network.ble": "^0.42.0",
21
- "@xyo-network/network.tcp": "^0.42.0",
22
- "@xyo-network/origin-block-repository": "^0.42.0",
23
- "@xyo-network/origin-chain": "^0.42.0",
24
- "@xyo-network/peer-connections": "^0.42.0",
25
- "@xyo-network/peer-interaction": "^0.42.0",
26
- "@xyo-network/peer-interaction-handlers": "^0.42.0",
27
- "@xyo-network/peer-interaction-router": "^0.42.0",
28
- "@xyo-network/serialization": "^0.42.0",
29
- "@xyo-network/serializer": "^0.42.0",
30
- "@xyo-network/signing": "^0.42.0",
31
- "@xyo-network/signing.ecdsa": "^0.42.0",
32
- "@xyo-network/storage": "^0.42.0",
33
- "@xyo-network/storage.leveldb": "^0.42.0",
34
- "@xyo-network/utils": "^0.42.0",
35
- "noble": "1.9.1"
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",
18
+ "tslib": "^2.4.0"
19
+ },
20
+ "peerDependencies": {
21
+ "axios": "^0.27.2"
22
+ },
23
+ "description": "Primary SDK for using XYO Protocol 2.0",
24
+ "browser": "dist/esm/index.js",
25
+ "docs": "dist/docs.json",
26
+ "exports": {
27
+ ".": {
28
+ "node": {
29
+ "import": "./dist/esm/index.js",
30
+ "require": "./dist/cjs/index.js"
31
+ },
32
+ "browser": {
33
+ "import": "./dist/esm/index.js",
34
+ "require": "./dist/cjs/index.js"
35
+ },
36
+ "default": "./dist/esm/index.js"
37
+ },
38
+ "./dist/docs.json": {
39
+ "default": "./dist/docs.json"
40
+ },
41
+ "./package.json": "./package.json"
42
+ },
43
+ "main": "dist/cjs/index.js",
44
+ "module": "dist/esm/index.js",
45
+ "homepage": "https://xyo.network",
46
+ "license": "LGPL-3.0-only",
47
+ "publishConfig": {
48
+ "access": "public"
36
49
  },
37
- "devDependencies": {
38
- "@types/jest": "^23.3.1",
39
- "@types/node": "^10.7.1",
40
- "jest": "^23.6.0",
41
- "ts-jest": "^23.10.5",
42
- "ts-node": "^7.0.1",
43
- "tslint": "^5.12.1",
44
- "typescript": "^3.2.2"
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
45
53
  },
46
- "gitHead": "b994e171d3c211f157500cd10cbab3d6cdebd60b"
47
- }
54
+ "sideEffects": false,
55
+ "types": "dist/esm/index.d.ts",
56
+ "version": "2.32.0-rc.3",
57
+ "stableVersion": "2.31.5"
58
+ }
package/src/Bridge.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { Module } from '@xyo-network/module'
2
+ import { Promisable } from '@xyo-network/promisable'
3
+
4
+ import { XyoBridgeQuery } from './Queries'
5
+
6
+ export interface Bridge {
7
+ connect: () => Promisable<boolean>
8
+ disconnect: () => Promisable<boolean>
9
+ }
10
+
11
+ export interface BridgeModule<TQuery extends XyoBridgeQuery = XyoBridgeQuery> extends Bridge, Module<TQuery> {}
package/src/Config.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { XyoModuleConfig } from '@xyo-network/module'
2
+ import { XyoPayload } from '@xyo-network/payload'
3
+
4
+ export type XyoBridgeConfigSchema = 'network.xyo.bridge.config'
5
+ export const XyoBridgeConfigSchema: XyoBridgeConfigSchema = 'network.xyo.bridge.config'
6
+
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
+ }
@@ -0,0 +1,9 @@
1
+ import { XyoQuery } from '@xyo-network/module'
2
+
3
+ export type XyoBridgeConnectQuerySchema = 'network.xyo.query.bridge.connect'
4
+ export const XyoBridgeConnectQuerySchema: XyoBridgeConnectQuerySchema = 'network.xyo.query.bridge.connect'
5
+
6
+ export type XyoBridgeConnectQuery = XyoQuery<{
7
+ schema: XyoBridgeConnectQuerySchema
8
+ uri?: string
9
+ }>
@@ -0,0 +1,9 @@
1
+ import { XyoQuery } from '@xyo-network/module'
2
+
3
+ export type XyoBridgeDisconnectQuerySchema = 'network.xyo.query.bridge.disconnect'
4
+ export const XyoBridgeDisconnectQuerySchema: XyoBridgeDisconnectQuerySchema = 'network.xyo.query.bridge.disconnect'
5
+
6
+ export type XyoBridgeDisconnectQuery = XyoQuery<{
7
+ schema: XyoBridgeDisconnectQuerySchema
8
+ uri?: string
9
+ }>
@@ -0,0 +1,11 @@
1
+ import { XyoModuleQuery, XyoModuleQuerySchema } from '@xyo-network/module'
2
+
3
+ import { XyoBridgeConnectQuery, XyoBridgeConnectQuerySchema } from './Connect'
4
+ import { XyoBridgeDisconnectQuery, XyoBridgeDisconnectQuerySchema } from './Disconnect'
5
+
6
+ export * from './Connect'
7
+ export * from './Disconnect'
8
+
9
+ export type XyoBridgeQuery = XyoBridgeConnectQuery | XyoBridgeDisconnectQuery | XyoModuleQuery
10
+
11
+ export type XyoBridgeQuerySchema = XyoBridgeConnectQuerySchema | XyoBridgeDisconnectQuerySchema | XyoModuleQuerySchema
@@ -0,0 +1,43 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness'
2
+ import { XyoModule } from '@xyo-network/module'
3
+ import { XyoPayload } from '@xyo-network/payload'
4
+ import { Promisable } from '@xyo-network/promisable'
5
+
6
+ import { BridgeModule } from './Bridge'
7
+ import { XyoBridgeConfig } from './Config'
8
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
9
+
10
+ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfig, TQuery extends XyoBridgeQuery = XyoBridgeQuery>
11
+ extends XyoModule<TConfig, TQuery>
12
+ implements BridgeModule<TQuery>
13
+ {
14
+ override queries() {
15
+ return [XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, ...super.queries()]
16
+ }
17
+
18
+ abstract connect(): Promisable<boolean>
19
+ abstract disconnect(): Promisable<boolean>
20
+
21
+ abstract forward(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]>
22
+
23
+ override async query(query: TQuery): Promise<[XyoBoundWitness, (XyoPayload | null)[]]> {
24
+ const payloads: (XyoPayload | null)[] = []
25
+ switch (query.schema) {
26
+ case XyoBridgeConnectQuerySchema: {
27
+ await this.connect()
28
+ break
29
+ }
30
+ case XyoBridgeDisconnectQuerySchema: {
31
+ await this.disconnect()
32
+ break
33
+ }
34
+ default:
35
+ if (super.queries().find((schema) => schema === query.schema)) {
36
+ return super.query(query)
37
+ } else {
38
+ return super.query(query)
39
+ }
40
+ }
41
+ return [this.bindPayloads(payloads), payloads]
42
+ }
43
+ }
@@ -0,0 +1,18 @@
1
+ import { XyoModuleWrapper } from '@xyo-network/module'
2
+
3
+ import { Bridge } from './Bridge'
4
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
5
+
6
+ export class XyoBridgeWrapper extends XyoModuleWrapper implements Bridge {
7
+ async connect(uri?: string): Promise<boolean> {
8
+ const query: XyoBridgeQuery = { schema: XyoBridgeConnectQuerySchema, uri }
9
+ await this.module.query(query)
10
+ return true
11
+ }
12
+
13
+ async disconnect(uri?: string): Promise<boolean> {
14
+ const query: XyoBridgeQuery = { schema: XyoBridgeDisconnectQuerySchema, uri }
15
+ await this.module.query(query)
16
+ return true
17
+ }
18
+ }