@microsoft/omnichannel-chat-widget 0.1.0-main.24bd1e6 → 0.1.0-main.306098a

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 (118) hide show
  1. package/lib/cjs/common/Constants.js +2 -0
  2. package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
  3. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
  4. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
  5. package/lib/cjs/common/telemetry/TelemetryConstants.js +15 -0
  6. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +31 -18
  7. package/lib/cjs/common/utils.js +20 -7
  8. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
  9. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
  10. package/lib/cjs/components/footerstateful/FooterStateful.js +5 -13
  11. package/lib/cjs/components/headerstateful/HeaderStateful.js +14 -7
  12. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  13. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  14. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  15. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  16. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  17. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  18. package/lib/cjs/components/livechatwidget/common/authHelper.js +65 -0
  19. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  20. package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
  21. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
  22. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +31 -30
  23. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +23 -5
  24. package/lib/cjs/components/livechatwidget/common/endChat.js +3 -3
  25. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +5 -2
  26. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +55 -35
  27. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  28. package/lib/cjs/components/livechatwidget/common/startChat.js +54 -21
  29. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +139 -57
  30. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
  31. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +20 -4
  32. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  33. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  34. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -0
  35. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  36. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  37. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  38. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +2 -1
  39. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +13 -5
  40. package/lib/cjs/contexts/createReducer.js +10 -2
  41. package/lib/esm/common/Constants.js +2 -0
  42. package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
  43. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  44. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
  45. package/lib/esm/common/telemetry/TelemetryConstants.js +15 -0
  46. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +29 -13
  47. package/lib/esm/common/utils.js +14 -5
  48. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
  49. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
  50. package/lib/esm/components/footerstateful/FooterStateful.js +5 -13
  51. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -7
  52. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  53. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  54. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  55. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  56. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  57. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  58. package/lib/esm/components/livechatwidget/common/authHelper.js +50 -0
  59. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  60. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
  61. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
  62. package/lib/esm/components/livechatwidget/common/createMarkdown.js +31 -30
  63. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +23 -5
  64. package/lib/esm/components/livechatwidget/common/endChat.js +3 -3
  65. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +5 -2
  66. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +56 -37
  67. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  68. package/lib/esm/components/livechatwidget/common/startChat.js +50 -22
  69. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +138 -59
  70. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
  71. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +15 -2
  72. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  73. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  74. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -0
  75. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  76. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  77. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  78. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +2 -1
  79. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -5
  80. package/lib/esm/contexts/createReducer.js +10 -2
  81. package/lib/types/common/Constants.d.ts +1 -0
  82. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  83. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  84. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  85. package/lib/types/common/telemetry/TelemetryConstants.d.ts +7 -1
  86. package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -1
  87. package/lib/types/common/utils.d.ts +5 -4
  88. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  89. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  90. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  91. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  92. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  93. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  94. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  95. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  96. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  97. package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
  98. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -4
  99. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  100. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  101. package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
  102. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
  103. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  104. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -0
  105. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  106. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  107. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  108. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  109. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
  110. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  111. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
  112. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  113. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  114. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  115. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
  116. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +3 -2
  117. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  118. package/package.json +5 -4
@@ -169,6 +169,8 @@ _defineProperty(Constants, "ChatWidgetStateChangedPrefix", "ChatWidgetStateChang
169
169
 
170
170
  _defineProperty(Constants, "PostChatLoadingDurationInMs", 2000);
171
171
 
172
+ _defineProperty(Constants, "BrowserUnloadConfirmationMessage", "Do you want to leave chat?");
173
+
172
174
  const Regex = (_class = class Regex {}, _defineProperty(_class, "EmailRegex", "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"), _class);
173
175
  exports.Regex = Regex;
174
176
 
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.registerBroadcastServiceForLocalStorage = exports.defaultCacheManager = void 0;
7
+
8
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
+
10
+ var _utils = require("../../utils");
11
+
12
+ var _defaultClientDataStoreProvider = require("./defaultClientDataStoreProvider");
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ class defaultCacheManager {}
17
+
18
+ exports.defaultCacheManager = defaultCacheManager;
19
+
20
+ _defineProperty(defaultCacheManager, "InternalCache", {});
21
+
22
+ const registerBroadcastServiceForLocalStorage = (orgid, widgetId, widgetInstanceId) => {
23
+ const widgetCacheId = (0, _utils.getWidgetCacheId)(orgid, widgetId, widgetInstanceId);
24
+
25
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(widgetCacheId).subscribe(msg => {
26
+ try {
27
+ (0, _defaultClientDataStoreProvider.defaultClientDataStoreProvider)().setData(widgetCacheId, JSON.stringify(msg.payload), "localStorage");
28
+ } catch (error) {
29
+ console.error("Error in setting data to localstorage", error);
30
+ }
31
+ });
32
+ };
33
+
34
+ exports.registerBroadcastServiceForLocalStorage = registerBroadcastServiceForLocalStorage;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultClientDataStoreProvider = void 0;
7
+
8
+ var _defaultInMemoryDataStore = require("./defaultInMemoryDataStore");
9
+
10
+ var _TelemetryHelper = require("../../telemetry/TelemetryHelper");
11
+
12
+ var _TelemetryConstants = require("../../telemetry/TelemetryConstants");
13
+
14
+ const defaultClientDataStoreProvider = () => {
15
+ const isCookieAllowed = () => {
16
+ try {
17
+ localStorage;
18
+ sessionStorage;
19
+ return true;
20
+ } catch (error) {
21
+ console.error("Third party cookie blocked");
22
+ return false;
23
+ }
24
+ };
25
+
26
+ const TtlInMs = 15 * 60 * 1000; // 15 mins
27
+
28
+ const dataStoreProvider = {
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ setData: (key, data, type) => {
31
+ if (isCookieAllowed()) {
32
+ try {
33
+ if (key) {
34
+ const now = new Date();
35
+ const item = {
36
+ data: data,
37
+ expiry: now.getTime() + TtlInMs
38
+ };
39
+ const strItem = JSON.stringify(item);
40
+
41
+ if (type === "localStorage") {
42
+ localStorage.setItem(key, strItem);
43
+ } else {
44
+ sessionStorage.setItem(key, strItem);
45
+ }
46
+ }
47
+ } catch (error) {
48
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
49
+ Event: _TelemetryConstants.TelemetryEvent.ClientDataStoreProviderFailed,
50
+ ExceptionDetails: error,
51
+ Description: "Unable to store data in localStorage."
52
+ });
53
+ }
54
+ } else {
55
+ const dataToCache = {
56
+ key: key,
57
+ data: data,
58
+ type: type
59
+ };
60
+ parent.postMessage(dataToCache, "*");
61
+ }
62
+ },
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ getData: (key, type) => {
65
+ if (isCookieAllowed()) {
66
+ let item;
67
+
68
+ if (type === "localStorage") {
69
+ item = localStorage.getItem(key);
70
+ } else {
71
+ item = sessionStorage.getItem(key);
72
+ } //Return item if not expired
73
+
74
+
75
+ let itemInJson = undefined;
76
+
77
+ if (item !== null) {
78
+ itemInJson = JSON.parse(item);
79
+ const now = new Date(); // compare the expiry time of the item with the current time
80
+
81
+ if (now.getTime() > itemInJson.expiry) {
82
+ // If the item is expired, delete the item from storage
83
+ // and return null
84
+ localStorage.removeItem(key);
85
+ return null;
86
+ }
87
+
88
+ return itemInJson.data;
89
+ }
90
+ } else {
91
+ // get data from in memory db when cookie is disabled
92
+ return (0, _defaultInMemoryDataStore.inMemoryDataStore)().getData(key);
93
+ }
94
+ },
95
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
+ removeData: (key, type) => {
97
+ if (isCookieAllowed()) {
98
+ if (key) {
99
+ if (type === "localStorage") {
100
+ return localStorage.removeItem(key);
101
+ } else {
102
+ return sessionStorage.removeItem(key);
103
+ }
104
+ }
105
+ } else {
106
+ // get data from in memory db when cookie is disabled
107
+ return (0, _defaultInMemoryDataStore.inMemoryDataStore)().removeData(key);
108
+ }
109
+ }
110
+ };
111
+ return dataStoreProvider;
112
+ };
113
+
114
+ exports.defaultClientDataStoreProvider = defaultClientDataStoreProvider;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.inMemoryDataStore = exports.defaultInitializeInMemoryDataStore = void 0;
7
+
8
+ var _TelemetryConstants = require("../../telemetry/TelemetryConstants");
9
+
10
+ var _TelemetryHelper = require("../../telemetry/TelemetryHelper");
11
+
12
+ var _defaultCacheManager = require("./defaultCacheManager");
13
+
14
+ const defaultInitializeInMemoryDataStore = widgetId => {
15
+ try {
16
+ localStorage;
17
+ } catch (error) {
18
+ // Register below events when localStorage is not accessible
19
+ // Listening to event raised from client browser
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ window.addEventListener("message", function (e) {
22
+ try {
23
+ if (e.data.key) {
24
+ const browserData = e.data;
25
+
26
+ if (_defaultCacheManager.defaultCacheManager.InternalCache[browserData.key]) {
27
+ delete _defaultCacheManager.defaultCacheManager.InternalCache[browserData.key];
28
+ }
29
+
30
+ _defaultCacheManager.defaultCacheManager.InternalCache[browserData.key] = browserData.data;
31
+ }
32
+ } catch (error) {
33
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
34
+ Event: _TelemetryConstants.TelemetryEvent.InMemoryDataStoreFailed,
35
+ ExceptionDetails: error,
36
+ Description: "Unable to register default in-memory cache."
37
+ });
38
+ }
39
+ }); // send cache initialize message to client
40
+
41
+ if (_defaultCacheManager.defaultCacheManager.InternalCache === undefined || {}) {
42
+ parent.postMessage({
43
+ data: "cacheinitialize",
44
+ widgetId: widgetId
45
+ }, "*");
46
+ }
47
+ }
48
+ };
49
+
50
+ exports.defaultInitializeInMemoryDataStore = defaultInitializeInMemoryDataStore;
51
+
52
+ const inMemoryDataStore = () => {
53
+ const dataStoreProvider = {
54
+ getData: key => {
55
+ if (_defaultCacheManager.defaultCacheManager.InternalCache && _defaultCacheManager.defaultCacheManager.InternalCache[key]) {
56
+ return _defaultCacheManager.defaultCacheManager.InternalCache[key];
57
+ }
58
+ },
59
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
+ setData: (key, data) => {
61
+ try {
62
+ _defaultCacheManager.defaultCacheManager.InternalCache[key] = data;
63
+ } catch (error) {
64
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
65
+ Event: _TelemetryConstants.TelemetryEvent.InMemoryDataStoreFailed,
66
+ ExceptionDetails: error,
67
+ Description: "Unable to set data in default in-memory cache."
68
+ });
69
+ }
70
+ },
71
+ removeData: key => {
72
+ try {
73
+ _defaultCacheManager.defaultCacheManager.InternalCache[key] = {};
74
+ } catch (error) {
75
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
76
+ Event: _TelemetryConstants.TelemetryEvent.InMemoryDataStoreFailed,
77
+ ExceptionDetails: error,
78
+ Description: "Unable to remove data from default in-memory cache."
79
+ });
80
+ }
81
+ }
82
+ };
83
+ return dataStoreProvider;
84
+ };
85
+
86
+ exports.inMemoryDataStore = inMemoryDataStore;
@@ -101,6 +101,8 @@ exports.TelemetryEvent = TelemetryEvent;
101
101
  TelemetryEvent["PostChatContextCallSucceed"] = "PostChatContextCallSucceed";
102
102
  TelemetryEvent["PostChatContextCallFailed"] = "PostChatContextCallFailed";
103
103
  TelemetryEvent["ParseAdaptiveCardFailed"] = "ParseAdaptiveCardFailed";
104
+ TelemetryEvent["ClientDataStoreProviderFailed"] = "ClientDataStoreProviderFailed";
105
+ TelemetryEvent["InMemoryDataStoreFailed"] = "InMemoryDataStoreFailed";
104
106
  TelemetryEvent["WebChatLoaded"] = "WebChatLoaded";
105
107
  TelemetryEvent["LCWChatButtonClicked"] = "LCWChatButtonClicked";
106
108
  TelemetryEvent["LCWChatButtonShow"] = "LCWChatButtonShow";
@@ -143,6 +145,8 @@ exports.TelemetryEvent = TelemetryEvent;
143
145
  TelemetryEvent["SuppressBotMagicCodeFailed"] = "SuppressBotMagicCodeFailed";
144
146
  TelemetryEvent["GetConversationDetailsException"] = "GetConversationDetailsException";
145
147
  TelemetryEvent["BrowserUnloadEventStarted"] = "BrowserUnloadEventStarted";
148
+ TelemetryEvent["GetAuthTokenCalled"] = "GetAuthTokenCalled";
149
+ TelemetryEvent["ReceivedNullOrEmptyToken"] = "ReceivedNullOrEmptyToken";
146
150
  TelemetryEvent["ProcessingHTMLTextMiddlewareFailed"] = "ProcessingHTMLTextMiddlewareFailed";
147
151
  TelemetryEvent["ProcessingSanitizationMiddlewareFailed"] = "ProcessingSanitizationMiddlewareFailed";
148
152
  TelemetryEvent["FormatTagsMiddlewareJSONStringifyFailed"] = "FormatTagsMiddlewareJSONStringifyFailed";
@@ -169,12 +173,18 @@ exports.TelemetryEvent = TelemetryEvent;
169
173
  TelemetryEvent["MessageSent"] = "MessageSent";
170
174
  TelemetryEvent["MessageReceived"] = "MessageReceived";
171
175
  TelemetryEvent["CustomContextReceived"] = "CustomContextReceived";
176
+ TelemetryEvent["NetworkDisconnected"] = "NetworkDisconnected";
177
+ TelemetryEvent["NetworkReconnected"] = "NetworkReconnected";
172
178
  })(TelemetryEvent || (exports.TelemetryEvent = TelemetryEvent = {}));
173
179
 
174
180
  class TelemetryConstants {
175
181
  static map(eventTypeOrScenarioType) {
176
182
  switch (eventTypeOrScenarioType) {
177
183
  case TelemetryEvent.ParseAdaptiveCardFailed:
184
+ case TelemetryEvent.ReceivedNullOrEmptyToken:
185
+ case TelemetryEvent.GetAuthTokenCalled:
186
+ case TelemetryEvent.SuppressBotMagicCodeSucceeded:
187
+ case TelemetryEvent.SuppressBotMagicCodeFailed:
178
188
  return ScenarioType.CONFIG_VALIDATION;
179
189
 
180
190
  case TelemetryEvent.WebChatLoaded:
@@ -215,6 +225,10 @@ class TelemetryConstants {
215
225
  case TelemetryEvent.MessageReceived:
216
226
  case TelemetryEvent.CustomContextReceived:
217
227
  case TelemetryEvent.BrowserUnloadEventStarted:
228
+ case TelemetryEvent.NetworkDisconnected:
229
+ case TelemetryEvent.NetworkReconnected:
230
+ case TelemetryEvent.AudioToggleButtonClicked:
231
+ case TelemetryEvent.EmailTranscriptCancelButtonClicked:
218
232
  return ScenarioType.ACTIONS;
219
233
 
220
234
  case TelemetryEvent.StartChatSDKCall:
@@ -231,6 +245,7 @@ class TelemetryConstants {
231
245
  case TelemetryEvent.EndChatSDKCallFailed:
232
246
  case TelemetryEvent.PostChatContextCallFailed:
233
247
  case TelemetryEvent.PostChatContextCallSucceed:
248
+ case TelemetryEvent.GetConversationDetailsException:
234
249
  return ScenarioType.SDK;
235
250
 
236
251
  case TelemetryEvent.VideoCallAcceptButtonClick:
@@ -7,9 +7,7 @@ exports.ariaTelemetryLogger = void 0;
7
7
 
8
8
  var _utils = require("../../utils");
9
9
 
10
- var _AWTEventProperties = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTEventProperties"));
11
-
12
- var _AWTLogManager = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTLogManager"));
10
+ var _AriaSDK = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AriaSDK");
13
11
 
14
12
  var _Enums = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums");
15
13
 
@@ -17,8 +15,6 @@ var _Constants = require("../../Constants");
17
15
 
18
16
  var _TelemetryManager = require("../TelemetryManager");
19
17
 
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
18
  const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
23
19
  let _logger;
24
20
 
@@ -48,10 +44,10 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
48
44
  }
49
45
 
50
46
  try {
51
- _logger = _AWTLogManager.default.initialize(ariaTelemetryKey, configuration);
47
+ _logger = _AriaSDK.AWTLogManager.initialize(ariaTelemetryKey, configuration);
52
48
 
53
49
  if (_logger === undefined) {
54
- _logger = _AWTLogManager.default.getLogger(ariaTelemetryKey);
50
+ _logger = _AriaSDK.AWTLogManager.getLogger(ariaTelemetryKey);
55
51
  }
56
52
  } catch (error) {
57
53
  console.log(error);
@@ -64,18 +60,35 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
64
60
  const ariaLogger = {
65
61
  log: (logLevel, telemetryInput) => {
66
62
  try {
67
- let property;
68
- const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo;
69
- const eventProperties = new _AWTEventProperties.default();
70
- eventProperties.setName(telemetryInput.scenarioType);
63
+ var _telemetryInput$telem;
71
64
 
72
- if (telemetryInfo) {
73
- for (const key of Object.keys(telemetryInfo)) {
74
- property = typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key];
75
- eventProperties.setProperty(key, property);
76
- }
65
+ const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : (_telemetryInput$telem = telemetryInput.telemetryInfo) === null || _telemetryInput$telem === void 0 ? void 0 : _telemetryInput$telem.telemetryInfo; // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
66
 
78
- eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, _Constants.Constants.LiveChatWidget, _Enums.AWTPiiKind.GenericData);
67
+ const eventProperties = {
68
+ name: telemetryInput.scenarioType,
69
+ properties: {}
70
+ };
71
+
72
+ if (telemetryInfo) {
73
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
74
+ Object.keys(telemetryInfo).forEach((key, index) => {
75
+ if (!(0, _utils.isNullOrUndefined)(telemetryInfo[key]) && !(0, _utils.isNullOrEmptyString)(telemetryInfo[key])) {
76
+ const property = {
77
+ value: typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key],
78
+ type: typeof telemetryInfo[key] === "number" ? _Enums.AWTPropertyType.Double : _Enums.AWTPropertyType.String,
79
+ pii: _Enums.AWTPiiKind.NotSet,
80
+ cc: _Enums.AWTCustomerContentKind.NotSet
81
+ };
82
+ eventProperties.properties[key] = property;
83
+ }
84
+ });
85
+ const nameProperty = {
86
+ value: _Constants.Constants.LiveChatWidget,
87
+ type: _Enums.AWTPropertyType.String,
88
+ pii: _Enums.AWTPiiKind.GenericData,
89
+ cc: _Enums.AWTCustomerContentKind.NotSet
90
+ };
91
+ eventProperties.properties[ariaTelemetryApplicationName] = nameProperty;
79
92
  }
80
93
 
81
94
  logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
@@ -84,7 +97,7 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
84
97
  }
85
98
  },
86
99
  dispose: () => {
87
- _AWTLogManager.default.flush(function () {
100
+ _AriaSDK.AWTLogManager.flush(function () {
88
101
  console.log("Aria logger disposed");
89
102
  });
90
103
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
6
+ exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
7
7
 
8
8
  var _Constants = require("./Constants");
9
9
 
@@ -13,6 +13,8 @@ var _KeyCodes = require("./KeyCodes");
13
13
 
14
14
  var _TelemetryConstants = require("./telemetry/TelemetryConstants");
15
15
 
16
+ var _md5Typescript = require("md5-typescript");
17
+
16
18
  const getElementBySelector = selector => {
17
19
  let element;
18
20
 
@@ -354,26 +356,31 @@ const getDomain = hostValue => {
354
356
 
355
357
  exports.getDomain = getDomain;
356
358
 
357
- const getWidgetCacheId = (orgId, widgetId) => {
358
- return `${_Constants.Constants.ChatWidgetStateChangedPrefix}_${orgId}_${widgetId}`;
359
+ const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
360
+ const widgetCacheId = `${widgetInstanceId}_${orgId}_${widgetId}`;
361
+ return _md5Typescript.Md5.init(widgetCacheId);
359
362
  };
360
363
 
361
364
  exports.getWidgetCacheId = getWidgetCacheId;
362
365
 
363
- const getWidgetEndChatEventName = (orgId, widgetId) => {
366
+ const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) => {
367
+ if (!isNullOrEmptyString(widgetInstanceId)) {
368
+ return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
369
+ }
370
+
364
371
  return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
365
372
  }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
366
373
 
367
374
 
368
375
  exports.getWidgetEndChatEventName = getWidgetEndChatEventName;
369
376
 
370
- const getStateFromCache = (orgId, widgetId) => {
377
+ const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
371
378
  // Getting updated state from cache
372
379
  try {
373
380
  if (_DataStoreManager.DataStoreManager.clientDataStore) {
374
381
  var _DataStoreManager$cli;
375
382
 
376
- const widgetStateEventName = getWidgetCacheId(orgId, widgetId);
383
+ const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
377
384
  const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
378
385
  const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
379
386
  return persistedState;
@@ -408,4 +415,10 @@ const addDelayInMs = ms => {
408
415
  return new Promise(resolve => setTimeout(resolve, ms));
409
416
  };
410
417
 
411
- exports.addDelayInMs = addDelayInMs;
418
+ exports.addDelayInMs = addDelayInMs;
419
+
420
+ const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
421
+ return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
422
+ };
423
+
424
+ exports.getBroadcastChannelName = getBroadcastChannelName;
@@ -81,12 +81,12 @@ const ConfirmationPaneStateful = props => {
81
81
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
82
82
  payload: false
83
83
  });
84
- const previousFocused = state.appStates.previousElementOnFocusBeforeModalOpen;
84
+ const previousFocusedElementId = state.appStates.previousElementIdOnFocusBeforeModalOpen;
85
85
 
86
- if (previousFocused) {
87
- (0, _utils.setFocusOnElement)(previousFocused);
86
+ if (previousFocusedElementId) {
87
+ (0, _utils.setFocusOnElement)("#" + previousFocusedElementId);
88
88
  dispatch({
89
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
89
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
90
90
  payload: null
91
91
  });
92
92
  } else {
@@ -50,16 +50,16 @@ const EmailTranscriptPaneStateful = props => {
50
50
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_EMAIL_TRANSCRIPT_PANE,
51
51
  payload: false
52
52
  });
53
- const previousFocused = state.appStates.previousElementOnFocusBeforeModalOpen;
53
+ const previousFocusedElementId = state.appStates.previousElementIdOnFocusBeforeModalOpen;
54
54
 
55
- if (previousFocused) {
56
- (0, _utils.setFocusOnElement)(previousFocused);
55
+ if (previousFocusedElementId) {
56
+ (0, _utils.setFocusOnElement)("#" + previousFocusedElementId);
57
57
  } else {
58
58
  (0, _utils.setFocusOnSendBox)();
59
59
  }
60
60
 
61
61
  dispatch({
62
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
62
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
63
63
  payload: null
64
64
  });
65
65
  (0, _utils.setTabIndices)(elements, initialTabIndexMap, true);
@@ -79,13 +79,12 @@ const FooterStateful = props => {
79
79
  Description: "Email Transcript button clicked."
80
80
  });
81
81
 
82
- const emailTranscriptButtonId = (footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP = footerProps.controlProps) === null || _footerProps$controlP === void 0 ? void 0 : (_footerProps$controlP2 = _footerProps$controlP.emailTranscriptButtonProps) === null || _footerProps$controlP2 === void 0 ? void 0 : _footerProps$controlP2.id) ?? "oc-lcw-footer-emailtranscript-button";
83
- const emailTranscriptButton = document.getElementById(emailTranscriptButtonId);
82
+ const emailTranscriptButtonId = (footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP = footerProps.controlProps) === null || _footerProps$controlP === void 0 ? void 0 : (_footerProps$controlP2 = _footerProps$controlP.emailTranscriptButtonProps) === null || _footerProps$controlP2 === void 0 ? void 0 : _footerProps$controlP2.id) ?? `${controlProps.id}-emailtranscript-button`;
84
83
 
85
- if (emailTranscriptButton) {
84
+ if (emailTranscriptButtonId) {
86
85
  dispatch({
87
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
88
- payload: emailTranscriptButton
86
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
87
+ payload: emailTranscriptButtonId
89
88
  });
90
89
  }
91
90
 
@@ -110,14 +109,7 @@ const FooterStateful = props => {
110
109
  isAudioMuted: state.appStates.isAudioMuted
111
110
  }
112
111
  };
113
- const footerId = (controlProps === null || controlProps === void 0 ? void 0 : controlProps.id) ?? "oc-lcw-footer";
114
- const footer = document.getElementById(footerId);
115
-
116
- if (footer) {
117
- footer.style.display = hideFooterDisplay ? "none" : "";
118
- }
119
-
120
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Footer, {
112
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hideFooterDisplay && /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Footer, {
121
113
  componentOverrides: footerProps === null || footerProps === void 0 ? void 0 : footerProps.componentOverrides,
122
114
  controlProps: controlProps,
123
115
  styleProps: footerProps === null || footerProps === void 0 ? void 0 : footerProps.styleProps
@@ -59,6 +59,8 @@ const HeaderStateful = props => {
59
59
  });
60
60
  },
61
61
  onCloseClick: async () => {
62
+ var _props$headerProps, _props$headerProps$co, _props$headerProps$co2;
63
+
62
64
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
63
65
  Event: _TelemetryConstants.TelemetryEvent.HeaderCloseButtonClicked,
64
66
  Description: "Header Close button clicked."
@@ -72,17 +74,22 @@ const HeaderStateful = props => {
72
74
  } else {
73
75
  const skipEndChatSDK = true;
74
76
  const skipCloseChat = false;
75
- await endChat(adapter, skipEndChatSDK, skipCloseChat);
77
+ const postMessageToOtherTabs = true;
78
+ await endChat(adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTabs);
76
79
  }
77
80
 
78
- dispatch({
79
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
80
- payload: document.getElementById(`${controlProps.id}-closebutton`)
81
- });
81
+ const closeButtonId = ((_props$headerProps = props.headerProps) === null || _props$headerProps === void 0 ? void 0 : (_props$headerProps$co = _props$headerProps.controlProps) === null || _props$headerProps$co === void 0 ? void 0 : (_props$headerProps$co2 = _props$headerProps$co.closeButtonProps) === null || _props$headerProps$co2 === void 0 ? void 0 : _props$headerProps$co2.id) ?? `${controlProps.id}-close-button`;
82
+
83
+ if (closeButtonId) {
84
+ dispatch({
85
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
86
+ payload: closeButtonId
87
+ });
88
+ }
82
89
  },
83
90
  ...(headerProps === null || headerProps === void 0 ? void 0 : headerProps.controlProps),
84
- hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP = headerProps.controlProps) === null || _headerProps$controlP === void 0 ? void 0 : _headerProps$controlP.hideTitle),
85
- hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP2 = headerProps.controlProps) === null || _headerProps$controlP2 === void 0 ? void 0 : _headerProps$controlP2.hideIcon),
91
+ hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP = headerProps.controlProps) === null || _headerProps$controlP === void 0 ? void 0 : _headerProps$controlP.hideTitle),
92
+ hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP2 = headerProps.controlProps) === null || _headerProps$controlP2 === void 0 ? void 0 : _headerProps$controlP2.hideIcon),
86
93
  hideCloseButton: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.Prechat || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP3 = headerProps.controlProps) === null || _headerProps$controlP3 === void 0 ? void 0 : _headerProps$controlP3.hideCloseButton)
87
94
  };
88
95
  const outOfOfficeControlProps = {
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ActivityStreamHandler = void 0;
7
+
8
+ var _Deferred = require("./Deferred");
9
+
10
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+
12
+ class ActivityStreamHandler {
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+
16
+ /**
17
+ * Use of a deferred pattern, to hold the execution of the activity.
18
+ *
19
+ * */
20
+ static cork() {
21
+ ActivityStreamHandler.restoreDeferred = new _Deferred.Deferred();
22
+ ActivityStreamHandler.restorePromise = ActivityStreamHandler.restoreDeferred.promise;
23
+ }
24
+ /**
25
+ * Resolve the promise, releasing it to continue with the execution of the activity.
26
+ *
27
+ * */
28
+
29
+
30
+ static uncork() {
31
+ ActivityStreamHandler.restoreDeferred.resolve();
32
+ }
33
+
34
+ }
35
+
36
+ exports.ActivityStreamHandler = ActivityStreamHandler;
37
+
38
+ _defineProperty(ActivityStreamHandler, "restoreDeferred", {
39
+ resolve: () => {
40
+ return "initialState";
41
+ }
42
+ });
43
+
44
+ _defineProperty(ActivityStreamHandler, "restorePromise", void 0);
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DefaultActivitySubscriber = void 0;
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ class DefaultActivitySubscriber {
11
+ constructor() {
12
+ _defineProperty(this, "observer", void 0);
13
+ }
14
+
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ async next(activity) {
17
+ this.observer.next(activity);
18
+ return false;
19
+ }
20
+
21
+ }
22
+
23
+ exports.DefaultActivitySubscriber = DefaultActivitySubscriber;