@microsoft/omnichannel-chat-widget 1.6.3-main.18ee949 → 1.6.3-main.cd40716

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.
@@ -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.getWidgetCacheIdfromProps = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getConversationDetailsCall = exports.getBroadcastChannelName = exports.formatTemplateString = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.debounceLeading = exports.createTimer = exports.createFileAndDownload = exports.checkContactIdError = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
6
+ exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseLowerCaseString = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheIdfromProps = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getConversationDetailsCall = exports.getBroadcastChannelName = exports.formatTemplateString = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.debounceLeading = exports.createTimer = exports.createFileAndDownload = exports.checkContactIdError = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
7
7
  var _Constants = require("./Constants");
8
8
  var _TelemetryConstants = require("./telemetry/TelemetryConstants");
9
9
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
@@ -449,4 +449,8 @@ const formatTemplateString = (templateMessage, values) => {
449
449
  return typeof values[index] !== "undefined" ? values[index] : match;
450
450
  });
451
451
  };
452
- exports.formatTemplateString = formatTemplateString;
452
+ exports.formatTemplateString = formatTemplateString;
453
+ const parseLowerCaseString = property => {
454
+ return String(property).toLowerCase();
455
+ };
456
+ exports.parseLowerCaseString = parseLowerCaseString;
@@ -7,6 +7,7 @@ exports.removeAuthTokenProvider = exports.handleAuthentication = exports.getAuth
7
7
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
8
8
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
9
9
  var _utils = require("../../../common/utils");
10
+ var _Constants = require("../../../common/Constants");
10
11
  const getAuthClientFunction = chatConfig => {
11
12
  let authClientFunction = undefined;
12
13
  if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
@@ -32,10 +33,12 @@ const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
32
33
  });
33
34
  return true;
34
35
  } else {
36
+ // instead of returning false, it's more appropiate to thrown an error to force error handling on the caller side
37
+ // this will help to avoid the error to be ignored and the chat to be started
35
38
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
36
39
  Event: _TelemetryConstants.TelemetryEvent.ReceivedNullOrEmptyToken
37
40
  });
38
- return false;
41
+ throw new Error(_Constants.WidgetLoadCustomErrorString.AuthenticationFailedErrorString);
39
42
  }
40
43
  }
41
44
  return false;
@@ -119,7 +119,7 @@ const endChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatSt
119
119
  Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
120
120
  });
121
121
  //Get auth token again if chat continued for longer time, otherwise gets 401 error
122
- await handleAuthenticationIfEnabled(props, chatSDK);
122
+ await (0, _authHelper.handleAuthentication)(chatSDK, props.chatConfig, props.getAuthToken);
123
123
  await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
124
124
  } catch (ex) {
125
125
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
@@ -308,27 +308,6 @@ const closeChatWidget = (dispatch, props, state) => {
308
308
  });
309
309
  };
310
310
 
311
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
312
- const handleAuthenticationIfEnabled = async (props, chatSDK) => {
313
- //Unable to end chat if token has expired
314
- if (props.getAuthToken) {
315
- const authClientFunction = (0, _authHelper.getAuthClientFunction)(props.chatConfig);
316
- if (props.getAuthToken && authClientFunction) {
317
- // set auth token to chat sdk before end chat
318
- const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, props.chatConfig, props.getAuthToken);
319
- if (!authSuccess) {
320
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
321
- Event: _TelemetryConstants.TelemetryEvent.GetAuthTokenFailed,
322
- ExceptionDetails: {
323
- exception: "Unable to get auth token during end chat"
324
- }
325
- });
326
- throw new Error("handleAuthenticationIfEnabled:Failed to get authentication token");
327
- }
328
- }
329
- }
330
- };
331
-
332
311
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
333
312
  const chatTokenCleanUp = async dispatch => {
334
313
  //Just do cleanup here
@@ -13,6 +13,7 @@ var _Constants = require("../../../common/Constants");
13
13
  var _ConversationState = require("../../../contexts/common/ConversationState");
14
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
15
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
16
+ var _startChatErrorHandler = require("./startChatErrorHandler");
16
17
  // Return value: should start normal chat flow when reconnect is enabled
17
18
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
19
  const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initStartChat, state) => {
@@ -21,7 +22,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
21
22
  const isAuthenticatedChat = (_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && (_props$chatConfig$Liv = _props$chatConfig.LiveChatConfigAuthSettings) !== null && _props$chatConfig$Liv !== void 0 && _props$chatConfig$Liv.msdyn_javascriptclientfunction ? true : false;
22
23
 
23
24
  // Get chat reconnect context
24
- const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
25
+ const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat, dispatch);
25
26
 
26
27
  // Redirect if enabled
27
28
  if (reconnectChatContext !== null && reconnectChatContext !== void 0 && reconnectChatContext.redirectURL) {
@@ -57,7 +58,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
57
58
 
58
59
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
60
  exports.handleChatReconnect = handleChatReconnect;
60
- const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticatedChat) => {
61
+ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticatedChat, dispatch) => {
61
62
  try {
62
63
  var _props$reconnectChatP4;
63
64
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
@@ -69,6 +70,7 @@ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticat
69
70
  };
70
71
  // Get auth token for getting chat reconnect context
71
72
  if (isAuthenticatedChat) {
73
+ // handle authentication will throw error if auth token is not available, so no need to check for response
72
74
  await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, props.getAuthToken);
73
75
  }
74
76
  const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext(chatReconnectOptionalParams));
@@ -78,7 +80,9 @@ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticat
78
80
  (0, _authHelper.removeAuthTokenProvider)(chatSDK);
79
81
  }
80
82
  return reconnectChatContext;
81
- } catch (error) {
83
+ }
84
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
+ catch (error) {
82
86
  (0, _utils.checkContactIdError)(error);
83
87
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
84
88
  Event: _TelemetryConstants.TelemetryEvent.GetChatReconnectContextSDKCallFailed,
@@ -86,6 +90,12 @@ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticat
86
90
  exception: error
87
91
  }
88
92
  });
93
+
94
+ // when auth token is not available, propagate the error to stop the execution and ensure error pane is loaded
95
+ if ((error === null || error === void 0 ? void 0 : error.message) == _Constants.WidgetLoadCustomErrorString.AuthenticationFailedErrorString) {
96
+ (0, _startChatErrorHandler.handleStartChatError)(dispatch, chatSDK, props, new Error(_Constants.WidgetLoadCustomErrorString.AuthenticationFailedErrorString), false);
97
+ throw error;
98
+ }
89
99
  }
90
100
  };
91
101
 
@@ -29,6 +29,11 @@ const handleStartChatError = (dispatch, chatSDK, props, ex, isStartChatSuccessfu
29
29
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_FAILURE_TYPE,
30
30
  payload: _StartChatFailureType.StartChatFailureType.AuthSetupError
31
31
  });
32
+ // set conversation to error to enforce error UI pane
33
+ dispatch({
34
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
35
+ payload: _ConversationState.ConversationState.Error
36
+ });
32
37
  logWidgetLoadCompleteWithError(ex);
33
38
  }
34
39
  if (ex.message === _Constants.WidgetLoadCustomErrorString.NetworkErrorString) {
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isMaskingforCustomer = void 0;
7
+ var _utils = require("../../../../common/utils");
7
8
  const isMaskingforCustomer = maskingInfo => {
8
9
  var _maskingInfo$setting;
9
10
  // If the masking info (containing masking setting and masking rules) is missing or empty, return false.
@@ -14,8 +15,9 @@ const isMaskingforCustomer = maskingInfo => {
14
15
 
15
16
  // If the masking rules are provided and;
16
17
  // If the masking setting is NOT null and masking for customer is NOT null, return the configuration
17
- if ((_maskingInfo$setting = maskingInfo.setting) !== null && _maskingInfo$setting !== void 0 && _maskingInfo$setting.msdyn_maskforcustomer) {
18
- return maskingInfo.setting.msdyn_maskforcustomer;
18
+ if (!(0, _utils.isNullOrUndefined)((_maskingInfo$setting = maskingInfo.setting) === null || _maskingInfo$setting === void 0 ? void 0 : _maskingInfo$setting.msdyn_maskforcustomer)) {
19
+ var _maskingInfo$setting2;
20
+ return (0, _utils.parseLowerCaseString)(maskingInfo === null || maskingInfo === void 0 ? void 0 : (_maskingInfo$setting2 = maskingInfo.setting) === null || _maskingInfo$setting2 === void 0 ? void 0 : _maskingInfo$setting2.msdyn_maskforcustomer) === "true";
19
21
  }
20
22
 
21
23
  // In all other cases, even if masking setting is missing, return true to apply the masking for backward compatibility (i.e. in old versions, OC does not have masking info settings)
@@ -413,4 +413,7 @@ export const formatTemplateString = (templateMessage, values) => {
413
413
  return templateMessage.replace(/{(\d+)}/g, (match, index) => {
414
414
  return typeof values[index] !== "undefined" ? values[index] : match;
415
415
  });
416
+ };
417
+ export const parseLowerCaseString = property => {
418
+ return String(property).toLowerCase();
416
419
  };
@@ -1,6 +1,7 @@
1
1
  import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
2
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
3
3
  import { isNullOrEmptyString } from "../../../common/utils";
4
+ import { WidgetLoadCustomErrorString } from "../../../common/Constants";
4
5
  const getAuthClientFunction = chatConfig => {
5
6
  let authClientFunction = undefined;
6
7
  if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
@@ -25,10 +26,12 @@ const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
25
26
  });
26
27
  return true;
27
28
  } else {
29
+ // instead of returning false, it's more appropiate to thrown an error to force error handling on the caller side
30
+ // this will help to avoid the error to be ignored and the chat to be started
28
31
  TelemetryHelper.logActionEvent(LogLevel.ERROR, {
29
32
  Event: TelemetryEvent.ReceivedNullOrEmptyToken
30
33
  });
31
- return false;
34
+ throw new Error(WidgetLoadCustomErrorString.AuthenticationFailedErrorString);
32
35
  }
33
36
  }
34
37
  return false;
@@ -1,6 +1,6 @@
1
1
  import { ConfirmationState, Constants, ConversationEndEntity, ParticipantType, PrepareEndChatDescriptionConstants } from "../../../common/Constants";
2
2
  import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
3
- import { getAuthClientFunction, handleAuthentication } from "./authHelper";
3
+ import { handleAuthentication } from "./authHelper";
4
4
  import { getConversationDetailsCall, getWidgetEndChatEventName } from "../../../common/utils";
5
5
  import { getPostChatContext, initiatePostChat } from "./renderSurveyHelpers";
6
6
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
@@ -113,7 +113,7 @@ const endChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatSt
113
113
  Event: TelemetryEvent.EndChatSDKCall
114
114
  });
115
115
  //Get auth token again if chat continued for longer time, otherwise gets 401 error
116
- await handleAuthenticationIfEnabled(props, chatSDK);
116
+ await handleAuthentication(chatSDK, props.chatConfig, props.getAuthToken);
117
117
  await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
118
118
  } catch (ex) {
119
119
  TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
@@ -296,27 +296,6 @@ const closeChatWidget = (dispatch, props, state) => {
296
296
  });
297
297
  };
298
298
 
299
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
300
- const handleAuthenticationIfEnabled = async (props, chatSDK) => {
301
- //Unable to end chat if token has expired
302
- if (props.getAuthToken) {
303
- const authClientFunction = getAuthClientFunction(props.chatConfig);
304
- if (props.getAuthToken && authClientFunction) {
305
- // set auth token to chat sdk before end chat
306
- const authSuccess = await handleAuthentication(chatSDK, props.chatConfig, props.getAuthToken);
307
- if (!authSuccess) {
308
- TelemetryHelper.logActionEvent(LogLevel.ERROR, {
309
- Event: TelemetryEvent.GetAuthTokenFailed,
310
- ExceptionDetails: {
311
- exception: "Unable to get auth token during end chat"
312
- }
313
- });
314
- throw new Error("handleAuthenticationIfEnabled:Failed to get authentication token");
315
- }
316
- }
317
- }
318
- };
319
-
320
299
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
321
300
  const chatTokenCleanUp = async dispatch => {
322
301
  //Just do cleanup here
@@ -3,10 +3,12 @@ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../../../common/teleme
3
3
  import { checkContactIdError, isNullOrEmptyString, isNullOrUndefined } from "../../../common/utils";
4
4
  import { handleAuthentication, removeAuthTokenProvider } from "./authHelper";
5
5
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
6
- import { ConversationMode } from "../../../common/Constants";
6
+ import { ConversationMode, WidgetLoadCustomErrorString } from "../../../common/Constants";
7
7
  import { ConversationState } from "../../../contexts/common/ConversationState";
8
8
  import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
9
9
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
10
+ import { handleStartChatError } from "./startChatErrorHandler";
11
+
10
12
  // Return value: should start normal chat flow when reconnect is enabled
11
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
14
  const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initStartChat, state) => {
@@ -15,7 +17,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
15
17
  const isAuthenticatedChat = (_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && (_props$chatConfig$Liv = _props$chatConfig.LiveChatConfigAuthSettings) !== null && _props$chatConfig$Liv !== void 0 && _props$chatConfig$Liv.msdyn_javascriptclientfunction ? true : false;
16
18
 
17
19
  // Get chat reconnect context
18
- const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
20
+ const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat, dispatch);
19
21
 
20
22
  // Redirect if enabled
21
23
  if (reconnectChatContext !== null && reconnectChatContext !== void 0 && reconnectChatContext.redirectURL) {
@@ -50,7 +52,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
50
52
  };
51
53
 
52
54
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
- const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticatedChat) => {
55
+ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticatedChat, dispatch) => {
54
56
  try {
55
57
  var _props$reconnectChatP4;
56
58
  TelemetryHelper.logSDKEvent(LogLevel.INFO, {
@@ -62,6 +64,7 @@ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticat
62
64
  };
63
65
  // Get auth token for getting chat reconnect context
64
66
  if (isAuthenticatedChat) {
67
+ // handle authentication will throw error if auth token is not available, so no need to check for response
65
68
  await handleAuthentication(chatSDK, chatConfig, props.getAuthToken);
66
69
  }
67
70
  const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext(chatReconnectOptionalParams));
@@ -71,7 +74,9 @@ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticat
71
74
  removeAuthTokenProvider(chatSDK);
72
75
  }
73
76
  return reconnectChatContext;
74
- } catch (error) {
77
+ }
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ catch (error) {
75
80
  checkContactIdError(error);
76
81
  TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
77
82
  Event: TelemetryEvent.GetChatReconnectContextSDKCallFailed,
@@ -79,6 +84,12 @@ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticat
79
84
  exception: error
80
85
  }
81
86
  });
87
+
88
+ // when auth token is not available, propagate the error to stop the execution and ensure error pane is loaded
89
+ if ((error === null || error === void 0 ? void 0 : error.message) == WidgetLoadCustomErrorString.AuthenticationFailedErrorString) {
90
+ handleStartChatError(dispatch, chatSDK, props, new Error(WidgetLoadCustomErrorString.AuthenticationFailedErrorString), false);
91
+ throw error;
92
+ }
82
93
  }
83
94
  };
84
95
 
@@ -24,6 +24,11 @@ export const handleStartChatError = (dispatch, chatSDK, props, ex, isStartChatSu
24
24
  type: LiveChatWidgetActionType.SET_START_CHAT_FAILURE_TYPE,
25
25
  payload: StartChatFailureType.AuthSetupError
26
26
  });
27
+ // set conversation to error to enforce error UI pane
28
+ dispatch({
29
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
30
+ payload: ConversationState.Error
31
+ });
27
32
  logWidgetLoadCompleteWithError(ex);
28
33
  }
29
34
  if (ex.message === WidgetLoadCustomErrorString.NetworkErrorString) {
@@ -1,3 +1,4 @@
1
+ import { isNullOrUndefined, parseLowerCaseString } from "../../../../common/utils";
1
2
  export const isMaskingforCustomer = maskingInfo => {
2
3
  var _maskingInfo$setting;
3
4
  // If the masking info (containing masking setting and masking rules) is missing or empty, return false.
@@ -8,8 +9,9 @@ export const isMaskingforCustomer = maskingInfo => {
8
9
 
9
10
  // If the masking rules are provided and;
10
11
  // If the masking setting is NOT null and masking for customer is NOT null, return the configuration
11
- if ((_maskingInfo$setting = maskingInfo.setting) !== null && _maskingInfo$setting !== void 0 && _maskingInfo$setting.msdyn_maskforcustomer) {
12
- return maskingInfo.setting.msdyn_maskforcustomer;
12
+ if (!isNullOrUndefined((_maskingInfo$setting = maskingInfo.setting) === null || _maskingInfo$setting === void 0 ? void 0 : _maskingInfo$setting.msdyn_maskforcustomer)) {
13
+ var _maskingInfo$setting2;
14
+ return parseLowerCaseString(maskingInfo === null || maskingInfo === void 0 ? void 0 : (_maskingInfo$setting2 = maskingInfo.setting) === null || _maskingInfo$setting2 === void 0 ? void 0 : _maskingInfo$setting2.msdyn_maskforcustomer) === "true";
13
15
  }
14
16
 
15
17
  // In all other cases, even if masking setting is missing, return true to apply the masking for backward compatibility (i.e. in old versions, OC does not have masking info settings)
@@ -42,3 +42,4 @@ export declare const createFileAndDownload: (fileName: string, blobData: string,
42
42
  * @returns formatted string with replaced values
43
43
  */
44
44
  export declare const formatTemplateString: (templateMessage: string, values: any) => string;
45
+ export declare const parseLowerCaseString: (property: string | boolean | undefined) => string;
@@ -5,7 +5,7 @@ import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetA
5
5
  import { ILiveChatWidgetContext } from "../../../contexts/common/ILiveChatWidgetContext";
6
6
  import { ILiveChatWidgetProps } from "../interfaces/ILiveChatWidgetProps";
7
7
  declare const handleChatReconnect: (chatSDK: any, props: ILiveChatWidgetProps, dispatch: Dispatch<ILiveChatWidgetAction>, setAdapter: any, initStartChat: any, state: ILiveChatWidgetContext) => Promise<boolean>;
8
- declare const getChatReconnectContext: (chatSDK: any, chatConfig: ChatConfig, props: any, isAuthenticatedChat: boolean) => Promise<any>;
8
+ declare const getChatReconnectContext: (chatSDK: any, chatConfig: ChatConfig, props: any, isAuthenticatedChat: boolean, dispatch: Dispatch<ILiveChatWidgetAction>) => Promise<any>;
9
9
  declare const isReconnectEnabled: (chatConfig?: ChatConfig | undefined) => boolean;
10
10
  declare const isPersistentEnabled: (chatConfig?: ChatConfig | undefined) => boolean;
11
11
  export { handleChatReconnect, isReconnectEnabled, isPersistentEnabled, getChatReconnectContext };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/omnichannel-chat-widget",
3
- "version": "1.6.3-main.18ee949",
3
+ "version": "1.6.3-main.cd40716",
4
4
  "description": "Microsoft Omnichannel Chat Widget",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/types/index.d.ts",
@@ -74,8 +74,8 @@
74
74
  "webpack-cli": "^4.9.2"
75
75
  },
76
76
  "dependencies": {
77
- "@microsoft/omnichannel-chat-components": "^1.1.1",
78
- "@microsoft/omnichannel-chat-sdk": "1.6.2",
77
+ "@microsoft/omnichannel-chat-components": "^1.1.2",
78
+ "@microsoft/omnichannel-chat-sdk": "1.6.3",
79
79
  "abort-controller-es5": "^2.0.1",
80
80
  "dompurify": "^2.3.4",
81
81
  "markdown-it": "^12.3.2",