@genesislcap/foundation-comms 14.167.1 → 14.167.3-alpha-b40d1e5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (224) hide show
  1. package/dist/dts/auth/auth.d.ts.map +1 -1
  2. package/dist/dts/connect/connect.d.ts +11 -1
  3. package/dist/dts/connect/connect.d.ts.map +1 -1
  4. package/dist/dts/connect/connect.events.d.ts +173 -0
  5. package/dist/dts/connect/connect.events.d.ts.map +1 -0
  6. package/dist/dts/connect/http.connect.d.ts +1 -0
  7. package/dist/dts/connect/http.connect.d.ts.map +1 -1
  8. package/dist/dts/connect/index.d.ts +2 -0
  9. package/dist/dts/connect/index.d.ts.map +1 -1
  10. package/dist/dts/connect/message.d.ts +51 -0
  11. package/dist/dts/connect/message.d.ts.map +1 -1
  12. package/dist/dts/connect/socket.d.ts +72 -8
  13. package/dist/dts/connect/socket.d.ts.map +1 -1
  14. package/dist/dts/connect/socket.status.d.ts +79 -0
  15. package/dist/dts/connect/socket.status.d.ts.map +1 -0
  16. package/dist/dts/datasource/datasource.d.ts +9 -0
  17. package/dist/dts/datasource/datasource.d.ts.map +1 -1
  18. package/dist/dts/fdc3/fdc3.d.ts +17 -1
  19. package/dist/dts/fdc3/fdc3.d.ts.map +1 -1
  20. package/dist/dts/index.d.ts +1 -0
  21. package/dist/dts/index.d.ts.map +1 -1
  22. package/dist/dts/networkMonitor/config.d.ts +56 -0
  23. package/dist/dts/networkMonitor/config.d.ts.map +1 -0
  24. package/dist/dts/networkMonitor/index.d.ts +4 -0
  25. package/dist/dts/networkMonitor/index.d.ts.map +1 -0
  26. package/dist/dts/networkMonitor/service.d.ts +193 -0
  27. package/dist/dts/networkMonitor/service.d.ts.map +1 -0
  28. package/dist/dts/networkMonitor/types.d.ts +133 -0
  29. package/dist/dts/networkMonitor/types.d.ts.map +1 -0
  30. package/dist/dts/testing/mocks/connect/connect.d.ts +1 -0
  31. package/dist/dts/testing/mocks/connect/connect.d.ts.map +1 -1
  32. package/dist/dts/testing/mocks/connect/socket.d.ts +5 -1
  33. package/dist/dts/testing/mocks/connect/socket.d.ts.map +1 -1
  34. package/dist/dts/testing/mocks/datasource/datasource.d.ts +1 -0
  35. package/dist/dts/testing/mocks/datasource/datasource.d.ts.map +1 -1
  36. package/dist/dts/user/user.d.ts +15 -0
  37. package/dist/dts/user/user.d.ts.map +1 -1
  38. package/dist/esm/auth/auth.js +5 -2
  39. package/dist/esm/connect/connect.events.js +113 -0
  40. package/dist/esm/connect/connect.js +30 -8
  41. package/dist/esm/connect/http.connect.js +6 -0
  42. package/dist/esm/connect/index.js +2 -0
  43. package/dist/esm/connect/message.js +25 -4
  44. package/dist/esm/connect/socket.js +113 -44
  45. package/dist/esm/connect/socket.status.js +119 -0
  46. package/dist/esm/datasource/datasource.js +18 -8
  47. package/dist/esm/fdc3/fdc3.js +4 -4
  48. package/dist/esm/index.js +1 -0
  49. package/dist/esm/networkMonitor/config.js +46 -0
  50. package/dist/esm/networkMonitor/index.js +3 -0
  51. package/dist/esm/networkMonitor/service.js +432 -0
  52. package/dist/esm/networkMonitor/types.js +5 -0
  53. package/dist/esm/testing/mocks/connect/connect.js +3 -0
  54. package/dist/esm/testing/mocks/connect/socket.js +1 -1
  55. package/dist/esm/testing/mocks/datasource/datasource.js +1 -0
  56. package/dist/esm/user/user.js +22 -1
  57. package/dist/foundation-comms.api.json +14711 -8166
  58. package/dist/foundation-comms.d.ts +841 -13
  59. package/docs/api/foundation-comms.commitevent.md +14 -0
  60. package/docs/api/foundation-comms.commiteventdetail.md +17 -0
  61. package/docs/api/foundation-comms.commiteventtype.md +12 -0
  62. package/docs/api/foundation-comms.connect.getmorecolumns.md +26 -0
  63. package/docs/api/foundation-comms.connect.md +1 -0
  64. package/docs/api/foundation-comms.connectevents.addcommitlistener.md +24 -0
  65. package/docs/api/foundation-comms.connectevents.addmetadatalistener.md +24 -0
  66. package/docs/api/foundation-comms.connectevents.addstreamlistener.md +25 -0
  67. package/docs/api/foundation-comms.connectevents.md +22 -0
  68. package/docs/api/foundation-comms.connecteventsemitter.md +24 -0
  69. package/docs/api/foundation-comms.connecteventsemitter.oncommitevent.md +25 -0
  70. package/docs/api/foundation-comms.connecteventsemitter.onmetadataevent.md +26 -0
  71. package/docs/api/foundation-comms.connecteventsemitter.onstreamcompleteevent.md +24 -0
  72. package/docs/api/foundation-comms.connecteventsemitter.onstreamevent.md +27 -0
  73. package/docs/api/foundation-comms.currentuser.md +2 -0
  74. package/docs/api/foundation-comms.currentuser.set.md +22 -0
  75. package/docs/api/foundation-comms.currentuser.unset.md +15 -0
  76. package/docs/api/foundation-comms.datasource.destroy.md +17 -0
  77. package/docs/api/foundation-comms.datasource.md +1 -0
  78. package/docs/api/foundation-comms.defaultconnect._constructor_.md +2 -1
  79. package/docs/api/foundation-comms.defaultconnect.getmorecolumns.md +22 -0
  80. package/docs/api/foundation-comms.defaultconnect.md +2 -1
  81. package/docs/api/foundation-comms.defaultconnectevents.addcommitlistener.md +24 -0
  82. package/docs/api/foundation-comms.defaultconnectevents.addmetadatalistener.md +24 -0
  83. package/docs/api/foundation-comms.defaultconnectevents.addstreamlistener.md +25 -0
  84. package/docs/api/foundation-comms.defaultconnectevents.md +27 -0
  85. package/docs/api/foundation-comms.defaultconnectevents.oncommitevent.md +25 -0
  86. package/docs/api/foundation-comms.defaultconnectevents.onmetadataevent.md +26 -0
  87. package/docs/api/foundation-comms.defaultconnectevents.onstreamcompleteevent.md +24 -0
  88. package/docs/api/foundation-comms.defaultconnectevents.onstreamevent.md +27 -0
  89. package/docs/api/foundation-comms.defaultdatasource.destroy.md +17 -0
  90. package/docs/api/foundation-comms.defaultdatasource.md +1 -0
  91. package/docs/api/foundation-comms.defaulthttpconnect.getmorecolumns.md +22 -0
  92. package/docs/api/foundation-comms.defaulthttpconnect.md +1 -0
  93. package/docs/api/foundation-comms.defaultmessagebuilder._constructor_.md +21 -0
  94. package/docs/api/foundation-comms.defaultmessagebuilder.createchangepasswordmessage.md +24 -0
  95. package/docs/api/foundation-comms.defaultmessagebuilder.createcommitmessage.md +23 -0
  96. package/docs/api/foundation-comms.defaultmessagebuilder.createdatalogoffmessage.md +22 -0
  97. package/docs/api/foundation-comms.defaultmessagebuilder.createdatalogonmessage.md +23 -0
  98. package/docs/api/foundation-comms.defaultmessagebuilder.createforgotpasswordmessage.md +24 -0
  99. package/docs/api/foundation-comms.defaultmessagebuilder.createforgotpasswordtokenmessage.md +25 -0
  100. package/docs/api/foundation-comms.defaultmessagebuilder.createhttpheadersfrommessage.md +23 -0
  101. package/docs/api/foundation-comms.defaultmessagebuilder.createloginmessage.md +22 -0
  102. package/docs/api/foundation-comms.defaultmessagebuilder.createlogoutmessage.md +22 -0
  103. package/docs/api/foundation-comms.defaultmessagebuilder.createmetarequestmessage.md +23 -0
  104. package/docs/api/foundation-comms.defaultmessagebuilder.createmorecolumnsmessage.md +22 -0
  105. package/docs/api/foundation-comms.defaultmessagebuilder.createmorerowsmessage.md +22 -0
  106. package/docs/api/foundation-comms.defaultmessagebuilder.createrefreshtokenmessage.md +15 -0
  107. package/docs/api/foundation-comms.defaultmessagebuilder.createrequestmessage.md +23 -0
  108. package/docs/api/foundation-comms.defaultmessagebuilder.createresourcesmessage.md +22 -0
  109. package/docs/api/foundation-comms.defaultmessagebuilder.md +41 -0
  110. package/docs/api/foundation-comms.defaultnetworkmonitor.addresource.md +23 -0
  111. package/docs/api/foundation-comms.defaultnetworkmonitor.create.md +16 -0
  112. package/docs/api/foundation-comms.defaultnetworkmonitor.destroy.md +16 -0
  113. package/docs/api/foundation-comms.defaultnetworkmonitor.md +31 -0
  114. package/docs/api/foundation-comms.defaultnetworkmonitor.removeresource.md +22 -0
  115. package/docs/api/foundation-comms.defaultnetworkmonitor.runallchecks.md +11 -0
  116. package/docs/api/foundation-comms.defaultnetworkmonitor.status.md +12 -0
  117. package/docs/api/foundation-comms.defaultnetworkmonitorconfig.md +13 -0
  118. package/docs/api/foundation-comms.defaultsocket._constructor_.md +24 -0
  119. package/docs/api/foundation-comms.defaultsocket.connect.md +24 -0
  120. package/docs/api/foundation-comms.defaultsocket.hasvalidsession.md +13 -0
  121. package/docs/api/foundation-comms.defaultsocket.isconfigured.md +11 -0
  122. package/docs/api/foundation-comms.defaultsocket.isconnected.md +11 -0
  123. package/docs/api/foundation-comms.defaultsocket.isconnectedsubject.md +11 -0
  124. package/docs/api/foundation-comms.defaultsocket.isconnecting.md +11 -0
  125. package/docs/api/foundation-comms.defaultsocket.isdisconnected.md +11 -0
  126. package/docs/api/foundation-comms.defaultsocket.isdisconnectedbyserver.md +11 -0
  127. package/docs/api/foundation-comms.defaultsocket.isreconnecting.md +11 -0
  128. package/docs/api/foundation-comms.defaultsocket.md +44 -0
  129. package/docs/api/foundation-comms.defaultsocket.reset.md +15 -0
  130. package/docs/api/foundation-comms.defaultsocket.send.md +23 -0
  131. package/docs/api/foundation-comms.defaultsocket.sendforstream.md +25 -0
  132. package/docs/api/foundation-comms.defaultsocket.socketmessages.md +11 -0
  133. package/docs/api/foundation-comms.defaultsocketstatus.closedclean.md +11 -0
  134. package/docs/api/foundation-comms.defaultsocketstatus.closedcode.md +11 -0
  135. package/docs/api/foundation-comms.defaultsocketstatus.closedreason.md +11 -0
  136. package/docs/api/foundation-comms.defaultsocketstatus.hasvalidsession.md +11 -0
  137. package/docs/api/foundation-comms.defaultsocketstatus.isconfigured.md +11 -0
  138. package/docs/api/foundation-comms.defaultsocketstatus.isconnected.md +11 -0
  139. package/docs/api/foundation-comms.defaultsocketstatus.isconnectedchanged.md +15 -0
  140. package/docs/api/foundation-comms.defaultsocketstatus.isconnectedsubject.md +11 -0
  141. package/docs/api/foundation-comms.defaultsocketstatus.isconnecting.md +11 -0
  142. package/docs/api/foundation-comms.defaultsocketstatus.isdisconnected.md +11 -0
  143. package/docs/api/foundation-comms.defaultsocketstatus.isdisconnectedbyserver.md +11 -0
  144. package/docs/api/foundation-comms.defaultsocketstatus.isreconnecting.md +11 -0
  145. package/docs/api/foundation-comms.defaultsocketstatus.isreconnectingchanged.md +15 -0
  146. package/docs/api/foundation-comms.defaultsocketstatus.md +42 -0
  147. package/docs/api/foundation-comms.defaultsocketstatus.onclose.md +22 -0
  148. package/docs/api/foundation-comms.defaultsocketstatus.reconnectionlimitreached.md +11 -0
  149. package/docs/api/foundation-comms.defaultsocketstatus.resetclosedstate.md +15 -0
  150. package/docs/api/foundation-comms.defaultsocketstatus.serialize.md +15 -0
  151. package/docs/api/foundation-comms.genesisconnectevents.md +18 -0
  152. package/docs/api/foundation-comms.getnetworkmonitor.md +30 -0
  153. package/docs/api/foundation-comms.getsocket.md +30 -0
  154. package/docs/api/foundation-comms.getsocketstatus.md +30 -0
  155. package/docs/api/foundation-comms.md +39 -0
  156. package/docs/api/foundation-comms.messagebuilder.createmorecolumnsmessage.md +30 -0
  157. package/docs/api/foundation-comms.messagebuilder.md +1 -0
  158. package/docs/api/foundation-comms.messagehaserrorcode.md +13 -0
  159. package/docs/api/foundation-comms.messagetype.md +2 -0
  160. package/docs/api/foundation-comms.metadataevent.md +14 -0
  161. package/docs/api/foundation-comms.metadataeventdetail.md +18 -0
  162. package/docs/api/foundation-comms.metadataeventtype.md +12 -0
  163. package/docs/api/foundation-comms.monitoredresource.md +15 -0
  164. package/docs/api/foundation-comms.monitoredresourcechecks.md +15 -0
  165. package/docs/api/foundation-comms.monitoredresourcechecksresult.isconnected.md +11 -0
  166. package/docs/api/foundation-comms.monitoredresourcechecksresult.lastmessage.md +11 -0
  167. package/docs/api/foundation-comms.monitoredresourcechecksresult.lastupdated.md +11 -0
  168. package/docs/api/foundation-comms.monitoredresourcechecksresult.md +23 -0
  169. package/docs/api/foundation-comms.monitoredresourcechecksresult.timeout.md +11 -0
  170. package/docs/api/foundation-comms.monitoredresourcedatalogon.md +15 -0
  171. package/docs/api/foundation-comms.monitoredresourcemetadata.md +15 -0
  172. package/docs/api/foundation-comms.networklogger.md +12 -0
  173. package/docs/api/foundation-comms.networkmonitor.addresource.md +23 -0
  174. package/docs/api/foundation-comms.networkmonitor.create.md +15 -0
  175. package/docs/api/foundation-comms.networkmonitor.destroy.md +15 -0
  176. package/docs/api/foundation-comms.networkmonitor.md +34 -0
  177. package/docs/api/foundation-comms.networkmonitor.removeresource.md +22 -0
  178. package/docs/api/foundation-comms.networkmonitor.runallchecks.md +23 -0
  179. package/docs/api/foundation-comms.networkmonitor.status.md +11 -0
  180. package/docs/api/foundation-comms.networkmonitorconfig.checkinterval.md +13 -0
  181. package/docs/api/foundation-comms.networkmonitorconfig.checktimeout.md +13 -0
  182. package/docs/api/foundation-comms.networkmonitorconfig.documentevents.md +13 -0
  183. package/docs/api/foundation-comms.networkmonitorconfig.eventemitter.md +13 -0
  184. package/docs/api/foundation-comms.networkmonitorconfig.genesisconnectevents.md +13 -0
  185. package/docs/api/foundation-comms.networkmonitorconfig.md +27 -0
  186. package/docs/api/foundation-comms.networkmonitorconfig.resourcechecks.md +13 -0
  187. package/docs/api/foundation-comms.networkmonitorconfig.resourcedatalogon.md +18 -0
  188. package/docs/api/foundation-comms.networkmonitorconfig.windowevents.md +13 -0
  189. package/docs/api/foundation-comms.resourcehealth.md +19 -0
  190. package/docs/api/foundation-comms.serializedsocketstatus.closedclean.md +11 -0
  191. package/docs/api/foundation-comms.serializedsocketstatus.closedcode.md +11 -0
  192. package/docs/api/foundation-comms.serializedsocketstatus.closedreason.md +11 -0
  193. package/docs/api/foundation-comms.serializedsocketstatus.hasvalidsession.md +11 -0
  194. package/docs/api/foundation-comms.serializedsocketstatus.isconfigured.md +13 -0
  195. package/docs/api/foundation-comms.serializedsocketstatus.isconnected.md +11 -0
  196. package/docs/api/foundation-comms.serializedsocketstatus.isconnecting.md +11 -0
  197. package/docs/api/foundation-comms.serializedsocketstatus.isdisconnected.md +11 -0
  198. package/docs/api/foundation-comms.serializedsocketstatus.isdisconnectedbyserver.md +11 -0
  199. package/docs/api/foundation-comms.serializedsocketstatus.isreconnecting.md +11 -0
  200. package/docs/api/foundation-comms.serializedsocketstatus.md +30 -0
  201. package/docs/api/foundation-comms.serializedsocketstatus.reconnectionlimitreached.md +11 -0
  202. package/docs/api/foundation-comms.socket.md +3 -11
  203. package/docs/api/foundation-comms.socket.sendforstream.md +2 -1
  204. package/docs/api/{foundation-comms.socket.isconnectedsubject.md → foundation-comms.socketstatus.isconnectedsubject.md} +2 -2
  205. package/docs/api/foundation-comms.socketstatus.md +28 -0
  206. package/docs/api/foundation-comms.socketstatus.onclose.md +22 -0
  207. package/docs/api/foundation-comms.socketstatus.serialize.md +15 -0
  208. package/docs/api/foundation-comms.streamcompleteevent.md +14 -0
  209. package/docs/api/foundation-comms.streamcompleteeventtype.md +12 -0
  210. package/docs/api/foundation-comms.streamevent.md +14 -0
  211. package/docs/api/foundation-comms.streameventdetail.md +19 -0
  212. package/docs/api/foundation-comms.streameventfunctions.md +19 -0
  213. package/docs/api/foundation-comms.streameventtype.md +12 -0
  214. package/docs/api/foundation-comms.systemhealthchanged.md +13 -0
  215. package/docs/api/foundation-comms.systemhealthchangedevent.md +15 -0
  216. package/docs/api/foundation-comms.systemhealthstatus.md +29 -0
  217. package/docs/api/foundation-comms.user.md +2 -0
  218. package/docs/api/foundation-comms.user.set.md +22 -0
  219. package/docs/api/foundation-comms.user.unset.md +15 -0
  220. package/docs/api-report.md +520 -16
  221. package/package.json +13 -11
  222. package/docs/api/foundation-comms.socket.hasvalidsession.md +0 -11
  223. package/docs/api/foundation-comms.socket.isconnected.md +0 -11
  224. package/docs/api/foundation-comms.socket.isreconnecting.md +0 -11
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { AppIntent } from '@finos/fdc3';
4
4
  import { BehaviorSubject } from 'rxjs';
5
+ import { default as Bowser_2 } from 'bowser';
5
6
  import { Channel } from '@finos/fdc3';
6
7
  import { Context } from '@finos/fdc3';
7
8
  import { ContextHandler } from '@finos/fdc3';
@@ -11,11 +12,14 @@ import { Intents } from '@finos/fdc3';
11
12
  import { InterfaceSymbol } from '@microsoft/fast-foundation';
12
13
  import { JSONSchema7 } from 'json-schema';
13
14
  import { JSONSerializer } from '@genesislcap/foundation-utils';
15
+ import { Listener } from '@genesislcap/foundation-utils';
14
16
  import { Logger } from '@genesislcap/foundation-logger';
15
17
  import { Observable } from 'rxjs';
16
- import { Observer } from 'rxjs';
18
+ import { Observer } from '@genesislcap/foundation-utils';
19
+ import { Observer as Observer_2 } from 'rxjs';
17
20
  import { Subscription as SocketSubscription } from 'rxjs';
18
21
  import { Subject } from 'rxjs';
22
+ import { UUID } from '@genesislcap/foundation-utils';
19
23
 
20
24
  /**
21
25
  * Auth is the main interface for authenticating with a Genesis Server endpoint.
@@ -148,6 +152,24 @@ export declare type BasicCredentialsInput = {
148
152
  password: string;
149
153
  };
150
154
 
155
+ /**
156
+ * @public
157
+ */
158
+ export declare type CommitEvent = CustomEvent<CommitEventDetail>;
159
+
160
+ /**
161
+ * @public
162
+ */
163
+ export declare type CommitEventDetail = {
164
+ eventName: string;
165
+ message: Message;
166
+ };
167
+
168
+ /**
169
+ * @public
170
+ */
171
+ export declare const CommitEventType = "connect-commit-event";
172
+
151
173
  /**
152
174
  * Parameters for a COMMIT message
153
175
  * @public
@@ -245,6 +267,13 @@ export declare interface Connect {
245
267
  * @returns A promise that resolves with the additional rows of data.
246
268
  */
247
269
  getMoreRows(sourceRef: string): Promise<Message>;
270
+ /**
271
+ * Requests additional columns for the specified source reference.
272
+ * @public
273
+ * @param sourceRef - The source reference to request more columns for.
274
+ * @returns A promise that resolves with the additional columns.
275
+ */
276
+ getMoreColumns(sourceRef: string): Promise<Message>;
248
277
  /**
249
278
  * Logs off from the specified data source.
250
279
  * @public
@@ -318,6 +347,85 @@ export declare interface ConnectConfig {
318
347
  */
319
348
  export declare const ConnectConfig: InterfaceSymbol<ConnectConfig>;
320
349
 
350
+ /**
351
+ * `ConnectEvents` provide hooks to respond to specific connect events.
352
+ *
353
+ * @public
354
+ */
355
+ export declare interface ConnectEvents {
356
+ /**
357
+ * Add a stream listener.
358
+ * @param listener - A listener callback function.
359
+ * @param complete - A complete listener callback function.
360
+ */
361
+ addStreamListener(listener: Listener<StreamEvent>, complete: Listener<StreamCompleteEvent>): () => void;
362
+ /**
363
+ * Add a commit listener.
364
+ * @param listener - A listener callback function.
365
+ */
366
+ addCommitListener(listener: Listener<CommitEvent>): () => void;
367
+ /**
368
+ * Add a metadata listener.
369
+ * @param listener - A listener callback function.
370
+ */
371
+ addMetadataListener(listener: Listener<MetadataEvent>): () => void;
372
+ }
373
+
374
+ /**
375
+ * ConnectEvents DI key.
376
+ *
377
+ * @privateRemarks
378
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
379
+ *
380
+ * @internal
381
+ */
382
+ export declare const ConnectEvents: InterfaceSymbol<ConnectEvents>;
383
+
384
+ /**
385
+ * `ConnectEventsEmitter` provide event emitting hooks to Connect.
386
+ *
387
+ * @public
388
+ */
389
+ export declare interface ConnectEventsEmitter extends ConnectEvents {
390
+ /**
391
+ * Called by Connect.
392
+ * @param resourceName - The name of the resource.
393
+ * @param message - The message.
394
+ * @param stream - The actual stream itself.
395
+ * @param functions - Any functions provided.
396
+ */
397
+ onStreamEvent(resourceName: string, message: Message<MessageDetails.DataserverRequest>, stream: SocketObservable<any>, functions: StreamEventFunctions): void;
398
+ /**
399
+ * Called by Connect.
400
+ * @param stream - The actual stream itself.
401
+ */
402
+ onStreamCompleteEvent(stream: SocketObservable<any>): void;
403
+ /**
404
+ * Called by Connect.
405
+ * @param eventName - The name of the event.
406
+ * @param message - The message.
407
+ */
408
+ onCommitEvent(eventName: string, message: Message): void;
409
+ /**
410
+ * Called by Connect.
411
+ * @param resourceName - The name of the resource.
412
+ * @param message - The message.
413
+ * @param error - Optional error.
414
+ */
415
+ onMetadataEvent(resourceName: string, message: Message<MessageDetails.MetaRequest>, error?: any): void;
416
+ }
417
+
418
+ /**
419
+ * ConnectEventsEmitter DI key.
420
+ *
421
+ * @privateRemarks
422
+ * ConnectEventsEmitter is used by Connect.
423
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
424
+ *
425
+ * @internal
426
+ */
427
+ export declare const ConnectEventsEmitter: InterfaceSymbol<ConnectEventsEmitter>;
428
+
321
429
  /**
322
430
  * The connection status of the Genesis client.
323
431
  * @public
@@ -349,6 +457,7 @@ export declare class ConnectMock implements Connect {
349
457
  snapshot(resourceName: string, params?: any): Promise<Message>;
350
458
  stream(resourceName: string, onMessage: Function, onError: Function, params?: any): SocketObservable<Message>;
351
459
  getMoreRows(sourceRef: string): Promise<Message<any>>;
460
+ getMoreColumns(sourceRef: string): Promise<Message<any>>;
352
461
  dataLogoff(sourceRef: string): Promise<Message<any>>;
353
462
  getJSONSchema(resourceName: string): Promise<any>;
354
463
  }
@@ -641,6 +750,8 @@ export declare class CurrentUser implements User {
641
750
  profiles: UserProfile[];
642
751
  username: string;
643
752
  constructor(options: UserOptions);
753
+ set(options: UserOptions): void;
754
+ unset(): void;
644
755
  hasAdminProfile(): boolean;
645
756
  hasPermission(permission: string | string[]): boolean;
646
757
  hasProfile(profile: string | string[]): boolean;
@@ -801,6 +912,13 @@ export declare interface Datasource {
801
912
  * @returns A promise that resolves when the item has been updated.
802
913
  */
803
914
  updateItem?(itemId: string, data: any): Promise<void>;
915
+ /**
916
+ * Destroy the datasource.
917
+ * @privateRemarks
918
+ * I suspect we may need to call this from datasource disconnectedCallbacks etc to ensure we fully clean up.
919
+ * @public
920
+ */
921
+ destroy(): void;
804
922
  }
805
923
 
806
924
  /**
@@ -852,6 +970,7 @@ export declare class DatasourceMock implements Datasource {
852
970
  stream: SocketObservable<FilteredDataServerResult | RequestServerResult>;
853
971
  init(options: DatasourceOptions, fetchMeta: boolean): Promise<boolean>;
854
972
  deinit(): void;
973
+ destroy(): void;
855
974
  validResourceName(resourceName: string): boolean;
856
975
  getMetadata?(resourceName: string): Promise<FieldMetadata[]>;
857
976
  snapshot(params?: any): void;
@@ -1009,12 +1128,13 @@ export declare class DefaultConnect implements Connect {
1009
1128
  socket: Socket;
1010
1129
  private messageBuilder;
1011
1130
  private metaCache;
1131
+ private events;
1012
1132
  private config;
1013
1133
  isWorking: boolean;
1014
1134
  get isConnected(): boolean;
1015
1135
  get isConnectedSubject(): BehaviorSubject<boolean>;
1016
1136
  get isConnected$(): Observable<boolean>;
1017
- constructor(socket: Socket, messageBuilder: MessageBuilder, metaCache: MetaCache, config?: ConnectConfig);
1137
+ constructor(socket: Socket, messageBuilder: MessageBuilder, metaCache: MetaCache, events: ConnectEventsEmitter, config?: ConnectConfig);
1018
1138
  httpMode(): boolean;
1019
1139
  setValidSession(valid: boolean): void;
1020
1140
  send<T>(message: Message<any>, needsHandling?: boolean): Promise<any>;
@@ -1023,6 +1143,7 @@ export declare class DefaultConnect implements Connect {
1023
1143
  snapshot(resourceName: string, params?: any): Promise<Message>;
1024
1144
  stream(resourceName: string, onMessage: Function, onError: Function, params?: any): SocketObservable<Message>;
1025
1145
  getMoreRows(sourceRef: string): Promise<Message>;
1146
+ getMoreColumns(sourceRef: string): Promise<Message>;
1026
1147
  dataLogoff(streamSourceRef: string): Promise<Message>;
1027
1148
  getMetadata(resourceName: string, useCache?: boolean): Promise<Metadata>;
1028
1149
  getJSONSchema(resourceName: string, useCache?: boolean): Promise<SchemaResponse>;
@@ -1037,6 +1158,35 @@ export declare class DefaultConnect implements Connect {
1037
1158
  */
1038
1159
  export declare const defaultConnectConfig: ConnectConfig;
1039
1160
 
1161
+ /**
1162
+ * Default ConnectEvents implementation.
1163
+ * @public
1164
+ */
1165
+ export declare class DefaultConnectEvents implements ConnectEventsEmitter {
1166
+ /** @internal */
1167
+ protected streamListeners: Observer<StreamEvent>;
1168
+ /** @internal */
1169
+ protected streamCompleteListeners: Observer<StreamCompleteEvent>;
1170
+ /** {@inheritDoc ConnectEvents.addStreamListener} */
1171
+ addStreamListener(listener: Listener<StreamEvent>, complete: Listener<StreamCompleteEvent>): () => void;
1172
+ /** {@inheritDoc ConnectEventsEmitter.onStreamEvent} */
1173
+ onStreamEvent(resourceName: string, message: Message<MessageDetails.DataserverRequest>, stream: SocketObservable<any>, functions: StreamEventFunctions): void;
1174
+ /** {@inheritDoc ConnectEventsEmitter.onStreamCompleteEvent} */
1175
+ onStreamCompleteEvent(stream: SocketObservable<any>): void;
1176
+ /** @internal */
1177
+ protected commitListeners: Observer<CommitEvent>;
1178
+ /** {@inheritDoc ConnectEvents.addCommitListener} */
1179
+ addCommitListener(listener: Listener<CommitEvent>): () => void;
1180
+ /** {@inheritDoc ConnectEventsEmitter.onStreamEvent} */
1181
+ onCommitEvent(eventName: string, message: Message): void;
1182
+ /** @internal */
1183
+ protected metadataListeners: Observer<MetadataEvent>;
1184
+ /** {@inheritDoc ConnectEvents.addMetadataListener} */
1185
+ addMetadataListener(listener: Listener<MetadataEvent>): () => void;
1186
+ /** {@inheritDoc ConnectEventsEmitter.onMetadataEvent} */
1187
+ onMetadataEvent(resourceName: string, message: Message<MessageDetails.MetaRequest>, error?: any): void;
1188
+ }
1189
+
1040
1190
  /**
1041
1191
  * The default implementation for the CredentialManager interface.
1042
1192
  * @public
@@ -1105,6 +1255,8 @@ export declare class DefaultDatasource implements Datasource {
1105
1255
  validResourceName(resourceName: string): boolean;
1106
1256
  init(options: DatasourceOptions, fetchMeta?: boolean): Promise<boolean>;
1107
1257
  deinit(): void;
1258
+ /** {@inheritDoc Datasource.destroy} */
1259
+ destroy(): void;
1108
1260
  get stream(): SocketObservable<FilteredDataServerResult | RequestServerResult>;
1109
1261
  get params(): any;
1110
1262
  snapshot(): Promise<Message>;
@@ -1147,6 +1299,23 @@ export declare class DefaultEntityDatasource<TDTO, TEntity> extends DefaultDatas
1147
1299
  protected processRowDataUpdate(rowData: RowData[], inserting?: boolean): void;
1148
1300
  }
1149
1301
 
1302
+ /**
1303
+ * The FDC3 implementation.
1304
+ * @internal
1305
+ */
1306
+ export declare class DefaultFDC3 implements FDC3_2 {
1307
+ isReady: boolean;
1308
+ constructor();
1309
+ private connect;
1310
+ addIntentListeners(listeners: Map<FDC3Intents, FDC3ContextHandler>): void;
1311
+ findIntent(intent: FDC3Intents, context?: FDC3Context): Promise<FDC3AppIntent>;
1312
+ findIntentsByContext(context: FDC3Context): Promise<FDC3AppIntent[]>;
1313
+ raiseIntent(context: FDC3Context, intent?: FDC3Intents): Promise<FDC3IntentResolution>;
1314
+ joinChannel(channelId: string): Promise<void>;
1315
+ getOrCreateChannel(channelId: string): Promise<FDC3Channel>;
1316
+ broadcastOnChannel(channelId: string, context: FDC3Context): Promise<void>;
1317
+ }
1318
+
1150
1319
  /**
1151
1320
  * The default implementation for the FoundationAnalytics interface.
1152
1321
  * @public
@@ -1221,6 +1390,7 @@ export declare class DefaultHttpConnect implements Connect {
1221
1390
  stream(resourceName: string, onMessage: Function, onError: Function, params?: any): SocketObservable<Message>;
1222
1391
  private getMessage;
1223
1392
  getMoreRows(sourceRef: string): Promise<Message>;
1393
+ getMoreColumns(sourceRef: string): Promise<Message>;
1224
1394
  dataLogoff(streamSourceRef: string): Promise<Message>;
1225
1395
  getMetadata(resourceName: string, useCache?: boolean): Promise<Metadata>;
1226
1396
  getJSONSchema(resourceName: string): Promise<SchemaResponse>;
@@ -1322,6 +1492,38 @@ export declare class DefaultKVStorage implements KVStorage {
1322
1492
  */
1323
1493
  export declare const defaultKVStorageConfig: KVStorageConfig;
1324
1494
 
1495
+ /**
1496
+ * TODO: Abstract out localStorage interaction with shell io stuff
1497
+ */
1498
+ /**
1499
+ * Default MessageBuilder implementation.
1500
+ * @public
1501
+ */
1502
+ export declare class DefaultMessageBuilder implements MessageBuilder {
1503
+ private session;
1504
+ private uuid;
1505
+ /**
1506
+ * UUID will be created in the DI with the App specific requirements.
1507
+ * Keeping it encapsulated means messages will always conform.
1508
+ */
1509
+ constructor(session: Session, uuid: UUID);
1510
+ createLoginMessage(credentials: AuthInfo): Message<MessageDetails.Login>;
1511
+ createLogoutMessage(loginResult?: LoginResult): Message;
1512
+ createDataLogonMessage(resourceName: string, params?: any): Message<MessageDetails.DataserverRequest>;
1513
+ createDataLogoffMessage<T = any>(sourceRef: string): Message<T>;
1514
+ createRequestMessage<T = any>(resourceName: string, params?: RequestParams): Message<T>;
1515
+ createResourcesMessage<T = any>(params?: RequestParams): Message<T>;
1516
+ createMetaRequestMessage(resourceName: string, messageType?: EventMessageType): Message<MessageDetails.MetaRequest>;
1517
+ createCommitMessage<T = any>(eventName: string, params?: CommitParams): Message<T>;
1518
+ createRefreshTokenMessage(): Message<MessageDetails.RefreshToken>;
1519
+ createChangePasswordMessage(username: string, oldPassword: string, newPassword: string): Message<MessageDetails.ChangePassword>;
1520
+ createForgotPasswordMessage(username: string, returnUrl: string, requester?: string): Message<MessageDetails.ForgotPassword>;
1521
+ createForgotPasswordTokenMessage(username: string, resetToken: string, newPassword: string, requester?: string): Message<MessageDetails.ForgotPasswordToken>;
1522
+ createMoreRowsMessage(sourceRef: string): Message;
1523
+ createMoreColumnsMessage(sourceRef: string): Message;
1524
+ createHTTPHeadersFromMessage(message: Message, contentType?: string): HeadersInit;
1525
+ }
1526
+
1325
1527
  /**
1326
1528
  * The default implementation for the MetaCache interface.
1327
1529
  * @public
@@ -1337,6 +1539,144 @@ export declare class DefaultMetaCache implements MetaCache {
1337
1539
  setJsonSchemaFor(resourceName: string, schemaResponse: SchemaResponse): void;
1338
1540
  }
1339
1541
 
1542
+ /**
1543
+ * Default NetworkMonitor implementation.
1544
+ * @public
1545
+ */
1546
+ export declare class DefaultNetworkMonitor implements NetworkMonitor {
1547
+ /**
1548
+ * High-level configuration.
1549
+ * @internal
1550
+ */
1551
+ protected config: NetworkMonitorConfig;
1552
+ /**
1553
+ * @internal
1554
+ */
1555
+ protected socketStatus: SocketStatus;
1556
+ /**
1557
+ * @internal
1558
+ */
1559
+ protected connectEvents: ConnectEvents;
1560
+ /**
1561
+ * @internal
1562
+ */
1563
+ protected user: User;
1564
+ /**
1565
+ * @internal
1566
+ */
1567
+ protected unsubscribableObservers: any[];
1568
+ /**
1569
+ * @privateRemarks
1570
+ * Originally aimed to use WeakMap for resources, but need to iterate and process these. I also had a
1571
+ * `this.registry = new FinalizationRegistry<any>(this.registryCleanup);` in the mix to handle clean up actions.
1572
+ *
1573
+ * @internal
1574
+ */
1575
+ protected resources: Map<MonitoredResource, MonitoredResourceMetadata>;
1576
+ /**
1577
+ * @internal
1578
+ */
1579
+ protected internalId: ReturnType<typeof setInterval>;
1580
+ /**
1581
+ * @internal
1582
+ */
1583
+ protected isRunningChecks: boolean;
1584
+ /**
1585
+ * {@inheritDoc NetworkMonitor.status}
1586
+ */
1587
+ status: SystemHealthStatus;
1588
+ /**
1589
+ * {@inheritDoc NetworkMonitor.create}
1590
+ */
1591
+ create(): void;
1592
+ /**
1593
+ * {@inheritDoc NetworkMonitor.destroy}
1594
+ */
1595
+ destroy(): void;
1596
+ /**
1597
+ * @internal
1598
+ */
1599
+ protected isOnlineCheck(): Promise<boolean>;
1600
+ /**
1601
+ * {@inheritDoc NetworkMonitor.runAllChecks}
1602
+ */
1603
+ runAllChecks: (source?: unknown, force?: boolean) => Promise<void>;
1604
+ /**
1605
+ * {@inheritDoc NetworkMonitor.addResource}
1606
+ */
1607
+ addResource(resource: MonitoredResource, metadata: MonitoredResourceMetadata): void;
1608
+ /**
1609
+ * {@inheritDoc NetworkMonitor.removeResource}
1610
+ */
1611
+ removeResource(resource: MonitoredResource): void;
1612
+ /**
1613
+ * @internal
1614
+ */
1615
+ protected addListeners(): void;
1616
+ /**
1617
+ * @internal
1618
+ */
1619
+ protected removeListeners(): void;
1620
+ /**
1621
+ * @internal
1622
+ */
1623
+ protected reportSystemHealth(detail: Partial<SystemHealthStatus>): void;
1624
+ /**
1625
+ * @internal
1626
+ */
1627
+ protected reportStabilityToGenesis(detail: Partial<SystemHealthStatus>): Promise<boolean>;
1628
+ /**
1629
+ * @remarks
1630
+ * Deal with false positives.
1631
+ *
1632
+ * @privateRemarks
1633
+ * There's an argument here for and against normalising ResourceHealth. I think it's more useful to consumers like
1634
+ * visual overlays if there is no conflicting information. If we're offline and using the cache, then that should be
1635
+ * reflected here.
1636
+ *
1637
+ * @internal
1638
+ */
1639
+ protected normaliseResourceHealth(health: ResourceHealth, isOnline?: boolean): ResourceHealth;
1640
+ /**
1641
+ * @remarks
1642
+ * Deal with false positives.
1643
+ *
1644
+ * @privateRemarks
1645
+ * There's an argument here for and against a normalised SerializedSocketStatus. I think it's more useful to consumers
1646
+ * like visual overlays if there is no conflicting information. If we're offline and using the cache, then that
1647
+ * should be reflected here.
1648
+ *
1649
+ * @internal
1650
+ */
1651
+ protected normaliseSerializedSocketStatus(socketStatus: SerializedSocketStatus, isOnline?: boolean): SerializedSocketStatus;
1652
+ /**
1653
+ * @internal
1654
+ */
1655
+ protected normaliseEventDetail(detail: Partial<SystemHealthStatus>): SystemHealthStatus;
1656
+ /**
1657
+ * @internal
1658
+ */
1659
+ protected getFormattedTimestamp(milliseconds: number): string;
1660
+ /**
1661
+ * @internal
1662
+ */
1663
+ protected getNowTimestamp(): number;
1664
+ /**
1665
+ * @internal
1666
+ */
1667
+ protected getNextTimestamp(): number;
1668
+ /**
1669
+ * @internal
1670
+ */
1671
+ protected synchroniseCheckInterval(): void;
1672
+ }
1673
+
1674
+ /**
1675
+ * Default NetworkMonitorConfig DI implementation.
1676
+ * @public
1677
+ */
1678
+ export declare const defaultNetworkMonitorConfig: NetworkMonitorConfig;
1679
+
1340
1680
  /**
1341
1681
  * The default implementation for the Session interface.
1342
1682
  * @public
@@ -1363,6 +1703,79 @@ export declare class DefaultSession implements Session {
1363
1703
  removeSessionStorageItem(key: string | UserInfoKeys): void;
1364
1704
  }
1365
1705
 
1706
+ /**
1707
+ * Default Socket implementation.
1708
+ * @public
1709
+ */
1710
+ export declare class DefaultSocket implements Socket {
1711
+ private messageBuilder;
1712
+ private session;
1713
+ private serializer;
1714
+ private uuid;
1715
+ private status;
1716
+ private readonly defaultInterval;
1717
+ private readonly secondsMultiplier;
1718
+ private websocket;
1719
+ private wsMessages;
1720
+ private wsMessageHandlers;
1721
+ get isConfigured(): boolean;
1722
+ get isConnecting(): boolean;
1723
+ get isConnected(): boolean;
1724
+ get isConnectedSubject(): BehaviorSubject<boolean>;
1725
+ get isDisconnected(): boolean;
1726
+ get isDisconnectedByServer(): boolean;
1727
+ get isReconnecting(): boolean;
1728
+ get hasValidSession(): boolean;
1729
+ set hasValidSession(value: boolean);
1730
+ private heartbeatIsEnabled;
1731
+ private heartbeatInterval;
1732
+ private heartbeatTicker;
1733
+ private url;
1734
+ private connectOptions;
1735
+ private reconnectOptions;
1736
+ private socketSubscription;
1737
+ constructor(messageBuilder: MessageBuilder, session: Session, serializer: JSONSerializer, uuid: UUID, status: SocketStatus);
1738
+ private get heartbeatLoggingIsEnabled();
1739
+ private get messageLoggingIsEnabled();
1740
+ connect(host: string, connectOptions?: SocketConnectOptions, reconnectOptions?: SocketReconnectOptions): Promise<boolean>;
1741
+ private prepareHeartbeat;
1742
+ private reconnect;
1743
+ reset(): void;
1744
+ private cleanMessages;
1745
+ send<T>(message: Message<T | any>, needsHandling?: boolean): Promise<Message | any>;
1746
+ sendForStream<T>(message: Message<T | any>, onMessage: Function, onError: Function, onComplete?: Function): Observable<Message>;
1747
+ socketMessages: () => SocketSubject<Message>;
1748
+ private setMessageHandler;
1749
+ private sendDataLogoff;
1750
+ private removeMessageHandler;
1751
+ private getMessageHandler;
1752
+ private logMessageTypeFlow;
1753
+ }
1754
+
1755
+ /**
1756
+ * Default SocketStatus implementation.
1757
+ * @public
1758
+ */
1759
+ export declare class DefaultSocketStatus implements SocketStatus {
1760
+ isConfigured: boolean;
1761
+ isConnecting: boolean;
1762
+ isConnected: boolean;
1763
+ isReconnecting: boolean;
1764
+ reconnectionLimitReached: boolean;
1765
+ hasValidSession: boolean;
1766
+ closedCode: any;
1767
+ closedReason: any;
1768
+ closedClean: any;
1769
+ get isDisconnected(): boolean;
1770
+ get isDisconnectedByServer(): boolean;
1771
+ isConnectedSubject: BehaviorSubject<boolean>;
1772
+ protected isConnectedChanged(): void;
1773
+ protected isReconnectingChanged(): void;
1774
+ protected resetClosedState(): void;
1775
+ serialize(): SerializedSocketStatus;
1776
+ onClose(event: CloseEvent): void;
1777
+ }
1778
+
1366
1779
  /**
1367
1780
  * EntityDatasource DI interface.
1368
1781
  *
@@ -1521,7 +1934,7 @@ export declare const exponentialScheduler: SocketReconnectScheduler;
1521
1934
  export declare const extractFieldDefinitions: (metadata: Metadata) => MetadataDetail[];
1522
1935
 
1523
1936
  /**
1524
- * The DI token for the FDC3Service interface.
1937
+ * The DI token for the FDC3 interface.
1525
1938
  * @internal
1526
1939
  */
1527
1940
  export declare const FDC3: InterfaceSymbol<FDC3_2>;
@@ -1590,7 +2003,7 @@ declare interface FDC3_2 {
1590
2003
  }
1591
2004
 
1592
2005
  /**
1593
- * The DI token for the FDC3Service interface.
2006
+ * The DI token for the FDC3 interface.
1594
2007
  * @internal
1595
2008
  */
1596
2009
  declare const FDC3: InterfaceSymbol<FDC3_2>;
@@ -1733,6 +2146,17 @@ export declare enum FoundationAnalyticsEventType {
1733
2146
  routeChanged = "routeChanged"
1734
2147
  }
1735
2148
 
2149
+ /**
2150
+ * Genesis connect events that can be monitored to invoke resource checking.
2151
+ *
2152
+ * @remarks
2153
+ * 'steam' and 'commit' are monitored by default and will invoke resource checking. 'metadata' request failures are
2154
+ * monitored for the purpose of surfacing such errors to the console only. For now, 'metadata' errors are unrecoverable.
2155
+ *
2156
+ * @public
2157
+ */
2158
+ export declare type GenesisConnectEvents = 'stream' | 'commit';
2159
+
1736
2160
  /**
1737
2161
  * Get Connect from the DI container.
1738
2162
  *
@@ -1791,6 +2215,57 @@ export declare type GetCredentialOptions = CredentialRequestOptions & {};
1791
2215
  */
1792
2216
  export declare function getDatasource(): Datasource;
1793
2217
 
2218
+ /**
2219
+ * Gets NetworkMonitor from the DI container.
2220
+ *
2221
+ * @remarks
2222
+ * A utility method for host applications that are not using decorators or the DI container.
2223
+ *
2224
+ * @example
2225
+ * ```ts
2226
+ * import { getNetworkMonitor } from '@genesislcap/foundation-comms';
2227
+ * ...
2228
+ * private monitor = getNetworkMonitor();
2229
+ * ```
2230
+ *
2231
+ * @public
2232
+ */
2233
+ export declare function getNetworkMonitor(): NetworkMonitor;
2234
+
2235
+ /**
2236
+ * Gets Socket from the DI container.
2237
+ *
2238
+ * @remarks
2239
+ * A utility method for host applications that are not using decorators or the DI container.
2240
+ *
2241
+ * @example
2242
+ * ```ts
2243
+ * import { getSocket } from '@genesislcap/foundation-comms';
2244
+ * ...
2245
+ * private socket = getSocket();
2246
+ * ```
2247
+ *
2248
+ * @public
2249
+ */
2250
+ export declare function getSocket(): Socket;
2251
+
2252
+ /**
2253
+ * Gets SocketStatus from the DI container.
2254
+ *
2255
+ * @remarks
2256
+ * A utility method for host applications that are not using decorators or the DI container.
2257
+ *
2258
+ * @example
2259
+ * ```ts
2260
+ * import { getSocketStatus } from '@genesislcap/foundation-comms';
2261
+ * ...
2262
+ * private socketStatus = getSocketStatus();
2263
+ * ```
2264
+ *
2265
+ * @public
2266
+ */
2267
+ export declare function getSocketStatus(): SocketStatus;
2268
+
1794
2269
  /**
1795
2270
  * An interface representing an HTTP client that can make GET and POST requests and return a promise with the response data.
1796
2271
  * @public
@@ -2184,6 +2659,15 @@ export declare interface MessageBuilder {
2184
2659
  * @returns The more rows message.
2185
2660
  */
2186
2661
  createMoreRowsMessage(sourceRef: string): Message;
2662
+ /**
2663
+ * Creates a message to request more columns.
2664
+ *
2665
+ * @remarks MORE_COLUMNS
2666
+ * @public
2667
+ * @param sourceRef - The source reference.
2668
+ * @returns The more columns message.
2669
+ */
2670
+ createMoreColumnsMessage(sourceRef: string): Message;
2187
2671
  /**
2188
2672
  * Creates a request message.
2189
2673
  *
@@ -2431,6 +2915,14 @@ export declare type MessageError = {
2431
2915
  TEXT: string;
2432
2916
  };
2433
2917
 
2918
+ /**
2919
+ * Check if the message contains an error code.
2920
+ * @param message - The message object.
2921
+ * @param code - The error code.
2922
+ * @public
2923
+ */
2924
+ export declare const messageHasErrorCode: (message: Message, code: string | number) => boolean;
2925
+
2434
2926
  /**
2435
2927
  * Check if the provided message contains an error and throw an Error if it does
2436
2928
  * @public
@@ -2451,6 +2943,8 @@ export declare enum MessageType {
2451
2943
  HEARTBEAT_PING = "HEARTBEAT_PING",
2452
2944
  HEARTBEAT_PONG = "HEARTBEAT_PONG",
2453
2945
  MORE_ROWS = "MORE_ROWS",
2946
+ MORE_COLUMNS = "MORE_COLUMNS",
2947
+ MORE_COLUMNS_ACK = "MORE_COLUMNS_ACK",
2454
2948
  MSG_ACK = "MSG_ACK",
2455
2949
  MSG_NACK = "MSG_NACK",
2456
2950
  LOGOUT_ACK = "LOGOUT_ACK",
@@ -2530,6 +3024,158 @@ export declare type MetadataDetail = {
2530
3024
  UI_LABEL?: string;
2531
3025
  };
2532
3026
 
3027
+ /**
3028
+ * @public
3029
+ */
3030
+ export declare type MetadataEvent = CustomEvent<MetadataEventDetail>;
3031
+
3032
+ /**
3033
+ * @public
3034
+ */
3035
+ export declare type MetadataEventDetail = {
3036
+ resourceName: string;
3037
+ message: Message<MessageDetails.MetaRequest>;
3038
+ error?: any;
3039
+ };
3040
+
3041
+ /**
3042
+ * @public
3043
+ */
3044
+ export declare const MetadataEventType = "connect-metadata-event";
3045
+
3046
+ /**
3047
+ * MonitoredResource.
3048
+ * @public
3049
+ */
3050
+ export declare type MonitoredResource = SocketObservable<any>;
3051
+
3052
+ /**
3053
+ * MonitoredResourceChecks.
3054
+ * @param sourceRef - The resource source ref.
3055
+ * @param resource - The resource reference.
3056
+ * @public
3057
+ */
3058
+ export declare type MonitoredResourceChecks = (sourceRef: string, resource: MonitoredResource) => Promise<MonitoredResourceChecksResult>;
3059
+
3060
+ /**
3061
+ * MonitoredResourceChecksResult.
3062
+ * @public
3063
+ */
3064
+ export declare interface MonitoredResourceChecksResult {
3065
+ isConnected: boolean;
3066
+ lastUpdated: number;
3067
+ lastMessage?: Message;
3068
+ timeout?: boolean;
3069
+ }
3070
+
3071
+ /**
3072
+ * MonitoredResourceDataLogon.
3073
+ * @param metadata - The resource metadata.
3074
+ * @public
3075
+ */
3076
+ export declare type MonitoredResourceDataLogon = (metadata: MonitoredResourceMetadata) => void;
3077
+
3078
+ /**
3079
+ * MonitoredResourceMetadata.
3080
+ * @public
3081
+ */
3082
+ export declare interface MonitoredResourceMetadata extends Partial<MonitoredResourceChecksResult>, Partial<StreamEventDetail> {
3083
+ }
3084
+
3085
+ /**
3086
+ * @public
3087
+ */
3088
+ export declare const networkLogger: Logger;
3089
+
3090
+ /**
3091
+ * `NetworkMonitor` monitors network and resource availability and health.
3092
+ *
3093
+ * @remarks
3094
+ * UIs can listen for 'system-health-changed' events and display visual overlays to communicate status to the user.
3095
+ *
3096
+ * @public
3097
+ */
3098
+ export declare interface NetworkMonitor {
3099
+ status: SystemHealthStatus;
3100
+ create(): void;
3101
+ destroy(): void;
3102
+ /**
3103
+ * @param source - The source of the call, which may have been an event or scheduled interval.
3104
+ * @param force - A flag to bypass abort if already in progress logic.
3105
+ */
3106
+ runAllChecks(source?: unknown, force?: boolean): Promise<void>;
3107
+ /**
3108
+ * @param resource - The resource reference.
3109
+ * @param metadata - The resource metadata.
3110
+ */
3111
+ addResource(resource: MonitoredResource, metadata: MonitoredResourceMetadata): void;
3112
+ /**
3113
+ * @param resource - The resource reference.
3114
+ */
3115
+ removeResource(resource: MonitoredResource): void;
3116
+ }
3117
+
3118
+ /**
3119
+ * NetworkMonitor DI key.
3120
+ *
3121
+ * @privateRemarks
3122
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
3123
+ *
3124
+ * @internal
3125
+ */
3126
+ export declare const NetworkMonitor: InterfaceSymbol<NetworkMonitor>;
3127
+
3128
+ /**
3129
+ * NetworkMonitorConfig DI interface.
3130
+ *
3131
+ * @public
3132
+ */
3133
+ export declare interface NetworkMonitorConfig {
3134
+ /**
3135
+ * Window events that invoke checks
3136
+ */
3137
+ windowEvents?: (keyof WindowEventHandlersEventMap)[];
3138
+ /**
3139
+ * Document events that invoke checks
3140
+ */
3141
+ documentEvents?: (keyof DocumentEventMap)[];
3142
+ /**
3143
+ * Genesis connect events that invoke checks
3144
+ */
3145
+ genesisConnectEvents?: GenesisConnectEvents[];
3146
+ /**
3147
+ * Periodic check internal in ms
3148
+ */
3149
+ checkInterval?: number;
3150
+ /**
3151
+ * Check timeout in ms
3152
+ */
3153
+ checkTimeout?: number;
3154
+ /**
3155
+ * Default resource checks function
3156
+ */
3157
+ resourceChecks?: MonitoredResourceChecks;
3158
+ /**
3159
+ * Default resource data logon function
3160
+ * @remarks
3161
+ * Used to re-attempt data logon on an unhealthy data server
3162
+ */
3163
+ resourceDataLogon?: MonitoredResourceDataLogon;
3164
+ /**
3165
+ * The element to emit events from
3166
+ */
3167
+ eventEmitter?: HTMLElement;
3168
+ }
3169
+
3170
+ /**
3171
+ * NetworkMonitorConfig DI key.
3172
+ *
3173
+ * @internal
3174
+ * @privateRemarks
3175
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
3176
+ */
3177
+ export declare const NetworkMonitorConfig: InterfaceSymbol<NetworkMonitorConfig>;
3178
+
2533
3179
  /**
2534
3180
  * Normalise criteria.
2535
3181
  *
@@ -2618,6 +3264,16 @@ export declare type RequestServerResult = {
2618
3264
  MESSAGE_TYPE?: string;
2619
3265
  };
2620
3266
 
3267
+ /**
3268
+ * ResourceHealth.
3269
+ * @public
3270
+ */
3271
+ export declare type ResourceHealth = MonitoredResourceChecksResult & {
3272
+ name: string;
3273
+ sourceRef: string;
3274
+ lastError?: any;
3275
+ };
3276
+
2621
3277
  /**
2622
3278
  * Types of Genesis resources.
2623
3279
  * @public
@@ -2656,6 +3312,27 @@ export declare type SchemaResponse = {
2656
3312
  SOURCE_REF: string;
2657
3313
  };
2658
3314
 
3315
+ /**
3316
+ * `SerializedSocketStatus` provides the serialize state of the web socket.
3317
+ * @public
3318
+ */
3319
+ export declare interface SerializedSocketStatus {
3320
+ /**
3321
+ * When the socket has been configured for use.
3322
+ */
3323
+ isConfigured: boolean;
3324
+ isConnecting: boolean;
3325
+ isConnected: boolean;
3326
+ isDisconnected: boolean;
3327
+ isDisconnectedByServer: boolean;
3328
+ isReconnecting: boolean;
3329
+ reconnectionLimitReached: boolean;
3330
+ hasValidSession: boolean;
3331
+ readonly closedCode: number;
3332
+ readonly closedReason: string;
3333
+ readonly closedClean: boolean;
3334
+ }
3335
+
2659
3336
  /**
2660
3337
  * A Serializer interface for serializing and deserializing objects.
2661
3338
  * @public
@@ -2838,18 +3515,14 @@ export declare class SessionMock implements Session {
2838
3515
  * Provides methods for socket connection, sending and receiving WS messages.
2839
3516
  * @public
2840
3517
  */
2841
- export declare interface Socket {
2842
- isConnected: boolean;
2843
- isReconnecting: boolean;
2844
- hasValidSession: boolean;
2845
- isConnectedSubject: BehaviorSubject<boolean>;
3518
+ export declare interface Socket extends Omit<SocketStatus, 'serialize' | 'onClose' | 'reconnectionLimitReached' | 'closedCode' | 'closedReason' | 'closedClean'> {
2846
3519
  connect(host: string, options?: SocketConnectOptions, reconnectOptions?: SocketReconnectOptions): Promise<boolean>;
2847
3520
  /**
2848
3521
  * Disconnects the socket and clears all subscriptions
2849
3522
  */
2850
3523
  reset(): void;
2851
3524
  send<T>(message: Message<T | any>, needsHandling?: boolean): Promise<Message | any>;
2852
- sendForStream<T>(message: Message<T | any>, onMessage: Function, onError: Function): Observable<Message>;
3525
+ sendForStream<T>(message: Message<T | any>, onMessage: Function, onError: Function, onComplete?: Function): Observable<Message>;
2853
3526
  socketMessages(): SocketSubject<Message>;
2854
3527
  }
2855
3528
 
@@ -2875,7 +3548,7 @@ export declare type SocketConnectOptions = {
2875
3548
  /**
2876
3549
  * An observer to receive notifications of incoming messages from the server.
2877
3550
  */
2878
- connectObserver?: Observer<Message>;
3551
+ connectObserver?: Observer_2<Message>;
2879
3552
  /**
2880
3553
  * Enable sending heartbeat messages to the server to prevent the connection from timing out.
2881
3554
  */
@@ -2948,7 +3621,11 @@ export declare class SocketMessageHandler {
2948
3621
  * @internal
2949
3622
  */
2950
3623
  export declare class SocketMock implements Socket {
3624
+ isConfigured: boolean;
3625
+ isDisconnected: boolean;
3626
+ isDisconnectedByServer: boolean;
2951
3627
  hasValidSession: boolean;
3628
+ isConnecting: boolean;
2952
3629
  isConnected: boolean;
2953
3630
  isConnectedSubject: BehaviorSubject<boolean>;
2954
3631
  isReconnecting: boolean;
@@ -2957,7 +3634,7 @@ export declare class SocketMock implements Socket {
2957
3634
  connect(host: string, options?: SocketConnectOptions, reconnectOptions?: SocketReconnectOptions): Promise<boolean>;
2958
3635
  disconnect(): void;
2959
3636
  send<T>(message: Message<any>): Promise<Message | any>;
2960
- sendForStream<T>(message: Message<any>, onMessage: Function, onError: Function): Observable<Message>;
3637
+ sendForStream<T>(message: Message<any>, onMessage: Function, onError: Function, onComplete?: Function): Observable<Message>;
2961
3638
  socketMessages(): SocketSubject<Message>;
2962
3639
  reset(): void;
2963
3640
  }
@@ -2988,7 +3665,7 @@ export declare type SocketReconnectOptions = {
2988
3665
  * Observer to notify when reconnection occurs
2989
3666
  * @public
2990
3667
  */
2991
- reconnectObserver?: Observer<any>;
3668
+ reconnectObserver?: Observer_2<any>;
2992
3669
  /**
2993
3670
  * Reconnect stream subscriptions on reconnection
2994
3671
  * @public
@@ -3021,6 +3698,26 @@ export declare enum SocketReconnectStrategy {
3021
3698
  Exponential = "exponential"
3022
3699
  }
3023
3700
 
3701
+ /**
3702
+ * `SocketStatus` provides the state of the web socket.
3703
+ * @public
3704
+ */
3705
+ export declare interface SocketStatus extends SerializedSocketStatus {
3706
+ isConnectedSubject: BehaviorSubject<boolean>;
3707
+ serialize(): SerializedSocketStatus;
3708
+ onClose(closeEvent: CloseEvent): void;
3709
+ }
3710
+
3711
+ /**
3712
+ * SocketStatus DI key.
3713
+ *
3714
+ * @privateRemarks
3715
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
3716
+ *
3717
+ * @internal
3718
+ */
3719
+ export declare const SocketStatus: InterfaceSymbol<SocketStatus>;
3720
+
3024
3721
  /**
3025
3722
  * Subject that wraps a WebSocketSubject and provides a Subject interface for sending and receiving messages.
3026
3723
  * @public
@@ -3059,6 +3756,123 @@ export declare type SSOCredentialsInput = {
3059
3756
  */
3060
3757
  export declare type StorageType = 'local' | 'session';
3061
3758
 
3759
+ /**
3760
+ * @public
3761
+ */
3762
+ export declare type StreamCompleteEvent = CustomEvent<SocketObservable<any>>;
3763
+
3764
+ /**
3765
+ * @public
3766
+ */
3767
+ export declare const StreamCompleteEventType = "connect-stream-complete-event";
3768
+
3769
+ /**
3770
+ * @public
3771
+ */
3772
+ export declare type StreamEvent = CustomEvent<StreamEventDetail>;
3773
+
3774
+ /**
3775
+ * @public
3776
+ */
3777
+ export declare type StreamEventDetail = {
3778
+ functions: StreamEventFunctions;
3779
+ message: Message<MessageDetails.DataserverRequest>;
3780
+ resourceName: string;
3781
+ stream: SocketObservable<any>;
3782
+ };
3783
+
3784
+ /**
3785
+ * @public
3786
+ */
3787
+ export declare type StreamEventFunctions = {
3788
+ onMessage?: Function;
3789
+ onError?: Function;
3790
+ resourceChecks?: MonitoredResourceChecks;
3791
+ resourceDataLogon?: MonitoredResourceDataLogon;
3792
+ };
3793
+
3794
+ /**
3795
+ * @public
3796
+ */
3797
+ export declare const StreamEventType = "connect-stream-event";
3798
+
3799
+ /**
3800
+ * SystemHealthChanged.
3801
+ * @public
3802
+ */
3803
+ export declare const SystemHealthChanged = "system-health-changed";
3804
+
3805
+ /**
3806
+ * SystemHealthChangedEvent.
3807
+ * @public
3808
+ */
3809
+ export declare type SystemHealthChangedEvent = CustomEvent<SystemHealthStatus>;
3810
+
3811
+ /**
3812
+ * SystemHealthStatus.
3813
+ * @public
3814
+ */
3815
+ export declare type SystemHealthStatus = {
3816
+ /**
3817
+ * Is the browser or device working online.
3818
+ */
3819
+ isOnline: boolean;
3820
+ /**
3821
+ * Browser information.
3822
+ */
3823
+ browserInformation?: Bowser_2.Parser.ParsedResult;
3824
+ /**
3825
+ * Is the user authenticated.
3826
+ */
3827
+ isAuthenticated: boolean;
3828
+ /**
3829
+ * The username if authenticated.
3830
+ */
3831
+ username?: string;
3832
+ /**
3833
+ * Is everything online and connected.
3834
+ */
3835
+ isHealthy: boolean;
3836
+ /**
3837
+ * Socket status.
3838
+ */
3839
+ socket: SerializedSocketStatus;
3840
+ /**
3841
+ * Resource health information.
3842
+ */
3843
+ resources: Record<string, ResourceHealth>;
3844
+ /**
3845
+ * Resources are all connected flag.
3846
+ */
3847
+ resourcesAllConnected: boolean;
3848
+ /**
3849
+ * Last time the information was updated.
3850
+ */
3851
+ lastUpdated: number;
3852
+ /**
3853
+ * Next time the information will be updated.
3854
+ *
3855
+ * @privateRemarks
3856
+ * Overlays may use deltas for a visual countdown to next update.
3857
+ */
3858
+ nextUpdate: number;
3859
+ /**
3860
+ * First time the information was updated.
3861
+ *
3862
+ * @remarks
3863
+ * Can be used by applications to understand how-long it has been since the last refresh and to drive automations.
3864
+ */
3865
+ firstUpdated: number;
3866
+ /**
3867
+ * User requested run checks.
3868
+ */
3869
+ runAllChecks(): void;
3870
+ /**
3871
+ * User requested report stability to Genesis.
3872
+ */
3873
+ reportStabilityToGenesis(): Promise<boolean>;
3874
+ };
3875
+
3062
3876
  /**
3063
3877
  * Converts the field definitions to field metadata.
3064
3878
  * @public
@@ -3110,14 +3924,28 @@ export declare interface User extends UserOptions {
3110
3924
  hasAdminProfile(): boolean;
3111
3925
  hasPermission(permission: UserPermission | UserPermission[]): boolean;
3112
3926
  hasProfile(profile: UserProfile | UserProfile[]): boolean;
3927
+ set(options: UserOptions): void;
3928
+ unset(): void;
3113
3929
  }
3114
3930
 
3931
+ /**
3932
+ * User DI key.
3933
+ * @privateRemarks
3934
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
3935
+ * @internal
3936
+ */
3937
+ export declare const User: InterfaceSymbol<User>;
3938
+
3115
3939
  /**
3116
3940
  * The keys used to store user information in the session storage.
3117
3941
  * @internal
3118
3942
  */
3119
3943
  declare type UserInfoKeys = 'authToken' | 'ssoToken' | 'refreshToken' | 'sessionId' | 'returnUrl' | 'hostUrl' | 'gridOptions';
3120
3944
 
3945
+ /**
3946
+ * Made some minor adjustments here to make user more accessible in the short term.
3947
+ * Please note that this User will be replaced with the enhanced version shortly!
3948
+ */
3121
3949
  /**
3122
3950
  * TODO: Evolve, re-locate to foundation-data, foundation-user or similar and add JSON schema based population,
3123
3951
  * validation, evolution, foundation-store interop etc.