@webex/calling 3.11.0 → 3.12.0-llmrefactor.2

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 (372) hide show
  1. package/dist/CallHistory/CallHistory.js +596 -0
  2. package/dist/CallHistory/CallHistory.js.map +1 -0
  3. package/dist/CallHistory/CallHistory.test.js +916 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -0
  5. package/dist/CallHistory/callHistoryFixtures.js +650 -0
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
  7. package/dist/CallHistory/constants.js +38 -0
  8. package/dist/CallHistory/constants.js.map +1 -0
  9. package/dist/CallHistory/types.js +7 -0
  10. package/dist/CallHistory/types.js.map +1 -0
  11. package/dist/CallRecording/CallRecording.js +160 -0
  12. package/dist/CallRecording/CallRecording.js.map +1 -0
  13. package/dist/CallRecording/CallRecording.test.js +257 -0
  14. package/dist/CallRecording/CallRecording.test.js.map +1 -0
  15. package/dist/CallRecording/WxcCallRecordingConnector.js +577 -0
  16. package/dist/CallRecording/WxcCallRecordingConnector.js.map +1 -0
  17. package/dist/CallRecording/WxcCallRecordingConnector.test.js +652 -0
  18. package/dist/CallRecording/WxcCallRecordingConnector.test.js.map +1 -0
  19. package/dist/CallRecording/callRecordingFixtures.js +235 -0
  20. package/dist/CallRecording/callRecordingFixtures.js.map +1 -0
  21. package/dist/CallRecording/constants.js +50 -0
  22. package/dist/CallRecording/constants.js.map +1 -0
  23. package/dist/CallRecording/types.js +137 -0
  24. package/dist/CallRecording/types.js.map +1 -0
  25. package/dist/CallRecording/utils.js +42 -0
  26. package/dist/CallRecording/utils.js.map +1 -0
  27. package/dist/CallRecording/utils.test.js +97 -0
  28. package/dist/CallRecording/utils.test.js.map +1 -0
  29. package/dist/CallSettings/CallSettings.js +311 -0
  30. package/dist/CallSettings/CallSettings.js.map +1 -0
  31. package/dist/CallSettings/CallSettings.test.js +122 -0
  32. package/dist/CallSettings/CallSettings.test.js.map +1 -0
  33. package/dist/CallSettings/UcmBackendConnector.js +308 -0
  34. package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
  35. package/dist/CallSettings/UcmBackendConnector.test.js +411 -0
  36. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
  37. package/dist/CallSettings/WxCallBackendConnector.js +597 -0
  38. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
  39. package/dist/CallSettings/WxCallBackendConnector.test.js +904 -0
  40. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
  41. package/dist/CallSettings/constants.js +31 -0
  42. package/dist/CallSettings/constants.js.map +1 -0
  43. package/dist/CallSettings/testFixtures.js +68 -0
  44. package/dist/CallSettings/testFixtures.js.map +1 -0
  45. package/dist/CallSettings/types.js +7 -0
  46. package/dist/CallSettings/types.js.map +1 -0
  47. package/dist/CallingClient/CallingClient.js +1349 -0
  48. package/dist/CallingClient/CallingClient.js.map +1 -0
  49. package/dist/CallingClient/CallingClient.test.js +1625 -0
  50. package/dist/CallingClient/CallingClient.test.js.map +1 -0
  51. package/dist/CallingClient/callRecordFixtures.js +101 -0
  52. package/dist/CallingClient/callRecordFixtures.js.map +1 -0
  53. package/dist/CallingClient/calling/CallerId/index.js +275 -0
  54. package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
  55. package/dist/CallingClient/calling/CallerId/index.test.js +275 -0
  56. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
  57. package/dist/CallingClient/calling/CallerId/types.js +7 -0
  58. package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
  59. package/dist/CallingClient/calling/call.js +3666 -0
  60. package/dist/CallingClient/calling/call.js.map +1 -0
  61. package/dist/CallingClient/calling/call.test.js +3970 -0
  62. package/dist/CallingClient/calling/call.test.js.map +1 -0
  63. package/dist/CallingClient/calling/callManager.js +531 -0
  64. package/dist/CallingClient/calling/callManager.js.map +1 -0
  65. package/dist/CallingClient/calling/callManager.test.js +881 -0
  66. package/dist/CallingClient/calling/callManager.test.js.map +1 -0
  67. package/dist/CallingClient/calling/index.js +30 -0
  68. package/dist/CallingClient/calling/index.js.map +1 -0
  69. package/dist/CallingClient/calling/types.js +79 -0
  70. package/dist/CallingClient/calling/types.js.map +1 -0
  71. package/dist/CallingClient/callingClientFixtures.js +143 -0
  72. package/dist/CallingClient/callingClientFixtures.js.map +1 -0
  73. package/dist/CallingClient/constants.js +272 -0
  74. package/dist/CallingClient/constants.js.map +1 -0
  75. package/dist/CallingClient/line/index.js +339 -0
  76. package/dist/CallingClient/line/index.js.map +1 -0
  77. package/dist/CallingClient/line/line.test.js +379 -0
  78. package/dist/CallingClient/line/line.test.js.map +1 -0
  79. package/dist/CallingClient/line/types.js +21 -0
  80. package/dist/CallingClient/line/types.js.map +1 -0
  81. package/dist/CallingClient/registration/index.js +19 -0
  82. package/dist/CallingClient/registration/index.js.map +1 -0
  83. package/dist/CallingClient/registration/register.js +2079 -0
  84. package/dist/CallingClient/registration/register.js.map +1 -0
  85. package/dist/CallingClient/registration/register.test.js +2476 -0
  86. package/dist/CallingClient/registration/register.test.js.map +1 -0
  87. package/dist/CallingClient/registration/registerFixtures.js +36 -0
  88. package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
  89. package/dist/CallingClient/registration/types.js +33 -0
  90. package/dist/CallingClient/registration/types.js.map +1 -0
  91. package/dist/CallingClient/registration/webWorker.js +67 -0
  92. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  93. package/dist/CallingClient/registration/webWorker.test.js +189 -0
  94. package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
  95. package/dist/CallingClient/registration/webWorkerStr.js +15 -0
  96. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
  97. package/dist/CallingClient/types.js +14 -0
  98. package/dist/CallingClient/types.js.map +1 -0
  99. package/dist/CallingClient/utils/constants.js +58 -0
  100. package/dist/CallingClient/utils/constants.js.map +1 -0
  101. package/dist/CallingClient/utils/index.js +63 -0
  102. package/dist/CallingClient/utils/index.js.map +1 -0
  103. package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
  104. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  105. package/dist/CallingClient/utils/mobiusSocketMapper.test.js +221 -0
  106. package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
  107. package/dist/CallingClient/utils/request.js +435 -0
  108. package/dist/CallingClient/utils/request.js.map +1 -0
  109. package/dist/CallingClient/utils/request.test.js +999 -0
  110. package/dist/CallingClient/utils/request.test.js.map +1 -0
  111. package/dist/CallingClient/utils/types.js +7 -0
  112. package/dist/CallingClient/utils/types.js.map +1 -0
  113. package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
  114. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  115. package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
  116. package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
  117. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
  118. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
  119. package/dist/Contacts/ContactsClient.js +1208 -0
  120. package/dist/Contacts/ContactsClient.js.map +1 -0
  121. package/dist/Contacts/ContactsClient.test.js +999 -0
  122. package/dist/Contacts/ContactsClient.test.js.map +1 -0
  123. package/dist/Contacts/constants.js +40 -0
  124. package/dist/Contacts/constants.js.map +1 -0
  125. package/dist/Contacts/contactFixtures.js +430 -0
  126. package/dist/Contacts/contactFixtures.js.map +1 -0
  127. package/dist/Contacts/types.js +43 -0
  128. package/dist/Contacts/types.js.map +1 -0
  129. package/dist/Errors/catalog/CallError.js +89 -0
  130. package/dist/Errors/catalog/CallError.js.map +1 -0
  131. package/dist/Errors/catalog/CallingDeviceError.js +83 -0
  132. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
  133. package/dist/Errors/catalog/ExtendedError.js +42 -0
  134. package/dist/Errors/catalog/ExtendedError.js.map +1 -0
  135. package/dist/Errors/catalog/LineError.js +85 -0
  136. package/dist/Errors/catalog/LineError.js.map +1 -0
  137. package/dist/Errors/index.js +28 -0
  138. package/dist/Errors/index.js.map +1 -0
  139. package/dist/Errors/types.js +61 -0
  140. package/dist/Errors/types.js.map +1 -0
  141. package/dist/Events/impl/index.js +79 -0
  142. package/dist/Events/impl/index.js.map +1 -0
  143. package/dist/Events/types.js +134 -0
  144. package/dist/Events/types.js.map +1 -0
  145. package/dist/Logger/index.js +228 -0
  146. package/dist/Logger/index.js.map +1 -0
  147. package/dist/Logger/index.test.js +87 -0
  148. package/dist/Logger/index.test.js.map +1 -0
  149. package/dist/Logger/types.js +34 -0
  150. package/dist/Logger/types.js.map +1 -0
  151. package/dist/Metrics/index.js +595 -0
  152. package/dist/Metrics/index.js.map +1 -0
  153. package/dist/Metrics/index.test.js +819 -0
  154. package/dist/Metrics/index.test.js.map +1 -0
  155. package/dist/Metrics/types.js +82 -0
  156. package/dist/Metrics/types.js.map +1 -0
  157. package/dist/SDKConnector/index.js +102 -0
  158. package/dist/SDKConnector/index.js.map +1 -0
  159. package/dist/SDKConnector/index.test.js +9 -0
  160. package/dist/SDKConnector/index.test.js.map +1 -0
  161. package/dist/SDKConnector/types.js +7 -0
  162. package/dist/SDKConnector/types.js.map +1 -0
  163. package/dist/SDKConnector/utils.js +39 -0
  164. package/dist/SDKConnector/utils.js.map +1 -0
  165. package/dist/SDKConnector/utils.test.js +9 -0
  166. package/dist/SDKConnector/utils.test.js.map +1 -0
  167. package/dist/Voicemail/BroadworksBackendConnector.js +699 -0
  168. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
  169. package/dist/Voicemail/BroadworksBackendConnector.test.js +820 -0
  170. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
  171. package/dist/Voicemail/UcmBackendConnector.js +628 -0
  172. package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
  173. package/dist/Voicemail/UcmBackendConnector.test.js +738 -0
  174. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
  175. package/dist/Voicemail/Voicemail.js +472 -0
  176. package/dist/Voicemail/Voicemail.js.map +1 -0
  177. package/dist/Voicemail/Voicemail.test.js +391 -0
  178. package/dist/Voicemail/Voicemail.test.js.map +1 -0
  179. package/dist/Voicemail/WxCallBackendConnector.js +657 -0
  180. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
  181. package/dist/Voicemail/WxCallBackendConnector.test.js +1225 -0
  182. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
  183. package/dist/Voicemail/constants.js +61 -0
  184. package/dist/Voicemail/constants.js.map +1 -0
  185. package/dist/Voicemail/types.js +7 -0
  186. package/dist/Voicemail/types.js.map +1 -0
  187. package/dist/Voicemail/voicemailFixture.js +524 -0
  188. package/dist/Voicemail/voicemailFixture.js.map +1 -0
  189. package/dist/api.js +213 -0
  190. package/dist/api.js.map +1 -0
  191. package/dist/common/Utils.js +1624 -0
  192. package/dist/common/Utils.js.map +1 -0
  193. package/dist/common/Utils.test.js +2225 -0
  194. package/dist/common/Utils.test.js.map +1 -0
  195. package/dist/common/constants.js +62 -0
  196. package/dist/common/constants.js.map +1 -0
  197. package/dist/common/index.js +19 -0
  198. package/dist/common/index.js.map +1 -0
  199. package/dist/common/testUtil.js +988 -0
  200. package/dist/common/testUtil.js.map +1 -0
  201. package/dist/common/types.js +78 -0
  202. package/dist/common/types.js.map +1 -0
  203. package/dist/index.js +452 -0
  204. package/dist/index.js.map +1 -0
  205. package/dist/mobius-socket/config.js +24 -0
  206. package/dist/mobius-socket/config.js.map +1 -0
  207. package/dist/mobius-socket/errors.js +143 -0
  208. package/dist/mobius-socket/errors.js.map +1 -0
  209. package/dist/mobius-socket/errors.test.js +20 -0
  210. package/dist/mobius-socket/errors.test.js.map +1 -0
  211. package/dist/mobius-socket/index.js +57 -0
  212. package/dist/mobius-socket/index.js.map +1 -0
  213. package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
  214. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  215. package/dist/mobius-socket/mobius-socket.js +849 -0
  216. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  217. package/dist/mobius-socket/mobius-socket.test.js +1898 -0
  218. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  219. package/dist/mobius-socket/socket/constants.js +55 -0
  220. package/dist/mobius-socket/socket/constants.js.map +1 -0
  221. package/dist/mobius-socket/socket/index.js +15 -0
  222. package/dist/mobius-socket/socket/index.js.map +1 -0
  223. package/dist/mobius-socket/socket/socket-base.js +604 -0
  224. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  225. package/dist/mobius-socket/socket/socket.js +19 -0
  226. package/dist/mobius-socket/socket/socket.js.map +1 -0
  227. package/dist/mobius-socket/socket/socket.shim.js +26 -0
  228. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  229. package/dist/mobius-socket/socket/types.js +7 -0
  230. package/dist/mobius-socket/socket/types.js.map +1 -0
  231. package/dist/mobius-socket/socket.test.js +727 -0
  232. package/dist/mobius-socket/socket.test.js.map +1 -0
  233. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  234. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  235. package/dist/mobius-socket/test/promise-tick.js +28 -0
  236. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  237. package/dist/mobius-socket/types.js +7 -0
  238. package/dist/mobius-socket/types.js.map +1 -0
  239. package/dist/module/CallHistory/CallHistory.js +28 -17
  240. package/dist/module/CallRecording/CallRecording.js +56 -0
  241. package/dist/module/CallRecording/WxcCallRecordingConnector.js +257 -0
  242. package/dist/module/CallRecording/callRecordingFixtures.js +201 -0
  243. package/dist/module/CallRecording/constants.js +28 -0
  244. package/dist/module/CallRecording/types.js +19 -0
  245. package/dist/module/CallRecording/utils.js +14 -0
  246. package/dist/module/CallingClient/CallingClient.js +166 -8
  247. package/dist/module/CallingClient/calling/call.js +201 -68
  248. package/dist/module/CallingClient/calling/callManager.js +51 -11
  249. package/dist/module/CallingClient/calling/types.js +2 -0
  250. package/dist/module/CallingClient/constants.js +29 -0
  251. package/dist/module/CallingClient/line/index.js +4 -2
  252. package/dist/module/CallingClient/registration/register.js +274 -64
  253. package/dist/module/CallingClient/registration/types.js +5 -1
  254. package/dist/module/CallingClient/registration/webWorker.js +42 -61
  255. package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
  256. package/dist/module/CallingClient/utils/constants.js +36 -0
  257. package/dist/module/CallingClient/utils/index.js +5 -0
  258. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
  259. package/dist/module/CallingClient/utils/request.js +211 -0
  260. package/dist/module/CallingClient/utils/types.js +1 -0
  261. package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
  262. package/dist/module/Contacts/ContactsClient.js +1 -1
  263. package/dist/module/Errors/types.js +2 -0
  264. package/dist/module/Events/types.js +23 -10
  265. package/dist/module/Metrics/index.js +48 -1
  266. package/dist/module/Metrics/types.js +18 -0
  267. package/dist/module/api.js +3 -2
  268. package/dist/module/common/Utils.js +85 -22
  269. package/dist/module/common/testUtil.js +6 -1
  270. package/dist/module/common/types.js +3 -0
  271. package/dist/module/index.js +7 -3
  272. package/dist/module/mobius-socket/config.js +15 -0
  273. package/dist/module/mobius-socket/errors.js +58 -0
  274. package/dist/module/mobius-socket/index.js +24 -0
  275. package/dist/module/mobius-socket/mobius-socket.js +593 -0
  276. package/dist/module/mobius-socket/socket/constants.js +26 -0
  277. package/dist/module/mobius-socket/socket/index.js +4 -0
  278. package/dist/module/mobius-socket/socket/socket-base.js +368 -0
  279. package/dist/module/mobius-socket/socket/socket.js +9 -0
  280. package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
  281. package/dist/module/mobius-socket/socket/types.js +1 -0
  282. package/dist/module/mobius-socket/types.js +1 -0
  283. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  284. package/dist/types/CallRecording/CallRecording.d.ts +18 -0
  285. package/dist/types/CallRecording/CallRecording.d.ts.map +1 -0
  286. package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts +23 -0
  287. package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts.map +1 -0
  288. package/dist/types/CallRecording/callRecordingFixtures.d.ts +61 -0
  289. package/dist/types/CallRecording/callRecordingFixtures.d.ts.map +1 -0
  290. package/dist/types/CallRecording/constants.d.ts +29 -0
  291. package/dist/types/CallRecording/constants.d.ts.map +1 -0
  292. package/dist/types/CallRecording/types.d.ts +176 -0
  293. package/dist/types/CallRecording/types.d.ts.map +1 -0
  294. package/dist/types/CallRecording/utils.d.ts +3 -0
  295. package/dist/types/CallRecording/utils.d.ts.map +1 -0
  296. package/dist/types/CallingClient/CallingClient.d.ts +10 -1
  297. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  298. package/dist/types/CallingClient/calling/call.d.ts +17 -3
  299. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  300. package/dist/types/CallingClient/calling/callManager.d.ts +8 -4
  301. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  302. package/dist/types/CallingClient/calling/types.d.ts +38 -9
  303. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  304. package/dist/types/CallingClient/constants.d.ts +29 -0
  305. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  306. package/dist/types/CallingClient/line/index.d.ts +1 -1
  307. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  308. package/dist/types/CallingClient/registration/register.d.ts +10 -2
  309. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  310. package/dist/types/CallingClient/registration/types.d.ts +29 -3
  311. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  312. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  313. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  314. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  315. package/dist/types/CallingClient/types.d.ts +6 -3
  316. package/dist/types/CallingClient/types.d.ts.map +1 -1
  317. package/dist/types/CallingClient/utils/constants.d.ts +35 -0
  318. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  319. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  320. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  321. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
  322. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  323. package/dist/types/CallingClient/utils/request.d.ts +28 -0
  324. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  325. package/dist/types/CallingClient/utils/types.d.ts +34 -0
  326. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  327. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  328. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  329. package/dist/types/Errors/types.d.ts +2 -0
  330. package/dist/types/Errors/types.d.ts.map +1 -1
  331. package/dist/types/Events/types.d.ts +80 -16
  332. package/dist/types/Events/types.d.ts.map +1 -1
  333. package/dist/types/Metrics/index.d.ts.map +1 -1
  334. package/dist/types/Metrics/types.d.ts +19 -2
  335. package/dist/types/Metrics/types.d.ts.map +1 -1
  336. package/dist/types/SDKConnector/types.d.ts +39 -12
  337. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  338. package/dist/types/api.d.ts +6 -4
  339. package/dist/types/api.d.ts.map +1 -1
  340. package/dist/types/common/Utils.d.ts +9 -4
  341. package/dist/types/common/Utils.d.ts.map +1 -1
  342. package/dist/types/common/testUtil.d.ts +5 -1
  343. package/dist/types/common/testUtil.d.ts.map +1 -1
  344. package/dist/types/common/types.d.ts +9 -1
  345. package/dist/types/common/types.d.ts.map +1 -1
  346. package/dist/types/index.d.ts +9 -4
  347. package/dist/types/index.d.ts.map +1 -1
  348. package/dist/types/mobius-socket/config.d.ts +17 -0
  349. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  350. package/dist/types/mobius-socket/errors.d.ts +32 -0
  351. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  352. package/dist/types/mobius-socket/index.d.ts +14 -0
  353. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  354. package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
  355. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  356. package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
  357. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  358. package/dist/types/mobius-socket/socket/index.d.ts +5 -0
  359. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  360. package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
  361. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  362. package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
  363. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  364. package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
  365. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  366. package/dist/types/mobius-socket/socket/types.d.ts +61 -0
  367. package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
  368. package/dist/types/mobius-socket/types.d.ts +21 -0
  369. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  370. package/package.json +21 -5
  371. package/src/mobius-socket/socket/socket.shim.ts +22 -0
  372. package/src/mobius-socket/socket/socket.ts +14 -0
@@ -0,0 +1,652 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
10
+ var _types = require("../Logger/types");
11
+ var _testUtil = require("../common/testUtil");
12
+ var _types2 = require("../common/types");
13
+ var _WxcCallRecordingConnector = require("./WxcCallRecordingConnector");
14
+ var _types3 = require("./types");
15
+ var _callRecordingFixtures = require("./callRecordingFixtures");
16
+ var _types4 = require("../Events/types");
17
+ var _constants = require("./constants");
18
+ var utils = _interopRequireWildcard(require("../common/Utils"));
19
+ var _Logger = _interopRequireDefault(require("../Logger"));
20
+ var _constants2 = require("../common/constants");
21
+ 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); }
22
+ /* eslint-disable dot-notation */
23
+
24
+ var webex = (0, _testUtil.getTestUtilsWebex)();
25
+ var uploadLogsSpy;
26
+ var serviceErrorCodeHandlerSpy;
27
+ describe('WxcCallRecordingConnector tests', function () {
28
+ var connector;
29
+ var infoSpy = jest.spyOn(_Logger.default, 'info').mockImplementation();
30
+ var errorSpy = jest.spyOn(_Logger.default, 'error').mockImplementation();
31
+ beforeAll(function () {
32
+ connector = new _WxcCallRecordingConnector.WxcCallRecordingConnector(webex, {
33
+ level: _types.LOGGER.INFO
34
+ });
35
+ });
36
+ beforeEach(function () {
37
+ uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();
38
+ serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
39
+ });
40
+ afterEach(function () {
41
+ jest.clearAllMocks();
42
+ });
43
+ describe('getRecordings', function () {
44
+ var loggerContext = {
45
+ file: _constants.CALL_RECORDING_FILE,
46
+ method: _constants.METHODS.GET_RECORDINGS
47
+ };
48
+ it('successfully fetches the list of recordings', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
49
+ var _response$data$record;
50
+ var payload, response;
51
+ return _regenerator.default.wrap(function (_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
55
+ webex.request.mockResolvedValue(payload);
56
+ _context.next = 1;
57
+ return connector.getCallRecording({
58
+ type: _types3.RecordingRequestType.LIST
59
+ });
60
+ case 1:
61
+ response = _context.sent;
62
+ expect(response.statusCode).toBe(200);
63
+ expect(response.message).toBe('SUCCESS');
64
+ expect(response.data.recordings).toHaveLength(2);
65
+ expect((_response$data$record = response.data.recordings) === null || _response$data$record === void 0 ? void 0 : _response$data$record[0].id).toBe(_callRecordingFixtures.RECORDING_ONE.id);
66
+ expect(errorSpy).not.toHaveBeenCalled();
67
+ expect(uploadLogsSpy).not.toHaveBeenCalled();
68
+ case 2:
69
+ case "end":
70
+ return _context.stop();
71
+ }
72
+ }, _callee);
73
+ })));
74
+ it('builds the request URL with the provided filter/pagination query params', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
75
+ var payload, callArgs;
76
+ return _regenerator.default.wrap(function (_context2) {
77
+ while (1) switch (_context2.prev = _context2.next) {
78
+ case 0:
79
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
80
+ webex.request.mockResolvedValue(payload);
81
+ _context2.next = 1;
82
+ return connector.getCallRecording({
83
+ type: _types3.RecordingRequestType.LIST,
84
+ options: {
85
+ from: '2024-05-01T00:00:00.000Z',
86
+ to: '2024-05-31T00:00:00.000Z',
87
+ status: _types3.RecordingStatus.DELETED,
88
+ max: 25,
89
+ serviceType: 'calling',
90
+ format: 'MP3',
91
+ ownerType: 'user',
92
+ storageRegion: 'US',
93
+ locationId: 'location-123',
94
+ topic: 'Call with User7',
95
+ webexUserRequest: true
96
+ }
97
+ });
98
+ case 1:
99
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
100
+ expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
101
+ expect(callArgs.service).toBe('hydraDeveloperApi');
102
+ expect(callArgs.uri).toContain('/convergedRecordings?');
103
+ expect(callArgs.uri).toContain('from=2024-05-01T00%3A00%3A00.000Z');
104
+ expect(callArgs.uri).toContain('to=2024-05-31T00%3A00%3A00.000Z');
105
+ expect(callArgs.uri).toContain('status=deleted');
106
+ expect(callArgs.uri).toContain('max=25');
107
+ expect(callArgs.uri).toContain('serviceType=calling');
108
+ expect(callArgs.uri).toContain('format=MP3');
109
+ expect(callArgs.uri).toContain('ownerType=user');
110
+ expect(callArgs.uri).toContain('storageRegion=US');
111
+ expect(callArgs.uri).toContain('locationId=location-123');
112
+ expect(callArgs.uri).toContain('topic=Call+with+User7');
113
+ expect(callArgs.uri).not.toContain('orderType');
114
+ expect(callArgs.uri).not.toContain('orderBy');
115
+ expect(callArgs.uri).not.toContain('offset');
116
+ expect(callArgs.uri).not.toContain('actorID');
117
+ expect(callArgs.uri).not.toContain('showAccessCount');
118
+ expect(callArgs.headers).toEqual({
119
+ WebexUserRequest: 'true'
120
+ });
121
+ case 2:
122
+ case "end":
123
+ return _context2.stop();
124
+ }
125
+ }, _callee2);
126
+ })));
127
+ it('applies the default filter/pagination query params when no options are provided', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
128
+ var payload, callArgs;
129
+ return _regenerator.default.wrap(function (_context3) {
130
+ while (1) switch (_context3.prev = _context3.next) {
131
+ case 0:
132
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
133
+ webex.request.mockResolvedValue(payload);
134
+ _context3.next = 1;
135
+ return connector.getCallRecording({
136
+ type: _types3.RecordingRequestType.LIST
137
+ });
138
+ case 1:
139
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
140
+ expect(callArgs.uri).toContain('from=');
141
+ expect(callArgs.uri).toContain('to=');
142
+ expect(callArgs.uri).toContain('status=available');
143
+ expect(callArgs.uri).toContain('max=30');
144
+ expect(callArgs.uri).not.toContain('orderType');
145
+ expect(callArgs.uri).not.toContain('orderBy');
146
+ expect(callArgs.uri).not.toContain('offset');
147
+ // Optional pass-through filters are omitted when not provided.
148
+ expect(callArgs.uri).not.toContain('serviceType');
149
+ expect(callArgs.uri).not.toContain('format');
150
+ expect(callArgs.uri).not.toContain('ownerType');
151
+ expect(callArgs.uri).not.toContain('storageRegion');
152
+ expect(callArgs.uri).not.toContain('locationId');
153
+ expect(callArgs.uri).not.toContain('topic');
154
+ case 2:
155
+ case "end":
156
+ return _context3.stop();
157
+ }
158
+ }, _callee3);
159
+ })));
160
+ it('derives the from date from the days lookback and defaults to to now when not provided', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
161
+ var payload, callArgs;
162
+ return _regenerator.default.wrap(function (_context4) {
163
+ while (1) switch (_context4.prev = _context4.next) {
164
+ case 0:
165
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
166
+ webex.request.mockResolvedValue(payload);
167
+ jest.useFakeTimers().setSystemTime(new Date('2024-06-15T12:00:00.000Z'));
168
+ _context4.next = 1;
169
+ return connector.getCallRecording({
170
+ type: _types3.RecordingRequestType.LIST,
171
+ options: {
172
+ days: 7
173
+ }
174
+ });
175
+ case 1:
176
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
177
+ expect(callArgs.uri).toContain("from=".concat(encodeURIComponent('2024-06-08T12:00:00.000Z')));
178
+ expect(callArgs.uri).toContain("to=".concat(encodeURIComponent('2024-06-15T12:00:00.000Z')));
179
+ jest.useRealTimers();
180
+ case 2:
181
+ case "end":
182
+ return _context4.stop();
183
+ }
184
+ }, _callee4);
185
+ })));
186
+ it('does not send the WebexUserRequest header by default', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
187
+ var payload, callArgs;
188
+ return _regenerator.default.wrap(function (_context5) {
189
+ while (1) switch (_context5.prev = _context5.next) {
190
+ case 0:
191
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
192
+ webex.request.mockResolvedValue(payload);
193
+ _context5.next = 1;
194
+ return connector.getCallRecording({
195
+ type: _types3.RecordingRequestType.LIST
196
+ });
197
+ case 1:
198
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
199
+ expect(callArgs.headers).toBeUndefined();
200
+ case 2:
201
+ case "end":
202
+ return _context5.stop();
203
+ }
204
+ }, _callee5);
205
+ })));
206
+ it('returns an empty list when there are no recordings', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
207
+ var payload, response;
208
+ return _regenerator.default.wrap(function (_context6) {
209
+ while (1) switch (_context6.prev = _context6.next) {
210
+ case 0:
211
+ payload = _callRecordingFixtures.MOCK_EMPTY_RECORDING_LIST_BODY;
212
+ webex.request.mockResolvedValue(payload);
213
+ _context6.next = 1;
214
+ return connector.getCallRecording({
215
+ type: _types3.RecordingRequestType.LIST
216
+ });
217
+ case 1:
218
+ response = _context6.sent;
219
+ expect(response.statusCode).toBe(200);
220
+ expect(response.data.recordings).toEqual([]);
221
+ case 2:
222
+ case "end":
223
+ return _context6.stop();
224
+ }
225
+ }, _callee6);
226
+ })));
227
+ it.each([{
228
+ statusCode: 400,
229
+ expected: _callRecordingFixtures.ERROR_DETAILS_400
230
+ }, {
231
+ statusCode: 401,
232
+ expected: _callRecordingFixtures.ERROR_DETAILS_401
233
+ }, {
234
+ statusCode: 404,
235
+ expected: _callRecordingFixtures.ERROR_DETAILS_404
236
+ }])('handles a $statusCode error', /*#__PURE__*/function () {
237
+ var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(_ref7) {
238
+ var statusCode, expected, failurePayload, response;
239
+ return _regenerator.default.wrap(function (_context7) {
240
+ while (1) switch (_context7.prev = _context7.next) {
241
+ case 0:
242
+ statusCode = _ref7.statusCode, expected = _ref7.expected;
243
+ failurePayload = {
244
+ statusCode: statusCode
245
+ };
246
+ webex.request.mockRejectedValue(failurePayload);
247
+ _context7.next = 1;
248
+ return connector.getCallRecording({
249
+ type: _types3.RecordingRequestType.LIST
250
+ });
251
+ case 1:
252
+ response = _context7.sent;
253
+ expect(response).toStrictEqual(expected);
254
+ expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
255
+ statusCode: statusCode
256
+ }, loggerContext);
257
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Failed to get recordings'), loggerContext);
258
+ expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
259
+ case 2:
260
+ case "end":
261
+ return _context7.stop();
262
+ }
263
+ }, _callee7);
264
+ }));
265
+ return function (_x) {
266
+ return _ref8.apply(this, arguments);
267
+ };
268
+ }());
269
+ });
270
+ describe('getRecording', function () {
271
+ var loggerContext = {
272
+ file: _constants.CALL_RECORDING_FILE,
273
+ method: _constants.METHODS.GET_RECORDING
274
+ };
275
+ it('successfully fetches a single recording', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
276
+ var _response$data$record2;
277
+ var payload, response, callArgs;
278
+ return _regenerator.default.wrap(function (_context8) {
279
+ while (1) switch (_context8.prev = _context8.next) {
280
+ case 0:
281
+ payload = _callRecordingFixtures.MOCK_RECORDING_BODY;
282
+ webex.request.mockResolvedValue(payload);
283
+ _context8.next = 1;
284
+ return connector.getCallRecording({
285
+ type: _types3.RecordingRequestType.DETAIL,
286
+ recordingId: _callRecordingFixtures.RECORDING_ONE.id
287
+ });
288
+ case 1:
289
+ response = _context8.sent;
290
+ expect(response.statusCode).toBe(200);
291
+ expect(response.message).toBe('SUCCESS');
292
+ expect((_response$data$record2 = response.data.recording) === null || _response$data$record2 === void 0 ? void 0 : _response$data$record2.id).toBe(_callRecordingFixtures.RECORDING_ONE.id);
293
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
294
+ expect(callArgs.uri).toContain("/convergedRecordings/".concat(_callRecordingFixtures.RECORDING_ONE.id));
295
+ expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
296
+ expect(callArgs.service).toBe('hydraDeveloperApi');
297
+ expect(infoSpy).toHaveBeenCalledWith("".concat(_constants2.METHOD_START_MESSAGE, " with recordingId=").concat(_callRecordingFixtures.RECORDING_ONE.id), loggerContext);
298
+ case 2:
299
+ case "end":
300
+ return _context8.stop();
301
+ }
302
+ }, _callee8);
303
+ })));
304
+ it('handles a 404 error when the recording does not exist', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
305
+ var response;
306
+ return _regenerator.default.wrap(function (_context9) {
307
+ while (1) switch (_context9.prev = _context9.next) {
308
+ case 0:
309
+ webex.request.mockRejectedValue({
310
+ statusCode: 404
311
+ });
312
+ _context9.next = 1;
313
+ return connector.getCallRecording({
314
+ type: _types3.RecordingRequestType.DETAIL,
315
+ recordingId: 'missing-id'
316
+ });
317
+ case 1:
318
+ response = _context9.sent;
319
+ expect(response).toStrictEqual(_callRecordingFixtures.ERROR_DETAILS_404);
320
+ expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
321
+ case 2:
322
+ case "end":
323
+ return _context9.stop();
324
+ }
325
+ }, _callee9);
326
+ })));
327
+ });
328
+ describe('getRecordingsByCallSessionId', function () {
329
+ it('returns only the recordings matching the call session id', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
330
+ var _response$data$record3;
331
+ var payload, response;
332
+ return _regenerator.default.wrap(function (_context0) {
333
+ while (1) switch (_context0.prev = _context0.next) {
334
+ case 0:
335
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
336
+ webex.request.mockResolvedValue(payload);
337
+ _context0.next = 1;
338
+ return connector.getCallRecording({
339
+ type: _types3.RecordingRequestType.BY_CALL_SESSION,
340
+ callSessionId: _callRecordingFixtures.CALL_SESSION_ID
341
+ });
342
+ case 1:
343
+ response = _context0.sent;
344
+ expect(response.statusCode).toBe(200);
345
+ expect(response.data.recordings).toHaveLength(1);
346
+ expect((_response$data$record3 = response.data.recordings) === null || _response$data$record3 === void 0 ? void 0 : _response$data$record3[0].id).toBe(_callRecordingFixtures.RECORDING_ONE.id);
347
+ case 2:
348
+ case "end":
349
+ return _context0.stop();
350
+ }
351
+ }, _callee0);
352
+ })));
353
+ it('returns an empty list when no recording matches', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
354
+ var payload, response;
355
+ return _regenerator.default.wrap(function (_context1) {
356
+ while (1) switch (_context1.prev = _context1.next) {
357
+ case 0:
358
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
359
+ webex.request.mockResolvedValue(payload);
360
+ _context1.next = 1;
361
+ return connector.getCallRecording({
362
+ type: _types3.RecordingRequestType.BY_CALL_SESSION,
363
+ callSessionId: 'non-existent-session'
364
+ });
365
+ case 1:
366
+ response = _context1.sent;
367
+ expect(response.statusCode).toBe(200);
368
+ expect(response.data.recordings).toEqual([]);
369
+ case 2:
370
+ case "end":
371
+ return _context1.stop();
372
+ }
373
+ }, _callee1);
374
+ })));
375
+ it('propagates the error response from the underlying list call', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
376
+ var response;
377
+ return _regenerator.default.wrap(function (_context10) {
378
+ while (1) switch (_context10.prev = _context10.next) {
379
+ case 0:
380
+ webex.request.mockRejectedValue({
381
+ statusCode: 401
382
+ });
383
+ _context10.next = 1;
384
+ return connector.getCallRecording({
385
+ type: _types3.RecordingRequestType.BY_CALL_SESSION,
386
+ callSessionId: _callRecordingFixtures.CALL_SESSION_ID
387
+ });
388
+ case 1:
389
+ response = _context10.sent;
390
+ expect(response).toStrictEqual(_callRecordingFixtures.ERROR_DETAILS_401);
391
+ case 2:
392
+ case "end":
393
+ return _context10.stop();
394
+ }
395
+ }, _callee10);
396
+ })));
397
+ it('forwards list options to the underlying list query to widen the scan', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
398
+ var payload, callArgs;
399
+ return _regenerator.default.wrap(function (_context11) {
400
+ while (1) switch (_context11.prev = _context11.next) {
401
+ case 0:
402
+ payload = _callRecordingFixtures.MOCK_RECORDING_LIST_BODY;
403
+ webex.request.mockResolvedValue(payload);
404
+ _context11.next = 1;
405
+ return connector.getCallRecording({
406
+ type: _types3.RecordingRequestType.BY_CALL_SESSION,
407
+ callSessionId: _callRecordingFixtures.CALL_SESSION_ID,
408
+ options: {
409
+ from: '2024-05-01T00:00:00.000Z',
410
+ to: '2024-05-31T00:00:00.000Z',
411
+ status: _types3.RecordingStatus.DELETED,
412
+ max: 100
413
+ }
414
+ });
415
+ case 1:
416
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
417
+ expect(callArgs.uri).toContain('from=2024-05-01T00%3A00%3A00.000Z');
418
+ expect(callArgs.uri).toContain('to=2024-05-31T00%3A00%3A00.000Z');
419
+ expect(callArgs.uri).toContain('status=deleted');
420
+ expect(callArgs.uri).toContain('max=100');
421
+ case 2:
422
+ case "end":
423
+ return _context11.stop();
424
+ }
425
+ }, _callee11);
426
+ })));
427
+ });
428
+ describe('getRecordingMetadata', function () {
429
+ var loggerContext = {
430
+ file: _constants.CALL_RECORDING_FILE,
431
+ method: _constants.METHODS.GET_RECORDING_METADATA
432
+ };
433
+ it('successfully fetches the recording metadata', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
434
+ var _response$data$metada;
435
+ var payload, response, callArgs;
436
+ return _regenerator.default.wrap(function (_context12) {
437
+ while (1) switch (_context12.prev = _context12.next) {
438
+ case 0:
439
+ payload = _callRecordingFixtures.MOCK_RECORDING_METADATA_BODY;
440
+ webex.request.mockResolvedValue(payload);
441
+ _context12.next = 1;
442
+ return connector.getCallRecording({
443
+ type: _types3.RecordingRequestType.METADATA,
444
+ recordingId: _callRecordingFixtures.RECORDING_ONE.id
445
+ });
446
+ case 1:
447
+ response = _context12.sent;
448
+ expect(response.statusCode).toBe(200);
449
+ expect(response.message).toBe('SUCCESS');
450
+ expect((_response$data$metada = response.data.metadata) === null || _response$data$metada === void 0 ? void 0 : _response$data$metada.callSessionId).toBe(_callRecordingFixtures.CALL_SESSION_ID);
451
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
452
+ expect(callArgs.uri).toContain("/convergedRecordings/".concat(_callRecordingFixtures.RECORDING_ONE.id, "/metadata"));
453
+ expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
454
+ expect(callArgs.service).toBe('hydraDeveloperApi');
455
+ case 2:
456
+ case "end":
457
+ return _context12.stop();
458
+ }
459
+ }, _callee12);
460
+ })));
461
+ it('handles a 400 error', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13() {
462
+ var response;
463
+ return _regenerator.default.wrap(function (_context13) {
464
+ while (1) switch (_context13.prev = _context13.next) {
465
+ case 0:
466
+ webex.request.mockRejectedValue({
467
+ statusCode: 400
468
+ });
469
+ _context13.next = 1;
470
+ return connector.getCallRecording({
471
+ type: _types3.RecordingRequestType.METADATA,
472
+ recordingId: 'bad-id'
473
+ });
474
+ case 1:
475
+ response = _context13.sent;
476
+ expect(response).toStrictEqual(_callRecordingFixtures.ERROR_DETAILS_400);
477
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Failed to get recording metadata'), loggerContext);
478
+ expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
479
+ case 2:
480
+ case "end":
481
+ return _context13.stop();
482
+ }
483
+ }, _callee13);
484
+ })));
485
+ });
486
+ describe('deleteRecording', function () {
487
+ var loggerContext = {
488
+ file: _constants.CALL_RECORDING_FILE,
489
+ method: _constants.METHODS.DELETE_RECORDING
490
+ };
491
+ it('successfully soft-deletes a recording via POST /convergedRecordings/softDelete', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
492
+ var response, callArgs;
493
+ return _regenerator.default.wrap(function (_context14) {
494
+ while (1) switch (_context14.prev = _context14.next) {
495
+ case 0:
496
+ webex.request.mockResolvedValue({
497
+ statusCode: 204
498
+ });
499
+ _context14.next = 1;
500
+ return connector.deleteRecording(_callRecordingFixtures.RECORDING_ONE.id);
501
+ case 1:
502
+ response = _context14.sent;
503
+ expect(response.statusCode).toBe(204);
504
+ expect(response.message).toBe('SUCCESS');
505
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
506
+ expect(callArgs.uri).toContain('/convergedRecordings/softDelete');
507
+ expect(callArgs.uri).not.toContain("/convergedRecordings/".concat(_callRecordingFixtures.RECORDING_ONE.id));
508
+ expect(callArgs.method).toBe(_types2.HTTP_METHODS.POST);
509
+ expect(callArgs.service).toBe('hydraDeveloperApi');
510
+ expect(callArgs.body).toStrictEqual({
511
+ recordingIds: [_callRecordingFixtures.RECORDING_ONE.id]
512
+ });
513
+ case 2:
514
+ case "end":
515
+ return _context14.stop();
516
+ }
517
+ }, _callee14);
518
+ })));
519
+ it('ignores deprecated reason/comment options (compliance DELETE is not exposed)', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15() {
520
+ var callArgs;
521
+ return _regenerator.default.wrap(function (_context15) {
522
+ while (1) switch (_context15.prev = _context15.next) {
523
+ case 0:
524
+ webex.request.mockResolvedValue({
525
+ statusCode: 204
526
+ });
527
+ _context15.next = 1;
528
+ return connector.deleteRecording(_callRecordingFixtures.RECORDING_ONE.id, {
529
+ reason: 'audit',
530
+ comment: 'Maintain data privacy'
531
+ });
532
+ case 1:
533
+ callArgs = webex.request.mock.calls[webex.request.mock.calls.length - 1][0];
534
+ expect(callArgs.method).toBe(_types2.HTTP_METHODS.POST);
535
+ expect(callArgs.body).toStrictEqual({
536
+ recordingIds: [_callRecordingFixtures.RECORDING_ONE.id]
537
+ });
538
+ case 2:
539
+ case "end":
540
+ return _context15.stop();
541
+ }
542
+ }, _callee15);
543
+ })));
544
+ it('handles a 400 error', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16() {
545
+ var response;
546
+ return _regenerator.default.wrap(function (_context16) {
547
+ while (1) switch (_context16.prev = _context16.next) {
548
+ case 0:
549
+ webex.request.mockRejectedValue({
550
+ statusCode: 400
551
+ });
552
+ _context16.next = 1;
553
+ return connector.deleteRecording('bad-id');
554
+ case 1:
555
+ response = _context16.sent;
556
+ expect(response).toStrictEqual(_callRecordingFixtures.ERROR_DETAILS_400);
557
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Failed to delete recording'), loggerContext);
558
+ expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
559
+ case 2:
560
+ case "end":
561
+ return _context16.stop();
562
+ }
563
+ }, _callee16);
564
+ })));
565
+ });
566
+ describe('URL resolution', function () {
567
+ it('resolves the recording base URL from the services catalog (hydraDeveloperApi)', function () {
568
+ var localConnector = new _WxcCallRecordingConnector.WxcCallRecordingConnector((0, _testUtil.getTestUtilsWebex)(), {
569
+ level: _types.LOGGER.INFO
570
+ });
571
+ expect(localConnector['recordingServiceUrl']).toBe('https://integration.webexapis.com/v1');
572
+ });
573
+ });
574
+ describe('Recording Mercury events', function () {
575
+ var mockOn;
576
+ var findHandler = function findHandler(eventKey) {
577
+ var calls = mockOn.mock.calls.filter(function (call) {
578
+ return call[0] === eventKey;
579
+ });
580
+ return calls[calls.length - 1][1];
581
+ };
582
+ beforeEach(function () {
583
+ mockOn = webex.internal.mercury.on;
584
+ mockOn.mockClear();
585
+ connector = new _WxcCallRecordingConnector.WxcCallRecordingConnector(webex, {
586
+ level: _types.LOGGER.INFO
587
+ });
588
+ });
589
+ it('registers listeners for all three recording mercury events', function () {
590
+ var registeredKeys = mockOn.mock.calls.map(function (call) {
591
+ return call[0];
592
+ });
593
+ expect(registeredKeys).toContain(_callRecordingFixtures.RECORDING_MERCURY_KEYS.CREATED);
594
+ expect(registeredKeys).toContain(_callRecordingFixtures.RECORDING_MERCURY_KEYS.UPDATED);
595
+ expect(registeredKeys).toContain(_callRecordingFixtures.RECORDING_MERCURY_KEYS.DELETED);
596
+ });
597
+ it('emits the recording created event', function (done) {
598
+ connector.on(_types4.COMMON_EVENT_KEYS.CALL_RECORDING_CREATED, function (event) {
599
+ expect(event).toEqual(_callRecordingFixtures.MOCK_RECORDING_CREATED_EVENT);
600
+ done();
601
+ });
602
+ findHandler(_callRecordingFixtures.RECORDING_MERCURY_KEYS.CREATED)(_callRecordingFixtures.MOCK_RECORDING_CREATED_EVENT);
603
+ });
604
+
605
+ /**
606
+ * The backend delivers the recording lifecycle through `convergedRecordings.updated` events
607
+ * qualified by `eventSubType`. The connector routes them to the intuitive typed event:
608
+ * name: TestCase name
609
+ * event: the raw `updated` Mercury event (with its eventSubType)
610
+ * expectedKey: the typed event the connector should emit
611
+ */
612
+ var updatedRoutingData = [{
613
+ name: 'TRASH (soft delete) -> callRecording:deleted',
614
+ event: _callRecordingFixtures.MOCK_RECORDING_TRASH_EVENT,
615
+ expectedKey: _types4.COMMON_EVENT_KEYS.CALL_RECORDING_DELETED
616
+ }, {
617
+ name: 'PURGE (permanent delete) -> callRecording:deleted',
618
+ event: _callRecordingFixtures.MOCK_RECORDING_PURGE_EVENT,
619
+ expectedKey: _types4.COMMON_EVENT_KEYS.CALL_RECORDING_DELETED
620
+ }, {
621
+ name: 'RESTORE (restored from trash) -> callRecording:created',
622
+ event: _callRecordingFixtures.MOCK_RECORDING_RESTORE_EVENT,
623
+ expectedKey: _types4.COMMON_EVENT_KEYS.CALL_RECORDING_CREATED
624
+ }, {
625
+ name: 'SUMMARY_CREATE (summary/transcript ready) -> callRecording:updated',
626
+ event: _callRecordingFixtures.MOCK_RECORDING_UPDATED_EVENT,
627
+ expectedKey: _types4.COMMON_EVENT_KEYS.CALL_RECORDING_UPDATED
628
+ }];
629
+ it.each(updatedRoutingData)('routes a convergedRecordings.updated event by eventSubType: $name', function (_ref18) {
630
+ var event = _ref18.event,
631
+ expectedKey = _ref18.expectedKey;
632
+ var spy = jest.fn();
633
+ connector.on(expectedKey, spy);
634
+ findHandler(_callRecordingFixtures.RECORDING_MERCURY_KEYS.UPDATED)(event);
635
+ expect(spy).toHaveBeenCalledWith(event);
636
+ });
637
+ it('emits the recording deleted event', function (done) {
638
+ connector.on(_types4.COMMON_EVENT_KEYS.CALL_RECORDING_DELETED, function (event) {
639
+ expect(event).toEqual(_callRecordingFixtures.MOCK_RECORDING_DELETED_EVENT);
640
+ done();
641
+ });
642
+ findHandler(_callRecordingFixtures.RECORDING_MERCURY_KEYS.DELETED)(_callRecordingFixtures.MOCK_RECORDING_DELETED_EVENT);
643
+ });
644
+ it('ignores malformed events without an activity payload', function () {
645
+ var spy = jest.fn();
646
+ connector.on(_types4.COMMON_EVENT_KEYS.CALL_RECORDING_CREATED, spy);
647
+ findHandler(_callRecordingFixtures.RECORDING_MERCURY_KEYS.CREATED)({});
648
+ expect(spy).not.toHaveBeenCalled();
649
+ });
650
+ });
651
+ });
652
+ //# sourceMappingURL=WxcCallRecordingConnector.test.js.map