@webex/calling 3.10.0 → 3.11.0-next.10

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.
Files changed (158) hide show
  1. package/dist/CallHistory/CallHistory.js +128 -133
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +289 -186
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallSettings/CallSettings.js +17 -18
  6. package/dist/CallSettings/CallSettings.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.test.js +14 -14
  8. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +72 -25
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +138 -48
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +138 -145
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +149 -150
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallingClient/CallingClient.js +407 -359
  18. package/dist/CallingClient/CallingClient.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.test.js +378 -401
  20. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  21. package/dist/CallingClient/calling/CallerId/index.js +7 -8
  22. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  23. package/dist/CallingClient/calling/CallerId/index.test.js +24 -24
  24. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  25. package/dist/CallingClient/calling/call.js +666 -624
  26. package/dist/CallingClient/calling/call.js.map +1 -1
  27. package/dist/CallingClient/calling/call.test.js +908 -556
  28. package/dist/CallingClient/calling/call.test.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.js +22 -18
  30. package/dist/CallingClient/calling/callManager.js.map +1 -1
  31. package/dist/CallingClient/calling/callManager.test.js +114 -114
  32. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  33. package/dist/CallingClient/constants.js +7 -1
  34. package/dist/CallingClient/constants.js.map +1 -1
  35. package/dist/CallingClient/line/index.js +57 -74
  36. package/dist/CallingClient/line/index.js.map +1 -1
  37. package/dist/CallingClient/line/line.test.js +22 -22
  38. package/dist/CallingClient/line/line.test.js.map +1 -1
  39. package/dist/CallingClient/registration/register.js +675 -527
  40. package/dist/CallingClient/registration/register.js.map +1 -1
  41. package/dist/CallingClient/registration/register.test.js +657 -309
  42. package/dist/CallingClient/registration/register.test.js.map +1 -1
  43. package/dist/CallingClient/registration/types.js.map +1 -1
  44. package/dist/CallingClient/registration/webWorker.js +24 -24
  45. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  46. package/dist/CallingClient/registration/webWorker.test.js +20 -20
  47. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  48. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  49. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  50. package/dist/CallingClient/types.js.map +1 -1
  51. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +28 -28
  52. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -1
  53. package/dist/Contacts/ContactsClient.js +259 -268
  54. package/dist/Contacts/ContactsClient.js.map +1 -1
  55. package/dist/Contacts/ContactsClient.test.js +64 -63
  56. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  57. package/dist/Errors/catalog/CallError.js +7 -10
  58. package/dist/Errors/catalog/CallError.js.map +1 -1
  59. package/dist/Errors/catalog/CallingDeviceError.js +6 -9
  60. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  61. package/dist/Errors/catalog/ExtendedError.js +6 -8
  62. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  63. package/dist/Errors/catalog/LineError.js +6 -9
  64. package/dist/Errors/catalog/LineError.js.map +1 -1
  65. package/dist/Events/impl/index.js +12 -14
  66. package/dist/Events/impl/index.js.map +1 -1
  67. package/dist/Logger/index.js +3 -3
  68. package/dist/Logger/index.js.map +1 -1
  69. package/dist/Logger/index.test.js +1 -1
  70. package/dist/Logger/index.test.js.map +1 -1
  71. package/dist/Metrics/index.js +1 -2
  72. package/dist/Metrics/index.js.map +1 -1
  73. package/dist/SDKConnector/index.js +1 -2
  74. package/dist/SDKConnector/index.js.map +1 -1
  75. package/dist/SDKConnector/types.js.map +1 -1
  76. package/dist/Voicemail/BroadworksBackendConnector.js +131 -139
  77. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  78. package/dist/Voicemail/BroadworksBackendConnector.test.js +106 -98
  79. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  80. package/dist/Voicemail/UcmBackendConnector.js +88 -92
  81. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  82. package/dist/Voicemail/UcmBackendConnector.test.js +72 -72
  83. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  84. package/dist/Voicemail/Voicemail.js +103 -131
  85. package/dist/Voicemail/Voicemail.js.map +1 -1
  86. package/dist/Voicemail/Voicemail.test.js +20 -20
  87. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  88. package/dist/Voicemail/WxCallBackendConnector.js +117 -131
  89. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  90. package/dist/Voicemail/WxCallBackendConnector.test.js +180 -154
  91. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  92. package/dist/common/Utils.js +198 -166
  93. package/dist/common/Utils.js.map +1 -1
  94. package/dist/common/Utils.test.js +436 -191
  95. package/dist/common/Utils.test.js.map +1 -1
  96. package/dist/common/constants.js +3 -1
  97. package/dist/common/constants.js.map +1 -1
  98. package/dist/common/testUtil.js +5 -4
  99. package/dist/common/testUtil.js.map +1 -1
  100. package/dist/common/types.js.map +1 -1
  101. package/dist/module/CallHistory/CallHistory.js +20 -11
  102. package/dist/module/CallSettings/UcmBackendConnector.js +21 -8
  103. package/dist/module/CallSettings/WxCallBackendConnector.js +10 -15
  104. package/dist/module/CallingClient/CallingClient.js +125 -123
  105. package/dist/module/CallingClient/calling/call.js +76 -60
  106. package/dist/module/CallingClient/calling/callManager.js +7 -0
  107. package/dist/module/CallingClient/constants.js +5 -0
  108. package/dist/module/CallingClient/registration/register.js +93 -5
  109. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  110. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  111. package/dist/module/Contacts/ContactsClient.js +19 -25
  112. package/dist/module/Events/impl/index.js +1 -1
  113. package/dist/module/Logger/index.js +2 -2
  114. package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -18
  115. package/dist/module/Voicemail/UcmBackendConnector.js +7 -11
  116. package/dist/module/Voicemail/Voicemail.js +42 -68
  117. package/dist/module/Voicemail/WxCallBackendConnector.js +14 -28
  118. package/dist/module/common/Utils.js +31 -5
  119. package/dist/module/common/constants.js +2 -0
  120. package/dist/module/common/testUtil.js +1 -0
  121. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  122. package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -0
  123. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  124. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  125. package/dist/types/CallingClient/CallingClient.d.ts +2 -1
  126. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/call.d.ts +4 -0
  128. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  129. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  130. package/dist/types/CallingClient/constants.d.ts +5 -0
  131. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  132. package/dist/types/CallingClient/registration/register.d.ts +6 -1
  133. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  134. package/dist/types/CallingClient/registration/types.d.ts +8 -1
  135. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  136. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  137. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  138. package/dist/types/CallingClient/types.d.ts +2 -1
  139. package/dist/types/CallingClient/types.d.ts.map +1 -1
  140. package/dist/types/Contacts/ContactsClient.d.ts +1 -0
  141. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  142. package/dist/types/Logger/index.d.ts +1 -2
  143. package/dist/types/Logger/index.d.ts.map +1 -1
  144. package/dist/types/SDKConnector/types.d.ts +16 -0
  145. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  146. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  147. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  148. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  149. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  150. package/dist/types/common/Utils.d.ts +1 -1
  151. package/dist/types/common/Utils.d.ts.map +1 -1
  152. package/dist/types/common/constants.d.ts +2 -0
  153. package/dist/types/common/constants.d.ts.map +1 -1
  154. package/dist/types/common/testUtil.d.ts +1 -0
  155. package/dist/types/common/testUtil.d.ts.map +1 -1
  156. package/dist/types/common/types.d.ts +4 -0
  157. package/dist/types/common/types.d.ts.map +1 -1
  158. package/package.json +4 -4
@@ -6,8 +6,9 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.UcmBackendConnector = void 0;
9
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
11
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
11
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
12
13
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
13
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -51,7 +52,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
51
52
  /**
52
53
  *
53
54
  */
54
- (0, _createClass2.default)(UcmBackendConnector, [{
55
+ return (0, _createClass2.default)(UcmBackendConnector, [{
55
56
  key: "init",
56
57
  value: function init() {
57
58
  var loggerContext = {
@@ -102,8 +103,8 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
102
103
  value: (function () {
103
104
  var _getVoicemailList = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(offset, offsetLimit, sort) {
104
105
  var _this = this;
105
- var loggerContext, urlVg, _response$headers, response, msgInfo, messageinfoArray, ucmVmMsgInfo, responseDetails, extendedError, errorInfo, errorStatus;
106
- return _regenerator.default.wrap(function _callee$(_context) {
106
+ var loggerContext, urlVg, _response$headers, response, msgInfo, messageinfoArray, ucmVmMsgInfo, responseDetails, errorInfo, errorStatus, _t;
107
+ return _regenerator.default.wrap(function (_context) {
107
108
  while (1) switch (_context.prev = _context.next) {
108
109
  case 0:
109
110
  loggerContext = {
@@ -112,8 +113,8 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
112
113
  };
113
114
  _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with Offset: ").concat(offset, " Offset limit: ").concat(offsetLimit, " Sort type:").concat(sort), loggerContext);
114
115
  urlVg = "".concat(this.vgVoiceMessageURI).concat(_constants2.VOICEMAILS, "/").concat(_constants2.OFFSET, "=").concat(offset).concat(_constants2.LIMIT, "=").concat(offsetLimit).concat(_constants2.SORT_ORDER, "=").concat(sort);
115
- _context.prev = 3;
116
- _context.next = 6;
116
+ _context.prev = 1;
117
+ _context.next = 2;
117
118
  return this.webex.request({
118
119
  uri: "".concat(urlVg),
119
120
  method: _types.HTTP_METHODS.GET,
@@ -121,7 +122,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
121
122
  orgId: this.orgId
122
123
  }
123
124
  });
124
- case 6:
125
+ case 2:
125
126
  response = _context.sent;
126
127
  _Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.trackingid), loggerContext);
127
128
  msgInfo = response.body;
@@ -173,22 +174,21 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
173
174
  };
174
175
  _Logger.default.log('Successfully retrieved voicemail list', loggerContext);
175
176
  return _context.abrupt("return", responseDetails);
176
- case 17:
177
- _context.prev = 17;
178
- _context.t0 = _context["catch"](3);
179
- extendedError = new Error("Failed to get voicemail list: ".concat(_context.t0));
180
- _Logger.default.error(extendedError, loggerContext);
181
- _context.next = 23;
177
+ case 3:
178
+ _context.prev = 3;
179
+ _t = _context["catch"](1);
180
+ _Logger.default.error("Failed to get voicemail list: ".concat((0, _stringify.default)(_t)), loggerContext);
181
+ _context.next = 4;
182
182
  return (0, _Utils.uploadLogs)();
183
- case 23:
184
- errorInfo = _context.t0;
183
+ case 4:
184
+ errorInfo = _t;
185
185
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
186
186
  return _context.abrupt("return", errorStatus);
187
- case 26:
187
+ case 5:
188
188
  case "end":
189
189
  return _context.stop();
190
190
  }
191
- }, _callee, this, [[3, 17]]);
191
+ }, _callee, this, [[1, 3]]);
192
192
  }));
193
193
  function getVoicemailList(_x, _x2, _x3) {
194
194
  return _getVoicemailList.apply(this, arguments);
@@ -203,8 +203,8 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
203
203
  key: "getVoicemailContent",
204
204
  value: (function () {
205
205
  var _getVoicemailContent = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(messageId) {
206
- var loggerContext, response, extendedError, errorInfo, errorStatus;
207
- return _regenerator.default.wrap(function _callee2$(_context2) {
206
+ var loggerContext, response, errorInfo, errorStatus, _t2;
207
+ return _regenerator.default.wrap(function (_context2) {
208
208
  while (1) switch (_context2.prev = _context2.next) {
209
209
  case 0:
210
210
  loggerContext = {
@@ -212,30 +212,29 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
212
212
  method: _constants2.METHODS.GET_VOICEMAIL_CONTENT
213
213
  };
214
214
  _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with Message ID: ").concat(messageId), loggerContext);
215
- _context2.prev = 2;
216
- _context2.next = 5;
215
+ _context2.prev = 1;
216
+ _context2.next = 2;
217
217
  return this.getVoicemailContentUcm(messageId);
218
- case 5:
218
+ case 2:
219
219
  response = _context2.sent;
220
220
  _Logger.default.log("Successfully retrieved voicemail content with Message ID: ".concat(messageId), loggerContext);
221
221
  return _context2.abrupt("return", response);
222
- case 10:
223
- _context2.prev = 10;
224
- _context2.t0 = _context2["catch"](2);
225
- extendedError = new Error("Failed to get voicemail content: ".concat(_context2.t0));
226
- _Logger.default.error(extendedError, loggerContext);
227
- _context2.next = 16;
222
+ case 3:
223
+ _context2.prev = 3;
224
+ _t2 = _context2["catch"](1);
225
+ _Logger.default.error("Failed to get voicemail content: ".concat((0, _stringify.default)(_t2)), loggerContext);
226
+ _context2.next = 4;
228
227
  return (0, _Utils.uploadLogs)();
229
- case 16:
230
- errorInfo = _context2.t0;
228
+ case 4:
229
+ errorInfo = _t2;
231
230
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
232
231
  _Logger.default.info("Voice mail content error is ".concat(errorStatus), loggerContext);
233
232
  return _context2.abrupt("return", errorStatus);
234
- case 20:
233
+ case 5:
235
234
  case "end":
236
235
  return _context2.stop();
237
236
  }
238
- }, _callee2, this, [[2, 10]]);
237
+ }, _callee2, this, [[1, 3]]);
239
238
  }));
240
239
  function getVoicemailContent(_x4) {
241
240
  return _getVoicemailContent.apply(this, arguments);
@@ -251,7 +250,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
251
250
  key: "getVoicemailSummary",
252
251
  value: (function () {
253
252
  var _getVoicemailSummary = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
254
- return _regenerator.default.wrap(function _callee3$(_context3) {
253
+ return _regenerator.default.wrap(function (_context3) {
255
254
  while (1) switch (_context3.prev = _context3.next) {
256
255
  case 0:
257
256
  return _context3.abrupt("return", _promise.default.resolve(null));
@@ -276,7 +275,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
276
275
  var _getVoicemailContentUcm = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(messageId) {
277
276
  var _this2 = this;
278
277
  var loggerContext;
279
- return _regenerator.default.wrap(function _callee5$(_context5) {
278
+ return _regenerator.default.wrap(function (_context5) {
280
279
  while (1) switch (_context5.prev = _context5.next) {
281
280
  case 0:
282
281
  loggerContext = {
@@ -285,8 +284,9 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
285
284
  };
286
285
  _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with Message ID: ").concat(messageId), loggerContext);
287
286
  return _context5.abrupt("return", new _promise.default(function (resolve, reject) {
287
+ var _this2$webex$internal;
288
288
  var voicemailContentUrl = "".concat(_this2.vgVoiceMessageURI).concat(_constants2.VOICEMAILS, "/").concat(messageId, "/").concat(_constants.CONTENT);
289
- var mercuryApi = "".concat(_this2.webex.internal.services._serviceUrls.mercuryApi);
289
+ var mercuryApi = ((_this2$webex$internal = _this2.webex.internal.services._serviceUrls) === null || _this2$webex$internal === void 0 ? void 0 : _this2$webex$internal.mercuryApi) || _this2.webex.internal.services.get(_this2.webex.internal.services._activeServices.mercuryApi);
290
290
  _this2.returnUcmPromise(voicemailContentUrl, mercuryApi).then(function (response) {
291
291
  if (response.statusCode === 200) {
292
292
  resolve(response);
@@ -295,14 +295,14 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
295
295
  var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(event) {
296
296
  var _responseEvent$data;
297
297
  var responseEvent, voicemailContentUrl, response;
298
- return _regenerator.default.wrap(function _callee4$(_context4) {
298
+ return _regenerator.default.wrap(function (_context4) {
299
299
  while (1) switch (_context4.prev = _context4.next) {
300
300
  case 0:
301
301
  responseEvent = event;
302
302
  voicemailContentUrl = "".concat(_this2.vgVoiceMessageURI).concat(_constants2.VOICEMAILS, "/").concat(responseEvent === null || responseEvent === void 0 ? void 0 : (_responseEvent$data = responseEvent.data) === null || _responseEvent$data === void 0 ? void 0 : _responseEvent$data.messageId, "/").concat(_constants.CONTENT);
303
- _context4.next = 4;
303
+ _context4.next = 1;
304
304
  return _this2.returnUcmPromise(voicemailContentUrl, mercuryApi);
305
- case 4:
305
+ case 1:
306
306
  response = _context4.sent;
307
307
  if (response.statusCode === 200) {
308
308
  _this2.sdkConnector.unregisterListener('event:ucm.voicemail_download_complete');
@@ -311,7 +311,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
311
311
  _this2.sdkConnector.unregisterListener('event:ucm.voicemail_download_complete');
312
312
  reject(response);
313
313
  }
314
- case 6:
314
+ case 2:
315
315
  case "end":
316
316
  return _context4.stop();
317
317
  }
@@ -328,7 +328,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
328
328
  reject(err);
329
329
  });
330
330
  }));
331
- case 3:
331
+ case 1:
332
332
  case "end":
333
333
  return _context5.stop();
334
334
  }
@@ -350,7 +350,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
350
350
  var _returnUcmPromise = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6(voicemailContentUrl, mercuryApi) {
351
351
  var _response$headers2;
352
352
  var loggerContext, response, contentInfo, respHeaders, statusCode, mediaType, mediaContent, responseDetails;
353
- return _regenerator.default.wrap(function _callee6$(_context6) {
353
+ return _regenerator.default.wrap(function (_context6) {
354
354
  while (1) switch (_context6.prev = _context6.next) {
355
355
  case 0:
356
356
  loggerContext = {
@@ -358,7 +358,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
358
358
  method: _constants2.METHODS.RETURN_UCM_PROMISE
359
359
  };
360
360
  _Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
361
- _context6.next = 4;
361
+ _context6.next = 1;
362
362
  return this.webex.request({
363
363
  uri: "".concat(voicemailContentUrl),
364
364
  method: _types.HTTP_METHODS.GET,
@@ -368,7 +368,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
368
368
  mercuryHostname: mercuryApi
369
369
  }
370
370
  });
371
- case 4:
371
+ case 1:
372
372
  response = _context6.sent;
373
373
  _Logger.default.log("Response code: ".concat(response.statusCode), loggerContext);
374
374
  _Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers2 = response.headers) === null || _response$headers2 === void 0 ? void 0 : _response$headers2.trackingid), loggerContext);
@@ -392,7 +392,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
392
392
  responseDetails.message = _constants.FAILURE_MESSAGE;
393
393
  }
394
394
  return _context6.abrupt("return", responseDetails);
395
- case 15:
395
+ case 2:
396
396
  case "end":
397
397
  return _context6.stop();
398
398
  }
@@ -411,8 +411,8 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
411
411
  key: "voicemailMarkAsRead",
412
412
  value: (function () {
413
413
  var _voicemailMarkAsRead = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(messageId) {
414
- var loggerContext, _response$headers3, voicemailContentUrl, response, responseDetails, extendedError, errorInfo, errorStatus;
415
- return _regenerator.default.wrap(function _callee7$(_context7) {
414
+ var loggerContext, _response$headers3, voicemailContentUrl, response, responseDetails, errorInfo, errorStatus, _t3;
415
+ return _regenerator.default.wrap(function (_context7) {
416
416
  while (1) switch (_context7.prev = _context7.next) {
417
417
  case 0:
418
418
  loggerContext = {
@@ -420,9 +420,9 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
420
420
  method: _constants2.METHODS.VOICEMAIL_MARK_AS_READ
421
421
  };
422
422
  _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with Message ID: ").concat(messageId), loggerContext);
423
- _context7.prev = 2;
423
+ _context7.prev = 1;
424
424
  voicemailContentUrl = "".concat(this.vgVoiceMessageURI).concat(_constants2.VOICEMAILS, "/").concat(messageId);
425
- _context7.next = 6;
425
+ _context7.next = 2;
426
426
  return this.webex.request({
427
427
  uri: voicemailContentUrl,
428
428
  method: _types.HTTP_METHODS.PUT,
@@ -433,7 +433,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
433
433
  read: 'true'
434
434
  }
435
435
  });
436
- case 6:
436
+ case 2:
437
437
  response = _context7.sent;
438
438
  _Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers3 = response.headers) === null || _response$headers3 === void 0 ? void 0 : _response$headers3.trackingid), loggerContext);
439
439
  responseDetails = {
@@ -443,22 +443,21 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
443
443
  };
444
444
  _Logger.default.log('Successfully marked voicemail as read', loggerContext);
445
445
  return _context7.abrupt("return", responseDetails);
446
- case 13:
447
- _context7.prev = 13;
448
- _context7.t0 = _context7["catch"](2);
449
- extendedError = new Error("Failed to mark voicemail as read: ".concat(_context7.t0));
450
- _Logger.default.error(extendedError, loggerContext);
451
- _context7.next = 19;
446
+ case 3:
447
+ _context7.prev = 3;
448
+ _t3 = _context7["catch"](1);
449
+ _Logger.default.error("Failed to mark voicemail as read: ".concat((0, _stringify.default)(_t3)), loggerContext);
450
+ _context7.next = 4;
452
451
  return (0, _Utils.uploadLogs)();
453
- case 19:
454
- errorInfo = _context7.t0;
452
+ case 4:
453
+ errorInfo = _t3;
455
454
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
456
455
  return _context7.abrupt("return", errorStatus);
457
- case 22:
456
+ case 5:
458
457
  case "end":
459
458
  return _context7.stop();
460
459
  }
461
- }, _callee7, this, [[2, 13]]);
460
+ }, _callee7, this, [[1, 3]]);
462
461
  }));
463
462
  function voicemailMarkAsRead(_x9) {
464
463
  return _voicemailMarkAsRead.apply(this, arguments);
@@ -473,8 +472,8 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
473
472
  key: "voicemailMarkAsUnread",
474
473
  value: (function () {
475
474
  var _voicemailMarkAsUnread = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8(messageId) {
476
- var loggerContext, _response$headers4, voicemailContentUrl, response, responseDetails, extendedError, errorInfo, errorStatus;
477
- return _regenerator.default.wrap(function _callee8$(_context8) {
475
+ var loggerContext, _response$headers4, voicemailContentUrl, response, responseDetails, errorInfo, errorStatus, _t4;
476
+ return _regenerator.default.wrap(function (_context8) {
478
477
  while (1) switch (_context8.prev = _context8.next) {
479
478
  case 0:
480
479
  loggerContext = {
@@ -482,9 +481,9 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
482
481
  method: _constants2.METHODS.VOICEMAIL_MARK_AS_UNREAD
483
482
  };
484
483
  _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with Message ID: ").concat(messageId), loggerContext);
485
- _context8.prev = 2;
484
+ _context8.prev = 1;
486
485
  voicemailContentUrl = "".concat(this.vgVoiceMessageURI).concat(_constants2.VOICEMAILS, "/").concat(messageId);
487
- _context8.next = 6;
486
+ _context8.next = 2;
488
487
  return this.webex.request({
489
488
  uri: voicemailContentUrl,
490
489
  method: _types.HTTP_METHODS.PUT,
@@ -495,7 +494,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
495
494
  read: 'false'
496
495
  }
497
496
  });
498
- case 6:
497
+ case 2:
499
498
  response = _context8.sent;
500
499
  _Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers4 = response.headers) === null || _response$headers4 === void 0 ? void 0 : _response$headers4.trackingid), loggerContext);
501
500
  responseDetails = {
@@ -505,22 +504,21 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
505
504
  };
506
505
  _Logger.default.log('Successfully marked voicemail as unread', loggerContext);
507
506
  return _context8.abrupt("return", responseDetails);
508
- case 13:
509
- _context8.prev = 13;
510
- _context8.t0 = _context8["catch"](2);
511
- extendedError = new Error("Failed to mark voicemail as unread: ".concat(_context8.t0));
512
- _Logger.default.error(extendedError, loggerContext);
513
- _context8.next = 19;
507
+ case 3:
508
+ _context8.prev = 3;
509
+ _t4 = _context8["catch"](1);
510
+ _Logger.default.error("Failed to mark voicemail as unread: ".concat((0, _stringify.default)(_t4)), loggerContext);
511
+ _context8.next = 4;
514
512
  return (0, _Utils.uploadLogs)();
515
- case 19:
516
- errorInfo = _context8.t0;
513
+ case 4:
514
+ errorInfo = _t4;
517
515
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
518
516
  return _context8.abrupt("return", errorStatus);
519
- case 22:
517
+ case 5:
520
518
  case "end":
521
519
  return _context8.stop();
522
520
  }
523
- }, _callee8, this, [[2, 13]]);
521
+ }, _callee8, this, [[1, 3]]);
524
522
  }));
525
523
  function voicemailMarkAsUnread(_x0) {
526
524
  return _voicemailMarkAsUnread.apply(this, arguments);
@@ -535,8 +533,8 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
535
533
  key: "deleteVoicemail",
536
534
  value: (function () {
537
535
  var _deleteVoicemail = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9(messageId) {
538
- var loggerContext, _response$headers5, voicemailContentUrl, response, responseDetails, extendedError, errorInfo, errorStatus;
539
- return _regenerator.default.wrap(function _callee9$(_context9) {
536
+ var loggerContext, _response$headers5, voicemailContentUrl, response, responseDetails, errorInfo, errorStatus, _t5;
537
+ return _regenerator.default.wrap(function (_context9) {
540
538
  while (1) switch (_context9.prev = _context9.next) {
541
539
  case 0:
542
540
  loggerContext = {
@@ -544,9 +542,9 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
544
542
  method: _constants2.METHODS.DELETE_VOICEMAIL
545
543
  };
546
544
  _Logger.default.info("".concat(_constants.METHOD_START_MESSAGE, " with Message ID: ").concat(messageId), loggerContext);
547
- _context9.prev = 2;
545
+ _context9.prev = 1;
548
546
  voicemailContentUrl = "".concat(this.vgVoiceMessageURI).concat(_constants2.VOICEMAILS, "/").concat(messageId);
549
- _context9.next = 6;
547
+ _context9.next = 2;
550
548
  return this.webex.request({
551
549
  uri: voicemailContentUrl,
552
550
  method: _types.HTTP_METHODS.DELETE,
@@ -554,7 +552,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
554
552
  orgId: this.orgId
555
553
  }
556
554
  });
557
- case 6:
555
+ case 2:
558
556
  response = _context9.sent;
559
557
  _Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers5 = response.headers) === null || _response$headers5 === void 0 ? void 0 : _response$headers5.trackingid), loggerContext);
560
558
  responseDetails = {
@@ -564,22 +562,21 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
564
562
  };
565
563
  _Logger.default.log('Successfully deleted voicemail', loggerContext);
566
564
  return _context9.abrupt("return", responseDetails);
567
- case 13:
568
- _context9.prev = 13;
569
- _context9.t0 = _context9["catch"](2);
570
- extendedError = new Error("Failed to delete voicemail: ".concat(_context9.t0));
571
- _Logger.default.error(extendedError, loggerContext);
572
- _context9.next = 19;
565
+ case 3:
566
+ _context9.prev = 3;
567
+ _t5 = _context9["catch"](1);
568
+ _Logger.default.error("Failed to delete voicemail: ".concat((0, _stringify.default)(_t5)), loggerContext);
569
+ _context9.next = 4;
573
570
  return (0, _Utils.uploadLogs)();
574
- case 19:
575
- errorInfo = _context9.t0;
571
+ case 4:
572
+ errorInfo = _t5;
576
573
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
577
574
  return _context9.abrupt("return", errorStatus);
578
- case 22:
575
+ case 5:
579
576
  case "end":
580
577
  return _context9.stop();
581
578
  }
582
- }, _callee9, this, [[2, 13]]);
579
+ }, _callee9, this, [[1, 3]]);
583
580
  }));
584
581
  function deleteVoicemail(_x1) {
585
582
  return _deleteVoicemail.apply(this, arguments);
@@ -597,12 +594,12 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
597
594
  key: "getVMTranscript",
598
595
  value: (function () {
599
596
  var _getVMTranscript = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0(messageId) {
600
- return _regenerator.default.wrap(function _callee0$(_context0) {
597
+ return _regenerator.default.wrap(function (_context0) {
601
598
  while (1) switch (_context0.prev = _context0.next) {
602
599
  case 0:
603
600
  _Logger.default.info("Message Id: ".concat(messageId), {});
604
601
  return _context0.abrupt("return", _promise.default.resolve(null));
605
- case 2:
602
+ case 1:
606
603
  case "end":
607
604
  return _context0.stop();
608
605
  }
@@ -627,6 +624,5 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
627
624
  return _promise.default.resolve(null);
628
625
  }
629
626
  }]);
630
- return UcmBackendConnector;
631
627
  }();
632
628
  //# sourceMappingURL=UcmBackendConnector.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Utils","_constants","_Logger","_constants2","UcmBackendConnector","exports","webex","logger","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","userId","internal","device","orgId","log","setLogger","level","UCM_CONNECTOR_FILE","_createClass2","key","value","init","loggerContext","file","method","METHODS","INIT","info","METHOD_START_MESSAGE","response","setUcmVoiceMessageBaseURI","getSDKConnector","SET_UCM_VOICE_MESSAGE_BASE_URI","vgEndpoint","getVgActionEndpoint","CALLING_BACKEND","UCM","vgVoiceMessageURI","concat","VMGATEWAY","API_V1","USERS","_getVoicemailList","_asyncToGenerator2","_regenerator","mark","_callee","offset","offsetLimit","sort","_this","urlVg","_response$headers","msgInfo","messageinfoArray","ucmVmMsgInfo","responseDetails","extendedError","errorInfo","errorStatus","wrap","_callee$","_context","prev","next","GET_VOICEMAIL_LIST","VOICEMAILS","OFFSET","LIMIT","SORT_ORDER","request","uri","HTTP_METHODS","GET","headers","sent","trackingid","body","Message","forEach","msgInfoObj","message","stringObj","numberObj","$","Duration","duration","Number","ArrivalTime","time","MsgId","messageId","Read","read","callerIdObj","CallerId","callingParty","CallerName","name","CallerNumber","address","callingPartyInfo","push","statusCode","data","voicemailList","SUCCESS_MESSAGE","abrupt","t0","Error","error","uploadLogs","serviceErrorCodeHandler","stop","getVoicemailList","_x","_x2","_x3","apply","arguments","_getVoicemailContent","_callee2","_callee2$","_context2","GET_VOICEMAIL_CONTENT","getVoicemailContentUcm","getVoicemailContent","_x4","_getVoicemailSummary","_callee3","_callee3$","_context3","_promise","resolve","getVoicemailSummary","_getVoicemailContentUcm","_callee5","_this2","_callee5$","_context5","GET_VOICEMAIL_CONTENT_UCM","reject","voicemailContentUrl","CONTENT","mercuryApi","services","_serviceUrls","returnUcmPromise","then","registerListener","_ref","_callee4","event","_responseEvent$data","responseEvent","_callee4$","_context4","unregisterListener","_x6","catch","err","_x5","_returnUcmPromise","_callee6","_response$headers2","contentInfo","respHeaders","mediaType","mediaContent","_callee6$","_context6","RETURN_UCM_PROMISE","deviceUrl","url","mercuryHostname","mediatype","voicemailContent","type","content","FAILURE_MESSAGE","_x7","_x8","_voicemailMarkAsRead","_callee7","_response$headers3","_callee7$","_context7","VOICEMAIL_MARK_AS_READ","PUT","voicemailMarkAsRead","_x9","_voicemailMarkAsUnread","_callee8","_response$headers4","_callee8$","_context8","VOICEMAIL_MARK_AS_UNREAD","voicemailMarkAsUnread","_x0","_deleteVoicemail","_callee9","_response$headers5","_callee9$","_context9","DELETE_VOICEMAIL","DELETE","deleteVoicemail","_x1","_getVMTranscript","_callee0","_callee0$","_context0","getVMTranscript","_x10","resolveContact"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport ExtendedError from '../Errors/catalog/ExtendedError';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n WebexRequestPayload,\n SORT,\n HTTP_METHODS,\n DisplayInformation,\n CALLING_BACKEND,\n} from '../common/types';\nimport {getVgActionEndpoint, serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\nimport {\n SUCCESS_MESSAGE,\n USERS,\n CONTENT,\n UCM_CONNECTOR_FILE,\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n} from '../common/constants';\nimport log from '../Logger';\nimport {API_V1, LIMIT, METHODS, OFFSET, SORT_ORDER, VMGATEWAY, VOICEMAILS} from './constants';\nimport {\n CallingPartyInfo,\n IUcmBackendConnector,\n LoggerInterface,\n MessageInfo,\n UcmVmMessageInfo,\n UcmVMResponse,\n VoicemailResponseEvent,\n UcmVMContentResponse,\n VoicemailEvent,\n ResponseString$,\n ResponseNumber$,\n} from './types';\n\n/**\n *\n */\nexport class UcmBackendConnector implements IUcmBackendConnector {\n public vgEndpoint!: string | unknown;\n\n public userId!: string;\n\n public orgId!: string;\n\n private sdkConnector!: ISDKConnector;\n\n private webex: WebexSDK;\n\n private vgVoiceMessageURI!: string;\n\n /**\n * @param webex - Webex object to get the userid, service urls, etc...\n * @param logger - Logger to set logger level.\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n /* istanbul ignore else */\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.userId = this.webex.internal.device.userId;\n this.orgId = this.webex.internal.device.orgId;\n log.setLogger(logger.level, UCM_CONNECTOR_FILE);\n }\n\n /**\n *\n */\n public init() {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.INIT,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n const response = this.setUcmVoiceMessageBaseURI();\n log.log('UCM calling voicemail connector initialized successfully', loggerContext);\n\n return response as unknown as VoicemailResponseEvent;\n }\n\n /**\n *\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n /**\n *\n */\n private setUcmVoiceMessageBaseURI() {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_UCM_VOICE_MESSAGE_BASE_URI,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n this.vgEndpoint = getVgActionEndpoint(this.webex, CALLING_BACKEND.UCM);\n this.vgVoiceMessageURI = `${this.vgEndpoint}/${VMGATEWAY}/${API_V1}/${USERS}/${this.userId}/`;\n\n return this.vgVoiceMessageURI;\n }\n\n /**\n * Fetch voicemail list for UCM users.\n *\n * @param offset - Number of records to skip. TODO: Once we start implementing pagination.\n * @param offsetLimit - Number of voicemail list to fetch. TODO: Once we start implementing pagination.\n * @param sort - Sort voicemail list (ASC | DESC). TODO: Once we start implementing sorting.\n * @returns Promise.\n */\n public async getVoicemailList(offset: number, offsetLimit: number, sort: SORT) {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_LIST,\n };\n\n log.info(\n `${METHOD_START_MESSAGE} with Offset: ${offset} Offset limit: ${offsetLimit} Sort type:${sort}`,\n loggerContext\n );\n const urlVg = `${this.vgVoiceMessageURI}${VOICEMAILS}/${OFFSET}=${offset}${LIMIT}=${offsetLimit}${SORT_ORDER}=${sort}`;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${urlVg}`,\n method: HTTP_METHODS.GET,\n headers: {\n orgId: this.orgId,\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const msgInfo = response.body as UcmVMResponse;\n const messageinfoArray: MessageInfo[] = [];\n const ucmVmMsgInfo = msgInfo.Message as unknown as UcmVmMessageInfo[];\n\n ucmVmMsgInfo.forEach((msgInfoObj) => {\n const message = {} as MessageInfo;\n let stringObj = {} as ResponseString$;\n const numberObj = {} as ResponseNumber$;\n\n stringObj.$ = msgInfoObj.Duration;\n message.duration = stringObj;\n numberObj.$ = Number(msgInfoObj.ArrivalTime);\n message.time = numberObj;\n stringObj = {$: ''};\n stringObj.$ = msgInfoObj.MsgId;\n message.messageId = stringObj;\n /* istanbul ignore else */\n if (msgInfoObj.Read === 'true') {\n message.read = {};\n }\n const callerIdObj = msgInfoObj.CallerId;\n const callingParty = {} as CallingPartyInfo;\n\n stringObj = {$: ''};\n stringObj.$ = callerIdObj.CallerName;\n callingParty.name = stringObj;\n stringObj = {$: ''};\n stringObj.$ = this.userId;\n callingParty.userId = stringObj;\n stringObj = {$: ''};\n stringObj.$ = callerIdObj.CallerNumber;\n callingParty.address = stringObj;\n message.callingPartyInfo = callingParty;\n messageinfoArray.push(message);\n });\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {\n voicemailList: messageinfoArray,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully retrieved voicemail list', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to get voicemail list: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail content.\n */\n public async getVoicemailContent(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_CONTENT,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const response = (await this.getVoicemailContentUcm(messageId)) as VoicemailResponseEvent;\n\n log.log(\n `Successfully retrieved voicemail content with Message ID: ${messageId}`,\n loggerContext\n );\n\n return response as VoicemailResponseEvent;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to get voicemail content: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n log.info(`Voice mail content error is ${errorStatus}`, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Fetches a quantitative summary of voicemails for a user.\n * Not implemented for this connector.\n */\n public async getVoicemailSummary(): Promise<VoicemailResponseEvent | null> {\n return Promise.resolve(null);\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail content.\n */\n public async getVoicemailContentUcm(messageId: string) {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_CONTENT_UCM,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n return new Promise((resolve, reject) => {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}/${CONTENT}`;\n const mercuryApi = `${this.webex.internal.services._serviceUrls.mercuryApi}`;\n\n this.returnUcmPromise(voicemailContentUrl, mercuryApi)\n .then((response: VoicemailResponseEvent) => {\n if (response.statusCode === 200) {\n resolve(response);\n } else if (response.statusCode === 202) {\n this.sdkConnector.registerListener(\n 'event:ucm.voicemail_download_complete',\n async (event) => {\n const responseEvent = event as VoicemailEvent;\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${responseEvent?.data?.messageId}/${CONTENT}`;\n const response = await this.returnUcmPromise(voicemailContentUrl, mercuryApi);\n\n if (response.statusCode === 200) {\n this.sdkConnector.unregisterListener('event:ucm.voicemail_download_complete');\n resolve(response);\n } else {\n this.sdkConnector.unregisterListener('event:ucm.voicemail_download_complete');\n reject(response);\n }\n }\n );\n } else {\n reject(response);\n }\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n /**\n * @param voicemailContentUrl - Voicemail Content Url to get voicemail content.\n * @param mercuryApi - MercuryApi from webex serviceUrls.\n */\n async returnUcmPromise(voicemailContentUrl: string, mercuryApi: string) {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.RETURN_UCM_PROMISE,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${voicemailContentUrl}`,\n method: HTTP_METHODS.GET,\n headers: {\n orgId: this.orgId,\n deviceUrl: this.webex.internal.device.url,\n mercuryHostname: mercuryApi,\n },\n });\n\n log.log(`Response code: ${response.statusCode}`, loggerContext);\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const contentInfo = response?.body as UcmVMContentResponse;\n const respHeaders = response.headers;\n const statusCode = response.statusCode;\n const mediaType = respHeaders?.mediatype as string;\n const mediaContent = contentInfo as string;\n const responseDetails = {\n statusCode: Number(statusCode),\n data: {\n voicemailContent: {\n type: mediaType,\n content: mediaContent,\n },\n },\n message: SUCCESS_MESSAGE,\n };\n\n /* istanbul ignore else */\n if (statusCode !== 200 && statusCode !== 202) {\n responseDetails.message = FAILURE_MESSAGE;\n }\n\n return responseDetails;\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail mark as read.\n */\n public async voicemailMarkAsRead(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}`;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: voicemailContentUrl,\n method: HTTP_METHODS.PUT,\n headers: {\n orgId: this.orgId,\n },\n body: {\n read: 'true',\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully marked voicemail as read', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to mark voicemail as read: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail mark as unread.\n */\n public async voicemailMarkAsUnread(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}`;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: voicemailContentUrl,\n method: HTTP_METHODS.PUT,\n headers: {\n orgId: this.orgId,\n },\n body: {\n read: 'false',\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully marked voicemail as unread', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(\n `Failed to mark voicemail as unread: ${err}`\n ) as ExtendedError;\n log.error(extendedError, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to delete voicemail.\n */\n public async deleteVoicemail(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.DELETE_VOICEMAIL,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}`;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: voicemailContentUrl,\n method: HTTP_METHODS.DELETE,\n headers: {\n orgId: this.orgId,\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully deleted voicemail', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to delete voicemail: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Fetch voicemail transcripts for given messageId\n * Not implemented for this connector.\n *\n * @param messageId - MessageId to fetch voicemail transcript.\n */\n public async getVMTranscript(messageId: string): Promise<VoicemailResponseEvent | null> {\n log.info(`Message Id: ${messageId}`, {});\n\n return Promise.resolve(null);\n }\n\n /**\n * Resolve the Contact from userId or display name.\n * Not implemented for this connector.\n *\n * @param callingPartyInfo - Calling Party Info.\n */\n public resolveContact(callingPartyInfo: CallingPartyInfo): Promise<DisplayInformation | null> {\n log.info(`Calling Party Info: ${callingPartyInfo}`, {});\n\n return Promise.resolve(null);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Utils","_constants","_Logger","_constants2","UcmBackendConnector","exports","webex","logger","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","userId","internal","device","orgId","log","setLogger","level","UCM_CONNECTOR_FILE","_createClass2","key","value","init","loggerContext","file","method","METHODS","INIT","info","METHOD_START_MESSAGE","response","setUcmVoiceMessageBaseURI","getSDKConnector","SET_UCM_VOICE_MESSAGE_BASE_URI","vgEndpoint","getVgActionEndpoint","CALLING_BACKEND","UCM","vgVoiceMessageURI","concat","VMGATEWAY","API_V1","USERS","_getVoicemailList","_asyncToGenerator2","_regenerator","mark","_callee","offset","offsetLimit","sort","_this","urlVg","_response$headers","msgInfo","messageinfoArray","ucmVmMsgInfo","responseDetails","errorInfo","errorStatus","_t","wrap","_context","prev","next","GET_VOICEMAIL_LIST","VOICEMAILS","OFFSET","LIMIT","SORT_ORDER","request","uri","HTTP_METHODS","GET","headers","sent","trackingid","body","Message","forEach","msgInfoObj","message","stringObj","numberObj","$","Duration","duration","Number","ArrivalTime","time","MsgId","messageId","Read","read","callerIdObj","CallerId","callingParty","CallerName","name","CallerNumber","address","callingPartyInfo","push","statusCode","data","voicemailList","SUCCESS_MESSAGE","abrupt","error","_stringify","uploadLogs","serviceErrorCodeHandler","stop","getVoicemailList","_x","_x2","_x3","apply","arguments","_getVoicemailContent","_callee2","_t2","_context2","GET_VOICEMAIL_CONTENT","getVoicemailContentUcm","getVoicemailContent","_x4","_getVoicemailSummary","_callee3","_context3","_promise","resolve","getVoicemailSummary","_getVoicemailContentUcm","_callee5","_this2","_context5","GET_VOICEMAIL_CONTENT_UCM","reject","_this2$webex$internal","voicemailContentUrl","CONTENT","mercuryApi","services","_serviceUrls","get","_activeServices","returnUcmPromise","then","registerListener","_ref","_callee4","event","_responseEvent$data","responseEvent","_context4","unregisterListener","_x6","catch","err","_x5","_returnUcmPromise","_callee6","_response$headers2","contentInfo","respHeaders","mediaType","mediaContent","_context6","RETURN_UCM_PROMISE","deviceUrl","url","mercuryHostname","mediatype","voicemailContent","type","content","FAILURE_MESSAGE","_x7","_x8","_voicemailMarkAsRead","_callee7","_response$headers3","_t3","_context7","VOICEMAIL_MARK_AS_READ","PUT","voicemailMarkAsRead","_x9","_voicemailMarkAsUnread","_callee8","_response$headers4","_t4","_context8","VOICEMAIL_MARK_AS_UNREAD","voicemailMarkAsUnread","_x0","_deleteVoicemail","_callee9","_response$headers5","_t5","_context9","DELETE_VOICEMAIL","DELETE","deleteVoicemail","_x1","_getVMTranscript","_callee0","_context0","getVMTranscript","_x10","resolveContact"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n WebexRequestPayload,\n SORT,\n HTTP_METHODS,\n DisplayInformation,\n CALLING_BACKEND,\n} from '../common/types';\nimport {getVgActionEndpoint, serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\nimport {\n SUCCESS_MESSAGE,\n USERS,\n CONTENT,\n UCM_CONNECTOR_FILE,\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n} from '../common/constants';\nimport log from '../Logger';\nimport {API_V1, LIMIT, METHODS, OFFSET, SORT_ORDER, VMGATEWAY, VOICEMAILS} from './constants';\nimport {\n CallingPartyInfo,\n IUcmBackendConnector,\n LoggerInterface,\n MessageInfo,\n UcmVmMessageInfo,\n UcmVMResponse,\n VoicemailResponseEvent,\n UcmVMContentResponse,\n VoicemailEvent,\n ResponseString$,\n ResponseNumber$,\n} from './types';\n\n/**\n *\n */\nexport class UcmBackendConnector implements IUcmBackendConnector {\n public vgEndpoint!: string | unknown;\n\n public userId!: string;\n\n public orgId!: string;\n\n private sdkConnector!: ISDKConnector;\n\n private webex: WebexSDK;\n\n private vgVoiceMessageURI!: string;\n\n /**\n * @param webex - Webex object to get the userid, service urls, etc...\n * @param logger - Logger to set logger level.\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n /* istanbul ignore else */\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.userId = this.webex.internal.device.userId;\n this.orgId = this.webex.internal.device.orgId;\n log.setLogger(logger.level, UCM_CONNECTOR_FILE);\n }\n\n /**\n *\n */\n public init() {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.INIT,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n const response = this.setUcmVoiceMessageBaseURI();\n log.log('UCM calling voicemail connector initialized successfully', loggerContext);\n\n return response as unknown as VoicemailResponseEvent;\n }\n\n /**\n *\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n /**\n *\n */\n private setUcmVoiceMessageBaseURI() {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_UCM_VOICE_MESSAGE_BASE_URI,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n this.vgEndpoint = getVgActionEndpoint(this.webex, CALLING_BACKEND.UCM);\n this.vgVoiceMessageURI = `${this.vgEndpoint}/${VMGATEWAY}/${API_V1}/${USERS}/${this.userId}/`;\n\n return this.vgVoiceMessageURI;\n }\n\n /**\n * Fetch voicemail list for UCM users.\n *\n * @param offset - Number of records to skip. TODO: Once we start implementing pagination.\n * @param offsetLimit - Number of voicemail list to fetch. TODO: Once we start implementing pagination.\n * @param sort - Sort voicemail list (ASC | DESC). TODO: Once we start implementing sorting.\n * @returns Promise.\n */\n public async getVoicemailList(offset: number, offsetLimit: number, sort: SORT) {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_LIST,\n };\n\n log.info(\n `${METHOD_START_MESSAGE} with Offset: ${offset} Offset limit: ${offsetLimit} Sort type:${sort}`,\n loggerContext\n );\n const urlVg = `${this.vgVoiceMessageURI}${VOICEMAILS}/${OFFSET}=${offset}${LIMIT}=${offsetLimit}${SORT_ORDER}=${sort}`;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${urlVg}`,\n method: HTTP_METHODS.GET,\n headers: {\n orgId: this.orgId,\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const msgInfo = response.body as UcmVMResponse;\n const messageinfoArray: MessageInfo[] = [];\n const ucmVmMsgInfo = msgInfo.Message as unknown as UcmVmMessageInfo[];\n\n ucmVmMsgInfo.forEach((msgInfoObj) => {\n const message = {} as MessageInfo;\n let stringObj = {} as ResponseString$;\n const numberObj = {} as ResponseNumber$;\n\n stringObj.$ = msgInfoObj.Duration;\n message.duration = stringObj;\n numberObj.$ = Number(msgInfoObj.ArrivalTime);\n message.time = numberObj;\n stringObj = {$: ''};\n stringObj.$ = msgInfoObj.MsgId;\n message.messageId = stringObj;\n /* istanbul ignore else */\n if (msgInfoObj.Read === 'true') {\n message.read = {};\n }\n const callerIdObj = msgInfoObj.CallerId;\n const callingParty = {} as CallingPartyInfo;\n\n stringObj = {$: ''};\n stringObj.$ = callerIdObj.CallerName;\n callingParty.name = stringObj;\n stringObj = {$: ''};\n stringObj.$ = this.userId;\n callingParty.userId = stringObj;\n stringObj = {$: ''};\n stringObj.$ = callerIdObj.CallerNumber;\n callingParty.address = stringObj;\n message.callingPartyInfo = callingParty;\n messageinfoArray.push(message);\n });\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {\n voicemailList: messageinfoArray,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully retrieved voicemail list', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get voicemail list: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail content.\n */\n public async getVoicemailContent(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_CONTENT,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const response = (await this.getVoicemailContentUcm(messageId)) as VoicemailResponseEvent;\n\n log.log(\n `Successfully retrieved voicemail content with Message ID: ${messageId}`,\n loggerContext\n );\n\n return response as VoicemailResponseEvent;\n } catch (err: unknown) {\n log.error(`Failed to get voicemail content: ${JSON.stringify(err)}`, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n log.info(`Voice mail content error is ${errorStatus}`, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Fetches a quantitative summary of voicemails for a user.\n * Not implemented for this connector.\n */\n public async getVoicemailSummary(): Promise<VoicemailResponseEvent | null> {\n return Promise.resolve(null);\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail content.\n */\n public async getVoicemailContentUcm(messageId: string) {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_CONTENT_UCM,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n return new Promise((resolve, reject) => {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}/${CONTENT}`;\n const mercuryApi =\n this.webex.internal.services._serviceUrls?.mercuryApi ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.mercuryApi);\n\n this.returnUcmPromise(voicemailContentUrl, mercuryApi)\n .then((response: VoicemailResponseEvent) => {\n if (response.statusCode === 200) {\n resolve(response);\n } else if (response.statusCode === 202) {\n this.sdkConnector.registerListener(\n 'event:ucm.voicemail_download_complete',\n async (event) => {\n const responseEvent = event as VoicemailEvent;\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${responseEvent?.data?.messageId}/${CONTENT}`;\n const response = await this.returnUcmPromise(voicemailContentUrl, mercuryApi);\n\n if (response.statusCode === 200) {\n this.sdkConnector.unregisterListener('event:ucm.voicemail_download_complete');\n resolve(response);\n } else {\n this.sdkConnector.unregisterListener('event:ucm.voicemail_download_complete');\n reject(response);\n }\n }\n );\n } else {\n reject(response);\n }\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n\n /**\n * @param voicemailContentUrl - Voicemail Content Url to get voicemail content.\n * @param mercuryApi - MercuryApi from webex serviceUrls.\n */\n async returnUcmPromise(voicemailContentUrl: string, mercuryApi: string) {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.RETURN_UCM_PROMISE,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${voicemailContentUrl}`,\n method: HTTP_METHODS.GET,\n headers: {\n orgId: this.orgId,\n deviceUrl: this.webex.internal.device.url,\n mercuryHostname: mercuryApi,\n },\n });\n\n log.log(`Response code: ${response.statusCode}`, loggerContext);\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const contentInfo = response?.body as UcmVMContentResponse;\n const respHeaders = response.headers;\n const statusCode = response.statusCode;\n const mediaType = respHeaders?.mediatype as string;\n const mediaContent = contentInfo as string;\n const responseDetails = {\n statusCode: Number(statusCode),\n data: {\n voicemailContent: {\n type: mediaType,\n content: mediaContent,\n },\n },\n message: SUCCESS_MESSAGE,\n };\n\n /* istanbul ignore else */\n if (statusCode !== 200 && statusCode !== 202) {\n responseDetails.message = FAILURE_MESSAGE;\n }\n\n return responseDetails;\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail mark as read.\n */\n public async voicemailMarkAsRead(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_READ,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}`;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: voicemailContentUrl,\n method: HTTP_METHODS.PUT,\n headers: {\n orgId: this.orgId,\n },\n body: {\n read: 'true',\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully marked voicemail as read', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to mark voicemail as read: ${JSON.stringify(err)}`, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to get voicemail mark as unread.\n */\n public async voicemailMarkAsUnread(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.VOICEMAIL_MARK_AS_UNREAD,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}`;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: voicemailContentUrl,\n method: HTTP_METHODS.PUT,\n headers: {\n orgId: this.orgId,\n },\n body: {\n read: 'false',\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully marked voicemail as unread', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to mark voicemail as unread: ${JSON.stringify(err)}`, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @param messageId - MessageId from voicemail list api to delete voicemail.\n */\n public async deleteVoicemail(messageId: string): Promise<VoicemailResponseEvent> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.DELETE_VOICEMAIL,\n };\n\n log.info(`${METHOD_START_MESSAGE} with Message ID: ${messageId}`, loggerContext);\n\n try {\n const voicemailContentUrl = `${this.vgVoiceMessageURI}${VOICEMAILS}/${messageId}`;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: voicemailContentUrl,\n method: HTTP_METHODS.DELETE,\n headers: {\n orgId: this.orgId,\n },\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: VoicemailResponseEvent = {\n statusCode: Number(response.statusCode),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully deleted voicemail', loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to delete voicemail: ${JSON.stringify(err)}`, loggerContext);\n\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Fetch voicemail transcripts for given messageId\n * Not implemented for this connector.\n *\n * @param messageId - MessageId to fetch voicemail transcript.\n */\n public async getVMTranscript(messageId: string): Promise<VoicemailResponseEvent | null> {\n log.info(`Message Id: ${messageId}`, {});\n\n return Promise.resolve(null);\n }\n\n /**\n * Resolve the Contact from userId or display name.\n * Not implemented for this connector.\n *\n * @param callingPartyInfo - Calling Party Info.\n */\n public resolveContact(callingPartyInfo: CallingPartyInfo): Promise<DisplayInformation | null> {\n log.info(`Calling Party Info: ${callingPartyInfo}`, {});\n\n return Promise.resolve(null);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAGA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAQA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAtBA;AACA;AACA;AAmCA;AACA;AACA;AAFA,IAGaM,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA;EAa9B;AACF;AACA;AACA;EACE,SAAAA,oBAAYE,KAAe,EAAEC,MAAuB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAL,mBAAA;IAAA,IAAAM,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IACpD,IAAI,CAACE,YAAY,GAAGC,qBAAY;IAChC;IACA,IAAI,CAAC,IAAI,CAACD,YAAY,CAACE,QAAQ,CAAC,CAAC,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAACR,KAAK,CAAC;IAC9B;IACA,IAAI,CAACA,KAAK,GAAG,IAAI,CAACK,YAAY,CAACE,QAAQ,CAAC,CAAC;IACzC,IAAI,CAACE,MAAM,GAAG,IAAI,CAACT,KAAK,CAACU,QAAQ,CAACC,MAAM,CAACF,MAAM;IAC/C,IAAI,CAACG,KAAK,GAAG,IAAI,CAACZ,KAAK,CAACU,QAAQ,CAACC,MAAM,CAACC,KAAK;IAC7CC,eAAG,CAACC,SAAS,CAACb,MAAM,CAACc,KAAK,EAAEC,6BAAkB,CAAC;EACjD;;EAEA;AACF;AACA;EAFE,WAAAC,aAAA,CAAAd,OAAA,EAAAL,mBAAA;IAAAoB,GAAA;IAAAC,KAAA,EAGA,SAAOC,IAAIA,CAAA,EAAG;MACZ,IAAMC,aAAa,GAAG;QACpBC,IAAI,EAAEN,6BAAkB;QACxBO,MAAM,EAAEC,mBAAO,CAACC;MAClB,CAAC;MAEDZ,eAAG,CAACa,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAC7C,IAAMO,QAAQ,GAAG,IAAI,CAACC,yBAAyB,CAAC,CAAC;MACjDhB,eAAG,CAACA,GAAG,CAAC,0DAA0D,EAAEQ,aAAa,CAAC;MAElF,OAAOO,QAAQ;IACjB;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAOW,eAAeA,CAAA,EAAkB;MACtC,OAAO,IAAI,CAACzB,YAAY;IAC1B;;IAEA;AACF;AACA;EAFE;IAAAa,GAAA;IAAAC,KAAA,EAGA,SAAQU,yBAAyBA,CAAA,EAAG;MAClC,IAAMR,aAAa,GAAG;QACpBC,IAAI,EAAEN,6BAAkB;QACxBO,MAAM,EAAEC,mBAAO,CAACO;MAClB,CAAC;MAEDlB,eAAG,CAACa,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAC7C,IAAI,CAACW,UAAU,GAAG,IAAAC,0BAAmB,EAAC,IAAI,CAACjC,KAAK,EAAEkC,sBAAe,CAACC,GAAG,CAAC;MACtE,IAAI,CAACC,iBAAiB,MAAAC,MAAA,CAAM,IAAI,CAACL,UAAU,OAAAK,MAAA,CAAIC,qBAAS,OAAAD,MAAA,CAAIE,kBAAM,OAAAF,MAAA,CAAIG,gBAAK,OAAAH,MAAA,CAAI,IAAI,CAAC5B,MAAM,MAAG;MAE7F,OAAO,IAAI,CAAC2B,iBAAiB;IAC/B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAlB,GAAA;IAAAC,KAAA;MAAA,IAAAsB,iBAAA,OAAAC,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAQA,SAAAC,QAA8BC,MAAc,EAAEC,WAAmB,EAAEC,IAAU;QAAA,IAAAC,KAAA;QAAA,IAAA5B,aAAA,EAAA6B,KAAA,EAAAC,iBAAA,EAAAvB,QAAA,EAAAwB,OAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAC,eAAA,EAAAC,SAAA,EAAAC,WAAA,EAAAC,EAAA;QAAA,OAAAf,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACrEzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAACuC;cAClB,CAAC;cAEDlD,eAAG,CAACa,IAAI,IAAAW,MAAA,CACHV,+BAAoB,oBAAAU,MAAA,CAAiBS,MAAM,qBAAAT,MAAA,CAAkBU,WAAW,iBAAAV,MAAA,CAAcW,IAAI,GAC7F3B,aACF,CAAC;cACK6B,KAAK,MAAAb,MAAA,CAAM,IAAI,CAACD,iBAAiB,EAAAC,MAAA,CAAG2B,sBAAU,OAAA3B,MAAA,CAAI4B,kBAAM,OAAA5B,MAAA,CAAIS,MAAM,EAAAT,MAAA,CAAG6B,iBAAK,OAAA7B,MAAA,CAAIU,WAAW,EAAAV,MAAA,CAAG8B,sBAAU,OAAA9B,MAAA,CAAIW,IAAI;cAAAY,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAGtE,IAAI,CAAC9D,KAAK,CAACoE,OAAO,CAAC;gBAC7DC,GAAG,KAAAhC,MAAA,CAAKa,KAAK,CAAE;gBACf3B,MAAM,EAAE+C,mBAAY,CAACC,GAAG;gBACxBC,OAAO,EAAE;kBACP5D,KAAK,EAAE,IAAI,CAACA;gBACd;cACF,CAAC,CAAC;YAAA;cANIgB,QAAQ,GAAAgC,QAAA,CAAAa,IAAA;cAQd5D,eAAG,CAACA,GAAG,yBAAAwB,MAAA,CAAyBT,QAAQ,aAARA,QAAQ,wBAAAuB,iBAAA,GAARvB,QAAQ,CAAE4C,OAAO,cAAArB,iBAAA,uBAAjBA,iBAAA,CAAmBuB,UAAU,GAAIrD,aAAa,CAAC;cAEzE+B,OAAO,GAAGxB,QAAQ,CAAC+C,IAAI;cACvBtB,gBAA+B,GAAG,EAAE;cACpCC,YAAY,GAAGF,OAAO,CAACwB,OAAO;cAEpCtB,YAAY,CAACuB,OAAO,CAAC,UAACC,UAAU,EAAK;gBACnC,IAAMC,OAAO,GAAG,CAAC,CAAgB;gBACjC,IAAIC,SAAS,GAAG,CAAC,CAAoB;gBACrC,IAAMC,SAAS,GAAG,CAAC,CAAoB;gBAEvCD,SAAS,CAACE,CAAC,GAAGJ,UAAU,CAACK,QAAQ;gBACjCJ,OAAO,CAACK,QAAQ,GAAGJ,SAAS;gBAC5BC,SAAS,CAACC,CAAC,GAAGG,MAAM,CAACP,UAAU,CAACQ,WAAW,CAAC;gBAC5CP,OAAO,CAACQ,IAAI,GAAGN,SAAS;gBACxBD,SAAS,GAAG;kBAACE,CAAC,EAAE;gBAAE,CAAC;gBACnBF,SAAS,CAACE,CAAC,GAAGJ,UAAU,CAACU,KAAK;gBAC9BT,OAAO,CAACU,SAAS,GAAGT,SAAS;gBAC7B;gBACA,IAAIF,UAAU,CAACY,IAAI,KAAK,MAAM,EAAE;kBAC9BX,OAAO,CAACY,IAAI,GAAG,CAAC,CAAC;gBACnB;gBACA,IAAMC,WAAW,GAAGd,UAAU,CAACe,QAAQ;gBACvC,IAAMC,YAAY,GAAG,CAAC,CAAqB;gBAE3Cd,SAAS,GAAG;kBAACE,CAAC,EAAE;gBAAE,CAAC;gBACnBF,SAAS,CAACE,CAAC,GAAGU,WAAW,CAACG,UAAU;gBACpCD,YAAY,CAACE,IAAI,GAAGhB,SAAS;gBAC7BA,SAAS,GAAG;kBAACE,CAAC,EAAE;gBAAE,CAAC;gBACnBF,SAAS,CAACE,CAAC,GAAGjC,KAAI,CAACxC,MAAM;gBACzBqF,YAAY,CAACrF,MAAM,GAAGuE,SAAS;gBAC/BA,SAAS,GAAG;kBAACE,CAAC,EAAE;gBAAE,CAAC;gBACnBF,SAAS,CAACE,CAAC,GAAGU,WAAW,CAACK,YAAY;gBACtCH,YAAY,CAACI,OAAO,GAAGlB,SAAS;gBAChCD,OAAO,CAACoB,gBAAgB,GAAGL,YAAY;gBACvCzC,gBAAgB,CAAC+C,IAAI,CAACrB,OAAO,CAAC;cAChC,CAAC,CAAC;cAEIxB,eAAuC,GAAG;gBAC9C8C,UAAU,EAAEhB,MAAM,CAACzD,QAAQ,CAACyE,UAAU,CAAC;gBACvCC,IAAI,EAAE;kBACJC,aAAa,EAAElD;gBACjB,CAAC;gBACD0B,OAAO,EAAEyB;cACX,CAAC;cAED3F,eAAG,CAACA,GAAG,CAAC,uCAAuC,EAAEQ,aAAa,CAAC;cAAC,OAAAuC,QAAA,CAAA6C,MAAA,WAEzDlD,eAAe;YAAA;cAAAK,QAAA,CAAAC,IAAA;cAAAH,EAAA,GAAAE,QAAA;cAEtB/C,eAAG,CAAC6F,KAAK,kCAAArE,MAAA,CAAkC,IAAAsE,UAAA,CAAAxG,OAAA,EAAAuD,EAAkB,CAAC,GAAIrC,aAAa,CAAC;cAACuC,QAAA,CAAAE,IAAA;cAAA,OAC3E,IAAA8C,iBAAU,EAAC,CAAC;YAAA;cAEZpD,SAAS,GAAAE,EAAA;cACTD,WAAW,GAAG,IAAAoD,8BAAuB,EAACrD,SAAS,EAAEnC,aAAa,CAAC;cAAA,OAAAuC,QAAA,CAAA6C,MAAA,WAE9DhD,WAAW;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAAkD,IAAA;UAAA;QAAA,GAAAjE,OAAA;MAAA,CAErB;MAAA,SA/EYkE,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAzE,iBAAA,CAAA0E,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAhBL,gBAAgB;IAAA;IAiF7B;AACF;AACA;IAFE;EAAA;IAAA7F,GAAA;IAAAC,KAAA;MAAA,IAAAkG,oBAAA,OAAA3E,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAGA,SAAA0E,SAAiC7B,SAAiB;QAAA,IAAApE,aAAA,EAAAO,QAAA,EAAA4B,SAAA,EAAAC,WAAA,EAAA8D,GAAA;QAAA,OAAA5E,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAA6D,SAAA;UAAA,kBAAAA,SAAA,CAAA3D,IAAA,GAAA2D,SAAA,CAAA1D,IAAA;YAAA;cAC1CzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAACiG;cAClB,CAAC;cAED5G,eAAG,CAACa,IAAI,IAAAW,MAAA,CAAIV,+BAAoB,wBAAAU,MAAA,CAAqBoD,SAAS,GAAIpE,aAAa,CAAC;cAACmG,SAAA,CAAA3D,IAAA;cAAA2D,SAAA,CAAA1D,IAAA;cAAA,OAGvD,IAAI,CAAC4D,sBAAsB,CAACjC,SAAS,CAAC;YAAA;cAAxD7D,QAAQ,GAAA4F,SAAA,CAAA/C,IAAA;cAEd5D,eAAG,CAACA,GAAG,+DAAAwB,MAAA,CACyDoD,SAAS,GACvEpE,aACF,CAAC;cAAC,OAAAmG,SAAA,CAAAf,MAAA,WAEK7E,QAAQ;YAAA;cAAA4F,SAAA,CAAA3D,IAAA;cAAA0D,GAAA,GAAAC,SAAA;cAEf3G,eAAG,CAAC6F,KAAK,qCAAArE,MAAA,CAAqC,IAAAsE,UAAA,CAAAxG,OAAA,EAAAoH,GAAkB,CAAC,GAAIlG,aAAa,CAAC;cAACmG,SAAA,CAAA1D,IAAA;cAAA,OAE9E,IAAA8C,iBAAU,EAAC,CAAC;YAAA;cAEZpD,SAAS,GAAA+D,GAAA;cACT9D,WAAW,GAAG,IAAAoD,8BAAuB,EAACrD,SAAS,EAAEnC,aAAa,CAAC;cAErER,eAAG,CAACa,IAAI,gCAAAW,MAAA,CAAgCoB,WAAW,GAAIpC,aAAa,CAAC;cAAC,OAAAmG,SAAA,CAAAf,MAAA,WAE/DhD,WAAW;YAAA;YAAA;cAAA,OAAA+D,SAAA,CAAAV,IAAA;UAAA;QAAA,GAAAQ,QAAA;MAAA,CAErB;MAAA,SA7BYK,mBAAmBA,CAAAC,GAAA;QAAA,OAAAP,oBAAA,CAAAF,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAnBO,mBAAmB;IAAA;IA+BhC;AACF;AACA;AACA;IAHE;EAAA;IAAAzG,GAAA;IAAAC,KAAA;MAAA,IAAA0G,oBAAA,OAAAnF,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAIA,SAAAkF,SAAA;QAAA,OAAAnF,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAAoE,SAAA;UAAA,kBAAAA,SAAA,CAAAlE,IAAA,GAAAkE,SAAA,CAAAjE,IAAA;YAAA;cAAA,OAAAiE,SAAA,CAAAtB,MAAA,WACSuB,QAAA,CAAA7H,OAAA,CAAQ8H,OAAO,CAAC,IAAI,CAAC;YAAA;YAAA;cAAA,OAAAF,SAAA,CAAAjB,IAAA;UAAA;QAAA,GAAAgB,QAAA;MAAA,CAC7B;MAAA,SAFYI,mBAAmBA,CAAA;QAAA,OAAAL,oBAAA,CAAAV,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAnBc,mBAAmB;IAAA;IAIhC;AACF;AACA;IAFE;EAAA;IAAAhH,GAAA;IAAAC,KAAA;MAAA,IAAAgH,uBAAA,OAAAzF,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAGA,SAAAwF,SAAoC3C,SAAiB;QAAA,IAAA4C,MAAA;QAAA,IAAAhH,aAAA;QAAA,OAAAsB,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAA2E,SAAA;UAAA,kBAAAA,SAAA,CAAAzE,IAAA,GAAAyE,SAAA,CAAAxE,IAAA;YAAA;cAC7CzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAAC+G;cAClB,CAAC;cAED1H,eAAG,CAACa,IAAI,IAAAW,MAAA,CAAIV,+BAAoB,wBAAAU,MAAA,CAAqBoD,SAAS,GAAIpE,aAAa,CAAC;cAAC,OAAAiH,SAAA,CAAA7B,MAAA,WAE1E,IAAAuB,QAAA,CAAA7H,OAAA,CAAY,UAAC8H,OAAO,EAAEO,MAAM,EAAK;gBAAA,IAAAC,qBAAA;gBACtC,IAAMC,mBAAmB,MAAArG,MAAA,CAAMgG,MAAI,CAACjG,iBAAiB,EAAAC,MAAA,CAAG2B,sBAAU,OAAA3B,MAAA,CAAIoD,SAAS,OAAApD,MAAA,CAAIsG,kBAAO,CAAE;gBAC5F,IAAMC,UAAU,GACd,EAAAH,qBAAA,GAAAJ,MAAI,CAACrI,KAAK,CAACU,QAAQ,CAACmI,QAAQ,CAACC,YAAY,cAAAL,qBAAA,uBAAzCA,qBAAA,CAA2CG,UAAU,KACrDP,MAAI,CAACrI,KAAK,CAACU,QAAQ,CAACmI,QAAQ,CAACE,GAAG,CAACV,MAAI,CAACrI,KAAK,CAACU,QAAQ,CAACmI,QAAQ,CAACG,eAAe,CAACJ,UAAU,CAAC;gBAE3FP,MAAI,CAACY,gBAAgB,CAACP,mBAAmB,EAAEE,UAAU,CAAC,CACnDM,IAAI,CAAC,UAACtH,QAAgC,EAAK;kBAC1C,IAAIA,QAAQ,CAACyE,UAAU,KAAK,GAAG,EAAE;oBAC/B4B,OAAO,CAACrG,QAAQ,CAAC;kBACnB,CAAC,MAAM,IAAIA,QAAQ,CAACyE,UAAU,KAAK,GAAG,EAAE;oBACtCgC,MAAI,CAAChI,YAAY,CAAC8I,gBAAgB,CAChC,uCAAuC;sBAAA,IAAAC,IAAA,OAAA1G,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CACvC,SAAAyG,SAAOC,KAAK;wBAAA,IAAAC,mBAAA;wBAAA,IAAAC,aAAA,EAAAd,mBAAA,EAAA9G,QAAA;wBAAA,OAAAe,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAA8F,SAAA;0BAAA,kBAAAA,SAAA,CAAA5F,IAAA,GAAA4F,SAAA,CAAA3F,IAAA;4BAAA;8BACJ0F,aAAa,GAAGF,KAAK;8BACrBZ,mBAAmB,MAAArG,MAAA,CAAMgG,MAAI,CAACjG,iBAAiB,EAAAC,MAAA,CAAG2B,sBAAU,OAAA3B,MAAA,CAAImH,aAAa,aAAbA,aAAa,wBAAAD,mBAAA,GAAbC,aAAa,CAAElD,IAAI,cAAAiD,mBAAA,uBAAnBA,mBAAA,CAAqB9D,SAAS,OAAApD,MAAA,CAAIsG,kBAAO;8BAAAc,SAAA,CAAA3F,IAAA;8BAAA,OACxFuE,MAAI,CAACY,gBAAgB,CAACP,mBAAmB,EAAEE,UAAU,CAAC;4BAAA;8BAAvEhH,QAAQ,GAAA6H,SAAA,CAAAhF,IAAA;8BAEd,IAAI7C,QAAQ,CAACyE,UAAU,KAAK,GAAG,EAAE;gCAC/BgC,MAAI,CAAChI,YAAY,CAACqJ,kBAAkB,CAAC,uCAAuC,CAAC;gCAC7EzB,OAAO,CAACrG,QAAQ,CAAC;8BACnB,CAAC,MAAM;gCACLyG,MAAI,CAAChI,YAAY,CAACqJ,kBAAkB,CAAC,uCAAuC,CAAC;gCAC7ElB,MAAM,CAAC5G,QAAQ,CAAC;8BAClB;4BAAC;4BAAA;8BAAA,OAAA6H,SAAA,CAAA3C,IAAA;0BAAA;wBAAA,GAAAuC,QAAA;sBAAA,CACF;sBAAA,iBAAAM,GAAA;wBAAA,OAAAP,IAAA,CAAAjC,KAAA,OAAAC,SAAA;sBAAA;oBAAA,GACH,CAAC;kBACH,CAAC,MAAM;oBACLoB,MAAM,CAAC5G,QAAQ,CAAC;kBAClB;gBACF,CAAC,CAAC,CACDgI,KAAK,CAAC,UAACC,GAAG,EAAK;kBACdrB,MAAM,CAACqB,GAAG,CAAC;gBACb,CAAC,CAAC;cACN,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAvB,SAAA,CAAAxB,IAAA;UAAA;QAAA,GAAAsB,QAAA;MAAA,CACH;MAAA,SA3CYV,sBAAsBA,CAAAoC,GAAA;QAAA,OAAA3B,uBAAA,CAAAhB,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAtBM,sBAAsB;IAAA;IA6CnC;AACF;AACA;AACA;IAHE;EAAA;IAAAxG,GAAA;IAAAC,KAAA;MAAA,IAAA4I,iBAAA,OAAArH,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAIA,SAAAoH,SAAuBtB,mBAA2B,EAAEE,UAAkB;QAAA,IAAAqB,kBAAA;QAAA,IAAA5I,aAAA,EAAAO,QAAA,EAAAsI,WAAA,EAAAC,WAAA,EAAA9D,UAAA,EAAA+D,SAAA,EAAAC,YAAA,EAAA9G,eAAA;QAAA,OAAAZ,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAA2G,SAAA;UAAA,kBAAAA,SAAA,CAAAzG,IAAA,GAAAyG,SAAA,CAAAxG,IAAA;YAAA;cAC9DzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAAC+I;cAClB,CAAC;cAED1J,eAAG,CAACa,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;cAACiJ,SAAA,CAAAxG,IAAA;cAAA,OACF,IAAI,CAAC9D,KAAK,CAACoE,OAAO,CAAC;gBAC7DC,GAAG,KAAAhC,MAAA,CAAKqG,mBAAmB,CAAE;gBAC7BnH,MAAM,EAAE+C,mBAAY,CAACC,GAAG;gBACxBC,OAAO,EAAE;kBACP5D,KAAK,EAAE,IAAI,CAACA,KAAK;kBACjB4J,SAAS,EAAE,IAAI,CAACxK,KAAK,CAACU,QAAQ,CAACC,MAAM,CAAC8J,GAAG;kBACzCC,eAAe,EAAE9B;gBACnB;cACF,CAAC,CAAC;YAAA;cARIhH,QAAQ,GAAA0I,SAAA,CAAA7F,IAAA;cAUd5D,eAAG,CAACA,GAAG,mBAAAwB,MAAA,CAAmBT,QAAQ,CAACyE,UAAU,GAAIhF,aAAa,CAAC;cAC/DR,eAAG,CAACA,GAAG,yBAAAwB,MAAA,CAAyBT,QAAQ,aAARA,QAAQ,wBAAAqI,kBAAA,GAARrI,QAAQ,CAAE4C,OAAO,cAAAyF,kBAAA,uBAAjBA,kBAAA,CAAmBvF,UAAU,GAAIrD,aAAa,CAAC;cAEzE6I,WAAW,GAAGtI,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE+C,IAAI;cAC5BwF,WAAW,GAAGvI,QAAQ,CAAC4C,OAAO;cAC9B6B,UAAU,GAAGzE,QAAQ,CAACyE,UAAU;cAChC+D,SAAS,GAAGD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEQ,SAAS;cAClCN,YAAY,GAAGH,WAAW;cAC1B3G,eAAe,GAAG;gBACtB8C,UAAU,EAAEhB,MAAM,CAACgB,UAAU,CAAC;gBAC9BC,IAAI,EAAE;kBACJsE,gBAAgB,EAAE;oBAChBC,IAAI,EAAET,SAAS;oBACfU,OAAO,EAAET;kBACX;gBACF,CAAC;gBACDtF,OAAO,EAAEyB;cACX,CAAC;cAED;cACA,IAAIH,UAAU,KAAK,GAAG,IAAIA,UAAU,KAAK,GAAG,EAAE;gBAC5C9C,eAAe,CAACwB,OAAO,GAAGgG,0BAAe;cAC3C;cAAC,OAAAT,SAAA,CAAA7D,MAAA,WAEMlD,eAAe;YAAA;YAAA;cAAA,OAAA+G,SAAA,CAAAxD,IAAA;UAAA;QAAA,GAAAkD,QAAA;MAAA,CACvB;MAAA,SA1CKf,gBAAgBA,CAAA+B,GAAA,EAAAC,GAAA;QAAA,OAAAlB,iBAAA,CAAA5C,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAhB6B,gBAAgB;IAAA;IA4CtB;AACF;AACA;IAFE;EAAA;IAAA/H,GAAA;IAAAC,KAAA;MAAA,IAAA+J,oBAAA,OAAAxI,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAGA,SAAAuI,SAAiC1F,SAAiB;QAAA,IAAApE,aAAA,EAAA+J,kBAAA,EAAA1C,mBAAA,EAAA9G,QAAA,EAAA2B,eAAA,EAAAC,SAAA,EAAAC,WAAA,EAAA4H,GAAA;QAAA,OAAA1I,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAA2H,SAAA;UAAA,kBAAAA,SAAA,CAAAzH,IAAA,GAAAyH,SAAA,CAAAxH,IAAA;YAAA;cAC1CzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAAC+J;cAClB,CAAC;cAED1K,eAAG,CAACa,IAAI,IAAAW,MAAA,CAAIV,+BAAoB,wBAAAU,MAAA,CAAqBoD,SAAS,GAAIpE,aAAa,CAAC;cAACiK,SAAA,CAAAzH,IAAA;cAGzE6E,mBAAmB,MAAArG,MAAA,CAAM,IAAI,CAACD,iBAAiB,EAAAC,MAAA,CAAG2B,sBAAU,OAAA3B,MAAA,CAAIoD,SAAS;cAAA6F,SAAA,CAAAxH,IAAA;cAAA,OACnC,IAAI,CAAC9D,KAAK,CAACoE,OAAO,CAAC;gBAC7DC,GAAG,EAAEqE,mBAAmB;gBACxBnH,MAAM,EAAE+C,mBAAY,CAACkH,GAAG;gBACxBhH,OAAO,EAAE;kBACP5D,KAAK,EAAE,IAAI,CAACA;gBACd,CAAC;gBACD+D,IAAI,EAAE;kBACJgB,IAAI,EAAE;gBACR;cACF,CAAC,CAAC;YAAA;cATI/D,QAAQ,GAAA0J,SAAA,CAAA7G,IAAA;cAWd5D,eAAG,CAACA,GAAG,yBAAAwB,MAAA,CAAyBT,QAAQ,aAARA,QAAQ,wBAAAwJ,kBAAA,GAARxJ,QAAQ,CAAE4C,OAAO,cAAA4G,kBAAA,uBAAjBA,kBAAA,CAAmB1G,UAAU,GAAIrD,aAAa,CAAC;cAEzEkC,eAAuC,GAAG;gBAC9C8C,UAAU,EAAEhB,MAAM,CAACzD,QAAQ,CAACyE,UAAU,CAAC;gBACvCC,IAAI,EAAE,CAAC,CAAC;gBACRvB,OAAO,EAAEyB;cACX,CAAC;cAED3F,eAAG,CAACA,GAAG,CAAC,uCAAuC,EAAEQ,aAAa,CAAC;cAAC,OAAAiK,SAAA,CAAA7E,MAAA,WAEzDlD,eAAe;YAAA;cAAA+H,SAAA,CAAAzH,IAAA;cAAAwH,GAAA,GAAAC,SAAA;cAEtBzK,eAAG,CAAC6F,KAAK,sCAAArE,MAAA,CAAsC,IAAAsE,UAAA,CAAAxG,OAAA,EAAAkL,GAAkB,CAAC,GAAIhK,aAAa,CAAC;cAACiK,SAAA,CAAAxH,IAAA;cAAA,OAE/E,IAAA8C,iBAAU,EAAC,CAAC;YAAA;cAEZpD,SAAS,GAAA6H,GAAA;cACT5H,WAAW,GAAG,IAAAoD,8BAAuB,EAACrD,SAAS,EAAEnC,aAAa,CAAC;cAAA,OAAAiK,SAAA,CAAA7E,MAAA,WAE9DhD,WAAW;YAAA;YAAA;cAAA,OAAA6H,SAAA,CAAAxE,IAAA;UAAA;QAAA,GAAAqE,QAAA;MAAA,CAErB;MAAA,SA1CYM,mBAAmBA,CAAAC,GAAA;QAAA,OAAAR,oBAAA,CAAA/D,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAnBqE,mBAAmB;IAAA;IA4ChC;AACF;AACA;IAFE;EAAA;IAAAvK,GAAA;IAAAC,KAAA;MAAA,IAAAwK,sBAAA,OAAAjJ,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAGA,SAAAgJ,SAAmCnG,SAAiB;QAAA,IAAApE,aAAA,EAAAwK,kBAAA,EAAAnD,mBAAA,EAAA9G,QAAA,EAAA2B,eAAA,EAAAC,SAAA,EAAAC,WAAA,EAAAqI,GAAA;QAAA,OAAAnJ,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAAoI,SAAA;UAAA,kBAAAA,SAAA,CAAAlI,IAAA,GAAAkI,SAAA,CAAAjI,IAAA;YAAA;cAC5CzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAACwK;cAClB,CAAC;cAEDnL,eAAG,CAACa,IAAI,IAAAW,MAAA,CAAIV,+BAAoB,wBAAAU,MAAA,CAAqBoD,SAAS,GAAIpE,aAAa,CAAC;cAAC0K,SAAA,CAAAlI,IAAA;cAGzE6E,mBAAmB,MAAArG,MAAA,CAAM,IAAI,CAACD,iBAAiB,EAAAC,MAAA,CAAG2B,sBAAU,OAAA3B,MAAA,CAAIoD,SAAS;cAAAsG,SAAA,CAAAjI,IAAA;cAAA,OACnC,IAAI,CAAC9D,KAAK,CAACoE,OAAO,CAAC;gBAC7DC,GAAG,EAAEqE,mBAAmB;gBACxBnH,MAAM,EAAE+C,mBAAY,CAACkH,GAAG;gBACxBhH,OAAO,EAAE;kBACP5D,KAAK,EAAE,IAAI,CAACA;gBACd,CAAC;gBACD+D,IAAI,EAAE;kBACJgB,IAAI,EAAE;gBACR;cACF,CAAC,CAAC;YAAA;cATI/D,QAAQ,GAAAmK,SAAA,CAAAtH,IAAA;cAWd5D,eAAG,CAACA,GAAG,yBAAAwB,MAAA,CAAyBT,QAAQ,aAARA,QAAQ,wBAAAiK,kBAAA,GAARjK,QAAQ,CAAE4C,OAAO,cAAAqH,kBAAA,uBAAjBA,kBAAA,CAAmBnH,UAAU,GAAIrD,aAAa,CAAC;cAEzEkC,eAAuC,GAAG;gBAC9C8C,UAAU,EAAEhB,MAAM,CAACzD,QAAQ,CAACyE,UAAU,CAAC;gBACvCC,IAAI,EAAE,CAAC,CAAC;gBACRvB,OAAO,EAAEyB;cACX,CAAC;cAED3F,eAAG,CAACA,GAAG,CAAC,yCAAyC,EAAEQ,aAAa,CAAC;cAAC,OAAA0K,SAAA,CAAAtF,MAAA,WAE3DlD,eAAe;YAAA;cAAAwI,SAAA,CAAAlI,IAAA;cAAAiI,GAAA,GAAAC,SAAA;cAEtBlL,eAAG,CAAC6F,KAAK,wCAAArE,MAAA,CAAwC,IAAAsE,UAAA,CAAAxG,OAAA,EAAA2L,GAAkB,CAAC,GAAIzK,aAAa,CAAC;cAAC0K,SAAA,CAAAjI,IAAA;cAAA,OAEjF,IAAA8C,iBAAU,EAAC,CAAC;YAAA;cAEZpD,SAAS,GAAAsI,GAAA;cACTrI,WAAW,GAAG,IAAAoD,8BAAuB,EAACrD,SAAS,EAAEnC,aAAa,CAAC;cAAA,OAAA0K,SAAA,CAAAtF,MAAA,WAE9DhD,WAAW;YAAA;YAAA;cAAA,OAAAsI,SAAA,CAAAjF,IAAA;UAAA;QAAA,GAAA8E,QAAA;MAAA,CAErB;MAAA,SA1CYK,qBAAqBA,CAAAC,GAAA;QAAA,OAAAP,sBAAA,CAAAxE,KAAA,OAAAC,SAAA;MAAA;MAAA,OAArB6E,qBAAqB;IAAA;IA4ClC;AACF;AACA;IAFE;EAAA;IAAA/K,GAAA;IAAAC,KAAA;MAAA,IAAAgL,gBAAA,OAAAzJ,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAGA,SAAAwJ,SAA6B3G,SAAiB;QAAA,IAAApE,aAAA,EAAAgL,kBAAA,EAAA3D,mBAAA,EAAA9G,QAAA,EAAA2B,eAAA,EAAAC,SAAA,EAAAC,WAAA,EAAA6I,GAAA;QAAA,OAAA3J,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAA4I,SAAA;UAAA,kBAAAA,SAAA,CAAA1I,IAAA,GAAA0I,SAAA,CAAAzI,IAAA;YAAA;cACtCzC,aAAa,GAAG;gBACpBC,IAAI,EAAEN,6BAAkB;gBACxBO,MAAM,EAAEC,mBAAO,CAACgL;cAClB,CAAC;cAED3L,eAAG,CAACa,IAAI,IAAAW,MAAA,CAAIV,+BAAoB,wBAAAU,MAAA,CAAqBoD,SAAS,GAAIpE,aAAa,CAAC;cAACkL,SAAA,CAAA1I,IAAA;cAGzE6E,mBAAmB,MAAArG,MAAA,CAAM,IAAI,CAACD,iBAAiB,EAAAC,MAAA,CAAG2B,sBAAU,OAAA3B,MAAA,CAAIoD,SAAS;cAAA8G,SAAA,CAAAzI,IAAA;cAAA,OACnC,IAAI,CAAC9D,KAAK,CAACoE,OAAO,CAAC;gBAC7DC,GAAG,EAAEqE,mBAAmB;gBACxBnH,MAAM,EAAE+C,mBAAY,CAACmI,MAAM;gBAC3BjI,OAAO,EAAE;kBACP5D,KAAK,EAAE,IAAI,CAACA;gBACd;cACF,CAAC,CAAC;YAAA;cANIgB,QAAQ,GAAA2K,SAAA,CAAA9H,IAAA;cAQd5D,eAAG,CAACA,GAAG,yBAAAwB,MAAA,CAAyBT,QAAQ,aAARA,QAAQ,wBAAAyK,kBAAA,GAARzK,QAAQ,CAAE4C,OAAO,cAAA6H,kBAAA,uBAAjBA,kBAAA,CAAmB3H,UAAU,GAAIrD,aAAa,CAAC;cAEzEkC,eAAuC,GAAG;gBAC9C8C,UAAU,EAAEhB,MAAM,CAACzD,QAAQ,CAACyE,UAAU,CAAC;gBACvCC,IAAI,EAAE,CAAC,CAAC;gBACRvB,OAAO,EAAEyB;cACX,CAAC;cAED3F,eAAG,CAACA,GAAG,CAAC,gCAAgC,EAAEQ,aAAa,CAAC;cAAC,OAAAkL,SAAA,CAAA9F,MAAA,WAElDlD,eAAe;YAAA;cAAAgJ,SAAA,CAAA1I,IAAA;cAAAyI,GAAA,GAAAC,SAAA;cAEtB1L,eAAG,CAAC6F,KAAK,gCAAArE,MAAA,CAAgC,IAAAsE,UAAA,CAAAxG,OAAA,EAAAmM,GAAkB,CAAC,GAAIjL,aAAa,CAAC;cAACkL,SAAA,CAAAzI,IAAA;cAAA,OAEzE,IAAA8C,iBAAU,EAAC,CAAC;YAAA;cAEZpD,SAAS,GAAA8I,GAAA;cACT7I,WAAW,GAAG,IAAAoD,8BAAuB,EAACrD,SAAS,EAAEnC,aAAa,CAAC;cAAA,OAAAkL,SAAA,CAAA9F,MAAA,WAE9DhD,WAAW;YAAA;YAAA;cAAA,OAAA8I,SAAA,CAAAzF,IAAA;UAAA;QAAA,GAAAsF,QAAA;MAAA,CAErB;MAAA,SAvCYM,eAAeA,CAAAC,GAAA;QAAA,OAAAR,gBAAA,CAAAhF,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAfsF,eAAe;IAAA;IAyC5B;AACF;AACA;AACA;AACA;AACA;IALE;EAAA;IAAAxL,GAAA;IAAAC,KAAA;MAAA,IAAAyL,gBAAA,OAAAlK,kBAAA,CAAAvC,OAAA,eAAAwC,YAAA,CAAAxC,OAAA,CAAAyC,IAAA,CAMA,SAAAiK,SAA6BpH,SAAiB;QAAA,OAAA9C,YAAA,CAAAxC,OAAA,CAAAwD,IAAA,WAAAmJ,SAAA;UAAA,kBAAAA,SAAA,CAAAjJ,IAAA,GAAAiJ,SAAA,CAAAhJ,IAAA;YAAA;cAC5CjD,eAAG,CAACa,IAAI,gBAAAW,MAAA,CAAgBoD,SAAS,GAAI,CAAC,CAAC,CAAC;cAAC,OAAAqH,SAAA,CAAArG,MAAA,WAElCuB,QAAA,CAAA7H,OAAA,CAAQ8H,OAAO,CAAC,IAAI,CAAC;YAAA;YAAA;cAAA,OAAA6E,SAAA,CAAAhG,IAAA;UAAA;QAAA,GAAA+F,QAAA;MAAA,CAC7B;MAAA,SAJYE,eAAeA,CAAAC,IAAA;QAAA,OAAAJ,gBAAA,CAAAzF,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAf2F,eAAe;IAAA;IAM5B;AACF;AACA;AACA;AACA;AACA;IALE;EAAA;IAAA7L,GAAA;IAAAC,KAAA,EAMA,SAAO8L,cAAcA,CAAC9G,gBAAkC,EAAsC;MAC5FtF,eAAG,CAACa,IAAI,wBAAAW,MAAA,CAAwB8D,gBAAgB,GAAI,CAAC,CAAC,CAAC;MAEvD,OAAO6B,QAAA,CAAA7H,OAAA,CAAQ8H,OAAO,CAAC,IAAI,CAAC;IAC9B;EAAC;AAAA","ignoreList":[]}