@microsoft/omnichannel-chat-widget 1.8.2-main.e3c1d40 → 1.8.2-main.f638bed
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.
- package/README.md +48 -1
- package/lib/cjs/common/Constants.js +16 -3
- package/lib/cjs/common/telemetry/TelemetryConstants.js +2 -0
- package/lib/cjs/common/utils.js +27 -2
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +4 -4
- package/lib/cjs/components/draggable/DraggableChatWidget.js +16 -1
- package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +22 -9
- package/lib/cjs/components/livechatwidget/common/customEventHandler.js +53 -0
- package/lib/cjs/components/livechatwidget/common/endChat.js +18 -7
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +32 -1
- package/lib/cjs/components/livechatwidget/common/liveChatConfigUtils.js +18 -1
- package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +31 -7
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +15 -2
- package/lib/cjs/components/livechatwidget/common/startChat.js +6 -4
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +27 -12
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +4 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +12 -6
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware.js +41 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +45 -0
- package/lib/cjs/contexts/common/CustomEventType.js +1 -0
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +3 -1
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +3 -1
- package/lib/cjs/contexts/createReducer.js +30 -0
- package/lib/cjs/controller/componentController.js +2 -2
- package/lib/cjs/firstresponselatency/FirstMessageTrackerFromBot.js +101 -36
- package/lib/cjs/firstresponselatency/FirstResponseLatencyTracker.js +39 -21
- package/lib/cjs/firstresponselatency/util.js +60 -31
- package/lib/cjs/plugins/newMessageEventHandler.js +12 -6
- package/lib/esm/common/Constants.js +14 -2
- package/lib/esm/common/telemetry/TelemetryConstants.js +2 -0
- package/lib/esm/common/utils.js +21 -0
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +4 -4
- package/lib/esm/components/draggable/DraggableChatWidget.js +16 -1
- package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +22 -9
- package/lib/esm/components/livechatwidget/common/customEventHandler.js +45 -0
- package/lib/esm/components/livechatwidget/common/endChat.js +18 -7
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +32 -1
- package/lib/esm/components/livechatwidget/common/liveChatConfigUtils.js +16 -0
- package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +33 -9
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +16 -3
- package/lib/esm/components/livechatwidget/common/startChat.js +6 -4
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +27 -12
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +4 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +12 -6
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware.js +33 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +38 -0
- package/lib/esm/contexts/common/CustomEventType.js +1 -0
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +3 -1
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +3 -1
- package/lib/esm/contexts/createReducer.js +30 -0
- package/lib/esm/controller/componentController.js +2 -2
- package/lib/esm/firstresponselatency/FirstMessageTrackerFromBot.js +101 -36
- package/lib/esm/firstresponselatency/FirstResponseLatencyTracker.js +39 -21
- package/lib/esm/firstresponselatency/util.js +57 -29
- package/lib/esm/plugins/newMessageEventHandler.js +12 -6
- package/lib/types/common/Constants.d.ts +13 -2
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +2 -0
- package/lib/types/common/utils.d.ts +8 -0
- package/lib/types/components/livechatwidget/common/customEventHandler.d.ts +4 -0
- package/lib/types/components/livechatwidget/common/liveChatConfigUtils.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware.d.ts +22 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.d.ts +5 -0
- package/lib/types/contexts/common/CustomEventType.d.ts +6 -0
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -0
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +3 -1
- package/lib/types/firstresponselatency/FirstResponseLatencyTracker.d.ts +2 -2
- package/lib/types/firstresponselatency/util.d.ts +17 -0
- package/lib/types/plugins/newMessageEventHandler.d.ts +1 -1
- package/package.json +4 -4
|
@@ -6,13 +6,13 @@ import { Constants } from "../common/Constants";
|
|
|
6
6
|
import { FirstResponseLatencyTracker } from "../firstresponselatency/FirstResponseLatencyTracker";
|
|
7
7
|
import { TelemetryHelper } from "../common/telemetry/TelemetryHelper";
|
|
8
8
|
import { TelemetryManager } from "../common/telemetry/TelemetryManager";
|
|
9
|
-
export const createOnNewAdapterActivityHandler = (chatId, userId) => {
|
|
9
|
+
export const createOnNewAdapterActivityHandler = (chatId, userId, startTime) => {
|
|
10
10
|
// Hooking the message tracker in the listener, a bit invasive but easier to control.
|
|
11
11
|
const firstResponseLatencyTracker = new FirstResponseLatencyTracker();
|
|
12
12
|
// epoch time in utc for when start to listen.
|
|
13
13
|
// We dont longer have a mechanism to know if a message is history or new, so any message older than the time we start listening will be considered a history message.
|
|
14
14
|
// this is a workaround for the fact that we dont have a way to identify if a message is history or new, and it will provide consistency across different scenarios
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
let isHistoryMessageReceivedEventRaised = false;
|
|
17
17
|
const onNewAdapterActivityHandler = activity => {
|
|
18
18
|
raiseMessageEvent(activity);
|
|
@@ -35,6 +35,7 @@ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
|
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
const systemMessageStrategy = activity => {
|
|
38
|
+
var _TelemetryManager$Int3;
|
|
38
39
|
const payload = buildMessagePayload(activity, userId);
|
|
39
40
|
payload.messageType = Constants.systemMessageTag;
|
|
40
41
|
if (isHistoryMessage(activity, startTime)) {
|
|
@@ -42,6 +43,11 @@ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
|
|
|
42
43
|
historyMessageStrategy(polyfillMessagePayloadForEvent(activity, payload, (_TelemetryManager$Int2 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int2 === void 0 ? void 0 : _TelemetryManager$Int2.conversationId));
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
46
|
+
const newMessageReceivedEvent = {
|
|
47
|
+
eventName: BroadcastEvent.NewMessageReceived,
|
|
48
|
+
payload: polyfillMessagePayloadForEvent(activity, payload, (_TelemetryManager$Int3 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int3 === void 0 ? void 0 : _TelemetryManager$Int3.conversationId)
|
|
49
|
+
};
|
|
50
|
+
BroadcastService.postMessage(newMessageReceivedEvent);
|
|
45
51
|
TelemetryHelper.logActionEventToAllTelemetry(LogLevel.INFO, {
|
|
46
52
|
Event: TelemetryEvent.SystemMessageReceived,
|
|
47
53
|
Description: "System message received"
|
|
@@ -77,20 +83,20 @@ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
|
|
|
77
83
|
return true;
|
|
78
84
|
};
|
|
79
85
|
const receivedMessageStrategy = activity => {
|
|
80
|
-
var _TelemetryManager$
|
|
86
|
+
var _TelemetryManager$Int5;
|
|
81
87
|
if (!isValidMessage(activity)) return;
|
|
82
88
|
const isHistoryMessageReceived = isHistoryMessage(activity, startTime);
|
|
83
89
|
const payload = buildMessagePayload(activity, userId);
|
|
84
90
|
payload.messageType = Constants.userMessageTag;
|
|
85
91
|
if (isHistoryMessageReceived) {
|
|
86
|
-
var _TelemetryManager$
|
|
87
|
-
historyMessageStrategy(polyfillMessagePayloadForEvent(activity, payload, (_TelemetryManager$
|
|
92
|
+
var _TelemetryManager$Int4;
|
|
93
|
+
historyMessageStrategy(polyfillMessagePayloadForEvent(activity, payload, (_TelemetryManager$Int4 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int4 === void 0 ? void 0 : _TelemetryManager$Int4.conversationId));
|
|
88
94
|
return;
|
|
89
95
|
}
|
|
90
96
|
firstResponseLatencyTracker.stopClock(payload);
|
|
91
97
|
const newMessageReceivedEvent = {
|
|
92
98
|
eventName: BroadcastEvent.NewMessageReceived,
|
|
93
|
-
payload: polyfillMessagePayloadForEvent(activity, payload, (_TelemetryManager$
|
|
99
|
+
payload: polyfillMessagePayloadForEvent(activity, payload, (_TelemetryManager$Int5 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int5 === void 0 ? void 0 : _TelemetryManager$Int5.conversationId)
|
|
94
100
|
};
|
|
95
101
|
BroadcastService.postMessage(newMessageReceivedEvent);
|
|
96
102
|
TelemetryHelper.logActionEventToAllTelemetry(LogLevel.INFO, {
|
|
@@ -7,6 +7,9 @@ export declare class Constants {
|
|
|
7
7
|
static readonly historyMessageTag = "history";
|
|
8
8
|
static readonly agentEndConversationMessageTag = "agentendconversation";
|
|
9
9
|
static readonly supervisorForceCloseMessageTag = "supervisorforceclosedconversation";
|
|
10
|
+
static readonly endConversationalSurveyMessageTag = "endconversationalsurvey";
|
|
11
|
+
static readonly startConversationalSurveyMessageTag = "startconversationalsurvey";
|
|
12
|
+
static readonly c2ConversationalSurveyMessageTag = "c2conversationalsurvey";
|
|
10
13
|
static readonly receivedMessageClassName = "ms_lcw_webchat_received_message";
|
|
11
14
|
static readonly sentMessageClassName = "ms_lcw_webchat_sent_message";
|
|
12
15
|
static readonly webchatChannelId = "webchat";
|
|
@@ -80,8 +83,7 @@ export declare class Constants {
|
|
|
80
83
|
static readonly TargetRelationship = "rel";
|
|
81
84
|
static readonly TargetRelationshipAttributes = "noopener noreferrer";
|
|
82
85
|
static readonly OpenLinkIconCssClass = "webchat__render-markdown__external-link-icon";
|
|
83
|
-
static readonly
|
|
84
|
-
static readonly internetConnectionTestUrlText = "Omnichannel Connect Test";
|
|
86
|
+
static readonly internetConnectionTestPath = "/livechatwidget/version.txt";
|
|
85
87
|
static readonly ChatWidgetStateChangedPrefix = "ChatWidgetStateChanged";
|
|
86
88
|
static readonly PostChatLoadingDurationInMs = 2000;
|
|
87
89
|
static readonly BrowserUnloadConfirmationMessage = "Do you want to leave chat?";
|
|
@@ -94,6 +96,12 @@ export declare class Constants {
|
|
|
94
96
|
static readonly OCOriginalMessageId = "OriginalMessageId";
|
|
95
97
|
static readonly WebchatSequenceIdAttribute = "webchat:sequence-id";
|
|
96
98
|
static readonly MessageSequenceIdOverride = "MessageSequenceIdOverride";
|
|
99
|
+
static readonly sendCustomEvent = "sendCustomEvent";
|
|
100
|
+
static readonly onCustomEvent = "onCustomEvent";
|
|
101
|
+
static readonly customEventName = "customEventName";
|
|
102
|
+
static readonly customEventValue = "customEventValue";
|
|
103
|
+
static readonly Hidden = "Hidden";
|
|
104
|
+
static readonly EndConversationDueToOverflow = "endconversationduetooverflow";
|
|
97
105
|
}
|
|
98
106
|
export declare const Regex: {
|
|
99
107
|
new (): {};
|
|
@@ -180,6 +188,9 @@ export declare enum ConversationMode {
|
|
|
180
188
|
Regular = "192350000",
|
|
181
189
|
Persistent = "192350001"
|
|
182
190
|
}
|
|
191
|
+
export declare enum SurveyProvider {
|
|
192
|
+
MicrosoftCopilotStudio = "600990001"
|
|
193
|
+
}
|
|
183
194
|
export declare enum LiveWorkItemState {
|
|
184
195
|
Active = "Active",
|
|
185
196
|
Closed = "Closed",
|
|
@@ -172,6 +172,7 @@ export declare enum TelemetryEvent {
|
|
|
172
172
|
BotAuthActivityUndefinedSignInId = "BotAuthActivityUndefinedSignInId",
|
|
173
173
|
ThirdPartyCookiesBlocked = "ThirdPartyCookiesBlocked",
|
|
174
174
|
ParticipantsRemovedEvent = "ParticipantsRemovedEvent",
|
|
175
|
+
QueueOverflowEvent = "QueueOverflowEvent",
|
|
175
176
|
ProcessingHTMLTextMiddlewareFailed = "ProcessingHTMLTextMiddlewareFailed",
|
|
176
177
|
ProcessingSanitizationMiddlewareFailed = "ProcessingSanitizationMiddlewareFailed",
|
|
177
178
|
FormatTagsMiddlewareJSONStringifyFailed = "FormatTagsMiddlewareJSONStringifyFailed",
|
|
@@ -210,6 +211,7 @@ export declare enum TelemetryEvent {
|
|
|
210
211
|
SystemMessageReceived = "SystemMessageReceived",
|
|
211
212
|
RehydrateMessageReceived = "RehydrateMessageReceived",
|
|
212
213
|
CustomContextReceived = "CustomContextReceived",
|
|
214
|
+
CustomEventAction = "CustomEventAction",
|
|
213
215
|
NetworkDisconnected = "NetworkDisconnected",
|
|
214
216
|
NetworkReconnected = "NetworkReconnected",
|
|
215
217
|
LinkModePostChatWorkflowStarted = "LinkModePostChatWorkflowStarted",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FacadeChatSDK } from "./facades/FacadeChatSDK";
|
|
2
2
|
import { ITimer } from "./interfaces/ITimer";
|
|
3
|
+
import * as CustomEventType from "../contexts/common/CustomEventType";
|
|
3
4
|
export declare const setTabIndices: (elements: HTMLElement[] | null, tabIndexMap: Map<string, number>, shouldBeFocusable: boolean) => void;
|
|
4
5
|
export declare const findParentFocusableElementsWithoutChildContainer: (elementId: string) => HTMLElement[] | null;
|
|
5
6
|
export declare const findAllFocusableElement: (parent: string | HTMLElement) => any[] | null;
|
|
@@ -47,3 +48,10 @@ export declare const formatTemplateString: (templateMessage: string, values: any
|
|
|
47
48
|
export declare const parseLowerCaseString: (property: string | boolean | undefined) => string;
|
|
48
49
|
export declare const setOcUserAgent: (chatSDK: any) => void;
|
|
49
50
|
export declare function getDeviceType(): string;
|
|
51
|
+
export declare const isValidCustomEvent: (payload: object) => boolean;
|
|
52
|
+
export declare const getCustomEventValue: (customEventPayload: CustomEventType.ICustomEvent) => string;
|
|
53
|
+
export declare function isEndConversationDueToOverflowActivity(activity: {
|
|
54
|
+
channelData?: {
|
|
55
|
+
tags?: string[];
|
|
56
|
+
};
|
|
57
|
+
}): boolean | undefined;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FacadeChatSDK } from "../../../common/facades/FacadeChatSDK";
|
|
2
|
+
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
3
|
+
export declare const customEventCallback: (facadeChatSDK: FacadeChatSDK) => (event: object) => void;
|
|
4
|
+
export declare const subscribeToSendCustomEvent: (broadcastService: typeof BroadcastService, facadeChatSDK: FacadeChatSDK, customEventCallback: (fackageSdK: FacadeChatSDK) => (event: object) => void) => void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { FacadeChatSDK } from "../../../common/facades/FacadeChatSDK";
|
|
2
2
|
export declare const isPostChatSurveyEnabled: (facadeChatSDK: FacadeChatSDK) => Promise<boolean>;
|
|
3
|
+
export declare const getPostChatSurveyConfig: (facadeChatSDK: FacadeChatSDK) => Promise<any>;
|
|
3
4
|
export declare const isPersistentChatEnabled: (conversationMode: string | undefined) => boolean;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Adds necessary tags if not present so that the rendering middlewares can process them later.
|
|
5
5
|
******/
|
|
6
6
|
import { IWebChatAction } from "../../../interfaces/IWebChatAction";
|
|
7
|
-
declare const channelDataMiddleware: ({ dispatch }: {
|
|
7
|
+
declare const channelDataMiddleware: (addConversationalSurveyTagsCallback: any) => ({ dispatch }: {
|
|
8
8
|
dispatch: any;
|
|
9
9
|
}) => (next: any) => (action: IWebChatAction) => any;
|
|
10
10
|
export default channelDataMiddleware;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* The callback is then invoked to hide the send box (by default).
|
|
6
6
|
******/
|
|
7
7
|
import { IWebChatAction } from "../../../interfaces/IWebChatAction";
|
|
8
|
-
declare const createConversationEndMiddleware: (conversationEndCallback: any) => ({ dispatch }: {
|
|
8
|
+
declare const createConversationEndMiddleware: (conversationEndCallback: any, startConversationalSurveyCallback: any, endConversationalSurveyCallback: any) => ({ dispatch }: {
|
|
9
9
|
dispatch: any;
|
|
10
10
|
}) => (next: any) => (action: IWebChatAction) => any;
|
|
11
11
|
export default createConversationEndMiddleware;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/******
|
|
2
|
+
* CustomEventMiddleware
|
|
3
|
+
*
|
|
4
|
+
* This middleware is invoked when a custom event is received.
|
|
5
|
+
* The callback is then invoked to handle the custom event.
|
|
6
|
+
******/
|
|
7
|
+
import { IWebChatAction } from "../../../interfaces/IWebChatAction";
|
|
8
|
+
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
9
|
+
export declare const isValidCustomEvent: (activity: {
|
|
10
|
+
channelData?: {
|
|
11
|
+
metadata?: {
|
|
12
|
+
customEvent?: string;
|
|
13
|
+
customEventName?: string;
|
|
14
|
+
customEventValue?: unknown;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
from?: {
|
|
18
|
+
role: string;
|
|
19
|
+
};
|
|
20
|
+
}) => boolean;
|
|
21
|
+
declare const createCustomEventMiddleware: (broadcastservice: typeof BroadcastService) => () => (next: (action: IWebChatAction) => void) => (action: IWebChatAction) => void;
|
|
22
|
+
export default createCustomEventMiddleware;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IWebChatAction } from "../../../interfaces/IWebChatAction";
|
|
2
|
+
import { ILiveChatWidgetContext } from "../../../../../contexts/common/ILiveChatWidgetContext";
|
|
3
|
+
import { Dispatch } from "react";
|
|
4
|
+
import { ILiveChatWidgetAction } from "../../../../../contexts/common/ILiveChatWidgetAction";
|
|
5
|
+
export declare const createQueueOverflowMiddleware: (state: ILiveChatWidgetContext, dispatch: Dispatch<ILiveChatWidgetAction>) => () => (next: (action: IWebChatAction) => void) => (action: IWebChatAction) => void;
|
|
@@ -48,6 +48,8 @@ export interface ILiveChatWidgetContext {
|
|
|
48
48
|
chatDisconnectEventReceived: boolean;
|
|
49
49
|
selectedSurveyMode: string | null;
|
|
50
50
|
postChatParticipantType: undefined | ParticipantType;
|
|
51
|
+
isConversationalSurvey: boolean;
|
|
52
|
+
isConversationalSurveyEnabled: boolean;
|
|
51
53
|
};
|
|
52
54
|
uiStates: {
|
|
53
55
|
showConfirmationPane: boolean;
|
|
@@ -44,5 +44,7 @@ export declare enum LiveChatWidgetActionType {
|
|
|
44
44
|
SET_SURVEY_MODE = 42,
|
|
45
45
|
SET_CONFIRMATION_STATE = 43,
|
|
46
46
|
SET_POST_CHAT_PARTICIPANT_TYPE = 44,
|
|
47
|
-
|
|
47
|
+
SET_CONVERSATIONAL_SURVEY_ENABLED = 45,
|
|
48
|
+
SET_CONVERSATIONAL_SURVEY_DISPLAY = 46,
|
|
49
|
+
GET_IN_MEMORY_STATE = 47
|
|
48
50
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { MessagePayload } from "./Constants";
|
|
2
2
|
export declare class FirstResponseLatencyTracker {
|
|
3
3
|
private isABotConversation;
|
|
4
|
-
private
|
|
5
|
-
private isEnded;
|
|
4
|
+
private isTracking;
|
|
6
5
|
private startTrackingMessage?;
|
|
7
6
|
private stopTrackingMessage?;
|
|
8
7
|
private isReady;
|
|
8
|
+
private trackingTimeoutId?;
|
|
9
9
|
constructor();
|
|
10
10
|
private createTrackingMessage;
|
|
11
11
|
private startTracking;
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { MessagePayload, ScenarioType, TrackingMessage } from "./Constants";
|
|
2
2
|
import { IActivity } from "botframework-directlinejs";
|
|
3
|
+
/**
|
|
4
|
+
* Determines whether a given activity is a historical message.
|
|
5
|
+
*
|
|
6
|
+
* This function checks if the activity is a message type and uses a combination
|
|
7
|
+
* of legacy tags and timestamp-based logic to determine if the message is historical.
|
|
8
|
+
*
|
|
9
|
+
* @param {IActivity} activity - The activity object to evaluate.
|
|
10
|
+
* @param {number} startTime - The start time (in milliseconds since epoch) to compare against.
|
|
11
|
+
* @returns {boolean} - Returns true if the activity is a historical message, false otherwise.
|
|
12
|
+
*
|
|
13
|
+
* Logic:
|
|
14
|
+
* - If the activity type is not a message, it is not historical.
|
|
15
|
+
* - If the activity contains a legacy history message tag, it is considered historical.
|
|
16
|
+
* - Otherwise, the function extracts a timestamp from the activity ID using `extractTimestampFromId`.
|
|
17
|
+
* - If the ID is valid and the timestamp is older than the start time, the message is historical.
|
|
18
|
+
*/
|
|
3
19
|
export declare const isHistoryMessage: (activity: IActivity, startTime: number) => boolean;
|
|
20
|
+
export declare const extractTimestampFromId: (activity: IActivity) => number;
|
|
4
21
|
export declare const buildMessagePayload: (activity: IActivity, userId: string) => MessagePayload;
|
|
5
22
|
export declare const polyfillMessagePayloadForEvent: (activity: IActivity, payload: MessagePayload, conversationId?: string) => MessagePayload;
|
|
6
23
|
export declare const getScenarioType: (activity: IActivity) => ScenarioType;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { IActivity } from "botframework-directlinejs";
|
|
2
|
-
export declare const createOnNewAdapterActivityHandler: (chatId: string, userId: string) => (activity: IActivity) => void;
|
|
2
|
+
export declare const createOnNewAdapterActivityHandler: (chatId: string, userId: string, startTime: number) => (activity: IActivity) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/omnichannel-chat-widget",
|
|
3
|
-
"version": "1.8.2-main.
|
|
3
|
+
"version": "1.8.2-main.f638bed",
|
|
4
4
|
"description": "Microsoft Omnichannel Chat Widget",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"types": "lib/types/index.d.ts",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"dependencies": {
|
|
87
87
|
"@azure/core-tracing": "^1.2.0",
|
|
88
88
|
"@microsoft/applicationinsights-web": "^3.3.6",
|
|
89
|
-
"@microsoft/omnichannel-chat-components": "1.1.
|
|
89
|
+
"@microsoft/omnichannel-chat-components": "1.1.13",
|
|
90
90
|
"@microsoft/omnichannel-chat-sdk": "^1.11.4",
|
|
91
91
|
"@opentelemetry/api": "^1.9.0",
|
|
92
92
|
"abort-controller": "^3",
|
|
@@ -121,8 +121,8 @@
|
|
|
121
121
|
"build:umd": "webpack --config ./webpack.umd.config.cjs",
|
|
122
122
|
"verify": "yarn install && yarn build-storybook && yarn test:all && yarn build && yarn storybook",
|
|
123
123
|
"testpack": "yarn build && yarn pack",
|
|
124
|
-
"build-sample": "yarn build && webpack --config ./webpack.config.cjs",
|
|
125
|
-
"build-sample:dev": "yarn build && webpack --config ./webpack.dev.config.cjs",
|
|
124
|
+
"build-sample": "yarn build && cross-env NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack.config.cjs",
|
|
125
|
+
"build-sample:dev": "yarn build && cross-env NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack.dev.config.cjs",
|
|
126
126
|
"test:visual:build": "yarn build-storybook && yarn test:visual",
|
|
127
127
|
"lint": "yarn eslint . --max-warnings=0",
|
|
128
128
|
"prepush": "yarn lint && yarn danger:prepush",
|