@finsemble/finsemble-ui 10.0.0-iocd.2 → 10.0.0-iocd.8

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 (198) hide show
  1. package/clients/authenticationClient.d.ts +1 -0
  2. package/clients/authenticationClient.d.ts.map +1 -1
  3. package/clients/authenticationClient.js +2 -0
  4. package/clients/authenticationClient.js.map +1 -1
  5. package/clients/dialogManagerClient.d.ts +3 -3
  6. package/clients/dialogManagerClient.d.ts.map +1 -1
  7. package/clients/dialogManagerClient.js +6 -6
  8. package/clients/dialogManagerClient.js.map +1 -1
  9. package/clients/hotkeyClient.d.ts +1 -0
  10. package/clients/hotkeyClient.d.ts.map +1 -1
  11. package/clients/hotkeyClient.js +2 -0
  12. package/clients/hotkeyClient.js.map +1 -1
  13. package/clients/searchClient.d.ts +1 -0
  14. package/clients/searchClient.d.ts.map +1 -1
  15. package/clients/searchClient.js +2 -0
  16. package/clients/searchClient.js.map +1 -1
  17. package/clients/windowClient.d.ts +8 -0
  18. package/clients/windowClient.d.ts.map +1 -1
  19. package/clients/windowClient.js +38 -0
  20. package/clients/windowClient.js.map +1 -1
  21. package/clients/workspaceClient.d.ts +4 -2
  22. package/clients/workspaceClient.d.ts.map +1 -1
  23. package/clients/workspaceClient.js +10 -7
  24. package/clients/workspaceClient.js.map +1 -1
  25. package/common/Monitors.d.ts.map +1 -1
  26. package/common/Monitors.js +1 -2
  27. package/common/Monitors.js.map +1 -1
  28. package/common/constants.d.ts +1 -0
  29. package/common/constants.d.ts.map +1 -1
  30. package/common/constants.js +1 -0
  31. package/common/constants.js.map +1 -1
  32. package/package.json +1 -2
  33. package/platform/services/Interop/modules/types.d.ts +1 -0
  34. package/platform/services/Interop/modules/types.d.ts.map +1 -1
  35. package/platform/services/systemManager/_constants.d.ts.map +1 -1
  36. package/platform/services/systemManager/_constants.js +1 -0
  37. package/platform/services/systemManager/_constants.js.map +1 -1
  38. package/platform/services/systemManager/types.d.ts +1 -1
  39. package/platform/services/systemManager/types.d.ts.map +1 -1
  40. package/platform/services/systemManager/types.js.map +1 -1
  41. package/platform/services/window/types.d.ts +1 -0
  42. package/platform/services/window/types.d.ts.map +1 -1
  43. package/react/assets/css/advancedAppLauncher.css +65 -52
  44. package/react/components/favorites/FavoriteMaker.d.ts.map +1 -1
  45. package/react/components/favorites/FavoriteMaker.js +5 -3
  46. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  47. package/react/components/legacyControls/FinsembleDialog.d.ts.map +1 -1
  48. package/react/components/legacyControls/FinsembleDialog.js +0 -12
  49. package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
  50. package/react/components/legacyControls/FinsembleDraggable.d.ts.map +1 -1
  51. package/react/components/legacyControls/FinsembleDraggable.js +1 -1
  52. package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
  53. package/react/components/processMonitor/stores/ProcessMonitorStore.js +5 -4
  54. package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
  55. package/react/components/shared/openQuitConfirmationDialog.d.ts.map +1 -1
  56. package/react/components/shared/openQuitConfirmationDialog.js +0 -1
  57. package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
  58. package/react/components/singleInputDialog/SingleInputDialog.d.ts.map +1 -1
  59. package/react/components/singleInputDialog/SingleInputDialog.js +2 -5
  60. package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
  61. package/react/components/system/System.d.ts.map +1 -1
  62. package/react/components/system/System.js +20 -5
  63. package/react/components/system/System.js.map +1 -1
  64. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.d.ts.map +1 -1
  65. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js +1 -4
  66. package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
  67. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.d.ts.map +1 -1
  68. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.js +14 -1
  69. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
  70. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.d.ts +2 -0
  71. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.d.ts.map +1 -1
  72. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.js +22 -8
  73. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppDefinition.js.map +1 -1
  74. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.d.ts +5 -11
  75. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.d.ts.map +1 -1
  76. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.js +57 -25
  77. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/Content.js.map +1 -1
  78. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.d.ts +1 -1
  79. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.d.ts.map +1 -1
  80. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.js +22 -9
  81. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FoldersList.js.map +1 -1
  82. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.d.ts +3 -15
  83. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.d.ts.map +1 -1
  84. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.js +11 -28
  85. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
  86. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SortBy.d.ts.map +1 -1
  87. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SortBy.js +2 -6
  88. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/SortBy.js.map +1 -1
  89. package/react/components/toolbar/dashbar/Dashbar.d.ts.map +1 -1
  90. package/react/components/toolbar/dashbar/Dashbar.js +91 -44
  91. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  92. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +0 -1
  93. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts.map +1 -1
  94. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +0 -1
  95. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  96. package/react/components/userPreferences/FinsembleUserPreferences.d.ts +17 -0
  97. package/react/components/userPreferences/FinsembleUserPreferences.d.ts.map +1 -0
  98. package/react/components/userPreferences/FinsembleUserPreferences.js +28 -0
  99. package/react/components/userPreferences/FinsembleUserPreferences.js.map +1 -0
  100. package/react/components/userPreferences/UserPreferences.d.ts +1 -1
  101. package/react/components/userPreferences/UserPreferences.d.ts.map +1 -1
  102. package/react/components/userPreferences/UserPreferences.js +8 -11
  103. package/react/components/userPreferences/UserPreferences.js.map +1 -1
  104. package/react/components/userPreferences/UserPreferencesBase.d.ts +9 -1
  105. package/react/components/userPreferences/UserPreferencesBase.d.ts.map +1 -1
  106. package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
  107. package/react/components/userPreferences/components/ContentSection.d.ts +3 -14
  108. package/react/components/userPreferences/components/ContentSection.d.ts.map +1 -1
  109. package/react/components/userPreferences/components/ContentSection.js +0 -1
  110. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  111. package/react/components/userPreferences/components/content/General.d.ts +2 -1
  112. package/react/components/userPreferences/components/content/General.d.ts.map +1 -1
  113. package/react/components/userPreferences/components/content/General.js +11 -30
  114. package/react/components/userPreferences/components/content/General.js.map +1 -1
  115. package/react/components/userPreferences/components/content/Workspaces.d.ts +5 -5
  116. package/react/components/userPreferences/components/content/Workspaces.d.ts.map +1 -1
  117. package/react/components/userPreferences/components/content/Workspaces.js +36 -53
  118. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  119. package/react/components/userPreferences/components/general/DownloadPreferences.js +2 -1
  120. package/react/components/userPreferences/components/general/DownloadPreferences.js.map +1 -1
  121. package/react/components/userPreferences/components/general/ResetPreferences.d.ts +2 -1
  122. package/react/components/userPreferences/components/general/ResetPreferences.d.ts.map +1 -1
  123. package/react/components/userPreferences/components/general/ResetPreferences.js +5 -12
  124. package/react/components/userPreferences/components/general/ResetPreferences.js.map +1 -1
  125. package/react/components/userPreferences/components/general/ScheduledClose.d.ts +5 -5
  126. package/react/components/userPreferences/components/general/ScheduledClose.d.ts.map +1 -1
  127. package/react/components/userPreferences/components/general/ScheduledClose.js +30 -84
  128. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
  129. package/react/components/userPreferences/iocdUserPreferences.d.ts +17 -0
  130. package/react/components/userPreferences/iocdUserPreferences.d.ts.map +1 -0
  131. package/react/components/userPreferences/iocdUserPreferences.js +49 -0
  132. package/react/components/userPreferences/iocdUserPreferences.js.map +1 -0
  133. package/react/components/userPreferences/utils.d.ts +3 -0
  134. package/react/components/userPreferences/utils.d.ts.map +1 -0
  135. package/react/components/userPreferences/utils.js +11 -0
  136. package/react/components/userPreferences/utils.js.map +1 -0
  137. package/react/components/utils.d.ts +2 -2
  138. package/react/components/utils.d.ts.map +1 -1
  139. package/react/components/utils.js.map +1 -1
  140. package/react/components/yesNoDialog/YesNoDialog.d.ts.map +1 -1
  141. package/react/components/yesNoDialog/YesNoDialog.js +7 -10
  142. package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
  143. package/react/hooks/useDashbar.d.ts.map +1 -1
  144. package/react/hooks/useDashbar.js +6 -3
  145. package/react/hooks/useDashbar.js.map +1 -1
  146. package/react/hooks/useFavoritesShell.d.ts.map +1 -1
  147. package/react/hooks/useFavoritesShell.js +6 -1
  148. package/react/hooks/useFavoritesShell.js.map +1 -1
  149. package/typedefs/FDC3/api/DesktopAgent.d.ts +7 -5
  150. package/typedefs/FDC3/api/DesktopAgent.d.ts.map +1 -1
  151. package/typedefs/FDC3/api/IntentMetadata.d.ts +2 -1
  152. package/typedefs/FDC3/api/IntentMetadata.d.ts.map +1 -1
  153. package/typedefs/FDC3/api/IntentResolution.d.ts +2 -1
  154. package/typedefs/FDC3/api/IntentResolution.d.ts.map +1 -1
  155. package/typedefs/FDC3/api/Methods.d.ts +19 -5
  156. package/typedefs/FDC3/api/Methods.d.ts.map +1 -1
  157. package/typedefs/FDC3/api/Methods.js +19 -3
  158. package/typedefs/FDC3/api/Methods.js.map +1 -1
  159. package/typedefs/FDC3/bridging/BridgingTypes.d.ts +519 -306
  160. package/typedefs/FDC3/bridging/BridgingTypes.d.ts.map +1 -1
  161. package/typedefs/FDC3/bridging/BridgingTypes.js +1372 -1386
  162. package/typedefs/FDC3/bridging/BridgingTypes.js.map +1 -1
  163. package/typedefs/FDC3/context/ContextType.d.ts +19 -1
  164. package/typedefs/FDC3/context/ContextType.d.ts.map +1 -1
  165. package/typedefs/FDC3/context/ContextType.js +7 -0
  166. package/typedefs/FDC3/context/ContextType.js.map +1 -1
  167. package/typedefs/FDC3/context/ContextTypes.d.ts +1373 -135
  168. package/typedefs/FDC3/context/ContextTypes.d.ts.map +1 -1
  169. package/typedefs/FDC3/context/ContextTypes.js +590 -508
  170. package/typedefs/FDC3/context/ContextTypes.js.map +1 -1
  171. package/typedefs/FDC3/intents/Intents.d.ts +15 -0
  172. package/typedefs/FDC3/intents/Intents.d.ts.map +1 -1
  173. package/typedefs/FDC3/intents/Intents.js +7 -0
  174. package/typedefs/FDC3/intents/Intents.js.map +1 -1
  175. package/typedefs/FDC3/internal/contextConfiguration.d.ts +2 -0
  176. package/typedefs/FDC3/internal/contextConfiguration.d.ts.map +1 -0
  177. package/typedefs/FDC3/internal/contextConfiguration.js +5 -0
  178. package/typedefs/FDC3/internal/contextConfiguration.js.map +1 -0
  179. package/typedefs/FDC3/internal/intentConfiguration.d.ts +2 -0
  180. package/typedefs/FDC3/internal/intentConfiguration.d.ts.map +1 -0
  181. package/typedefs/FDC3/internal/intentConfiguration.js +5 -0
  182. package/typedefs/FDC3/internal/intentConfiguration.js.map +1 -0
  183. package/typedefs/FDC3/internal/typeHelpers.d.ts +7 -0
  184. package/typedefs/FDC3/internal/typeHelpers.d.ts.map +1 -0
  185. package/typedefs/FDC3/internal/typeHelpers.js +5 -0
  186. package/typedefs/FDC3/internal/typeHelpers.js.map +1 -0
  187. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppActionsMenu.d.ts +0 -43
  188. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppActionsMenu.d.ts.map +0 -1
  189. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppActionsMenu.js +0 -123
  190. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/AppActionsMenu.js.map +0 -1
  191. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FilterSort.d.ts +0 -26
  192. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FilterSort.d.ts.map +0 -1
  193. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FilterSort.js +0 -34
  194. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/FilterSort.js.map +0 -1
  195. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +0 -9
  196. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/ToggleFavoriteDropdown.d.ts.map +0 -1
  197. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/ToggleFavoriteDropdown.js +0 -27
  198. package/react/components/toolbar/advancedAppLauncher/iocdAdvancedAppLauncher/components/ToggleFavoriteDropdown.js.map +0 -1
@@ -1,158 +1,513 @@
1
+ /**
2
+ * A representation of an FDC3 Action (specified via a Context or Context & Intent) that can
3
+ * be inserted inside another object, for example a chat message.
4
+ *
5
+ * The action may be completed by calling `fdc3.raiseIntent()` with the specified Intent and
6
+ * Context, or, if only a context is specified, by calling `fdc3.raiseIntentForContext()`
7
+ * (which the Desktop Agent will resolve by presenting the user with a list of available
8
+ * Intents for the Context).
9
+ *
10
+ * Accepts an optional `app` parameter in order to specify a specific app.
11
+ */
1
12
  export interface Action {
2
- app?: ActionApp;
3
- context: ActionContext;
4
- customConfig?: {
5
- [key: string]: any;
6
- };
7
13
  /**
8
- * A reference an intent type name, such as those defined in the FDC3 Standard
14
+ * An optional target application identifier that should perform the action
15
+ */
16
+ app?: ActionTargetApp;
17
+ /**
18
+ * A context object with which the action will be performed
19
+ */
20
+ context: ContextElement;
21
+ /**
22
+ * Optional Intent to raise to perform the actions. Should reference an intent type name,
23
+ * such as those defined in the FDC3 Standard. If intent is not set then
24
+ * `fdc3.raiseIntentForContext` should be used to perform the action as this will usually
25
+ * allow the user to choose the intent to raise.
9
26
  */
10
27
  intent?: string;
28
+ /**
29
+ * A human readable display name for the action
30
+ */
11
31
  title: string;
12
- type: string;
32
+ type: "fdc3.action";
13
33
  id?: {
14
34
  [key: string]: any;
15
35
  };
16
36
  name?: string;
17
37
  [property: string]: any;
18
38
  }
19
- export interface ActionApp {
39
+ /**
40
+ * An optional target application identifier that should perform the action
41
+ *
42
+ * Identifies an application, or instance of an application, and is used to target FDC3 API
43
+ * calls, such as `fdc3.open` or `fdc3.raiseIntent` at specific applications or application
44
+ * instances.
45
+ *
46
+ * Will always include at least an `appId` field, which uniquely identifies a specific app.
47
+ *
48
+ * If the `instanceId` field is set then the `AppMetadata` object represents a specific
49
+ * instance of the application that may be addressed using that Id.
50
+ */
51
+ export interface ActionTargetApp {
52
+ /**
53
+ * The unique application identifier located within a specific application directory
54
+ * instance. An example of an appId might be 'app@sub.root'
55
+ */
20
56
  appId: string;
57
+ /**
58
+ * The Desktop Agent that the app is available on. Used in Desktop Agent Bridging to
59
+ * identify the Desktop Agent to target.
60
+ */
61
+ desktopAgent?: string;
62
+ /**
63
+ * An optional instance identifier, indicating that this object represents a specific
64
+ * instance of the application described.
65
+ */
21
66
  instanceId?: string;
22
67
  [property: string]: any;
23
68
  }
24
- export interface ActionContext {
69
+ /**
70
+ * A context object with which the action will be performed
71
+ *
72
+ * A context object returned by the transaction, possibly with updated data.
73
+ *
74
+ * The `fdc3.context` type defines the basic contract or "shape" for all data exchanged by
75
+ * FDC3 operations. As such, it is not really meant to be used on its own, but is imported
76
+ * by more specific type definitions (standardized or custom) to provide the structure and
77
+ * properties shared by all FDC3 context data types.
78
+ *
79
+ * The key element of FDC3 context types is their mandatory `type` property, which is used
80
+ * to identify what type of data the object represents, and what shape it has.
81
+ *
82
+ * The FDC3 context type, and all derived types, define the minimum set of fields a context
83
+ * data object of a particular type can be expected to have, but this can always be extended
84
+ * with custom fields as appropriate.
85
+ */
86
+ export interface ContextElement {
87
+ /**
88
+ * Context data objects may include a set of equivalent key-value pairs that can be used to
89
+ * help applications identify and look up the context type they receive in their own domain.
90
+ * The idea behind this design is that applications can provide as many equivalent
91
+ * identifiers to a target application as possible, e.g. an instrument may be represented by
92
+ * an ISIN, CUSIP or Bloomberg identifier.
93
+ *
94
+ * Identifiers do not make sense for all types of data, so the `id` property is therefore
95
+ * optional, but some derived types may choose to require at least one identifier.
96
+ * Identifier values SHOULD always be of type string.
97
+ */
25
98
  id?: {
26
99
  [key: string]: any;
27
100
  };
101
+ /**
102
+ * Context data objects may include a name property that can be used for more information,
103
+ * or display purposes. Some derived types may require the name object as mandatory,
104
+ * depending on use case.
105
+ */
28
106
  name?: string;
107
+ /**
108
+ * The type property is the only _required_ part of the FDC3 context data schema. The FDC3
109
+ * [API](https://fdc3.finos.org/docs/api/spec) relies on the `type` property being present
110
+ * to route shared context data appropriately.
111
+ *
112
+ * FDC3 [Intents](https://fdc3.finos.org/docs/intents/spec) also register the context data
113
+ * types they support in an FDC3 [App
114
+ * Directory](https://fdc3.finos.org/docs/app-directory/overview), used for intent discovery
115
+ * and routing.
116
+ *
117
+ * Standardized FDC3 context types have well-known `type` properties prefixed with the
118
+ * `fdc3` namespace, e.g. `fdc3.instrument`. For non-standard types, e.g. those defined and
119
+ * used by a particular organization, the convention is to prefix them with an
120
+ * organization-specific namespace, e.g. `blackrock.fund`.
121
+ *
122
+ * See the [Context Data Specification](https://fdc3.finos.org/docs/context/spec) for more
123
+ * information about context data types.
124
+ */
29
125
  type: string;
30
126
  [property: string]: any;
31
127
  }
128
+ /**
129
+ * Free text to be used for a keyword search
130
+ *
131
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
132
+ * `'Meeting'` although other string values are permitted.
133
+ */
134
+ /**
135
+ * A context type representing details of a Chart, which may be used to request plotting of
136
+ * a particular chart or to otherwise share details of its composition, such as:
137
+ *
138
+ * - A list of instruments for comparison
139
+ * - The time period to plot the chart over
140
+ * - The style of chart (line, bar, mountain, candle etc.)
141
+ * - Other settings such as indicators to calculate, or data representing drawings and
142
+ * annotations.
143
+ *
144
+ * In addition to handling requests to plot charts, a charting application may use this type
145
+ * to output a representation of what it is currently displaying so that it can be recorded
146
+ * by another application.
147
+ */
32
148
  export interface Chart {
149
+ /**
150
+ * An array of instrument contexts whose data should be plotted.
151
+ */
33
152
  instruments: InstrumentElement[];
153
+ /**
154
+ * It is common for charts to support other configuration, such as indicators, annotations
155
+ * etc., which do not have standardized formats, but may be included in the `otherConfig`
156
+ * array as context objects.
157
+ */
34
158
  otherConfig?: ContextElement[];
159
+ /**
160
+ * The time range that should be plotted
161
+ */
35
162
  range?: TimeRangeObject;
36
- style?: Style;
37
- type: string;
163
+ /**
164
+ * The type of chart that should be plotted
165
+ */
166
+ style?: ChartStyle;
167
+ type: "fdc3.chart";
38
168
  id?: {
39
169
  [key: string]: any;
40
170
  };
41
171
  name?: string;
42
172
  [property: string]: any;
43
173
  }
174
+ /**
175
+ * financial instrument that relates to the definition of this product
176
+ *
177
+ *
178
+ *
179
+ * A financial instrument from any asset class.
180
+ */
44
181
  export interface InstrumentElement {
45
- id: PurpleID;
182
+ /**
183
+ * Any combination of instrument identifiers can be used together to resolve ambiguity, or
184
+ * for a better match. Not all applications will use the same instrument identifiers, which
185
+ * is why FDC3 allows for multiple to be specified. In general, the more identifiers an
186
+ * application can provide, the easier it will be to achieve interoperability.
187
+ *
188
+ * It is valid to include extra properties and metadata as part of the instrument payload,
189
+ * but the minimum requirement is for at least one instrument identifier to be provided.
190
+ *
191
+ * Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant
192
+ * for tickers as used by an exchange.
193
+ * If the identifier you want to share is not a ticker or one of the other standardized
194
+ * fields, define a property that makes it clear what the value represents. Doing so will
195
+ * make interpretation easier for the developers of target applications.
196
+ */
197
+ id: PurpleInstrumentIdentifiers;
198
+ /**
199
+ * The `market` map can be used to further specify the instrument and help achieve
200
+ * interoperability between disparate data sources. This is especially useful when using an
201
+ * `id` field that is not globally unique.
202
+ */
46
203
  market?: OrganizationMarket;
47
- type: string;
204
+ type: "fdc3.instrument";
48
205
  name?: string;
49
206
  [property: string]: any;
50
207
  }
51
- export interface PurpleID {
208
+ /**
209
+ * Any combination of instrument identifiers can be used together to resolve ambiguity, or
210
+ * for a better match. Not all applications will use the same instrument identifiers, which
211
+ * is why FDC3 allows for multiple to be specified. In general, the more identifiers an
212
+ * application can provide, the easier it will be to achieve interoperability.
213
+ *
214
+ * It is valid to include extra properties and metadata as part of the instrument payload,
215
+ * but the minimum requirement is for at least one instrument identifier to be provided.
216
+ *
217
+ * Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant
218
+ * for tickers as used by an exchange.
219
+ * If the identifier you want to share is not a ticker or one of the other standardized
220
+ * fields, define a property that makes it clear what the value represents. Doing so will
221
+ * make interpretation easier for the developers of target applications.
222
+ */
223
+ export interface PurpleInstrumentIdentifiers {
224
+ /**
225
+ * <https://www.bloomberg.com/>
226
+ */
52
227
  BBG?: string;
228
+ /**
229
+ * <https://www.cusip.com/>
230
+ */
53
231
  CUSIP?: string;
232
+ /**
233
+ * <https://www.factset.com/>
234
+ */
54
235
  FDS_ID?: string;
236
+ /**
237
+ * <https://www.openfigi.com/>
238
+ */
55
239
  FIGI?: string;
240
+ /**
241
+ * <https://www.isin.org/>
242
+ */
56
243
  ISIN?: string;
244
+ /**
245
+ * <https://permid.org/>
246
+ */
57
247
  PERMID?: string;
248
+ /**
249
+ * <https://www.refinitiv.com/>
250
+ */
58
251
  RIC?: string;
252
+ /**
253
+ * <https://www.lseg.com/sedol>
254
+ */
59
255
  SEDOL?: string;
256
+ /**
257
+ * Unstandardized stock tickers
258
+ */
60
259
  ticker?: string;
61
260
  [property: string]: any;
62
261
  }
262
+ /**
263
+ * The `market` map can be used to further specify the instrument and help achieve
264
+ * interoperability between disparate data sources. This is especially useful when using an
265
+ * `id` field that is not globally unique.
266
+ */
63
267
  export interface OrganizationMarket {
268
+ /**
269
+ * <https://www.bloomberg.com/>
270
+ */
64
271
  BBG?: string;
272
+ /**
273
+ * <https://www.iso.org/iso-3166-country-codes.html>
274
+ */
65
275
  COUNTRY_ISOALPHA2?: string;
276
+ /**
277
+ * <https://en.wikipedia.org/wiki/Market_Identifier_Code>
278
+ */
66
279
  MIC?: string;
280
+ /**
281
+ * Human readable market name
282
+ */
67
283
  name?: string;
68
284
  [property: string]: any;
69
285
  }
70
- export interface ContextElement {
71
- id?: {
72
- [key: string]: any;
73
- };
74
- name?: string;
75
- type: string;
76
- [property: string]: any;
77
- }
286
+ /**
287
+ * Free text to be used for a keyword search
288
+ *
289
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
290
+ * `'Meeting'` although other string values are permitted.
291
+ */
292
+ /**
293
+ * The time range that should be plotted
294
+ *
295
+ * The time range over which the interaction occurred
296
+ *
297
+ * A context representing a period of time. Any user interfaces that represent or visualize
298
+ * events or activity over time can be filtered or focused on a particular time period,
299
+ * e.g.:
300
+ *
301
+ * - A pricing chart
302
+ * - A trade blotter
303
+ * - A record of client contact/activity in a CRM
304
+ *
305
+ * Example use cases:
306
+ *
307
+ * - User may want to view pricing/trades/customer activity for a security over a particular
308
+ * time period, the time range might be specified as the context for the `ViewChart` intent
309
+ * OR it might be embedded in another context (e.g. a context representing a chart to plot).
310
+ * - User filters a visualization (e.g. a pricing chart) to show a particular period, the
311
+ * `TimeRange` is broadcast and other visualizations (e.g. a heatmap of activity by
312
+ * instrument, or industry sector etc.) receive it and filter themselves to show data over
313
+ * the same range.
314
+ *
315
+ * Notes:
316
+ *
317
+ * - A `TimeRange` may be closed (i.e. `startTime` and `endTime` are both known) or open
318
+ * (i.e. only one of `startTime` or `endTime` is known).
319
+ * - Ranges corresponding to dates (e.g. `2022-05-12` to `2022-05-19`) should be specified
320
+ * using times as this prevents issues with timezone conversions and inclusive/exclusive
321
+ * date ranges.
322
+ * - String fields representing times are encoded according to [ISO
323
+ * 8601-1:2019](https://www.iso.org/standard/70907.html).
324
+ * - A timezone indicator should be specified, e.g. `"2022-05-12T15:18:03Z"` or
325
+ * `"2022-05-12T16:18:03+01:00"`
326
+ * - Times MAY be specified with millisecond precision, e.g. `"2022-05-12T15:18:03.349Z"`
327
+ */
78
328
  export interface TimeRangeObject {
329
+ /**
330
+ * The end time of the range, encoded according to [ISO
331
+ * 8601-1:2019](https://www.iso.org/standard/70907.html) with a timezone indicator.
332
+ */
79
333
  endTime?: Date;
334
+ /**
335
+ * The start time of the range, encoded according to [ISO
336
+ * 8601-1:2019](https://www.iso.org/standard/70907.html) with a timezone indicator.
337
+ */
80
338
  startTime?: Date;
81
- type: string;
339
+ type: "fdc3.timerange";
82
340
  id?: {
83
341
  [key: string]: any;
84
342
  };
85
343
  name?: string;
86
344
  [property: string]: any;
87
345
  }
88
- export declare enum Style {
89
- Bar = "bar",
90
- Candle = "candle",
91
- Custom = "custom",
92
- Heatmap = "heatmap",
93
- Histogram = "histogram",
94
- Line = "line",
95
- Mountain = "mountain",
96
- Pie = "pie",
97
- Scatter = "scatter",
98
- StackedBar = "stacked-bar"
99
- }
346
+ /**
347
+ * Free text to be used for a keyword search
348
+ *
349
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
350
+ * `'Meeting'` although other string values are permitted.
351
+ */
352
+ /**
353
+ * The type of chart that should be plotted
354
+ */
355
+ export declare type ChartStyle = "line" | "bar" | "stacked-bar" | "mountain" | "candle" | "pie" | "scatter" | "histogram" | "heatmap" | "custom";
356
+ /**
357
+ * Free text to be used for a keyword search
358
+ *
359
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
360
+ * `'Meeting'` although other string values are permitted.
361
+ */
362
+ /**
363
+ * A collection of settings to start a new chat conversation
364
+ */
100
365
  export interface ChatInitSettings {
366
+ /**
367
+ * Name to apply to the chat created
368
+ */
101
369
  chatName?: string;
370
+ /**
371
+ * Contacts to add to the chat
372
+ */
102
373
  members?: ContactListObject;
374
+ /**
375
+ * An initial message to post in the chat when created.
376
+ */
103
377
  message?: MessageObject | string;
104
- options?: Options;
105
- type: string;
378
+ /**
379
+ * Option settings that affect the creation of the chat
380
+ */
381
+ options?: ChatOptions;
382
+ type: "fdc3.chat.initSettings";
106
383
  id?: {
107
384
  [key: string]: any;
108
385
  };
109
386
  name?: string;
110
387
  [property: string]: any;
111
388
  }
389
+ /**
390
+ * Contacts to add to the chat
391
+ *
392
+ * A list of contacts involved in the interaction
393
+ *
394
+ * A collection of contacts, e.g. for chatting to or calling multiple contacts.
395
+ *
396
+ * The contact list schema does not explicitly include identifiers in the `id` section, as
397
+ * there is not a common standard for such identifiers. Applications can, however, populate
398
+ * this part of the contract with custom identifiers if so desired.
399
+ */
112
400
  export interface ContactListObject {
401
+ /**
402
+ * An array of contact contexts that forms the list.
403
+ */
113
404
  contacts: ContactElement[];
114
- type: string;
405
+ type: "fdc3.contactList";
115
406
  id?: {
116
407
  [key: string]: any;
117
408
  };
118
409
  name?: string;
119
410
  [property: string]: any;
120
411
  }
412
+ /**
413
+ * The contact that initiated the interaction
414
+ *
415
+ * A person contact that can be engaged with through email, calling, messaging, CMS, etc.
416
+ */
121
417
  export interface ContactElement {
122
- id: FluffyID;
123
- type: string;
418
+ /**
419
+ * Identifiers that relate to the Contact represented by this context
420
+ */
421
+ id: PurpleContactIdentifiers;
422
+ type: "fdc3.contact";
124
423
  name?: string;
125
424
  [property: string]: any;
126
425
  }
127
- export interface FluffyID {
426
+ /**
427
+ * Identifiers that relate to the Contact represented by this context
428
+ */
429
+ export interface PurpleContactIdentifiers {
430
+ /**
431
+ * The email address for the contact
432
+ */
128
433
  email?: string;
434
+ /**
435
+ * FactSet Permanent Identifier representing the contact
436
+ */
129
437
  FDS_ID?: string;
130
438
  [property: string]: any;
131
439
  }
440
+ /**
441
+ * Free text to be used for a keyword search
442
+ *
443
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
444
+ * `'Meeting'` although other string values are permitted.
445
+ */
446
+ /**
447
+ * Free text to be used for a keyword search
448
+ *
449
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
450
+ * `'Meeting'` although other string values are permitted.
451
+ */
452
+ /**
453
+ * A chat message to be sent through an instant messaging application. Can contain one or
454
+ * several text bodies (organized by mime-type, plaintext or markdown), as well as attached
455
+ * entities (either arbitrary file attachments or FDC3 actions to be embedded in the
456
+ * message). To be put inside a ChatInitSettings object.
457
+ */
132
458
  export interface MessageObject {
459
+ /**
460
+ * A map of string IDs to entities that should be attached to the message, such as an action
461
+ * to perform, a file attachment, or other FDC3 context object.
462
+ */
133
463
  entities?: {
134
464
  [key: string]: PurpleAction;
135
465
  };
136
- text?: PurpleText;
137
- type: string;
466
+ /**
467
+ * A map of string mime-type to string content
468
+ */
469
+ text?: PurpleMessageText;
470
+ type: "fdc3.message";
138
471
  id?: {
139
472
  [key: string]: any;
140
473
  };
141
474
  name?: string;
142
475
  [property: string]: any;
143
476
  }
477
+ /**
478
+ * A representation of an FDC3 Action (specified via a Context or Context & Intent) that can
479
+ * be inserted inside another object, for example a chat message.
480
+ *
481
+ * The action may be completed by calling `fdc3.raiseIntent()` with the specified Intent and
482
+ * Context, or, if only a context is specified, by calling `fdc3.raiseIntentForContext()`
483
+ * (which the Desktop Agent will resolve by presenting the user with a list of available
484
+ * Intents for the Context).
485
+ *
486
+ * Accepts an optional `app` parameter in order to specify a specific app.
487
+ *
488
+ * A File attachment encoded in the form of a data URI
489
+ */
144
490
  export interface PurpleAction {
145
- app?: EntityApp;
146
- context?: EntityContext;
147
- customConfig?: {
148
- [key: string]: any;
149
- };
150
491
  /**
151
- * A reference an intent type name, such as those defined in the FDC3 Standard
492
+ * An optional target application identifier that should perform the action
493
+ */
494
+ app?: ActionTargetApp;
495
+ /**
496
+ * A context object with which the action will be performed
497
+ */
498
+ context?: ContextElement;
499
+ /**
500
+ * Optional Intent to raise to perform the actions. Should reference an intent type name,
501
+ * such as those defined in the FDC3 Standard. If intent is not set then
502
+ * `fdc3.raiseIntentForContext` should be used to perform the action as this will usually
503
+ * allow the user to choose the intent to raise.
152
504
  */
153
505
  intent?: string;
506
+ /**
507
+ * A human readable display name for the action
508
+ */
154
509
  title?: string;
155
- type: any;
510
+ type: EntityType;
156
511
  id?: {
157
512
  [key: string]: any;
158
513
  };
@@ -160,244 +515,838 @@ export interface PurpleAction {
160
515
  data?: PurpleData;
161
516
  [property: string]: any;
162
517
  }
163
- export interface EntityApp {
164
- appId: string;
165
- instanceId?: string;
166
- [property: string]: any;
167
- }
168
- export interface EntityContext {
169
- id?: {
170
- [key: string]: any;
171
- };
172
- name?: string;
173
- type: string;
174
- [property: string]: any;
175
- }
176
518
  export interface PurpleData {
519
+ /**
520
+ * A data URI encoding the content of the file to be attached
521
+ */
177
522
  dataUri: string;
523
+ /**
524
+ * The name of the attached file
525
+ */
178
526
  name: string;
179
527
  [property: string]: any;
180
528
  }
181
- export interface PurpleText {
182
- 'text/markdown'?: string;
183
- 'text/plain'?: string;
529
+ /**
530
+ * Free text to be used for a keyword search
531
+ *
532
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
533
+ * `'Meeting'` although other string values are permitted.
534
+ */
535
+ export declare type EntityType = "fdc3.action" | "fdc3.entity.fileAttachment";
536
+ /**
537
+ * A map of string mime-type to string content
538
+ */
539
+ export interface PurpleMessageText {
540
+ /**
541
+ * Markdown encoded content
542
+ */
543
+ "text/markdown"?: string;
544
+ /**
545
+ * Plain text encoded content.
546
+ */
547
+ "text/plain"?: string;
184
548
  [property: string]: any;
185
549
  }
186
- export interface Options {
550
+ /**
551
+ * Free text to be used for a keyword search
552
+ *
553
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
554
+ * `'Meeting'` although other string values are permitted.
555
+ */
556
+ /**
557
+ * Option settings that affect the creation of the chat
558
+ */
559
+ export interface ChatOptions {
560
+ /**
561
+ * if true members will be allowed to add other members to the chat
562
+ */
187
563
  allowAddUser?: boolean;
564
+ /**
565
+ * if true members will be allowed to browse past messages
566
+ */
188
567
  allowHistoryBrowsing?: boolean;
568
+ /**
569
+ * if true members will be allowed to copy/paste messages
570
+ */
189
571
  allowMessageCopy?: boolean;
572
+ /**
573
+ * if false a separate chat will be created for each member
574
+ */
190
575
  groupRecipients?: boolean;
576
+ /**
577
+ * if true the room will be visible to everyone in the chat application
578
+ */
191
579
  isPublic?: boolean;
192
580
  [property: string]: any;
193
581
  }
582
+ /**
583
+ * Free text to be used for a keyword search
584
+ *
585
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
586
+ * `'Meeting'` although other string values are permitted.
587
+ */
588
+ /**
589
+ * A context representing a chat message. Typically used to send the message or to
590
+ * pre-populate a message for sending.
591
+ */
194
592
  export interface ChatMessage {
195
593
  chatRoom: ChatRoomObject;
196
594
  message: MessageObject;
197
- type: string;
595
+ type: "fdc3.chat.message";
198
596
  id?: {
199
597
  [key: string]: any;
200
598
  };
201
599
  name?: string;
202
600
  [property: string]: any;
203
601
  }
602
+ /**
603
+ * Reference to the chat room which could be used to send a message to the room
604
+ */
204
605
  export interface ChatRoomObject {
606
+ /**
607
+ * Identifier(s) for the chat - currently unstandardized
608
+ */
205
609
  id: {
206
610
  [key: string]: any;
207
611
  };
612
+ /**
613
+ * Display name for the chat room
614
+ */
208
615
  name?: string;
616
+ /**
617
+ * The name of the service that hosts the chat
618
+ */
209
619
  providerName: string;
210
- type: string;
620
+ type: "fdc3.chat.room";
621
+ /**
622
+ * Universal url to access to the room. It could be opened from a browser, a mobile app,
623
+ * etc...
624
+ */
211
625
  url?: string;
212
626
  [property: string]: any;
213
627
  }
628
+ /**
629
+ * Free text to be used for a keyword search
630
+ *
631
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
632
+ * `'Meeting'` although other string values are permitted.
633
+ */
634
+ /**
635
+ * Free text to be used for a keyword search
636
+ *
637
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
638
+ * `'Meeting'` although other string values are permitted.
639
+ */
640
+ /**
641
+ * Reference to the chat room which could be used to send a message to the room
642
+ */
214
643
  export interface ChatRoom {
644
+ /**
645
+ * Identifier(s) for the chat - currently unstandardized
646
+ */
215
647
  id: {
216
648
  [key: string]: any;
217
649
  };
650
+ /**
651
+ * Display name for the chat room
652
+ */
218
653
  name?: string;
654
+ /**
655
+ * The name of the service that hosts the chat
656
+ */
219
657
  providerName: string;
220
- type: string;
658
+ type: "fdc3.chat.room";
659
+ /**
660
+ * Universal url to access to the room. It could be opened from a browser, a mobile app,
661
+ * etc...
662
+ */
221
663
  url?: string;
222
664
  [property: string]: any;
223
665
  }
666
+ /**
667
+ * A context type that represents a simple search criterion, based on a list of other
668
+ * context objects, that can be used to search or filter messages in a chat application.
669
+ */
224
670
  export interface ChatSearchCriteria {
671
+ /**
672
+ * An array of criteria that should match chats returned from by a search.
673
+ *
674
+ * ⚠️ Operators (and/or/not) are not defined in `fdc3.chat.searchCriteria`. It is up to the
675
+ * application that processes the FDC3 Intent to choose and apply the operators between the
676
+ * criteria.
677
+ *
678
+ * Empty search criteria can be supported to allow resetting of filters.
679
+ */
225
680
  criteria: Array<OrganizationObject | string>;
226
- type: string;
681
+ type: "fdc3.chat.searchCriteria";
227
682
  id?: {
228
683
  [key: string]: any;
229
684
  };
230
685
  name?: string;
231
686
  [property: string]: any;
232
687
  }
688
+ /**
689
+ * financial instrument that relates to the definition of this product
690
+ *
691
+ *
692
+ *
693
+ * A financial instrument from any asset class.
694
+ *
695
+ * An entity that can be used when referencing private companies and other organizations
696
+ * where a specific instrument is not available or desired e.g. CRM and News workflows.
697
+ *
698
+ * It is valid to include extra properties and metadata as part of the organization payload,
699
+ * but the minimum requirement is for at least one specified identifier to be provided.
700
+ *
701
+ * The contact that initiated the interaction
702
+ *
703
+ * A person contact that can be engaged with through email, calling, messaging, CMS, etc.
704
+ */
233
705
  export interface OrganizationObject {
234
- id: TentacledID;
706
+ /**
707
+ * Any combination of instrument identifiers can be used together to resolve ambiguity, or
708
+ * for a better match. Not all applications will use the same instrument identifiers, which
709
+ * is why FDC3 allows for multiple to be specified. In general, the more identifiers an
710
+ * application can provide, the easier it will be to achieve interoperability.
711
+ *
712
+ * It is valid to include extra properties and metadata as part of the instrument payload,
713
+ * but the minimum requirement is for at least one instrument identifier to be provided.
714
+ *
715
+ * Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant
716
+ * for tickers as used by an exchange.
717
+ * If the identifier you want to share is not a ticker or one of the other standardized
718
+ * fields, define a property that makes it clear what the value represents. Doing so will
719
+ * make interpretation easier for the developers of target applications.
720
+ *
721
+ * Identifiers for the organization, at least one must be provided.
722
+ *
723
+ * Identifiers that relate to the Contact represented by this context
724
+ */
725
+ id: Identifiers;
726
+ /**
727
+ * The `market` map can be used to further specify the instrument and help achieve
728
+ * interoperability between disparate data sources. This is especially useful when using an
729
+ * `id` field that is not globally unique.
730
+ */
235
731
  market?: OrganizationMarket;
236
- type: string;
732
+ type: TentacledInteractionType;
237
733
  name?: string;
238
734
  [property: string]: any;
239
735
  }
240
- export interface TentacledID {
736
+ /**
737
+ * Any combination of instrument identifiers can be used together to resolve ambiguity, or
738
+ * for a better match. Not all applications will use the same instrument identifiers, which
739
+ * is why FDC3 allows for multiple to be specified. In general, the more identifiers an
740
+ * application can provide, the easier it will be to achieve interoperability.
741
+ *
742
+ * It is valid to include extra properties and metadata as part of the instrument payload,
743
+ * but the minimum requirement is for at least one instrument identifier to be provided.
744
+ *
745
+ * Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant
746
+ * for tickers as used by an exchange.
747
+ * If the identifier you want to share is not a ticker or one of the other standardized
748
+ * fields, define a property that makes it clear what the value represents. Doing so will
749
+ * make interpretation easier for the developers of target applications.
750
+ *
751
+ * Identifiers for the organization, at least one must be provided.
752
+ *
753
+ * Identifiers that relate to the Contact represented by this context
754
+ */
755
+ export interface Identifiers {
756
+ /**
757
+ * <https://www.bloomberg.com/>
758
+ */
241
759
  BBG?: string;
760
+ /**
761
+ * <https://www.cusip.com/>
762
+ */
242
763
  CUSIP?: string;
764
+ /**
765
+ * <https://www.factset.com/>
766
+ *
767
+ * FactSet Permanent Identifier representing the organization
768
+ *
769
+ * FactSet Permanent Identifier representing the contact
770
+ */
243
771
  FDS_ID?: string;
772
+ /**
773
+ * <https://www.openfigi.com/>
774
+ */
244
775
  FIGI?: string;
776
+ /**
777
+ * <https://www.isin.org/>
778
+ */
245
779
  ISIN?: string;
780
+ /**
781
+ * <https://permid.org/>
782
+ *
783
+ * Refinitiv Permanent Identifiers, or PermID for the organization
784
+ */
246
785
  PERMID?: string;
786
+ /**
787
+ * <https://www.refinitiv.com/>
788
+ */
247
789
  RIC?: string;
790
+ /**
791
+ * <https://www.lseg.com/sedol>
792
+ */
248
793
  SEDOL?: string;
794
+ /**
795
+ * Unstandardized stock tickers
796
+ */
249
797
  ticker?: string;
798
+ /**
799
+ * The Legal Entity Identifier (LEI) is a 20-character, alpha-numeric code based on the ISO
800
+ * 17442 standard developed by the International Organization for Standardization (ISO). It
801
+ * connects to key reference information that enables clear and unique identification of
802
+ * legal entities participating in financial transactions.
803
+ */
250
804
  LEI?: string;
805
+ /**
806
+ * The email address for the contact
807
+ */
251
808
  email?: string;
252
809
  [property: string]: any;
253
810
  }
811
+ /**
812
+ * Free text to be used for a keyword search
813
+ *
814
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
815
+ * `'Meeting'` although other string values are permitted.
816
+ */
817
+ export declare type TentacledInteractionType = "fdc3.instrument" | "fdc3.organization" | "fdc3.contact";
818
+ /**
819
+ * Free text to be used for a keyword search
820
+ *
821
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
822
+ * `'Meeting'` although other string values are permitted.
823
+ */
824
+ /**
825
+ * A person contact that can be engaged with through email, calling, messaging, CMS, etc.
826
+ */
254
827
  export interface Contact {
255
- id: StickyID;
256
- type: string;
828
+ /**
829
+ * Identifiers that relate to the Contact represented by this context
830
+ */
831
+ id: FluffyContactIdentifiers;
832
+ type: "fdc3.contact";
257
833
  name?: string;
258
834
  [property: string]: any;
259
835
  }
260
- export interface StickyID {
836
+ /**
837
+ * Identifiers that relate to the Contact represented by this context
838
+ */
839
+ export interface FluffyContactIdentifiers {
840
+ /**
841
+ * The email address for the contact
842
+ */
261
843
  email?: string;
844
+ /**
845
+ * FactSet Permanent Identifier representing the contact
846
+ */
262
847
  FDS_ID?: string;
263
848
  [property: string]: any;
264
849
  }
850
+ /**
851
+ * A collection of contacts, e.g. for chatting to or calling multiple contacts.
852
+ *
853
+ * The contact list schema does not explicitly include identifiers in the `id` section, as
854
+ * there is not a common standard for such identifiers. Applications can, however, populate
855
+ * this part of the contract with custom identifiers if so desired.
856
+ */
265
857
  export interface ContactList {
858
+ /**
859
+ * An array of contact contexts that forms the list.
860
+ */
266
861
  contacts: ContactElement[];
267
- type: string;
862
+ type: "fdc3.contactList";
268
863
  id?: {
269
864
  [key: string]: any;
270
865
  };
271
866
  name?: string;
272
867
  [property: string]: any;
273
868
  }
869
+ /**
870
+ * The `fdc3.context` type defines the basic contract or "shape" for all data exchanged by
871
+ * FDC3 operations. As such, it is not really meant to be used on its own, but is imported
872
+ * by more specific type definitions (standardized or custom) to provide the structure and
873
+ * properties shared by all FDC3 context data types.
874
+ *
875
+ * The key element of FDC3 context types is their mandatory `type` property, which is used
876
+ * to identify what type of data the object represents, and what shape it has.
877
+ *
878
+ * The FDC3 context type, and all derived types, define the minimum set of fields a context
879
+ * data object of a particular type can be expected to have, but this can always be extended
880
+ * with custom fields as appropriate.
881
+ */
274
882
  export interface Context {
883
+ /**
884
+ * Context data objects may include a set of equivalent key-value pairs that can be used to
885
+ * help applications identify and look up the context type they receive in their own domain.
886
+ * The idea behind this design is that applications can provide as many equivalent
887
+ * identifiers to a target application as possible, e.g. an instrument may be represented by
888
+ * an ISIN, CUSIP or Bloomberg identifier.
889
+ *
890
+ * Identifiers do not make sense for all types of data, so the `id` property is therefore
891
+ * optional, but some derived types may choose to require at least one identifier.
892
+ * Identifier values SHOULD always be of type string.
893
+ */
275
894
  id?: {
276
895
  [key: string]: any;
277
896
  };
897
+ /**
898
+ * Context data objects may include a name property that can be used for more information,
899
+ * or display purposes. Some derived types may require the name object as mandatory,
900
+ * depending on use case.
901
+ */
278
902
  name?: string;
903
+ /**
904
+ * The type property is the only _required_ part of the FDC3 context data schema. The FDC3
905
+ * [API](https://fdc3.finos.org/docs/api/spec) relies on the `type` property being present
906
+ * to route shared context data appropriately.
907
+ *
908
+ * FDC3 [Intents](https://fdc3.finos.org/docs/intents/spec) also register the context data
909
+ * types they support in an FDC3 [App
910
+ * Directory](https://fdc3.finos.org/docs/app-directory/overview), used for intent discovery
911
+ * and routing.
912
+ *
913
+ * Standardized FDC3 context types have well-known `type` properties prefixed with the
914
+ * `fdc3` namespace, e.g. `fdc3.instrument`. For non-standard types, e.g. those defined and
915
+ * used by a particular organization, the convention is to prefix them with an
916
+ * organization-specific namespace, e.g. `blackrock.fund`.
917
+ *
918
+ * See the [Context Data Specification](https://fdc3.finos.org/docs/context/spec) for more
919
+ * information about context data types.
920
+ */
279
921
  type: string;
280
922
  [property: string]: any;
281
923
  }
924
+ /**
925
+ * A country entity.
926
+ *
927
+ * Notes:
928
+ *
929
+ * - It is valid to include extra properties and metadata as part of the country payload,
930
+ * but the minimum requirement is for at least one standardized identifier to be provided
931
+ *
932
+ * - `COUNTRY_ISOALPHA2` SHOULD be preferred.
933
+ *
934
+ * - Try to only use country identifiers as intended and specified in the [ISO
935
+ * standard](https://en.wikipedia.org/wiki/ISO_3166-1). E.g. the `COUNTRY_ISOALPHA2`
936
+ * property must be a recognized value and not a proprietary two-letter code. If the
937
+ * identifier you want to share is not a standardized and recognized one, rather define a
938
+ * property that makes it clear what value it is. This makes it easier for target
939
+ * applications.
940
+ */
282
941
  export interface Country {
283
942
  id: CountryID;
284
- type: string;
943
+ type: "fdc3.country";
285
944
  name?: string;
286
945
  [property: string]: any;
287
946
  }
288
947
  export interface CountryID {
948
+ /**
949
+ * Two-letter ISO country code
950
+ */
289
951
  COUNTRY_ISOALPHA2?: string;
952
+ /**
953
+ * Three-letter ISO country code
954
+ */
290
955
  COUNTRY_ISOALPHA3?: string;
956
+ /**
957
+ * Two-letter ISO country code. Deprecated in FDC3 2.0 in favour of the version prefixed
958
+ * with `COUNTRY_`.
959
+ */
291
960
  ISOALPHA2?: string;
961
+ /**
962
+ * Three-letter ISO country code. Deprecated in FDC3 2.0 in favour of the version prefixed
963
+ * with `COUNTRY_`.
964
+ */
292
965
  ISOALPHA3?: string;
293
966
  [property: string]: any;
294
967
  }
968
+ /**
969
+ * Free text to be used for a keyword search
970
+ *
971
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
972
+ * `'Meeting'` although other string values are permitted.
973
+ */
974
+ /**
975
+ * A context representing an individual Currency.
976
+ */
295
977
  export interface Currency {
296
978
  id: CurrencyID;
979
+ /**
980
+ * The name of the currency for display purposes
981
+ */
297
982
  name?: string;
298
- type: string;
983
+ type: "fdc3.currency";
299
984
  [property: string]: any;
300
985
  }
301
986
  export interface CurrencyID {
987
+ /**
988
+ * The `CURRENCY_ISOCODE` should conform to 3 character alphabetic codes defined in [ISO
989
+ * 4217](https://www.iso.org/iso-4217-currency-codes.html)
990
+ */
302
991
  CURRENCY_ISOCODE?: string;
303
992
  [property: string]: any;
304
993
  }
994
+ /**
995
+ * Free text to be used for a keyword search
996
+ *
997
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
998
+ * `'Meeting'` although other string values are permitted.
999
+ */
1000
+ /**
1001
+ * A collection of information to be used to initiate an email with a Contact or ContactList.
1002
+ */
305
1003
  export interface Email {
306
- recipients: RecipientsObject;
1004
+ /**
1005
+ * One or more receipients for the email.
1006
+ */
1007
+ recipients: EmailRecipients;
1008
+ /**
1009
+ * Subject line for the email.
1010
+ */
307
1011
  subject?: string;
1012
+ /**
1013
+ * Body content for the email.
1014
+ */
308
1015
  textBody?: string;
309
- type: string;
1016
+ type: "fdc3.email";
310
1017
  id?: {
311
1018
  [key: string]: any;
312
1019
  };
313
1020
  name?: string;
314
1021
  [property: string]: any;
315
1022
  }
316
- export interface RecipientsObject {
317
- id?: RecipientsID;
318
- type: string;
1023
+ /**
1024
+ * One or more receipients for the email.
1025
+ *
1026
+ * The contact that initiated the interaction
1027
+ *
1028
+ * A person contact that can be engaged with through email, calling, messaging, CMS, etc.
1029
+ *
1030
+ * Contacts to add to the chat
1031
+ *
1032
+ * A list of contacts involved in the interaction
1033
+ *
1034
+ * A collection of contacts, e.g. for chatting to or calling multiple contacts.
1035
+ *
1036
+ * The contact list schema does not explicitly include identifiers in the `id` section, as
1037
+ * there is not a common standard for such identifiers. Applications can, however, populate
1038
+ * this part of the contract with custom identifiers if so desired.
1039
+ */
1040
+ export interface EmailRecipients {
1041
+ /**
1042
+ * Identifiers that relate to the Contact represented by this context
1043
+ */
1044
+ id?: EmailRecipientsID;
1045
+ type: EmailRecipientsType;
319
1046
  name?: string;
1047
+ /**
1048
+ * An array of contact contexts that forms the list.
1049
+ */
320
1050
  contacts?: ContactElement[];
321
1051
  [property: string]: any;
322
1052
  }
323
- export interface RecipientsID {
1053
+ /**
1054
+ * Identifiers that relate to the Contact represented by this context
1055
+ */
1056
+ export interface EmailRecipientsID {
1057
+ /**
1058
+ * The email address for the contact
1059
+ */
324
1060
  email?: string;
1061
+ /**
1062
+ * FactSet Permanent Identifier representing the contact
1063
+ */
325
1064
  FDS_ID?: string;
326
1065
  [property: string]: any;
327
1066
  }
1067
+ /**
1068
+ * Free text to be used for a keyword search
1069
+ *
1070
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1071
+ * `'Meeting'` although other string values are permitted.
1072
+ */
1073
+ export declare type EmailRecipientsType = "fdc3.contact" | "fdc3.contactList";
1074
+ /**
1075
+ * Free text to be used for a keyword search
1076
+ *
1077
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1078
+ * `'Meeting'` although other string values are permitted.
1079
+ */
1080
+ /**
1081
+ * A financial instrument from any asset class.
1082
+ */
328
1083
  export interface Instrument {
329
- id: IndigoID;
1084
+ /**
1085
+ * Any combination of instrument identifiers can be used together to resolve ambiguity, or
1086
+ * for a better match. Not all applications will use the same instrument identifiers, which
1087
+ * is why FDC3 allows for multiple to be specified. In general, the more identifiers an
1088
+ * application can provide, the easier it will be to achieve interoperability.
1089
+ *
1090
+ * It is valid to include extra properties and metadata as part of the instrument payload,
1091
+ * but the minimum requirement is for at least one instrument identifier to be provided.
1092
+ *
1093
+ * Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant
1094
+ * for tickers as used by an exchange.
1095
+ * If the identifier you want to share is not a ticker or one of the other standardized
1096
+ * fields, define a property that makes it clear what the value represents. Doing so will
1097
+ * make interpretation easier for the developers of target applications.
1098
+ */
1099
+ id: FluffyInstrumentIdentifiers;
1100
+ /**
1101
+ * The `market` map can be used to further specify the instrument and help achieve
1102
+ * interoperability between disparate data sources. This is especially useful when using an
1103
+ * `id` field that is not globally unique.
1104
+ */
330
1105
  market?: PurpleMarket;
331
- type: string;
1106
+ type: "fdc3.instrument";
332
1107
  name?: string;
333
1108
  [property: string]: any;
334
1109
  }
335
- export interface IndigoID {
1110
+ /**
1111
+ * Any combination of instrument identifiers can be used together to resolve ambiguity, or
1112
+ * for a better match. Not all applications will use the same instrument identifiers, which
1113
+ * is why FDC3 allows for multiple to be specified. In general, the more identifiers an
1114
+ * application can provide, the easier it will be to achieve interoperability.
1115
+ *
1116
+ * It is valid to include extra properties and metadata as part of the instrument payload,
1117
+ * but the minimum requirement is for at least one instrument identifier to be provided.
1118
+ *
1119
+ * Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant
1120
+ * for tickers as used by an exchange.
1121
+ * If the identifier you want to share is not a ticker or one of the other standardized
1122
+ * fields, define a property that makes it clear what the value represents. Doing so will
1123
+ * make interpretation easier for the developers of target applications.
1124
+ */
1125
+ export interface FluffyInstrumentIdentifiers {
1126
+ /**
1127
+ * <https://www.bloomberg.com/>
1128
+ */
336
1129
  BBG?: string;
1130
+ /**
1131
+ * <https://www.cusip.com/>
1132
+ */
337
1133
  CUSIP?: string;
1134
+ /**
1135
+ * <https://www.factset.com/>
1136
+ */
338
1137
  FDS_ID?: string;
1138
+ /**
1139
+ * <https://www.openfigi.com/>
1140
+ */
339
1141
  FIGI?: string;
1142
+ /**
1143
+ * <https://www.isin.org/>
1144
+ */
340
1145
  ISIN?: string;
1146
+ /**
1147
+ * <https://permid.org/>
1148
+ */
341
1149
  PERMID?: string;
1150
+ /**
1151
+ * <https://www.refinitiv.com/>
1152
+ */
342
1153
  RIC?: string;
1154
+ /**
1155
+ * <https://www.lseg.com/sedol>
1156
+ */
343
1157
  SEDOL?: string;
1158
+ /**
1159
+ * Unstandardized stock tickers
1160
+ */
344
1161
  ticker?: string;
345
1162
  [property: string]: any;
346
1163
  }
1164
+ /**
1165
+ * The `market` map can be used to further specify the instrument and help achieve
1166
+ * interoperability between disparate data sources. This is especially useful when using an
1167
+ * `id` field that is not globally unique.
1168
+ */
347
1169
  export interface PurpleMarket {
1170
+ /**
1171
+ * <https://www.bloomberg.com/>
1172
+ */
348
1173
  BBG?: string;
1174
+ /**
1175
+ * <https://www.iso.org/iso-3166-country-codes.html>
1176
+ */
349
1177
  COUNTRY_ISOALPHA2?: string;
1178
+ /**
1179
+ * <https://en.wikipedia.org/wiki/Market_Identifier_Code>
1180
+ */
350
1181
  MIC?: string;
1182
+ /**
1183
+ * Human readable market name
1184
+ */
351
1185
  name?: string;
352
1186
  [property: string]: any;
353
1187
  }
1188
+ /**
1189
+ * A collection of instruments. Use this type for use cases that require not just a single
1190
+ * instrument, but multiple (e.g. to populate a watchlist). However, when holding
1191
+ * information for each instrument is required, it is recommended to use the
1192
+ * [Portfolio](Portfolio) type.
1193
+ *
1194
+ * The instrument list schema does not explicitly include identifiers in the `id` section,
1195
+ * as there is not a common standard for such identifiers. Applications can, however,
1196
+ * populate this part of the contract with custom identifiers if so desired.
1197
+ */
354
1198
  export interface InstrumentList {
1199
+ /**
1200
+ * An array of instrument contexts that forms the list.
1201
+ */
355
1202
  instruments: InstrumentElement[];
356
- type: string;
1203
+ type: "fdc3.instrumentList";
357
1204
  id?: {
358
1205
  [key: string]: any;
359
1206
  };
360
1207
  name?: string;
361
1208
  [property: string]: any;
362
1209
  }
1210
+ /**
1211
+ * Free text to be used for a keyword search
1212
+ *
1213
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1214
+ * `'Meeting'` although other string values are permitted.
1215
+ */
1216
+ /**
1217
+ * An `Interaction` is a significant direct exchange of ideas or information between a
1218
+ * number of participants, e.g. a Sell Side party and one or more Buy Side parties. An
1219
+ * `Interaction` might be a call, a meeting (physical or virtual), an IM or the preparation
1220
+ * of some specialist data, such as financial data for a given company or sector.
1221
+ */
363
1222
  export interface Interaction {
1223
+ /**
1224
+ * A human-readable description of the interaction
1225
+ */
364
1226
  description: string;
1227
+ /**
1228
+ * Can be used by a target application to pass an identifier back to the originating
1229
+ * application after an interaction record has been created, updated or deleted. An
1230
+ * interaction ID does not need to be populated by the originating application, however the
1231
+ * target application could store it for future reference and SHOULD return it in a
1232
+ * `TransactionResult`.
1233
+ */
1234
+ id?: InteractionID;
1235
+ /**
1236
+ * The contact that initiated the interaction
1237
+ */
365
1238
  initiator?: ContactElement;
1239
+ /**
1240
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1241
+ * `'Meeting'` although other string values are permitted.
1242
+ */
366
1243
  interactionType: string;
1244
+ /**
1245
+ * Used to represent the application or service that the interaction was created from to aid
1246
+ * in tracing the source of an interaction.
1247
+ */
367
1248
  origin?: string;
1249
+ /**
1250
+ * A list of contacts involved in the interaction
1251
+ */
368
1252
  participants: ContactListObject;
1253
+ /**
1254
+ * The time range over which the interaction occurred
1255
+ */
369
1256
  timeRange: TimeRangeObject;
370
- type: string;
371
- id?: {
372
- [key: string]: any;
373
- };
1257
+ type: "fdc3.interaction";
374
1258
  name?: string;
375
1259
  [property: string]: any;
376
1260
  }
1261
+ /**
1262
+ * Can be used by a target application to pass an identifier back to the originating
1263
+ * application after an interaction record has been created, updated or deleted. An
1264
+ * interaction ID does not need to be populated by the originating application, however the
1265
+ * target application could store it for future reference and SHOULD return it in a
1266
+ * `TransactionResult`.
1267
+ */
1268
+ export interface InteractionID {
1269
+ /**
1270
+ * Interactions ID in Salesforce
1271
+ */
1272
+ SALESFORCE?: string;
1273
+ /**
1274
+ * Interaction ID in SingleTrack
1275
+ */
1276
+ SINGLETRACK?: string;
1277
+ /**
1278
+ * Can be used by a target application to pass a record's link back to the originating
1279
+ * application. This offers the originating application a way to open the record for a user
1280
+ * to view.
1281
+ */
1282
+ URI?: string;
1283
+ [property: string]: any;
1284
+ }
1285
+ /**
1286
+ * Free text to be used for a keyword search
1287
+ *
1288
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1289
+ * `'Meeting'` although other string values are permitted.
1290
+ */
1291
+ /**
1292
+ * A chat message to be sent through an instant messaging application. Can contain one or
1293
+ * several text bodies (organized by mime-type, plaintext or markdown), as well as attached
1294
+ * entities (either arbitrary file attachments or FDC3 actions to be embedded in the
1295
+ * message). To be put inside a ChatInitSettings object.
1296
+ */
377
1297
  export interface Message {
1298
+ /**
1299
+ * A map of string IDs to entities that should be attached to the message, such as an action
1300
+ * to perform, a file attachment, or other FDC3 context object.
1301
+ */
378
1302
  entities?: {
379
1303
  [key: string]: FluffyAction;
380
1304
  };
381
- text?: FluffyText;
382
- type: string;
1305
+ /**
1306
+ * A map of string mime-type to string content
1307
+ */
1308
+ text?: FluffyMessageText;
1309
+ type: "fdc3.message";
383
1310
  id?: {
384
1311
  [key: string]: any;
385
1312
  };
386
1313
  name?: string;
387
1314
  [property: string]: any;
388
1315
  }
1316
+ /**
1317
+ * A representation of an FDC3 Action (specified via a Context or Context & Intent) that can
1318
+ * be inserted inside another object, for example a chat message.
1319
+ *
1320
+ * The action may be completed by calling `fdc3.raiseIntent()` with the specified Intent and
1321
+ * Context, or, if only a context is specified, by calling `fdc3.raiseIntentForContext()`
1322
+ * (which the Desktop Agent will resolve by presenting the user with a list of available
1323
+ * Intents for the Context).
1324
+ *
1325
+ * Accepts an optional `app` parameter in order to specify a specific app.
1326
+ *
1327
+ * A File attachment encoded in the form of a data URI
1328
+ */
389
1329
  export interface FluffyAction {
390
- app?: EntityApp;
391
- context?: EntityContext;
392
- customConfig?: {
393
- [key: string]: any;
394
- };
395
1330
  /**
396
- * A reference an intent type name, such as those defined in the FDC3 Standard
1331
+ * An optional target application identifier that should perform the action
1332
+ */
1333
+ app?: ActionTargetApp;
1334
+ /**
1335
+ * A context object with which the action will be performed
1336
+ */
1337
+ context?: ContextElement;
1338
+ /**
1339
+ * Optional Intent to raise to perform the actions. Should reference an intent type name,
1340
+ * such as those defined in the FDC3 Standard. If intent is not set then
1341
+ * `fdc3.raiseIntentForContext` should be used to perform the action as this will usually
1342
+ * allow the user to choose the intent to raise.
397
1343
  */
398
1344
  intent?: string;
1345
+ /**
1346
+ * A human readable display name for the action
1347
+ */
399
1348
  title?: string;
400
- type: any;
1349
+ type: EntityType;
401
1350
  id?: {
402
1351
  [key: string]: any;
403
1352
  };
@@ -406,23 +1355,58 @@ export interface FluffyAction {
406
1355
  [property: string]: any;
407
1356
  }
408
1357
  export interface FluffyData {
1358
+ /**
1359
+ * A data URI encoding the content of the file to be attached
1360
+ */
409
1361
  dataUri: string;
1362
+ /**
1363
+ * The name of the attached file
1364
+ */
410
1365
  name: string;
411
1366
  [property: string]: any;
412
1367
  }
413
- export interface FluffyText {
414
- 'text/markdown'?: string;
415
- 'text/plain'?: string;
1368
+ /**
1369
+ * A map of string mime-type to string content
1370
+ */
1371
+ export interface FluffyMessageText {
1372
+ /**
1373
+ * Markdown encoded content
1374
+ */
1375
+ "text/markdown"?: string;
1376
+ /**
1377
+ * Plain text encoded content.
1378
+ */
1379
+ "text/plain"?: string;
416
1380
  [property: string]: any;
417
1381
  }
1382
+ /**
1383
+ * A type that explicitly represents a lack of context.
1384
+ *
1385
+ * Notes:
1386
+ *
1387
+ * - Intended to be used in situations where no context is desired.
1388
+ * - For example:
1389
+ * - Raising an intent without context (e.g. opening a blank order form, or chat interface
1390
+ * without a contact selected).
1391
+ * - Resetting context on a channel (e.g. when context is used to set a filter in other
1392
+ * applications a null context might release the filter).
1393
+ * - An explicit representation of a Null or empty context allows apps to declare support
1394
+ * for a lack of context, for example in their intent metadata in an app directory.
1395
+ */
418
1396
  export interface Nothing {
419
- type: string;
1397
+ type: "fdc3.nothing";
420
1398
  id?: {
421
1399
  [key: string]: any;
422
1400
  };
423
1401
  name?: string;
424
1402
  [property: string]: any;
425
1403
  }
1404
+ /**
1405
+ * Free text to be used for a keyword search
1406
+ *
1407
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1408
+ * `'Meeting'` although other string values are permitted.
1409
+ */
426
1410
  /**
427
1411
  * @experimental context type representing an order. To be used with OMS and EMS systems.
428
1412
  *
@@ -451,7 +1435,7 @@ export interface Order {
451
1435
  * An optional human-readable summary of the order.
452
1436
  */
453
1437
  name?: string;
454
- type: string;
1438
+ type: "fdc3.order";
455
1439
  [property: string]: any;
456
1440
  }
457
1441
  /**
@@ -463,11 +1447,17 @@ export interface PurpleOrderDetails {
463
1447
  [property: string]: any;
464
1448
  }
465
1449
  /**
1450
+ * A product that is the subject of the trade.
1451
+ *
466
1452
  * @experimental context type representing a tradable product. To be used with OMS and EMS
467
1453
  * systems.
468
1454
  *
469
1455
  * This type is currently only loosely defined as an extensible context object, with an
470
1456
  * optional instrument field.
1457
+ *
1458
+ * The Product schema does not explicitly include identifiers in the id section, as there is
1459
+ * not a common standard for such identifiers. Applications can, however, populate this part
1460
+ * of the contract with custom identifiers if so desired.
471
1461
  */
472
1462
  export interface ProductObject {
473
1463
  /**
@@ -477,20 +1467,43 @@ export interface ProductObject {
477
1467
  id: {
478
1468
  [key: string]: string;
479
1469
  };
1470
+ /**
1471
+ * financial instrument that relates to the definition of this product
1472
+ */
1473
+ instrument?: InstrumentElement;
480
1474
  /**
481
1475
  * A human-readable summary of the product.
482
1476
  */
483
1477
  name?: string;
484
- type: string;
485
- instrument?: InstrumentElement;
1478
+ type: "fdc3.product";
486
1479
  [property: string]: any;
487
1480
  }
488
1481
  /**
489
- * @experimental A list of orders
1482
+ * Free text to be used for a keyword search
1483
+ *
1484
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1485
+ * `'Meeting'` although other string values are permitted.
1486
+ */
1487
+ /**
1488
+ * Free text to be used for a keyword search
1489
+ *
1490
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1491
+ * `'Meeting'` although other string values are permitted.
1492
+ */
1493
+ /**
1494
+ * @experimental A list of orders. Use this type for use cases that require not just a
1495
+ * single order, but multiple.
1496
+ *
1497
+ * The OrderList schema does not explicitly include identifiers in the id section, as there
1498
+ * is not a common standard for such identifiers. Applications can, however, populate this
1499
+ * part of the contract with custom identifiers if so desired.
490
1500
  */
491
1501
  export interface OrderList {
1502
+ /**
1503
+ * An array of order contexts that forms the list.
1504
+ */
492
1505
  orders: OrderElement[];
493
- type: string;
1506
+ type: "fdc3.orderList";
494
1507
  id?: {
495
1508
  [key: string]: any;
496
1509
  };
@@ -525,7 +1538,7 @@ export interface OrderElement {
525
1538
  * An optional human-readable summary of the order.
526
1539
  */
527
1540
  name?: string;
528
- type: string;
1541
+ type: "fdc3.order";
529
1542
  [property: string]: any;
530
1543
  }
531
1544
  /**
@@ -536,41 +1549,142 @@ export interface FluffyOrderDetails {
536
1549
  product?: ProductObject;
537
1550
  [property: string]: any;
538
1551
  }
1552
+ /**
1553
+ * Free text to be used for a keyword search
1554
+ *
1555
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1556
+ * `'Meeting'` although other string values are permitted.
1557
+ */
1558
+ /**
1559
+ * An entity that can be used when referencing private companies and other organizations
1560
+ * where a specific instrument is not available or desired e.g. CRM and News workflows.
1561
+ *
1562
+ * It is valid to include extra properties and metadata as part of the organization payload,
1563
+ * but the minimum requirement is for at least one specified identifier to be provided.
1564
+ */
539
1565
  export interface Organization {
540
- id: IndecentID;
541
- type: string;
1566
+ /**
1567
+ * Identifiers for the organization, at least one must be provided.
1568
+ */
1569
+ id: OrganizationIdentifiers;
1570
+ type: "fdc3.organization";
542
1571
  name?: string;
543
1572
  [property: string]: any;
544
1573
  }
545
- export interface IndecentID {
1574
+ /**
1575
+ * Identifiers for the organization, at least one must be provided.
1576
+ */
1577
+ export interface OrganizationIdentifiers {
1578
+ /**
1579
+ * FactSet Permanent Identifier representing the organization
1580
+ */
546
1581
  FDS_ID?: string;
1582
+ /**
1583
+ * The Legal Entity Identifier (LEI) is a 20-character, alpha-numeric code based on the ISO
1584
+ * 17442 standard developed by the International Organization for Standardization (ISO). It
1585
+ * connects to key reference information that enables clear and unique identification of
1586
+ * legal entities participating in financial transactions.
1587
+ */
547
1588
  LEI?: string;
1589
+ /**
1590
+ * Refinitiv Permanent Identifiers, or PermID for the organization
1591
+ */
548
1592
  PERMID?: string;
549
1593
  [property: string]: any;
550
1594
  }
1595
+ /**
1596
+ * Free text to be used for a keyword search
1597
+ *
1598
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1599
+ * `'Meeting'` although other string values are permitted.
1600
+ */
1601
+ /**
1602
+ * A financial portfolio made up of multiple positions (holdings) in several instruments.
1603
+ * Contrast this with e.g. the [InstrumentList](InstrumentList) type, which is just a list
1604
+ * of instruments.
1605
+ *
1606
+ * This is a good example of how types can be composed and extended with extra properties to
1607
+ * define more complex types.
1608
+ *
1609
+ * The Portfolio type consists of an array of [Position](Position) types, each of which
1610
+ * refers to a single [Instrument](Instrument) and a holding amount for that instrument.
1611
+ *
1612
+ * The portfolio schema does not explicitly include identifiers in the `id` section, as
1613
+ * there bis not a common standard for such identifiers. Applications can, however, populate
1614
+ * this part of the contract with custom identifiers if so desired.
1615
+ */
551
1616
  export interface Portfolio {
1617
+ /**
1618
+ * The List of Positions which make up the Portfolio
1619
+ */
552
1620
  positions: PositionElement[];
553
- type: string;
1621
+ type: "fdc3.portfolio";
554
1622
  id?: {
555
1623
  [key: string]: any;
556
1624
  };
557
1625
  name?: string;
558
1626
  [property: string]: any;
559
1627
  }
1628
+ /**
1629
+ * A financial position made up of an instrument and a holding in that instrument. This type
1630
+ * is a good example of how new context types can be composed from existing types.
1631
+ *
1632
+ * In this case, the instrument and the holding amount for that instrument are required
1633
+ * values.
1634
+ *
1635
+ * The [Position](Position) type goes hand-in-hand with the [Portfolio](Portfolio) type,
1636
+ * which represents multiple holdings in a combination of instruments.
1637
+ *
1638
+ * The position schema does not explicitly include identifiers in the `id` section, as there
1639
+ * is not a common standard for such identifiers. Applications can, however, populate this
1640
+ * part of the contract with custom identifiers if so desired.
1641
+ */
560
1642
  export interface PositionElement {
1643
+ /**
1644
+ * The amount of the holding, e.g. a number of shares
1645
+ */
561
1646
  holding: number;
562
1647
  instrument: InstrumentElement;
563
- type: string;
1648
+ type: "fdc3.position";
564
1649
  id?: {
565
1650
  [key: string]: any;
566
1651
  };
567
1652
  name?: string;
568
1653
  [property: string]: any;
569
1654
  }
1655
+ /**
1656
+ * Free text to be used for a keyword search
1657
+ *
1658
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1659
+ * `'Meeting'` although other string values are permitted.
1660
+ */
1661
+ /**
1662
+ * Free text to be used for a keyword search
1663
+ *
1664
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1665
+ * `'Meeting'` although other string values are permitted.
1666
+ */
1667
+ /**
1668
+ * A financial position made up of an instrument and a holding in that instrument. This type
1669
+ * is a good example of how new context types can be composed from existing types.
1670
+ *
1671
+ * In this case, the instrument and the holding amount for that instrument are required
1672
+ * values.
1673
+ *
1674
+ * The [Position](Position) type goes hand-in-hand with the [Portfolio](Portfolio) type,
1675
+ * which represents multiple holdings in a combination of instruments.
1676
+ *
1677
+ * The position schema does not explicitly include identifiers in the `id` section, as there
1678
+ * is not a common standard for such identifiers. Applications can, however, populate this
1679
+ * part of the contract with custom identifiers if so desired.
1680
+ */
570
1681
  export interface Position {
1682
+ /**
1683
+ * The amount of the holding, e.g. a number of shares
1684
+ */
571
1685
  holding: number;
572
1686
  instrument: InstrumentElement;
573
- type: string;
1687
+ type: "fdc3.position";
574
1688
  id?: {
575
1689
  [key: string]: any;
576
1690
  };
@@ -583,6 +1697,10 @@ export interface Position {
583
1697
  *
584
1698
  * This type is currently only loosely defined as an extensible context object, with an
585
1699
  * optional instrument field.
1700
+ *
1701
+ * The Product schema does not explicitly include identifiers in the id section, as there is
1702
+ * not a common standard for such identifiers. Applications can, however, populate this part
1703
+ * of the contract with custom identifiers if so desired.
586
1704
  */
587
1705
  export interface Product {
588
1706
  /**
@@ -592,18 +1710,61 @@ export interface Product {
592
1710
  id: {
593
1711
  [key: string]: string;
594
1712
  };
1713
+ /**
1714
+ * financial instrument that relates to the definition of this product
1715
+ */
1716
+ instrument?: InstrumentElement;
595
1717
  /**
596
1718
  * A human-readable summary of the product.
597
1719
  */
598
1720
  name?: string;
599
- type: string;
600
- instrument?: InstrumentElement;
1721
+ type: "fdc3.product";
601
1722
  [property: string]: any;
602
1723
  }
1724
+ /**
1725
+ * A context representing a period of time. Any user interfaces that represent or visualize
1726
+ * events or activity over time can be filtered or focused on a particular time period,
1727
+ * e.g.:
1728
+ *
1729
+ * - A pricing chart
1730
+ * - A trade blotter
1731
+ * - A record of client contact/activity in a CRM
1732
+ *
1733
+ * Example use cases:
1734
+ *
1735
+ * - User may want to view pricing/trades/customer activity for a security over a particular
1736
+ * time period, the time range might be specified as the context for the `ViewChart` intent
1737
+ * OR it might be embedded in another context (e.g. a context representing a chart to plot).
1738
+ * - User filters a visualization (e.g. a pricing chart) to show a particular period, the
1739
+ * `TimeRange` is broadcast and other visualizations (e.g. a heatmap of activity by
1740
+ * instrument, or industry sector etc.) receive it and filter themselves to show data over
1741
+ * the same range.
1742
+ *
1743
+ * Notes:
1744
+ *
1745
+ * - A `TimeRange` may be closed (i.e. `startTime` and `endTime` are both known) or open
1746
+ * (i.e. only one of `startTime` or `endTime` is known).
1747
+ * - Ranges corresponding to dates (e.g. `2022-05-12` to `2022-05-19`) should be specified
1748
+ * using times as this prevents issues with timezone conversions and inclusive/exclusive
1749
+ * date ranges.
1750
+ * - String fields representing times are encoded according to [ISO
1751
+ * 8601-1:2019](https://www.iso.org/standard/70907.html).
1752
+ * - A timezone indicator should be specified, e.g. `"2022-05-12T15:18:03Z"` or
1753
+ * `"2022-05-12T16:18:03+01:00"`
1754
+ * - Times MAY be specified with millisecond precision, e.g. `"2022-05-12T15:18:03.349Z"`
1755
+ */
603
1756
  export interface TimeRange {
1757
+ /**
1758
+ * The end time of the range, encoded according to [ISO
1759
+ * 8601-1:2019](https://www.iso.org/standard/70907.html) with a timezone indicator.
1760
+ */
604
1761
  endTime?: Date;
1762
+ /**
1763
+ * The start time of the range, encoded according to [ISO
1764
+ * 8601-1:2019](https://www.iso.org/standard/70907.html) with a timezone indicator.
1765
+ */
605
1766
  startTime?: Date;
606
- type: string;
1767
+ type: "fdc3.timerange";
607
1768
  id?: {
608
1769
  [key: string]: any;
609
1770
  };
@@ -618,6 +1779,10 @@ export interface TimeRange {
618
1779
  * to summarize the trade and a required `product` field that may be used to provide
619
1780
  * additional detail about the trade, which is currently typed as a unspecified Context
620
1781
  * type, but `product` is expected to be standardized in future.
1782
+ *
1783
+ * The Trade schema does not explicitly include identifiers in the id section, as there is
1784
+ * not a common standard for such identifiers. Applications can, however, populate this part
1785
+ * of the contract with custom identifiers if so desired.
621
1786
  */
622
1787
  export interface Trade {
623
1788
  /**
@@ -631,16 +1796,33 @@ export interface Trade {
631
1796
  * A human-readable summary of the trade.
632
1797
  */
633
1798
  name?: string;
1799
+ /**
1800
+ * A product that is the subject of the trade.
1801
+ */
634
1802
  product: ProductObject;
635
- type: string;
1803
+ type: "fdc3.trade";
636
1804
  [property: string]: any;
637
1805
  }
638
1806
  /**
639
- * @experimental A list of trades.
1807
+ * Free text to be used for a keyword search
1808
+ *
1809
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1810
+ * `'Meeting'` although other string values are permitted.
1811
+ */
1812
+ /**
1813
+ * @experimental A list of trades. Use this type for use cases that require not just a
1814
+ * single trade, but multiple.
1815
+ *
1816
+ * The TradeList schema does not explicitly include identifiers in the id section, as there
1817
+ * is not a common standard for such identifiers. Applications can, however, populate this
1818
+ * part of the contract with custom identifiers if so desired.
640
1819
  */
641
1820
  export interface TradeList {
1821
+ /**
1822
+ * An array of trade contexts that forms the list.
1823
+ */
642
1824
  trades: TradeElement[];
643
- type: string;
1825
+ type: "fdc3.tradeList";
644
1826
  id?: {
645
1827
  [key: string]: any;
646
1828
  };
@@ -655,6 +1837,10 @@ export interface TradeList {
655
1837
  * to summarize the trade and a required `product` field that may be used to provide
656
1838
  * additional detail about the trade, which is currently typed as a unspecified Context
657
1839
  * type, but `product` is expected to be standardized in future.
1840
+ *
1841
+ * The Trade schema does not explicitly include identifiers in the id section, as there is
1842
+ * not a common standard for such identifiers. Applications can, however, populate this part
1843
+ * of the contract with custom identifiers if so desired.
658
1844
  */
659
1845
  export interface TradeElement {
660
1846
  /**
@@ -668,32 +1854,78 @@ export interface TradeElement {
668
1854
  * A human-readable summary of the trade.
669
1855
  */
670
1856
  name?: string;
1857
+ /**
1858
+ * A product that is the subject of the trade.
1859
+ */
671
1860
  product: ProductObject;
672
- type: string;
1861
+ type: "fdc3.trade";
673
1862
  [property: string]: any;
674
1863
  }
1864
+ /**
1865
+ * Free text to be used for a keyword search
1866
+ *
1867
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1868
+ * `'Meeting'` although other string values are permitted.
1869
+ */
1870
+ /**
1871
+ * A context type representing the result of a transaction initiated via FDC3, which SHOULD
1872
+ * be returned as an `IntentResult` by intents that create, retrieve, update or delete
1873
+ * content or records in another application. Its purpose is to provide a status and message
1874
+ * (where needed) for the transaction and MAY wrap a returned context object.
1875
+ */
675
1876
  export interface TransactionResult {
1877
+ /**
1878
+ * A context object returned by the transaction, possibly with updated data.
1879
+ */
676
1880
  context?: ContextElement;
677
- status: Status;
678
- type: string;
1881
+ /**
1882
+ * The status of the transaction being reported.
1883
+ */
1884
+ status: TransactionStatus;
1885
+ type: "fdc3.transactionResult";
679
1886
  id?: {
680
1887
  [key: string]: any;
681
1888
  };
682
1889
  name?: string;
683
1890
  [property: string]: any;
684
1891
  }
685
- export declare enum Status {
686
- Created = "Created",
687
- Deleted = "Deleted",
688
- Failed = "Failed",
689
- Updated = "Updated"
690
- }
1892
+ /**
1893
+ * The status of the transaction being reported.
1894
+ */
1895
+ export declare type TransactionStatus = "Created" | "Deleted" | "Updated" | "Failed";
1896
+ /**
1897
+ * Free text to be used for a keyword search
1898
+ *
1899
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1900
+ * `'Meeting'` although other string values are permitted.
1901
+ */
1902
+ /**
1903
+ * A context type representing the price and value of a holding.
1904
+ */
691
1905
  export interface Valuation {
1906
+ /**
1907
+ * The valuation currency, which should conform to 3 character alphabetic codes defined in
1908
+ * [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)
1909
+ */
692
1910
  CURRENCY_ISOCODE: string;
1911
+ /**
1912
+ * The time at which this valuation expires, encoded according to [ISO
1913
+ * 8601-1:2019](https://www.iso.org/standard/70907.html) with a timezone indicator included.
1914
+ */
693
1915
  expiryTime?: Date;
1916
+ /**
1917
+ * The price per unit the the valuation is based on.
1918
+ */
694
1919
  price?: number;
695
- type: string;
1920
+ type: "fdc3.valuation";
1921
+ /**
1922
+ * The time at which the valuation was performed, encoded according to [ISO
1923
+ * 8601-1:2019](https://www.iso.org/standard/70907.html) with a timezone indicator included.
1924
+ */
696
1925
  valuationTime?: Date;
1926
+ /**
1927
+ * The value of the holding, expresses in the nominated currency.
1928
+ */
697
1929
  value: number;
698
1930
  id?: {
699
1931
  [key: string]: any;
@@ -701,6 +1933,12 @@ export interface Valuation {
701
1933
  name?: string;
702
1934
  [property: string]: any;
703
1935
  }
1936
+ /**
1937
+ * Free text to be used for a keyword search
1938
+ *
1939
+ * `interactionType` SHOULD be one of `'Instant Message'`, `'Email'`, `'Call'`, or
1940
+ * `'Meeting'` although other string values are permitted.
1941
+ */
704
1942
  export declare class Convert {
705
1943
  static toAction(json: string): Action;
706
1944
  static actionToJson(value: Action): string;