@webex/calling 3.9.0 → 3.10.0

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 (184) hide show
  1. package/dist/CallHistory/CallHistory.js +51 -46
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +146 -147
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallHistory/types.js.map +1 -1
  8. package/dist/CallSettings/CallSettings.js +8 -8
  9. package/dist/CallSettings/CallSettings.js.map +1 -1
  10. package/dist/CallSettings/CallSettings.test.js +1 -1
  11. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  12. package/dist/CallSettings/UcmBackendConnector.js +12 -11
  13. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  14. package/dist/CallSettings/UcmBackendConnector.test.js +9 -10
  15. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  16. package/dist/CallSettings/WxCallBackendConnector.js +66 -59
  17. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  18. package/dist/CallSettings/WxCallBackendConnector.test.js +108 -109
  19. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  20. package/dist/CallSettings/constants.js.map +1 -1
  21. package/dist/CallSettings/testFixtures.js.map +1 -1
  22. package/dist/CallSettings/types.js.map +1 -1
  23. package/dist/CallingClient/CallingClient.js +457 -201
  24. package/dist/CallingClient/CallingClient.js.map +1 -1
  25. package/dist/CallingClient/CallingClient.test.js +458 -315
  26. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  27. package/dist/CallingClient/callRecordFixtures.js.map +1 -1
  28. package/dist/CallingClient/calling/CallerId/index.js +2 -2
  29. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  30. package/dist/CallingClient/calling/CallerId/index.test.js +8 -7
  31. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  32. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  33. package/dist/CallingClient/calling/call.js +369 -333
  34. package/dist/CallingClient/calling/call.js.map +1 -1
  35. package/dist/CallingClient/calling/call.test.js +411 -410
  36. package/dist/CallingClient/calling/call.test.js.map +1 -1
  37. package/dist/CallingClient/calling/callManager.js +3 -4
  38. package/dist/CallingClient/calling/callManager.js.map +1 -1
  39. package/dist/CallingClient/calling/callManager.test.js +67 -68
  40. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  41. package/dist/CallingClient/calling/index.js.map +1 -1
  42. package/dist/CallingClient/calling/types.js.map +1 -1
  43. package/dist/CallingClient/callingClientFixtures.js.map +1 -1
  44. package/dist/CallingClient/constants.js +9 -6
  45. package/dist/CallingClient/constants.js.map +1 -1
  46. package/dist/CallingClient/line/index.js +10 -11
  47. package/dist/CallingClient/line/index.js.map +1 -1
  48. package/dist/CallingClient/line/line.test.js +10 -9
  49. package/dist/CallingClient/line/line.test.js.map +1 -1
  50. package/dist/CallingClient/line/types.js.map +1 -1
  51. package/dist/CallingClient/registration/index.js.map +1 -1
  52. package/dist/CallingClient/registration/register.js +280 -201
  53. package/dist/CallingClient/registration/register.js.map +1 -1
  54. package/dist/CallingClient/registration/register.test.js +251 -180
  55. package/dist/CallingClient/registration/register.test.js.map +1 -1
  56. package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
  57. package/dist/CallingClient/registration/types.js.map +1 -1
  58. package/dist/CallingClient/registration/webWorker.js +25 -10
  59. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  60. package/dist/CallingClient/registration/webWorker.test.js +85 -38
  61. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  62. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  63. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  64. package/dist/CallingClient/types.js.map +1 -1
  65. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
  66. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
  67. package/dist/Contacts/ContactsClient.js +244 -238
  68. package/dist/Contacts/ContactsClient.js.map +1 -1
  69. package/dist/Contacts/ContactsClient.test.js +89 -90
  70. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  71. package/dist/Contacts/constants.js +2 -2
  72. package/dist/Contacts/constants.js.map +1 -1
  73. package/dist/Contacts/contactFixtures.js.map +1 -1
  74. package/dist/Contacts/types.js.map +1 -1
  75. package/dist/Errors/catalog/CallError.js +2 -2
  76. package/dist/Errors/catalog/CallError.js.map +1 -1
  77. package/dist/Errors/catalog/CallingDeviceError.js +2 -2
  78. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  79. package/dist/Errors/catalog/ExtendedError.js +3 -3
  80. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  81. package/dist/Errors/catalog/LineError.js +2 -2
  82. package/dist/Errors/catalog/LineError.js.map +1 -1
  83. package/dist/Errors/index.js.map +1 -1
  84. package/dist/Errors/types.js.map +1 -1
  85. package/dist/Events/impl/index.js +2 -2
  86. package/dist/Events/impl/index.js.map +1 -1
  87. package/dist/Events/types.js.map +1 -1
  88. package/dist/Logger/index.js.map +1 -1
  89. package/dist/Logger/index.test.js.map +1 -1
  90. package/dist/Logger/types.js.map +1 -1
  91. package/dist/Metrics/index.js +221 -104
  92. package/dist/Metrics/index.js.map +1 -1
  93. package/dist/Metrics/index.test.js +112 -23
  94. package/dist/Metrics/index.test.js.map +1 -1
  95. package/dist/Metrics/types.js +15 -1
  96. package/dist/Metrics/types.js.map +1 -1
  97. package/dist/SDKConnector/index.js +0 -1
  98. package/dist/SDKConnector/index.js.map +1 -1
  99. package/dist/SDKConnector/index.test.js.map +1 -1
  100. package/dist/SDKConnector/types.js.map +1 -1
  101. package/dist/SDKConnector/utils.js.map +1 -1
  102. package/dist/SDKConnector/utils.test.js.map +1 -1
  103. package/dist/Voicemail/BroadworksBackendConnector.js +42 -39
  104. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  105. package/dist/Voicemail/BroadworksBackendConnector.test.js +119 -120
  106. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  107. package/dist/Voicemail/UcmBackendConnector.js +54 -47
  108. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  109. package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
  110. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  111. package/dist/Voicemail/Voicemail.js +12 -11
  112. package/dist/Voicemail/Voicemail.js.map +1 -1
  113. package/dist/Voicemail/Voicemail.test.js +2 -2
  114. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  115. package/dist/Voicemail/WxCallBackendConnector.js +78 -70
  116. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  117. package/dist/Voicemail/WxCallBackendConnector.test.js +184 -185
  118. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  119. package/dist/Voicemail/constants.js.map +1 -1
  120. package/dist/Voicemail/types.js.map +1 -1
  121. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  122. package/dist/api.js.map +1 -1
  123. package/dist/common/Utils.js +84 -65
  124. package/dist/common/Utils.js.map +1 -1
  125. package/dist/common/Utils.test.js +111 -117
  126. package/dist/common/Utils.test.js.map +1 -1
  127. package/dist/common/constants.js.map +1 -1
  128. package/dist/common/index.js.map +1 -1
  129. package/dist/common/testUtil.js +1 -1
  130. package/dist/common/testUtil.js.map +1 -1
  131. package/dist/common/types.js.map +1 -1
  132. package/dist/index.js +5 -5
  133. package/dist/index.js.map +1 -1
  134. package/dist/module/CallHistory/CallHistory.js +4 -0
  135. package/dist/module/CallSettings/UcmBackendConnector.js +1 -0
  136. package/dist/module/CallSettings/WxCallBackendConnector.js +7 -0
  137. package/dist/module/CallingClient/CallingClient.js +174 -32
  138. package/dist/module/CallingClient/calling/call.js +79 -43
  139. package/dist/module/CallingClient/constants.js +8 -4
  140. package/dist/module/CallingClient/line/index.js +3 -3
  141. package/dist/module/CallingClient/registration/register.js +34 -10
  142. package/dist/module/CallingClient/registration/webWorker.js +17 -3
  143. package/dist/module/CallingClient/registration/webWorkerStr.js +19 -3
  144. package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +59 -0
  145. package/dist/module/Contacts/ContactsClient.js +23 -17
  146. package/dist/module/Contacts/constants.js +1 -1
  147. package/dist/module/Metrics/index.js +142 -55
  148. package/dist/module/Metrics/types.js +14 -0
  149. package/dist/module/Voicemail/BroadworksBackendConnector.js +3 -0
  150. package/dist/module/Voicemail/UcmBackendConnector.js +6 -0
  151. package/dist/module/Voicemail/WxCallBackendConnector.js +8 -0
  152. package/dist/module/common/Utils.js +27 -10
  153. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  154. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  155. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  156. package/dist/types/CallingClient/CallingClient.d.ts +12 -1
  157. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  158. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  159. package/dist/types/CallingClient/calling/types.d.ts +2 -1
  160. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  161. package/dist/types/CallingClient/constants.d.ts +8 -4
  162. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  163. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  164. package/dist/types/CallingClient/registration/register.d.ts +1 -0
  165. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  166. package/dist/types/CallingClient/registration/webWorker.d.ts +2 -1
  167. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  168. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  169. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  170. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +5 -0
  171. package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
  172. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  173. package/dist/types/Contacts/constants.d.ts +1 -1
  174. package/dist/types/Contacts/constants.d.ts.map +1 -1
  175. package/dist/types/Metrics/index.d.ts.map +1 -1
  176. package/dist/types/Metrics/types.d.ts +18 -3
  177. package/dist/types/Metrics/types.d.ts.map +1 -1
  178. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  179. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  180. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  181. package/dist/types/common/Utils.d.ts.map +1 -1
  182. package/dist/types/common/types.d.ts +1 -0
  183. package/dist/types/common/types.d.ts.map +1 -1
  184. package/package.json +10 -8
@@ -33,10 +33,10 @@ var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
33
33
  var _types3 = require("../../Events/types");
34
34
  var _callManager = require("../calling/callManager");
35
35
  var _types4 = require("../../Errors/types");
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
38
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
39
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
36
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = _Reflect$construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
37
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
38
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
39
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
40
40
  var _webex = /*#__PURE__*/new _weakMap.default();
41
41
  var _mutex = /*#__PURE__*/new _weakMap.default();
42
42
  var _sdkConnector = /*#__PURE__*/new _weakMap.default();
@@ -211,7 +211,7 @@ var Line = exports.default = /*#__PURE__*/function (_Eventing) {
211
211
  (0, _createClass2.default)(Line, [{
212
212
  key: "register",
213
213
  value: (function () {
214
- var _register = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
214
+ var _register = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
215
215
  var _this2 = this;
216
216
  return _regenerator.default.wrap(function _callee2$(_context2) {
217
217
  while (1) switch (_context2.prev = _context2.next) {
@@ -221,7 +221,7 @@ var Line = exports.default = /*#__PURE__*/function (_Eventing) {
221
221
  method: _constants2.METHODS.REGISTER
222
222
  });
223
223
  _context2.next = 3;
224
- return (0, _classPrivateFieldGet2.default)(this, _mutex).runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
224
+ return (0, _classPrivateFieldGet2.default)(this, _mutex).runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
225
225
  return _regenerator.default.wrap(function _callee$(_context) {
226
226
  while (1) switch (_context.prev = _context.next) {
227
227
  case 0:
@@ -236,10 +236,6 @@ var Line = exports.default = /*#__PURE__*/function (_Eventing) {
236
236
  }, _callee);
237
237
  })));
238
238
  case 3:
239
- if (this.mobiusDeviceId) {
240
- this.callManager.updateLine(this.mobiusDeviceId, this);
241
- }
242
- case 4:
243
239
  case "end":
244
240
  return _context2.stop();
245
241
  }
@@ -257,7 +253,7 @@ var Line = exports.default = /*#__PURE__*/function (_Eventing) {
257
253
  }, {
258
254
  key: "deregister",
259
255
  value: (function () {
260
- var _deregister = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
256
+ var _deregister = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
261
257
  return _regenerator.default.wrap(function _callee3$(_context3) {
262
258
  while (1) switch (_context3.prev = _context3.next) {
263
259
  case 0:
@@ -305,6 +301,9 @@ var Line = exports.default = /*#__PURE__*/function (_Eventing) {
305
301
  this.rehomingIntervalMax = rehomingIntervalMax;
306
302
  this.voicePortalNumber = voicePortalNumber;
307
303
  this.voicePortalExtension = voicePortalExtension;
304
+ if (this.mobiusDeviceId) {
305
+ this.callManager.updateLine(this.mobiusDeviceId, this);
306
+ }
308
307
  }
309
308
  }, {
310
309
  key: "getLoggingLevel",
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_constants","_types","_types2","_constants2","_Logger","_interopRequireDefault","_registration","_impl","_LineError","_common","_SDKConnector","_types3","_callManager","_types4","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","_classPrivateFieldInitSpec","obj","privateMap","value","_checkPrivateRedeclaration","set","privateCollection","has","TypeError","_webex","_weakMap","_mutex","_sdkConnector","_primaryMobiusUris","_backupMobiusUris","Line","exports","_Eventing","_inherits2","_super","userId","clientDeviceUri","mutex","primaryMobiusUris","backupMobiusUris","logLevel","serviceDataConfig","jwe","phoneNumber","extension","voicemail","_this","_classCallCheck2","_assertThisInitialized2","writable","_defineProperty2","event","deviceInfo","lineError","log","info","METHOD_START_MESSAGE","file","LINE_FILE","method","METHODS","LINE_EMITTER","LINE_EVENTS","REGISTERED","normalizeLine","emit","UNREGISTERED","RECONNECTED","RECONNECTING","ERROR","registration","getStatus","_this$registration$ge","getDeviceInfo","device","deviceId","dest","MAKE_CALL","match","address","VALID_PHONE_REGEX","length","_this$registration$ge2","_call","sanitizedNumber","replace","formattedDest","type","concat","callManager","createCall","CallDirection","OUTBOUND","lineId","getCallId","warn","err","LineError","ERROR_TYPE","CALL_ERROR","RegistrationStatus","ACTIVE","serviceData","indicator","ServiceIndicator","GUEST_CALLING","_this$registration$ge3","undefined","correlationId","getCall","uuid","_classPrivateFieldSet2","SDKConnector","_classPrivateFieldGet2","getWebex","CALLING","domain","validateServiceData","createRegistration","lineEmitter","setLogger","getCallManager","incomingCallListener","_createClass2","key","_register","_asyncToGenerator2","_regenerator","mark","_callee2","_this2","wrap","_callee2$","_context2","prev","next","REGISTER","runExclusive","_callee","_callee$","_context","CONNECTING","setMobiusServers","triggerRegistration","stop","mobiusDeviceId","updateLine","register","_deregister","_callee3","_callee3$","_context3","DEREGISTER","deregister","setStatus","IDLE","_device$addresses","keepaliveInterval","callKeepaliveInterval","rehomingIntervalMin","rehomingIntervalMax","voicePortalNumber","voicePortalExtension","mobiusUri","uri","lastSeen","sipAddresses","addresses","getLoggingLevel","getLogLevel","getActiveMobiusUrl","_this3","INCOMING_CALL_LISTENER","on","LINE_EVENT_KEYS","INCOMING_CALL","callObj","Eventing"],"sources":["index.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {v4 as uuid} from 'uuid';\nimport {METHOD_START_MESSAGE} from '../../common/constants';\nimport {\n CallDetails,\n CallDirection,\n CorrelationId,\n IDeviceInfo,\n MobiusDeviceId,\n RegistrationStatus,\n ServiceData,\n ServiceIndicator,\n} from '../../common/types';\nimport {ILine, LINE_EVENTS} from './types';\nimport {LINE_FILE, METHODS, VALID_PHONE_REGEX} from '../constants';\nimport log from '../../Logger';\nimport {IRegistration} from '../registration/types';\nimport {createRegistration} from '../registration';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {CallingClientConfig} from '../types';\nimport {Eventing} from '../../Events/impl';\nimport {LineError} from '../../Errors/catalog/LineError';\nimport {LOGGER} from '../../Logger/types';\nimport {validateServiceData} from '../../common';\nimport SDKConnector from '../../SDKConnector';\nimport {LINE_EVENT_KEYS, LineEventTypes} from '../../Events/types';\nimport {ICall, ICallManager} from '../calling/types';\nimport {getCallManager} from '../calling/callManager';\nimport {ERROR_TYPE} from '../../Errors/types';\n\nexport default class Line extends Eventing<LineEventTypes> implements ILine {\n #webex: WebexSDK;\n\n #mutex: Mutex;\n\n #sdkConnector: ISDKConnector;\n\n public registration: IRegistration;\n\n public userId: string;\n\n public clientDeviceUri: string;\n\n public lineId: string;\n\n public mobiusDeviceId?: string;\n\n private mobiusUri?: string;\n\n public phoneNumber?: string;\n\n public extension?: string;\n\n public sipAddresses: string[] = [];\n\n public voicemail?: string;\n\n public lastSeen?: string;\n\n public keepaliveInterval?: number;\n\n public callKeepaliveInterval?: number;\n\n public rehomingIntervalMin?: number;\n\n public rehomingIntervalMax?: number;\n\n public voicePortalNumber?: number;\n\n public voicePortalExtension?: number;\n\n private callManager: ICallManager;\n\n private serviceData: ServiceData;\n\n #primaryMobiusUris: string[];\n\n #backupMobiusUris: string[];\n\n constructor(\n userId: string,\n clientDeviceUri: string,\n mutex: Mutex,\n primaryMobiusUris: string[],\n backupMobiusUris: string[],\n logLevel: LOGGER,\n serviceDataConfig?: CallingClientConfig['serviceData'],\n jwe?: string,\n phoneNumber?: string,\n extension?: string,\n voicemail?: string\n ) {\n super();\n this.lineId = uuid();\n this.userId = userId;\n this.clientDeviceUri = clientDeviceUri;\n this.phoneNumber = phoneNumber;\n this.extension = extension;\n this.voicemail = voicemail;\n\n this.#sdkConnector = SDKConnector;\n this.#webex = this.#sdkConnector.getWebex();\n this.#mutex = mutex;\n\n this.#primaryMobiusUris = primaryMobiusUris;\n this.#backupMobiusUris = backupMobiusUris;\n\n this.serviceData = serviceDataConfig?.indicator\n ? serviceDataConfig\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n validateServiceData(this.serviceData);\n\n this.registration = createRegistration(\n this.#webex,\n this.serviceData,\n this.#mutex,\n this.lineEmitter,\n logLevel,\n jwe\n );\n\n log.setLogger(logLevel, LINE_FILE);\n\n this.callManager = getCallManager(this.#webex, this.serviceData.indicator);\n\n this.incomingCallListener();\n }\n\n /**\n * Wrapper to for device registration.\n */\n public async register() {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.REGISTER,\n });\n await this.#mutex.runExclusive(async () => {\n this.emit(LINE_EVENTS.CONNECTING);\n\n this.registration.setMobiusServers(this.#primaryMobiusUris, this.#backupMobiusUris);\n await this.registration.triggerRegistration();\n });\n if (this.mobiusDeviceId) {\n this.callManager.updateLine(this.mobiusDeviceId, this);\n }\n }\n\n /**\n * Wrapper to for device deregister.\n */\n public async deregister() {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.DEREGISTER,\n });\n await this.registration.deregister();\n this.registration.setStatus(RegistrationStatus.IDLE);\n }\n\n /**\n * To normalize line class with Mobius response\n */\n private normalizeLine(deviceInfo: IDeviceInfo) {\n const {\n device,\n keepaliveInterval,\n callKeepaliveInterval,\n rehomingIntervalMin,\n rehomingIntervalMax,\n voicePortalNumber,\n voicePortalExtension,\n } = deviceInfo;\n\n this.mobiusDeviceId = device?.deviceId;\n this.mobiusUri = device?.uri;\n this.lastSeen = device?.lastSeen;\n this.sipAddresses = device?.addresses ?? [];\n this.keepaliveInterval = keepaliveInterval;\n this.callKeepaliveInterval = callKeepaliveInterval;\n this.rehomingIntervalMin = rehomingIntervalMin;\n this.rehomingIntervalMax = rehomingIntervalMax;\n this.voicePortalNumber = voicePortalNumber;\n this.voicePortalExtension = voicePortalExtension;\n }\n\n /**\n * Line events emitter\n */\n public lineEmitter = (event: LINE_EVENTS, deviceInfo?: IDeviceInfo, lineError?: LineError) => {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.LINE_EMITTER,\n });\n switch (event) {\n case LINE_EVENTS.REGISTERED:\n if (deviceInfo) {\n this.normalizeLine(deviceInfo);\n this.emit(event, this);\n }\n break;\n case LINE_EVENTS.UNREGISTERED:\n case LINE_EVENTS.RECONNECTED:\n case LINE_EVENTS.RECONNECTING:\n this.emit(event);\n break;\n case LINE_EVENTS.ERROR:\n if (lineError) {\n this.emit(event, lineError);\n }\n break;\n default:\n break;\n }\n };\n\n /**\n * To get the current log Level.\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To get active url of Mobius.\n */\n public getActiveMobiusUrl(): string {\n return this.registration.getActiveMobiusUrl();\n }\n\n /**\n * Gets registration status\n */\n public getStatus = (): RegistrationStatus => this.registration.getStatus();\n\n /**\n * Gets device id\n */\n public getDeviceId = (): MobiusDeviceId | undefined =>\n this.registration.getDeviceInfo().device?.deviceId;\n\n /**\n * Initiates a call to the specified destination.\n * @param dest - The call details including destination information.\n */\n public makeCall = (dest?: CallDetails): ICall | undefined => {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n let call;\n\n if (dest) {\n const match = dest.address.match(VALID_PHONE_REGEX);\n\n if (match && match[0].length === dest.address.length) {\n const sanitizedNumber = dest.address\n .replace(/[^[*+]\\d#]/gi, '')\n .replace(/\\s+/gi, '')\n .replace(/-/gi, '');\n const formattedDest = {\n type: dest.type,\n address: `tel:${sanitizedNumber}`,\n };\n\n call = this.callManager.createCall(\n CallDirection.OUTBOUND,\n this.registration.getDeviceInfo().device?.deviceId as string,\n this.lineId,\n formattedDest\n );\n log.log(`New call created, callId: ${call?.getCallId()}`, {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n } else {\n log.warn('Invalid phone number detected', {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n\n const err = new LineError(\n 'An invalid phone number was detected. Check the number and try again.',\n {},\n ERROR_TYPE.CALL_ERROR,\n RegistrationStatus.ACTIVE\n );\n\n this.emit(LINE_EVENTS.ERROR, err);\n }\n\n return call;\n }\n if (this.serviceData.indicator === ServiceIndicator.GUEST_CALLING) {\n call = this.callManager.createCall(\n CallDirection.OUTBOUND,\n this.registration.getDeviceInfo().device?.deviceId as string,\n this.lineId\n );\n log.info(`New guest call created, callId: ${call.getCallId()}`, {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n\n return call;\n }\n\n return undefined;\n };\n\n /**\n * An Incoming Call listener.\n */\n private incomingCallListener() {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.INCOMING_CALL_LISTENER,\n });\n log.info('Listening for incoming calls... ', {\n file: LINE_FILE,\n method: METHODS.INCOMING_CALL_LISTENER,\n });\n this.callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n this.emit(LINE_EVENTS.INCOMING_CALL, callObj);\n });\n }\n\n /**\n * @param callId -.\n * @param correlationId -.\n */\n public getCall = (correlationId: CorrelationId): ICall => {\n return this.callManager.getCall(correlationId);\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_uuid","require","_constants","_types","_types2","_constants2","_Logger","_interopRequireDefault","_registration","_impl","_LineError","_common","_SDKConnector","_types3","_callManager","_types4","_createSuper","t","r","_isNativeReflectConstruct","e","o","_getPrototypeOf2","default","s","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Boolean","prototype","valueOf","call","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","set","has","TypeError","_webex","_weakMap","_mutex","_sdkConnector","_primaryMobiusUris","_backupMobiusUris","Line","exports","_Eventing","_inherits2","_super","userId","clientDeviceUri","mutex","primaryMobiusUris","backupMobiusUris","logLevel","serviceDataConfig","jwe","phoneNumber","extension","voicemail","_this","_classCallCheck2","_assertThisInitialized2","writable","value","_defineProperty2","event","deviceInfo","lineError","log","info","METHOD_START_MESSAGE","file","LINE_FILE","method","METHODS","LINE_EMITTER","LINE_EVENTS","REGISTERED","normalizeLine","emit","UNREGISTERED","RECONNECTED","RECONNECTING","ERROR","registration","getStatus","_this$registration$ge","getDeviceInfo","device","deviceId","dest","MAKE_CALL","match","address","VALID_PHONE_REGEX","length","_this$registration$ge2","_call","sanitizedNumber","replace","formattedDest","type","concat","callManager","createCall","CallDirection","OUTBOUND","lineId","getCallId","warn","err","LineError","ERROR_TYPE","CALL_ERROR","RegistrationStatus","ACTIVE","serviceData","indicator","ServiceIndicator","GUEST_CALLING","_this$registration$ge3","undefined","correlationId","getCall","uuid","_classPrivateFieldSet2","SDKConnector","_classPrivateFieldGet2","getWebex","CALLING","domain","validateServiceData","createRegistration","lineEmitter","setLogger","getCallManager","incomingCallListener","_createClass2","key","_register","_asyncToGenerator2","_regenerator","mark","_callee2","_this2","wrap","_callee2$","_context2","prev","next","REGISTER","runExclusive","_callee","_callee$","_context","CONNECTING","setMobiusServers","triggerRegistration","stop","register","_deregister","_callee3","_callee3$","_context3","DEREGISTER","deregister","setStatus","IDLE","_device$addresses","keepaliveInterval","callKeepaliveInterval","rehomingIntervalMin","rehomingIntervalMax","voicePortalNumber","voicePortalExtension","mobiusDeviceId","mobiusUri","uri","lastSeen","sipAddresses","addresses","updateLine","getLoggingLevel","getLogLevel","getActiveMobiusUrl","_this3","INCOMING_CALL_LISTENER","on","LINE_EVENT_KEYS","INCOMING_CALL","callObj","Eventing"],"sources":["index.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {v4 as uuid} from 'uuid';\nimport {METHOD_START_MESSAGE} from '../../common/constants';\nimport {\n CallDetails,\n CallDirection,\n CorrelationId,\n IDeviceInfo,\n MobiusDeviceId,\n RegistrationStatus,\n ServiceData,\n ServiceIndicator,\n} from '../../common/types';\nimport {ILine, LINE_EVENTS} from './types';\nimport {LINE_FILE, METHODS, VALID_PHONE_REGEX} from '../constants';\nimport log from '../../Logger';\nimport {IRegistration} from '../registration/types';\nimport {createRegistration} from '../registration';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {CallingClientConfig} from '../types';\nimport {Eventing} from '../../Events/impl';\nimport {LineError} from '../../Errors/catalog/LineError';\nimport {LOGGER} from '../../Logger/types';\nimport {validateServiceData} from '../../common';\nimport SDKConnector from '../../SDKConnector';\nimport {LINE_EVENT_KEYS, LineEventTypes} from '../../Events/types';\nimport {ICall, ICallManager} from '../calling/types';\nimport {getCallManager} from '../calling/callManager';\nimport {ERROR_TYPE} from '../../Errors/types';\n\nexport default class Line extends Eventing<LineEventTypes> implements ILine {\n #webex: WebexSDK;\n\n #mutex: Mutex;\n\n #sdkConnector: ISDKConnector;\n\n public registration: IRegistration;\n\n public userId: string;\n\n public clientDeviceUri: string;\n\n public lineId: string;\n\n public mobiusDeviceId?: string;\n\n private mobiusUri?: string;\n\n public phoneNumber?: string;\n\n public extension?: string;\n\n public sipAddresses: string[] = [];\n\n public voicemail?: string;\n\n public lastSeen?: string;\n\n public keepaliveInterval?: number;\n\n public callKeepaliveInterval?: number;\n\n public rehomingIntervalMin?: number;\n\n public rehomingIntervalMax?: number;\n\n public voicePortalNumber?: number;\n\n public voicePortalExtension?: number;\n\n private callManager: ICallManager;\n\n private serviceData: ServiceData;\n\n #primaryMobiusUris: string[];\n\n #backupMobiusUris: string[];\n\n constructor(\n userId: string,\n clientDeviceUri: string,\n mutex: Mutex,\n primaryMobiusUris: string[],\n backupMobiusUris: string[],\n logLevel: LOGGER,\n serviceDataConfig?: CallingClientConfig['serviceData'],\n jwe?: string,\n phoneNumber?: string,\n extension?: string,\n voicemail?: string\n ) {\n super();\n this.lineId = uuid();\n this.userId = userId;\n this.clientDeviceUri = clientDeviceUri;\n this.phoneNumber = phoneNumber;\n this.extension = extension;\n this.voicemail = voicemail;\n\n this.#sdkConnector = SDKConnector;\n this.#webex = this.#sdkConnector.getWebex();\n this.#mutex = mutex;\n\n this.#primaryMobiusUris = primaryMobiusUris;\n this.#backupMobiusUris = backupMobiusUris;\n\n this.serviceData = serviceDataConfig?.indicator\n ? serviceDataConfig\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n validateServiceData(this.serviceData);\n\n this.registration = createRegistration(\n this.#webex,\n this.serviceData,\n this.#mutex,\n this.lineEmitter,\n logLevel,\n jwe\n );\n\n log.setLogger(logLevel, LINE_FILE);\n\n this.callManager = getCallManager(this.#webex, this.serviceData.indicator);\n\n this.incomingCallListener();\n }\n\n /**\n * Wrapper to for device registration.\n */\n public async register() {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.REGISTER,\n });\n await this.#mutex.runExclusive(async () => {\n this.emit(LINE_EVENTS.CONNECTING);\n\n this.registration.setMobiusServers(this.#primaryMobiusUris, this.#backupMobiusUris);\n await this.registration.triggerRegistration();\n });\n }\n\n /**\n * Wrapper to for device deregister.\n */\n public async deregister() {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.DEREGISTER,\n });\n await this.registration.deregister();\n this.registration.setStatus(RegistrationStatus.IDLE);\n }\n\n /**\n * To normalize line class with Mobius response\n */\n private normalizeLine(deviceInfo: IDeviceInfo) {\n const {\n device,\n keepaliveInterval,\n callKeepaliveInterval,\n rehomingIntervalMin,\n rehomingIntervalMax,\n voicePortalNumber,\n voicePortalExtension,\n } = deviceInfo;\n\n this.mobiusDeviceId = device?.deviceId;\n this.mobiusUri = device?.uri;\n this.lastSeen = device?.lastSeen;\n this.sipAddresses = device?.addresses ?? [];\n this.keepaliveInterval = keepaliveInterval;\n this.callKeepaliveInterval = callKeepaliveInterval;\n this.rehomingIntervalMin = rehomingIntervalMin;\n this.rehomingIntervalMax = rehomingIntervalMax;\n this.voicePortalNumber = voicePortalNumber;\n this.voicePortalExtension = voicePortalExtension;\n if (this.mobiusDeviceId) {\n this.callManager.updateLine(this.mobiusDeviceId, this);\n }\n }\n\n /**\n * Line events emitter\n */\n public lineEmitter = (event: LINE_EVENTS, deviceInfo?: IDeviceInfo, lineError?: LineError) => {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.LINE_EMITTER,\n });\n switch (event) {\n case LINE_EVENTS.REGISTERED:\n if (deviceInfo) {\n this.normalizeLine(deviceInfo);\n this.emit(event, this);\n }\n break;\n case LINE_EVENTS.UNREGISTERED:\n case LINE_EVENTS.RECONNECTED:\n case LINE_EVENTS.RECONNECTING:\n this.emit(event);\n break;\n case LINE_EVENTS.ERROR:\n if (lineError) {\n this.emit(event, lineError);\n }\n break;\n default:\n break;\n }\n };\n\n /**\n * To get the current log Level.\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To get active url of Mobius.\n */\n public getActiveMobiusUrl(): string {\n return this.registration.getActiveMobiusUrl();\n }\n\n /**\n * Gets registration status\n */\n public getStatus = (): RegistrationStatus => this.registration.getStatus();\n\n /**\n * Gets device id\n */\n public getDeviceId = (): MobiusDeviceId | undefined =>\n this.registration.getDeviceInfo().device?.deviceId;\n\n /**\n * Initiates a call to the specified destination.\n * @param dest - The call details including destination information.\n */\n public makeCall = (dest?: CallDetails): ICall | undefined => {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n let call;\n\n if (dest) {\n const match = dest.address.match(VALID_PHONE_REGEX);\n\n if (match && match[0].length === dest.address.length) {\n const sanitizedNumber = dest.address\n .replace(/[^[*+]\\d#]/gi, '')\n .replace(/\\s+/gi, '')\n .replace(/-/gi, '');\n const formattedDest = {\n type: dest.type,\n address: `tel:${sanitizedNumber}`,\n };\n\n call = this.callManager.createCall(\n CallDirection.OUTBOUND,\n this.registration.getDeviceInfo().device?.deviceId as string,\n this.lineId,\n formattedDest\n );\n log.log(`New call created, callId: ${call?.getCallId()}`, {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n } else {\n log.warn('Invalid phone number detected', {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n\n const err = new LineError(\n 'An invalid phone number was detected. Check the number and try again.',\n {},\n ERROR_TYPE.CALL_ERROR,\n RegistrationStatus.ACTIVE\n );\n\n this.emit(LINE_EVENTS.ERROR, err);\n }\n\n return call;\n }\n if (this.serviceData.indicator === ServiceIndicator.GUEST_CALLING) {\n call = this.callManager.createCall(\n CallDirection.OUTBOUND,\n this.registration.getDeviceInfo().device?.deviceId as string,\n this.lineId\n );\n log.info(`New guest call created, callId: ${call.getCallId()}`, {\n file: LINE_FILE,\n method: METHODS.MAKE_CALL,\n });\n\n return call;\n }\n\n return undefined;\n };\n\n /**\n * An Incoming Call listener.\n */\n private incomingCallListener() {\n log.info(METHOD_START_MESSAGE, {\n file: LINE_FILE,\n method: METHODS.INCOMING_CALL_LISTENER,\n });\n log.info('Listening for incoming calls... ', {\n file: LINE_FILE,\n method: METHODS.INCOMING_CALL_LISTENER,\n });\n this.callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n this.emit(LINE_EVENTS.INCOMING_CALL, callObj);\n });\n }\n\n /**\n * @param callId -.\n * @param correlationId -.\n */\n public getCall = (correlationId: CorrelationId): ICall => {\n return this.callManager.getCall(correlationId);\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAUA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAC,sBAAA,CAAAN,OAAA;AAEA,IAAAO,aAAA,GAAAP,OAAA;AAGA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAEA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,aAAA,GAAAL,sBAAA,CAAAN,OAAA;AACA,IAAAY,OAAA,GAAAZ,OAAA;AAEA,IAAAa,YAAA,GAAAb,OAAA;AACA,IAAAc,OAAA,GAAAd,OAAA;AAA8C,SAAAe,aAAAC,CAAA,QAAAC,CAAA,GAAAC,yBAAA,6BAAAC,CAAA,EAAAC,CAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,CAAA,OAAAC,CAAA,QAAAM,CAAA,OAAAF,gBAAA,CAAAC,OAAA,QAAAE,WAAA,EAAAL,CAAA,GAAAM,kBAAA,CAAAL,CAAA,EAAAM,SAAA,EAAAH,CAAA,UAAAJ,CAAA,GAAAC,CAAA,CAAAO,KAAA,OAAAD,SAAA,cAAAE,2BAAA,CAAAN,OAAA,QAAAH,CAAA;AAAA,SAAAD,0BAAA,cAAAF,CAAA,IAAAa,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAP,kBAAA,CAAAI,OAAA,iCAAAb,CAAA,aAAAE,yBAAA,YAAAA,0BAAA,aAAAF,CAAA;AAAA,SAAAiB,2BAAAd,CAAA,EAAAH,CAAA,EAAAkB,CAAA,IAAAC,0BAAA,CAAAhB,CAAA,EAAAH,CAAA,GAAAA,CAAA,CAAAoB,GAAA,CAAAjB,CAAA,EAAAe,CAAA;AAAA,SAAAC,2BAAAhB,CAAA,EAAAH,CAAA,QAAAA,CAAA,CAAAqB,GAAA,CAAAlB,CAAA,aAAAmB,SAAA;AAAA,IAAAC,MAAA,oBAAAC,QAAA,CAAAlB,OAAA;AAAA,IAAAmB,MAAA,oBAAAD,QAAA,CAAAlB,OAAA;AAAA,IAAAoB,aAAA,oBAAAF,QAAA,CAAAlB,OAAA;AAAA,IAAAqB,kBAAA,oBAAAH,QAAA,CAAAlB,OAAA;AAAA,IAAAsB,iBAAA,oBAAAJ,QAAA,CAAAlB,OAAA;AAAA,IAEzBuB,IAAI,GAAAC,OAAA,CAAAxB,OAAA,0BAAAyB,SAAA;EAAA,IAAAC,UAAA,CAAA1B,OAAA,EAAAuB,IAAA,EAAAE,SAAA;EAAA,IAAAE,MAAA,GAAAlC,YAAA,CAAA8B,IAAA;EAiDvB,SAAAA,KACEK,MAAc,EACdC,eAAuB,EACvBC,KAAY,EACZC,iBAA2B,EAC3BC,gBAA0B,EAC1BC,QAAgB,EAChBC,iBAAsD,EACtDC,GAAY,EACZC,WAAoB,EACpBC,SAAkB,EAClBC,SAAkB,EAClB;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAxC,OAAA,QAAAuB,IAAA;IACAgB,KAAA,GAAAZ,MAAA,CAAAjB,IAAA;IAAQC,0BAAA,KAAA8B,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAtB,MAAA;MAAAyB,QAAA;MAAAC,KAAA;IAAA;IAAAhC,0BAAA,KAAA8B,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAApB,MAAA;MAAAuB,QAAA;MAAAC,KAAA;IAAA;IAAAhC,0BAAA,KAAA8B,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAnB,aAAA;MAAAsB,QAAA;MAAAC,KAAA;IAAA;IAAA,IAAAC,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,mBAvCsB,EAAE;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA,IAAAK,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA;IAAA5B,0BAAA,KAAA8B,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAlB,kBAAA;MAAAqB,QAAA;MAAAC,KAAA;IAAA;IAAAhC,0BAAA,KAAA8B,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAjB,iBAAA;MAAAoB,QAAA;MAAAC,KAAA;IAAA;IAqIlC;AACF;AACA;IAFE,IAAAC,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,kBAGqB,UAACM,KAAkB,EAAEC,UAAwB,EAAEC,SAAqB,EAAK;MAC5FC,eAAG,CAACC,IAAI,CAACC,+BAAoB,EAAE;QAC7BC,IAAI,EAAEC,qBAAS;QACfC,MAAM,EAAEC,mBAAO,CAACC;MAClB,CAAC,CAAC;MACF,QAAQV,KAAK;QACX,KAAKW,mBAAW,CAACC,UAAU;UACzB,IAAIX,UAAU,EAAE;YACdP,KAAA,CAAKmB,aAAa,CAACZ,UAAU,CAAC;YAC9BP,KAAA,CAAKoB,IAAI,CAACd,KAAK,MAAAJ,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,CAAM,CAAC;UACxB;UACA;QACF,KAAKiB,mBAAW,CAACI,YAAY;QAC7B,KAAKJ,mBAAW,CAACK,WAAW;QAC5B,KAAKL,mBAAW,CAACM,YAAY;UAC3BvB,KAAA,CAAKoB,IAAI,CAACd,KAAK,CAAC;UAChB;QACF,KAAKW,mBAAW,CAACO,KAAK;UACpB,IAAIhB,SAAS,EAAE;YACbR,KAAA,CAAKoB,IAAI,CAACd,KAAK,EAAEE,SAAS,CAAC;UAC7B;UACA;QACF;UACE;MACJ;IACF,CAAC;IAgBD;AACF;AACA;IAFE,IAAAH,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,gBAGmB;MAAA,OAA0BA,KAAA,CAAKyB,YAAY,CAACC,SAAS,CAAC,CAAC;IAAA;IAE1E;AACF;AACA;IAFE,IAAArB,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,kBAGqB;MAAA,IAAA2B,qBAAA;MAAA,QAAAA,qBAAA,GACnB3B,KAAA,CAAKyB,YAAY,CAACG,aAAa,CAAC,CAAC,CAACC,MAAM,cAAAF,qBAAA,uBAAxCA,qBAAA,CAA0CG,QAAQ;IAAA;IAEpD;AACF;AACA;AACA;IAHE,IAAAzB,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,eAIkB,UAAC+B,IAAkB,EAAwB;MAC3DtB,eAAG,CAACC,IAAI,CAACC,+BAAoB,EAAE;QAC7BC,IAAI,EAAEC,qBAAS;QACfC,MAAM,EAAEC,mBAAO,CAACiB;MAClB,CAAC,CAAC;MACF,IAAI7D,IAAI;MAER,IAAI4D,IAAI,EAAE;QACR,IAAME,KAAK,GAAGF,IAAI,CAACG,OAAO,CAACD,KAAK,CAACE,6BAAiB,CAAC;QAEnD,IAAIF,KAAK,IAAIA,KAAK,CAAC,CAAC,CAAC,CAACG,MAAM,KAAKL,IAAI,CAACG,OAAO,CAACE,MAAM,EAAE;UAAA,IAAAC,sBAAA,EAAAC,KAAA;UACpD,IAAMC,eAAe,GAAGR,IAAI,CAACG,OAAO,CACjCM,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAC3BA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CACpBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;UACrB,IAAMC,aAAa,GAAG;YACpBC,IAAI,EAAEX,IAAI,CAACW,IAAI;YACfR,OAAO,SAAAS,MAAA,CAASJ,eAAe;UACjC,CAAC;UAEDpE,IAAI,GAAG6B,KAAA,CAAK4C,WAAW,CAACC,UAAU,CAChCC,oBAAa,CAACC,QAAQ,GAAAV,sBAAA,GACtBrC,KAAA,CAAKyB,YAAY,CAACG,aAAa,CAAC,CAAC,CAACC,MAAM,cAAAQ,sBAAA,uBAAxCA,sBAAA,CAA0CP,QAAQ,EAClD9B,KAAA,CAAKgD,MAAM,EACXP,aACF,CAAC;UACDhC,eAAG,CAACA,GAAG,8BAAAkC,MAAA,EAAAL,KAAA,GAA8BnE,IAAI,cAAAmE,KAAA,uBAAJA,KAAA,CAAMW,SAAS,CAAC,CAAC,GAAI;YACxDrC,IAAI,EAAEC,qBAAS;YACfC,MAAM,EAAEC,mBAAO,CAACiB;UAClB,CAAC,CAAC;QACJ,CAAC,MAAM;UACLvB,eAAG,CAACyC,IAAI,CAAC,+BAA+B,EAAE;YACxCtC,IAAI,EAAEC,qBAAS;YACfC,MAAM,EAAEC,mBAAO,CAACiB;UAClB,CAAC,CAAC;UAEF,IAAMmB,GAAG,GAAG,IAAIC,oBAAS,CACvB,uEAAuE,EACvE,CAAC,CAAC,EACFC,kBAAU,CAACC,UAAU,EACrBC,yBAAkB,CAACC,MACrB,CAAC;UAEDxD,KAAA,CAAKoB,IAAI,CAACH,mBAAW,CAACO,KAAK,EAAE2B,GAAG,CAAC;QACnC;QAEA,OAAOhF,IAAI;MACb;MACA,IAAI6B,KAAA,CAAKyD,WAAW,CAACC,SAAS,KAAKC,uBAAgB,CAACC,aAAa,EAAE;QAAA,IAAAC,sBAAA;QACjE1F,IAAI,GAAG6B,KAAA,CAAK4C,WAAW,CAACC,UAAU,CAChCC,oBAAa,CAACC,QAAQ,GAAAc,sBAAA,GACtB7D,KAAA,CAAKyB,YAAY,CAACG,aAAa,CAAC,CAAC,CAACC,MAAM,cAAAgC,sBAAA,uBAAxCA,sBAAA,CAA0C/B,QAAQ,EAClD9B,KAAA,CAAKgD,MACP,CAAC;QACDvC,eAAG,CAACC,IAAI,oCAAAiC,MAAA,CAAoCxE,IAAI,CAAC8E,SAAS,CAAC,CAAC,GAAI;UAC9DrC,IAAI,EAAEC,qBAAS;UACfC,MAAM,EAAEC,mBAAO,CAACiB;QAClB,CAAC,CAAC;QAEF,OAAO7D,IAAI;MACb;MAEA,OAAO2F,SAAS;IAClB,CAAC;IAmBD;AACF;AACA;AACA;IAHE,IAAAzD,gBAAA,CAAA5C,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,cAIiB,UAAC+D,aAA4B,EAAY;MACxD,OAAO/D,KAAA,CAAK4C,WAAW,CAACoB,OAAO,CAACD,aAAa,CAAC;IAChD,CAAC;IAhPC/D,KAAA,CAAKgD,MAAM,GAAG,IAAAiB,QAAI,EAAC,CAAC;IACpBjE,KAAA,CAAKX,MAAM,GAAGA,MAAM;IACpBW,KAAA,CAAKV,eAAe,GAAGA,eAAe;IACtCU,KAAA,CAAKH,WAAW,GAAGA,WAAW;IAC9BG,KAAA,CAAKF,SAAS,GAAGA,SAAS;IAC1BE,KAAA,CAAKD,SAAS,GAAGA,SAAS;IAE1B,IAAAmE,sBAAA,CAAAzG,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAnB,aAAA,EAAqBsF,qBAAY;IACjC,IAAAD,sBAAA,CAAAzG,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAtB,MAAA,EAAc,IAAA0F,sBAAA,CAAA3G,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAnB,aAAA,EAAmBwF,QAAQ,CAAC,CAAC;IAC3C,IAAAH,sBAAA,CAAAzG,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAApB,MAAA,EAAcW,KAAK;IAEnB,IAAA2E,sBAAA,CAAAzG,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAlB,kBAAA,EAA0BU,iBAAiB;IAC3C,IAAA0E,sBAAA,CAAAzG,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAjB,iBAAA,EAAyBU,gBAAgB;IAEzCO,KAAA,CAAKyD,WAAW,GAAG9D,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAE+D,SAAS,GAC3C/D,iBAAiB,GACjB;MAAC+D,SAAS,EAAEC,uBAAgB,CAACW,OAAO;MAAEC,MAAM,EAAE;IAAE,CAAC;IAErD,IAAAC,2BAAmB,EAACxE,KAAA,CAAKyD,WAAW,CAAC;IAErCzD,KAAA,CAAKyB,YAAY,GAAG,IAAAgD,gCAAkB,MAAAL,sBAAA,CAAA3G,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAtB,MAAA,GAEpCsB,KAAA,CAAKyD,WAAW,MAAAW,sBAAA,CAAA3G,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAApB,MAAA,GAEhBoB,KAAA,CAAK0E,WAAW,EAChBhF,QAAQ,EACRE,GACF,CAAC;IAEDa,eAAG,CAACkE,SAAS,CAACjF,QAAQ,EAAEmB,qBAAS,CAAC;IAElCb,KAAA,CAAK4C,WAAW,GAAG,IAAAgC,2BAAc,MAAAR,sBAAA,CAAA3G,OAAA,MAAAyC,uBAAA,CAAAzC,OAAA,EAAAuC,KAAA,GAAAtB,MAAA,GAAcsB,KAAA,CAAKyD,WAAW,CAACC,SAAS,CAAC;IAE1E1D,KAAA,CAAK6E,oBAAoB,CAAC,CAAC;IAAC,OAAA7E,KAAA;EAC9B;;EAEA;AACF;AACA;EAFE,IAAA8E,aAAA,CAAArH,OAAA,EAAAuB,IAAA;IAAA+F,GAAA;IAAA3E,KAAA;MAAA,IAAA4E,SAAA,OAAAC,kBAAA,CAAAxH,OAAA,eAAAyH,YAAA,CAAAzH,OAAA,CAAA0H,IAAA,CAGA,SAAAC,SAAA;QAAA,IAAAC,MAAA;QAAA,OAAAH,YAAA,CAAAzH,OAAA,CAAA6H,IAAA,UAAAC,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;YAAA;cACEjF,eAAG,CAACC,IAAI,CAACC,+BAAoB,EAAE;gBAC7BC,IAAI,EAAEC,qBAAS;gBACfC,MAAM,EAAEC,mBAAO,CAAC4E;cAClB,CAAC,CAAC;cAACH,SAAA,CAAAE,IAAA;cAAA,OACG,IAAAtB,sBAAA,CAAA3G,OAAA,MAAI,EAAAmB,MAAA,EAAQgH,YAAY,kBAAAX,kBAAA,CAAAxH,OAAA,eAAAyH,YAAA,CAAAzH,OAAA,CAAA0H,IAAA,CAAC,SAAAU,QAAA;gBAAA,OAAAX,YAAA,CAAAzH,OAAA,CAAA6H,IAAA,UAAAQ,SAAAC,QAAA;kBAAA,kBAAAA,QAAA,CAAAN,IAAA,GAAAM,QAAA,CAAAL,IAAA;oBAAA;sBAC7BL,MAAI,CAACjE,IAAI,CAACH,mBAAW,CAAC+E,UAAU,CAAC;sBAEjCX,MAAI,CAAC5D,YAAY,CAACwE,gBAAgB,KAAA7B,sBAAA,CAAA3G,OAAA,EAAC4H,MAAI,EAAAvG,kBAAA,OAAAsF,sBAAA,CAAA3G,OAAA,EAAqB4H,MAAI,EAAAtG,iBAAA,CAAkB,CAAC;sBAACgH,QAAA,CAAAL,IAAA;sBAAA,OAC9EL,MAAI,CAAC5D,YAAY,CAACyE,mBAAmB,CAAC,CAAC;oBAAA;oBAAA;sBAAA,OAAAH,QAAA,CAAAI,IAAA;kBAAA;gBAAA,GAAAN,OAAA;cAAA,CAC9C,GAAC;YAAA;YAAA;cAAA,OAAAL,SAAA,CAAAW,IAAA;UAAA;QAAA,GAAAf,QAAA;MAAA,CACH;MAAA,SAAAgB,SAAA;QAAA,OAAApB,SAAA,CAAAlH,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAuI,QAAA;IAAA;IAED;AACF;AACA;IAFE;EAAA;IAAArB,GAAA;IAAA3E,KAAA;MAAA,IAAAiG,WAAA,OAAApB,kBAAA,CAAAxH,OAAA,eAAAyH,YAAA,CAAAzH,OAAA,CAAA0H,IAAA,CAGA,SAAAmB,SAAA;QAAA,OAAApB,YAAA,CAAAzH,OAAA,CAAA6H,IAAA,UAAAiB,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAf,IAAA,GAAAe,SAAA,CAAAd,IAAA;YAAA;cACEjF,eAAG,CAACC,IAAI,CAACC,+BAAoB,EAAE;gBAC7BC,IAAI,EAAEC,qBAAS;gBACfC,MAAM,EAAEC,mBAAO,CAAC0F;cAClB,CAAC,CAAC;cAACD,SAAA,CAAAd,IAAA;cAAA,OACG,IAAI,CAACjE,YAAY,CAACiF,UAAU,CAAC,CAAC;YAAA;cACpC,IAAI,CAACjF,YAAY,CAACkF,SAAS,CAACpD,yBAAkB,CAACqD,IAAI,CAAC;YAAC;YAAA;cAAA,OAAAJ,SAAA,CAAAL,IAAA;UAAA;QAAA,GAAAG,QAAA;MAAA,CACtD;MAAA,SAAAI,WAAA;QAAA,OAAAL,WAAA,CAAAvI,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA6I,UAAA;IAAA;IAED;AACF;AACA;IAFE;EAAA;IAAA3B,GAAA;IAAA3E,KAAA,EAGA,SAAAe,cAAsBZ,UAAuB,EAAE;MAAA,IAAAsG,iBAAA;MAC7C,IACEhF,MAAM,GAOJtB,UAAU,CAPZsB,MAAM;QACNiF,iBAAiB,GAMfvG,UAAU,CANZuG,iBAAiB;QACjBC,qBAAqB,GAKnBxG,UAAU,CALZwG,qBAAqB;QACrBC,mBAAmB,GAIjBzG,UAAU,CAJZyG,mBAAmB;QACnBC,mBAAmB,GAGjB1G,UAAU,CAHZ0G,mBAAmB;QACnBC,iBAAiB,GAEf3G,UAAU,CAFZ2G,iBAAiB;QACjBC,oBAAoB,GAClB5G,UAAU,CADZ4G,oBAAoB;MAGtB,IAAI,CAACC,cAAc,GAAGvF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,QAAQ;MACtC,IAAI,CAACuF,SAAS,GAAGxF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEyF,GAAG;MAC5B,IAAI,CAACC,QAAQ,GAAG1F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE0F,QAAQ;MAChC,IAAI,CAACC,YAAY,IAAAX,iBAAA,GAAGhF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE4F,SAAS,cAAAZ,iBAAA,cAAAA,iBAAA,GAAI,EAAE;MAC3C,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;MAC1C,IAAI,CAACC,qBAAqB,GAAGA,qBAAqB;MAClD,IAAI,CAACC,mBAAmB,GAAGA,mBAAmB;MAC9C,IAAI,CAACC,mBAAmB,GAAGA,mBAAmB;MAC9C,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;MAC1C,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;MAChD,IAAI,IAAI,CAACC,cAAc,EAAE;QACvB,IAAI,CAACxE,WAAW,CAAC8E,UAAU,CAAC,IAAI,CAACN,cAAc,EAAE,IAAI,CAAC;MACxD;IACF;EAAC;IAAArC,GAAA;IAAA3E,KAAA;IAgCD;AACF;AACA;IACE,SAAAuH,gBAAA,EAAiC;MAC/B,OAAOlH,eAAG,CAACmH,WAAW,CAAC,CAAC;IAC1B;;IAEA;AACF;AACA;EAFE;IAAA7C,GAAA;IAAA3E,KAAA,EAGA,SAAAyH,mBAAA,EAAoC;MAClC,OAAO,IAAI,CAACpG,YAAY,CAACoG,kBAAkB,CAAC,CAAC;IAC/C;EAAC;IAAA9C,GAAA;IAAA3E,KAAA;IAkFD;AACF;AACA;IACE,SAAAyE,qBAAA,EAA+B;MAAA,IAAAiD,MAAA;MAC7BrH,eAAG,CAACC,IAAI,CAACC,+BAAoB,EAAE;QAC7BC,IAAI,EAAEC,qBAAS;QACfC,MAAM,EAAEC,mBAAO,CAACgH;MAClB,CAAC,CAAC;MACFtH,eAAG,CAACC,IAAI,CAAC,kCAAkC,EAAE;QAC3CE,IAAI,EAAEC,qBAAS;QACfC,MAAM,EAAEC,mBAAO,CAACgH;MAClB,CAAC,CAAC;MACF,IAAI,CAACnF,WAAW,CAACoF,EAAE,CAACC,uBAAe,CAACC,aAAa,EAAE,UAACC,OAAc,EAAK;QACrEL,MAAI,CAAC1G,IAAI,CAACH,mBAAW,CAACiH,aAAa,EAAEC,OAAO,CAAC;MAC/C,CAAC,CAAC;IACJ;EAAC;EAAA,OAAAnJ,IAAA;AAAA,EAvS+BoJ,cAAQ","ignoreList":[]}
@@ -25,10 +25,10 @@ var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
25
25
  var _constants = require("../constants");
26
26
  var _types3 = require("../../Logger/types");
27
27
  var regUtils = _interopRequireWildcard(require("../registration/register"));
28
- function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
29
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
+ function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
30
29
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
30
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
31
+ jest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);
32
32
  describe('Line Tests', function () {
33
33
  var mutex = new _asyncMutex.Mutex();
34
34
  var webex = (0, _testUtil.getTestUtilsWebex)();
@@ -75,7 +75,7 @@ describe('Line Tests', function () {
75
75
  jest.useRealTimers();
76
76
  line.removeAllListeners();
77
77
  });
78
- it('verify successful Registration cases and keepalive', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
78
+ it('verify successful Registration cases and keepalive', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
79
79
  return _regenerator.default.wrap(function _callee$(_context) {
80
80
  while (1) switch (_context.prev = _context.next) {
81
81
  case 0:
@@ -100,19 +100,20 @@ describe('Line Tests', function () {
100
100
  expect(line.getActiveMobiusUrl()).toEqual(primaryUrl);
101
101
  expect(line.getLoggingLevel()).toEqual(_types3.LOGGER.INFO);
102
102
  expect(line.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);
103
+ expect(line.callManager.lineDict[mockRegistrationBody.device.deviceId]).toEqual(line);
103
104
  webex.request.mockClear();
104
105
  jest.advanceTimersByTime(30 * 1000);
105
- _context.next = 16;
106
+ _context.next = 17;
106
107
  return _promise.default.resolve();
107
- case 16:
108
- jest.useRealTimers();
109
108
  case 17:
109
+ jest.useRealTimers();
110
+ case 18:
110
111
  case "end":
111
112
  return _context.stop();
112
113
  }
113
114
  }, _callee);
114
115
  })));
115
- it('verify successful Registration cases and keepalive for a guest user', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
116
+ it('verify successful Registration cases and keepalive for a guest user', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
116
117
  var guestLine;
117
118
  return _regenerator.default.wrap(function _callee2$(_context2) {
118
119
  while (1) switch (_context2.prev = _context2.next) {
@@ -154,7 +155,7 @@ describe('Line Tests', function () {
154
155
  }
155
156
  }, _callee2);
156
157
  })));
157
- it('verify failure Registration cases all requests fail ', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
158
+ it('verify failure Registration cases all requests fail ', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
158
159
  return _regenerator.default.wrap(function _callee3$(_context3) {
159
160
  while (1) switch (_context3.prev = _context3.next) {
160
161
  case 0:
@@ -181,7 +182,7 @@ describe('Line Tests', function () {
181
182
  }
182
183
  }, _callee3);
183
184
  })));
184
- it('verify successful de-registration cases', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
185
+ it('verify successful de-registration cases', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
185
186
  return _regenerator.default.wrap(function _callee4$(_context4) {
186
187
  while (1) switch (_context4.prev = _context4.next) {
187
188
  case 0:
@@ -1 +1 @@
1
- {"version":3,"names":["_asyncMutex","require","_testUtil","_registerFixtures","_common","_types","_types2","_","_interopRequireDefault","utils","_interopRequireWildcard","_SDKConnector","_constants","_types3","regUtils","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","describe","mutex","Mutex","webex","getTestUtilsWebex","SDKConnector","setWebex","defaultServiceData","indicator","ServiceIndicator","CALLING","domain","createRegistrationSpy","jest","spyOn","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primaryMobiusUris","fn","primary","backupMobiusUris","backup","userId","internal","device","clientDeviceUri","url","mockJwe","guestServiceData","GUEST_CALLING","guestName","handleErrorSpy","global","fetch","request","clearAllMocks","line","mockRegistrationBody","getMockDeviceInfo","discoveryBody","primaryUrl","concat","uris","registrationPayload","statusCode","body","beforeEach","Line","LOGGER","INFO","afterEach","clearAllTimers","useRealTimers","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","useFakeTimers","mockReturnValue","expect","toBeCalledOnceWith","any","anything","undefined","getStatus","toEqual","RegistrationStatus","IDLE","register","getMockRequestTemplate","serviceData","uri","method","not","toBeCalled","ACTIVE","getActiveMobiusUrl","getLoggingLevel","getDeviceId","deviceId","mockClear","advanceTimersByTime","_promise","resolve","stop","_callee2","guestLine","_callee2$","_context2","jwe","_callee3","_callee3$","_context3","LINE_EVENTS","ERROR","mockRejectedValue","on","error","message","toBe","waitForMsecs","INACTIVE","file","REGISTRATION_FILE","_callee4","_callee4$","_context4","mockReturnValueOnce","deregister","createCallSpy","callManager","makeCall","address","type","CallType","URI","CallDirection","OUTBOUND","lineId","toBeTruthy","getCall","getCorrelationId","direction","toStrictEqual","end","destination","done","toBeUndefined","assertions","toBeCalledWith","String"],"sources":["line.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {\n getMobiusDiscoveryResponse,\n getMockDeviceInfo,\n getMockRequestTemplate,\n getTestUtilsWebex,\n} from '../../common/testUtil';\nimport {URL} from '../registration/registerFixtures';\nimport {filterMobiusUris} from '../../common';\nimport {\n CallDirection,\n CallType,\n MobiusServers,\n RegistrationStatus,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {LINE_EVENTS} from './types';\nimport Line from '.';\nimport * as utils from '../../common/Utils';\nimport SDKConnector from '../../SDKConnector';\nimport {REGISTRATION_FILE} from '../constants';\nimport {LOGGER} from '../../Logger/types';\nimport * as regUtils from '../registration/register';\n\ndescribe('Line Tests', () => {\n const mutex = new Mutex();\n const webex = getTestUtilsWebex();\n SDKConnector.setWebex(webex);\n\n const defaultServiceData = {indicator: ServiceIndicator.CALLING, domain: ''};\n const createRegistrationSpy = jest.spyOn(regUtils, 'createRegistration');\n\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mockJwe = 'mockJwe';\n const guestServiceData = {\n indicator: ServiceIndicator.GUEST_CALLING,\n domain: '',\n guestName: 'testUser',\n };\n\n const handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');\n // Simulate node fetch by adding the mock webex.request\n global.fetch = webex.request;\n\n jest.clearAllMocks();\n\n describe('Line Registration tests', () => {\n let line;\n const mockRegistrationBody = getMockDeviceInfo();\n\n const discoveryBody: MobiusServers = getMobiusDiscoveryResponse();\n const primaryUrl = `${discoveryBody.primary.uris[0]}/calling/web/`;\n\n const registrationPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockRegistrationBody,\n });\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n\n it('verify successful Registration cases and keepalive', async () => {\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n defaultServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n undefined\n );\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: defaultServiceData,\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(line.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(line.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(line.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify successful Registration cases and keepalive for a guest user', async () => {\n createRegistrationSpy.mockClear();\n const guestLine = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n guestServiceData,\n mockJwe\n );\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n guestServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n mockJwe\n );\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.IDLE);\n await guestLine.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: {...guestServiceData, jwe: mockJwe},\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(guestLine.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(guestLine.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(guestLine.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify failure Registration cases all requests fail ', async () => {\n line.removeAllListeners(LINE_EVENTS.ERROR);\n\n webex.request.mockRejectedValue({\n statusCode: 401,\n });\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'User is unauthorized due to an expired token. Sign out, then sign back in.'\n );\n });\n\n expect(line.getStatus()).toBe(RegistrationStatus.IDLE);\n line.register();\n await utils.waitForMsecs(20);\n\n expect(line.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(handleErrorSpy).toBeCalledOnceWith(\n expect.anything(),\n expect.anything(),\n {\n file: REGISTRATION_FILE,\n method: 'triggerRegistration',\n },\n expect.anything(),\n expect.anything()\n );\n });\n\n it('verify successful de-registration cases', async () => {\n webex.request.mockReturnValueOnce(registrationPayload);\n\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n await line.deregister();\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n });\n });\n\n describe('Line calling tests', () => {\n let line;\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n it('Return a successful call object while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '5003', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:5003',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(line.getCall(call ? call.getCorrelationId() : '')).toBe(call);\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Return a successful call object while making call to FAC codes', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '*25', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:*25',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Remove spaces from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '+91 123 456 7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:+911234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:+911234567890');\n call?.end();\n });\n\n it('Remove hyphen from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '123-456-7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:1234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:1234567890');\n call?.end();\n });\n\n it('attempt to create call with incorrect number format 1', (done) => {\n // There may be other listeners , which may create race\n line.removeAllListeners(LINE_EVENTS.ERROR);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n try {\n const call = line.makeCall({address: 'select#$@^^', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with incorrect number format 2', (done) => {\n expect.assertions(4);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n\n try {\n const call = line.makeCall({address: '+1@8883332505', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with guest calling service indicator', () => {\n expect.assertions(2);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n // Mocking the serviceData to have GUEST_CALLING indicator\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n {indicator: ServiceIndicator.GUEST_CALLING}\n );\n const call = line.makeCall();\n\n expect(call).toBeTruthy();\n expect(createCallSpy).toBeCalledWith(CallDirection.OUTBOUND, undefined, expect.any(String));\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_asyncMutex","require","_testUtil","_registerFixtures","_common","_types","_types2","_","_interopRequireDefault","utils","_interopRequireWildcard","_SDKConnector","_constants","_types3","regUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","spyOn","mockResolvedValue","undefined","describe","mutex","Mutex","webex","getTestUtilsWebex","SDKConnector","setWebex","defaultServiceData","indicator","ServiceIndicator","CALLING","domain","createRegistrationSpy","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primaryMobiusUris","fn","primary","backupMobiusUris","backup","userId","internal","device","clientDeviceUri","url","mockJwe","guestServiceData","GUEST_CALLING","guestName","handleErrorSpy","global","fetch","request","clearAllMocks","line","mockRegistrationBody","getMockDeviceInfo","discoveryBody","primaryUrl","concat","uris","registrationPayload","statusCode","body","beforeEach","Line","LOGGER","INFO","afterEach","clearAllTimers","useRealTimers","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","useFakeTimers","mockReturnValue","expect","toBeCalledOnceWith","any","anything","getStatus","toEqual","RegistrationStatus","IDLE","register","getMockRequestTemplate","serviceData","uri","method","not","toBeCalled","ACTIVE","getActiveMobiusUrl","getLoggingLevel","getDeviceId","deviceId","callManager","lineDict","mockClear","advanceTimersByTime","_promise","resolve","stop","_callee2","guestLine","_callee2$","_context2","jwe","_callee3","_callee3$","_context3","LINE_EVENTS","ERROR","mockRejectedValue","on","error","message","toBe","waitForMsecs","INACTIVE","file","REGISTRATION_FILE","_callee4","_callee4$","_context4","mockReturnValueOnce","deregister","createCallSpy","makeCall","address","type","CallType","URI","CallDirection","OUTBOUND","lineId","toBeTruthy","getCall","getCorrelationId","direction","toStrictEqual","end","destination","done","toBeUndefined","assertions","toBeCalledWith","String"],"sources":["line.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {\n getMobiusDiscoveryResponse,\n getMockDeviceInfo,\n getMockRequestTemplate,\n getTestUtilsWebex,\n} from '../../common/testUtil';\nimport {URL} from '../registration/registerFixtures';\nimport {filterMobiusUris} from '../../common';\nimport {\n CallDirection,\n CallType,\n MobiusServers,\n RegistrationStatus,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {LINE_EVENTS} from './types';\nimport Line from '.';\nimport * as utils from '../../common/Utils';\nimport SDKConnector from '../../SDKConnector';\nimport {REGISTRATION_FILE} from '../constants';\nimport {LOGGER} from '../../Logger/types';\nimport * as regUtils from '../registration/register';\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Line Tests', () => {\n const mutex = new Mutex();\n const webex = getTestUtilsWebex();\n SDKConnector.setWebex(webex);\n\n const defaultServiceData = {indicator: ServiceIndicator.CALLING, domain: ''};\n const createRegistrationSpy = jest.spyOn(regUtils, 'createRegistration');\n\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mockJwe = 'mockJwe';\n const guestServiceData = {\n indicator: ServiceIndicator.GUEST_CALLING,\n domain: '',\n guestName: 'testUser',\n };\n\n const handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');\n // Simulate node fetch by adding the mock webex.request\n global.fetch = webex.request;\n\n jest.clearAllMocks();\n\n describe('Line Registration tests', () => {\n let line;\n const mockRegistrationBody = getMockDeviceInfo();\n\n const discoveryBody: MobiusServers = getMobiusDiscoveryResponse();\n const primaryUrl = `${discoveryBody.primary.uris[0]}/calling/web/`;\n\n const registrationPayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: mockRegistrationBody,\n });\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n\n it('verify successful Registration cases and keepalive', async () => {\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n defaultServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n undefined\n );\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: defaultServiceData,\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(line.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(line.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(line.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n expect(line.callManager.lineDict[mockRegistrationBody.device.deviceId]).toEqual(line);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify successful Registration cases and keepalive for a guest user', async () => {\n createRegistrationSpy.mockClear();\n const guestLine = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n guestServiceData,\n mockJwe\n );\n jest.useFakeTimers();\n webex.request.mockReturnValue(registrationPayload);\n\n expect(createRegistrationSpy).toBeCalledOnceWith(\n webex,\n guestServiceData,\n expect.any(Mutex),\n expect.anything(),\n LOGGER.INFO,\n mockJwe\n );\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.IDLE);\n await guestLine.register();\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n body: {\n userId,\n clientDeviceUri,\n serviceData: {...guestServiceData, jwe: mockJwe},\n },\n uri: `${primaryUrl}device`,\n method: 'POST',\n });\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(guestLine.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n expect(guestLine.getActiveMobiusUrl()).toEqual(primaryUrl);\n expect(guestLine.getLoggingLevel()).toEqual(LOGGER.INFO);\n expect(guestLine.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);\n\n webex.request.mockClear();\n\n jest.advanceTimersByTime(30 * 1000);\n await Promise.resolve();\n\n jest.useRealTimers();\n });\n\n it('verify failure Registration cases all requests fail ', async () => {\n line.removeAllListeners(LINE_EVENTS.ERROR);\n\n webex.request.mockRejectedValue({\n statusCode: 401,\n });\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'User is unauthorized due to an expired token. Sign out, then sign back in.'\n );\n });\n\n expect(line.getStatus()).toBe(RegistrationStatus.IDLE);\n line.register();\n await utils.waitForMsecs(20);\n\n expect(line.getStatus()).toBe(RegistrationStatus.INACTIVE);\n expect(handleErrorSpy).toBeCalledOnceWith(\n expect.anything(),\n expect.anything(),\n {\n file: REGISTRATION_FILE,\n method: 'triggerRegistration',\n },\n expect.anything(),\n expect.anything()\n );\n });\n\n it('verify successful de-registration cases', async () => {\n webex.request.mockReturnValueOnce(registrationPayload);\n\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n await line.register();\n expect(line.getStatus()).toEqual(RegistrationStatus.ACTIVE);\n\n await line.deregister();\n expect(line.getStatus()).toEqual(RegistrationStatus.IDLE);\n });\n });\n\n describe('Line calling tests', () => {\n let line;\n\n beforeEach(() => {\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n jest.useRealTimers();\n line.removeAllListeners();\n });\n it('Return a successful call object while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '5003', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:5003',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(line.getCall(call ? call.getCorrelationId() : '')).toBe(call);\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Return a successful call object while making call to FAC codes', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '*25', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:*25',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n call?.end();\n });\n\n it('Remove spaces from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '+91 123 456 7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:+911234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:+911234567890');\n call?.end();\n });\n\n it('Remove hyphen from dialled number while making call', () => {\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n const call = line.makeCall({address: '123-456-7890', type: CallType.URI});\n\n expect(createCallSpy).toBeCalledOnceWith(CallDirection.OUTBOUND, undefined, line.lineId, {\n address: 'tel:1234567890',\n type: 'uri',\n });\n expect(call).toBeTruthy();\n expect(call ? call.direction : undefined).toStrictEqual(CallDirection.OUTBOUND);\n expect(call ? call.destination.address : undefined).toStrictEqual('tel:1234567890');\n call?.end();\n });\n\n it('attempt to create call with incorrect number format 1', (done) => {\n // There may be other listeners , which may create race\n line.removeAllListeners(LINE_EVENTS.ERROR);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n try {\n const call = line.makeCall({address: 'select#$@^^', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with incorrect number format 2', (done) => {\n expect.assertions(4);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n line.on(LINE_EVENTS.ERROR, (error) => {\n expect(error.message).toBe(\n 'An invalid phone number was detected. Check the number and try again.'\n );\n done();\n });\n\n try {\n const call = line.makeCall({address: '+1@8883332505', type: CallType.URI});\n\n expect(call).toBeUndefined();\n expect(createCallSpy).not.toBeCalledOnceWith({});\n } catch (error) {\n done(error);\n }\n });\n\n it('attempt to create call with guest calling service indicator', () => {\n expect.assertions(2);\n const createCallSpy = jest.spyOn(line.callManager, 'createCall');\n\n // Mocking the serviceData to have GUEST_CALLING indicator\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO,\n {indicator: ServiceIndicator.GUEST_CALLING}\n );\n const call = line.makeCall();\n\n expect(call).toBeTruthy();\n expect(createCallSpy).toBeCalledWith(CallDirection.OUTBOUND, undefined, expect.any(String));\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["LINE_EVENTS","exports"],"sources":["types.ts"],"sourcesContent":["import {LineEventTypes} from '../../Events/types';\nimport {Eventing} from '../../Events/impl';\nimport {IRegistration} from '../registration/types';\nimport {LineError} from '../../Errors/catalog/LineError';\nimport {\n CallDetails,\n CorrelationId,\n IDeviceInfo,\n MobiusDeviceId,\n RegistrationStatus,\n} from '../../common/types';\nimport {ICall} from '../calling/types';\n\nexport enum LINE_EVENTS {\n CONNECTING = 'connecting',\n ERROR = 'error',\n RECONNECTED = 'reconnected',\n RECONNECTING = 'reconnecting',\n REGISTERED = 'registered',\n UNREGISTERED = 'unregistered',\n INCOMING_CALL = 'line:incoming_call',\n}\n\n/**\n * Represents an interface for managing a telephony line.\n */\nexport interface ILine extends Eventing<LineEventTypes> {\n /**\n * The unique identifier of the user associated with the line.\n */\n userId: string;\n\n /**\n * The URI of the client device associated with the line.\n */\n clientDeviceUri: string;\n\n /**\n * The unique identifier of the line.\n */\n lineId: string;\n\n /**\n * The optional Mobius device identifier associated with the line.\n */\n mobiusDeviceId?: string;\n\n /**\n * The phone number associated with the line.\n */\n phoneNumber?: string;\n\n /**\n * The extension number associated with the line.\n */\n extension?: string;\n\n /**\n * An array of SIP addresses associated with the line.\n */\n sipAddresses?: string[];\n\n /**\n * The voicemail number associated with the line.\n */\n voicemail?: string;\n\n /**\n * The timestamp when the line was last seen.\n */\n lastSeen?: string;\n\n /**\n * The interval for sending keep-alive messages for the line.\n */\n keepaliveInterval?: number;\n\n /**\n * The interval for sending call keep-alive messages for the line.\n */\n callKeepaliveInterval?: number;\n\n /**\n * The minimum rehoming interval for the line.\n */\n rehomingIntervalMin?: number;\n\n /**\n * The maximum rehoming interval for the line.\n */\n rehomingIntervalMax?: number;\n\n /**\n * The voice portal number associated with the line.\n */\n voicePortalNumber?: number;\n\n /**\n * The voice portal extension associated with the line.\n */\n voicePortalExtension?: number;\n\n /**\n * The registration information for the line as {@link IRegistration}.\n */\n registration: IRegistration;\n\n /**\n * Registers the line.\n */\n register(): void;\n\n /**\n * Deregisters the line.\n */\n deregister(): void;\n\n /**\n * Retrieves the active Mobius server URL associated with the line.\n *\n */\n getActiveMobiusUrl(): string;\n\n /**\n * Retrieves the registration status of the line as {@link MobiusStatus}.\n *\n */\n getStatus(): RegistrationStatus;\n\n /**\n * Retrieves the device identifier associated with the line as {@link MobiusDeviceId},\n * or `undefined` if no device is associated.\n *\n */\n getDeviceId(): MobiusDeviceId | undefined;\n\n /**\n * Emits line-related events.\n *\n * @param event - The line event to emit.\n * @param deviceInfo - Additional device information (optional).\n * @param lineError - Information about line-related errors (optional).\n *\n * @example\n * ```typescript\n * line.lineEmitter(LINE_EVENTS.UNREGISTERED);\n * ```\n * @ignore\n */\n lineEmitter: (event: LINE_EVENTS, deviceInfo?: IDeviceInfo, lineError?: LineError) => void;\n\n /**\n * Initiates a call to the specified destination.\n *\n * @param dest - The call details including destination information.\n *\n * @example\n * ```typescript\n * const callDetails : CallDetails = {type: 'uri', address: 'example@webex.com'};\n * const callObj: ICall = line.makeCall(callDetails);\n * ```\n */\n makeCall(dest?: CallDetails): ICall | undefined;\n\n /**\n * Retrieves a call object based on the provided correlation identifier.\n *\n * @param correlationId - The correlation identifier of the call.\n * @example\n * ```typescript\n * const callObj: ICall = line.getCall(correlationId);\n * ```\n */\n getCall(correlationId: CorrelationId): ICall;\n}\n\nexport type LineEmitterCallback = (\n event: LINE_EVENTS,\n deviceInfo?: IDeviceInfo,\n clientError?: LineError\n) => void;\n\nexport type LineErrorEmitterCallback = (err: LineError, finalError?: boolean) => void;\n"],"mappings":";;;;;;;IAaYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAUvB;AACA;AACA"}
1
+ {"version":3,"names":["LINE_EVENTS","exports"],"sources":["types.ts"],"sourcesContent":["import {LineEventTypes} from '../../Events/types';\nimport {Eventing} from '../../Events/impl';\nimport {IRegistration} from '../registration/types';\nimport {LineError} from '../../Errors/catalog/LineError';\nimport {\n CallDetails,\n CorrelationId,\n IDeviceInfo,\n MobiusDeviceId,\n RegistrationStatus,\n} from '../../common/types';\nimport {ICall} from '../calling/types';\n\nexport enum LINE_EVENTS {\n CONNECTING = 'connecting',\n ERROR = 'error',\n RECONNECTED = 'reconnected',\n RECONNECTING = 'reconnecting',\n REGISTERED = 'registered',\n UNREGISTERED = 'unregistered',\n INCOMING_CALL = 'line:incoming_call',\n}\n\n/**\n * Represents an interface for managing a telephony line.\n */\nexport interface ILine extends Eventing<LineEventTypes> {\n /**\n * The unique identifier of the user associated with the line.\n */\n userId: string;\n\n /**\n * The URI of the client device associated with the line.\n */\n clientDeviceUri: string;\n\n /**\n * The unique identifier of the line.\n */\n lineId: string;\n\n /**\n * The optional Mobius device identifier associated with the line.\n */\n mobiusDeviceId?: string;\n\n /**\n * The phone number associated with the line.\n */\n phoneNumber?: string;\n\n /**\n * The extension number associated with the line.\n */\n extension?: string;\n\n /**\n * An array of SIP addresses associated with the line.\n */\n sipAddresses?: string[];\n\n /**\n * The voicemail number associated with the line.\n */\n voicemail?: string;\n\n /**\n * The timestamp when the line was last seen.\n */\n lastSeen?: string;\n\n /**\n * The interval for sending keep-alive messages for the line.\n */\n keepaliveInterval?: number;\n\n /**\n * The interval for sending call keep-alive messages for the line.\n */\n callKeepaliveInterval?: number;\n\n /**\n * The minimum rehoming interval for the line.\n */\n rehomingIntervalMin?: number;\n\n /**\n * The maximum rehoming interval for the line.\n */\n rehomingIntervalMax?: number;\n\n /**\n * The voice portal number associated with the line.\n */\n voicePortalNumber?: number;\n\n /**\n * The voice portal extension associated with the line.\n */\n voicePortalExtension?: number;\n\n /**\n * The registration information for the line as {@link IRegistration}.\n */\n registration: IRegistration;\n\n /**\n * Registers the line.\n */\n register(): void;\n\n /**\n * Deregisters the line.\n */\n deregister(): void;\n\n /**\n * Retrieves the active Mobius server URL associated with the line.\n *\n */\n getActiveMobiusUrl(): string;\n\n /**\n * Retrieves the registration status of the line as {@link MobiusStatus}.\n *\n */\n getStatus(): RegistrationStatus;\n\n /**\n * Retrieves the device identifier associated with the line as {@link MobiusDeviceId},\n * or `undefined` if no device is associated.\n *\n */\n getDeviceId(): MobiusDeviceId | undefined;\n\n /**\n * Emits line-related events.\n *\n * @param event - The line event to emit.\n * @param deviceInfo - Additional device information (optional).\n * @param lineError - Information about line-related errors (optional).\n *\n * @example\n * ```typescript\n * line.lineEmitter(LINE_EVENTS.UNREGISTERED);\n * ```\n * @ignore\n */\n lineEmitter: (event: LINE_EVENTS, deviceInfo?: IDeviceInfo, lineError?: LineError) => void;\n\n /**\n * Initiates a call to the specified destination.\n *\n * @param dest - The call details including destination information.\n *\n * @example\n * ```typescript\n * const callDetails : CallDetails = {type: 'uri', address: 'example@webex.com'};\n * const callObj: ICall = line.makeCall(callDetails);\n * ```\n */\n makeCall(dest?: CallDetails): ICall | undefined;\n\n /**\n * Retrieves a call object based on the provided correlation identifier.\n *\n * @param correlationId - The correlation identifier of the call.\n * @example\n * ```typescript\n * const callObj: ICall = line.getCall(correlationId);\n * ```\n */\n getCall(correlationId: CorrelationId): ICall;\n}\n\nexport type LineEmitterCallback = (\n event: LINE_EVENTS,\n deviceInfo?: IDeviceInfo,\n clientError?: LineError\n) => void;\n\nexport type LineErrorEmitterCallback = (err: LineError, finalError?: boolean) => void;\n"],"mappings":";;;;;;;IAaYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAUvB;AACA;AACA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_register","require","_Object$keys","forEach","key","exports","_Object$defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from './register';\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,YAAA,CAAAF,SAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,SAAA,CAAAI,GAAA;EAAAE,sBAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAR,SAAA,CAAAI,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":["_register","require","_Object$keys","forEach","key","exports","_Object$defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from './register';\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,YAAA,CAAAF,SAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,SAAA,CAAAI,GAAA;EAAAE,sBAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAR,SAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}