@carbon/ai-chat 0.1.6 → 0.1.7-alpha0
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/dist/cjs/{cds-aichat-internal.js → AppContainer.js} +615 -7203
- package/dist/cjs/Carousel.js +24 -16
- package/dist/cjs/Chat.js +813 -805
- package/dist/cjs/GenesysMessengerServiceDesk.js +60 -52
- package/dist/cjs/HumanAgentServiceImpl.js +103 -95
- package/dist/cjs/NiceDFOServiceDesk.js +56 -48
- package/dist/cjs/PDFViewerContainer.js +58 -149
- package/dist/cjs/ReactPlayer.js +2 -2
- package/dist/cjs/SFServiceDesk.js +66 -58
- package/dist/cjs/ServiceDeskImpl.js +2 -2
- package/dist/cjs/Table.js +457 -341
- package/dist/cjs/ZendeskServiceDesk.js +36 -28
- package/dist/cjs/_node-resolve_empty.js +2 -2
- package/dist/cjs/agentActions.js +5 -5
- package/dist/cjs/aiChatEntry.js +163 -144
- package/dist/cjs/anonymousUserIDStorage.js +8 -8
- package/dist/cjs/ar-dz.js +4 -4
- package/dist/cjs/ar-kw.js +4 -4
- package/dist/cjs/ar-ly.js +4 -4
- package/dist/cjs/ar-ma.js +4 -4
- package/dist/cjs/ar-sa.js +4 -4
- package/dist/cjs/ar-tn.js +4 -4
- package/dist/cjs/ar.js +4 -4
- package/dist/cjs/ar2.js +2 -2
- package/dist/cjs/cds-aichat-container.js +111 -23
- package/dist/cjs/cds-aichat-custom-element.js +42 -30
- package/dist/cjs/cs.js +4 -4
- package/dist/cjs/cs2.js +2 -2
- package/dist/cjs/de-at.js +4 -4
- package/dist/cjs/de-ch.js +4 -4
- package/dist/cjs/de.js +4 -4
- package/dist/cjs/de2.js +2 -2
- package/dist/cjs/en-au.js +4 -4
- package/dist/cjs/en-ca.js +4 -4
- package/dist/cjs/en-gb.js +4 -4
- package/dist/cjs/en-ie.js +4 -4
- package/dist/cjs/en-il.js +4 -4
- package/dist/cjs/en-nz.js +4 -4
- package/dist/cjs/es-do.js +4 -4
- package/dist/cjs/es-us.js +4 -4
- package/dist/cjs/es.js +4 -4
- package/dist/cjs/es2.js +2 -2
- package/dist/cjs/export.js +3 -3
- package/dist/cjs/export.legacy.js +3 -3
- package/dist/cjs/fontUtils.js +2 -2
- package/dist/cjs/fr-ca.js +4 -4
- package/dist/cjs/fr-ch.js +4 -4
- package/dist/cjs/fr.js +4 -4
- package/dist/cjs/fr2.js +2 -2
- package/dist/cjs/highlight_js.js +2 -2
- package/dist/cjs/it-ch.js +4 -4
- package/dist/cjs/it.js +4 -4
- package/dist/cjs/it2.js +2 -2
- package/dist/cjs/ja.js +4 -4
- package/dist/cjs/ja2.js +2 -2
- package/dist/cjs/ko.js +4 -4
- package/dist/cjs/ko2.js +2 -2
- package/dist/cjs/markdown.js +2362 -14
- package/dist/cjs/mockServiceDesk.js +42 -34
- package/dist/cjs/nl.js +4 -4
- package/dist/cjs/nl2.js +2 -2
- package/dist/cjs/pt-br.js +4 -4
- package/dist/cjs/pt-br2.js +2 -2
- package/dist/cjs/pt.js +4 -4
- package/dist/cjs/render.js +18 -10
- package/dist/cjs/zh-cn.js +4 -4
- package/dist/cjs/zh-tw.js +4 -4
- package/dist/cjs/zh-tw2.js +2 -2
- package/dist/cjs/zh.js +2 -2
- package/dist/es/{cds-aichat-internal.js → AppContainer.js} +1117 -7671
- package/dist/es/Carousel.js +16 -8
- package/dist/es/Chat.js +16 -8
- package/dist/es/GenesysMessengerServiceDesk.js +16 -8
- package/dist/es/HumanAgentServiceImpl.js +16 -8
- package/dist/es/NiceDFOServiceDesk.js +16 -8
- package/dist/es/PDFViewerContainer.js +16 -107
- package/dist/es/ReactPlayer.js +2 -2
- package/dist/es/SFServiceDesk.js +16 -8
- package/dist/es/ServiceDeskImpl.js +2 -2
- package/dist/es/Table.js +426 -310
- package/dist/es/ZendeskServiceDesk.js +16 -8
- package/dist/es/_node-resolve_empty.js +2 -2
- package/dist/es/agentActions.js +3 -3
- package/dist/es/aiChatEntry.js +136 -117
- package/dist/es/anonymousUserIDStorage.js +3 -3
- package/dist/es/ar-dz.js +3 -3
- package/dist/es/ar-kw.js +3 -3
- package/dist/es/ar-ly.js +3 -3
- package/dist/es/ar-ma.js +3 -3
- package/dist/es/ar-sa.js +3 -3
- package/dist/es/ar-tn.js +3 -3
- package/dist/es/ar.js +3 -3
- package/dist/es/ar2.js +2 -2
- package/dist/es/cds-aichat-container.js +103 -15
- package/dist/es/cds-aichat-custom-element.js +30 -18
- package/dist/es/cs.js +3 -3
- package/dist/es/cs2.js +2 -2
- package/dist/es/de-at.js +3 -3
- package/dist/es/de-ch.js +3 -3
- package/dist/es/de.js +3 -3
- package/dist/es/de2.js +2 -2
- package/dist/es/en-au.js +3 -3
- package/dist/es/en-ca.js +3 -3
- package/dist/es/en-gb.js +3 -3
- package/dist/es/en-ie.js +3 -3
- package/dist/es/en-il.js +3 -3
- package/dist/es/en-nz.js +3 -3
- package/dist/es/es-do.js +3 -3
- package/dist/es/es-us.js +3 -3
- package/dist/es/es.js +3 -3
- package/dist/es/es2.js +2 -2
- package/dist/es/export.js +3 -3
- package/dist/es/export.legacy.js +3 -3
- package/dist/es/fontUtils.js +2 -2
- package/dist/es/fr-ca.js +3 -3
- package/dist/es/fr-ch.js +3 -3
- package/dist/es/fr.js +3 -3
- package/dist/es/fr2.js +2 -2
- package/dist/es/highlight_js.js +2 -2
- package/dist/es/it-ch.js +3 -3
- package/dist/es/it.js +3 -3
- package/dist/es/it2.js +2 -2
- package/dist/es/ja.js +3 -3
- package/dist/es/ja2.js +2 -2
- package/dist/es/ko.js +3 -3
- package/dist/es/ko2.js +2 -2
- package/dist/es/markdown.js +2361 -15
- package/dist/es/mockServiceDesk.js +16 -8
- package/dist/es/nl.js +3 -3
- package/dist/es/nl2.js +2 -2
- package/dist/es/pt-br.js +3 -3
- package/dist/es/pt-br2.js +2 -2
- package/dist/es/pt.js +3 -3
- package/dist/es/render.js +17 -9
- package/dist/es/zh-cn.js +3 -3
- package/dist/es/zh-tw.js +3 -3
- package/dist/es/zh-tw2.js +2 -2
- package/dist/es/zh.js +2 -2
- package/dist/types/aiChatEntry.d.ts +69 -9
- package/package.json +27 -14
- package/dist/cjs/jstz.min.js +0 -43
- package/dist/cjs/markdown_attrs.js +0 -805
- package/dist/es/jstz.min.js +0 -41
- package/dist/es/markdown_attrs.js +0 -803
|
@@ -13,38 +13,46 @@ is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
|
|
|
13
13
|
or implied. See the License for the specific language governing permissions and limitations under
|
|
14
14
|
the License.
|
|
15
15
|
|
|
16
|
-
@carbon/ai-chat 0.1.
|
|
16
|
+
@carbon/ai-chat 0.1.7-alpha0
|
|
17
17
|
|
|
18
|
-
Built: Feb
|
|
18
|
+
Built: Feb 12 2025 9:14 am -05:00
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
*/
|
|
23
23
|
'use strict';
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var AppContainer = require('./AppContainer.js');
|
|
26
26
|
var ServiceDeskImpl = require('./ServiceDeskImpl.js');
|
|
27
|
-
require('lit');
|
|
28
|
-
require('lit/decorators.js');
|
|
29
27
|
require('react');
|
|
30
|
-
require('react-dom');
|
|
31
28
|
require('./highlight_js.js');
|
|
32
29
|
require('@carbon/react');
|
|
30
|
+
require('classnames');
|
|
33
31
|
require('react-intl');
|
|
34
32
|
require('react-redux');
|
|
33
|
+
require('tabbable');
|
|
34
|
+
require('@carbon/icons-react');
|
|
35
35
|
require('./markdown.js');
|
|
36
|
-
require('
|
|
36
|
+
require('tslib');
|
|
37
|
+
require('lit');
|
|
38
|
+
require('lit/decorators.js');
|
|
37
39
|
require('@carbon/web-components/es/components/button/index.js');
|
|
38
40
|
require('@carbon/web-components/es/components/overflow-menu/index.js');
|
|
39
41
|
require('lit/directives/unsafe-html.js');
|
|
42
|
+
require('prop-types');
|
|
40
43
|
require('@carbon/web-components/es/components/slug/index.js');
|
|
41
44
|
require('@carbon/web-components/es/components/popover/defs.js');
|
|
42
45
|
require('@carbon/web-components/es/components/slug/defs.js');
|
|
46
|
+
require('@floating-ui/react');
|
|
47
|
+
require('react-dom');
|
|
43
48
|
require('@carbon/web-components/es/components/slug/slug-action-button.js');
|
|
44
49
|
require('@carbon/web-components/es/components/slug/slug.js');
|
|
50
|
+
require('@carbon/web-components/es/components/inline-loading/index.js');
|
|
51
|
+
require('@carbon/icon-helpers');
|
|
52
|
+
require('@carbon/icons');
|
|
53
|
+
require('lit/directives/unsafe-svg.js');
|
|
45
54
|
require('@carbon/web-components/es/components/textarea/index.js');
|
|
46
55
|
require('@carbon/web-components/es/components/icon-button/index.js');
|
|
47
|
-
require('lit/directives/unsafe-svg.js');
|
|
48
56
|
require('@carbon/web-components/es/components/tag/index.js');
|
|
49
57
|
require('@carbon/web-components/es/components/chat-button/index.js');
|
|
50
58
|
require('@carbon/web-components/es/components/button/button.js');
|
|
@@ -99,7 +107,7 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
99
107
|
// Request an upload. This process will conclude when the fileUploaded event is fired. We'll resolve the upload
|
|
100
108
|
// Promise when that happens.
|
|
101
109
|
this.currentFileUploadID = upload.id;
|
|
102
|
-
|
|
110
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.requestUpload`, upload);
|
|
103
111
|
Genesys('command', 'MessagingService.requestUpload', { file: transfer.files }, null, failed);
|
|
104
112
|
};
|
|
105
113
|
}
|
|
@@ -111,7 +119,7 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
111
119
|
async startChat(connectMessage, startChatOptions) {
|
|
112
120
|
this.updatePersistedState({ agentsJoined: {}, lastAgentMessageID: null }, false);
|
|
113
121
|
await this.ensureGenesys(false);
|
|
114
|
-
const connectItem = connectMessage.output.generic.find(
|
|
122
|
+
const connectItem = connectMessage.output.generic.find(AppContainer.isConnectToAgent);
|
|
115
123
|
const { preStartChatPayload } = startChatOptions;
|
|
116
124
|
// Create an attribute with the session history key so the agent app can be loaded. Also add in any custom
|
|
117
125
|
// attributes that may be in the pre-chat payload.
|
|
@@ -122,7 +130,7 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
122
130
|
};
|
|
123
131
|
Genesys('command', 'Database.set', { messaging: { customAttributes } });
|
|
124
132
|
// Send each of the default summary message texts to the agent.
|
|
125
|
-
const messagesToAgent =
|
|
133
|
+
const messagesToAgent = AppContainer.getSummaryMessages(connectItem, 'Begin conversation');
|
|
126
134
|
messagesToAgent.forEach(message => {
|
|
127
135
|
Genesys('command', 'MessagingService.sendMessage', { message });
|
|
128
136
|
});
|
|
@@ -131,11 +139,11 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
131
139
|
* Handles an incoming MessagingService.messagesReceived event.
|
|
132
140
|
*/
|
|
133
141
|
async handleMessagesReceived(event) {
|
|
134
|
-
|
|
142
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.messagesReceived`, event);
|
|
135
143
|
const outbound = event.data.messages.filter((message) => message?.direction === 'Outbound');
|
|
136
144
|
if (outbound.length) {
|
|
137
145
|
this.callback.agentTyping(false);
|
|
138
|
-
await
|
|
146
|
+
await AppContainer.asyncForEach(outbound, async (message) => this.handleOutboundMessage(message, true));
|
|
139
147
|
}
|
|
140
148
|
}
|
|
141
149
|
/**
|
|
@@ -171,20 +179,20 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
171
179
|
* Handles an event message. These include the co-browse requests.
|
|
172
180
|
*/
|
|
173
181
|
async handleMessagesReceivedEvent(message) {
|
|
174
|
-
|
|
182
|
+
AppContainer.asyncForEach(message.events, async (event) => {
|
|
175
183
|
if (event.eventType === 'CoBrowse' && event.coBrowse?.type === 'OfferingExpired') {
|
|
176
|
-
|
|
184
|
+
AppContainer.debugLog(`${PREFIX} The agent cancelled the co-browse request.`);
|
|
177
185
|
await this.callback.screenShareEnded();
|
|
178
186
|
}
|
|
179
187
|
else if (event.eventType === 'CoBrowse' && event.coBrowse?.type === 'Offering') {
|
|
180
|
-
|
|
188
|
+
AppContainer.debugLog(`${PREFIX} Requesting co-browse sharing from the user...`);
|
|
181
189
|
const result = await this.callback.screenShareRequest();
|
|
182
|
-
|
|
190
|
+
AppContainer.debugLog(`${PREFIX} Got result for the co-browse request: ${result}`);
|
|
183
191
|
const { sessionId, sessionJoinToken } = event.coBrowse;
|
|
184
192
|
const params = { joinCode: sessionJoinToken, sessionId };
|
|
185
|
-
if (result ===
|
|
186
|
-
const onSuccess = () =>
|
|
187
|
-
const onError = (error) =>
|
|
193
|
+
if (result === AppContainer.ScreenShareState.ACCEPTED) {
|
|
194
|
+
const onSuccess = () => AppContainer.debugLog(`${PREFIX} Co-browse session successfully started`);
|
|
195
|
+
const onError = (error) => AppContainer.consoleError(`${PREFIX} Error starting a co-browse session`, error);
|
|
188
196
|
Genesys('command', 'CobrowseService.acceptSession', params, onSuccess, onError);
|
|
189
197
|
}
|
|
190
198
|
else {
|
|
@@ -204,10 +212,10 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
204
212
|
*/
|
|
205
213
|
async handleFileAttachments(message, agentID) {
|
|
206
214
|
const files = this.getFileAttachments(message);
|
|
207
|
-
const items = files.map(({ filename, url }) =>
|
|
208
|
-
response_type:
|
|
209
|
-
kind:
|
|
210
|
-
button_type:
|
|
215
|
+
const items = files.map(({ filename, url }) => AppContainer.assertType({
|
|
216
|
+
response_type: AppContainer.MessageResponseTypes.BUTTON,
|
|
217
|
+
kind: AppContainer.ButtonItemKind.LINK,
|
|
218
|
+
button_type: AppContainer.ButtonItemType.URL,
|
|
211
219
|
url,
|
|
212
220
|
label: filename,
|
|
213
221
|
}));
|
|
@@ -233,8 +241,8 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
233
241
|
* Handles an incoming MessagingService.typingReceived event. This indicates that an agent is typing.
|
|
234
242
|
*/
|
|
235
243
|
handleTypingReceived(event) {
|
|
236
|
-
|
|
237
|
-
if (!
|
|
244
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.typingReceived`, event);
|
|
245
|
+
if (!AppContainer.isEmptyObject(this.persistedState().agentsJoined)) {
|
|
238
246
|
if (this.agentTypingTimeout) {
|
|
239
247
|
clearTimeout(this.agentTypingTimeout);
|
|
240
248
|
}
|
|
@@ -255,14 +263,14 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
255
263
|
* Handles an incoming MessagingService.handleTypingTimeout event. This is the timout for an agent typing.
|
|
256
264
|
*/
|
|
257
265
|
handleTypingTimeout(event) {
|
|
258
|
-
|
|
266
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.handleTypingTimeout`, event);
|
|
259
267
|
this.callback.agentTyping(false);
|
|
260
268
|
}
|
|
261
269
|
/**
|
|
262
270
|
* Handles an incoming MessagingService.fileUploaded event.
|
|
263
271
|
*/
|
|
264
272
|
async handleFileUploaded(event) {
|
|
265
|
-
|
|
273
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.fileUploaded`, event);
|
|
266
274
|
// We have to send an actual message to Genesys in order to deliver the files.
|
|
267
275
|
Genesys('command', 'MessagingService.sendMessage', {
|
|
268
276
|
message: this.getIntlText('fileSharing_agentMessageText'),
|
|
@@ -273,7 +281,7 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
273
281
|
* Handles an incoming MessagingService.fileUploadError event.
|
|
274
282
|
*/
|
|
275
283
|
handleFileUploadError(event) {
|
|
276
|
-
|
|
284
|
+
AppContainer.consoleError(`${PREFIX} MessagingService.fileUploadError`, event);
|
|
277
285
|
if (this.currentFileUploadID) {
|
|
278
286
|
this.callback.setFileUploadStatus(this.currentFileUploadID, true, this.getIntlText('fileSharing_uploadFailed'));
|
|
279
287
|
}
|
|
@@ -282,7 +290,7 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
282
290
|
* Handles an incoming MessagingService.error event.
|
|
283
291
|
*/
|
|
284
292
|
handleError(event) {
|
|
285
|
-
|
|
293
|
+
AppContainer.consoleError(`${PREFIX} MessagingService.error`, event);
|
|
286
294
|
if (this.currentFileUploadID) {
|
|
287
295
|
const errorCode = event.data?.error?.body?.errorCode;
|
|
288
296
|
const errorMessage = event.data?.error?.body?.errorMessage || this.getIntlText('fileSharing_uploadFailed');
|
|
@@ -305,9 +313,9 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
305
313
|
* session after reloading the page.
|
|
306
314
|
*/
|
|
307
315
|
async handleRestored(event) {
|
|
308
|
-
|
|
316
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.restored`, event);
|
|
309
317
|
const { lastAgentMessageID } = this.persistedState();
|
|
310
|
-
|
|
318
|
+
AppContainer.debugLog(`${PREFIX} Last agent message: ${lastAgentMessageID}`);
|
|
311
319
|
// First we need to see if the agent's last message is in the list. If not, we're just going to give up and
|
|
312
320
|
// assume something is not right about the history instead of just potentially repeating the whole thing.
|
|
313
321
|
if (lastAgentMessageID && event.data?.messages?.length) {
|
|
@@ -329,21 +337,21 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
329
337
|
* Handles an incoming MessagingService.offline event.
|
|
330
338
|
*/
|
|
331
339
|
handleOffline(event) {
|
|
332
|
-
|
|
333
|
-
this.callback.setErrorStatus({ type:
|
|
340
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.offline`, event);
|
|
341
|
+
this.callback.setErrorStatus({ type: AppContainer.ErrorType.DISCONNECTED, isDisconnected: true });
|
|
334
342
|
}
|
|
335
343
|
/**
|
|
336
344
|
* Handles an incoming MessagingService.reconnected event.
|
|
337
345
|
*/
|
|
338
346
|
handleReconnected(event) {
|
|
339
|
-
|
|
340
|
-
this.callback.setErrorStatus({ type:
|
|
347
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.reconnected`, event);
|
|
348
|
+
this.callback.setErrorStatus({ type: AppContainer.ErrorType.DISCONNECTED, isDisconnected: false });
|
|
341
349
|
}
|
|
342
350
|
/**
|
|
343
351
|
* Handles an incoming CobrowseService.sessionEnded event.
|
|
344
352
|
*/
|
|
345
353
|
async handleCoBrowseEnded(event) {
|
|
346
|
-
|
|
354
|
+
AppContainer.debugLog(`${PREFIX} CobrowseService.sessionEnded`, event);
|
|
347
355
|
await this.callback.screenShareEnded();
|
|
348
356
|
}
|
|
349
357
|
/**
|
|
@@ -440,12 +448,12 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
440
448
|
*/
|
|
441
449
|
async installGenesys(isReconnecting) {
|
|
442
450
|
const { environment, deploymentID, scriptURL } = this.config;
|
|
443
|
-
|
|
451
|
+
AppContainer.debugLog(`${PREFIX} Creating integration using config`, this.config);
|
|
444
452
|
if (!this.persistedState()) {
|
|
445
453
|
this.updatePersistedState({ agentsJoined: {}, lastAgentMessageID: null }, false);
|
|
446
454
|
}
|
|
447
455
|
else {
|
|
448
|
-
|
|
456
|
+
AppContainer.debugLog(`${PREFIX} Retrieved previous state`, this.persistedState());
|
|
449
457
|
}
|
|
450
458
|
const config = { environment, deploymentId: deploymentID, debug: this.instance.getState().isDebugEnabled };
|
|
451
459
|
// This code is a simplified version of the Genesys embed script and is required by their SDK.
|
|
@@ -457,13 +465,13 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
457
465
|
c: config,
|
|
458
466
|
q: [],
|
|
459
467
|
};
|
|
460
|
-
await
|
|
468
|
+
await AppContainer.loadScript(scriptURL);
|
|
461
469
|
Genesys = windowObject[propertyName];
|
|
462
470
|
// Uncomment for debugging/development purposes.
|
|
463
471
|
// this.addAllEvents();
|
|
464
472
|
const serviceStartedPromise = new Promise((resolve, reject) => {
|
|
465
473
|
function serviceStartedHandler(event) {
|
|
466
|
-
|
|
474
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.started`, event);
|
|
467
475
|
resolve(!event?.data?.newSession);
|
|
468
476
|
}
|
|
469
477
|
Genesys('subscribe', 'MessagingService.started', serviceStartedHandler, reject);
|
|
@@ -480,13 +488,13 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
480
488
|
Genesys('subscribe', 'MessagingService.restored', (event) => this.handleRestored(event));
|
|
481
489
|
Genesys('subscribe', 'CobrowseService.sessionEnded', (event) => this.handleCoBrowseEnded(event));
|
|
482
490
|
// Load the configuration data for the deployment.
|
|
483
|
-
await
|
|
491
|
+
await AppContainer.resolveOrTimeout(new Promise((resolve, reject) => {
|
|
484
492
|
Genesys('registerPlugin', 'ConfigPlugin', (plugin) => {
|
|
485
493
|
plugin
|
|
486
494
|
.command('GenesysJS.configuration')
|
|
487
495
|
.then((data) => {
|
|
488
496
|
this.genesysConfig = data;
|
|
489
|
-
|
|
497
|
+
AppContainer.debugLog(`${PREFIX} Received GenesysJS.configuration`, this.genesysConfig);
|
|
490
498
|
resolve();
|
|
491
499
|
})
|
|
492
500
|
.catch(reject);
|
|
@@ -494,22 +502,22 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
494
502
|
}), INIT_TIMEOUT_SECS * 1000, `The GenesysJS.configuration command failed to return a configuration after ${INIT_TIMEOUT_SECS} seconds.`);
|
|
495
503
|
// Create the plugin that would be used when using user authentication.
|
|
496
504
|
if (this.genesysConfig?.auth.enabled) {
|
|
497
|
-
|
|
505
|
+
AppContainer.debugLog(`${PREFIX} Authentication is enabled`);
|
|
498
506
|
Genesys('registerPlugin', 'AuthProvider', (authProvider) => {
|
|
499
507
|
authProvider.registerCommand('getAuthCode', (event) => {
|
|
500
|
-
|
|
508
|
+
AppContainer.debugLog(`${PREFIX} AuthProvider.getAuthCode`, event);
|
|
501
509
|
this.eventBus.fire({ type: "agent:genesysMessenger:getAuthCode" /* BusEventType.GENESYS_MESSENGER_GET_AUTH_CODE */, genesysEvent: event }, this.instance);
|
|
502
510
|
});
|
|
503
511
|
authProvider.registerCommand('reAuthenticate', (event) => {
|
|
504
|
-
|
|
512
|
+
AppContainer.debugLog(`${PREFIX} AuthProvider.reAuthenticate`, event);
|
|
505
513
|
this.eventBus.fire({ type: "agent:genesysMessenger:reAuthenticate" /* BusEventType.GENESYS_MESSENGER_REAUTHENTICATE */, genesysEvent: event }, this.instance);
|
|
506
514
|
});
|
|
507
515
|
authProvider.subscribe('Auth.loggedOut', (event) => {
|
|
508
|
-
|
|
516
|
+
AppContainer.debugLog(`${PREFIX} AuthProvider.loggedOut`, event);
|
|
509
517
|
this.eventBus.fire({ type: "agent:genesysMessenger:loggedOut" /* BusEventType.GENESYS_MESSENGER_LOGGED_OUT */, genesysEvent: event }, this.instance);
|
|
510
518
|
});
|
|
511
519
|
authProvider.subscribe('Auth.authError', (error) => {
|
|
512
|
-
|
|
520
|
+
AppContainer.debugLog(`${PREFIX} AuthProvider.authError`, error);
|
|
513
521
|
this.eventBus.fire({ type: "agent:genesysMessenger:authError" /* BusEventType.GENESYS_MESSENGER_AUTH_ERROR */, genesysError: error }, this.instance);
|
|
514
522
|
});
|
|
515
523
|
// Tell Messenger that your plugin is ready (mandatory).
|
|
@@ -519,16 +527,16 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
519
527
|
});
|
|
520
528
|
}
|
|
521
529
|
// Wait for the messaging service to become ready before completing the initialization.
|
|
522
|
-
await
|
|
530
|
+
await AppContainer.resolveOrTimeout(new Promise(resolve => {
|
|
523
531
|
Genesys('subscribe', 'MessagingService.ready', (event) => {
|
|
524
|
-
|
|
532
|
+
AppContainer.debugLog(`${PREFIX} MessagingService.ready`, event);
|
|
525
533
|
resolve();
|
|
526
534
|
});
|
|
527
535
|
}), INIT_TIMEOUT_SECS * 1000, `The Genesys MessagingService failed to report ready after ${INIT_TIMEOUT_SECS} seconds.`);
|
|
528
536
|
let isNewSession = false;
|
|
529
537
|
if (isReconnecting) {
|
|
530
538
|
// This event only fires if reconnecting to an existing session.
|
|
531
|
-
isNewSession = await
|
|
539
|
+
isNewSession = await AppContainer.resolveOrTimeout(serviceStartedPromise, INIT_TIMEOUT_SECS * 1000, `The MessagingService.started event failed to fire after ${INIT_TIMEOUT_SECS} seconds.`);
|
|
532
540
|
}
|
|
533
541
|
// We have to look through the file upload modes to see if there are any files allowed. The docs suggest there
|
|
534
542
|
// should only be one object here but the schema does use an array so let's just go through all the objects to
|
|
@@ -555,7 +563,7 @@ class GenesysMessengerServiceDesk extends ServiceDeskImpl.ServiceDeskImpl {
|
|
|
555
563
|
* @returns true to indicate that the reconnect was successful.
|
|
556
564
|
*/
|
|
557
565
|
async reconnect() {
|
|
558
|
-
|
|
566
|
+
AppContainer.debugLog(`${PREFIX} Reconnecting to agent...`);
|
|
559
567
|
return this.ensureGenesys(true);
|
|
560
568
|
}
|
|
561
569
|
// Old code to support debugging.
|