@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.400

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 (629) hide show
  1. package/README.md +58 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +11 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +347 -74
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +125 -18
  89. package/dist/index.js.map +1 -1
  90. package/dist/interceptors/index.js +15 -0
  91. package/dist/interceptors/index.js.map +1 -0
  92. package/dist/interceptors/locusRetry.js +93 -0
  93. package/dist/interceptors/locusRetry.js.map +1 -0
  94. package/dist/interpretation/collection.js +23 -0
  95. package/dist/interpretation/collection.js.map +1 -0
  96. package/dist/interpretation/index.js +380 -0
  97. package/dist/interpretation/index.js.map +1 -0
  98. package/dist/interpretation/siLanguage.js +25 -0
  99. package/dist/interpretation/siLanguage.js.map +1 -0
  100. package/dist/locus-info/controlsUtils.js +101 -29
  101. package/dist/locus-info/controlsUtils.js.map +1 -1
  102. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  103. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  104. package/dist/locus-info/fullState.js +0 -15
  105. package/dist/locus-info/fullState.js.map +1 -1
  106. package/dist/locus-info/hostUtils.js +4 -12
  107. package/dist/locus-info/hostUtils.js.map +1 -1
  108. package/dist/locus-info/index.js +564 -246
  109. package/dist/locus-info/index.js.map +1 -1
  110. package/dist/locus-info/infoUtils.js +10 -38
  111. package/dist/locus-info/infoUtils.js.map +1 -1
  112. package/dist/locus-info/mediaSharesUtils.js +82 -38
  113. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  114. package/dist/locus-info/parser.js +314 -163
  115. package/dist/locus-info/parser.js.map +1 -1
  116. package/dist/locus-info/selfUtils.js +110 -92
  117. package/dist/locus-info/selfUtils.js.map +1 -1
  118. package/dist/media/index.js +107 -231
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +137 -222
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +2 -9
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +316 -501
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +97 -14
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.js +5311 -3871
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/locusMediaRequest.js +292 -0
  131. package/dist/meeting/locusMediaRequest.js.map +1 -0
  132. package/dist/meeting/muteState.js +260 -183
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.js +421 -347
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/request.type.js +7 -0
  137. package/dist/meeting/request.type.js.map +1 -0
  138. package/dist/meeting/state.js +21 -31
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.js +672 -585
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting/voicea-meeting.js +172 -0
  143. package/dist/meeting/voicea-meeting.js.map +1 -0
  144. package/dist/meeting-info/collection.js +6 -25
  145. package/dist/meeting-info/collection.js.map +1 -1
  146. package/dist/meeting-info/index.js +87 -39
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.js +352 -283
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.js +3 -15
  151. package/dist/meeting-info/request.js.map +1 -1
  152. package/dist/meeting-info/util.js +99 -183
  153. package/dist/meeting-info/util.js.map +1 -1
  154. package/dist/meeting-info/utilv2.js +147 -234
  155. package/dist/meeting-info/utilv2.js.map +1 -1
  156. package/dist/meetings/collection.js +43 -19
  157. package/dist/meetings/collection.js.map +1 -1
  158. package/dist/meetings/index.js +895 -600
  159. package/dist/meetings/index.js.map +1 -1
  160. package/dist/meetings/meetings.types.js +7 -0
  161. package/dist/meetings/meetings.types.js.map +1 -0
  162. package/dist/meetings/request.js +26 -41
  163. package/dist/meetings/request.js.map +1 -1
  164. package/dist/meetings/util.js +184 -157
  165. package/dist/meetings/util.js.map +1 -1
  166. package/dist/member/index.js +134 -85
  167. package/dist/member/index.js.map +1 -1
  168. package/dist/member/types.js +25 -0
  169. package/dist/member/types.js.map +1 -0
  170. package/dist/member/util.js +158 -88
  171. package/dist/member/util.js.map +1 -1
  172. package/dist/members/collection.js +13 -12
  173. package/dist/members/collection.js.map +1 -1
  174. package/dist/members/index.js +194 -204
  175. package/dist/members/index.js.map +1 -1
  176. package/dist/members/request.js +113 -68
  177. package/dist/members/request.js.map +1 -1
  178. package/dist/members/types.js +15 -0
  179. package/dist/members/types.js.map +1 -0
  180. package/dist/members/util.js +324 -259
  181. package/dist/members/util.js.map +1 -1
  182. package/dist/metrics/constants.js +19 -7
  183. package/dist/metrics/constants.js.map +1 -1
  184. package/dist/metrics/index.js +11 -558
  185. package/dist/metrics/index.js.map +1 -1
  186. package/dist/multistream/mediaRequestManager.js +263 -50
  187. package/dist/multistream/mediaRequestManager.js.map +1 -1
  188. package/dist/multistream/receiveSlot.js +58 -65
  189. package/dist/multistream/receiveSlot.js.map +1 -1
  190. package/dist/multistream/receiveSlotManager.js +76 -95
  191. package/dist/multistream/receiveSlotManager.js.map +1 -1
  192. package/dist/multistream/remoteMedia.js +62 -76
  193. package/dist/multistream/remoteMedia.js.map +1 -1
  194. package/dist/multistream/remoteMediaGroup.js +82 -45
  195. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  196. package/dist/multistream/remoteMediaManager.js +657 -448
  197. package/dist/multistream/remoteMediaManager.js.map +1 -1
  198. package/dist/multistream/sendSlotManager.js +255 -0
  199. package/dist/multistream/sendSlotManager.js.map +1 -0
  200. package/dist/networkQualityMonitor/index.js +40 -59
  201. package/dist/networkQualityMonitor/index.js.map +1 -1
  202. package/dist/personal-meeting-room/index.js +21 -45
  203. package/dist/personal-meeting-room/index.js.map +1 -1
  204. package/dist/personal-meeting-room/request.js +1 -31
  205. package/dist/personal-meeting-room/request.js.map +1 -1
  206. package/dist/personal-meeting-room/util.js +0 -13
  207. package/dist/personal-meeting-room/util.js.map +1 -1
  208. package/dist/reachability/clusterReachability.js +356 -0
  209. package/dist/reachability/clusterReachability.js.map +1 -0
  210. package/dist/reachability/index.js +297 -460
  211. package/dist/reachability/index.js.map +1 -1
  212. package/dist/reachability/request.js +20 -26
  213. package/dist/reachability/request.js.map +1 -1
  214. package/dist/reachability/util.js +29 -0
  215. package/dist/reachability/util.js.map +1 -0
  216. package/dist/reactions/constants.js +13 -0
  217. package/dist/reactions/constants.js.map +1 -0
  218. package/dist/reactions/reactions.js +109 -0
  219. package/dist/reactions/reactions.js.map +1 -0
  220. package/dist/reactions/reactions.type.js +36 -0
  221. package/dist/reactions/reactions.type.js.map +1 -0
  222. package/dist/reconnection-manager/index.js +413 -483
  223. package/dist/reconnection-manager/index.js.map +1 -1
  224. package/dist/recording-controller/enums.js +17 -0
  225. package/dist/recording-controller/enums.js.map +1 -0
  226. package/dist/recording-controller/index.js +362 -0
  227. package/dist/recording-controller/index.js.map +1 -0
  228. package/dist/recording-controller/util.js +64 -0
  229. package/dist/recording-controller/util.js.map +1 -0
  230. package/dist/roap/index.js +102 -86
  231. package/dist/roap/index.js.map +1 -1
  232. package/dist/roap/request.js +131 -135
  233. package/dist/roap/request.js.map +1 -1
  234. package/dist/roap/turnDiscovery.js +437 -116
  235. package/dist/roap/turnDiscovery.js.map +1 -1
  236. package/dist/rtcMetrics/constants.js +12 -0
  237. package/dist/rtcMetrics/constants.js.map +1 -0
  238. package/dist/rtcMetrics/index.js +179 -0
  239. package/dist/rtcMetrics/index.js.map +1 -0
  240. package/dist/statsAnalyzer/global.js +1 -95
  241. package/dist/statsAnalyzer/global.js.map +1 -1
  242. package/dist/statsAnalyzer/index.js +557 -583
  243. package/dist/statsAnalyzer/index.js.map +1 -1
  244. package/dist/statsAnalyzer/mqaUtil.js +326 -130
  245. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  246. package/dist/transcription/index.js +22 -47
  247. package/dist/transcription/index.js.map +1 -1
  248. package/dist/types/annotation/annotation.types.d.ts +42 -0
  249. package/dist/types/annotation/constants.d.ts +31 -0
  250. package/dist/types/annotation/index.d.ts +117 -0
  251. package/dist/types/breakouts/breakout.d.ts +8 -0
  252. package/dist/types/breakouts/collection.d.ts +5 -0
  253. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  254. package/dist/types/breakouts/events.d.ts +8 -0
  255. package/dist/types/breakouts/index.d.ts +5 -0
  256. package/dist/types/breakouts/request.d.ts +22 -0
  257. package/dist/types/breakouts/utils.d.ts +15 -0
  258. package/dist/types/common/browser-detection.d.ts +9 -0
  259. package/dist/types/common/collection.d.ts +48 -0
  260. package/dist/types/common/config.d.ts +2 -0
  261. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  262. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  263. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  264. package/dist/types/common/errors/media.d.ts +15 -0
  265. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  266. package/dist/types/common/errors/parameter.d.ts +15 -0
  267. package/dist/types/common/errors/password-error.d.ts +15 -0
  268. package/dist/types/common/errors/permission.d.ts +14 -0
  269. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  270. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  271. package/dist/types/common/errors/reconnection.d.ts +15 -0
  272. package/dist/types/common/errors/stats.d.ts +15 -0
  273. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  274. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  275. package/dist/types/common/events/events-scope.d.ts +17 -0
  276. package/dist/types/common/events/events.d.ts +12 -0
  277. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  278. package/dist/types/common/events/util.d.ts +2 -0
  279. package/dist/types/common/logs/logger-config.d.ts +2 -0
  280. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  281. package/dist/types/common/logs/request.d.ts +36 -0
  282. package/dist/types/common/queue.d.ts +34 -0
  283. package/dist/types/config.d.ts +72 -0
  284. package/dist/types/constants.d.ts +1088 -0
  285. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  286. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  287. package/dist/types/controls-options-manager/index.d.ts +136 -0
  288. package/dist/types/controls-options-manager/types.d.ts +43 -0
  289. package/dist/types/controls-options-manager/util.d.ts +1 -0
  290. package/dist/types/index.d.ts +7 -0
  291. package/dist/types/interceptors/index.d.ts +2 -0
  292. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  293. package/dist/types/interpretation/collection.d.ts +5 -0
  294. package/dist/types/interpretation/index.d.ts +5 -0
  295. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  296. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  297. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  298. package/dist/types/locus-info/fullState.d.ts +2 -0
  299. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  300. package/dist/types/locus-info/index.d.ts +322 -0
  301. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  302. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  303. package/dist/types/locus-info/parser.d.ts +272 -0
  304. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  305. package/dist/types/media/index.d.ts +34 -0
  306. package/dist/types/media/properties.d.ts +93 -0
  307. package/dist/types/media/util.d.ts +2 -0
  308. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  309. package/dist/types/meeting/in-meeting-actions.d.ts +167 -0
  310. package/dist/types/meeting/index.d.ts +1824 -0
  311. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  312. package/dist/types/meeting/muteState.d.ts +178 -0
  313. package/dist/types/meeting/request.d.ts +293 -0
  314. package/dist/types/meeting/request.type.d.ts +11 -0
  315. package/dist/types/meeting/state.d.ts +9 -0
  316. package/dist/types/meeting/util.d.ts +118 -0
  317. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  318. package/dist/types/meeting-info/collection.d.ts +20 -0
  319. package/dist/types/meeting-info/index.d.ts +69 -0
  320. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  321. package/dist/types/meeting-info/request.d.ts +22 -0
  322. package/dist/types/meeting-info/util.d.ts +2 -0
  323. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  324. package/dist/types/meetings/collection.d.ts +40 -0
  325. package/dist/types/meetings/index.d.ts +389 -0
  326. package/dist/types/meetings/meetings.types.d.ts +4 -0
  327. package/dist/types/meetings/request.d.ts +27 -0
  328. package/dist/types/meetings/util.d.ts +18 -0
  329. package/dist/types/member/index.d.ts +160 -0
  330. package/dist/types/member/types.d.ts +32 -0
  331. package/dist/types/member/util.d.ts +2 -0
  332. package/dist/types/members/collection.d.ts +29 -0
  333. package/dist/types/members/index.d.ts +353 -0
  334. package/dist/types/members/request.d.ts +114 -0
  335. package/dist/types/members/types.d.ts +25 -0
  336. package/dist/types/members/util.d.ts +215 -0
  337. package/dist/types/metrics/constants.d.ts +70 -0
  338. package/dist/types/metrics/index.d.ts +45 -0
  339. package/dist/types/multistream/mediaRequestManager.d.ts +120 -0
  340. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  341. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  342. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  343. package/dist/types/multistream/remoteMediaGroup.d.ts +49 -0
  344. package/dist/types/multistream/remoteMediaManager.d.ts +301 -0
  345. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  346. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  347. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  348. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  349. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  350. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  351. package/dist/types/reachability/index.d.ts +105 -0
  352. package/dist/types/reachability/request.d.ts +39 -0
  353. package/dist/types/reachability/util.d.ts +8 -0
  354. package/dist/types/reactions/constants.d.ts +3 -0
  355. package/dist/types/reactions/reactions.d.ts +4 -0
  356. package/dist/types/reactions/reactions.type.d.ts +52 -0
  357. package/dist/types/reconnection-manager/index.d.ts +136 -0
  358. package/dist/types/recording-controller/enums.d.ts +7 -0
  359. package/dist/types/recording-controller/index.d.ts +207 -0
  360. package/dist/types/recording-controller/util.d.ts +14 -0
  361. package/dist/types/roap/index.d.ts +86 -0
  362. package/dist/types/roap/request.d.ts +39 -0
  363. package/dist/types/roap/turnDiscovery.d.ts +155 -0
  364. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  365. package/dist/types/rtcMetrics/index.d.ts +61 -0
  366. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  367. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  368. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  369. package/dist/types/transcription/index.d.ts +64 -0
  370. package/dist/types/webinar/collection.d.ts +16 -0
  371. package/dist/types/webinar/index.d.ts +5 -0
  372. package/dist/webinar/collection.js +44 -0
  373. package/dist/webinar/collection.js.map +1 -0
  374. package/dist/webinar/index.js +69 -0
  375. package/dist/webinar/index.js.map +1 -0
  376. package/internal-README.md +7 -6
  377. package/package.json +30 -21
  378. package/src/annotation/annotation.types.ts +50 -0
  379. package/src/annotation/constants.ts +36 -0
  380. package/src/annotation/index.ts +328 -0
  381. package/src/breakouts/README.md +220 -0
  382. package/src/breakouts/breakout.ts +188 -0
  383. package/src/breakouts/collection.ts +19 -0
  384. package/src/breakouts/edit-lock-error.ts +25 -0
  385. package/src/breakouts/events.ts +56 -0
  386. package/src/breakouts/index.ts +925 -0
  387. package/src/breakouts/request.ts +55 -0
  388. package/src/breakouts/utils.ts +57 -0
  389. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  390. package/src/common/collection.ts +9 -7
  391. package/src/common/{config.js → config.ts} +1 -1
  392. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  393. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  394. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  395. package/src/common/errors/{media.js → media.ts} +11 -7
  396. package/src/common/errors/no-meeting-info.ts +24 -0
  397. package/src/common/errors/parameter.ts +11 -7
  398. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  399. package/src/common/errors/{permission.js → permission.ts} +10 -6
  400. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  401. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  402. package/src/common/errors/{stats.js → stats.ts} +11 -7
  403. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  404. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  405. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  406. package/src/common/events/{events.js → events.ts} +5 -1
  407. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  408. package/src/common/events/{util.js → util.ts} +2 -3
  409. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  410. package/src/common/logs/logger-proxy.ts +44 -0
  411. package/src/common/logs/{request.js → request.ts} +26 -9
  412. package/src/common/queue.ts +22 -9
  413. package/src/{config.js → config.ts} +19 -21
  414. package/src/constants.ts +296 -27
  415. package/src/controls-options-manager/constants.ts +5 -0
  416. package/src/controls-options-manager/enums.ts +18 -0
  417. package/src/controls-options-manager/index.ts +278 -0
  418. package/src/controls-options-manager/types.ts +59 -0
  419. package/src/controls-options-manager/util.ts +300 -0
  420. package/src/index.ts +45 -0
  421. package/src/interceptors/index.ts +3 -0
  422. package/src/interceptors/locusRetry.ts +67 -0
  423. package/src/interpretation/README.md +60 -0
  424. package/src/interpretation/collection.ts +19 -0
  425. package/src/interpretation/index.ts +349 -0
  426. package/src/interpretation/siLanguage.ts +18 -0
  427. package/src/locus-info/controlsUtils.ts +222 -0
  428. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  429. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  430. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  431. package/src/locus-info/{index.js → index.ts} +561 -119
  432. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  433. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +97 -17
  434. package/src/locus-info/{parser.js → parser.ts} +303 -104
  435. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  436. package/src/media/index.ts +460 -0
  437. package/src/media/properties.ts +283 -0
  438. package/src/media/{util.js → util.ts} +2 -2
  439. package/src/mediaQualityMetrics/config.ts +249 -0
  440. package/src/meeting/in-meeting-actions.ts +199 -3
  441. package/src/meeting/index.ts +8494 -0
  442. package/src/meeting/locusMediaRequest.ts +313 -0
  443. package/src/meeting/muteState.ts +465 -0
  444. package/src/meeting/request.ts +912 -0
  445. package/src/meeting/request.type.ts +13 -0
  446. package/src/meeting/{state.js → state.ts} +50 -35
  447. package/src/meeting/util.ts +799 -0
  448. package/src/meeting/voicea-meeting.ts +122 -0
  449. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  450. package/src/meeting-info/index.ts +210 -0
  451. package/src/meeting-info/meeting-info-v2.ts +423 -0
  452. package/src/meeting-info/{request.js → request.ts} +14 -4
  453. package/src/meeting-info/{util.js → util.ts} +70 -58
  454. package/src/meeting-info/{utilv2.js → utilv2.ts} +99 -82
  455. package/src/meetings/collection.ts +76 -0
  456. package/src/meetings/index.ts +1539 -0
  457. package/src/meetings/meetings.types.ts +12 -0
  458. package/src/meetings/{request.js → request.ts} +34 -25
  459. package/src/meetings/{util.js → util.ts} +133 -38
  460. package/src/member/{index.js → index.ts} +159 -56
  461. package/src/member/types.ts +38 -0
  462. package/src/member/util.ts +397 -0
  463. package/src/members/{collection.js → collection.ts} +10 -2
  464. package/src/members/{index.js → index.ts} +351 -146
  465. package/src/members/request.ts +255 -0
  466. package/src/members/types.ts +29 -0
  467. package/src/members/util.ts +353 -0
  468. package/src/metrics/{constants.js → constants.ts} +17 -6
  469. package/src/metrics/index.ts +73 -0
  470. package/src/multistream/mediaRequestManager.ts +341 -64
  471. package/src/multistream/receiveSlot.ts +69 -26
  472. package/src/multistream/receiveSlotManager.ts +66 -42
  473. package/src/multistream/remoteMedia.ts +40 -5
  474. package/src/multistream/remoteMediaGroup.ts +82 -3
  475. package/src/multistream/remoteMediaManager.ts +401 -81
  476. package/src/multistream/sendSlotManager.ts +199 -0
  477. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  478. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  479. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  480. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  481. package/src/reachability/clusterReachability.ts +320 -0
  482. package/src/reachability/index.ts +371 -0
  483. package/src/reachability/request.ts +50 -35
  484. package/src/reachability/util.ts +24 -0
  485. package/src/reactions/constants.ts +4 -0
  486. package/src/reactions/reactions.ts +104 -0
  487. package/src/reactions/reactions.type.ts +62 -0
  488. package/src/reconnection-manager/index.ts +643 -0
  489. package/src/recording-controller/enums.ts +8 -0
  490. package/src/recording-controller/index.ts +332 -0
  491. package/src/recording-controller/util.ts +75 -0
  492. package/src/roap/index.ts +288 -0
  493. package/src/roap/request.ts +153 -0
  494. package/src/roap/turnDiscovery.ts +374 -70
  495. package/src/rtcMetrics/constants.ts +3 -0
  496. package/src/rtcMetrics/index.ts +166 -0
  497. package/src/statsAnalyzer/global.ts +37 -0
  498. package/src/statsAnalyzer/index.ts +1275 -0
  499. package/src/statsAnalyzer/mqaUtil.ts +440 -0
  500. package/src/transcription/{index.js → index.ts} +46 -39
  501. package/src/webinar/collection.ts +31 -0
  502. package/src/webinar/index.ts +62 -0
  503. package/test/integration/spec/converged-space-meetings.js +233 -0
  504. package/test/integration/spec/journey.js +791 -531
  505. package/test/integration/spec/space-meeting.js +391 -204
  506. package/test/integration/spec/transcription.js +7 -8
  507. package/test/unit/spec/annotation/index.ts +418 -0
  508. package/test/unit/spec/breakouts/breakout.ts +238 -0
  509. package/test/unit/spec/breakouts/collection.ts +15 -0
  510. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  511. package/test/unit/spec/breakouts/events.ts +89 -0
  512. package/test/unit/spec/breakouts/index.ts +1793 -0
  513. package/test/unit/spec/breakouts/request.ts +104 -0
  514. package/test/unit/spec/breakouts/utils.js +72 -0
  515. package/test/unit/spec/common/browser-detection.js +9 -28
  516. package/test/unit/spec/common/queue.js +31 -2
  517. package/test/unit/spec/controls-options-manager/index.js +287 -0
  518. package/test/unit/spec/controls-options-manager/util.js +582 -0
  519. package/test/unit/spec/fixture/locus.js +93 -90
  520. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  521. package/test/unit/spec/interpretation/collection.ts +15 -0
  522. package/test/unit/spec/interpretation/index.ts +625 -0
  523. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  524. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  525. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  526. package/test/unit/spec/locus-info/index.js +1458 -21
  527. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  528. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  529. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  530. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  531. package/test/unit/spec/locus-info/parser.js +119 -44
  532. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  533. package/test/unit/spec/locus-info/selfUtils.js +291 -12
  534. package/test/unit/spec/media/index.ts +194 -111
  535. package/test/unit/spec/media/properties.ts +11 -11
  536. package/test/unit/spec/meeting/in-meeting-actions.ts +96 -3
  537. package/test/unit/spec/meeting/index.js +8616 -1921
  538. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  539. package/test/unit/spec/meeting/muteState.js +568 -207
  540. package/test/unit/spec/meeting/request.js +602 -82
  541. package/test/unit/spec/meeting/utils.js +867 -179
  542. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  543. package/test/unit/spec/meeting-info/index.js +300 -0
  544. package/test/unit/spec/meeting-info/meetinginfov2.js +631 -78
  545. package/test/unit/spec/meeting-info/request.js +7 -9
  546. package/test/unit/spec/meeting-info/util.js +11 -12
  547. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  548. package/test/unit/spec/meetings/collection.js +27 -1
  549. package/test/unit/spec/meetings/index.js +1826 -374
  550. package/test/unit/spec/meetings/utils.js +243 -14
  551. package/test/unit/spec/member/index.js +61 -7
  552. package/test/unit/spec/member/util.js +526 -26
  553. package/test/unit/spec/members/index.js +536 -55
  554. package/test/unit/spec/members/request.js +228 -40
  555. package/test/unit/spec/members/utils.js +217 -4
  556. package/test/unit/spec/metrics/index.js +13 -68
  557. package/test/unit/spec/multistream/mediaRequestManager.ts +1032 -110
  558. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  559. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  560. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  561. package/test/unit/spec/multistream/remoteMediaGroup.ts +350 -5
  562. package/test/unit/spec/multistream/remoteMediaManager.ts +937 -65
  563. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  564. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  565. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  566. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  567. package/test/unit/spec/reachability/index.ts +606 -26
  568. package/test/unit/spec/reachability/request.js +68 -0
  569. package/test/unit/spec/reachability/util.ts +40 -0
  570. package/test/unit/spec/reconnection-manager/index.js +222 -34
  571. package/test/unit/spec/recording-controller/index.js +306 -0
  572. package/test/unit/spec/recording-controller/util.js +229 -0
  573. package/test/unit/spec/roap/index.ts +238 -82
  574. package/test/unit/spec/roap/request.ts +255 -0
  575. package/test/unit/spec/roap/turnDiscovery.ts +707 -110
  576. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  577. package/test/unit/spec/stats-analyzer/index.js +1331 -62
  578. package/test/unit/spec/webinar/collection.ts +13 -0
  579. package/test/unit/spec/webinar/index.ts +60 -0
  580. package/test/utils/cmr.js +44 -42
  581. package/test/utils/constants.js +9 -0
  582. package/test/utils/integrationTestUtils.js +46 -0
  583. package/test/utils/testUtils.js +63 -99
  584. package/test/utils/webex-config.js +22 -18
  585. package/test/utils/webex-test-users.js +65 -50
  586. package/tsconfig.json +6 -0
  587. package/dist/media/internal-media-core-wrapper.js +0 -22
  588. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  589. package/dist/meeting/effectsState.js +0 -327
  590. package/dist/meeting/effectsState.js.map +0 -1
  591. package/dist/metrics/config.js +0 -301
  592. package/dist/metrics/config.js.map +0 -1
  593. package/dist/multistream/multistreamMedia.js +0 -116
  594. package/dist/multistream/multistreamMedia.js.map +0 -1
  595. package/dist/peer-connection-manager/util.js +0 -124
  596. package/dist/peer-connection-manager/util.js.map +0 -1
  597. package/src/common/logs/logger-proxy.js +0 -33
  598. package/src/index.js +0 -15
  599. package/src/locus-info/controlsUtils.js +0 -102
  600. package/src/media/index.js +0 -459
  601. package/src/media/internal-media-core-wrapper.ts +0 -9
  602. package/src/media/properties.js +0 -289
  603. package/src/mediaQualityMetrics/config.js +0 -382
  604. package/src/meeting/effectsState.js +0 -205
  605. package/src/meeting/index.js +0 -6284
  606. package/src/meeting/muteState.js +0 -318
  607. package/src/meeting/request.js +0 -684
  608. package/src/meeting/util.js +0 -506
  609. package/src/meeting-info/index.js +0 -131
  610. package/src/meeting-info/meeting-info-v2.js +0 -255
  611. package/src/meetings/collection.js +0 -40
  612. package/src/meetings/index.js +0 -1015
  613. package/src/member/util.js +0 -254
  614. package/src/members/request.js +0 -131
  615. package/src/members/util.js +0 -258
  616. package/src/metrics/config.js +0 -324
  617. package/src/metrics/index.js +0 -530
  618. package/src/multistream/multistreamMedia.ts +0 -92
  619. package/src/peer-connection-manager/util.ts +0 -117
  620. package/src/reachability/index.js +0 -464
  621. package/src/reconnection-manager/index.js +0 -519
  622. package/src/roap/index.js +0 -220
  623. package/src/roap/request.js +0 -127
  624. package/src/statsAnalyzer/global.js +0 -133
  625. package/src/statsAnalyzer/index.js +0 -1006
  626. package/src/statsAnalyzer/mqaUtil.js +0 -173
  627. package/test/unit/spec/meeting/effectsState.js +0 -291
  628. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  629. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,219 +1,276 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
6
-
7
5
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
8
-
9
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
-
11
7
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
12
-
13
8
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
14
-
15
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
16
-
17
10
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
18
-
19
11
  _Object$defineProperty(exports, "__esModule", {
20
12
  value: true
21
13
  });
22
-
23
14
  exports.default = void 0;
24
-
25
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
26
-
27
15
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
28
-
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
29
17
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
30
-
31
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
32
-
33
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
34
-
19
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
35
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
36
-
37
21
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
38
-
22
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
39
23
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
40
-
41
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
42
-
43
25
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
44
-
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
45
27
  var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
46
-
47
28
  var _uuid = _interopRequireDefault(require("uuid"));
48
-
49
29
  var _webexCore = require("@webex/webex-core");
50
-
51
30
  var _common = require("@webex/common");
52
-
31
+ var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
53
32
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
54
-
55
33
  var _constants = require("../constants");
56
-
34
+ var _util = _interopRequireDefault(require("./util"));
35
+ var _excluded = ["meeting"];
57
36
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
58
-
59
37
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
60
-
61
38
  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); }; }
62
-
63
39
  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; } }
64
-
65
40
  /**
66
41
  * @class MeetingRequest
67
42
  */
68
43
  var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
69
44
  (0, _inherits2.default)(MeetingRequest, _StatelessWebexPlugin);
70
-
71
45
  var _super = _createSuper(MeetingRequest);
72
-
46
+ /**
47
+ * Constructor
48
+ * @param {Object} attrs
49
+ * @param {Object} options
50
+ */
73
51
  function MeetingRequest(attrs, options) {
74
52
  var _this;
75
-
76
53
  (0, _classCallCheck2.default)(this, MeetingRequest);
77
- _this = _super.call(this, attrs, options);
54
+ var meeting = attrs.meeting,
55
+ otherAttrs = (0, _objectWithoutProperties2.default)(attrs, _excluded);
56
+ _this = _super.call(this, otherAttrs, options);
57
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "changeVideoLayoutDebounced", void 0);
58
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingRef", void 0);
59
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusDeltaRequest", void 0);
60
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "buildLocusDeltaRequestOptions", void 0);
61
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getJoinCookie", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
62
+ var joinCookieRaw, joinCookie;
63
+ return _regenerator.default.wrap(function _callee$(_context) {
64
+ while (1) switch (_context.prev = _context.next) {
65
+ case 0:
66
+ _context.next = 2;
67
+ return _this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageJoinCookie).catch(function () {});
68
+ case 2:
69
+ joinCookieRaw = _context.sent;
70
+ if (!joinCookieRaw) {
71
+ _context.next = 13;
72
+ break;
73
+ }
74
+ _context.prev = 4;
75
+ joinCookie = JSON.parse(joinCookieRaw);
76
+ if (!joinCookie) {
77
+ _context.next = 8;
78
+ break;
79
+ }
80
+ return _context.abrupt("return", joinCookie);
81
+ case 8:
82
+ _context.next = 13;
83
+ break;
84
+ case 10:
85
+ _context.prev = 10;
86
+ _context.t0 = _context["catch"](4);
87
+ _loggerProxy.default.logger.error("MeetingRequest#constructor --> Error in parsing join cookie data: ".concat(_context.t0));
88
+ case 13:
89
+ return _context.abrupt("return", null);
90
+ case 14:
91
+ case "end":
92
+ return _context.stop();
93
+ }
94
+ }, _callee, null, [[4, 10]]);
95
+ })));
96
+ _this.locusDeltaRequest = _util.default.generateLocusDeltaRequest(meeting);
97
+ _this.buildLocusDeltaRequestOptions = _util.default.generateBuildLocusDeltaRequestOptions(meeting);
78
98
  _this.changeVideoLayoutDebounced = (0, _debounce2.default)(_this.changeVideoLayout, 2000, {
79
99
  leading: true,
80
100
  trailing: true
81
101
  });
82
102
  return _this;
83
103
  }
104
+
84
105
  /**
85
- * Make a network request to join a meeting
86
- * @param {Object} options
87
- * @param {String} options.sipUri
88
- * @param {String} options.deviceUrl
89
- * @param {String} options.locusUrl
90
- * @param {String} options.resourceId,
91
- * @param {String} options.correlationId
92
- * @param {boolean} options.ensureConversation
93
- * @param {boolean} options.moderator
94
- * @param {boolean} options.pin
95
- * @param {boolean} options.moveToResource
96
- * @param {Object} options.roapMessage
97
- * @returns {Promise}
106
+ * Returns joinCookie from boundedStorage if present.
107
+ * @returns {Object} joinCookie
98
108
  */
99
-
100
-
101
109
  (0, _createClass2.default)(MeetingRequest, [{
102
110
  key: "joinMeeting",
103
- value: function () {
104
- var _joinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
105
- var asResourceOccupant, inviteeAddress, meetingNumber, permissionToken, deviceUrl, locusUrl, resourceId, correlationId, ensureConversation, moderator, pin, moveToResource, roapMessage, preferTranscoding, url, body;
106
- return _regenerator.default.wrap(function _callee$(_context) {
107
- while (1) {
108
- switch (_context.prev = _context.next) {
109
- case 0:
110
- asResourceOccupant = options.asResourceOccupant, inviteeAddress = options.inviteeAddress, meetingNumber = options.meetingNumber, permissionToken = options.permissionToken, deviceUrl = options.deviceUrl, locusUrl = options.locusUrl, resourceId = options.resourceId, correlationId = options.correlationId, ensureConversation = options.ensureConversation, moderator = options.moderator, pin = options.pin, moveToResource = options.moveToResource, roapMessage = options.roapMessage, preferTranscoding = options.preferTranscoding;
111
-
112
- _loggerProxy.default.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
113
-
114
- url = '';
115
- body = {
116
- asResourceOccupant: asResourceOccupant,
117
- device: {
118
- url: deviceUrl,
119
- deviceType: this.config.meetings.deviceType
120
- },
121
- usingResource: resourceId || null,
122
- moveMediaToResource: resourceId && moveToResource || false,
123
- correlationId: correlationId,
124
- respOnlySdp: true,
125
- allowMultiDevice: true,
126
- ensureConversation: ensureConversation || false,
127
- supportsNativeLobby: 1,
128
- clientMediaPreferences: {
129
- preferTranscoding: preferTranscoding !== null && preferTranscoding !== void 0 ? preferTranscoding : true
130
- }
131
- };
132
-
133
- if (this.webex.meetings.clientRegion) {
134
- body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
135
- body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
136
- }
137
-
138
- if (moderator !== undefined) {
139
- body.moderator = moderator;
140
- }
141
-
142
- if (permissionToken) {
143
- body.permissionToken = permissionToken;
144
- }
145
-
146
- if (pin !== undefined) {
147
- body.pin = pin;
148
- }
149
-
150
- if (!locusUrl) {
151
- _context.next = 12;
152
- break;
111
+ value:
112
+ /**
113
+ * Make a network request to join a meeting
114
+ * @param {Object} options
115
+ * @param {String} options.sipUri
116
+ * @param {String} options.deviceUrl
117
+ * @param {String} options.locusUrl
118
+ * @param {String} options.resourceId,
119
+ * @param {String} options.correlationId
120
+ * @param {boolean} options.ensureConversation
121
+ * @param {boolean} options.moderator
122
+ * @param {boolean} options.pin
123
+ * @param {boolean} options.moveToResource
124
+ * @param {Object} options.roapMessage
125
+ * @param {boolean} options.breakoutsSupported
126
+ * @param {String} options.locale,
127
+ * @param {Array} options.deviceCapabilities
128
+ * @param {boolean} options.liveAnnotationSupported
129
+ * @returns {Promise}
130
+ */
131
+ function () {
132
+ var _joinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
133
+ var asResourceOccupant, inviteeAddress, meetingNumber, permissionToken, deviceUrl, locusUrl, locusClusterUrl, resourceId, correlationId, ensureConversation, moderator, pin, moveToResource, roapMessage, reachability, preferTranscoding, breakoutsSupported, locale, _options$deviceCapabi, deviceCapabilities, liveAnnotationSupported, ipVersion, url, joinCookie, body, clusterUrl;
134
+ return _regenerator.default.wrap(function _callee2$(_context2) {
135
+ while (1) switch (_context2.prev = _context2.next) {
136
+ case 0:
137
+ asResourceOccupant = options.asResourceOccupant, inviteeAddress = options.inviteeAddress, meetingNumber = options.meetingNumber, permissionToken = options.permissionToken, deviceUrl = options.deviceUrl, locusUrl = options.locusUrl, locusClusterUrl = options.locusClusterUrl, resourceId = options.resourceId, correlationId = options.correlationId, ensureConversation = options.ensureConversation, moderator = options.moderator, pin = options.pin, moveToResource = options.moveToResource, roapMessage = options.roapMessage, reachability = options.reachability, preferTranscoding = options.preferTranscoding, breakoutsSupported = options.breakoutsSupported, locale = options.locale, _options$deviceCapabi = options.deviceCapabilities, deviceCapabilities = _options$deviceCapabi === void 0 ? [] : _options$deviceCapabi, liveAnnotationSupported = options.liveAnnotationSupported, ipVersion = options.ipVersion;
138
+ _loggerProxy.default.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
139
+ url = '';
140
+ _context2.next = 5;
141
+ return this.getJoinCookie();
142
+ case 5:
143
+ joinCookie = _context2.sent;
144
+ body = {
145
+ asResourceOccupant: asResourceOccupant,
146
+ device: {
147
+ url: deviceUrl,
148
+ // @ts-ignore - config comes from registerPlugin
149
+ deviceType: this.config.meetings.deviceType
150
+ },
151
+ usingResource: resourceId || null,
152
+ moveMediaToResource: resourceId && moveToResource || false,
153
+ correlationId: correlationId,
154
+ respOnlySdp: true,
155
+ allowMultiDevice: true,
156
+ ensureConversation: ensureConversation || false,
157
+ supportsNativeLobby: 1,
158
+ clientMediaPreferences: {
159
+ preferTranscoding: preferTranscoding !== null && preferTranscoding !== void 0 ? preferTranscoding : true,
160
+ joinCookie: joinCookie,
161
+ ipver: ipVersion
153
162
  }
154
-
155
- url = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
156
- _context.next = 24;
163
+ };
164
+ if (breakoutsSupported) {
165
+ deviceCapabilities.push(_constants.BREAKOUTS.BREAKOUTS_SUPPORTED);
166
+ }
167
+ if (liveAnnotationSupported) {
168
+ deviceCapabilities.push(_constants.ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
169
+ }
170
+
171
+ // append installationId to device config if it exists
172
+ // @ts-ignore
173
+ if (this.webex.internal.device.config.installationId) {
174
+ // @ts-ignore
175
+ body.device.installationId = this.webex.internal.device.config.installationId;
176
+ }
177
+ if (locale) {
178
+ body.locale = locale;
179
+ }
180
+
181
+ // add deviceCapabilities prop
182
+ if (deviceCapabilities.length) {
183
+ body.deviceCapabilities = deviceCapabilities;
184
+ }
185
+ // @ts-ignore
186
+ if (this.webex.meetings.geoHintInfo) {
187
+ // @ts-ignore
188
+ body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
189
+ // @ts-ignore
190
+ body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
191
+ body.device.localIp =
192
+ // @ts-ignore
193
+ _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) || undefined;
194
+ }
195
+ if (moderator !== undefined) {
196
+ body.moderator = moderator;
197
+ }
198
+ if (permissionToken) {
199
+ body.permissionToken = permissionToken;
200
+ }
201
+ if (pin !== undefined) {
202
+ body.pin = pin;
203
+ }
204
+ if (!locusUrl) {
205
+ _context2.next = 20;
157
206
  break;
158
-
159
- case 12:
160
- if (!(inviteeAddress || meetingNumber)) {
161
- _context.next = 24;
162
- break;
163
- }
164
-
165
- _context.prev = 13;
166
- _context.next = 16;
167
- return this.webex.internal.services.waitForCatalog('postauth');
168
-
169
- case 16:
170
- url = "".concat(this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
171
- body.invitee = {
172
- address: inviteeAddress || "wbxmn:".concat(meetingNumber)
173
- };
174
- _context.next = 24;
207
+ }
208
+ url = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
209
+ _context2.next = 37;
210
+ break;
211
+ case 20:
212
+ if (!(inviteeAddress || meetingNumber)) {
213
+ _context2.next = 37;
175
214
  break;
176
-
177
- case 20:
178
- _context.prev = 20;
179
- _context.t0 = _context["catch"](13);
180
-
181
- _loggerProxy.default.logger.error("Meeting:request#joinMeeting Error Joining ".concat(inviteeAddress || meetingNumber, " --> ").concat(_context.t0));
182
-
183
- throw _context.t0;
184
-
185
- case 24:
186
- // TODO: -- this will be resolved in SDK request
187
- url = url.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
188
-
189
- if (resourceId === inviteeAddress) {
190
- body.callPreferences = {
191
- requestedMedia: [_constants._SLIDES_]
192
- };
193
- }
194
-
195
- if (roapMessage) {
196
- body.localMedias = roapMessage.localMedias;
197
- }
198
-
199
- return _context.abrupt("return", this.request({
200
- method: _constants.HTTP_VERBS.POST,
201
- uri: url,
202
- body: body
203
- }));
204
-
205
- case 28:
206
- case "end":
207
- return _context.stop();
208
- }
215
+ }
216
+ _context2.prev = 21;
217
+ if (!locusClusterUrl) {
218
+ _context2.next = 26;
219
+ break;
220
+ }
221
+ clusterUrl = "https://".concat(locusClusterUrl, "/locus/api/v1");
222
+ _context2.next = 29;
223
+ break;
224
+ case 26:
225
+ _context2.next = 28;
226
+ return this.webex.internal.services.waitForCatalog('postauth');
227
+ case 28:
228
+ // @ts-ignore
229
+ clusterUrl = this.webex.internal.services.get('locus');
230
+ case 29:
231
+ url = "".concat(clusterUrl, "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
232
+ body.invitee = {
233
+ address: inviteeAddress || "wbxmn:".concat(meetingNumber)
234
+ };
235
+ _context2.next = 37;
236
+ break;
237
+ case 33:
238
+ _context2.prev = 33;
239
+ _context2.t0 = _context2["catch"](21);
240
+ _loggerProxy.default.logger.error("Meeting:request#joinMeeting Error Joining ".concat(inviteeAddress || meetingNumber, " --> ").concat(_context2.t0));
241
+ throw _context2.t0;
242
+ case 37:
243
+ // TODO: -- this will be resolved in SDK request
244
+ url = url.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
245
+ if (resourceId === inviteeAddress) {
246
+ body.callPreferences = {
247
+ requestedMedia: [_constants._SLIDES_]
248
+ };
249
+ }
250
+ if (roapMessage || reachability) {
251
+ body.localMedias = [{
252
+ localSdp: (0, _stringify.default)({
253
+ roapMessage: roapMessage,
254
+ reachability: reachability
255
+ })
256
+ }];
257
+ }
258
+
259
+ /// @ts-ignore
260
+ return _context2.abrupt("return", this.request({
261
+ method: _constants.HTTP_VERBS.POST,
262
+ uri: url,
263
+ body: body
264
+ }));
265
+ case 41:
266
+ case "end":
267
+ return _context2.stop();
209
268
  }
210
- }, _callee, this, [[13, 20]]);
269
+ }, _callee2, this, [[21, 33]]);
211
270
  }));
212
-
213
271
  function joinMeeting(_x) {
214
272
  return _joinMeeting.apply(this, arguments);
215
273
  }
216
-
217
274
  return joinMeeting;
218
275
  }()
219
276
  /**
@@ -224,46 +281,44 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
224
281
  * @returns {Promise}
225
282
  * @private
226
283
  */
227
-
228
284
  }, {
229
285
  key: "refreshCaptcha",
230
- value: function refreshCaptcha(_ref) {
231
- var captchaRefreshUrl = _ref.captchaRefreshUrl,
232
- captchaId = _ref.captchaId;
286
+ value: function refreshCaptcha(_ref2) {
287
+ var captchaRefreshUrl = _ref2.captchaRefreshUrl,
288
+ captchaId = _ref2.captchaId;
233
289
  var body = {
234
290
  captchaId: captchaId
235
291
  };
292
+
293
+ // @ts-ignore
236
294
  return this.request({
237
295
  method: _constants.HTTP_VERBS.POST,
238
296
  uri: captchaRefreshUrl,
239
297
  body: body
240
298
  }).catch(function (err) {
241
299
  _loggerProxy.default.logger.error("Meeting:request#refreshCaptcha --> Error: ".concat(err));
242
-
243
300
  throw err;
244
301
  });
245
302
  }
303
+
246
304
  /**
247
305
  * Make a network request to add a dial in device
248
306
  * @param {Object} options
249
307
  * @param {String} options.correlationId
250
- * @param {String} options.localUrl url for the meeting
308
+ * @param {String} options.locusUrl url for the meeting
251
309
  * @param {String} options.dialInUrl identifier for the to-be provisioned device
252
310
  * @param {String} options.clientUrl identifier for the web device
253
311
  * @returns {Promise}
254
312
  * @private
255
313
  */
256
-
257
314
  }, {
258
315
  key: "dialIn",
259
- value: function dialIn(_ref2) {
260
- var locusUrl = _ref2.locusUrl,
261
- dialInUrl = _ref2.dialInUrl,
262
- clientUrl = _ref2.clientUrl,
263
- correlationId = _ref2.correlationId;
264
-
316
+ value: function dialIn(_ref3) {
317
+ var locusUrl = _ref3.locusUrl,
318
+ dialInUrl = _ref3.dialInUrl,
319
+ clientUrl = _ref3.clientUrl,
320
+ correlationId = _ref3.correlationId;
265
321
  _loggerProxy.default.logger.info('Meeting:request#dialIn --> Provisioning a dial in device', correlationId);
266
-
267
322
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
268
323
  var body = {
269
324
  device: {
@@ -274,39 +329,38 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
274
329
  },
275
330
  correlationId: correlationId
276
331
  };
277
- return this.request({
332
+
333
+ // @ts-ignore
334
+ return this.locusDeltaRequest({
278
335
  method: _constants.HTTP_VERBS.POST,
279
336
  uri: uri,
280
337
  body: body
281
338
  }).catch(function (err) {
282
339
  _loggerProxy.default.logger.error("Meeting:request#dialIn --> Error provisioning a dial in device, error ".concat(err));
283
-
284
340
  throw err;
285
341
  });
286
342
  }
343
+
287
344
  /**
288
345
  * Make a network request to add a dial out device
289
346
  * @param {Object} options
290
347
  * @param {String} options.correlationId
291
- * @param {String} options.localUrl url for the meeting
348
+ * @param {String} options.locusUrl url for the meeting
292
349
  * @param {String} options.dialOutUrl identifier for the to-be provisioned device
293
350
  * @param {String} options.phoneNumber phone number to dial out to
294
351
  * @param {String} options.clientUrl identifier for the web device
295
352
  * @returns {Promise}
296
353
  * @private
297
354
  */
298
-
299
355
  }, {
300
356
  key: "dialOut",
301
- value: function dialOut(_ref3) {
302
- var locusUrl = _ref3.locusUrl,
303
- dialOutUrl = _ref3.dialOutUrl,
304
- phoneNumber = _ref3.phoneNumber,
305
- clientUrl = _ref3.clientUrl,
306
- correlationId = _ref3.correlationId;
307
-
357
+ value: function dialOut(_ref4) {
358
+ var locusUrl = _ref4.locusUrl,
359
+ dialOutUrl = _ref4.dialOutUrl,
360
+ phoneNumber = _ref4.phoneNumber,
361
+ clientUrl = _ref4.clientUrl,
362
+ correlationId = _ref4.correlationId;
308
363
  _loggerProxy.default.logger.info('Meeting:request#dialOut --> Provisioning a dial out device', correlationId);
309
-
310
364
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
311
365
  var body = {
312
366
  device: {
@@ -318,78 +372,41 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
318
372
  },
319
373
  correlationId: correlationId
320
374
  };
321
- return this.request({
375
+
376
+ // @ts-ignore
377
+ return this.locusDeltaRequest({
322
378
  method: _constants.HTTP_VERBS.POST,
323
379
  uri: uri,
324
380
  body: body
325
381
  }).catch(function (err) {
326
382
  _loggerProxy.default.logger.error("Meeting:request#dialOut --> Error provisioning a dial out device, error ".concat(err));
327
-
328
383
  throw err;
329
384
  });
330
385
  }
331
- /**
332
- * Syns the missed delta event
333
- * @param {Object} options
334
- * @param {boolen} options.desync flag to get partial or whole locus object
335
- * @param {String} options.syncUrl sync url to get ht elatest locus delta
336
- * @returns {Promise}
337
- */
338
386
 
339
- }, {
340
- key: "syncMeeting",
341
- value: function syncMeeting(options) {
342
- /* eslint-disable no-else-return */
343
- var desync = options.desync;
344
- var syncUrl = options.syncUrl;
345
- /* istanbul ignore else */
346
-
347
- if (desync) {
348
- // check for existing URL parameters
349
- syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat("".concat(_constants.LOCUS.SYNCDEBUG, "=").concat(desync));
350
- }
351
-
352
- return this.request({
353
- method: _constants.HTTP_VERBS.GET,
354
- uri: syncUrl
355
- }) // TODO: Handle if delta sync failed . Get the full locus object
356
- .catch(function (err) {
357
- _loggerProxy.default.logger.error("Meeting:request#syncMeeting --> Error syncing meeting, error ".concat(err));
358
-
359
- return err;
360
- });
361
- }
362
387
  /**
363
- * Request to get the complete locus object
388
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
364
389
  * @param {Object} options
365
- * @param {boolen} options.desync flag to get partial or whole locus object
366
390
  * @param {String} options.locusUrl sync url to get ht elatest locus delta
367
391
  * @returns {Promise}
368
392
  */
369
-
370
393
  }, {
371
- key: "getFullLocus",
372
- value: function getFullLocus(options) {
373
- var locusUrl = options.locusUrl;
374
- var desync = options.desync;
375
-
376
- if (locusUrl) {
377
- if (desync) {
378
- locusUrl += "?".concat(_constants.LOCUS.SYNCDEBUG, "=").concat(desync);
379
- }
380
-
394
+ key: "getLocusDTO",
395
+ value: function getLocusDTO(options) {
396
+ var url = options.url;
397
+ if (url) {
398
+ // @ts-ignore
381
399
  return this.request({
382
400
  method: _constants.HTTP_VERBS.GET,
383
- uri: locusUrl
401
+ uri: url
384
402
  }).catch(function (err) {
385
- _loggerProxy.default.logger.error("Meeting:request#getFullLocus --> Error getting full locus, error ".concat(err));
386
-
387
- return err;
403
+ _loggerProxy.default.logger.error("Meeting:request#getLocusDTO --> Error getting latest locus, error ".concat(err));
404
+ throw err;
388
405
  });
389
406
  }
390
-
391
407
  return _promise.default.reject();
392
408
  }
409
+
393
410
  /**
394
411
  * Make a network request to make a provisioned phone leave the meeting
395
412
  * @param {Object} options
@@ -400,17 +417,14 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
400
417
  * @returns {Promise}
401
418
  * @private
402
419
  */
403
-
404
420
  }, {
405
421
  key: "disconnectPhoneAudio",
406
- value: function disconnectPhoneAudio(_ref4) {
407
- var locusUrl = _ref4.locusUrl,
408
- phoneUrl = _ref4.phoneUrl,
409
- correlationId = _ref4.correlationId,
410
- selfId = _ref4.selfId;
411
-
422
+ value: function disconnectPhoneAudio(_ref5) {
423
+ var locusUrl = _ref5.locusUrl,
424
+ phoneUrl = _ref5.phoneUrl,
425
+ correlationId = _ref5.correlationId,
426
+ selfId = _ref5.selfId;
412
427
  _loggerProxy.default.logger.info("Meeting:request#disconnectPhoneAudio --> request phone ".concat(phoneUrl, " to leave"), correlationId);
413
-
414
428
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
415
429
  var body = {
416
430
  device: {
@@ -419,53 +433,95 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
419
433
  },
420
434
  correlationId: correlationId
421
435
  };
422
- return this.request({
436
+
437
+ // @ts-ignore
438
+ return this.locusDeltaRequest({
423
439
  method: _constants.HTTP_VERBS.PUT,
424
440
  uri: uri,
425
441
  body: body
426
442
  }).catch(function (err) {
427
443
  _loggerProxy.default.logger.error("Meeting:request#disconnectPhoneAudio --> Error when requesting phone ".concat(phoneUrl, " to leave, error ").concat(err));
428
-
429
444
  throw err;
430
445
  });
431
446
  }
447
+
432
448
  /**
433
- * Make a network request to leave a meeting
449
+ * Prepares request options to to leave a meeting
434
450
  * @param {Object} options
435
451
  * @param {Url} options.locusUrl
436
452
  * @param {String} options.selfId
437
453
  * @param {Url} options.deviceUrl
438
454
  * @param {String} options.resourceId,
439
455
  * @param {String} options.correlationId
440
- * @returns {Promise}
456
+ * @returns {Object} request options
441
457
  */
458
+ }, {
459
+ key: "prepareLeaveMeetingRequestOptions",
460
+ value: function prepareLeaveMeetingRequestOptions(_ref6) {
461
+ var locusUrl = _ref6.locusUrl,
462
+ selfId = _ref6.selfId,
463
+ url = _ref6.deviceUrl,
464
+ resourceId = _ref6.resourceId,
465
+ correlationId = _ref6.correlationId;
466
+ var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
467
+ var body = {
468
+ device: {
469
+ // @ts-ignore
470
+ deviceType: this.config.meetings.deviceType,
471
+ url: url
472
+ },
473
+ usingResource: resourceId || null,
474
+ correlationId: correlationId
475
+ };
476
+ return {
477
+ method: _constants.HTTP_VERBS.PUT,
478
+ uri: uri,
479
+ body: body
480
+ };
481
+ }
442
482
 
483
+ /**
484
+ * Make a network request to leave a meeting
485
+ * @param {Object} options
486
+ * @returns {Promise}
487
+ */
443
488
  }, {
444
489
  key: "leaveMeeting",
445
- value: function leaveMeeting(_ref5) {
446
- var locusUrl = _ref5.locusUrl,
447
- selfId = _ref5.selfId,
448
- url = _ref5.deviceUrl,
449
- resourceId = _ref5.resourceId,
450
- correlationId = _ref5.correlationId;
451
-
490
+ value: function leaveMeeting(_ref7) {
491
+ var locusUrl = _ref7.locusUrl,
492
+ selfId = _ref7.selfId,
493
+ url = _ref7.deviceUrl,
494
+ resourceId = _ref7.resourceId,
495
+ correlationId = _ref7.correlationId;
452
496
  _loggerProxy.default.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
453
-
454
497
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
455
498
  var body = {
456
499
  device: {
500
+ // @ts-ignore
457
501
  deviceType: this.config.meetings.deviceType,
458
502
  url: url
459
503
  },
460
504
  usingResource: resourceId || null,
461
505
  correlationId: correlationId
462
506
  };
463
- return this.request({
507
+ return this.locusDeltaRequest({
464
508
  method: _constants.HTTP_VERBS.PUT,
465
509
  uri: uri,
466
510
  body: body
467
511
  });
468
512
  }
513
+
514
+ /**
515
+ * Builds request options to leave a meeting
516
+ * @param {Object} options
517
+ * @returns {Object} request options
518
+ */
519
+ }, {
520
+ key: "buildLeaveMeetingRequestOptions",
521
+ value: function buildLeaveMeetingRequestOptions(options) {
522
+ return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
523
+ }
524
+
469
525
  /**
470
526
  * Make a network request to acknowledge a meeting
471
527
  * @param {Object} options
@@ -474,49 +530,31 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
474
530
  * @param {String} options.correlationId
475
531
  * @returns {Promise}
476
532
  */
477
-
478
533
  }, {
479
534
  key: "acknowledgeMeeting",
480
535
  value: function acknowledgeMeeting(options) {
481
536
  var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(_constants.ALERT);
482
537
  var body = {
483
538
  device: {
539
+ // @ts-ignore
484
540
  deviceType: this.config.meetings.deviceType,
485
541
  url: options.deviceUrl
486
542
  },
487
543
  correlationId: options.correlationId
488
544
  };
489
- return this.request({
545
+ return this.locusDeltaRequest({
490
546
  method: _constants.HTTP_VERBS.PUT,
491
547
  uri: uri,
492
548
  body: body
493
549
  });
494
550
  }
551
+
495
552
  /**
496
- * Make a network request to acknowledge a meeting
553
+ * Makes a network request to lock the meeting
497
554
  * @param {Object} options
498
- * @param {String} options.locusUrl
499
- * @param {String} options.deviceUrl
500
- * @param {String} options.id
555
+ * @param {Boolean} options.lock Whether it is locked or not
501
556
  * @returns {Promise}
502
557
  */
503
-
504
- }, {
505
- key: "recordMeeting",
506
- value: function recordMeeting(options) {
507
- var uri = "".concat(options.locusUrl, "/").concat(_constants.CONTROLS);
508
- var body = {
509
- record: {
510
- recording: options.recording,
511
- paused: options.paused
512
- }
513
- };
514
- return this.request({
515
- method: _constants.HTTP_VERBS.PATCH,
516
- uri: uri,
517
- body: body
518
- });
519
- }
520
558
  }, {
521
559
  key: "lockMeeting",
522
560
  value: function lockMeeting(options) {
@@ -526,12 +564,13 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
526
564
  locked: options.lock
527
565
  }
528
566
  };
529
- return this.request({
567
+ return this.locusDeltaRequest({
530
568
  method: _constants.HTTP_VERBS.PATCH,
531
569
  uri: uri,
532
570
  body: body
533
571
  });
534
572
  }
573
+
535
574
  /**
536
575
  * Make a network request to decline a meeting
537
576
  * @param {Object} options
@@ -540,64 +579,26 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
540
579
  * @param {String} options.reason
541
580
  * @returns {Promise}
542
581
  */
543
-
544
582
  }, {
545
583
  key: "declineMeeting",
546
584
  value: function declineMeeting(options) {
547
585
  var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(_constants.DECLINE);
548
-
549
586
  var body = _objectSpread({
550
587
  device: {
588
+ // @ts-ignore
551
589
  deviceType: this.config.meetings.deviceType,
552
590
  url: options.deviceUrl
553
591
  }
554
592
  }, options.reason && {
555
593
  reason: options.reason
556
594
  });
557
-
558
- return this.request({
595
+ return this.locusDeltaRequest({
559
596
  method: _constants.HTTP_VERBS.PUT,
560
597
  uri: uri,
561
598
  body: body
562
599
  });
563
600
  }
564
- /**
565
- * Toggle remote audio and/or video
566
- * @param {Object} options options for toggling
567
- * @param {String} options.selfId Locus self id??
568
- * @param {String} options.locusUrl Locus url
569
- * @param {String} options.deviceUrl Url of a device
570
- * @param {String} options.resourceId Populated if you are paired to a device
571
- * @param {String} options.localMedias local sdps
572
- * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
573
- * @returns {Promise}
574
- */
575
-
576
- }, {
577
- key: "remoteAudioVideoToggle",
578
- value: function remoteAudioVideoToggle(options) {
579
- var _options$preferTransc;
580
601
 
581
- var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(options.selfId, "/").concat(_constants.MEDIA);
582
- var body = {
583
- device: {
584
- deviceType: this.config.meetings.deviceType,
585
- url: options.deviceUrl
586
- },
587
- usingResource: options.resourceId || null,
588
- correlationId: options.correlationId,
589
- respOnlySdp: true,
590
- localMedias: options.localMedias,
591
- clientMediaPreferences: {
592
- preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
593
- }
594
- };
595
- return this.request({
596
- method: _constants.HTTP_VERBS.PUT,
597
- uri: uri,
598
- body: body
599
- });
600
- }
601
602
  /**
602
603
  * change the content floor grant
603
604
  * @param {Object} options options for floor grant
@@ -606,22 +607,23 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
606
607
  * @param {String} options.deviceUrl Url of a device
607
608
  * @param {String} options.resourceId Populated if you are paired to a device
608
609
  * @param {String} options.uri floor grant uri
610
+ * @param {String} options.shareInstanceId id for current share
609
611
  * @returns {Promise}
610
612
  */
611
-
612
613
  }, {
613
614
  key: "changeMeetingFloor",
614
615
  value: function changeMeetingFloor(options) {
615
616
  var floorReq = {
616
617
  disposition: options.disposition
617
618
  };
618
- /* istanbul ignore else */
619
619
 
620
+ /* istanbul ignore else */
620
621
  if (options.disposition === _constants.FLOOR_ACTION.GRANTED) {
621
622
  floorReq = {
622
623
  beneficiary: {
623
624
  url: options.personUrl,
624
625
  devices: [{
626
+ // @ts-ignore
625
627
  deviceType: this.config.meetings.deviceType,
626
628
  url: options.deviceUrl
627
629
  }]
@@ -632,22 +634,28 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
632
634
  }
633
635
  };
634
636
  }
635
-
636
637
  var body = {
637
638
  floor: floorReq,
638
639
  resourceUrl: options.resourceUrl
639
640
  };
640
-
641
+ if (options !== null && options !== void 0 && options.shareInstanceId) {
642
+ body.floor.shareInstanceId = options.shareInstanceId;
643
+ }
641
644
  if (options !== null && options !== void 0 && options.resourceToken) {
642
645
  body.resourceToken = options === null || options === void 0 ? void 0 : options.resourceToken;
643
646
  }
647
+ if (options !== null && options !== void 0 && options.annotationInfo) {
648
+ body.annotation = options === null || options === void 0 ? void 0 : options.annotationInfo;
649
+ }
644
650
 
651
+ // @ts-ignore
645
652
  return this.request({
646
653
  uri: options.uri,
647
654
  method: _constants.HTTP_VERBS.PUT,
648
655
  body: body
649
656
  });
650
657
  }
658
+
651
659
  /**
652
660
  * Sends a request to the DTMF endpoint to send tones
653
661
  * @param {Object} options
@@ -656,14 +664,14 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
656
664
  * @param {String} options.tones a string of one or more DTMF tones to send
657
665
  * @returns {Promise}
658
666
  */
659
-
660
667
  }, {
661
668
  key: "sendDTMF",
662
- value: function sendDTMF(_ref6) {
663
- var locusUrl = _ref6.locusUrl,
664
- deviceUrl = _ref6.deviceUrl,
665
- tones = _ref6.tones;
666
- return this.request({
669
+ value: function sendDTMF(_ref8) {
670
+ var locusUrl = _ref8.locusUrl,
671
+ deviceUrl = _ref8.deviceUrl,
672
+ tones = _ref8.tones;
673
+ // @ts-ignore
674
+ return this.locusDeltaRequest({
667
675
  method: _constants.HTTP_VERBS.POST,
668
676
  uri: "".concat(locusUrl, "/").concat(_constants.SEND_DTMF_ENDPOINT),
669
677
  body: {
@@ -675,6 +683,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
675
683
  }
676
684
  });
677
685
  }
686
+
678
687
  /**
679
688
  * Sends a request to the controls endpoint to set the video layout
680
689
  * @param {Object} options
@@ -689,25 +698,21 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
689
698
  * @param {Number} options.content.height preferred height of content share stream
690
699
  * @returns {Promise}
691
700
  */
692
-
693
701
  }, {
694
702
  key: "changeVideoLayout",
695
- value: function changeVideoLayout(_ref7) {
696
- var locusUrl = _ref7.locusUrl,
697
- deviceUrl = _ref7.deviceUrl,
698
- layoutType = _ref7.layoutType,
699
- main = _ref7.main,
700
- content = _ref7.content;
701
-
703
+ value: function changeVideoLayout(_ref9) {
704
+ var locusUrl = _ref9.locusUrl,
705
+ deviceUrl = _ref9.deviceUrl,
706
+ layoutType = _ref9.layoutType,
707
+ main = _ref9.main,
708
+ content = _ref9.content;
702
709
  // send main/content renderInfo only if both width and height are specified
703
710
  if (main && (!main.width || !main.height)) {
704
711
  return _promise.default.reject(new Error("Both width and height must be specified. One of them is missing for main: ".concat((0, _stringify.default)(main))));
705
712
  }
706
-
707
713
  if (content && (!content.width || !content.height)) {
708
714
  return _promise.default.reject(new Error("Both width and height must be specified. One of them is missing for content: ".concat((0, _stringify.default)(content))));
709
715
  }
710
-
711
716
  var renderInfoMain = main ? {
712
717
  width: main.width,
713
718
  height: main.height
@@ -722,7 +727,9 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
722
727
  content: renderInfoContent
723
728
  }
724
729
  } : undefined;
725
- return this.request({
730
+
731
+ // @ts-ignore
732
+ return this.locusDeltaRequest({
726
733
  method: _constants.HTTP_VERBS.PUT,
727
734
  uri: "".concat(locusUrl, "/").concat(_constants.CONTROLS),
728
735
  body: {
@@ -734,42 +741,109 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
734
741
  }
735
742
  });
736
743
  }
744
+
737
745
  /**
738
746
  * Make a network request to end meeting for all
739
747
  * @param {Object} options
740
748
  * @param {Url} options.locusUrl
741
749
  * @returns {Promise}
742
750
  */
743
-
744
751
  }, {
745
752
  key: "endMeetingForAll",
746
- value: function endMeetingForAll(_ref8) {
747
- var locusUrl = _ref8.locusUrl;
753
+ value: function endMeetingForAll(_ref10) {
754
+ var locusUrl = _ref10.locusUrl;
748
755
  var uri = "".concat(locusUrl, "/").concat(_constants.END);
749
- return this.request({
756
+
757
+ // @ts-ignore
758
+ return this.locusDeltaRequest({
750
759
  method: _constants.HTTP_VERBS.POST,
751
760
  uri: uri
752
761
  });
753
762
  }
763
+
754
764
  /**
755
765
  * Send a locus keepAlive (used in lobby)
756
766
  * @param {Object} options
757
767
  * @param {Url} options.keepAliveUrl
758
768
  * @returns {Promise}
759
769
  */
760
-
761
770
  }, {
762
771
  key: "keepAlive",
763
- value: function keepAlive(_ref9) {
764
- var keepAliveUrl = _ref9.keepAliveUrl;
772
+ value: function keepAlive(_ref11) {
773
+ var keepAliveUrl = _ref11.keepAliveUrl;
774
+ // @ts-ignore
765
775
  return this.request({
766
776
  method: _constants.HTTP_VERBS.GET,
767
777
  uri: keepAliveUrl
768
778
  });
769
779
  }
780
+
781
+ /**
782
+ * Make a network request to send a reaction.
783
+ * @param {Object} options
784
+ * @param {Url} options.reactionChannelUrl
785
+ * @param {Reaction} options.reaction
786
+ * @param {string} options.senderID
787
+ * @returns {Promise}
788
+ */
789
+ }, {
790
+ key: "sendReaction",
791
+ value: function sendReaction(_ref12) {
792
+ var reactionChannelUrl = _ref12.reactionChannelUrl,
793
+ reaction = _ref12.reaction,
794
+ participantId = _ref12.participantId;
795
+ var uri = reactionChannelUrl;
796
+
797
+ // @ts-ignore
798
+ return this.request({
799
+ method: _constants.HTTP_VERBS.POST,
800
+ uri: uri,
801
+ body: {
802
+ sender: {
803
+ participantId: participantId
804
+ },
805
+ reaction: reaction
806
+ }
807
+ });
808
+ }
809
+
810
+ /**
811
+ * Make a network request to enable or disable reactions.
812
+ * @param {boolean} options.enable - determines if we need to enable or disable.
813
+ * @param {locusUrl} options.locusUrl
814
+ * @returns {Promise}
815
+ */
816
+ }, {
817
+ key: "toggleReactions",
818
+ value: function toggleReactions(_ref13) {
819
+ var enable = _ref13.enable,
820
+ locusUrl = _ref13.locusUrl,
821
+ requestingParticipantId = _ref13.requestingParticipantId;
822
+ var uri = "".concat(locusUrl, "/").concat(_constants.CONTROLS);
823
+
824
+ // @ts-ignore
825
+ return this.locusDeltaRequest({
826
+ method: _constants.HTTP_VERBS.PUT,
827
+ uri: uri,
828
+ body: {
829
+ reactions: {
830
+ enabled: enable
831
+ },
832
+ requestingParticipantId: requestingParticipantId
833
+ }
834
+ });
835
+ }
836
+ }, {
837
+ key: "getLocusStatusByUrl",
838
+ value: function getLocusStatusByUrl(locusUrl) {
839
+ // @ts-ignore
840
+ return this.request({
841
+ method: _constants.HTTP_VERBS.GET,
842
+ uri: locusUrl
843
+ });
844
+ }
770
845
  }]);
771
846
  return MeetingRequest;
772
847
  }(_webexCore.StatelessWebexPlugin);
773
-
774
848
  exports.default = MeetingRequest;
775
849
  //# sourceMappingURL=request.js.map