@webex/plugin-meetings 3.0.0-beta.31 → 3.0.0-beta.310

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 (378) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +94 -15
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +709 -35
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/utils.js +45 -1
  17. package/dist/breakouts/utils.js.map +1 -1
  18. package/dist/common/errors/no-meeting-info.js +51 -0
  19. package/dist/common/errors/no-meeting-info.js.map +1 -0
  20. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  21. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +48 -7
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/logs/logger-proxy.js +1 -1
  25. package/dist/common/logs/logger-proxy.js.map +1 -1
  26. package/dist/common/logs/request.js +5 -1
  27. package/dist/common/logs/request.js.map +1 -1
  28. package/dist/common/queue.js +24 -9
  29. package/dist/common/queue.js.map +1 -1
  30. package/dist/config.js +5 -11
  31. package/dist/config.js.map +1 -1
  32. package/dist/constants.js +233 -29
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controls-options-manager/enums.js +14 -2
  35. package/dist/controls-options-manager/enums.js.map +1 -1
  36. package/dist/controls-options-manager/index.js +109 -15
  37. package/dist/controls-options-manager/index.js.map +1 -1
  38. package/dist/controls-options-manager/types.js +7 -0
  39. package/dist/controls-options-manager/types.js.map +1 -0
  40. package/dist/controls-options-manager/util.js +309 -18
  41. package/dist/controls-options-manager/util.js.map +1 -1
  42. package/dist/index.js +112 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/interpretation/collection.js +23 -0
  45. package/dist/interpretation/collection.js.map +1 -0
  46. package/dist/interpretation/index.js +366 -0
  47. package/dist/interpretation/index.js.map +1 -0
  48. package/dist/interpretation/siLanguage.js +25 -0
  49. package/dist/interpretation/siLanguage.js.map +1 -0
  50. package/dist/locus-info/controlsUtils.js +91 -2
  51. package/dist/locus-info/controlsUtils.js.map +1 -1
  52. package/dist/locus-info/index.js +383 -62
  53. package/dist/locus-info/index.js.map +1 -1
  54. package/dist/locus-info/infoUtils.js +7 -1
  55. package/dist/locus-info/infoUtils.js.map +1 -1
  56. package/dist/locus-info/mediaSharesUtils.js +57 -1
  57. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  58. package/dist/locus-info/parser.js +249 -72
  59. package/dist/locus-info/parser.js.map +1 -1
  60. package/dist/locus-info/selfUtils.js +89 -14
  61. package/dist/locus-info/selfUtils.js.map +1 -1
  62. package/dist/media/index.js +61 -116
  63. package/dist/media/index.js.map +1 -1
  64. package/dist/media/properties.js +73 -124
  65. package/dist/media/properties.js.map +1 -1
  66. package/dist/meeting/in-meeting-actions.js +82 -2
  67. package/dist/meeting/in-meeting-actions.js.map +1 -1
  68. package/dist/meeting/index.js +3777 -2929
  69. package/dist/meeting/index.js.map +1 -1
  70. package/dist/meeting/locusMediaRequest.js +292 -0
  71. package/dist/meeting/locusMediaRequest.js.map +1 -0
  72. package/dist/meeting/muteState.js +230 -124
  73. package/dist/meeting/muteState.js.map +1 -1
  74. package/dist/meeting/request.js +260 -196
  75. package/dist/meeting/request.js.map +1 -1
  76. package/dist/meeting/util.js +601 -417
  77. package/dist/meeting/util.js.map +1 -1
  78. package/dist/meeting-info/index.js +73 -7
  79. package/dist/meeting-info/index.js.map +1 -1
  80. package/dist/meeting-info/meeting-info-v2.js +192 -51
  81. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  82. package/dist/meeting-info/util.js +1 -1
  83. package/dist/meeting-info/util.js.map +1 -1
  84. package/dist/meeting-info/utilv2.js +36 -36
  85. package/dist/meeting-info/utilv2.js.map +1 -1
  86. package/dist/meetings/collection.js +39 -0
  87. package/dist/meetings/collection.js.map +1 -1
  88. package/dist/meetings/index.js +415 -115
  89. package/dist/meetings/index.js.map +1 -1
  90. package/dist/meetings/meetings.types.js +7 -0
  91. package/dist/meetings/meetings.types.js.map +1 -0
  92. package/dist/meetings/request.js +2 -0
  93. package/dist/meetings/request.js.map +1 -1
  94. package/dist/meetings/util.js +72 -6
  95. package/dist/meetings/util.js.map +1 -1
  96. package/dist/member/index.js +58 -0
  97. package/dist/member/index.js.map +1 -1
  98. package/dist/member/types.js +25 -0
  99. package/dist/member/types.js.map +1 -0
  100. package/dist/member/util.js +132 -25
  101. package/dist/member/util.js.map +1 -1
  102. package/dist/members/collection.js +10 -0
  103. package/dist/members/collection.js.map +1 -1
  104. package/dist/members/index.js +102 -6
  105. package/dist/members/index.js.map +1 -1
  106. package/dist/members/request.js +106 -38
  107. package/dist/members/request.js.map +1 -1
  108. package/dist/members/types.js +15 -0
  109. package/dist/members/types.js.map +1 -0
  110. package/dist/members/util.js +326 -232
  111. package/dist/members/util.js.map +1 -1
  112. package/dist/metrics/constants.js +13 -5
  113. package/dist/metrics/constants.js.map +1 -1
  114. package/dist/metrics/index.js +1 -468
  115. package/dist/metrics/index.js.map +1 -1
  116. package/dist/multistream/mediaRequestManager.js +238 -49
  117. package/dist/multistream/mediaRequestManager.js.map +1 -1
  118. package/dist/multistream/receiveSlot.js +29 -16
  119. package/dist/multistream/receiveSlot.js.map +1 -1
  120. package/dist/multistream/receiveSlotManager.js +39 -36
  121. package/dist/multistream/receiveSlotManager.js.map +1 -1
  122. package/dist/multistream/remoteMedia.js +44 -18
  123. package/dist/multistream/remoteMedia.js.map +1 -1
  124. package/dist/multistream/remoteMediaGroup.js +60 -3
  125. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  126. package/dist/multistream/remoteMediaManager.js +209 -59
  127. package/dist/multistream/remoteMediaManager.js.map +1 -1
  128. package/dist/multistream/sendSlotManager.js +233 -0
  129. package/dist/multistream/sendSlotManager.js.map +1 -0
  130. package/dist/reachability/index.js +225 -59
  131. package/dist/reachability/index.js.map +1 -1
  132. package/dist/reachability/request.js +17 -8
  133. package/dist/reachability/request.js.map +1 -1
  134. package/dist/reconnection-manager/index.js +201 -156
  135. package/dist/reconnection-manager/index.js.map +1 -1
  136. package/dist/recording-controller/index.js +21 -2
  137. package/dist/recording-controller/index.js.map +1 -1
  138. package/dist/recording-controller/util.js +9 -8
  139. package/dist/recording-controller/util.js.map +1 -1
  140. package/dist/roap/index.js +62 -32
  141. package/dist/roap/index.js.map +1 -1
  142. package/dist/roap/request.js +112 -97
  143. package/dist/roap/request.js.map +1 -1
  144. package/dist/roap/turnDiscovery.js +95 -36
  145. package/dist/roap/turnDiscovery.js.map +1 -1
  146. package/dist/rtcMetrics/constants.js +12 -0
  147. package/dist/rtcMetrics/constants.js.map +1 -0
  148. package/dist/rtcMetrics/index.js +117 -0
  149. package/dist/rtcMetrics/index.js.map +1 -0
  150. package/dist/statsAnalyzer/index.js +86 -78
  151. package/dist/statsAnalyzer/index.js.map +1 -1
  152. package/dist/statsAnalyzer/mqaUtil.js +11 -10
  153. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  154. package/dist/types/annotation/annotation.types.d.ts +42 -0
  155. package/dist/types/annotation/constants.d.ts +31 -0
  156. package/dist/types/annotation/index.d.ts +117 -0
  157. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  158. package/dist/types/breakouts/events.d.ts +8 -0
  159. package/dist/types/breakouts/utils.d.ts +14 -0
  160. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  161. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  162. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  163. package/dist/types/common/logs/request.d.ts +2 -0
  164. package/dist/types/common/queue.d.ts +9 -7
  165. package/dist/types/config.d.ts +1 -7
  166. package/dist/types/constants.d.ts +194 -24
  167. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  168. package/dist/types/controls-options-manager/index.d.ts +17 -1
  169. package/dist/types/controls-options-manager/types.d.ts +43 -0
  170. package/dist/types/controls-options-manager/util.d.ts +1 -7
  171. package/dist/types/index.d.ts +6 -4
  172. package/dist/types/interpretation/collection.d.ts +5 -0
  173. package/dist/types/interpretation/index.d.ts +5 -0
  174. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  175. package/dist/types/locus-info/index.d.ts +57 -4
  176. package/dist/types/locus-info/parser.d.ts +67 -6
  177. package/dist/types/media/index.d.ts +2 -0
  178. package/dist/types/media/properties.d.ts +34 -48
  179. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  180. package/dist/types/meeting/index.d.ts +463 -510
  181. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  182. package/dist/types/meeting/muteState.d.ts +99 -23
  183. package/dist/types/meeting/request.d.ts +72 -43
  184. package/dist/types/meeting/util.d.ts +101 -1
  185. package/dist/types/meeting-info/index.d.ts +13 -1
  186. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/types/meetings/collection.d.ts +17 -0
  188. package/dist/types/meetings/index.d.ts +98 -20
  189. package/dist/types/meetings/meetings.types.d.ts +4 -0
  190. package/dist/types/member/index.d.ts +14 -0
  191. package/dist/types/member/types.d.ts +32 -0
  192. package/dist/types/members/collection.d.ts +5 -0
  193. package/dist/types/members/index.d.ts +35 -2
  194. package/dist/types/members/request.d.ts +73 -9
  195. package/dist/types/members/types.d.ts +25 -0
  196. package/dist/types/members/util.d.ts +214 -1
  197. package/dist/types/metrics/constants.d.ts +12 -4
  198. package/dist/types/metrics/index.d.ts +4 -119
  199. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  200. package/dist/types/multistream/receiveSlot.d.ts +13 -11
  201. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  202. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  203. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  204. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  205. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  206. package/dist/types/reachability/index.d.ts +61 -7
  207. package/dist/types/reachability/request.d.ts +7 -3
  208. package/dist/types/reconnection-manager/index.d.ts +9 -0
  209. package/dist/types/recording-controller/index.d.ts +15 -1
  210. package/dist/types/recording-controller/util.d.ts +5 -4
  211. package/dist/types/roap/index.d.ts +2 -1
  212. package/dist/types/roap/request.d.ts +15 -11
  213. package/dist/types/roap/turnDiscovery.d.ts +21 -3
  214. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  215. package/dist/types/rtcMetrics/index.d.ts +47 -0
  216. package/dist/types/statsAnalyzer/index.d.ts +7 -1
  217. package/dist/types/webinar/collection.d.ts +16 -0
  218. package/dist/types/webinar/index.d.ts +5 -0
  219. package/dist/webinar/collection.js +44 -0
  220. package/dist/webinar/collection.js.map +1 -0
  221. package/dist/webinar/index.js +69 -0
  222. package/dist/webinar/index.js.map +1 -0
  223. package/package.json +23 -20
  224. package/src/annotation/annotation.types.ts +50 -0
  225. package/src/annotation/constants.ts +36 -0
  226. package/src/annotation/index.ts +328 -0
  227. package/src/breakouts/README.md +42 -12
  228. package/src/breakouts/breakout.ts +67 -9
  229. package/src/breakouts/edit-lock-error.ts +25 -0
  230. package/src/breakouts/events.ts +56 -0
  231. package/src/breakouts/index.ts +592 -20
  232. package/src/breakouts/utils.ts +42 -0
  233. package/src/common/errors/no-meeting-info.ts +24 -0
  234. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  235. package/src/common/errors/webex-errors.ts +44 -2
  236. package/src/common/logs/logger-proxy.ts +1 -1
  237. package/src/common/logs/request.ts +5 -1
  238. package/src/common/queue.ts +22 -8
  239. package/src/config.ts +4 -10
  240. package/src/constants.ts +221 -19
  241. package/src/controls-options-manager/enums.ts +12 -0
  242. package/src/controls-options-manager/index.ts +116 -21
  243. package/src/controls-options-manager/types.ts +59 -0
  244. package/src/controls-options-manager/util.ts +294 -14
  245. package/src/index.ts +40 -0
  246. package/src/interpretation/README.md +60 -0
  247. package/src/interpretation/collection.ts +19 -0
  248. package/src/interpretation/index.ts +332 -0
  249. package/src/interpretation/siLanguage.ts +18 -0
  250. package/src/locus-info/controlsUtils.ts +108 -0
  251. package/src/locus-info/index.ts +413 -59
  252. package/src/locus-info/infoUtils.ts +10 -2
  253. package/src/locus-info/mediaSharesUtils.ts +64 -0
  254. package/src/locus-info/parser.ts +258 -47
  255. package/src/locus-info/selfUtils.ts +81 -5
  256. package/src/media/index.ts +102 -122
  257. package/src/media/properties.ts +87 -110
  258. package/src/meeting/in-meeting-actions.ts +163 -3
  259. package/src/meeting/index.ts +3132 -2541
  260. package/src/meeting/locusMediaRequest.ts +313 -0
  261. package/src/meeting/muteState.ts +229 -131
  262. package/src/meeting/request.ts +177 -121
  263. package/src/meeting/util.ts +588 -394
  264. package/src/meeting-info/index.ts +81 -8
  265. package/src/meeting-info/meeting-info-v2.ts +170 -14
  266. package/src/meeting-info/util.ts +1 -1
  267. package/src/meeting-info/utilv2.ts +23 -23
  268. package/src/meetings/collection.ts +33 -0
  269. package/src/meetings/index.ts +445 -123
  270. package/src/meetings/meetings.types.ts +12 -0
  271. package/src/meetings/request.ts +2 -0
  272. package/src/meetings/util.ts +80 -11
  273. package/src/member/index.ts +58 -0
  274. package/src/member/types.ts +38 -0
  275. package/src/member/util.ts +141 -25
  276. package/src/members/collection.ts +8 -0
  277. package/src/members/index.ts +134 -8
  278. package/src/members/request.ts +97 -17
  279. package/src/members/types.ts +29 -0
  280. package/src/members/util.ts +333 -240
  281. package/src/metrics/constants.ts +12 -4
  282. package/src/metrics/index.ts +1 -490
  283. package/src/multistream/mediaRequestManager.ts +289 -79
  284. package/src/multistream/receiveSlot.ts +31 -17
  285. package/src/multistream/receiveSlotManager.ts +34 -24
  286. package/src/multistream/remoteMedia.ts +27 -2
  287. package/src/multistream/remoteMediaGroup.ts +59 -0
  288. package/src/multistream/remoteMediaManager.ts +148 -30
  289. package/src/multistream/sendSlotManager.ts +170 -0
  290. package/src/reachability/index.ts +228 -37
  291. package/src/reachability/request.ts +17 -8
  292. package/src/reconnection-manager/index.ts +83 -56
  293. package/src/recording-controller/index.ts +20 -3
  294. package/src/recording-controller/util.ts +26 -9
  295. package/src/roap/index.ts +63 -32
  296. package/src/roap/request.ts +100 -104
  297. package/src/roap/turnDiscovery.ts +48 -26
  298. package/src/rtcMetrics/constants.ts +3 -0
  299. package/src/rtcMetrics/index.ts +100 -0
  300. package/src/statsAnalyzer/index.ts +105 -91
  301. package/src/statsAnalyzer/mqaUtil.ts +13 -14
  302. package/src/webinar/collection.ts +31 -0
  303. package/src/webinar/index.ts +62 -0
  304. package/test/integration/spec/converged-space-meetings.js +60 -3
  305. package/test/integration/spec/journey.js +320 -261
  306. package/test/integration/spec/space-meeting.js +76 -3
  307. package/test/unit/spec/annotation/index.ts +418 -0
  308. package/test/unit/spec/breakouts/breakout.ts +118 -28
  309. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  310. package/test/unit/spec/breakouts/events.ts +89 -0
  311. package/test/unit/spec/breakouts/index.ts +1395 -69
  312. package/test/unit/spec/breakouts/utils.js +52 -1
  313. package/test/unit/spec/common/queue.js +31 -2
  314. package/test/unit/spec/controls-options-manager/index.js +163 -0
  315. package/test/unit/spec/controls-options-manager/util.js +576 -60
  316. package/test/unit/spec/fixture/locus.js +1 -0
  317. package/test/unit/spec/interpretation/collection.ts +15 -0
  318. package/test/unit/spec/interpretation/index.ts +589 -0
  319. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  320. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  321. package/test/unit/spec/locus-info/index.js +1304 -33
  322. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  323. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  324. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  325. package/test/unit/spec/locus-info/parser.js +116 -35
  326. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  327. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  328. package/test/unit/spec/media/index.ts +104 -37
  329. package/test/unit/spec/media/properties.ts +2 -2
  330. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  331. package/test/unit/spec/meeting/index.js +5216 -1956
  332. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  333. package/test/unit/spec/meeting/muteState.js +408 -208
  334. package/test/unit/spec/meeting/request.js +483 -49
  335. package/test/unit/spec/meeting/utils.js +679 -64
  336. package/test/unit/spec/meeting-info/index.js +300 -0
  337. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  338. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  339. package/test/unit/spec/meetings/collection.js +26 -0
  340. package/test/unit/spec/meetings/index.js +1011 -205
  341. package/test/unit/spec/meetings/utils.js +202 -2
  342. package/test/unit/spec/member/index.js +61 -6
  343. package/test/unit/spec/member/util.js +510 -34
  344. package/test/unit/spec/members/index.js +432 -1
  345. package/test/unit/spec/members/request.js +206 -27
  346. package/test/unit/spec/members/utils.js +210 -0
  347. package/test/unit/spec/metrics/index.js +1 -50
  348. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  349. package/test/unit/spec/multistream/receiveSlot.ts +28 -20
  350. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  351. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  352. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  353. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  354. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  355. package/test/unit/spec/reachability/index.ts +549 -9
  356. package/test/unit/spec/reachability/request.js +68 -0
  357. package/test/unit/spec/reconnection-manager/index.js +85 -9
  358. package/test/unit/spec/recording-controller/index.js +294 -218
  359. package/test/unit/spec/recording-controller/util.js +223 -96
  360. package/test/unit/spec/roap/index.ts +178 -64
  361. package/test/unit/spec/roap/request.ts +203 -85
  362. package/test/unit/spec/roap/turnDiscovery.ts +82 -36
  363. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  364. package/test/unit/spec/stats-analyzer/index.js +136 -2
  365. package/test/unit/spec/webinar/collection.ts +13 -0
  366. package/test/unit/spec/webinar/index.ts +60 -0
  367. package/test/utils/integrationTestUtils.js +46 -0
  368. package/test/utils/testUtils.js +0 -52
  369. package/dist/meeting/effectsState.js +0 -262
  370. package/dist/meeting/effectsState.js.map +0 -1
  371. package/dist/metrics/config.js +0 -299
  372. package/dist/metrics/config.js.map +0 -1
  373. package/dist/types/meeting/effectsState.d.ts +0 -42
  374. package/dist/types/metrics/config.d.ts +0 -178
  375. package/src/index.js +0 -16
  376. package/src/meeting/effectsState.ts +0 -211
  377. package/src/metrics/config.ts +0 -495
  378. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -16,6 +16,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
16
16
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
17
17
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
18
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
19
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
19
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
20
21
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
21
22
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
@@ -27,8 +28,11 @@ var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
27
28
  var _uuid = _interopRequireDefault(require("uuid"));
28
29
  var _webexCore = require("@webex/webex-core");
29
30
  var _common = require("@webex/common");
31
+ var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
30
32
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
31
33
  var _constants = require("../constants");
34
+ var _util = _interopRequireDefault(require("./util"));
35
+ var _excluded = ["meeting"];
32
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; }
33
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; }
34
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); }; }
@@ -39,11 +43,58 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
39
43
  var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
40
44
  (0, _inherits2.default)(MeetingRequest, _StatelessWebexPlugin);
41
45
  var _super = _createSuper(MeetingRequest);
46
+ /**
47
+ * Constructor
48
+ * @param {Object} attrs
49
+ * @param {Object} options
50
+ */
42
51
  function MeetingRequest(attrs, options) {
43
52
  var _this;
44
53
  (0, _classCallCheck2.default)(this, MeetingRequest);
45
- _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);
46
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);
47
98
  _this.changeVideoLayoutDebounced = (0, _debounce2.default)(_this.changeVideoLayout, 2000, {
48
99
  leading: true,
49
100
  trailing: true
@@ -52,32 +103,44 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
52
103
  }
53
104
 
54
105
  /**
55
- * Make a network request to join a meeting
56
- * @param {Object} options
57
- * @param {String} options.sipUri
58
- * @param {String} options.deviceUrl
59
- * @param {String} options.locusUrl
60
- * @param {String} options.resourceId,
61
- * @param {String} options.correlationId
62
- * @param {boolean} options.ensureConversation
63
- * @param {boolean} options.moderator
64
- * @param {boolean} options.pin
65
- * @param {boolean} options.moveToResource
66
- * @param {Object} options.roapMessage
67
- * @param {boolean} options.breakoutsSupported
68
- * @returns {Promise}
106
+ * Returns joinCookie from boundedStorage if present.
107
+ * @returns {Object} joinCookie
69
108
  */
70
109
  (0, _createClass2.default)(MeetingRequest, [{
71
110
  key: "joinMeeting",
72
- value: function () {
73
- var _joinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
74
- var asResourceOccupant, inviteeAddress, meetingNumber, permissionToken, deviceUrl, locusUrl, resourceId, correlationId, ensureConversation, moderator, pin, moveToResource, roapMessage, preferTranscoding, breakoutsSupported, url, body;
75
- return _regenerator.default.wrap(function _callee$(_context) {
76
- while (1) switch (_context.prev = _context.next) {
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, 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) {
77
136
  case 0:
78
- 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;
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, 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;
79
138
  _loggerProxy.default.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
80
139
  url = '';
140
+ _context2.next = 5;
141
+ return this.getJoinCookie();
142
+ case 5:
143
+ joinCookie = _context2.sent;
81
144
  body = {
82
145
  asResourceOccupant: asResourceOccupant,
83
146
  device: {
@@ -93,19 +156,34 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
93
156
  ensureConversation: ensureConversation || false,
94
157
  supportsNativeLobby: 1,
95
158
  clientMediaPreferences: {
96
- preferTranscoding: preferTranscoding !== null && preferTranscoding !== void 0 ? preferTranscoding : true
159
+ preferTranscoding: preferTranscoding !== null && preferTranscoding !== void 0 ? preferTranscoding : true,
160
+ joinCookie: joinCookie,
161
+ ipver: ipVersion
97
162
  }
98
163
  };
99
164
  if (breakoutsSupported) {
100
- body.deviceCapabilities = [_constants.BREAKOUTS.BREAKOUTS_SUPPORTED];
165
+ deviceCapabilities.push(_constants.BREAKOUTS.BREAKOUTS_SUPPORTED);
166
+ }
167
+ if (liveAnnotationSupported) {
168
+ deviceCapabilities.push(_constants.ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
169
+ }
170
+ if (locale) {
171
+ body.locale = locale;
101
172
  }
102
173
 
174
+ // add deviceCapabilities prop
175
+ if (deviceCapabilities.length) {
176
+ body.deviceCapabilities = deviceCapabilities;
177
+ }
103
178
  // @ts-ignore
104
- if (this.webex.meetings.clientRegion) {
179
+ if (this.webex.meetings.geoHintInfo) {
105
180
  // @ts-ignore
106
- body.device.countryCode = this.webex.meetings.clientRegion.countryCode;
181
+ body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;
107
182
  // @ts-ignore
108
- body.device.regionCode = this.webex.meetings.clientRegion.regionCode;
183
+ body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;
184
+ body.device.localIp =
185
+ // @ts-ignore
186
+ _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) || undefined;
109
187
  }
110
188
  if (moderator !== undefined) {
111
189
  body.moderator = moderator;
@@ -117,34 +195,44 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
117
195
  body.pin = pin;
118
196
  }
119
197
  if (!locusUrl) {
120
- _context.next = 13;
198
+ _context2.next = 19;
121
199
  break;
122
200
  }
123
201
  url = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
124
- _context.next = 25;
202
+ _context2.next = 36;
125
203
  break;
126
- case 13:
204
+ case 19:
127
205
  if (!(inviteeAddress || meetingNumber)) {
128
- _context.next = 25;
206
+ _context2.next = 36;
207
+ break;
208
+ }
209
+ _context2.prev = 20;
210
+ if (!locusClusterUrl) {
211
+ _context2.next = 25;
129
212
  break;
130
213
  }
131
- _context.prev = 14;
132
- _context.next = 17;
214
+ clusterUrl = "https://".concat(locusClusterUrl, "/locus/api/v1");
215
+ _context2.next = 28;
216
+ break;
217
+ case 25:
218
+ _context2.next = 27;
133
219
  return this.webex.internal.services.waitForCatalog('postauth');
134
- case 17:
220
+ case 27:
135
221
  // @ts-ignore
136
- url = "".concat(this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
222
+ clusterUrl = this.webex.internal.services.get('locus');
223
+ case 28:
224
+ url = "".concat(clusterUrl, "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
137
225
  body.invitee = {
138
226
  address: inviteeAddress || "wbxmn:".concat(meetingNumber)
139
227
  };
140
- _context.next = 25;
228
+ _context2.next = 36;
141
229
  break;
142
- case 21:
143
- _context.prev = 21;
144
- _context.t0 = _context["catch"](14);
145
- _loggerProxy.default.logger.error("Meeting:request#joinMeeting Error Joining ".concat(inviteeAddress || meetingNumber, " --> ").concat(_context.t0));
146
- throw _context.t0;
147
- case 25:
230
+ case 32:
231
+ _context2.prev = 32;
232
+ _context2.t0 = _context2["catch"](20);
233
+ _loggerProxy.default.logger.error("Meeting:request#joinMeeting Error Joining ".concat(inviteeAddress || meetingNumber, " --> ").concat(_context2.t0));
234
+ throw _context2.t0;
235
+ case 36:
148
236
  // TODO: -- this will be resolved in SDK request
149
237
  url = url.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
150
238
  if (resourceId === inviteeAddress) {
@@ -157,16 +245,16 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
157
245
  }
158
246
 
159
247
  /// @ts-ignore
160
- return _context.abrupt("return", this.request({
248
+ return _context2.abrupt("return", this.request({
161
249
  method: _constants.HTTP_VERBS.POST,
162
250
  uri: url,
163
251
  body: body
164
252
  }));
165
- case 29:
253
+ case 40:
166
254
  case "end":
167
- return _context.stop();
255
+ return _context2.stop();
168
256
  }
169
- }, _callee, this, [[14, 21]]);
257
+ }, _callee2, this, [[20, 32]]);
170
258
  }));
171
259
  function joinMeeting(_x) {
172
260
  return _joinMeeting.apply(this, arguments);
@@ -183,9 +271,9 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
183
271
  */
184
272
  }, {
185
273
  key: "refreshCaptcha",
186
- value: function refreshCaptcha(_ref) {
187
- var captchaRefreshUrl = _ref.captchaRefreshUrl,
188
- captchaId = _ref.captchaId;
274
+ value: function refreshCaptcha(_ref2) {
275
+ var captchaRefreshUrl = _ref2.captchaRefreshUrl,
276
+ captchaId = _ref2.captchaId;
189
277
  var body = {
190
278
  captchaId: captchaId
191
279
  };
@@ -213,11 +301,11 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
213
301
  */
214
302
  }, {
215
303
  key: "dialIn",
216
- value: function dialIn(_ref2) {
217
- var locusUrl = _ref2.locusUrl,
218
- dialInUrl = _ref2.dialInUrl,
219
- clientUrl = _ref2.clientUrl,
220
- correlationId = _ref2.correlationId;
304
+ value: function dialIn(_ref3) {
305
+ var locusUrl = _ref3.locusUrl,
306
+ dialInUrl = _ref3.dialInUrl,
307
+ clientUrl = _ref3.clientUrl,
308
+ correlationId = _ref3.correlationId;
221
309
  _loggerProxy.default.logger.info('Meeting:request#dialIn --> Provisioning a dial in device', correlationId);
222
310
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
223
311
  var body = {
@@ -231,7 +319,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
231
319
  };
232
320
 
233
321
  // @ts-ignore
234
- return this.request({
322
+ return this.locusDeltaRequest({
235
323
  method: _constants.HTTP_VERBS.POST,
236
324
  uri: uri,
237
325
  body: body
@@ -254,12 +342,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
254
342
  */
255
343
  }, {
256
344
  key: "dialOut",
257
- value: function dialOut(_ref3) {
258
- var locusUrl = _ref3.locusUrl,
259
- dialOutUrl = _ref3.dialOutUrl,
260
- phoneNumber = _ref3.phoneNumber,
261
- clientUrl = _ref3.clientUrl,
262
- correlationId = _ref3.correlationId;
345
+ value: function dialOut(_ref4) {
346
+ var locusUrl = _ref4.locusUrl,
347
+ dialOutUrl = _ref4.dialOutUrl,
348
+ phoneNumber = _ref4.phoneNumber,
349
+ clientUrl = _ref4.clientUrl,
350
+ correlationId = _ref4.correlationId;
263
351
  _loggerProxy.default.logger.info('Meeting:request#dialOut --> Provisioning a dial out device', correlationId);
264
352
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
265
353
  var body = {
@@ -274,7 +362,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
274
362
  };
275
363
 
276
364
  // @ts-ignore
277
- return this.request({
365
+ return this.locusDeltaRequest({
278
366
  method: _constants.HTTP_VERBS.POST,
279
367
  uri: uri,
280
368
  body: body
@@ -285,60 +373,23 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
285
373
  }
286
374
 
287
375
  /**
288
- * Syns the missed delta event
376
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
289
377
  * @param {Object} options
290
- * @param {boolean} options.desync flag to get partial or whole locus object
291
- * @param {String} options.syncUrl sync url to get ht elatest locus delta
292
- * @returns {Promise}
293
- */
294
- }, {
295
- key: "syncMeeting",
296
- value: function syncMeeting(options) {
297
- /* eslint-disable no-else-return */
298
- var desync = options.desync;
299
- var syncUrl = options.syncUrl;
300
-
301
- /* istanbul ignore else */
302
- if (desync) {
303
- // check for existing URL parameters
304
- syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat("".concat(_constants.LOCUS.SYNCDEBUG, "=").concat(desync));
305
- }
306
-
307
- // @ts-ignore
308
- return this.request({
309
- method: _constants.HTTP_VERBS.GET,
310
- uri: syncUrl
311
- }) // TODO: Handle if delta sync failed . Get the full locus object
312
- .catch(function (err) {
313
- _loggerProxy.default.logger.error("Meeting:request#syncMeeting --> Error syncing meeting, error ".concat(err));
314
- return err;
315
- });
316
- }
317
-
318
- /**
319
- * Request to get the complete locus object
320
- * @param {Object} options
321
- * @param {boolean} options.desync flag to get partial or whole locus object
322
378
  * @param {String} options.locusUrl sync url to get ht elatest locus delta
323
379
  * @returns {Promise}
324
380
  */
325
381
  }, {
326
- key: "getFullLocus",
327
- value: function getFullLocus(options) {
328
- var locusUrl = options.locusUrl;
329
- var desync = options.desync;
330
- if (locusUrl) {
331
- if (desync) {
332
- locusUrl += "?".concat(_constants.LOCUS.SYNCDEBUG, "=").concat(desync);
333
- }
334
-
382
+ key: "getLocusDTO",
383
+ value: function getLocusDTO(options) {
384
+ var url = options.url;
385
+ if (url) {
335
386
  // @ts-ignore
336
387
  return this.request({
337
388
  method: _constants.HTTP_VERBS.GET,
338
- uri: locusUrl
389
+ uri: url
339
390
  }).catch(function (err) {
340
- _loggerProxy.default.logger.error("Meeting:request#getFullLocus --> Error getting full locus, error ".concat(err));
341
- return err;
391
+ _loggerProxy.default.logger.error("Meeting:request#getLocusDTO --> Error getting latest locus, error ".concat(err));
392
+ throw err;
342
393
  });
343
394
  }
344
395
  return _promise.default.reject();
@@ -356,11 +407,11 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
356
407
  */
357
408
  }, {
358
409
  key: "disconnectPhoneAudio",
359
- value: function disconnectPhoneAudio(_ref4) {
360
- var locusUrl = _ref4.locusUrl,
361
- phoneUrl = _ref4.phoneUrl,
362
- correlationId = _ref4.correlationId,
363
- selfId = _ref4.selfId;
410
+ value: function disconnectPhoneAudio(_ref5) {
411
+ var locusUrl = _ref5.locusUrl,
412
+ phoneUrl = _ref5.phoneUrl,
413
+ correlationId = _ref5.correlationId,
414
+ selfId = _ref5.selfId;
364
415
  _loggerProxy.default.logger.info("Meeting:request#disconnectPhoneAudio --> request phone ".concat(phoneUrl, " to leave"), correlationId);
365
416
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
366
417
  var body = {
@@ -372,7 +423,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
372
423
  };
373
424
 
374
425
  // @ts-ignore
375
- return this.request({
426
+ return this.locusDeltaRequest({
376
427
  method: _constants.HTTP_VERBS.PUT,
377
428
  uri: uri,
378
429
  body: body
@@ -383,23 +434,53 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
383
434
  }
384
435
 
385
436
  /**
386
- * Make a network request to leave a meeting
437
+ * Prepares request options to to leave a meeting
387
438
  * @param {Object} options
388
439
  * @param {Url} options.locusUrl
389
440
  * @param {String} options.selfId
390
441
  * @param {Url} options.deviceUrl
391
442
  * @param {String} options.resourceId,
392
443
  * @param {String} options.correlationId
444
+ * @returns {Object} request options
445
+ */
446
+ }, {
447
+ key: "prepareLeaveMeetingRequestOptions",
448
+ value: function prepareLeaveMeetingRequestOptions(_ref6) {
449
+ var locusUrl = _ref6.locusUrl,
450
+ selfId = _ref6.selfId,
451
+ url = _ref6.deviceUrl,
452
+ resourceId = _ref6.resourceId,
453
+ correlationId = _ref6.correlationId;
454
+ var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
455
+ var body = {
456
+ device: {
457
+ // @ts-ignore
458
+ deviceType: this.config.meetings.deviceType,
459
+ url: url
460
+ },
461
+ usingResource: resourceId || null,
462
+ correlationId: correlationId
463
+ };
464
+ return {
465
+ method: _constants.HTTP_VERBS.PUT,
466
+ uri: uri,
467
+ body: body
468
+ };
469
+ }
470
+
471
+ /**
472
+ * Make a network request to leave a meeting
473
+ * @param {Object} options
393
474
  * @returns {Promise}
394
475
  */
395
476
  }, {
396
477
  key: "leaveMeeting",
397
- value: function leaveMeeting(_ref5) {
398
- var locusUrl = _ref5.locusUrl,
399
- selfId = _ref5.selfId,
400
- url = _ref5.deviceUrl,
401
- resourceId = _ref5.resourceId,
402
- correlationId = _ref5.correlationId;
478
+ value: function leaveMeeting(_ref7) {
479
+ var locusUrl = _ref7.locusUrl,
480
+ selfId = _ref7.selfId,
481
+ url = _ref7.deviceUrl,
482
+ resourceId = _ref7.resourceId,
483
+ correlationId = _ref7.correlationId;
403
484
  _loggerProxy.default.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
404
485
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
405
486
  var body = {
@@ -411,15 +492,24 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
411
492
  usingResource: resourceId || null,
412
493
  correlationId: correlationId
413
494
  };
414
-
415
- // @ts-ignore
416
- return this.request({
495
+ return this.locusDeltaRequest({
417
496
  method: _constants.HTTP_VERBS.PUT,
418
497
  uri: uri,
419
498
  body: body
420
499
  });
421
500
  }
422
501
 
502
+ /**
503
+ * Builds request options to leave a meeting
504
+ * @param {Object} options
505
+ * @returns {Object} request options
506
+ */
507
+ }, {
508
+ key: "buildLeaveMeetingRequestOptions",
509
+ value: function buildLeaveMeetingRequestOptions(options) {
510
+ return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));
511
+ }
512
+
423
513
  /**
424
514
  * Make a network request to acknowledge a meeting
425
515
  * @param {Object} options
@@ -440,14 +530,19 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
440
530
  },
441
531
  correlationId: options.correlationId
442
532
  };
443
-
444
- // @ts-ignore
445
- return this.request({
533
+ return this.locusDeltaRequest({
446
534
  method: _constants.HTTP_VERBS.PUT,
447
535
  uri: uri,
448
536
  body: body
449
537
  });
450
538
  }
539
+
540
+ /**
541
+ * Makes a network request to lock the meeting
542
+ * @param {Object} options
543
+ * @param {Boolean} options.lock Whether it is locked or not
544
+ * @returns {Promise}
545
+ */
451
546
  }, {
452
547
  key: "lockMeeting",
453
548
  value: function lockMeeting(options) {
@@ -457,9 +552,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
457
552
  locked: options.lock
458
553
  }
459
554
  };
460
-
461
- // @ts-ignore
462
- return this.request({
555
+ return this.locusDeltaRequest({
463
556
  method: _constants.HTTP_VERBS.PATCH,
464
557
  uri: uri,
465
558
  body: body
@@ -487,48 +580,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
487
580
  }, options.reason && {
488
581
  reason: options.reason
489
582
  });
490
-
491
- // @ts-ignore
492
- return this.request({
493
- method: _constants.HTTP_VERBS.PUT,
494
- uri: uri,
495
- body: body
496
- });
497
- }
498
-
499
- /**
500
- * Toggle remote audio and/or video
501
- * @param {Object} options options for toggling
502
- * @param {String} options.selfId Locus self id??
503
- * @param {String} options.locusUrl Locus url
504
- * @param {String} options.deviceUrl Url of a device
505
- * @param {String} options.resourceId Populated if you are paired to a device
506
- * @param {String} options.localMedias local sdps
507
- * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
508
- * @returns {Promise}
509
- */
510
- }, {
511
- key: "remoteAudioVideoToggle",
512
- value: function remoteAudioVideoToggle(options) {
513
- var _options$preferTransc;
514
- var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(options.selfId, "/").concat(_constants.MEDIA);
515
- var body = {
516
- device: {
517
- // @ts-ignore
518
- deviceType: this.config.meetings.deviceType,
519
- url: options.deviceUrl
520
- },
521
- usingResource: options.resourceId || null,
522
- correlationId: options.correlationId,
523
- respOnlySdp: true,
524
- localMedias: options.localMedias,
525
- clientMediaPreferences: {
526
- preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
527
- }
528
- };
529
-
530
- // @ts-ignore
531
- return this.request({
583
+ return this.locusDeltaRequest({
532
584
  method: _constants.HTTP_VERBS.PUT,
533
585
  uri: uri,
534
586
  body: body
@@ -576,6 +628,9 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
576
628
  if (options !== null && options !== void 0 && options.resourceToken) {
577
629
  body.resourceToken = options === null || options === void 0 ? void 0 : options.resourceToken;
578
630
  }
631
+ if (options !== null && options !== void 0 && options.annotationInfo) {
632
+ body.annotation = options === null || options === void 0 ? void 0 : options.annotationInfo;
633
+ }
579
634
 
580
635
  // @ts-ignore
581
636
  return this.request({
@@ -595,12 +650,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
595
650
  */
596
651
  }, {
597
652
  key: "sendDTMF",
598
- value: function sendDTMF(_ref6) {
599
- var locusUrl = _ref6.locusUrl,
600
- deviceUrl = _ref6.deviceUrl,
601
- tones = _ref6.tones;
653
+ value: function sendDTMF(_ref8) {
654
+ var locusUrl = _ref8.locusUrl,
655
+ deviceUrl = _ref8.deviceUrl,
656
+ tones = _ref8.tones;
602
657
  // @ts-ignore
603
- return this.request({
658
+ return this.locusDeltaRequest({
604
659
  method: _constants.HTTP_VERBS.POST,
605
660
  uri: "".concat(locusUrl, "/").concat(_constants.SEND_DTMF_ENDPOINT),
606
661
  body: {
@@ -629,12 +684,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
629
684
  */
630
685
  }, {
631
686
  key: "changeVideoLayout",
632
- value: function changeVideoLayout(_ref7) {
633
- var locusUrl = _ref7.locusUrl,
634
- deviceUrl = _ref7.deviceUrl,
635
- layoutType = _ref7.layoutType,
636
- main = _ref7.main,
637
- content = _ref7.content;
687
+ value: function changeVideoLayout(_ref9) {
688
+ var locusUrl = _ref9.locusUrl,
689
+ deviceUrl = _ref9.deviceUrl,
690
+ layoutType = _ref9.layoutType,
691
+ main = _ref9.main,
692
+ content = _ref9.content;
638
693
  // send main/content renderInfo only if both width and height are specified
639
694
  if (main && (!main.width || !main.height)) {
640
695
  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))));
@@ -658,7 +713,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
658
713
  } : undefined;
659
714
 
660
715
  // @ts-ignore
661
- return this.request({
716
+ return this.locusDeltaRequest({
662
717
  method: _constants.HTTP_VERBS.PUT,
663
718
  uri: "".concat(locusUrl, "/").concat(_constants.CONTROLS),
664
719
  body: {
@@ -679,12 +734,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
679
734
  */
680
735
  }, {
681
736
  key: "endMeetingForAll",
682
- value: function endMeetingForAll(_ref8) {
683
- var locusUrl = _ref8.locusUrl;
737
+ value: function endMeetingForAll(_ref10) {
738
+ var locusUrl = _ref10.locusUrl;
684
739
  var uri = "".concat(locusUrl, "/").concat(_constants.END);
685
740
 
686
741
  // @ts-ignore
687
- return this.request({
742
+ return this.locusDeltaRequest({
688
743
  method: _constants.HTTP_VERBS.POST,
689
744
  uri: uri
690
745
  });
@@ -698,8 +753,8 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
698
753
  */
699
754
  }, {
700
755
  key: "keepAlive",
701
- value: function keepAlive(_ref9) {
702
- var keepAliveUrl = _ref9.keepAliveUrl;
756
+ value: function keepAlive(_ref11) {
757
+ var keepAliveUrl = _ref11.keepAliveUrl;
703
758
  // @ts-ignore
704
759
  return this.request({
705
760
  method: _constants.HTTP_VERBS.GET,
@@ -717,10 +772,10 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
717
772
  */
718
773
  }, {
719
774
  key: "sendReaction",
720
- value: function sendReaction(_ref10) {
721
- var reactionChannelUrl = _ref10.reactionChannelUrl,
722
- reaction = _ref10.reaction,
723
- participantId = _ref10.participantId;
775
+ value: function sendReaction(_ref12) {
776
+ var reactionChannelUrl = _ref12.reactionChannelUrl,
777
+ reaction = _ref12.reaction,
778
+ participantId = _ref12.participantId;
724
779
  var uri = reactionChannelUrl;
725
780
 
726
781
  // @ts-ignore
@@ -744,14 +799,14 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
744
799
  */
745
800
  }, {
746
801
  key: "toggleReactions",
747
- value: function toggleReactions(_ref11) {
748
- var enable = _ref11.enable,
749
- locusUrl = _ref11.locusUrl,
750
- requestingParticipantId = _ref11.requestingParticipantId;
802
+ value: function toggleReactions(_ref13) {
803
+ var enable = _ref13.enable,
804
+ locusUrl = _ref13.locusUrl,
805
+ requestingParticipantId = _ref13.requestingParticipantId;
751
806
  var uri = "".concat(locusUrl, "/").concat(_constants.CONTROLS);
752
807
 
753
808
  // @ts-ignore
754
- return this.request({
809
+ return this.locusDeltaRequest({
755
810
  method: _constants.HTTP_VERBS.PUT,
756
811
  uri: uri,
757
812
  body: {
@@ -762,6 +817,15 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
762
817
  }
763
818
  });
764
819
  }
820
+ }, {
821
+ key: "getLocusStatusByUrl",
822
+ value: function getLocusStatusByUrl(locusUrl) {
823
+ // @ts-ignore
824
+ return this.request({
825
+ method: _constants.HTTP_VERBS.GET,
826
+ uri: locusUrl
827
+ });
828
+ }
765
829
  }]);
766
830
  return MeetingRequest;
767
831
  }(_webexCore.StatelessWebexPlugin);