@xyo-network/bridge 2.46.4 → 2.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/cjs/BridgeWrapper.js +38 -3
  2. package/dist/cjs/BridgeWrapper.js.map +1 -1
  3. package/dist/cjs/index.js +2 -6
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/docs.json +15754 -15154
  6. package/dist/esm/BridgeWrapper.js +27 -2
  7. package/dist/esm/BridgeWrapper.js.map +1 -1
  8. package/dist/esm/index.js +2 -6
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/types/BridgeWrapper.d.ts +30 -3
  11. package/dist/types/BridgeWrapper.d.ts.map +1 -1
  12. package/dist/types/index.d.ts +2 -6
  13. package/dist/types/index.d.ts.map +1 -1
  14. package/package.json +6 -13
  15. package/src/BridgeWrapper.ts +52 -4
  16. package/src/index.ts +2 -6
  17. package/dist/cjs/AbstractBridge.js +0 -49
  18. package/dist/cjs/AbstractBridge.js.map +0 -1
  19. package/dist/cjs/Bridge.js +0 -3
  20. package/dist/cjs/Bridge.js.map +0 -1
  21. package/dist/cjs/Config.js +0 -5
  22. package/dist/cjs/Config.js.map +0 -1
  23. package/dist/cjs/HttpBridge.js +0 -127
  24. package/dist/cjs/HttpBridge.js.map +0 -1
  25. package/dist/cjs/HttpBridgeConfig.js +0 -5
  26. package/dist/cjs/HttpBridgeConfig.js.map +0 -1
  27. package/dist/cjs/PartialConfig.js +0 -3
  28. package/dist/cjs/PartialConfig.js.map +0 -1
  29. package/dist/cjs/Queries/Connect.js +0 -5
  30. package/dist/cjs/Queries/Connect.js.map +0 -1
  31. package/dist/cjs/Queries/Disconnect.js +0 -5
  32. package/dist/cjs/Queries/Disconnect.js.map +0 -1
  33. package/dist/cjs/Queries/index.js +0 -6
  34. package/dist/cjs/Queries/index.js.map +0 -1
  35. package/dist/cjs/RemoteModuleResolver.js +0 -95
  36. package/dist/cjs/RemoteModuleResolver.js.map +0 -1
  37. package/dist/esm/AbstractBridge.js +0 -38
  38. package/dist/esm/AbstractBridge.js.map +0 -1
  39. package/dist/esm/Bridge.js +0 -2
  40. package/dist/esm/Bridge.js.map +0 -1
  41. package/dist/esm/Config.js +0 -2
  42. package/dist/esm/Config.js.map +0 -1
  43. package/dist/esm/HttpBridge.js +0 -100
  44. package/dist/esm/HttpBridge.js.map +0 -1
  45. package/dist/esm/HttpBridgeConfig.js +0 -2
  46. package/dist/esm/HttpBridgeConfig.js.map +0 -1
  47. package/dist/esm/PartialConfig.js +0 -2
  48. package/dist/esm/PartialConfig.js.map +0 -1
  49. package/dist/esm/Queries/Connect.js +0 -2
  50. package/dist/esm/Queries/Connect.js.map +0 -1
  51. package/dist/esm/Queries/Disconnect.js +0 -2
  52. package/dist/esm/Queries/Disconnect.js.map +0 -1
  53. package/dist/esm/Queries/index.js +0 -3
  54. package/dist/esm/Queries/index.js.map +0 -1
  55. package/dist/esm/RemoteModuleResolver.js +0 -80
  56. package/dist/esm/RemoteModuleResolver.js.map +0 -1
  57. package/dist/types/AbstractBridge.d.ts +0 -13
  58. package/dist/types/AbstractBridge.d.ts.map +0 -1
  59. package/dist/types/Bridge.d.ts +0 -9
  60. package/dist/types/Bridge.d.ts.map +0 -1
  61. package/dist/types/Config.d.ts +0 -6
  62. package/dist/types/Config.d.ts.map +0 -1
  63. package/dist/types/HttpBridge.d.ts +0 -36
  64. package/dist/types/HttpBridge.d.ts.map +0 -1
  65. package/dist/types/HttpBridgeConfig.d.ts +0 -10
  66. package/dist/types/HttpBridgeConfig.d.ts.map +0 -1
  67. package/dist/types/PartialConfig.d.ts +0 -4
  68. package/dist/types/PartialConfig.d.ts.map +0 -1
  69. package/dist/types/Queries/Connect.d.ts +0 -8
  70. package/dist/types/Queries/Connect.d.ts.map +0 -1
  71. package/dist/types/Queries/Disconnect.d.ts +0 -8
  72. package/dist/types/Queries/Disconnect.d.ts.map +0 -1
  73. package/dist/types/Queries/index.d.ts +0 -8
  74. package/dist/types/Queries/index.d.ts.map +0 -1
  75. package/dist/types/RemoteModuleResolver.d.ts +0 -21
  76. package/dist/types/RemoteModuleResolver.d.ts.map +0 -1
  77. package/src/AbstractBridge.ts +0 -47
  78. package/src/Bridge.ts +0 -9
  79. package/src/Config.ts +0 -7
  80. package/src/HttpBridge.ts +0 -132
  81. package/src/HttpBridgeConfig.ts +0 -14
  82. package/src/PartialConfig.ts +0 -5
  83. package/src/Queries/Connect.ts +0 -9
  84. package/src/Queries/Disconnect.ts +0 -9
  85. package/src/Queries/index.ts +0 -10
  86. package/src/RemoteModuleResolver.ts +0 -103
  87. package/src/spec/HttpBridge.spec.ts +0 -20
@@ -1,7 +1,10 @@
1
- import { ModuleWrapper } from '@xyo-network/module';
1
+ import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from '@xyo-network/bridge-model';
2
+ import { ModuleDiscoverQuerySchema, ModuleWrapper, } from '@xyo-network/module';
2
3
  import { PayloadWrapper } from '@xyo-network/payload-wrapper';
3
- import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
4
4
  export class BridgeWrapper extends ModuleWrapper {
5
+ get targetResolver() {
6
+ return this.module.targetResolver;
7
+ }
5
8
  async connect(uri) {
6
9
  const queryPayload = PayloadWrapper.parse({ schema: XyoBridgeConnectQuerySchema, uri });
7
10
  await this.sendQuery(queryPayload);
@@ -12,5 +15,27 @@ export class BridgeWrapper extends ModuleWrapper {
12
15
  await this.sendQuery(queryPayload);
13
16
  return true;
14
17
  }
18
+ async targetDiscover(address) {
19
+ const queryPayload = PayloadWrapper.parse({ schema: ModuleDiscoverQuerySchema });
20
+ return await this.sendTargetQuery(address, queryPayload);
21
+ }
22
+ targetQueries(address) {
23
+ return this.module.targetQueries(address);
24
+ }
25
+ async targetQuery(address, query, payloads) {
26
+ return await this.module.targetQuery(address, query, payloads);
27
+ }
28
+ async targetQueryable(address, query, payloads, queryConfig) {
29
+ return await this.module.targetQueryable(address, query, payloads, queryConfig);
30
+ }
31
+ async targetResolve(address, filter) {
32
+ return await this.module.targetResolve(address, filter);
33
+ }
34
+ async sendTargetQuery(address, queryPayload, payloads) {
35
+ const query = await this.bindQuery(queryPayload, payloads);
36
+ const result = await this.module.targetQuery(address, query[0], query[1]);
37
+ this.throwErrors(query, result);
38
+ return result[1];
39
+ }
15
40
  }
16
41
  //# sourceMappingURL=BridgeWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeWrapper.js","sourceRoot":"","sources":["../../src/BridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC9C,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAA;QACvG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1G,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"BridgeWrapper.js","sourceRoot":"","sources":["../../src/BridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,2BAA2B,CAAA;AACrI,OAAO,EAGL,yBAAyB,EAGzB,aAAa,GAGd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,MAAM,OAAO,aAAc,SAAQ,aAA2B;IAC5D,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAA;QACvG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAiB,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1G,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAsB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAA;QACrG,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,KAAQ,EACR,QAAuB;QAEvB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,KAA2B,EAAE,QAAuB,EAAE,WAA0B;QACrH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,MAAqB;QACxD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,OAAe,EACf,YAAe,EACf,QAAsB;QAEtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;CACF"}
package/dist/esm/index.js CHANGED
@@ -1,8 +1,4 @@
1
- export * from './AbstractBridge';
2
1
  export * from './BridgeWrapper';
3
- export * from './Config';
4
- export * from './HttpBridge';
5
- export * from './HttpBridgeConfig';
6
- export * from './PartialConfig';
7
- export * from './Queries';
2
+ export * from '@xyo-network/abstract-bridge';
3
+ export * from '@xyo-network/bridge-model';
8
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
@@ -1,7 +1,34 @@
1
- import { ModuleWrapper } from '@xyo-network/module';
2
- import { Bridge } from './Bridge';
3
- export declare class BridgeWrapper extends ModuleWrapper implements Bridge {
1
+ import { BridgeModule } from '@xyo-network/bridge-model';
2
+ import { ModuleConfig, ModuleFilter, ModuleQueryResult, ModuleWrapper, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
3
+ import { XyoPayload, XyoPayloads } from '@xyo-network/payload-model';
4
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
+ export declare class BridgeWrapper extends ModuleWrapper<BridgeModule> implements BridgeModule {
6
+ get targetResolver(): import("@xyo-network/module").ModuleResolver<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
7
+ name?: string | undefined;
8
+ security?: {
9
+ allowAnonymous?: boolean | undefined;
10
+ allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
11
+ disallowed?: Record<string, string[]> | undefined;
12
+ } | undefined;
13
+ } & {
14
+ schema: string;
15
+ }>>;
4
16
  connect(uri?: string): Promise<boolean>;
5
17
  disconnect(uri?: string): Promise<boolean>;
18
+ targetDiscover(address: string): Promise<XyoPayload[]>;
19
+ targetQueries(address: string): string[];
20
+ targetQuery<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(address: string, query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
21
+ targetQueryable(address: string, query: XyoQueryBoundWitness, payloads?: XyoPayload[], queryConfig?: ModuleConfig): Promise<boolean>;
22
+ targetResolve(address: string, filter?: ModuleFilter): Promise<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
23
+ name?: string | undefined;
24
+ security?: {
25
+ allowAnonymous?: boolean | undefined;
26
+ allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
27
+ disallowed?: Record<string, string[]> | undefined;
28
+ } | undefined;
29
+ } & {
30
+ schema: string;
31
+ }>[]>;
32
+ protected sendTargetQuery<T extends XyoQuery | PayloadWrapper<XyoQuery>>(address: string, queryPayload: T, payloads?: XyoPayloads): Promise<XyoPayload[]>;
6
33
  }
7
34
  //# sourceMappingURL=BridgeWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeWrapper.d.ts","sourceRoot":"","sources":["../../src/BridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,qBAAa,aAAc,SAAQ,aAAc,YAAW,MAAM;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAKjD"}
1
+ {"version":3,"file":"BridgeWrapper.d.ts","sourceRoot":"","sources":["../../src/BridgeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA+E,MAAM,2BAA2B,CAAA;AACrI,OAAO,EACL,YAAY,EAGZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,aAAc,SAAQ,aAAa,CAAC,YAAY,CAAE,YAAW,YAAY;IACpF,IAAW,cAAc;;;;;;;;;QAExB;IAEK,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK5D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,WAAW,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACrE,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAIvB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpI,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY;;;;;;;;;;cAI1C,eAAe,CAAC,CAAC,SAAS,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,EAC3E,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,QAAQ,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,UAAU,EAAE,CAAC;CAMzB"}
@@ -1,8 +1,4 @@
1
- export * from './AbstractBridge';
2
1
  export * from './BridgeWrapper';
3
- export * from './Config';
4
- export * from './HttpBridge';
5
- export * from './HttpBridgeConfig';
6
- export * from './PartialConfig';
7
- export * from './Queries';
2
+ export * from '@xyo-network/abstract-bridge';
3
+ export * from '@xyo-network/bridge-model';
8
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
package/package.json CHANGED
@@ -10,18 +10,11 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.7.1",
14
- "@xyo-network/account": "^2.46.4",
15
- "@xyo-network/address-payload-plugin": "^2.46.4",
16
- "@xyo-network/api-models": "^2.46.4",
17
- "@xyo-network/axios": "^2.46.4",
18
- "@xyo-network/module": "^2.46.4",
19
- "@xyo-network/module-model": "^2.46.4",
20
- "@xyo-network/payload-model": "^2.46.4",
21
- "@xyo-network/payload-wrapper": "^2.46.4",
22
- "@xyo-network/promise": "^2.46.4",
23
- "@xyo-network/query-payload-plugin": "^2.46.4",
24
- "lodash": "^4.17.21"
13
+ "@xyo-network/abstract-bridge": "^2.47.1",
14
+ "@xyo-network/bridge-model": "^2.47.1",
15
+ "@xyo-network/module": "^2.47.1",
16
+ "@xyo-network/payload-model": "^2.47.1",
17
+ "@xyo-network/payload-wrapper": "^2.47.1"
25
18
  },
26
19
  "devDependencies": {
27
20
  "@xylabs/ts-scripts-yarn3": "^2.14.15",
@@ -61,5 +54,5 @@
61
54
  },
62
55
  "sideEffects": false,
63
56
  "types": "dist/types/index.d.ts",
64
- "version": "2.46.4"
57
+ "version": "2.47.1"
65
58
  }
@@ -1,10 +1,22 @@
1
- import { ModuleWrapper } from '@xyo-network/module'
1
+ import { BridgeModule, XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from '@xyo-network/bridge-model'
2
+ import {
3
+ ModuleConfig,
4
+ ModuleDiscoverQuery,
5
+ ModuleDiscoverQuerySchema,
6
+ ModuleFilter,
7
+ ModuleQueryResult,
8
+ ModuleWrapper,
9
+ XyoQuery,
10
+ XyoQueryBoundWitness,
11
+ } from '@xyo-network/module'
12
+ import { XyoPayload, XyoPayloads } from '@xyo-network/payload-model'
2
13
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
3
14
 
4
- import { Bridge } from './Bridge'
5
- import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema, XyoBridgeQuery } from './Queries'
15
+ export class BridgeWrapper extends ModuleWrapper<BridgeModule> implements BridgeModule {
16
+ public get targetResolver() {
17
+ return this.module.targetResolver
18
+ }
6
19
 
7
- export class BridgeWrapper extends ModuleWrapper implements Bridge {
8
20
  async connect(uri?: string): Promise<boolean> {
9
21
  const queryPayload = PayloadWrapper.parse<XyoBridgeQuery>({ schema: XyoBridgeConnectQuerySchema, uri })
10
22
  await this.sendQuery(queryPayload)
@@ -16,4 +28,40 @@ export class BridgeWrapper extends ModuleWrapper implements Bridge {
16
28
  await this.sendQuery(queryPayload)
17
29
  return true
18
30
  }
31
+
32
+ async targetDiscover(address: string): Promise<XyoPayload[]> {
33
+ const queryPayload = PayloadWrapper.parse<ModuleDiscoverQuery>({ schema: ModuleDiscoverQuerySchema })
34
+ return await this.sendTargetQuery(address, queryPayload)
35
+ }
36
+
37
+ targetQueries(address: string): string[] {
38
+ return this.module.targetQueries(address)
39
+ }
40
+
41
+ async targetQuery<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(
42
+ address: string,
43
+ query: T,
44
+ payloads?: XyoPayload[],
45
+ ): Promise<ModuleQueryResult> {
46
+ return await this.module.targetQuery(address, query, payloads)
47
+ }
48
+
49
+ async targetQueryable(address: string, query: XyoQueryBoundWitness, payloads?: XyoPayload[], queryConfig?: ModuleConfig): Promise<boolean> {
50
+ return await this.module.targetQueryable(address, query, payloads, queryConfig)
51
+ }
52
+
53
+ async targetResolve(address: string, filter?: ModuleFilter) {
54
+ return await this.module.targetResolve(address, filter)
55
+ }
56
+
57
+ protected async sendTargetQuery<T extends XyoQuery | PayloadWrapper<XyoQuery>>(
58
+ address: string,
59
+ queryPayload: T,
60
+ payloads?: XyoPayloads,
61
+ ): Promise<XyoPayload[]> {
62
+ const query = await this.bindQuery(queryPayload, payloads)
63
+ const result = await this.module.targetQuery(address, query[0], query[1])
64
+ this.throwErrors(query, result)
65
+ return result[1]
66
+ }
19
67
  }
package/src/index.ts CHANGED
@@ -1,7 +1,3 @@
1
- export * from './AbstractBridge'
2
1
  export * from './BridgeWrapper'
3
- export * from './Config'
4
- export * from './HttpBridge'
5
- export * from './HttpBridgeConfig'
6
- export * from './PartialConfig'
7
- export * from './Queries'
2
+ export * from '@xyo-network/abstract-bridge'
3
+ export * from '@xyo-network/bridge-model'
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractBridge = void 0;
4
- const tslib_1 = require("tslib");
5
- const account_1 = require("@xyo-network/account");
6
- const module_1 = require("@xyo-network/module");
7
- const Queries_1 = require("./Queries");
8
- class AbstractBridge extends module_1.AbstractModule {
9
- get queries() {
10
- return [Queries_1.XyoBridgeConnectQuerySchema, Queries_1.XyoBridgeDisconnectQuerySchema, ...super.queries];
11
- }
12
- query(query, payloads) {
13
- const _super = Object.create(null, {
14
- queries: { get: () => super.queries },
15
- query: { get: () => super.query }
16
- });
17
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
- const wrapper = module_1.QueryBoundWitnessWrapper.parseQuery(query, payloads);
19
- const typedQuery = wrapper.query.payload;
20
- const queryAccount = new account_1.Account();
21
- try {
22
- switch (typedQuery.schema) {
23
- case Queries_1.XyoBridgeConnectQuerySchema: {
24
- yield this.connect();
25
- break;
26
- }
27
- case Queries_1.XyoBridgeDisconnectQuerySchema: {
28
- yield this.disconnect();
29
- break;
30
- }
31
- default:
32
- if (_super.queries.includes(typedQuery.schema)) {
33
- return _super.query.call(this, query, payloads);
34
- }
35
- else {
36
- return this.forward(typedQuery);
37
- }
38
- }
39
- }
40
- catch (ex) {
41
- const error = ex;
42
- return this.bindResult([new module_1.XyoErrorBuilder([wrapper.hash], error.message).build()], queryAccount);
43
- }
44
- return this.bindResult([], queryAccount);
45
- });
46
- }
47
- }
48
- exports.AbstractBridge = AbstractBridge;
49
- //# sourceMappingURL=AbstractBridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractBridge.js","sourceRoot":"","sources":["../../src/AbstractBridge.ts"],"names":[],"mappings":";;;;AAAA,kDAA8C;AAC9C,gDAAkJ;AAMlJ,uCAAuG;AAEvG,MAAsB,cAA4D,SAAQ,uBAAuB;IAC/G,IAAa,OAAO;QAClB,OAAO,CAAC,qCAA2B,EAAE,wCAA8B,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IACxF,CAAC;IAEc,KAAK,CAAwD,KAAQ,EAAE,QAAuB;;;;;;YAC3G,MAAM,OAAO,GAAG,iCAAwB,CAAC,UAAU,CAAiB,KAAK,EAAE,QAAQ,CAAC,CAAA;YACpF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;YACxC,MAAM,YAAY,GAAG,IAAI,iBAAO,EAAE,CAAA;YAClC,IAAI;gBACF,QAAQ,UAAU,CAAC,MAAM,EAAE;oBACzB,KAAK,qCAA2B,CAAC,CAAC;wBAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;wBACpB,MAAK;qBACN;oBACD,KAAK,wCAA8B,CAAC,CAAC;wBACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;wBACvB,MAAK;qBACN;oBACD;wBACE,IAAI,OAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;4BAC7C,OAAO,OAAM,KAAK,YAAC,KAAK,EAAE,QAAQ,EAAC;yBACpC;6BAAM;4BACL,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;yBAChC;iBACJ;aACF;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,wBAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;aACnG;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;KAAA;CAMF;AArCD,wCAqCC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../src/Bridge.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoBridgeConfigSchema = void 0;
4
- exports.XyoBridgeConfigSchema = 'network.xyo.bridge.config';
5
- //# sourceMappingURL=Config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":";;;AAIa,QAAA,qBAAqB,GAA0B,2BAA2B,CAAA"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpBridge = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = require("@xylabs/assert");
6
- const account_1 = require("@xyo-network/account");
7
- const axios_1 = require("@xyo-network/axios");
8
- const module_1 = require("@xyo-network/module");
9
- const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
10
- const query_payload_plugin_1 = require("@xyo-network/query-payload-plugin");
11
- const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
12
- const Queries_1 = require("./Queries");
13
- const RemoteModuleResolver_1 = require("./RemoteModuleResolver");
14
- class HttpBridge extends module_1.AbstractModule {
15
- constructor(params) {
16
- var _a;
17
- super(params);
18
- this.remoteQueries = [];
19
- this.axios = (_a = params.axios) !== null && _a !== void 0 ? _a : new axios_1.AxiosJson();
20
- this.remoteResolver = new RemoteModuleResolver_1.RemoteModuleResolver(this);
21
- }
22
- get nodeUri() {
23
- var _a;
24
- return (0, assert_1.assertEx)((_a = this.config) === null || _a === void 0 ? void 0 : _a.nodeUri, 'Missing nodeUri');
25
- }
26
- get queries() {
27
- return [...super.queries, ...this.remoteQueries];
28
- }
29
- get targetAddress() {
30
- var _a;
31
- return (_a = this.config) === null || _a === void 0 ? void 0 : _a.targetAddress;
32
- }
33
- static create(params) {
34
- const _super = Object.create(null, {
35
- create: { get: () => super.create }
36
- });
37
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
- const result = (yield _super.create.call(this, params));
39
- const moduleWrapper = module_1.ModuleWrapper.wrap(result);
40
- const discover = yield moduleWrapper.discover();
41
- result.remoteQueries = (0, compact_1.default)(discover.map((payload) => {
42
- if (payload.schema === query_payload_plugin_1.QuerySchema) {
43
- const schemaPayload = payload;
44
- return schemaPayload.query;
45
- }
46
- else {
47
- return null;
48
- }
49
- }));
50
- return result;
51
- });
52
- }
53
- connect() {
54
- return true;
55
- }
56
- disconnect() {
57
- return true;
58
- }
59
- discover() {
60
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
- const queryPayload = payload_wrapper_1.PayloadWrapper.parse({ schema: module_1.ModuleDiscoverQuerySchema });
62
- return (yield this.forward(queryPayload))[1];
63
- });
64
- }
65
- query(query, payloads) {
66
- const _super = Object.create(null, {
67
- queries: { get: () => super.queries },
68
- query: { get: () => super.query }
69
- });
70
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
- const wrapper = module_1.QueryBoundWitnessWrapper.parseQuery(query, payloads);
72
- const typedQuery = wrapper.query.payload;
73
- const queryAccount = new account_1.Account();
74
- const resultPayloads = [];
75
- try {
76
- switch (typedQuery.schema) {
77
- case Queries_1.XyoBridgeConnectQuerySchema: {
78
- yield this.connect();
79
- break;
80
- }
81
- case Queries_1.XyoBridgeDisconnectQuerySchema: {
82
- yield this.disconnect();
83
- break;
84
- }
85
- default:
86
- if (_super.queries.find((schema) => schema === typedQuery.schema)) {
87
- return yield _super.query.call(this, query, payloads);
88
- }
89
- else {
90
- return yield this.forward(query, payloads);
91
- }
92
- }
93
- }
94
- catch (ex) {
95
- const error = ex;
96
- resultPayloads.push(new module_1.XyoErrorBuilder([wrapper.hash], error.message).build());
97
- }
98
- return yield this.bindResult(resultPayloads, queryAccount);
99
- });
100
- }
101
- resolve(filter) {
102
- const _super = Object.create(null, {
103
- resolve: { get: () => super.resolve }
104
- });
105
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
106
- return [...(yield _super.resolve.call(this, filter)), ...(yield this.remoteResolver.resolve(filter))];
107
- });
108
- }
109
- forward(query, payloads = []) {
110
- var _a, _b;
111
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
- try {
113
- const boundQuery = yield this.bindQuery(query, payloads);
114
- const result = yield this.axios.post(`${this.nodeUri}/address/${this.targetAddress}`, boundQuery);
115
- return result.data.data;
116
- }
117
- catch (ex) {
118
- const error = ex;
119
- (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(`Error Status: ${error.status}`);
120
- (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Error Cause: ${JSON.stringify(error.cause, null, 2)}`);
121
- throw error;
122
- }
123
- });
124
- }
125
- }
126
- exports.HttpBridge = HttpBridge;
127
- //# sourceMappingURL=HttpBridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpBridge.js","sourceRoot":"","sources":["../../src/HttpBridge.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpBridgeConfigSchema = void 0;
4
- exports.HttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
5
- //# sourceMappingURL=HttpBridgeConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpBridgeConfig.js","sourceRoot":"","sources":["../../src/HttpBridgeConfig.ts"],"names":[],"mappings":";;;AAKa,QAAA,sBAAsB,GAA2B,gCAAgC,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=PartialConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PartialConfig.js","sourceRoot":"","sources":["../../src/PartialConfig.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoBridgeConnectQuerySchema = void 0;
4
- exports.XyoBridgeConnectQuerySchema = 'network.xyo.query.bridge.connect';
5
- //# sourceMappingURL=Connect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Connect.js","sourceRoot":"","sources":["../../../src/Queries/Connect.ts"],"names":[],"mappings":";;;AAGa,QAAA,2BAA2B,GAAgC,kCAAkC,CAAA"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoBridgeDisconnectQuerySchema = void 0;
4
- exports.XyoBridgeDisconnectQuerySchema = 'network.xyo.query.bridge.disconnect';
5
- //# sourceMappingURL=Disconnect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Disconnect.js","sourceRoot":"","sources":["../../../src/Queries/Disconnect.ts"],"names":[],"mappings":";;;AAGa,QAAA,8BAA8B,GAAmC,qCAAqC,CAAA"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./Connect"), exports);
5
- tslib_1.__exportStar(require("./Disconnect"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":";;;AAKA,oDAAyB;AACzB,uDAA4B"}
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteModuleResolver = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = require("@xylabs/assert");
6
- const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
7
- const module_1 = require("@xyo-network/module");
8
- const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
9
- const flatten_1 = tslib_1.__importDefault(require("lodash/flatten"));
10
- const HttpBridge_1 = require("./HttpBridge");
11
- const HttpBridgeConfig_1 = require("./HttpBridgeConfig");
12
- class RemoteModuleResolver extends module_1.CompositeModuleResolver {
13
- // TODO: Allow optional ctor param for supplying address for nested Nodes
14
- // protected readonly address?: string,
15
- constructor(bridge) {
16
- super();
17
- this.bridge = bridge;
18
- this.resolvedModules = {};
19
- }
20
- get isModuleResolver() {
21
- return true;
22
- }
23
- add(_module, _name) {
24
- throw new Error('Method not implemented.');
25
- }
26
- remove(_address) {
27
- throw new Error('Method not implemented.');
28
- }
29
- resolve(filter) {
30
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
- const mods = yield Promise.all((0, flatten_1.default)(yield this.resolveRemoteModules(filter)));
32
- return this.filterLocalModules(mods, filter);
33
- });
34
- }
35
- filterLocalModules(mods, filter) {
36
- // TODO: Handle filter?.query
37
- if (filter === null || filter === void 0 ? void 0 : filter.query)
38
- throw new Error('Filtering by query not yet implemented by this resolver');
39
- const config = filter === null || filter === void 0 ? void 0 : filter.config;
40
- const filtered = (config === null || config === void 0 ? void 0 : config.length) ? mods.filter((mod) => config.includes(mod.config.schema)) : mods;
41
- return filtered;
42
- }
43
- getRemoteAddresses() {
44
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
45
- const nodeWrapper = (0, assert_1.assertEx)(module_1.ModuleWrapper.wrap(this.bridge), 'nodeUri can not be wrapped');
46
- const discover = yield nodeWrapper.discover();
47
- return (0, compact_1.default)(discover.map((payload) => {
48
- if (payload.schema === address_payload_plugin_1.AddressSchema) {
49
- const schemaPayload = payload;
50
- return schemaPayload.address;
51
- }
52
- else {
53
- return null;
54
- }
55
- }));
56
- });
57
- }
58
- resolveByAddress(targetAddress) {
59
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
- const cached = this.resolvedModules[targetAddress];
61
- if (cached)
62
- return cached;
63
- const mod = yield HttpBridge_1.HttpBridge.create({
64
- config: { nodeUri: this.bridge.nodeUri, schema: HttpBridgeConfig_1.HttpBridgeConfigSchema, targetAddress },
65
- });
66
- this.resolvedModules[targetAddress] = mod;
67
- return mod;
68
- });
69
- }
70
- resolveByName(name) {
71
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
72
- const cached = this.resolvedModules[name];
73
- if (cached)
74
- return cached;
75
- const mod = yield HttpBridge_1.HttpBridge.create({
76
- config: { name, nodeUri: this.bridge.nodeUri, schema: HttpBridgeConfig_1.HttpBridgeConfigSchema },
77
- });
78
- this.resolvedModules[name] = mod;
79
- this.resolvedModules[mod.address] = mod;
80
- return mod;
81
- });
82
- }
83
- resolveRemoteModules(filter) {
84
- var _a, _b;
85
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
86
- const addresses = filter ? filter === null || filter === void 0 ? void 0 : filter.address : yield this.getRemoteAddresses();
87
- const names = filter === null || filter === void 0 ? void 0 : filter.name;
88
- const byAddress = yield Promise.all((_a = addresses === null || addresses === void 0 ? void 0 : addresses.map((address) => this.resolveByAddress(address))) !== null && _a !== void 0 ? _a : []);
89
- const byName = yield Promise.all((_b = names === null || names === void 0 ? void 0 : names.map((name) => this.resolveByName(name))) !== null && _b !== void 0 ? _b : []);
90
- return [...byAddress, ...byName];
91
- });
92
- }
93
- }
94
- exports.RemoteModuleResolver = RemoteModuleResolver;
95
- //# sourceMappingURL=RemoteModuleResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RemoteModuleResolver.js","sourceRoot":"","sources":["../../src/RemoteModuleResolver.ts"],"names":[],"mappings":"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"}