@openfin/core 33.76.31 → 33.76.38

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 (269) hide show
  1. package/OpenFin.d.ts +1 -1
  2. package/README.md +29 -4
  3. package/fin.d.ts +2 -2
  4. package/{src → out}/GlobalOpenFin.d.ts +1 -1
  5. package/out/mock-alpha.d.ts +16112 -0
  6. package/out/mock-beta.d.ts +16112 -0
  7. package/out/mock-public.d.ts +16112 -0
  8. package/out/mock.d.ts +16797 -0
  9. package/out/mock.js +17104 -0
  10. package/package.json +30 -23
  11. package/LICENSE +0 -13
  12. package/NOTICE +0 -16
  13. package/openfin-core-33.76.31.tgz +0 -0
  14. package/src/OpenFin.d.ts +0 -3080
  15. package/src/OpenFin.js +0 -2
  16. package/src/api/api-exposer/api-consumer.d.ts +0 -28
  17. package/src/api/api-exposer/api-consumer.js +0 -28
  18. package/src/api/api-exposer/api-exposer.d.ts +0 -35
  19. package/src/api/api-exposer/api-exposer.js +0 -38
  20. package/src/api/api-exposer/decorators.d.ts +0 -10
  21. package/src/api/api-exposer/decorators.js +0 -18
  22. package/src/api/api-exposer/index.d.ts +0 -4
  23. package/src/api/api-exposer/index.js +0 -20
  24. package/src/api/api-exposer/strategies/index.d.ts +0 -1
  25. package/src/api/api-exposer/strategies/index.js +0 -17
  26. package/src/api/api-exposer/strategies/openfin-channels/channels-consumer.d.ts +0 -14
  27. package/src/api/api-exposer/strategies/openfin-channels/channels-consumer.js +0 -20
  28. package/src/api/api-exposer/strategies/openfin-channels/channels-exposer.d.ts +0 -20
  29. package/src/api/api-exposer/strategies/openfin-channels/channels-exposer.js +0 -23
  30. package/src/api/api-exposer/strategies/openfin-channels/index.d.ts +0 -2
  31. package/src/api/api-exposer/strategies/openfin-channels/index.js +0 -18
  32. package/src/api/application/Factory.d.ts +0 -148
  33. package/src/api/application/Factory.js +0 -230
  34. package/src/api/application/Instance.d.ts +0 -321
  35. package/src/api/application/Instance.js +0 -453
  36. package/src/api/application/index.d.ts +0 -3
  37. package/src/api/application/index.js +0 -19
  38. package/src/api/base.d.ts +0 -48
  39. package/src/api/base.js +0 -177
  40. package/src/api/clipboard/index.d.ts +0 -92
  41. package/src/api/clipboard/index.js +0 -120
  42. package/src/api/events/application.d.ts +0 -146
  43. package/src/api/events/application.js +0 -2
  44. package/src/api/events/base.d.ts +0 -42
  45. package/src/api/events/base.js +0 -2
  46. package/src/api/events/channel.d.ts +0 -30
  47. package/src/api/events/channel.js +0 -2
  48. package/src/api/events/emitterMap.d.ts +0 -11
  49. package/src/api/events/emitterMap.js +0 -35
  50. package/src/api/events/eventAggregator.d.ts +0 -5
  51. package/src/api/events/eventAggregator.js +0 -35
  52. package/src/api/events/externalApplication.d.ts +0 -19
  53. package/src/api/events/externalApplication.js +0 -2
  54. package/src/api/events/frame.d.ts +0 -30
  55. package/src/api/events/frame.js +0 -2
  56. package/src/api/events/globalHotkey.d.ts +0 -20
  57. package/src/api/events/globalHotkey.js +0 -2
  58. package/src/api/events/platform.d.ts +0 -26
  59. package/src/api/events/platform.js +0 -2
  60. package/src/api/events/system.d.ts +0 -113
  61. package/src/api/events/system.js +0 -2
  62. package/src/api/events/typedEventEmitter.d.ts +0 -20
  63. package/src/api/events/typedEventEmitter.js +0 -2
  64. package/src/api/events/view.d.ts +0 -82
  65. package/src/api/events/view.js +0 -2
  66. package/src/api/events/webcontents.d.ts +0 -266
  67. package/src/api/events/webcontents.js +0 -2
  68. package/src/api/events/window.d.ts +0 -352
  69. package/src/api/events/window.js +0 -2
  70. package/src/api/external-application/Factory.d.ts +0 -27
  71. package/src/api/external-application/Factory.js +0 -40
  72. package/src/api/external-application/Instance.d.ts +0 -102
  73. package/src/api/external-application/Instance.js +0 -109
  74. package/src/api/external-application/index.d.ts +0 -3
  75. package/src/api/external-application/index.js +0 -19
  76. package/src/api/fin.d.ts +0 -51
  77. package/src/api/fin.js +0 -42
  78. package/src/api/frame/Factory.d.ts +0 -37
  79. package/src/api/frame/Factory.js +0 -69
  80. package/src/api/frame/Instance.d.ts +0 -123
  81. package/src/api/frame/Instance.js +0 -130
  82. package/src/api/frame/index.d.ts +0 -3
  83. package/src/api/frame/index.js +0 -19
  84. package/src/api/global-hotkey/index.d.ts +0 -38
  85. package/src/api/global-hotkey/index.js +0 -64
  86. package/src/api/interappbus/channel/channel.d.ts +0 -28
  87. package/src/api/interappbus/channel/channel.js +0 -77
  88. package/src/api/interappbus/channel/channels-docs.d.ts +0 -340
  89. package/src/api/interappbus/channel/channels-docs.js +0 -398
  90. package/src/api/interappbus/channel/client.d.ts +0 -24
  91. package/src/api/interappbus/channel/client.js +0 -89
  92. package/src/api/interappbus/channel/connection-manager.d.ts +0 -29
  93. package/src/api/interappbus/channel/connection-manager.js +0 -246
  94. package/src/api/interappbus/channel/index.d.ts +0 -25
  95. package/src/api/interappbus/channel/index.js +0 -169
  96. package/src/api/interappbus/channel/protocols/classic/message-receiver.d.ts +0 -13
  97. package/src/api/interappbus/channel/protocols/classic/message-receiver.js +0 -73
  98. package/src/api/interappbus/channel/protocols/classic/strategy.d.ts +0 -24
  99. package/src/api/interappbus/channel/protocols/classic/strategy.js +0 -101
  100. package/src/api/interappbus/channel/protocols/combined/strategy.d.ts +0 -20
  101. package/src/api/interappbus/channel/protocols/combined/strategy.js +0 -58
  102. package/src/api/interappbus/channel/protocols/index.d.ts +0 -47
  103. package/src/api/interappbus/channel/protocols/index.js +0 -2
  104. package/src/api/interappbus/channel/protocols/protocol-manager.d.ts +0 -10
  105. package/src/api/interappbus/channel/protocols/protocol-manager.js +0 -43
  106. package/src/api/interappbus/channel/protocols/rtc/endpoint.d.ts +0 -25
  107. package/src/api/interappbus/channel/protocols/rtc/endpoint.js +0 -141
  108. package/src/api/interappbus/channel/protocols/rtc/ice-manager.d.ts +0 -30
  109. package/src/api/interappbus/channel/protocols/rtc/ice-manager.js +0 -130
  110. package/src/api/interappbus/channel/protocols/rtc/strategy.d.ts +0 -24
  111. package/src/api/interappbus/channel/protocols/rtc/strategy.js +0 -85
  112. package/src/api/interappbus/channel/protocols/strategy-types.d.ts +0 -13
  113. package/src/api/interappbus/channel/protocols/strategy-types.js +0 -2
  114. package/src/api/interappbus/channel/protocols/strategy.d.ts +0 -17
  115. package/src/api/interappbus/channel/protocols/strategy.js +0 -2
  116. package/src/api/interappbus/channel/provider.d.ts +0 -34
  117. package/src/api/interappbus/channel/provider.js +0 -166
  118. package/src/api/interappbus/index.d.ts +0 -85
  119. package/src/api/interappbus/index.js +0 -175
  120. package/src/api/interop/Factory.d.ts +0 -37
  121. package/src/api/interop/Factory.js +0 -76
  122. package/src/api/interop/InteropBroker.d.ts +0 -437
  123. package/src/api/interop/InteropBroker.js +0 -1085
  124. package/src/api/interop/InteropClient.d.ts +0 -278
  125. package/src/api/interop/InteropClient.js +0 -459
  126. package/src/api/interop/SessionContextGroupBroker.d.ts +0 -27
  127. package/src/api/interop/SessionContextGroupBroker.js +0 -108
  128. package/src/api/interop/SessionContextGroupClient.d.ts +0 -21
  129. package/src/api/interop/SessionContextGroupClient.js +0 -86
  130. package/src/api/interop/fdc3/PrivateChannelClient.d.ts +0 -20
  131. package/src/api/interop/fdc3/PrivateChannelClient.js +0 -90
  132. package/src/api/interop/fdc3/PrivateChannelProvider.d.ts +0 -55
  133. package/src/api/interop/fdc3/PrivateChannelProvider.js +0 -276
  134. package/src/api/interop/fdc3/fdc3-1.2.d.ts +0 -208
  135. package/src/api/interop/fdc3/fdc3-1.2.js +0 -438
  136. package/src/api/interop/fdc3/fdc3-2.0.d.ts +0 -301
  137. package/src/api/interop/fdc3/fdc3-2.0.js +0 -482
  138. package/src/api/interop/fdc3/fdc3.d.ts +0 -12
  139. package/src/api/interop/fdc3/fdc3.js +0 -35
  140. package/src/api/interop/fdc3/overrideCheck.d.ts +0 -4
  141. package/src/api/interop/fdc3/overrideCheck.js +0 -32
  142. package/src/api/interop/fdc3/shapes/fdc3v1.d.ts +0 -53
  143. package/src/api/interop/fdc3/shapes/fdc3v1.js +0 -4
  144. package/src/api/interop/fdc3/shapes/fdc3v2.d.ts +0 -75
  145. package/src/api/interop/fdc3/shapes/fdc3v2.js +0 -2
  146. package/src/api/interop/fdc3/utils.d.ts +0 -45
  147. package/src/api/interop/fdc3/utils.js +0 -239
  148. package/src/api/interop/fdc3/versions.d.ts +0 -1
  149. package/src/api/interop/fdc3/versions.js +0 -2
  150. package/src/api/interop/index.d.ts +0 -4
  151. package/src/api/interop/index.js +0 -20
  152. package/src/api/interop/utils.d.ts +0 -18
  153. package/src/api/interop/utils.js +0 -61
  154. package/src/api/me.d.ts +0 -40
  155. package/src/api/me.js +0 -134
  156. package/src/api/platform/Factory.d.ts +0 -115
  157. package/src/api/platform/Factory.js +0 -184
  158. package/src/api/platform/Instance.d.ts +0 -150
  159. package/src/api/platform/Instance.js +0 -332
  160. package/src/api/platform/common-utils.d.ts +0 -7
  161. package/src/api/platform/common-utils.js +0 -16
  162. package/src/api/platform/index.d.ts +0 -3
  163. package/src/api/platform/index.js +0 -19
  164. package/src/api/platform/layout/Factory.d.ts +0 -114
  165. package/src/api/platform/layout/Factory.js +0 -174
  166. package/src/api/platform/layout/Instance.d.ts +0 -57
  167. package/src/api/platform/layout/Instance.js +0 -126
  168. package/src/api/platform/layout/controllers/layout-content-cache.d.ts +0 -9
  169. package/src/api/platform/layout/controllers/layout-content-cache.js +0 -54
  170. package/src/api/platform/layout/controllers/layout-entities-controller.d.ts +0 -119
  171. package/src/api/platform/layout/controllers/layout-entities-controller.js +0 -287
  172. package/src/api/platform/layout/entities/layout-entities.d.ts +0 -235
  173. package/src/api/platform/layout/entities/layout-entities.js +0 -312
  174. package/src/api/platform/layout/entities/shapes.d.ts +0 -6
  175. package/src/api/platform/layout/entities/shapes.js +0 -2
  176. package/src/api/platform/layout/index.d.ts +0 -2
  177. package/src/api/platform/layout/index.js +0 -18
  178. package/src/api/platform/layout/layout.constants.d.ts +0 -1
  179. package/src/api/platform/layout/layout.constants.js +0 -4
  180. package/src/api/platform/layout/shapes.d.ts +0 -16
  181. package/src/api/platform/layout/shapes.js +0 -2
  182. package/src/api/platform/layout/utils/layout-traversal.d.ts +0 -4
  183. package/src/api/platform/layout/utils/layout-traversal.js +0 -65
  184. package/src/api/platform/provider.d.ts +0 -163
  185. package/src/api/platform/provider.js +0 -2
  186. package/src/api/snapshot-source/Factory.d.ts +0 -38
  187. package/src/api/snapshot-source/Factory.js +0 -66
  188. package/src/api/snapshot-source/Instance.d.ts +0 -31
  189. package/src/api/snapshot-source/Instance.js +0 -132
  190. package/src/api/snapshot-source/index.d.ts +0 -3
  191. package/src/api/snapshot-source/index.js +0 -19
  192. package/src/api/snapshot-source/utils.d.ts +0 -2
  193. package/src/api/snapshot-source/utils.js +0 -6
  194. package/src/api/system/index.d.ts +0 -517
  195. package/src/api/system/index.js +0 -895
  196. package/src/api/view/Factory.d.ts +0 -50
  197. package/src/api/view/Factory.js +0 -103
  198. package/src/api/view/Instance.d.ts +0 -487
  199. package/src/api/view/Instance.js +0 -557
  200. package/src/api/view/index.d.ts +0 -3
  201. package/src/api/view/index.js +0 -19
  202. package/src/api/webcontents/main.d.ts +0 -32
  203. package/src/api/webcontents/main.js +0 -156
  204. package/src/api/window/Factory.d.ts +0 -45
  205. package/src/api/window/Factory.js +0 -91
  206. package/src/api/window/Instance.d.ts +0 -1090
  207. package/src/api/window/Instance.js +0 -1349
  208. package/src/api/window/index.d.ts +0 -3
  209. package/src/api/window/index.js +0 -19
  210. package/src/browser.d.ts +0 -10
  211. package/src/browser.js +0 -36
  212. package/src/environment/browser.d.ts +0 -29
  213. package/src/environment/browser.js +0 -60
  214. package/src/environment/environment.d.ts +0 -33
  215. package/src/environment/environment.js +0 -4
  216. package/src/environment/mockEnvironment.d.ts +0 -27
  217. package/src/environment/mockEnvironment.js +0 -61
  218. package/src/environment/node-env.d.ts +0 -29
  219. package/src/environment/node-env.js +0 -72
  220. package/src/fdc3.d.ts +0 -3
  221. package/src/fdc3.js +0 -9
  222. package/src/mock.d.ts +0 -3
  223. package/src/mock.js +0 -18
  224. package/src/namespaces.d.ts +0 -21
  225. package/src/namespaces.js +0 -24
  226. package/src/shapes/ERROR_BOX_TYPES.d.ts +0 -1
  227. package/src/shapes/ERROR_BOX_TYPES.js +0 -2
  228. package/src/shapes/WebOptions.d.ts +0 -13
  229. package/src/shapes/WebOptions.js +0 -2
  230. package/src/shapes/WindowOptions.d.ts +0 -43
  231. package/src/shapes/WindowOptions.js +0 -2
  232. package/src/shapes/protocol.d.ts +0 -200
  233. package/src/shapes/protocol.js +0 -2
  234. package/src/transport/mockWire.d.ts +0 -11
  235. package/src/transport/mockWire.js +0 -26
  236. package/src/transport/transport-errors.d.ts +0 -31
  237. package/src/transport/transport-errors.js +0 -79
  238. package/src/transport/transport.d.ts +0 -73
  239. package/src/transport/transport.js +0 -219
  240. package/src/transport/wire.d.ts +0 -77
  241. package/src/transport/wire.js +0 -36
  242. package/src/util/asyncFilter.d.ts +0 -1
  243. package/src/util/asyncFilter.js +0 -7
  244. package/src/util/channel-api-relay.d.ts +0 -13
  245. package/src/util/channel-api-relay.js +0 -47
  246. package/src/util/errors.d.ts +0 -10
  247. package/src/util/errors.js +0 -12
  248. package/src/util/exhaustive.d.ts +0 -1
  249. package/src/util/exhaustive.js +0 -7
  250. package/src/util/http.d.ts +0 -11
  251. package/src/util/http.js +0 -90
  252. package/src/util/inaccessibleObject.d.ts +0 -2
  253. package/src/util/inaccessibleObject.js +0 -49
  254. package/src/util/lazy.d.ts +0 -34
  255. package/src/util/lazy.js +0 -54
  256. package/src/util/normalize-config.d.ts +0 -3
  257. package/src/util/normalize-config.js +0 -52
  258. package/src/util/promises.d.ts +0 -5
  259. package/src/util/promises.js +0 -27
  260. package/src/util/ref-counter.d.ts +0 -7
  261. package/src/util/ref-counter.js +0 -52
  262. package/src/util/reversible-map.d.ts +0 -11
  263. package/src/util/reversible-map.js +0 -49
  264. package/src/util/runtimeVersioning.d.ts +0 -3
  265. package/src/util/runtimeVersioning.js +0 -25
  266. package/src/util/utilTypes.d.ts +0 -8
  267. package/src/util/utilTypes.js +0 -2
  268. package/src/util/validate.d.ts +0 -3
  269. package/src/util/validate.js +0 -11
@@ -1,20 +0,0 @@
1
- import { ChannelStrategy } from '../strategy';
2
- type OverlapsOnlyIfMatching<T, U> = {
3
- [K in Extract<keyof T, keyof U>]: U[K] extends T[K] ? U[K] : T[K] extends U[K] ? T[K] : never;
4
- };
5
- type OnlyIfCompatible<A, B, D = OverlapsOnlyIfMatching<A, B>> = D extends Record<any, never> ? keyof D extends never ? A | B : never : A | B;
6
- export default class CombinedStrategy<A, B> implements ChannelStrategy<OnlyIfCompatible<A, B>> {
7
- private primary;
8
- private secondary;
9
- static combine<A, B>(a: ChannelStrategy<A>, b: ChannelStrategy<B>): OnlyIfCompatible<A, B> extends never ? never : CombinedStrategy<A, B>;
10
- private constructor();
11
- onEndpointDisconnect(endpointId: string, listener: () => void): void;
12
- isValidEndpointPayload(payload: unknown): payload is OnlyIfCompatible<A, B>;
13
- closeEndpoint(endpointId: string): Promise<void>;
14
- isEndpointConnected(endpoint: string): boolean;
15
- addEndpoint(endpoint: string, payload: OnlyIfCompatible<A, B>): Promise<void>;
16
- receive(listener: (action: string, payload: any, identity: any) => Promise<any>): void;
17
- send(endpointId: string, action: string, payload: any): Promise<any>;
18
- close(): Promise<void>;
19
- }
20
- export {};
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class CombinedStrategy {
4
- // Making this a static method because the constructor can't be typed.
5
- // Otherwise it will error when calling addEndpoint but I'd rather the whole instance be typed as never.
6
- static combine(a, b) {
7
- return new CombinedStrategy(a, b);
8
- }
9
- // eslint-disable-next-line no-useless-constructor
10
- constructor(primary, secondary) {
11
- this.primary = primary;
12
- this.secondary = secondary;
13
- }
14
- onEndpointDisconnect(endpointId, listener) {
15
- this.primary.onEndpointDisconnect(endpointId, () => {
16
- if (!this.secondary.isEndpointConnected(endpointId)) {
17
- listener();
18
- }
19
- });
20
- this.secondary.onEndpointDisconnect(endpointId, () => {
21
- if (!this.primary.isEndpointConnected(endpointId)) {
22
- listener();
23
- }
24
- });
25
- }
26
- isValidEndpointPayload(payload) {
27
- return this.primary.isValidEndpointPayload(payload) || this.secondary.isValidEndpointPayload(payload);
28
- }
29
- async closeEndpoint(endpointId) {
30
- await this.primary.closeEndpoint(endpointId);
31
- await this.secondary.closeEndpoint(endpointId);
32
- }
33
- isEndpointConnected(endpoint) {
34
- return this.primary.isEndpointConnected(endpoint) || this.secondary.isEndpointConnected(endpoint);
35
- }
36
- async addEndpoint(endpoint, payload) {
37
- if (this.primary.isValidEndpointPayload(payload)) {
38
- await this.primary.addEndpoint(endpoint, payload);
39
- }
40
- if (this.secondary.isValidEndpointPayload(payload)) {
41
- await this.secondary.addEndpoint(endpoint, payload);
42
- }
43
- }
44
- receive(listener) {
45
- this.primary.receive(listener);
46
- this.secondary.receive(listener);
47
- }
48
- send(endpointId, action, payload) {
49
- if (this.primary.isEndpointConnected(endpointId)) {
50
- return this.primary.send(endpointId, action, payload);
51
- }
52
- return this.secondary.send(endpointId, action, payload);
53
- }
54
- async close() {
55
- await Promise.all([this.primary.close(), this.secondary.close()]);
56
- }
57
- }
58
- exports.default = CombinedStrategy;
@@ -1,47 +0,0 @@
1
- export interface ProtocolPacketBase {
2
- version: number;
3
- minimumVersion?: number;
4
- type: string;
5
- payload?: any;
6
- }
7
- export interface ClassicProtocolOffer extends ProtocolPacketBase {
8
- type: 'classic';
9
- }
10
- export interface RTCProtocolOffer extends ProtocolPacketBase {
11
- type: 'rtc';
12
- payload: {
13
- offer: RTCSessionDescriptionInit;
14
- rtcConnectionId: string;
15
- };
16
- }
17
- export type ProtocolOffer = ClassicProtocolOffer | RTCProtocolOffer;
18
- /**
19
- * Protocol values for determining channel messaging strategy.
20
- */
21
- export type MessagingProtocols = ProtocolOffer['type'];
22
- export type LocalSupportedProtocol = {
23
- type: MessagingProtocols;
24
- minimumVersion: number;
25
- version: number;
26
- };
27
- export interface ExternalClientOffer {
28
- maxProtocols: number;
29
- supportedProtocols: ProtocolPacketBase[];
30
- }
31
- export interface ClientOffer {
32
- supportedProtocols: ProtocolOffer[];
33
- maxProtocols: number;
34
- }
35
- export interface ClassicProtocolAnswer extends ProtocolPacketBase {
36
- type: 'classic';
37
- }
38
- export interface RTCProtocolAnswer extends ProtocolPacketBase {
39
- type: 'rtc';
40
- payload: {
41
- answer: RTCSessionDescriptionInit;
42
- };
43
- }
44
- export type ProtocolAnswer = ClassicProtocolAnswer | RTCProtocolAnswer;
45
- export interface ClientAnswer {
46
- supportedProtocols: ProtocolAnswer[];
47
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +0,0 @@
1
- import { ExternalClientOffer, LocalSupportedProtocol, MessagingProtocols, ProtocolOffer } from '.';
2
- export declare class ProtocolManager {
3
- private ProtocolsInPreferenceOrder;
4
- DefaultClientProtocols: ['classic'];
5
- DefaultProviderProtocols: ['classic'];
6
- constructor(ProtocolsInPreferenceOrder: MessagingProtocols[]);
7
- getClientProtocols: (protocols?: string[]) => MessagingProtocols[];
8
- getProviderProtocols: (protocols?: string[]) => ['rtc'] | ['rtc', 'classic'] | ['classic'];
9
- getCompatibleProtocols: (providerProtocols: LocalSupportedProtocol[], clientOffer: ExternalClientOffer) => ProtocolOffer[];
10
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProtocolManager = void 0;
4
- /*
5
- This should be agnostic of any actual openfin code to be unit testable.
6
- Dependencies on the actual srategies should be handled in ConnectionManager
7
- */
8
- class ProtocolManager {
9
- // eslint-disable-next-line no-useless-constructor
10
- constructor(ProtocolsInPreferenceOrder) {
11
- this.ProtocolsInPreferenceOrder = ProtocolsInPreferenceOrder;
12
- this.DefaultClientProtocols = ['classic'];
13
- this.DefaultProviderProtocols = ['classic'];
14
- this.getClientProtocols = (protocols) => {
15
- const supported = protocols
16
- ? this.ProtocolsInPreferenceOrder.filter((x) => protocols.includes(x))
17
- : this.DefaultClientProtocols;
18
- if (!supported.length) {
19
- throw new Error(`No valid protocols were passed in. Accepted values are: ${this.ProtocolsInPreferenceOrder.join(', ')}.`);
20
- }
21
- return supported;
22
- };
23
- this.getProviderProtocols = (protocols) => {
24
- const supported = protocols
25
- ? this.ProtocolsInPreferenceOrder.filter((x) => protocols.includes(x))
26
- : this.DefaultProviderProtocols;
27
- if (!supported.length) {
28
- throw new Error(`No valid protocols were passed in. Accepted values are: ${this.ProtocolsInPreferenceOrder.join(', ')}.`);
29
- }
30
- return supported;
31
- };
32
- this.getCompatibleProtocols = (providerProtocols, clientOffer) => {
33
- const supported = clientOffer.supportedProtocols.filter((clientProtocol) => providerProtocols.some((providerProtocol) => {
34
- var _a;
35
- return providerProtocol.type === clientProtocol.type &&
36
- clientProtocol.version >= providerProtocol.minimumVersion &&
37
- providerProtocol.version >= ((_a = clientProtocol.minimumVersion) !== null && _a !== void 0 ? _a : 0);
38
- }));
39
- return supported.slice(0, clientOffer.maxProtocols);
40
- };
41
- }
42
- }
43
- exports.ProtocolManager = ProtocolManager;
@@ -1,25 +0,0 @@
1
- import type * as OpenFin from '../../../../../OpenFin';
2
- type ProviderIdentity = OpenFin.ProviderIdentity;
3
- export interface RTCEndpointChannels {
4
- request: RTCDataChannel;
5
- response: RTCDataChannel;
6
- }
7
- export interface RTCPacket {
8
- rtcClient: RTCPeerConnection;
9
- channels: RTCEndpointChannels;
10
- channelsOpened: Promise<void>;
11
- }
12
- export declare class RTCEndpoint {
13
- #private;
14
- private rtc;
15
- private endpointIdentity;
16
- private responseMap;
17
- constructor(rtc: RTCPacket, endpointIdentity: OpenFin.ClientIdentity | ProviderIdentity);
18
- private connectionStateChangeHandler;
19
- onDisconnect(listener: () => void): void;
20
- receive(listener: (action: string, payload: any, identity: OpenFin.ClientIdentity | ProviderIdentity) => Promise<any>): void;
21
- send: (action: string, payload: any) => Promise<any>;
22
- close: () => void;
23
- get connected(): boolean;
24
- }
25
- export {};
@@ -1,141 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _RTCEndpoint_processAction, _RTCEndpoint_disconnectListener;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.RTCEndpoint = void 0;
16
- /* eslint-disable @typescript-eslint/no-unused-vars */
17
- const errors_1 = require("../../../../../util/errors");
18
- /*
19
- This handles sending RTC messages between RTC connections over the request and response data channels.
20
- */
21
- class RTCEndpoint {
22
- constructor(rtc, endpointIdentity) {
23
- this.rtc = rtc;
24
- this.endpointIdentity = endpointIdentity;
25
- this.responseMap = new Map();
26
- _RTCEndpoint_processAction.set(this, null);
27
- _RTCEndpoint_disconnectListener.set(this, void 0);
28
- this.connectionStateChangeHandler = (event) => {
29
- if (this.rtc.rtcClient.connectionState !== 'connected') {
30
- this.rtc.rtcClient.removeEventListener('connectionstatechange', this.connectionStateChangeHandler);
31
- this.close();
32
- if (__classPrivateFieldGet(this, _RTCEndpoint_disconnectListener, "f")) {
33
- __classPrivateFieldGet(this, _RTCEndpoint_disconnectListener, "f").call(this);
34
- }
35
- }
36
- };
37
- this.send = async (action, payload) => {
38
- const messageId = `message-${Math.random()}`;
39
- const promise = new Promise((resolve, reject) => {
40
- this.responseMap.set(messageId, { resolve, reject });
41
- });
42
- this.rtc.channels.request.send(JSON.stringify({ action, payload, messageId }));
43
- return promise;
44
- };
45
- this.close = () => {
46
- this.responseMap.forEach((response) => response.reject('Connection has closed.'));
47
- this.responseMap = new Map();
48
- this.rtc.channels.request.close();
49
- this.rtc.channels.response.close();
50
- this.rtc.rtcClient.close();
51
- };
52
- this.rtc.channels.response.addEventListener('message', (e) => {
53
- var _a;
54
- let { data } = e;
55
- if (e.data instanceof ArrayBuffer) {
56
- data = new TextDecoder().decode(e.data);
57
- }
58
- const { messageId, payload, success, error } = JSON.parse(data);
59
- const { resolve, reject } = (_a = this.responseMap.get(messageId)) !== null && _a !== void 0 ? _a : {};
60
- if (resolve && reject) {
61
- this.responseMap.delete(messageId);
62
- if (success) {
63
- resolve(payload);
64
- }
65
- else {
66
- reject(error);
67
- }
68
- }
69
- else {
70
- console.log('Could not find id in responseMap.');
71
- console.log(e);
72
- }
73
- });
74
- this.rtc.channels.request.addEventListener('message', async (e) => {
75
- let { data } = e;
76
- if (e.data instanceof ArrayBuffer) {
77
- data = new TextDecoder().decode(e.data);
78
- }
79
- const { messageId, action, payload } = JSON.parse(data);
80
- if (__classPrivateFieldGet(this, _RTCEndpoint_processAction, "f")) {
81
- try {
82
- const res = await __classPrivateFieldGet(this, _RTCEndpoint_processAction, "f").call(this, action, payload, endpointIdentity);
83
- this.rtc.channels.response.send(JSON.stringify({
84
- messageId,
85
- payload: res,
86
- success: true
87
- }));
88
- }
89
- catch (error) {
90
- // Check if RTCDataChannel is open before sending, error gets swallowed here in the case where
91
- // client dispatched then closed or disconnected before the dispatch resolves.
92
- if (this.rtc.channels.response.readyState === 'open') {
93
- this.rtc.channels.response.send(JSON.stringify({
94
- messageId,
95
- error: (0, errors_1.errorToPOJO)(error),
96
- success: false
97
- }));
98
- }
99
- }
100
- // Check if RTCDataChannel is open for same reason as catch block above.
101
- }
102
- else if (this.rtc.channels.response.readyState === 'open') {
103
- this.rtc.channels.response.send(JSON.stringify({
104
- messageId,
105
- success: false,
106
- error: 'Connection not ready.'
107
- }));
108
- }
109
- });
110
- this.rtc.rtcClient.addEventListener('connectionstatechange', this.connectionStateChangeHandler);
111
- // Disconnect if data channels close unexpectedly, e.g. can happen due to message size > ~255kB (RTCPeerConnection.sctp.maxMessageSizeLimit: 262144)
112
- Object.values(this.rtc.channels).forEach((datachannel) => {
113
- datachannel.onclose = (e) => {
114
- [...this.responseMap.values()].forEach((promise) => promise.reject(new Error('RTCDataChannel closed unexpectedly, this is most commonly caused by message size. Note: RTC Channels have a message size limit of ~255kB.')));
115
- this.close();
116
- if (__classPrivateFieldGet(this, _RTCEndpoint_disconnectListener, "f")) {
117
- __classPrivateFieldGet(this, _RTCEndpoint_disconnectListener, "f").call(this);
118
- }
119
- };
120
- });
121
- }
122
- onDisconnect(listener) {
123
- if (!__classPrivateFieldGet(this, _RTCEndpoint_disconnectListener, "f")) {
124
- __classPrivateFieldSet(this, _RTCEndpoint_disconnectListener, listener, "f");
125
- }
126
- else {
127
- throw new Error('RTCEndpoint disconnectListener cannot be set twice.');
128
- }
129
- }
130
- receive(listener) {
131
- if (__classPrivateFieldGet(this, _RTCEndpoint_processAction, "f")) {
132
- throw new Error('You have already set a listener for this RTC Endpoint.');
133
- }
134
- __classPrivateFieldSet(this, _RTCEndpoint_processAction, listener, "f");
135
- }
136
- get connected() {
137
- return this.rtc.rtcClient.connectionState === 'connected';
138
- }
139
- }
140
- exports.RTCEndpoint = RTCEndpoint;
141
- _RTCEndpoint_processAction = new WeakMap(), _RTCEndpoint_disconnectListener = new WeakMap();
@@ -1,30 +0,0 @@
1
- import { Transport } from '../../../../../transport/transport';
2
- import { EmitterBase } from '../../../../base';
3
- import { RTCEndpointChannels } from './endpoint';
4
- export declare class RTCICEManager extends EmitterBase<any> {
5
- constructor(wire: Transport);
6
- static createDataChannelPromise(label: string, rtcClient: RTCPeerConnection): Promise<RTCDataChannel>;
7
- ensureChannelOpened: (channel: RTCDataChannel) => Promise<void>;
8
- listenForProviderIce(rtcConnectionId: string, listener: any): Promise<void>;
9
- raiseProviderIce(rtcConnectionId: string, payload: any): Promise<void>;
10
- listenForClientIce(rtcConnectionId: string, listener: any): Promise<void>;
11
- raiseClientIce(rtcConnectionId: string, payload: any): Promise<void>;
12
- private cleanupIceListeners;
13
- private createClientEventName;
14
- private createProviderEventName;
15
- private createRouteString;
16
- private createRtcPeer;
17
- startClientOffer(): Promise<{
18
- rtcClient: RTCPeerConnection;
19
- offer: RTCSessionDescriptionInit;
20
- channels: RTCEndpointChannels;
21
- rtcConnectionId: string;
22
- channelsOpened: Promise<void>;
23
- }>;
24
- finishClientOffer(rtcClient: RTCPeerConnection, answer: RTCSessionDescriptionInit, providerReady: Promise<void>): Promise<boolean>;
25
- createProviderAnswer(rtcConnectionId: string, offer: RTCSessionDescriptionInit): Promise<{
26
- rtcClient: RTCPeerConnection;
27
- answer: RTCSessionDescriptionInit;
28
- channels: Promise<RTCEndpointChannels>;
29
- }>;
30
- }
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RTCICEManager = void 0;
4
- const base_1 = require("../../../../base");
5
- /*
6
- Singleton that facilitates Offer and Answer exchange required for establishing RTC connections.
7
- */
8
- class RTCICEManager extends base_1.EmitterBase {
9
- constructor(wire) {
10
- super(wire, 'channel');
11
- this.ensureChannelOpened = (channel) => {
12
- return new Promise((resolve, reject) => {
13
- if (channel.readyState === 'open') {
14
- resolve();
15
- }
16
- else if (channel.readyState === 'connecting') {
17
- const listener = () => {
18
- channel.removeEventListener('open', listener);
19
- resolve();
20
- };
21
- channel.addEventListener('open', listener);
22
- }
23
- else {
24
- reject(new Error('This Channel has already closed'));
25
- }
26
- });
27
- };
28
- }
29
- static createDataChannelPromise(label, rtcClient) {
30
- let resolver;
31
- const promise = new Promise((resolve) => {
32
- resolver = resolve;
33
- });
34
- const listener = (e) => {
35
- const openListener = () => {
36
- e.channel.removeEventListener('open', openListener);
37
- resolver(e.channel);
38
- };
39
- if (e.channel.label === label) {
40
- e.channel.addEventListener('open', openListener);
41
- rtcClient.removeEventListener('datachannel', listener);
42
- }
43
- };
44
- rtcClient.addEventListener('datachannel', listener);
45
- return promise;
46
- }
47
- async listenForProviderIce(rtcConnectionId, listener) {
48
- await this.on(this.createProviderEventName(rtcConnectionId), listener, { timestamp: Date.now() });
49
- }
50
- async raiseProviderIce(rtcConnectionId, payload) {
51
- await this.wire.environment.raiseEvent(this.createRouteString(this.createProviderEventName(rtcConnectionId)), payload);
52
- }
53
- async listenForClientIce(rtcConnectionId, listener) {
54
- await this.on(this.createClientEventName(rtcConnectionId), listener, { timestamp: Date.now() });
55
- }
56
- async raiseClientIce(rtcConnectionId, payload) {
57
- await this.wire.environment.raiseEvent(this.createRouteString(this.createClientEventName(rtcConnectionId)), payload);
58
- }
59
- cleanupIceListeners(rtcConnectionId) {
60
- this.removeAllListeners(this.createClientEventName(rtcConnectionId));
61
- this.removeAllListeners(this.createProviderEventName(rtcConnectionId));
62
- }
63
- createClientEventName(rtcConnectionId) {
64
- return `ice-client-${rtcConnectionId}`;
65
- }
66
- createProviderEventName(rtcConnectionId) {
67
- return `ice-provider-${rtcConnectionId}`;
68
- }
69
- createRouteString(name) {
70
- return `channel/${name}`;
71
- }
72
- createRtcPeer() {
73
- return this.wire.environment.getRtcPeer();
74
- }
75
- async startClientOffer() {
76
- // TODO replace with real guid.
77
- const rtcConnectionId = Math.random().toString();
78
- const rtcClient = this.createRtcPeer();
79
- rtcClient.addEventListener('icecandidate', async (e) => {
80
- var _a;
81
- if (e.candidate) {
82
- await this.raiseClientIce(rtcConnectionId, { candidate: (_a = e.candidate) === null || _a === void 0 ? void 0 : _a.toJSON() });
83
- }
84
- });
85
- await this.listenForProviderIce(rtcConnectionId, async (payload) => {
86
- await rtcClient.addIceCandidate(payload.candidate);
87
- });
88
- const channels = {
89
- request: rtcClient.createDataChannel('request'),
90
- response: rtcClient.createDataChannel('response')
91
- };
92
- const offer = await rtcClient.createOffer();
93
- await rtcClient.setLocalDescription(offer);
94
- const channelsOpened = Promise.all([channels.request, channels.response].map(this.ensureChannelOpened)).then(() => undefined);
95
- return { rtcClient, channels, offer, rtcConnectionId, channelsOpened };
96
- }
97
- async finishClientOffer(rtcClient, answer, providerReady) {
98
- await rtcClient.setRemoteDescription(answer);
99
- await providerReady;
100
- return true;
101
- }
102
- async createProviderAnswer(rtcConnectionId, offer) {
103
- const rtcClient = this.createRtcPeer();
104
- const requestChannelPromise = RTCICEManager.createDataChannelPromise('request', rtcClient);
105
- const responseChannelPromise = RTCICEManager.createDataChannelPromise('response', rtcClient);
106
- rtcClient.addEventListener('icecandidate', async (e) => {
107
- var _a;
108
- if (e.candidate) {
109
- await this.raiseProviderIce(rtcConnectionId, { candidate: (_a = e.candidate) === null || _a === void 0 ? void 0 : _a.toJSON() });
110
- }
111
- });
112
- await this.listenForClientIce(rtcConnectionId, async (payload) => {
113
- await rtcClient.addIceCandidate(payload.candidate);
114
- });
115
- await rtcClient.setRemoteDescription(offer);
116
- const answer = await rtcClient.createAnswer();
117
- await rtcClient.setLocalDescription(answer);
118
- const channels = Promise.all([requestChannelPromise, responseChannelPromise]).then(([request, response]) => {
119
- // Clean up ice events.
120
- this.cleanupIceListeners(rtcConnectionId);
121
- return { request, response };
122
- });
123
- return {
124
- rtcClient,
125
- answer,
126
- channels
127
- };
128
- }
129
- }
130
- exports.RTCICEManager = RTCICEManager;
@@ -1,24 +0,0 @@
1
- import type * as OpenFin from '../../../../../OpenFin';
2
- import { ChannelStrategy } from '../strategy';
3
- import { RTCPacket } from './endpoint';
4
- import { LocalSupportedProtocol } from '..';
5
- type ProviderIdentity = OpenFin.ProviderIdentity;
6
- export interface RTCStrategyEndpointPayload {
7
- endpointIdentity: OpenFin.ClientIdentity | ProviderIdentity;
8
- rtc: RTCPacket;
9
- }
10
- export declare class RTCStrategy implements ChannelStrategy<RTCStrategyEndpointPayload> {
11
- #private;
12
- onEndpointDisconnect(endpointId: string, listener: () => void): void;
13
- receive(listener: (action: string, payload: any, identity: OpenFin.ClientIdentity | OpenFin.ClientIdentityMultiRuntime | ProviderIdentity) => Promise<any>): void;
14
- send: (endpointId: string, action: string, payload: any) => Promise<any>;
15
- close: () => Promise<void>;
16
- private getEndpointById;
17
- get connected(): boolean;
18
- isEndpointConnected(endpointId: string): boolean;
19
- addEndpoint(endpointId: string, payload: RTCStrategyEndpointPayload): void;
20
- closeEndpoint(endpointId: string): Promise<void>;
21
- isValidEndpointPayload(payload: any): payload is RTCStrategyEndpointPayload;
22
- }
23
- export declare const RTCInfo: LocalSupportedProtocol;
24
- export {};
@@ -1,85 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _RTCStrategy_processAction, _RTCStrategy_rtcEndpointMap, _RTCStrategy_connected;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.RTCInfo = exports.RTCStrategy = void 0;
16
- const endpoint_1 = require("./endpoint");
17
- /*
18
- This is used to abstract out rtc messaging from the channels implementation using RTCEndpoints.
19
- */
20
- class RTCStrategy {
21
- constructor() {
22
- _RTCStrategy_processAction.set(this, null);
23
- _RTCStrategy_rtcEndpointMap.set(this, new Map());
24
- _RTCStrategy_connected.set(this, true);
25
- this.send = async (endpointId, action, payload) => {
26
- return this.getEndpointById(endpointId).send(action, payload);
27
- };
28
- this.close = async () => {
29
- if (__classPrivateFieldGet(this, _RTCStrategy_connected, "f")) {
30
- __classPrivateFieldGet(this, _RTCStrategy_rtcEndpointMap, "f").forEach((rtcEndpoint) => rtcEndpoint.close());
31
- __classPrivateFieldSet(this, _RTCStrategy_rtcEndpointMap, new Map(), "f");
32
- }
33
- __classPrivateFieldSet(this, _RTCStrategy_connected, false, "f");
34
- };
35
- }
36
- onEndpointDisconnect(endpointId, listener) {
37
- this.getEndpointById(endpointId).onDisconnect(listener);
38
- }
39
- receive(listener) {
40
- if (__classPrivateFieldGet(this, _RTCStrategy_processAction, "f")) {
41
- throw new Error('You have already set a listener for this RTC Strategy');
42
- }
43
- __classPrivateFieldSet(this, _RTCStrategy_processAction, listener, "f");
44
- __classPrivateFieldGet(this, _RTCStrategy_rtcEndpointMap, "f").forEach((rtcEndpoint) => rtcEndpoint.receive(__classPrivateFieldGet(this, _RTCStrategy_processAction, "f")));
45
- }
46
- getEndpointById(endpointId) {
47
- const endpoint = __classPrivateFieldGet(this, _RTCStrategy_rtcEndpointMap, "f").get(endpointId);
48
- if (!endpoint) {
49
- throw new Error(`Client with endpoint id ${endpointId} is not connected`);
50
- }
51
- return endpoint;
52
- }
53
- get connected() {
54
- return __classPrivateFieldGet(this, _RTCStrategy_connected, "f");
55
- }
56
- isEndpointConnected(endpointId) {
57
- return __classPrivateFieldGet(this, _RTCStrategy_rtcEndpointMap, "f").has(endpointId);
58
- }
59
- addEndpoint(endpointId, payload) {
60
- if (!__classPrivateFieldGet(this, _RTCStrategy_connected, "f")) {
61
- console.warn('Adding endpoint to disconnected RTC Strategy');
62
- return;
63
- }
64
- const clientStrat = new endpoint_1.RTCEndpoint(payload.rtc, payload.endpointIdentity);
65
- if (__classPrivateFieldGet(this, _RTCStrategy_processAction, "f")) {
66
- clientStrat.receive(__classPrivateFieldGet(this, _RTCStrategy_processAction, "f"));
67
- }
68
- __classPrivateFieldGet(this, _RTCStrategy_rtcEndpointMap, "f").set(endpointId, clientStrat);
69
- }
70
- async closeEndpoint(endpointId) {
71
- __classPrivateFieldGet(this, _RTCStrategy_rtcEndpointMap, "f").delete(endpointId);
72
- }
73
- isValidEndpointPayload(payload) {
74
- const isObject = (x) => {
75
- return typeof x === 'object' && x !== null;
76
- };
77
- return (isObject(payload) &&
78
- isObject(payload.endpointIdentity) &&
79
- isObject(payload.rtc) &&
80
- typeof payload.endpointIdentity.endpointId === 'string');
81
- }
82
- }
83
- exports.RTCStrategy = RTCStrategy;
84
- _RTCStrategy_processAction = new WeakMap(), _RTCStrategy_rtcEndpointMap = new WeakMap(), _RTCStrategy_connected = new WeakMap();
85
- exports.RTCInfo = { version: 2, minimumVersion: 0, type: 'rtc' };
@@ -1,13 +0,0 @@
1
- import { MessagingProtocols } from '.';
2
- import { ClassicStrategy } from './classic/strategy';
3
- import CombinedStrategy from './combined/strategy';
4
- import { RTCStrategy } from './rtc/strategy';
5
- import { ChannelStrategy } from './strategy';
6
- type StrategyMap = {
7
- rtc: RTCStrategy;
8
- classic: ClassicStrategy;
9
- };
10
- export type StrategyByProtocol<T extends MessagingProtocols> = StrategyMap[T];
11
- export type PayloadTypeByStrategy<T extends ChannelStrategy<unknown>> = T extends ChannelStrategy<infer U> ? U : never;
12
- export type AnyStrategy = ClassicStrategy | RTCStrategy | CombinedStrategy<PayloadTypeByStrategy<RTCStrategy>, PayloadTypeByStrategy<ClassicStrategy>>;
13
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +0,0 @@
1
- import type * as OpenFin from '../../../../OpenFin';
2
- type ProviderIdentity = OpenFin.ProviderIdentity;
3
- export interface ChannelStrategy<T extends unknown> {
4
- onEndpointDisconnect(endpointId: string, listener: () => void): void;
5
- receive(listener: (action: string, payload: any, identity: any) => Promise<any>): void;
6
- send(endpointId: string, action: string, payload: any): Promise<any>;
7
- closeEndpoint(endpointId: string): Promise<void>;
8
- close(): Promise<void>;
9
- isEndpointConnected(endpointId: string): boolean;
10
- addEndpoint(endpointId: string, payload: T): void;
11
- isValidEndpointPayload(payload: unknown): payload is T;
12
- }
13
- export type EndpointIdentity = OpenFin.ClientIdentity | ProviderIdentity;
14
- export type EndpointPayload = {
15
- endpointIdentity: EndpointIdentity;
16
- };
17
- export {};