@microsoft/omnichannel-chat-sdk 1.11.9-main.b0a2bb8 → 1.11.9-main.da8219b
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/lib/OmnichannelChatSDK.d.ts +4 -0
- package/lib/OmnichannelChatSDK.js +183 -72
- package/lib/OmnichannelChatSDK.js.map +1 -1
- package/lib/core/ChatSDKError.d.ts +3 -1
- package/lib/core/ChatSDKError.js +2 -0
- package/lib/core/ChatSDKError.js.map +1 -1
- package/lib/core/StartChatOptionalParams.d.ts +1 -0
- package/lib/telemetry/TelemetryEvent.d.ts +2 -1
- package/lib/telemetry/TelemetryEvent.js +1 -0
- package/lib/telemetry/TelemetryEvent.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -50,6 +50,7 @@ declare class OmnichannelChatSDK {
|
|
|
50
50
|
sessionId: string | null;
|
|
51
51
|
private chatOperationInProgress;
|
|
52
52
|
private pendingOperations;
|
|
53
|
+
private deferInitialAuth;
|
|
53
54
|
private unqServicesOrgUrl;
|
|
54
55
|
private coreServicesOrgUrl;
|
|
55
56
|
private dynamicsLocationCode;
|
|
@@ -181,6 +182,9 @@ declare class OmnichannelChatSDK {
|
|
|
181
182
|
getVoiceVideoCalling(voiceVideoCallingOptionalParams?: VoiceVideoCallingOptionalParams): Promise<GetVoiceVideoCallingResponse>;
|
|
182
183
|
getPostChatSurveyContext(): Promise<PostChatContext>;
|
|
183
184
|
getAgentAvailability(optionalParams?: GetAgentAvailabilityOptionalParams): Promise<GetAgentAvailabilityResponse>;
|
|
185
|
+
authenticateChat(tokenOrProvider: string | (() => Promise<string>), optionalParams?: {
|
|
186
|
+
refreshChatToken?: boolean;
|
|
187
|
+
}): Promise<void>;
|
|
184
188
|
startPolling(): Promise<void>;
|
|
185
189
|
stopPolling(): Promise<void>;
|
|
186
190
|
private populateInitChatOptionalParam;
|
|
@@ -119,6 +119,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
119
119
|
// Operation queue for serializing chat operations
|
|
120
120
|
this.chatOperationInProgress = false;
|
|
121
121
|
this.pendingOperations = [];
|
|
122
|
+
this.deferInitialAuth = false;
|
|
122
123
|
this.unqServicesOrgUrl = null;
|
|
123
124
|
this.coreServicesOrgUrl = null;
|
|
124
125
|
this.dynamicsLocationCode = null;
|
|
@@ -843,12 +844,12 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
843
844
|
};
|
|
844
845
|
OmnichannelChatSDK.prototype.internalStartChat = function () {
|
|
845
846
|
return __awaiter(this, arguments, void 0, function (optionalParams) {
|
|
846
|
-
var shouldReinitIC3Client, _a, reconnectableChatsParams, reconnectableChatsResponse, e_6, telemetryData, conversationDetails, telemetryData, telemetryData, e_7, telemetryData, sessionInitOptionalParams, location_2, sessionInitPromise, createConversationPromise, messagingClientPromise, attachmentClientPromise, error_5;
|
|
847
|
+
var shouldReinitIC3Client, _a, reconnectableChatsParams, reconnectableChatsResponse, e_6, telemetryData, conversationDetails, telemetryData, telemetryData, deferInitialAuth, isMidAuthEnabled, e_7, telemetryData, sessionInitOptionalParams, location_2, sessionInitPromise, createConversationPromise, messagingClientPromise, attachmentClientPromise, error_5;
|
|
847
848
|
var _this = this;
|
|
848
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
849
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
849
850
|
if (optionalParams === void 0) { optionalParams = {}; }
|
|
850
|
-
return __generator(this, function (
|
|
851
|
-
switch (
|
|
851
|
+
return __generator(this, function (_u) {
|
|
852
|
+
switch (_u.label) {
|
|
852
853
|
case 0:
|
|
853
854
|
this.isEndingChat = false;
|
|
854
855
|
this.scenarioMarker.startScenario(TelemetryEvent_1.default.StartChat, {
|
|
@@ -865,29 +866,29 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
865
866
|
_a = this;
|
|
866
867
|
return [4 /*yield*/, this.getIC3Client()];
|
|
867
868
|
case 1:
|
|
868
|
-
_a.IC3Client =
|
|
869
|
-
|
|
869
|
+
_a.IC3Client = _u.sent();
|
|
870
|
+
_u.label = 2;
|
|
870
871
|
case 2:
|
|
871
872
|
if (this.isChatReconnect && !((_b = this.chatSDKConfig.chatReconnect) === null || _b === void 0 ? void 0 : _b.disable) && !this.isPersistentChat && optionalParams.reconnectId) {
|
|
872
873
|
this.reconnectId = optionalParams.reconnectId;
|
|
873
874
|
}
|
|
874
875
|
if (!(this.isPersistentChat && !((_c = this.chatSDKConfig.persistentChat) === null || _c === void 0 ? void 0 : _c.disable))) return [3 /*break*/, 6];
|
|
875
|
-
|
|
876
|
+
_u.label = 3;
|
|
876
877
|
case 3:
|
|
877
|
-
|
|
878
|
+
_u.trys.push([3, 5, , 6]);
|
|
878
879
|
reconnectableChatsParams = {
|
|
879
880
|
authenticatedUserToken: this.authenticatedUserToken,
|
|
880
881
|
requestId: this.requestId
|
|
881
882
|
};
|
|
882
883
|
return [4 /*yield*/, this.OCClient.getReconnectableChats(reconnectableChatsParams)];
|
|
883
884
|
case 4:
|
|
884
|
-
reconnectableChatsResponse =
|
|
885
|
+
reconnectableChatsResponse = _u.sent();
|
|
885
886
|
if (reconnectableChatsResponse && reconnectableChatsResponse.reconnectid) {
|
|
886
887
|
this.reconnectId = reconnectableChatsResponse.reconnectid;
|
|
887
888
|
}
|
|
888
889
|
return [3 /*break*/, 6];
|
|
889
890
|
case 5:
|
|
890
|
-
e_6 =
|
|
891
|
+
e_6 = _u.sent();
|
|
891
892
|
telemetryData = {
|
|
892
893
|
RequestId: this.requestId,
|
|
893
894
|
ChatId: this.chatToken.chatId,
|
|
@@ -901,7 +902,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
901
902
|
this.sessionId = optionalParams.liveChatContext.sessionId || null;
|
|
902
903
|
return [4 /*yield*/, this.getConversationDetails()];
|
|
903
904
|
case 7:
|
|
904
|
-
conversationDetails =
|
|
905
|
+
conversationDetails = _u.sent();
|
|
905
906
|
if (Object.keys(conversationDetails).length === 0) {
|
|
906
907
|
telemetryData = {
|
|
907
908
|
RequestId: this.requestId,
|
|
@@ -917,44 +918,69 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
917
918
|
};
|
|
918
919
|
exceptionThrowers_1.default.throwClosedConversation(this.scenarioMarker, TelemetryEvent_1.default.StartChat, telemetryData);
|
|
919
920
|
}
|
|
920
|
-
|
|
921
|
+
_u.label = 8;
|
|
921
922
|
case 8:
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
923
|
+
deferInitialAuth = this.deferInitialAuth;
|
|
924
|
+
this.deferInitialAuth = false;
|
|
925
|
+
isMidAuthEnabled = ((_g = (_f = (_e = (_d = this.liveChatConfig) === null || _d === void 0 ? void 0 : _d.LiveWSAndLiveChatEngJoin) === null || _e === void 0 ? void 0 : _e.msdyn_authenticatedsigninoptional) === null || _f === void 0 ? void 0 : _f.toString()) === null || _g === void 0 ? void 0 : _g.toLowerCase()) === "true";
|
|
926
|
+
this.scenarioMarker.singleRecord(TelemetryEvent_1.default.StartChat, {
|
|
927
|
+
RequestId: this.requestId || "",
|
|
928
|
+
ChatId: ((_h = this.chatToken) === null || _h === void 0 ? void 0 : _h.chatId) || "",
|
|
929
|
+
CustomProperties: JSON.stringify({
|
|
930
|
+
authSettings: !!this.authSettings,
|
|
931
|
+
isMidAuthEnabled: String(isMidAuthEnabled),
|
|
932
|
+
deferInitialAuth: String(deferInitialAuth),
|
|
933
|
+
hasAuthToken: String(!!this.authenticatedUserToken)
|
|
934
|
+
})
|
|
935
|
+
});
|
|
936
|
+
if (!this.authSettings) return [3 /*break*/, 15];
|
|
937
|
+
if (!(isMidAuthEnabled && (deferInitialAuth || !this.authenticatedUserToken))) return [3 /*break*/, 9];
|
|
938
|
+
this.scenarioMarker.singleRecord(TelemetryEvent_1.default.StartChat, {
|
|
939
|
+
RequestId: this.requestId || "",
|
|
940
|
+
ChatId: ((_j = this.chatToken) === null || _j === void 0 ? void 0 : _j.chatId) || "",
|
|
941
|
+
CustomProperties: JSON.stringify({
|
|
942
|
+
action: "DeferredInitialAuth",
|
|
943
|
+
deferInitialAuth: String(deferInitialAuth),
|
|
944
|
+
hasAuthToken: String(!!this.authenticatedUserToken)
|
|
945
|
+
})
|
|
946
|
+
});
|
|
947
|
+
return [3 /*break*/, 15];
|
|
925
948
|
case 9:
|
|
926
|
-
|
|
927
|
-
|
|
949
|
+
if (!!this.authenticatedUserToken) return [3 /*break*/, 11];
|
|
950
|
+
return [4 /*yield*/, this.setAuthTokenProvider(this.chatSDKConfig.getAuthToken, { throwError: true })];
|
|
928
951
|
case 10:
|
|
929
|
-
|
|
952
|
+
_u.sent();
|
|
953
|
+
_u.label = 11;
|
|
954
|
+
case 11:
|
|
955
|
+
if (!(optionalParams.liveChatContext && Object.keys(optionalParams.liveChatContext).length > 0)) return [3 /*break*/, 15];
|
|
930
956
|
this.chatToken = optionalParams.liveChatContext.chatToken || {};
|
|
931
957
|
this.requestId = optionalParams.liveChatContext.requestId || (0, ocsdk_1.uuidv4)();
|
|
932
|
-
|
|
933
|
-
case
|
|
934
|
-
|
|
958
|
+
_u.label = 12;
|
|
959
|
+
case 12:
|
|
960
|
+
_u.trys.push([12, 14, , 15]);
|
|
935
961
|
return [4 /*yield*/, this.OCClient.validateAuthChatRecord(this.requestId, {
|
|
936
962
|
authenticatedUserToken: this.authenticatedUserToken,
|
|
937
963
|
chatId: this.chatToken.chatId
|
|
938
964
|
})];
|
|
939
|
-
case 12:
|
|
940
|
-
_o.sent();
|
|
941
|
-
return [3 /*break*/, 14];
|
|
942
965
|
case 13:
|
|
943
|
-
|
|
966
|
+
_u.sent();
|
|
967
|
+
return [3 /*break*/, 15];
|
|
968
|
+
case 14:
|
|
969
|
+
e_7 = _u.sent();
|
|
944
970
|
telemetryData = {
|
|
945
971
|
RequestId: this.requestId,
|
|
946
972
|
ChatId: this.chatToken.chatId,
|
|
947
973
|
};
|
|
948
974
|
exceptionThrowers_1.default.throwAuthenticatedChatConversationRetrievalFailure(e_7, this.scenarioMarker, TelemetryEvent_1.default.StartChat, telemetryData);
|
|
949
|
-
return [3 /*break*/,
|
|
950
|
-
case 14:
|
|
951
|
-
if (!(((_d = this.chatSDKConfig.useCreateConversation) === null || _d === void 0 ? void 0 : _d.disable) && this.chatToken && Object.keys(this.chatToken).length === 0)) return [3 /*break*/, 16];
|
|
952
|
-
return [4 /*yield*/, this.getChatToken(false)];
|
|
975
|
+
return [3 /*break*/, 15];
|
|
953
976
|
case 15:
|
|
954
|
-
|
|
955
|
-
|
|
977
|
+
if (!(((_k = this.chatSDKConfig.useCreateConversation) === null || _k === void 0 ? void 0 : _k.disable) && this.chatToken && Object.keys(this.chatToken).length === 0)) return [3 /*break*/, 17];
|
|
978
|
+
return [4 /*yield*/, this.getChatToken(false)];
|
|
956
979
|
case 16:
|
|
957
|
-
|
|
980
|
+
_u.sent();
|
|
981
|
+
_u.label = 17;
|
|
982
|
+
case 17:
|
|
983
|
+
if ((_l = this.chatToken) === null || _l === void 0 ? void 0 : _l.chatId) {
|
|
958
984
|
loggerUtils_1.default.setChatId(this.chatToken.chatId || '', this.ocSdkLogger, this.acsClientLogger, this.acsAdapterLogger, this.callingSdkLogger, this.amsClientLogger, this.ic3ClientLogger);
|
|
959
985
|
}
|
|
960
986
|
sessionInitOptionalParams = {
|
|
@@ -968,20 +994,20 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
968
994
|
if (optionalParams.handle) {
|
|
969
995
|
sessionInitOptionalParams.initContext.handle = optionalParams.handle;
|
|
970
996
|
}
|
|
971
|
-
if (this.isPersistentChat && !((
|
|
997
|
+
if (this.isPersistentChat && !((_m = this.chatSDKConfig.persistentChat) === null || _m === void 0 ? void 0 : _m.disable)) {
|
|
972
998
|
sessionInitOptionalParams.reconnectId = this.reconnectId;
|
|
973
999
|
}
|
|
974
|
-
else if (this.isChatReconnect && !((
|
|
1000
|
+
else if (this.isChatReconnect && !((_o = this.chatSDKConfig.chatReconnect) === null || _o === void 0 ? void 0 : _o.disable) && !this.isPersistentChat) {
|
|
975
1001
|
sessionInitOptionalParams.reconnectId = this.reconnectId;
|
|
976
1002
|
}
|
|
977
|
-
if (!((0, parsers_1.parseLowerCaseString)((
|
|
1003
|
+
if (!((0, parsers_1.parseLowerCaseString)((_q = (_p = this.liveChatConfig) === null || _p === void 0 ? void 0 : _p.LiveWSAndLiveChatEngJoin) === null || _q === void 0 ? void 0 : _q.msdyn_requestvisitorlocation) === "true")) return [3 /*break*/, 19];
|
|
978
1004
|
return [4 /*yield*/, (0, location_1.getLocationInfo)(this.scenarioMarker, this.chatToken.chatId, this.requestId)];
|
|
979
|
-
case
|
|
980
|
-
location_2 =
|
|
1005
|
+
case 18:
|
|
1006
|
+
location_2 = _u.sent();
|
|
981
1007
|
sessionInitOptionalParams.initContext.latitude = location_2.latitude;
|
|
982
1008
|
sessionInitOptionalParams.initContext.longitude = location_2.longitude;
|
|
983
|
-
|
|
984
|
-
case
|
|
1009
|
+
_u.label = 19;
|
|
1010
|
+
case 19:
|
|
985
1011
|
sessionInitPromise = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
986
1012
|
var error_6, telemetryData;
|
|
987
1013
|
var _a, _b, _c;
|
|
@@ -1175,33 +1201,33 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
1175
1201
|
}
|
|
1176
1202
|
});
|
|
1177
1203
|
}); };
|
|
1178
|
-
if (!!((
|
|
1204
|
+
if (!!((_r = this.chatSDKConfig.useCreateConversation) === null || _r === void 0 ? void 0 : _r.disable)) return [3 /*break*/, 21];
|
|
1179
1205
|
return [4 /*yield*/, createConversationPromise()];
|
|
1180
|
-
case
|
|
1181
|
-
|
|
1182
|
-
return [3 /*break*/,
|
|
1183
|
-
case
|
|
1184
|
-
case 21:
|
|
1185
|
-
_o.sent(); // Await the session initialization
|
|
1186
|
-
_o.label = 22;
|
|
1206
|
+
case 20:
|
|
1207
|
+
_u.sent();
|
|
1208
|
+
return [3 /*break*/, 23];
|
|
1209
|
+
case 21: return [4 /*yield*/, sessionInitPromise()];
|
|
1187
1210
|
case 22:
|
|
1188
|
-
|
|
1189
|
-
|
|
1211
|
+
_u.sent(); // Await the session initialization
|
|
1212
|
+
_u.label = 23;
|
|
1190
1213
|
case 23:
|
|
1191
|
-
|
|
1192
|
-
return [
|
|
1214
|
+
_u.trys.push([23, 25, , 27]);
|
|
1215
|
+
return [4 /*yield*/, Promise.all([messagingClientPromise(), attachmentClientPromise()])];
|
|
1193
1216
|
case 24:
|
|
1194
|
-
|
|
1217
|
+
_u.sent();
|
|
1218
|
+
return [3 /*break*/, 27];
|
|
1219
|
+
case 25:
|
|
1220
|
+
error_5 = _u.sent();
|
|
1195
1221
|
// If conversation joining fails after conversation was created, clean up the conversation
|
|
1196
1222
|
// Only cleanup conversations that were freshly created (not existing ones being reconnected to)
|
|
1197
1223
|
return [4 /*yield*/, this.handleConversationJoinFailure(error_5, optionalParams)];
|
|
1198
|
-
case
|
|
1224
|
+
case 26:
|
|
1199
1225
|
// If conversation joining fails after conversation was created, clean up the conversation
|
|
1200
1226
|
// Only cleanup conversations that were freshly created (not existing ones being reconnected to)
|
|
1201
|
-
|
|
1227
|
+
_u.sent();
|
|
1202
1228
|
throw error_5; // Re-throw the original error
|
|
1203
|
-
case
|
|
1204
|
-
if (this.isPersistentChat && !((
|
|
1229
|
+
case 27:
|
|
1230
|
+
if (this.isPersistentChat && !((_s = this.chatSDKConfig.persistentChat) === null || _s === void 0 ? void 0 : _s.disable)) {
|
|
1205
1231
|
this.refreshTokenTimer = setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1206
1232
|
var error_13;
|
|
1207
1233
|
return __generator(this, function (_a) {
|
|
@@ -1223,7 +1249,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
1223
1249
|
case 3: return [2 /*return*/];
|
|
1224
1250
|
}
|
|
1225
1251
|
});
|
|
1226
|
-
}); }, (
|
|
1252
|
+
}); }, (_t = this.chatSDKConfig.persistentChat) === null || _t === void 0 ? void 0 : _t.tokenUpdateTime);
|
|
1227
1253
|
}
|
|
1228
1254
|
return [2 /*return*/];
|
|
1229
1255
|
}
|
|
@@ -2825,6 +2851,91 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
2825
2851
|
});
|
|
2826
2852
|
});
|
|
2827
2853
|
};
|
|
2854
|
+
OmnichannelChatSDK.prototype.authenticateChat = function (tokenOrProvider_1) {
|
|
2855
|
+
return __awaiter(this, arguments, void 0, function (tokenOrProvider, optionalParams) {
|
|
2856
|
+
var telemetryData, token, _a, e_9, exceptionDetails, exceptionDetails, error_26, exceptionDetails;
|
|
2857
|
+
var _b, _c, _d, _e, _f;
|
|
2858
|
+
if (optionalParams === void 0) { optionalParams = {}; }
|
|
2859
|
+
return __generator(this, function (_g) {
|
|
2860
|
+
switch (_g.label) {
|
|
2861
|
+
case 0:
|
|
2862
|
+
if (!this.isInitialized) {
|
|
2863
|
+
exceptionThrowers_1.default.throwUninitializedChatSDK(this.scenarioMarker, TelemetryEvent_1.default.MidConversationAuth);
|
|
2864
|
+
}
|
|
2865
|
+
if (!this.conversation || !((_b = this.chatToken) === null || _b === void 0 ? void 0 : _b.chatId)) {
|
|
2866
|
+
exceptionThrowers_1.default.throwChatSDKError(ChatSDKError_1.ChatSDKErrorName.InvalidConversation, new Error("No active conversation to authenticate"), this.scenarioMarker, TelemetryEvent_1.default.MidConversationAuth, { RequestId: this.requestId, ChatId: (_d = (_c = this.chatToken) === null || _c === void 0 ? void 0 : _c.chatId) !== null && _d !== void 0 ? _d : "" });
|
|
2867
|
+
}
|
|
2868
|
+
telemetryData = {
|
|
2869
|
+
RequestId: this.requestId,
|
|
2870
|
+
ChatId: (_e = this.chatToken) === null || _e === void 0 ? void 0 : _e.chatId
|
|
2871
|
+
};
|
|
2872
|
+
this.scenarioMarker.startScenario(TelemetryEvent_1.default.MidConversationAuth, telemetryData);
|
|
2873
|
+
_g.label = 1;
|
|
2874
|
+
case 1:
|
|
2875
|
+
_g.trys.push([1, 5, , 6]);
|
|
2876
|
+
if (!(typeof tokenOrProvider === "function")) return [3 /*break*/, 3];
|
|
2877
|
+
return [4 /*yield*/, tokenOrProvider()];
|
|
2878
|
+
case 2:
|
|
2879
|
+
_a = _g.sent();
|
|
2880
|
+
return [3 /*break*/, 4];
|
|
2881
|
+
case 3:
|
|
2882
|
+
_a = tokenOrProvider;
|
|
2883
|
+
_g.label = 4;
|
|
2884
|
+
case 4:
|
|
2885
|
+
token = _a;
|
|
2886
|
+
return [3 /*break*/, 6];
|
|
2887
|
+
case 5:
|
|
2888
|
+
e_9 = _g.sent();
|
|
2889
|
+
exceptionDetails = {
|
|
2890
|
+
response: ChatSDKError_1.ChatSDKErrorName.MidConversationAuthFailure,
|
|
2891
|
+
errorObject: "".concat(e_9)
|
|
2892
|
+
};
|
|
2893
|
+
this.scenarioMarker.failScenario(TelemetryEvent_1.default.MidConversationAuth, __assign(__assign({}, telemetryData), { ExceptionDetails: JSON.stringify(exceptionDetails) }));
|
|
2894
|
+
throw new ChatSDKError_1.ChatSDKError(ChatSDKError_1.ChatSDKErrorName.MidConversationAuthFailure, undefined, exceptionDetails);
|
|
2895
|
+
case 6:
|
|
2896
|
+
if (!token || token.trim().length === 0) {
|
|
2897
|
+
exceptionDetails = {
|
|
2898
|
+
response: ChatSDKError_1.ChatSDKErrorName.MidConversationAuthFailure,
|
|
2899
|
+
message: "Authentication token is empty or invalid"
|
|
2900
|
+
};
|
|
2901
|
+
this.scenarioMarker.failScenario(TelemetryEvent_1.default.MidConversationAuth, __assign(__assign({}, telemetryData), { ExceptionDetails: JSON.stringify(exceptionDetails) }));
|
|
2902
|
+
throw new ChatSDKError_1.ChatSDKError(ChatSDKError_1.ChatSDKErrorName.MidConversationAuthFailure, undefined, exceptionDetails);
|
|
2903
|
+
}
|
|
2904
|
+
_g.label = 7;
|
|
2905
|
+
case 7:
|
|
2906
|
+
_g.trys.push([7, 11, , 12]);
|
|
2907
|
+
if (!((_f = this.OCClient) === null || _f === void 0 ? void 0 : _f.midConversationAuthenticateChat)) {
|
|
2908
|
+
throw new Error("OCClient.midConversationAuthenticateChat is not available");
|
|
2909
|
+
}
|
|
2910
|
+
return [4 /*yield*/, this.OCClient.midConversationAuthenticateChat(this.requestId, {
|
|
2911
|
+
chatId: this.chatToken.chatId,
|
|
2912
|
+
authenticatedUserToken: token
|
|
2913
|
+
})];
|
|
2914
|
+
case 8:
|
|
2915
|
+
_g.sent();
|
|
2916
|
+
// Persist token
|
|
2917
|
+
this.authenticatedUserToken = token;
|
|
2918
|
+
if (!optionalParams.refreshChatToken) return [3 /*break*/, 10];
|
|
2919
|
+
return [4 /*yield*/, this.getChatToken(false)];
|
|
2920
|
+
case 9:
|
|
2921
|
+
_g.sent();
|
|
2922
|
+
_g.label = 10;
|
|
2923
|
+
case 10:
|
|
2924
|
+
this.scenarioMarker.completeScenario(TelemetryEvent_1.default.MidConversationAuth, telemetryData);
|
|
2925
|
+
return [3 /*break*/, 12];
|
|
2926
|
+
case 11:
|
|
2927
|
+
error_26 = _g.sent();
|
|
2928
|
+
exceptionDetails = {
|
|
2929
|
+
response: ChatSDKError_1.ChatSDKErrorName.MidConversationAuthFailure,
|
|
2930
|
+
errorObject: "".concat(error_26)
|
|
2931
|
+
};
|
|
2932
|
+
this.scenarioMarker.failScenario(TelemetryEvent_1.default.MidConversationAuth, __assign(__assign({}, telemetryData), { ExceptionDetails: JSON.stringify(exceptionDetails) }));
|
|
2933
|
+
throw new ChatSDKError_1.ChatSDKError(ChatSDKError_1.ChatSDKErrorName.MidConversationAuthFailure, undefined, exceptionDetails);
|
|
2934
|
+
case 12: return [2 /*return*/];
|
|
2935
|
+
}
|
|
2936
|
+
});
|
|
2937
|
+
});
|
|
2938
|
+
};
|
|
2828
2939
|
OmnichannelChatSDK.prototype.startPolling = function () {
|
|
2829
2940
|
return __awaiter(this, void 0, void 0, function () {
|
|
2830
2941
|
return __generator(this, function (_a) {
|
|
@@ -3057,7 +3168,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3057
3168
|
};
|
|
3058
3169
|
OmnichannelChatSDK.prototype.getChatConfig = function () {
|
|
3059
3170
|
return __awaiter(this, arguments, void 0, function (optionalParams) {
|
|
3060
|
-
var sendCacheHeaders, bypassCache, liveChatConfig,
|
|
3171
|
+
var sendCacheHeaders, bypassCache, liveChatConfig, error_27, _a;
|
|
3061
3172
|
var _b, _c;
|
|
3062
3173
|
if (optionalParams === void 0) { optionalParams = {}; }
|
|
3063
3174
|
return __generator(this, function (_d) {
|
|
@@ -3078,8 +3189,8 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3078
3189
|
this.debug && console.log("[OmnichannelChatSDK][getChatConfig][liveChatVersion] ".concat(this.liveChatVersion));
|
|
3079
3190
|
return [2 /*return*/, this.liveChatConfig];
|
|
3080
3191
|
case 3:
|
|
3081
|
-
|
|
3082
|
-
if (!(0, internalUtils_1.isCoreServicesOrgUrlDNSError)(
|
|
3192
|
+
error_27 = _d.sent();
|
|
3193
|
+
if (!(0, internalUtils_1.isCoreServicesOrgUrlDNSError)(error_27, this.coreServicesOrgUrl, this.dynamicsLocationCode)) return [3 /*break*/, 6];
|
|
3083
3194
|
this.omnichannelConfig.orgUrl = this.unqServicesOrgUrl;
|
|
3084
3195
|
_a = this;
|
|
3085
3196
|
return [4 /*yield*/, ocsdk_1.SDKProvider.getSDK(this.omnichannelConfig, (0, createOcSDKConfiguration_1.default)(false), this.ocSdkLogger)];
|
|
@@ -3091,10 +3202,10 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3091
3202
|
return [3 /*break*/, 7];
|
|
3092
3203
|
case 6:
|
|
3093
3204
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3094
|
-
if (((_c = (_b =
|
|
3205
|
+
if (((_c = (_b = error_27.response) === null || _b === void 0 ? void 0 : _b.headers) === null || _c === void 0 ? void 0 : _c.errorcode) && parseInt(error_27.response.headers.errorcode) === OmnichannelErrorCodes_1.default.WidgetNotFound) {
|
|
3095
3206
|
console.warn("No widget with the given app id is present in the system.");
|
|
3096
3207
|
}
|
|
3097
|
-
throw
|
|
3208
|
+
throw error_27; // Bubble up error by default to throw ChatConfigRetrievalFailure
|
|
3098
3209
|
case 7: return [3 /*break*/, 8];
|
|
3099
3210
|
case 8: return [2 /*return*/, this.liveChatConfig];
|
|
3100
3211
|
}
|
|
@@ -3129,7 +3240,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3129
3240
|
};
|
|
3130
3241
|
OmnichannelChatSDK.prototype.updateChatToken = function (newToken, newRegionGTMS) {
|
|
3131
3242
|
return __awaiter(this, void 0, void 0, function () {
|
|
3132
|
-
var sessionInfo,
|
|
3243
|
+
var sessionInfo, error_28, exceptionDetails;
|
|
3133
3244
|
return __generator(this, function (_a) {
|
|
3134
3245
|
switch (_a.label) {
|
|
3135
3246
|
case 0:
|
|
@@ -3157,7 +3268,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3157
3268
|
});
|
|
3158
3269
|
return [3 /*break*/, 5];
|
|
3159
3270
|
case 4:
|
|
3160
|
-
|
|
3271
|
+
error_28 = _a.sent();
|
|
3161
3272
|
exceptionDetails = {
|
|
3162
3273
|
response: "UpdateChatTokenFailed"
|
|
3163
3274
|
};
|
|
@@ -3174,7 +3285,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3174
3285
|
};
|
|
3175
3286
|
OmnichannelChatSDK.prototype.setAuthTokenProvider = function (provider_1) {
|
|
3176
3287
|
return __awaiter(this, arguments, void 0, function (provider, optionalParams) {
|
|
3177
|
-
var token, exceptionDetails,
|
|
3288
|
+
var token, exceptionDetails, error_29, exceptionDetails, exceptionDetails;
|
|
3178
3289
|
if (optionalParams === void 0) { optionalParams = {}; }
|
|
3179
3290
|
return __generator(this, function (_a) {
|
|
3180
3291
|
switch (_a.label) {
|
|
@@ -3206,12 +3317,12 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3206
3317
|
}
|
|
3207
3318
|
return [3 /*break*/, 4];
|
|
3208
3319
|
case 3:
|
|
3209
|
-
|
|
3320
|
+
error_29 = _a.sent();
|
|
3210
3321
|
exceptionDetails = {
|
|
3211
3322
|
response: ChatSDKError_1.ChatSDKErrorName.GetAuthTokenFailed
|
|
3212
3323
|
};
|
|
3213
|
-
if (
|
|
3214
|
-
exceptionDetails.response =
|
|
3324
|
+
if (error_29.message == ChatSDKError_1.ChatSDKErrorName.UndefinedAuthToken) {
|
|
3325
|
+
exceptionDetails.response = error_29.message;
|
|
3215
3326
|
}
|
|
3216
3327
|
this.scenarioMarker.failScenario(TelemetryEvent_1.default.GetAuthToken, {
|
|
3217
3328
|
ExceptionDetails: JSON.stringify(exceptionDetails)
|
|
@@ -3310,7 +3421,7 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3310
3421
|
*/
|
|
3311
3422
|
OmnichannelChatSDK.prototype.getPersistentChatHistory = function () {
|
|
3312
3423
|
return __awaiter(this, arguments, void 0, function (getPersistentChatHistoryOptionalParams) {
|
|
3313
|
-
var params, result,
|
|
3424
|
+
var params, result, error_30, telemetryData;
|
|
3314
3425
|
var _a, _b, _c, _d, _e;
|
|
3315
3426
|
if (getPersistentChatHistoryOptionalParams === void 0) { getPersistentChatHistoryOptionalParams = {}; }
|
|
3316
3427
|
return __generator(this, function (_f) {
|
|
@@ -3352,13 +3463,13 @@ var OmnichannelChatSDK = /** @class */ (function () {
|
|
|
3352
3463
|
});
|
|
3353
3464
|
return [2 /*return*/, result];
|
|
3354
3465
|
case 3:
|
|
3355
|
-
|
|
3466
|
+
error_30 = _f.sent();
|
|
3356
3467
|
telemetryData = {
|
|
3357
3468
|
RequestId: this.requestId,
|
|
3358
3469
|
ChatId: (_e = this.chatToken) === null || _e === void 0 ? void 0 : _e.chatId,
|
|
3359
|
-
ErrorMessage: (
|
|
3470
|
+
ErrorMessage: (error_30 === null || error_30 === void 0 ? void 0 : error_30.message) || 'Unknown error' // Added error message for better debugging
|
|
3360
3471
|
};
|
|
3361
|
-
exceptionThrowers_1.default.throwPersistentChatConversationRetrievalFailure(
|
|
3472
|
+
exceptionThrowers_1.default.throwPersistentChatConversationRetrievalFailure(error_30, this.scenarioMarker, TelemetryEvent_1.default.GetPersistentChatHistory, telemetryData);
|
|
3362
3473
|
return [3 /*break*/, 4];
|
|
3363
3474
|
case 4: return [2 /*return*/];
|
|
3364
3475
|
}
|