@finsemble/finsemble-ui 8.2.1 → 8.3.0-beta.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 (145) hide show
  1. package/clients/Interop/FinsembleDesktopAgent.d.ts +63 -19
  2. package/clients/Interop/FinsembleDesktopAgent.d.ts.map +1 -1
  3. package/clients/Interop/FinsembleDesktopAgent.js +522 -125
  4. package/clients/Interop/FinsembleDesktopAgent.js.map +1 -1
  5. package/clients/Interop/InteropAdmin.d.ts +1 -1
  6. package/clients/Interop/InteropAdmin.d.ts.map +1 -1
  7. package/clients/Interop/InteropAdmin.js.map +1 -1
  8. package/clients/Interop/types.d.ts +112 -11
  9. package/clients/Interop/types.d.ts.map +1 -1
  10. package/clients/Interop/types.js.map +1 -1
  11. package/clients/Startup/FSBLDesktop.d.ts +7 -1
  12. package/clients/Startup/FSBLDesktop.d.ts.map +1 -1
  13. package/clients/Startup/FSBLDesktop.js +13 -2
  14. package/clients/Startup/FSBLDesktop.js.map +1 -1
  15. package/clients/Startup/FSBLFreestanding.d.ts.map +1 -1
  16. package/clients/Startup/FSBLFreestanding.js +5 -2
  17. package/clients/Startup/FSBLFreestanding.js.map +1 -1
  18. package/clients/Startup/FSBLService.d.ts.map +1 -1
  19. package/clients/Startup/FSBLService.js +1 -0
  20. package/clients/Startup/FSBLService.js.map +1 -1
  21. package/clients/Startup/types.d.ts +7 -2
  22. package/clients/Startup/types.d.ts.map +1 -1
  23. package/clients/configClient.js +1 -1
  24. package/clients/configClient.js.map +1 -1
  25. package/common/FinsembleWindow.d.ts +3 -1
  26. package/common/FinsembleWindow.d.ts.map +1 -1
  27. package/common/FinsembleWindow.js +66 -31
  28. package/common/FinsembleWindow.js.map +1 -1
  29. package/common/configUtil.d.ts +9 -0
  30. package/common/configUtil.d.ts.map +1 -1
  31. package/common/configUtil.js +15 -0
  32. package/common/configUtil.js.map +1 -1
  33. package/common/redux/createReducer.js +1 -1
  34. package/common/redux/createReducer.js.map +1 -1
  35. package/common/redux/remoteReduxEnhancer.js +2 -2
  36. package/common/redux/remoteReduxEnhancer.js.map +1 -1
  37. package/deprecated/dragAndDropClient.d.ts.map +1 -1
  38. package/deprecated/dragAndDropClient.js +1 -8
  39. package/deprecated/dragAndDropClient.js.map +1 -1
  40. package/index.d.ts +2 -0
  41. package/index.d.ts.map +1 -1
  42. package/index.js +2 -0
  43. package/index.js.map +1 -1
  44. package/package.json +1 -1
  45. package/platform/services/Interop/modules/actions.d.ts +2 -1
  46. package/platform/services/Interop/modules/actions.d.ts.map +1 -1
  47. package/platform/services/Interop/modules/actions.js.map +1 -1
  48. package/platform/services/Interop/modules/types.d.ts +3 -1
  49. package/platform/services/Interop/modules/types.d.ts.map +1 -1
  50. package/platform/services/Interop/types.d.ts +116 -15
  51. package/platform/services/Interop/types.d.ts.map +1 -1
  52. package/platform/services/Interop/types.js +1 -1
  53. package/platform/services/Interop/types.js.map +1 -1
  54. package/platform/services/window/types.d.ts +3 -3
  55. package/platform/services/window/types.d.ts.map +1 -1
  56. package/react/assets/css/core/windowFrame.css +13 -4
  57. package/react/components/appCatalog/components/AppResults.js +1 -1
  58. package/react/components/appCatalog/components/AppResults.js.map +1 -1
  59. package/react/components/appCatalog/components/Showcase/Header.js +1 -1
  60. package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
  61. package/react/components/common/Dropdown.d.ts +15 -0
  62. package/react/components/common/Dropdown.d.ts.map +1 -0
  63. package/react/components/common/Dropdown.js +83 -0
  64. package/react/components/common/Dropdown.js.map +1 -0
  65. package/react/components/common/FinsembleToggleButtonBar.d.ts +1 -0
  66. package/react/components/common/FinsembleToggleButtonBar.d.ts.map +1 -1
  67. package/react/components/common/FinsembleToggleButtonBar.js +21 -18
  68. package/react/components/common/FinsembleToggleButtonBar.js.map +1 -1
  69. package/react/components/common/css/FinsembleToggle.css +4 -0
  70. package/react/components/common/css/dropdown.css +56 -0
  71. package/react/components/fdc3Resolver/ResolverContainer.d.ts.map +1 -1
  72. package/react/components/fdc3Resolver/ResolverContainer.js +78 -1
  73. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  74. package/react/components/fdc3Resolver/ResolverDialog.css +60 -103
  75. package/react/components/fdc3Resolver/ResolverDialog.d.ts +4 -2
  76. package/react/components/fdc3Resolver/ResolverDialog.d.ts.map +1 -1
  77. package/react/components/fdc3Resolver/ResolverDialog.js +113 -69
  78. package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
  79. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +1 -1
  80. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  81. package/react/components/toolbar/appLauncher/components/componentList.js +2 -2
  82. package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
  83. package/react/components/userPreferences/components/content/Workspaces.js +1 -1
  84. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  85. package/react/components/windowTitleBar/components/windowTitle.js +4 -5
  86. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  87. package/typedefs/FDC3/api/AppIdentifier.d.ts +18 -0
  88. package/typedefs/FDC3/api/AppIdentifier.d.ts.map +1 -0
  89. package/typedefs/FDC3/api/AppIdentifier.js +6 -0
  90. package/typedefs/FDC3/api/AppIdentifier.js.map +1 -0
  91. package/typedefs/FDC3/api/AppIntent.d.ts +3 -1
  92. package/typedefs/FDC3/api/AppIntent.d.ts.map +1 -1
  93. package/typedefs/FDC3/api/AppIntent.js +1 -1
  94. package/typedefs/FDC3/api/AppMetadata.d.ts +22 -9
  95. package/typedefs/FDC3/api/AppMetadata.d.ts.map +1 -1
  96. package/typedefs/FDC3/api/AppMetadata.js +1 -1
  97. package/typedefs/FDC3/api/Channel.d.ts +8 -7
  98. package/typedefs/FDC3/api/Channel.d.ts.map +1 -1
  99. package/typedefs/FDC3/api/Channel.js +1 -1
  100. package/typedefs/FDC3/api/ContextMetadata.d.ts +19 -0
  101. package/typedefs/FDC3/api/ContextMetadata.d.ts.map +1 -0
  102. package/typedefs/FDC3/api/ContextMetadata.js +6 -0
  103. package/typedefs/FDC3/api/ContextMetadata.js.map +1 -0
  104. package/typedefs/FDC3/api/DesktopAgent.d.ts +387 -75
  105. package/typedefs/FDC3/api/DesktopAgent.d.ts.map +1 -1
  106. package/typedefs/FDC3/api/DesktopAgent.js +1 -1
  107. package/typedefs/FDC3/api/DisplayMetadata.d.ts +1 -1
  108. package/typedefs/FDC3/api/DisplayMetadata.js +1 -1
  109. package/typedefs/FDC3/api/Errors.d.ts +28 -2
  110. package/typedefs/FDC3/api/Errors.d.ts.map +1 -1
  111. package/typedefs/FDC3/api/Errors.js +28 -1
  112. package/typedefs/FDC3/api/Errors.js.map +1 -1
  113. package/typedefs/FDC3/api/Icon.d.ts +13 -0
  114. package/typedefs/FDC3/api/Icon.d.ts.map +1 -0
  115. package/typedefs/FDC3/api/Icon.js +6 -0
  116. package/typedefs/FDC3/api/Icon.js.map +1 -0
  117. package/typedefs/FDC3/api/Image.d.ts +15 -0
  118. package/typedefs/FDC3/api/Image.d.ts.map +1 -0
  119. package/typedefs/FDC3/api/Image.js +6 -0
  120. package/typedefs/FDC3/api/Image.js.map +1 -0
  121. package/typedefs/FDC3/api/ImplementationMetadata.d.ts +4 -1
  122. package/typedefs/FDC3/api/ImplementationMetadata.d.ts.map +1 -1
  123. package/typedefs/FDC3/api/ImplementationMetadata.js +1 -1
  124. package/typedefs/FDC3/api/IntentMetadata.d.ts +1 -1
  125. package/typedefs/FDC3/api/IntentMetadata.js +1 -1
  126. package/typedefs/FDC3/api/IntentResolution.d.ts +48 -10
  127. package/typedefs/FDC3/api/IntentResolution.d.ts.map +1 -1
  128. package/typedefs/FDC3/api/IntentResolution.js +1 -1
  129. package/typedefs/FDC3/api/Listener.d.ts +1 -1
  130. package/typedefs/FDC3/api/Listener.js +1 -1
  131. package/typedefs/FDC3/api/PrivateChannel.d.ts +54 -0
  132. package/typedefs/FDC3/api/PrivateChannel.d.ts.map +1 -0
  133. package/typedefs/FDC3/api/PrivateChannel.js +6 -0
  134. package/typedefs/FDC3/api/PrivateChannel.js.map +1 -0
  135. package/typedefs/FDC3/api/Types.d.ts +25 -4
  136. package/typedefs/FDC3/api/Types.d.ts.map +1 -1
  137. package/typedefs/FDC3/api/Types.js +1 -1
  138. package/typedefs/FDC3/api/index.d.ts +13 -0
  139. package/typedefs/FDC3/api/index.d.ts.map +1 -0
  140. package/typedefs/FDC3/api/index.js +13 -0
  141. package/typedefs/FDC3/api/index.js.map +1 -0
  142. package/react/components/common/FinsembleSelect.d.ts +0 -14
  143. package/react/components/common/FinsembleSelect.d.ts.map +0 -1
  144. package/react/components/common/FinsembleSelect.js +0 -62
  145. package/react/components/common/FinsembleSelect.js.map +0 -1
@@ -1,14 +1,17 @@
1
1
  /**
2
2
  * SPDX-License-Identifier: Apache-2.0
3
- * Copyright 2019 FINOS FDC3 contributors - see NOTICE file
3
+ * Copyright FINOS FDC3 contributors - see NOTICE file
4
4
  */
5
5
  import { AppIntent } from "./AppIntent";
6
6
  import { Channel } from "./Channel";
7
- import { ContextHandler, TargetApp } from "./Types";
7
+ import { ContextHandler, IntentHandler } from "./Types";
8
8
  import { IntentResolution } from "./IntentResolution";
9
9
  import { Listener } from "./Listener";
10
10
  import { Context } from "../context/ContextTypes";
11
11
  import { ImplementationMetadata } from "./ImplementationMetadata";
12
+ import { PrivateChannel } from "./PrivateChannel";
13
+ import { AppMetadata } from "./AppMetadata";
14
+ import { AppIdentifier } from "./AppIdentifier";
12
15
  /**
13
16
  * A Desktop Agent is a desktop component (or aggregate of components) that serves as a
14
17
  * launcher and message router (broker) for applications in its domain.
@@ -20,155 +23,413 @@ import { ImplementationMetadata } from "./ImplementationMetadata";
20
23
  */
21
24
  export interface DesktopAgent {
22
25
  /**
23
- * Launches an app by target, which can be optionally a string like a name, or an AppMetadata object.
26
+ * Launches an app.
24
27
  *
25
- * If a Context object is passed in, this object will be provided to the opened application via a contextListener.
26
- * The Context argument is functionally equivalent to opening the target app with no context and broadcasting the context directly to it.
28
+ * The `open` method differs in use from `raiseIntent`. Generally, it should be used when the target application is known but there is no specific intent. For example, if an application is querying the App Directory, `open` would be used to open an app returned in the search results.
29
+ *
30
+ * **Note**, if the intent, context and target app name are all known, it is recommended to instead use `raiseIntent` with the `target` argument.
31
+ *
32
+ * If a Context object is passed in, this object will be provided to the opened application via a contextListener. The Context argument is functionally equivalent to opening the target app with no context and broadcasting the context directly to it.
33
+ *
34
+ * Returns an `AppMetadata` object with the `instanceId` field set identifying the instance of the application opened by this call.
27
35
  *
28
36
  * If opening errors, it returns an `Error` with a string from the `OpenError` enumeration.
29
37
  *
30
- * ```javascript
31
- * //no context and string as target
32
- * agent.open('myApp');
33
- * //no context and AppMetadata object as target
34
- * agent.open({name: 'myApp', title: 'The title for the application myApp.', description: '...'});
35
- * //with context
36
- * agent.open('myApp', context);
38
+ * ```javascript
39
+ * //Open an app without context, using an AppIdentifier object to specify the target by `appId`.
40
+ * let appIdentifier = {appId: 'myApp-v1.0.1'};
41
+ * let instanceMetadata = await fdc3.open(appIdentifier);
42
+ *
43
+ * //Open an app with context
44
+ * let instanceMetadata = await fdc3.open(appIdentifier, context);
37
45
  * ```
38
46
  */
39
- open(app: TargetApp, context?: Context): Promise<void>;
47
+ open(app: AppIdentifier, context?: Context): Promise<AppMetadata>;
40
48
  /**
41
- * Find out more information about a particular intent by passing its name, and optionally its context.
49
+ * Find out more information about a particular intent by passing its name, and optionally its context and/or a desired result type.
42
50
  *
43
51
  * findIntent is effectively granting programmatic access to the Desktop Agent's resolver.
44
- * A promise resolving to the intent, its metadata and metadata about the apps that registered it is returned.
45
- * This can be used to raise the intent against a specific app.
52
+ * A promise resolving to the intent, its metadata and metadata about the apps and app instances that registered it is returned.
53
+ * This can be used to raise the intent against a specific app or app instance.
46
54
  *
47
55
  * If the resolution fails, the promise will return an `Error` with a string from the `ResolveError` enumeration.
48
56
  *
57
+ * Output types may be a type name, the string "channel" (which indicates that the app
58
+ * will return a channel) or a string indicating a channel that returns a specific type,
59
+ * e.g. "channel<fdc3.instrument>".
60
+ * If intent resolution to an app returning a channel is requested, the desktop agent
61
+ * MUST include both apps that are registered as returning a channel and those registered
62
+ * as returning a channel with a specific type in the response.
63
+ *
49
64
  * ```javascript
50
- * // I know 'StartChat' exists as a concept, and want to know more about it ...
51
- * const appIntent = await agent.findIntent("StartChat");
65
+ * // I know 'StartChat' exists as a concept, and want to know which apps can resolve it ...
66
+ * const appIntent = await fdc3.findIntent("StartChat");
52
67
  *
53
68
  * // returns a single AppIntent:
54
69
  * // {
55
70
  * // intent: { name: "StartChat", displayName: "Chat" },
56
- * // apps: [{ name: "Skype" }, { name: "Symphony" }, { name: "Slack" }]
71
+ * // apps: [
72
+ * // { name: "Skype" },
73
+ * // { name: "Symphony" },
74
+ * // { name: "Slack" }
75
+ * // ]
57
76
  * // }
58
77
  *
59
78
  * // raise the intent against a particular app
60
- * await agent.raiseIntent(appIntent.intent.name, context, appIntent.apps[0].name);
79
+ * await fdc3.raiseIntent(appIntent.intent.name, context, appIntent.apps[0].name);
80
+ *
81
+ * //later, we want to raise 'StartChat' intent again
82
+ * const appIntent = await fdc3.findIntent("StartChat");
83
+ * // returns an AppIntent, but with multiple options for resolution,
84
+ * // which includes an existing instance of an application:
85
+ * // {
86
+ * // intent: { name: "StartChat", displayName: "Chat" },
87
+ * // apps: [
88
+ * // { name: "Skype" },
89
+ * // { name: "Symphony" },
90
+ * // { name: "Symphony", instanceId: "93d2fe3e-a66c-41e1-b80b-246b87120859" },
91
+ * // { name: "Slack" }
92
+ * // ]
93
+ * ```
94
+ *
95
+ * An optional input context object and result type may be specified, which the resolver MUST use to filter the returned applications such that each supports the specified input and result types.
96
+ *
97
+ * ```javascript
98
+ * const appIntent = await fdc3.findIntent("StartChat", contact);
99
+ *
100
+ * // returns only apps that support the type of the specified input context:
101
+ * // {
102
+ * // intent: { name: "StartChat", displayName: "Chat" },
103
+ * // apps: [{ name: "Symphony" }]
104
+ * // }
105
+ *
106
+ * const appIntent = await fdc3.findIntent("ViewContact", contact, "fdc3.ContactList");
107
+ *
108
+ * // returns only apps that return the specified result Context type:
109
+ * // {
110
+ * // intent: { name: "ViewContact", displayName: "View Contact Details" },
111
+ * // apps: { name: "MyCRM", resultType: "fdc3.ContactList"}]
112
+ * // }
113
+ *
114
+ * const appIntent = await fdc3.findIntent("QuoteStream", instrument, "channel<fdc3.Quote>");
115
+ *
116
+ * // returns only apps that return a channel which will receive the specified input and result types:
117
+ * // {
118
+ * // intent: { name: "QuoteStream", displayName: "Quotes stream" },
119
+ * // apps: [{ name: "MyOMS", resultType: "channel<fdc3.Quote>"}]
120
+ * // }
61
121
  * ```
62
122
  */
63
- findIntent(intent: string, context?: Context): Promise<AppIntent>;
123
+ findIntent(intent: string, context?: Context, resultType?: string): Promise<AppIntent>;
64
124
  /**
65
- * Find all the avalable intents for a particular context.
125
+ * Find all the available intents for a particular context, and optionally a desired result context type.
66
126
  *
67
127
  * findIntents is effectively granting programmatic access to the Desktop Agent's resolver.
68
- * A promise resolving to all the intents, their metadata and metadata about the apps that registered it is returned,
69
- * based on the context types the intents have registered.
128
+ * A promise resolving to all the intents, their metadata and metadata about the apps and app instance that registered it is returned, based on the context types the intents have registered.
70
129
  *
71
130
  * If the resolution fails, the promise will return an `Error` with a string from the `ResolveError` enumeration.
72
131
  *
132
+ * Result types may be a type name, the string "channel" (which indicates that the app should return a
133
+ * channel) or a string indicating a channel that returns a specific type, e.g. "channel<fdc3.instrument>".
134
+ * If intent resolution to an app returning a channel is requested, the desktop agent MUST also include apps
135
+ * that are registered as returning a channel with a specific type in the response.
136
+ *
73
137
  * ```javascript
74
- * // I have a context object, and I want to know what I can do with it, hence, I look for for intents...
75
- * const appIntents = await agent.findIntentsByContext(context);
138
+ * // I have a context object, and I want to know what I can do with it, hence, I look for intents and apps to resolve them...
139
+ * const appIntents = await fdc3.findIntentsByContext(context);
76
140
  *
77
141
  * // returns for example:
78
- * // [{
142
+ * // [
143
+ * // {
79
144
  * // intent: { name: "StartCall", displayName: "Call" },
80
145
  * // apps: [{ name: "Skype" }]
81
- * // },
82
- * // {
146
+ * // },
147
+ * // {
83
148
  * // intent: { name: "StartChat", displayName: "Chat" },
84
- * // apps: [{ name: "Skype" }, { name: "Symphony" }, { name: "Slack" }]
149
+ * // apps: [
150
+ * // { name: "Skype" },
151
+ * // { name: "Symphony" },
152
+ * // { name: "Symphony", instanceId: "93d2fe3e-a66c-41e1-b80b-246b87120859" },
153
+ * // { name: "Slack" }
154
+ * // ]
155
+ * // }
156
+ * // ];
157
+ *
158
+ * // or I look for only intents that are resolved by apps returning a particular result type
159
+ * const appIntentsForType = await fdc3.findIntentsByContext(context, "fdc3.ContactList");
160
+ * // returns for example:
161
+ * // [{
162
+ * // intent: { name: "ViewContact", displayName: "View Contacts" },
163
+ * // apps: [{ name: "MyCRM", resultType: "fdc3.ContactList"}]
85
164
  * // }];
86
165
  *
87
166
  * // select a particular intent to raise
88
- * const startChat = appIntents[1];
167
+ * const resolvedIntent = appIntents[1];
89
168
  *
90
- * // target a particular app
91
- * const selectedApp = startChat.apps[0];
169
+ * // target a particular app or instance
170
+ * const selectedApp = resolvedIntent.apps[2];
92
171
  *
93
- * // raise the intent, passing the given context, targeting the app
94
- * await agent.raiseIntent(startChat.intent.name, context, selectedApp.name);
172
+ * // raise the intent, passing the given context, targeting the app or app instance
173
+ * await fdc3.raiseIntent(startChat.intent.name, context, selectedApp);
95
174
  * ```
96
175
  */
97
- findIntentsByContext(context: Context): Promise<Array<AppIntent>>;
176
+ findIntentsByContext(context: Context, resultType?: string): Promise<Array<AppIntent>>;
98
177
  /**
99
- * Publishes context to other apps on the desktop.
178
+ * Find all the available instances for a particular application.
100
179
  *
101
- * DesktopAgent implementations should ensure that context messages broadcast to a channel
102
- * by an application joined to it should not be delivered back to that same application.
180
+ * If there are no instances of the specified application the returned promise should resolve to an empty array.
181
+ *
182
+ * If the request fails for another reason, the promise will return an `Error` with a string from the `ResolveError` enumeration.
103
183
  *
104
184
  * ```javascript
105
- * agent.broadcast(context);
185
+ * // Retrieve a list of instances of an application
186
+ * let instances = await fdc3.findInstances({appId: "MyApp"});
187
+ *
188
+ * // Target a raised intent at a specific instance
189
+ * let resolution = fdc3.raiseIntent("ViewInstrument", context, instances[0]);
106
190
  * ```
191
+ * @param app
107
192
  */
108
- broadcast(context: Context): void;
193
+ findInstances(app: AppIdentifier): Promise<Array<AppMetadata>>;
109
194
  /**
110
- * Raises an intent to the desktop agent to resolve.
195
+ * Publishes context to other apps on the desktop. Calling `broadcast` at the `DesktopAgent` scope will push the context to whatever _User Channel_ the app is joined to. If the app is not currently joined to a channel, calling `fdc3.broadcast` will have no effect. Apps can still directly broadcast and listen to context on any channel via the methods on the `Channel` class.
196
+ *
197
+ * DesktopAgent implementations should ensure that context messages broadcast to a channel by an application joined to it should not be delivered back to that same application.
198
+ *
111
199
  * ```javascript
112
- * //Find apps to resolve an intent to start a chat with a given contact
113
- * const appIntent = await fdc3.findIntent("StartChat", context);
114
- * //use the returned AppIntent object to target one of the returned chat apps with the context
115
- * await fdc3.raiseIntent("StartChat", context, appIntent.apps[0].name);
116
- * //or use one of the AppMetadata objects returned in the AppIntent object's 'apps' array
117
- * await fdc3.raiseIntent("StartChat", context, appMetadata);
200
+ * const instrument = {
201
+ * type: 'fdc3.instrument',
202
+ * id: {
203
+ * ticker: 'AAPL'
204
+ * }
205
+ * };
206
+ * fdc3.broadcast(context);
118
207
  * ```
119
208
  */
120
- raiseIntent(intent: string, context: Context, app?: TargetApp): Promise<IntentResolution>;
209
+ broadcast(context: Context): Promise<void>;
121
210
  /**
122
- * Raises a context to the desktop agent to resolve with one of the possible Intents for that context.
211
+ * Raises a specific intent for resolution against apps registered with the desktop agent.
212
+ *
213
+ * The desktop agent MUST resolve the correct app to target based on the provided intent name and context data. If multiple matching apps are found, the user MAY be presented with a Resolver UI allowing them to pick one, or another method of Resolution applied to select an app.
214
+ * Alternatively, the specific app or app instance to target can also be provided. A list of valid target applications and instances can be retrieved via `findIntent`.
215
+ *
216
+ * If a target app for the intent cannot be found with the criteria provided or the user either closes the resolver UI or otherwise cancels resolution, an `Error` with a string from the `ResolveError` enumeration is returned. If a specific target `app` parameter was set, but either the app or app instance is not available then the `ResolveError.TargetAppUnavailable` or `ResolveError.TargetInstanceUnavailable` errors MUST be returned.
217
+ *
218
+ * If you wish to raise an Intent without a context, use the `fdc3.nothing` context type. This type exists so that apps can explicitly declare support for raising an intent without context.
219
+ *
220
+ * Returns an `IntentResolution` object with details of the app instance that was selected (or started) to respond to the intent.
221
+ *
222
+ * Issuing apps may optionally wait on the promise that is returned by the `getResult()` member of the `IntentResolution`. This promise will resolve when the _receiving app's_ intent handler function returns and resolves a promise. The Desktop Agent resolves the issuing app's promise with the Context object or Channel that is provided as resolution within the receiving app. The Desktop Agent MUST reject the issuing app's promise, with a string from the `ResultError` enumeration, if: (1) the intent handling function's returned promise rejects, (2) the intent handling function doesn't return a promise, or (3) the returned promise resolves to an invalid type.
223
+ *
224
+ * ```javascript
225
+ * // raise an intent for resolution by the desktop agent
226
+ * // a resolver UI may be displayed if more than one application can resolve the intent
227
+ * await fdc3.raiseIntent("StartChat", context);
228
+ *
229
+ * // or find apps to resolve an intent to start a chat with a given contact
230
+ * const appIntent = await fdc3.findIntent("StartChat", context);
231
+
232
+ * // use the metadata of an app or app instance to describe the target app for the intent
233
+ * await fdc3.raiseIntent("StartChat", context, appIntent.apps[0]);
234
+ *
235
+ * //Raise an intent without a context by using the null context type
236
+ * await fdc3.raiseIntent("StartChat", {type: "fdc3.nothing"});
237
+ *
238
+ * //Raise an intent and retrieve a result from the IntentResolution
239
+ * let resolution = await agent.raiseIntent("intentName", context);
240
+ * try {
241
+ * const result = await resolution.getResult();
242
+ * if (result && result.broadcast) { //detect whether the result is Context or a Channel
243
+ * console.log(`${resolution.source} returned a channel with id ${result.id}`);
244
+ * } else if (result){
245
+ * console.log(`${resolution.source} returned data: ${JSON.stringify(result)}`);
246
+ * } else {
247
+ * console.error(`${resolution.source} didn't return anything`
248
+ * }
249
+ * } catch(error) {
250
+ * console.error(`${resolution.source} returned an error: ${error}`);
251
+ * }
252
+ * ```
253
+ */
254
+ raiseIntent(intent: string, context: Context, app?: AppIdentifier): Promise<IntentResolution>;
255
+ /**
256
+ * Finds and raises an intent against apps registered with the desktop agent based on the type of the specified context data example.
257
+ *
258
+ * The desktop agent SHOULD first resolve to a specific intent based on the provided context if more than one intent is available for the specified context. This MAY be achieved by displaying a resolver UI. It SHOULD then resolve to a specific app to handle the selected intent and specified context.
259
+ * Alternatively, the specific app or app instance to target can also be provided, in which case the resolver SHOULD only offer intents supported by the specified application.
260
+ *
261
+ * Using `raiseIntentForContext` is similar to calling `findIntentsByContext`, and then raising an intent against one of the returned apps, except in this case the desktop agent has the opportunity to provide the user with a richer selection interface where they can choose both the intent and target app.
262
+ *
263
+ * Returns an `IntentResolution` object, see `raiseIntent()` for details.
264
+ *
265
+ * If a target app for the intent cannot be found with the criteria provided, an `Error` with a string from the `ResolveError` enumeration is returned.
266
+ *
123
267
  * ```javascript
268
+ * // Resolve against all intents registered for the type of the specified context
124
269
  * await fdc3.raiseIntentForContext(context);
270
+ *
271
+ * // Resolve against all intents registered by a specific target app for the specified context
272
+ * await fdc3.raiseIntentForContext(context, targetAppMetadata);
125
273
  * ```
126
274
  */
127
- raiseIntentForContext(context: Context, app?: TargetApp): Promise<IntentResolution>;
275
+ raiseIntentForContext(context: Context, app?: AppIdentifier): Promise<IntentResolution>;
128
276
  /**
129
- * Adds a listener for incoming Intents from the Agent.
130
- */
131
- addIntentListener(intent: string, handler: ContextHandler): Listener;
132
- /**
133
- * Adds a listener for incoming context broadcast from the Desktop Agent.
134
- * @deprecated use `addContextListener(null, handler)` instead of `addContextListener(handler)`.
277
+ * Adds a listener for incoming Intents from the Agent. The handler function may return void or a promise that should resolve to an `IntentResult`, which is either a `Context` object, representing any data that should be returned, or a `Channel` over which data responses will be sent. The IntentResult will be returned to app that raised the intent via the `IntentResolution` and retrieved from it using the `getResult()` function.
278
+ *
279
+ * The Desktop Agent MUST reject the promise returned by the `getResult()` function of `IntentResolution` if: (1) the intent handling function's returned promise rejects, (2) the intent handling function doesn't return a promise, or (3) the returned promise resolves to an invalid type.
280
+ *
281
+ * The `PrivateChannel` type is provided to support synchronisation of data transmitted over returned channels, by allowing both parties to listen for events denoting subscription and unsubscription from the returned channel. `PrivateChannels` are only retrievable via raising an intent.
282
+ *
283
+ * Optional metadata about the raised intent, including the app that originated the message, SHOULD be provided by the desktop agent implementation.
284
+ *
285
+ * ```javascript
286
+ * //Handle a raised intent
287
+ * const listener = fdc3.addIntentListener('StartChat', context => {
288
+ * // start chat has been requested by another application
289
+ * return;
290
+ * });
291
+ *
292
+ * //Handle a raised intent and return Context data via a promise
293
+ * fdc3.addIntentListener("CreateOrder", (context) => {
294
+ * return new Promise<Context>((resolve) => {
295
+ * // go create the order
296
+ * resolve({type: "fdc3.order", id: { "orderId": 1234}});
297
+ * });
298
+ * });
299
+ *
300
+ * //Handle a raised intent and return a Private Channel over which response will be sent
301
+ * fdc3.addIntentListener("QuoteStream", async (context) => {
302
+ * const channel: PrivateChannel = await fdc3.createPrivateChannel();
303
+ * const symbol = context.id.symbol;
304
+ *
305
+ * // Called when the remote side adds a context listener
306
+ * const addContextListener = channel.onAddContextListener((contextType) => {
307
+ * // broadcast price quotes as they come in from our quote feed
308
+ * feed.onQuote(symbol, (price) => {
309
+ * channel.broadcast({ type: "price", price});
310
+ * });
311
+ * });
312
+ *
313
+ * // Stop the feed if the remote side closes
314
+ * const disconnectListener = channel.onDisconnect(() => {
315
+ * feed.stop(symbol);
316
+ * });
317
+ *
318
+ * return channel;
319
+ * });
320
+ * ```
135
321
  */
136
- addContextListener(handler: ContextHandler): Listener;
322
+ addIntentListener(intent: string, handler: IntentHandler): Promise<Listener>;
137
323
  /**
138
- * Adds a listener for the broadcast of a specific type of context object.
324
+ * Adds a listener for incoming context broadcasts from the Desktop Agent via User channels. If the consumer is only interested in a context of a particular type, they can they can specify that type. If the consumer is able to receive context of any type or will inspect types received, then they can pass `null` as the `contextType` parameter to receive all context types.
325
+ * Context broadcasts are only received from apps that are joined to the same User channel as the listening application, hence, if the application is not currently joined to a channel no broadcasts will be received. If this function is called after the app has already joined a channel and the channel already contains context that would be passed to the context listener, then it will be called immediately with that context.
326
+ *
327
+ *
328
+ * Optional metadata about the context message, including the app that originated the message, SHOULD be provided by the desktop agent implementation.
329
+ *
330
+ * ```javascript
331
+ * // any context
332
+ * const listener = fdc3.addContextListener(null, context => { ... });
333
+ * // listener for a specific type
334
+ * const contactListener = fdc3.addContextListener('fdc3.contact', contact => { ... });
335
+ * ```
139
336
  */
140
- addContextListener(contextType: string | null, handler: ContextHandler): Listener;
337
+ addContextListener(contextType: string | null, handler: ContextHandler): Promise<Listener>;
141
338
  /**
142
- * Retrieves a list of the System channels available for the app to join
339
+ * Retrieves a list of the User channels available for the app to join.
143
340
  */
144
- getSystemChannels(): Promise<Array<Channel>>;
341
+ getUserChannels(): Promise<Array<Channel>>;
145
342
  /**
146
- * Joins the app to the specified channel.
343
+ * Optional function that joins the app to the specified User channel. In most cases, applications SHOULD be joined to channels via UX provided to the application by the desktop agent, rather than calling this function directly.
344
+ *
345
+ * If an app is joined to a channel, all `fdc3.broadcast` calls will go to the channel, and all listeners assigned via `fdc3.addContextListener` will listen on the channel.
346
+ * If the channel already contains context that would be passed to context listeners assed via `fdc3.addContextListener` then those listeners will be called immediately with that context.
147
347
  * An app can only be joined to one channel at a time.
148
- * Rejects with error if the channel is unavailable or the join request is denied.
149
- * `Error` with a string from the `ChannelError` enumeration.
348
+ * Rejects with an error if the channel is unavailable or the join request is denied. The error string will be drawn from the `ChannelError` enumeration.
349
+ * ```javascript
350
+ * // get all system channels
351
+ * const channels = await fdc3.getUserChannels();
352
+ * // create UI to pick from the User channels
353
+ * // join the channel on selection
354
+ * fdc3.joinUserChannel(selectedChannel.id);
355
+ * ```
150
356
  */
151
- joinChannel(channelId: string): Promise<void>;
357
+ joinUserChannel(channelId: string): Promise<void>;
152
358
  /**
153
- * Returns a channel with the given identity. Either stands up a new channel or returns an existing channel.
359
+ * Returns a channel with the given identity. Either stands up a new channel or returns an existing channel. It is up to applications to manage how to share knowledge of these custom channels across windows and to manage channel ownership and lifecycle.
154
360
  *
155
- * It is up to applications to manage how to share knowledge of these custom channels across windows and to manage
156
- * channel ownership and lifecycle.
361
+ * If the Channel cannot be created, the returned promise MUST be rejected with an error string from the `ChannelError` enumeration.
157
362
  *
158
- * `Error` with a string from the `ChannelError` enumeration.
363
+ * ```javascript
364
+ * try {
365
+ * const myChannel = await fdc3.getOrCreateChannel("myChannel");
366
+ * const myChannel.addContextListener(null, context => {});
367
+ * }
368
+ * catch (err){
369
+ * //app could not register the channel
370
+ * }
371
+ * ```
159
372
  */
160
373
  getOrCreateChannel(channelId: string): Promise<Channel>;
161
374
  /**
162
- * Returns the `Channel` object for the current channel membership.
375
+ * Returns a `Channel` with an auto-generated identity that is intended for private communication between applications. Primarily used to create Channels that will be returned to other applications via an `IntentResolution` for a raised intent.
376
+ *
377
+ * If the `PrivateChannel` cannot be created, the returned promise MUST be rejected with an error string from the `ChannelError` enumeration.
378
+ *
379
+ * The `PrivateChannel` type is provided to support synchronisation of data transmitted over returned channels, by allowing both parties to listen for events denoting subscription and unsubscription from the returned channel. `PrivateChannels` are only retrievable via raising an intent.
380
+ *
381
+ * * It is intended that Desktop Agent implementations:
382
+ * - SHOULD restrict external apps from listening or publishing on this channel.
383
+ * - MUST prevent `PrivateChannels` from being retrieved via fdc3.getOrCreateChannel.
384
+ * - MUST provide the `id` value for the channel as required by the `Channel` interface.
385
+ *
386
+ * ```javascript
387
+ * fdc3.addIntentListener("QuoteStream", async (context) => {
388
+ * const channel: PrivateChannel = await fdc3.createPrivateChannel();
389
+ * const symbol = context.id.ticker;
390
+ *
391
+ * // This gets called when the remote side adds a context listener
392
+ * const addContextListener = channel.onAddContextListener((contextType) => {
393
+ * // broadcast price quotes as they come in from our quote feed
394
+ * feed.onQuote(symbol, (price) => {
395
+ * channel.broadcast({ type: "price", price});
396
+ * });
397
+ * });
398
+ *
399
+ * // This gets called when the remote side calls Listener.unsubscribe()
400
+ * const unsubscriberListener = channel.onUnsubscribe((contextType) => {
401
+ * feed.stop(symbol);
402
+ * });
403
+ *
404
+ * // This gets called if the remote side closes
405
+ * const disconnectListener = channel.onDisconnect(() => {
406
+ * feed.stop(symbol);
407
+ * })
408
+ *
409
+ * return channel;
410
+ * });
411
+ * ```
412
+ */
413
+ createPrivateChannel(): Promise<PrivateChannel>;
414
+ /**
415
+ * Optional function that returns the `Channel` object for the current User channel membership. In most cases, an application's membership of channels SHOULD be managed via UX provided to the application by the desktop agent, rather than calling this function directly.
163
416
  *
164
417
  * Returns `null` if the app is not joined to a channel.
165
418
  */
166
419
  getCurrentChannel(): Promise<Channel | null>;
167
420
  /**
168
- * Removes the app from any channel membership.
421
+ * Optional function that removes the app from any User channel membership. In most cases, an application's membership of channels SHOULD be managed via UX provided to the application by the desktop agent, rather than calling this function directly.
422
+ *
423
+ * Context broadcast and listening through the top-level `fdc3.broadcast` and `fdc3.addContextListener` will be a no-op when the app is not on a channel.
169
424
  *
170
- * Context broadcast and listening through the top-level `fdc3.broadcast` and `fdc3.addContextListener` will be
171
- * in a no-op when the app is not on a channel.
425
+ * ```javascript
426
+ * //desktop-agent scope context listener
427
+ * const fdc3Listener = fdc3.addContextListener(null, context => {});
428
+ * await fdc3.leaveCurrentChannel();
429
+ * //the fdc3Listener will now cease receiving context
430
+ * //listening on a specific channel, retrieved via fdc3.getOrCreateChannel(), will continue to work:
431
+ * redChannel.addContextListener(null, channelListener);
432
+ * ```
172
433
  */
173
434
  leaveCurrentChannel(): Promise<void>;
174
435
  /**
@@ -176,6 +437,57 @@ export interface DesktopAgent {
176
437
  * the implemented version of the FDC3 specification and the name of the implementation
177
438
  * provider.
178
439
  */
179
- getInfo(): ImplementationMetadata;
440
+ getInfo(): Promise<ImplementationMetadata>;
441
+ /**
442
+ * Retrieves the `AppMetadata` for an `AppIdentifier`, which provides additional metadata (such as icons,
443
+ * a title and description) from the App Directory record for the application, that may be used for display
444
+ * purposes.
445
+ *
446
+ * ```js
447
+ * let appIdentifier = { appId: "MyAppId@my.appd.com" }
448
+ * let appMetadata = await fdc3.getAppMetadata(appIdentifier);
449
+ * ```
450
+ */
451
+ getAppMetadata(app: AppIdentifier): Promise<AppMetadata>;
452
+ /**
453
+ * Adds a listener for incoming context broadcasts from the Desktop Agent.
454
+ * @deprecated use `addContextListener(null, handler)` instead of `addContextListener(handler)`. Provided for backwards compatibility with versions FDC3 standard <2.0.
455
+ */
456
+ addContextListener(handler: ContextHandler): Promise<Listener>;
457
+ /**
458
+ * @deprecated Alias to the `getUserChannels` function provided for backwards compatibility with versions FDC3 standard <2.0.
459
+ */
460
+ getSystemChannels(): Promise<Array<Channel>>;
461
+ /**
462
+ * @deprecated Alias to the `joinUserChannel` function Provided for backwards compatibility with versions FDC3 standard <2.0.
463
+ */
464
+ joinChannel(channelId: string): Promise<void>;
465
+ /**
466
+ * @deprecated version of `open` that launches an app by by name rather than `AppIdentifier`. Provided for backwards compatibility with versions FDC3 standard <2.0.
467
+ *
468
+ * ```javascript
469
+ * //Open an app without context, using the app name
470
+ * let instanceMetadata = await fdc3.open('myApp');
471
+ * ```
472
+ */
473
+ open(name: String, context?: Context): Promise<AppMetadata>;
474
+ /**
475
+ * @deprecated version of `raiseIntent` that targets an app by by name rather than `AppIdentifier`. Provided for backwards compatibility with versions FDC3 standard <2.0.
476
+ *
477
+ * ```javascript
478
+ * // use the `name` metadata of an app to describe the target app for the intent
479
+ * await fdc3.raiseIntent("StartChat", context, appIntent.apps[0].name);
480
+ * ```
481
+ */
482
+ raiseIntent(intent: string, context: Context, name: String): Promise<IntentResolution>;
483
+ /**
484
+ * @deprecated version of `raiseIntentForContext` that targets an app by by name rather than `AppIdentifier`. Provided for backwards compatibility with versions FDC3 standard <2.0.
485
+ *
486
+ * ```javascript
487
+ * // Resolve against all intents registered by a specific target app name for the specified context
488
+ * await fdc3.raiseIntentForContext(context, targetAppName);
489
+ * ```
490
+ */
491
+ raiseIntentForContext(context: Context, name: String): Promise<IntentResolution>;
180
492
  }
181
493
  //# sourceMappingURL=DesktopAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DesktopAgent.d.ts","sourceRoot":"","sources":["../../../../../src/typedefs/FDC3/api/DesktopAgent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;GAQG;AAEH,MAAM,WAAW,YAAY;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAElE;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAElC;;;;;;;;;;OAUG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1F;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpF;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC;IAErE;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC;IAEtD;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC;IAElF;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;;;OAOG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE7C;;;;;OAKG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;OAIG;IACH,OAAO,IAAI,sBAAsB,CAAC;CAClC"}
1
+ {"version":3,"file":"DesktopAgent.d.ts","sourceRoot":"","sources":["../../../../../src/typedefs/FDC3/api/DesktopAgent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * SPDX-License-Identifier: Apache-2.0
3
- * Copyright 2019 FINOS FDC3 contributors - see NOTICE file
3
+ * Copyright FINOS FDC3 contributors - see NOTICE file
4
4
  */
5
5
  export {};
6
6
  //# sourceMappingURL=DesktopAgent.js.map
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * SPDX-License-Identifier: Apache-2.0
3
- * Copyright 2019 FINOS FDC3 contributors - see NOTICE file
3
+ * Copyright FINOS FDC3 contributors - see NOTICE file
4
4
  */
5
5
  /**
6
6
  * A system channel will be global enough to have a presence across many apps. This gives us some hints
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * SPDX-License-Identifier: Apache-2.0
3
- * Copyright 2019 FINOS FDC3 contributors - see NOTICE file
3
+ * Copyright FINOS FDC3 contributors - see NOTICE file
4
4
  */
5
5
  export {};
6
6
  //# sourceMappingURL=DisplayMetadata.js.map