@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104

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