@microsoft/omnichannel-chat-sdk 1.0.1-main.85b823d → 1.0.1-main.9e71fa6
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/CHANGELOG.md +20 -3
- package/README.md +39 -50
- package/lib/OmnichannelChatSDK.d.ts +5 -4
- package/lib/OmnichannelChatSDK.js +244 -266
- package/lib/OmnichannelChatSDK.js.map +1 -1
- package/lib/config/settings.d.ts +1 -1
- package/lib/config/settings.js +1 -1
- package/lib/config/settings.js.map +1 -1
- package/lib/core/ChatConfig.d.ts +4 -0
- package/lib/core/ChatSDKExceptionDetails.d.ts +5 -0
- package/lib/core/ChatSDKExceptionDetails.js +3 -0
- package/lib/core/ChatSDKExceptionDetails.js.map +1 -0
- package/lib/core/OmnichannelErrorCodes.d.ts +4 -0
- package/lib/core/OmnichannelErrorCodes.js +8 -0
- package/lib/core/OmnichannelErrorCodes.js.map +1 -0
- package/lib/core/messaging/ACSClient.js +1 -1
- package/lib/core/messaging/ACSClient.js.map +1 -1
- package/lib/core/messaging/ChatAdapterOptionalParams.d.ts +14 -0
- package/lib/core/messaging/ChatAdapterOptionalParams.js +3 -0
- package/lib/core/messaging/ChatAdapterOptionalParams.js.map +1 -0
- package/lib/core/messaging/MessageTags.d.ts +2 -0
- package/lib/core/messaging/MessageTags.js +4 -2
- package/lib/core/messaging/MessageTags.js.map +1 -1
- package/lib/external/ACSAdapter/createChannelDataEgressMiddleware.d.ts +5 -0
- package/lib/external/ACSAdapter/createChannelDataEgressMiddleware.js +34 -0
- package/lib/external/ACSAdapter/createChannelDataEgressMiddleware.js.map +1 -0
- package/lib/external/ACSAdapter/createFormatEgressTagsMiddleware.d.ts +2 -0
- package/lib/external/ACSAdapter/createFormatEgressTagsMiddleware.js +31 -0
- package/lib/external/ACSAdapter/createFormatEgressTagsMiddleware.js.map +1 -0
- package/lib/external/ACSAdapter/createFormatIngressTagsMiddleware.d.ts +2 -0
- package/lib/external/ACSAdapter/createFormatIngressTagsMiddleware.js +25 -0
- package/lib/external/ACSAdapter/createFormatIngressTagsMiddleware.js.map +1 -0
- package/lib/external/IC3Adapter/IIC3AdapterOptions.d.ts +12 -0
- package/lib/telemetry/AriaTelemetry.js +5 -0
- package/lib/telemetry/AriaTelemetry.js.map +1 -1
- package/lib/telemetry/ScenarioMarker.d.ts +2 -0
- package/lib/telemetry/ScenarioMarker.js +7 -3
- package/lib/telemetry/ScenarioMarker.js.map +1 -1
- package/lib/telemetry/TelemetryEvent.d.ts +1 -3
- package/lib/telemetry/TelemetryEvent.js +0 -2
- package/lib/telemetry/TelemetryEvent.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +885 -1120
- package/lib/utils/WebUtils.d.ts +3 -1
- package/lib/utils/WebUtils.js +8 -2
- package/lib/utils/WebUtils.js.map +1 -1
- package/lib/utils/libraries.d.ts +1 -3
- package/lib/utils/libraries.js +2 -11
- package/lib/utils/libraries.js.map +1 -1
- package/lib/utils/locale.d.ts +1 -0
- package/lib/utils/locale.js +2 -1
- package/lib/utils/locale.js.map +1 -1
- package/lib/utils/loggers.d.ts +8 -0
- package/lib/utils/loggers.js +24 -0
- package/lib/utils/loggers.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
@@ -4,12 +4,29 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
## [Unreleased]
|
5
5
|
|
6
6
|
### Added
|
7
|
-
- Add
|
8
|
-
- Add `
|
9
|
-
- Add `
|
7
|
+
- Add `getPostChatSurveyContext` API method
|
8
|
+
- Add `GetPostChatSurveyContext` telemetry event
|
9
|
+
- Add `widgetId` & `clientMessageId` as metadata on sending message
|
10
|
+
- Update `ChatConfig` interface with `LiveChatVersion`, `allowedFileExtensions` & `maxUploadFileSize` properties
|
11
|
+
- Add ability to automatically detect locale from chat config
|
12
|
+
- Add `runtimeId` attribute in `OmnichannelChatSDK` & `ChatSDKRuntimeId` field in telemetry
|
13
|
+
- Add ability to automatically pass locale from chat config on calling `ChatSDK.emailLiveChatTranscript()`
|
14
|
+
- Bubble up `WidgetUseOutsideOperatingHour` exception
|
15
|
+
- Add `acs_webchat-chat-adapter` middleware to add default `channelData.tags` & `channelData.metadata`
|
16
|
+
- Update `ChatConfig` interface with `msdyn_enablemarkdown` property
|
17
|
+
|
18
|
+
### Fix
|
19
|
+
- Add `acs_webchat-chat-adapter` middlewares to format `channelData.tags`
|
20
|
+
- Skip `session init` call on existing conversation
|
21
|
+
- Fix `chat reconnect` not ending the conversation on calling `ChatSDK.endChat()`
|
22
|
+
- Fix on messaging client not sending heartbeat on new conversations subsequent to the first conversation
|
23
|
+
- Fix `ChatSDK.getConversationDetails()` not passing `authenticatedUserToken`
|
24
|
+
- Fix `IC3Client.dispose()` called when `IC3Client` is `undefined`
|
10
25
|
|
11
26
|
### Changed
|
12
27
|
- README: added examples on usages of the post chat APIs.
|
28
|
+
- Uptake [@azure/communication-chat@1.1.1](https://www.npmjs.com/package/@azure/communication-chat/v/1.1.1)
|
29
|
+
- Uptake [acs_webchat-chat-adapter@0.0.35-beta.2](https://unpkg.com/acs_webchat-chat-adapter@0.0.35-beta.2/dist/chat-adapter.js)
|
13
30
|
|
14
31
|
## [1.0.0] - 2021-10-08
|
15
32
|
### Added
|
package/README.md
CHANGED
@@ -14,7 +14,7 @@ Please make sure you have a chat widget configured before using this package or
|
|
14
14
|
- [Installation on React Native](#installation-on-react-native)
|
15
15
|
- [API Reference](#api-reference)
|
16
16
|
- [API Examples](#api-examples)
|
17
|
-
- [Sample Apps](samples
|
17
|
+
- [Sample Apps](https://github.com/microsoft/omnichannel-chat-sdk-samples)
|
18
18
|
- [Common Scenarios](#common-scenarios)
|
19
19
|
- [Feature Comparisons](#feature-comparisons)
|
20
20
|
- [Telemetry](#telemetry)
|
@@ -35,14 +35,12 @@ Omnichannel offers an live chat widget (LCW) by default. You can use the Chat SD
|
|
35
35
|
| Bring Your Own Widget | ❌ | ✔ | |
|
36
36
|
| Web Support | ✔ | ✔ |
|
37
37
|
| React Native Support | ❌ | ✔ |
|
38
|
-
| Escalation to Voice & Video | ✔ |
|
39
|
-
| Co-browse | ✔ |
|
40
|
-
| Screen Sharing | ✔ |
|
38
|
+
| Escalation to Voice & Video | ✔ | ✔ | Only supported on Web |
|
39
|
+
| Co-browse | ✔ | 3rd party add-on | Only supported on Web |
|
40
|
+
| Screen Sharing | ✔ | 3rd party add-on | Only supported on Web |
|
41
41
|
| Authenticated Chat | ✔ | ✔ |
|
42
42
|
| Pre-chat Survey | ✔ | ✔ |
|
43
|
-
| Post-chat Survey | ✔ |
|
44
|
-
| Queue Position | ✔ | ✔ |
|
45
|
-
| Average Wait Time | ✔ | ✔ |
|
43
|
+
| Post-chat Survey | ✔ | ✔ |
|
46
44
|
| Download Transcript | ✔ | ✔ |
|
47
45
|
| Email Transcript | ✔ | ✔ |
|
48
46
|
| Data Masking | ✔ | ✔ |
|
@@ -52,6 +50,8 @@ Omnichannel offers an live chat widget (LCW) by default. You can use the Chat SD
|
|
52
50
|
| Persistent Chat | ✔ | ✔ |
|
53
51
|
| Chat Reconnect | ✔ | ✔ |
|
54
52
|
| Operating Hours | ✔ | ✔ |
|
53
|
+
| Queue Position | ✔ | ✔ | No SDK method. Handled as *system message* |
|
54
|
+
| Average Wait Time | ✔ | ✔ | No SDK method. Handled as *system message* |
|
55
55
|
|
56
56
|
**\*** BYOI: Bring Your Own Implementation
|
57
57
|
|
@@ -65,7 +65,26 @@ Omnichannel offers an live chat widget (LCW) by default. You can use the Chat SD
|
|
65
65
|
|
66
66
|
The following steps will be required to run Omnichannel Chat SDK on React Native:
|
67
67
|
|
68
|
-
1.
|
68
|
+
1. Install `node-libs-react-native`
|
69
|
+
```
|
70
|
+
npm install node-libs-react-native --save-dev
|
71
|
+
```
|
72
|
+
|
73
|
+
1. Install `react-native-randomBytes`
|
74
|
+
```
|
75
|
+
npm install react-native-randombytes --save-dev
|
76
|
+
```
|
77
|
+
|
78
|
+
1. Install `react-native-get-random-values`
|
79
|
+
```
|
80
|
+
npm install react-native-get-random-values --save-dev
|
81
|
+
```
|
82
|
+
|
83
|
+
1. Install `react-native-url-polyfill`
|
84
|
+
```
|
85
|
+
npm install react-native-url-polyfill --save-dev
|
86
|
+
```
|
87
|
+
|
69
88
|
1. Update *metro.config.js* to use React Native compatible Node Core modules
|
70
89
|
```ts
|
71
90
|
module.exports = {
|
@@ -80,24 +99,11 @@ The following steps will be required to run Omnichannel Chat SDK on React Native
|
|
80
99
|
};
|
81
100
|
```
|
82
101
|
|
83
|
-
1.
|
102
|
+
1. Add following *import* on top of your entry point file
|
84
103
|
```ts
|
85
104
|
import 'node-libs-react-native/globals';
|
86
|
-
```
|
87
|
-
|
88
|
-
1. Install `react-native-randomBytes`
|
89
|
-
```
|
90
|
-
npm install react-native-randombytes --save-dev
|
91
|
-
```
|
92
|
-
|
93
|
-
1. Install `react-native-get-random-values`
|
94
|
-
```
|
95
|
-
npm install react-native-get-random-values --save-dev
|
96
|
-
```
|
97
|
-
|
98
|
-
1. Import `react-native-get-random-values` on top of your entry point file
|
99
|
-
```ts
|
100
105
|
import 'react-native-get-random-values';
|
106
|
+
import 'react-native-url-polyfill';
|
101
107
|
```
|
102
108
|
|
103
109
|
## API Reference
|
@@ -125,12 +131,9 @@ The following steps will be required to run Omnichannel Chat SDK on React Native
|
|
125
131
|
| OmnichannelChatSDK.getLiveChatTranscript() | Get transcript data (JSON) | |
|
126
132
|
| OmnichannelChatSDK.uploadFileAttachment() | Send file attachment | |
|
127
133
|
| OmnichannelChatSDK.downloadFileAttachment() | Download file attachment | |
|
128
|
-
| OmnichannelChatSDK.createChatAdapter() | Get
|
134
|
+
| OmnichannelChatSDK.createChatAdapter() | Get Chat Adapter | **Web only** |
|
129
135
|
| OmnichannelChatSDK.getVoiceVideoCalling() | Get VoiceVideoCall SDK for Escalation to Voice & Video | **Web only** |
|
130
|
-
| OmnichannelChatSDK.getPostChatSurveyContext() | Get post chat survey link
|
131
|
-
| OmnichannelChatSDK.initializePostChatRenderer() | Load necessary scripts and styles to render the FormsPro survey | **Web only** |
|
132
|
-
| OmnichannelChatSDK.renderPostChatSurvey() | Render the FormsPro survey | **Web only** |
|
133
|
-
|
136
|
+
| OmnichannelChatSDK.getPostChatSurveyContext() | Get post chat survey link, survey locale, and whether an agent has joined the survey | |
|
134
137
|
|
135
138
|
## API examples
|
136
139
|
|
@@ -208,31 +211,18 @@ The following steps will be required to run Omnichannel Chat SDK on React Native
|
|
208
211
|
const preChatSurvey = await getPreChatSurvey(parseToJSON); // Adaptive Cards payload data as string
|
209
212
|
```
|
210
213
|
|
211
|
-
###
|
212
|
-
`Option 1: Directly use the survey link`
|
214
|
+
### Get PostChat Survey
|
213
215
|
```ts
|
214
216
|
try {
|
215
217
|
const context = await chatSDK.getPostChatSurveyContext();
|
216
|
-
if (context
|
217
|
-
|
218
|
-
//
|
218
|
+
if (context.participantJoined) { // participantJoined will be true if an agent has joined the conversation, or a bot has joined the conversation and the bot survey flag has been turned on on the admin side.
|
219
|
+
// formsProLocale is the default language you have set on the CustomerVoice portal. You can override this url parameter with any locale that CustomerVoice supports.
|
220
|
+
// If "&lang=" is not set on the url, the locale will be English.
|
221
|
+
const linkToSend = context.surveyInviteLink + "&lang=" + context.formsProLocale;
|
222
|
+
// This link is accessible and will redirect to the survey page. Use it as you see fit.
|
219
223
|
}
|
220
224
|
} catch (ex) {
|
221
|
-
// If the post chat should not
|
222
|
-
}
|
223
|
-
```
|
224
|
-
|
225
|
-
`Option 2: Render the FormsPro Survey in a specified container`
|
226
|
-
```ts
|
227
|
-
await chatSDK.initializePostChatRenderer(); // This method is needed to embed FormsPro survey in the widget. It can be called anytime before actually rendering the survey for best performance of you page.
|
228
|
-
|
229
|
-
try {
|
230
|
-
const context = await chatSDK.getPostChatSurveyContext();
|
231
|
-
if (context?.participantJoined) {
|
232
|
-
await chatSDK?.renderPostChatSurvey('containerId', context); // The survey will be embedded in the element with Id "containerId"
|
233
|
-
}
|
234
|
-
} catch (ex) {
|
235
|
-
|
225
|
+
// If the post chat should not be shown by any reason (e.g. post chat is not enabled), promise will be rejected.
|
236
226
|
}
|
237
227
|
```
|
238
228
|
|
@@ -345,8 +335,7 @@ The following steps will be required to run Omnichannel Chat SDK on React Native
|
|
345
335
|
```ts
|
346
336
|
const body = {
|
347
337
|
emailAddress: 'contoso@microsoft.com',
|
348
|
-
attachmentMessage: 'Attachment Message'
|
349
|
-
locale: 'en-us'
|
338
|
+
attachmentMessage: 'Attachment Message'
|
350
339
|
};
|
351
340
|
await chatSDK.emailLiveChatTranscript(body);
|
352
341
|
```
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import ACSClient from "./core/messaging/ACSClient";
|
2
2
|
import { ParticipantsRemovedEvent } from '@azure/communication-signaling';
|
3
|
+
import ChatAdapterOptionalParams from "./core/messaging/ChatAdapterOptionalParams";
|
3
4
|
import ChatConfig from "./core/ChatConfig";
|
4
5
|
import ChatReconnectContext from "./core/ChatReconnectContext";
|
5
6
|
import ChatReconnectOptionalParams from "./core/ChatReconnectOptionalParams";
|
@@ -20,10 +21,10 @@ import LiveWorkItemDetails from "./core/LiveWorkItemDetails";
|
|
20
21
|
import OmnichannelConfig from "./core/OmnichannelConfig";
|
21
22
|
import OmnichannelMessage from "./core/messaging/OmnichannelMessage";
|
22
23
|
import OnNewMessageOptionalParams from "./core/messaging/OnNewMessageOptionalParams";
|
23
|
-
import PostChatContext from "./core/PostChatContext";
|
24
24
|
import StartChatOptionalParams from "./core/StartChatOptionalParams";
|
25
25
|
declare class OmnichannelChatSDK {
|
26
26
|
private debug;
|
27
|
+
runtimeId: string;
|
27
28
|
OCSDKProvider: unknown;
|
28
29
|
IC3SDKProvider: unknown;
|
29
30
|
OCClient: any;
|
@@ -33,6 +34,7 @@ declare class OmnichannelChatSDK {
|
|
33
34
|
omnichannelConfig: OmnichannelConfig;
|
34
35
|
chatSDKConfig: ChatSDKConfig;
|
35
36
|
isInitialized: boolean;
|
37
|
+
localeId: string;
|
36
38
|
requestId: string;
|
37
39
|
private chatToken;
|
38
40
|
private liveChatConfig;
|
@@ -80,15 +82,14 @@ declare class OmnichannelChatSDK {
|
|
80
82
|
downloadFileAttachment(fileMetadata: FileMetadata | IFileMetadata): Promise<Blob>;
|
81
83
|
emailLiveChatTranscript(body: ChatTranscriptBody): Promise<any>;
|
82
84
|
getLiveChatTranscript(): Promise<any>;
|
83
|
-
createChatAdapter(
|
85
|
+
createChatAdapter(optionalParams?: ChatAdapterOptionalParams): Promise<unknown>;
|
84
86
|
getVoiceVideoCalling(params?: any): Promise<any>;
|
85
87
|
getPostChatSurveyContext(): Promise<any>;
|
86
|
-
initializePostChatRenderer(): Promise<void>;
|
87
|
-
renderPostChatSurvey(containerId: string, postChatContext: PostChatContext): Promise<void>;
|
88
88
|
private getIC3Client;
|
89
89
|
private getChatConfig;
|
90
90
|
private resolveIC3ClientUrl;
|
91
91
|
private resolveChatAdapterUrl;
|
92
92
|
private updateChatToken;
|
93
|
+
private setAuthTokenProvider;
|
93
94
|
}
|
94
95
|
export default OmnichannelChatSDK;
|