@webex/plugin-meetings 3.0.0-beta.18 → 3.0.0-beta.181

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 (410) hide show
  1. package/README.md +45 -7
  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 +114 -14
  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 +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +3 -2
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/config.js +3 -8
  25. package/dist/config.js.map +1 -1
  26. package/dist/constants.js +172 -30
  27. package/dist/constants.js.map +1 -1
  28. package/dist/controls-options-manager/constants.js +14 -0
  29. package/dist/controls-options-manager/constants.js.map +1 -0
  30. package/dist/controls-options-manager/enums.js +27 -0
  31. package/dist/controls-options-manager/enums.js.map +1 -0
  32. package/dist/controls-options-manager/index.js +297 -0
  33. package/dist/controls-options-manager/index.js.map +1 -0
  34. package/dist/controls-options-manager/types.js +7 -0
  35. package/dist/controls-options-manager/types.js.map +1 -0
  36. package/dist/controls-options-manager/util.js +319 -0
  37. package/dist/controls-options-manager/util.js.map +1 -0
  38. package/dist/index.js +107 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/interpretation/collection.js +23 -0
  41. package/dist/interpretation/collection.js.map +1 -0
  42. package/dist/interpretation/index.js +352 -0
  43. package/dist/interpretation/index.js.map +1 -0
  44. package/dist/interpretation/siLanguage.js +25 -0
  45. package/dist/interpretation/siLanguage.js.map +1 -0
  46. package/dist/locus-info/controlsUtils.js +91 -2
  47. package/dist/locus-info/controlsUtils.js.map +1 -1
  48. package/dist/locus-info/index.js +302 -41
  49. package/dist/locus-info/index.js.map +1 -1
  50. package/dist/locus-info/mediaSharesUtils.js +43 -1
  51. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  52. package/dist/locus-info/parser.js +1 -1
  53. package/dist/locus-info/parser.js.map +1 -1
  54. package/dist/locus-info/selfUtils.js +89 -14
  55. package/dist/locus-info/selfUtils.js.map +1 -1
  56. package/dist/media/index.js +39 -134
  57. package/dist/media/index.js.map +1 -1
  58. package/dist/media/properties.js +29 -90
  59. package/dist/media/properties.js.map +1 -1
  60. package/dist/mediaQualityMetrics/config.js +505 -493
  61. package/dist/mediaQualityMetrics/config.js.map +1 -1
  62. package/dist/meeting/in-meeting-actions.js +76 -2
  63. package/dist/meeting/in-meeting-actions.js.map +1 -1
  64. package/dist/meeting/index.js +2622 -2465
  65. package/dist/meeting/index.js.map +1 -1
  66. package/dist/meeting/locusMediaRequest.js +291 -0
  67. package/dist/meeting/locusMediaRequest.js.map +1 -0
  68. package/dist/meeting/muteState.js +229 -124
  69. package/dist/meeting/muteState.js.map +1 -1
  70. package/dist/meeting/request.js +189 -146
  71. package/dist/meeting/request.js.map +1 -1
  72. package/dist/meeting/util.js +478 -414
  73. package/dist/meeting/util.js.map +1 -1
  74. package/dist/meeting-info/index.js +48 -7
  75. package/dist/meeting-info/index.js.map +1 -1
  76. package/dist/meeting-info/meeting-info-v2.js +171 -51
  77. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  78. package/dist/meeting-info/utilv2.js +20 -5
  79. package/dist/meeting-info/utilv2.js.map +1 -1
  80. package/dist/meetings/collection.js +22 -0
  81. package/dist/meetings/collection.js.map +1 -1
  82. package/dist/meetings/index.js +350 -65
  83. package/dist/meetings/index.js.map +1 -1
  84. package/dist/meetings/meetings.types.js +7 -0
  85. package/dist/meetings/meetings.types.js.map +1 -0
  86. package/dist/meetings/request.js +2 -0
  87. package/dist/meetings/request.js.map +1 -1
  88. package/dist/meetings/util.js +88 -1
  89. package/dist/meetings/util.js.map +1 -1
  90. package/dist/member/index.js +49 -0
  91. package/dist/member/index.js.map +1 -1
  92. package/dist/member/types.js +25 -0
  93. package/dist/member/types.js.map +1 -0
  94. package/dist/member/util.js +98 -2
  95. package/dist/member/util.js.map +1 -1
  96. package/dist/members/collection.js +10 -0
  97. package/dist/members/collection.js.map +1 -1
  98. package/dist/members/index.js +86 -5
  99. package/dist/members/index.js.map +1 -1
  100. package/dist/members/request.js +106 -38
  101. package/dist/members/request.js.map +1 -1
  102. package/dist/members/types.js +15 -0
  103. package/dist/members/types.js.map +1 -0
  104. package/dist/members/util.js +316 -233
  105. package/dist/members/util.js.map +1 -1
  106. package/dist/metrics/constants.js +3 -5
  107. package/dist/metrics/constants.js.map +1 -1
  108. package/dist/metrics/index.js +1 -468
  109. package/dist/metrics/index.js.map +1 -1
  110. package/dist/multistream/mediaRequestManager.js +238 -49
  111. package/dist/multistream/mediaRequestManager.js.map +1 -1
  112. package/dist/multistream/receiveSlot.js +49 -16
  113. package/dist/multistream/receiveSlot.js.map +1 -1
  114. package/dist/multistream/receiveSlotManager.js +48 -30
  115. package/dist/multistream/receiveSlotManager.js.map +1 -1
  116. package/dist/multistream/remoteMedia.js +44 -18
  117. package/dist/multistream/remoteMedia.js.map +1 -1
  118. package/dist/multistream/remoteMediaGroup.js +60 -3
  119. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  120. package/dist/multistream/remoteMediaManager.js +173 -59
  121. package/dist/multistream/remoteMediaManager.js.map +1 -1
  122. package/dist/networkQualityMonitor/index.js +4 -2
  123. package/dist/networkQualityMonitor/index.js.map +1 -1
  124. package/dist/reachability/index.js +72 -27
  125. package/dist/reachability/index.js.map +1 -1
  126. package/dist/reachability/request.js +12 -5
  127. package/dist/reachability/request.js.map +1 -1
  128. package/dist/reactions/reactions.js +2 -2
  129. package/dist/reactions/reactions.js.map +1 -1
  130. package/dist/reactions/reactions.type.js +18 -18
  131. package/dist/reactions/reactions.type.js.map +1 -1
  132. package/dist/reconnection-manager/index.js +196 -155
  133. package/dist/reconnection-manager/index.js.map +1 -1
  134. package/dist/recording-controller/index.js +21 -1
  135. package/dist/recording-controller/index.js.map +1 -1
  136. package/dist/recording-controller/util.js +9 -8
  137. package/dist/recording-controller/util.js.map +1 -1
  138. package/dist/roap/index.js +21 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +110 -89
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +93 -36
  143. package/dist/roap/turnDiscovery.js.map +1 -1
  144. package/dist/statsAnalyzer/global.js +1 -93
  145. package/dist/statsAnalyzer/global.js.map +1 -1
  146. package/dist/statsAnalyzer/index.js +326 -311
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +90 -53
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/breakout.d.ts +8 -0
  154. package/dist/types/breakouts/collection.d.ts +5 -0
  155. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  156. package/dist/types/breakouts/events.d.ts +8 -0
  157. package/dist/types/breakouts/index.d.ts +5 -0
  158. package/dist/types/breakouts/request.d.ts +22 -0
  159. package/dist/types/breakouts/utils.d.ts +15 -0
  160. package/dist/types/common/browser-detection.d.ts +9 -0
  161. package/dist/types/common/collection.d.ts +48 -0
  162. package/dist/types/common/config.d.ts +2 -0
  163. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  164. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  165. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  166. package/dist/types/common/errors/media.d.ts +15 -0
  167. package/dist/types/common/errors/parameter.d.ts +15 -0
  168. package/dist/types/common/errors/password-error.d.ts +15 -0
  169. package/dist/types/common/errors/permission.d.ts +14 -0
  170. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  171. package/dist/types/common/errors/reconnection.d.ts +15 -0
  172. package/dist/types/common/errors/stats.d.ts +15 -0
  173. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  174. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  175. package/dist/types/common/events/events-scope.d.ts +17 -0
  176. package/dist/types/common/events/events.d.ts +12 -0
  177. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  178. package/dist/types/common/events/util.d.ts +2 -0
  179. package/dist/types/common/logs/logger-config.d.ts +2 -0
  180. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  181. package/dist/types/common/logs/request.d.ts +34 -0
  182. package/dist/types/common/queue.d.ts +32 -0
  183. package/dist/types/config.d.ts +72 -0
  184. package/dist/types/constants.d.ts +1016 -0
  185. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  186. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  187. package/dist/types/controls-options-manager/index.d.ts +136 -0
  188. package/dist/types/controls-options-manager/types.d.ts +43 -0
  189. package/dist/types/controls-options-manager/util.d.ts +1 -0
  190. package/dist/types/index.d.ts +7 -0
  191. package/dist/types/interpretation/collection.d.ts +5 -0
  192. package/dist/types/interpretation/index.d.ts +5 -0
  193. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  194. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  195. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  196. package/dist/types/locus-info/fullState.d.ts +2 -0
  197. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  198. package/dist/types/locus-info/index.d.ts +315 -0
  199. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  200. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  201. package/dist/types/locus-info/parser.d.ts +212 -0
  202. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  203. package/dist/types/media/index.d.ts +34 -0
  204. package/dist/types/media/properties.d.ts +93 -0
  205. package/dist/types/media/util.d.ts +2 -0
  206. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  207. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  208. package/dist/types/meeting/index.d.ts +1467 -0
  209. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  210. package/dist/types/meeting/muteState.d.ts +184 -0
  211. package/dist/types/meeting/request.d.ts +270 -0
  212. package/dist/types/meeting/request.type.d.ts +11 -0
  213. package/dist/types/meeting/state.d.ts +9 -0
  214. package/dist/types/meeting/util.d.ts +77 -0
  215. package/dist/types/meeting-info/collection.d.ts +20 -0
  216. package/dist/types/meeting-info/index.d.ts +62 -0
  217. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  218. package/dist/types/meeting-info/request.d.ts +22 -0
  219. package/dist/types/meeting-info/util.d.ts +2 -0
  220. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  221. package/dist/types/meetings/collection.d.ts +31 -0
  222. package/dist/types/meetings/index.d.ts +365 -0
  223. package/dist/types/meetings/meetings.types.d.ts +4 -0
  224. package/dist/types/meetings/request.d.ts +27 -0
  225. package/dist/types/meetings/util.d.ts +18 -0
  226. package/dist/types/member/index.d.ts +159 -0
  227. package/dist/types/member/types.d.ts +32 -0
  228. package/dist/types/member/util.d.ts +2 -0
  229. package/dist/types/members/collection.d.ts +29 -0
  230. package/dist/types/members/index.d.ts +353 -0
  231. package/dist/types/members/request.d.ts +114 -0
  232. package/dist/types/members/types.d.ts +24 -0
  233. package/dist/types/members/util.d.ts +210 -0
  234. package/dist/types/metrics/constants.d.ts +55 -0
  235. package/dist/types/metrics/index.d.ts +45 -0
  236. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  237. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  238. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  239. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  240. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  241. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  242. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  243. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  244. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  245. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  246. package/dist/types/reachability/index.d.ts +152 -0
  247. package/dist/types/reachability/request.d.ts +37 -0
  248. package/dist/types/reactions/constants.d.ts +3 -0
  249. package/dist/types/reactions/reactions.d.ts +4 -0
  250. package/dist/types/reactions/reactions.type.d.ts +52 -0
  251. package/dist/types/reconnection-manager/index.d.ts +126 -0
  252. package/dist/types/recording-controller/enums.d.ts +7 -0
  253. package/dist/types/recording-controller/index.d.ts +208 -0
  254. package/dist/types/recording-controller/util.d.ts +14 -0
  255. package/dist/types/roap/index.d.ts +77 -0
  256. package/dist/types/roap/request.d.ts +36 -0
  257. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  258. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  259. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  260. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  261. package/dist/types/transcription/index.d.ts +64 -0
  262. package/package.json +26 -23
  263. package/src/annotation/annotation.types.ts +50 -0
  264. package/src/annotation/constants.ts +36 -0
  265. package/src/annotation/index.ts +328 -0
  266. package/src/breakouts/README.md +44 -14
  267. package/src/breakouts/breakout.ts +87 -9
  268. package/src/breakouts/edit-lock-error.ts +25 -0
  269. package/src/breakouts/events.ts +56 -0
  270. package/src/breakouts/index.ts +710 -10
  271. package/src/breakouts/request.ts +55 -0
  272. package/src/breakouts/utils.ts +57 -0
  273. package/src/common/errors/webex-errors.ts +6 -2
  274. package/src/common/logs/logger-proxy.ts +1 -1
  275. package/src/config.ts +2 -7
  276. package/src/constants.ts +157 -21
  277. package/src/controls-options-manager/constants.ts +5 -0
  278. package/src/controls-options-manager/enums.ts +18 -0
  279. package/src/controls-options-manager/index.ts +278 -0
  280. package/src/controls-options-manager/types.ts +59 -0
  281. package/src/controls-options-manager/util.ts +300 -0
  282. package/src/index.ts +39 -0
  283. package/src/interpretation/README.md +60 -0
  284. package/src/interpretation/collection.ts +19 -0
  285. package/src/interpretation/index.ts +318 -0
  286. package/src/interpretation/siLanguage.ts +18 -0
  287. package/src/locus-info/controlsUtils.ts +108 -0
  288. package/src/locus-info/index.ts +316 -38
  289. package/src/locus-info/mediaSharesUtils.ts +48 -0
  290. package/src/locus-info/parser.ts +1 -1
  291. package/src/locus-info/selfUtils.ts +81 -5
  292. package/src/media/index.ts +77 -142
  293. package/src/media/properties.ts +49 -90
  294. package/src/mediaQualityMetrics/config.ts +379 -377
  295. package/src/meeting/in-meeting-actions.ts +151 -3
  296. package/src/meeting/index.ts +1940 -2002
  297. package/src/meeting/locusMediaRequest.ts +309 -0
  298. package/src/meeting/muteState.ts +228 -132
  299. package/src/meeting/request.ts +96 -65
  300. package/src/meeting/util.ts +464 -396
  301. package/src/meeting-info/index.ts +54 -8
  302. package/src/meeting-info/meeting-info-v2.ts +148 -14
  303. package/src/meeting-info/utilv2.ts +13 -3
  304. package/src/meetings/collection.ts +20 -0
  305. package/src/meetings/index.ts +386 -84
  306. package/src/meetings/meetings.types.ts +12 -0
  307. package/src/meetings/request.ts +2 -0
  308. package/src/meetings/util.ts +103 -4
  309. package/src/member/index.ts +49 -0
  310. package/src/member/types.ts +38 -0
  311. package/src/member/util.ts +103 -0
  312. package/src/members/collection.ts +8 -0
  313. package/src/members/index.ts +107 -6
  314. package/src/members/request.ts +97 -17
  315. package/src/members/types.ts +28 -0
  316. package/src/members/util.ts +319 -240
  317. package/src/metrics/constants.ts +2 -4
  318. package/src/metrics/index.ts +1 -490
  319. package/src/multistream/mediaRequestManager.ts +289 -79
  320. package/src/multistream/receiveSlot.ts +55 -18
  321. package/src/multistream/receiveSlotManager.ts +42 -20
  322. package/src/multistream/remoteMedia.ts +28 -2
  323. package/src/multistream/remoteMediaGroup.ts +59 -0
  324. package/src/multistream/remoteMediaManager.ts +113 -32
  325. package/src/networkQualityMonitor/index.ts +6 -6
  326. package/src/reachability/index.ts +62 -15
  327. package/src/reachability/request.ts +10 -5
  328. package/src/reactions/reactions.ts +4 -4
  329. package/src/reactions/reactions.type.ts +3 -3
  330. package/src/reconnection-manager/index.ts +68 -43
  331. package/src/recording-controller/index.ts +20 -2
  332. package/src/recording-controller/util.ts +26 -9
  333. package/src/roap/index.ts +21 -30
  334. package/src/roap/request.ts +101 -95
  335. package/src/roap/turnDiscovery.ts +47 -25
  336. package/src/statsAnalyzer/global.ts +1 -94
  337. package/src/statsAnalyzer/index.ts +376 -386
  338. package/src/statsAnalyzer/mqaUtil.ts +100 -99
  339. package/test/integration/spec/converged-space-meetings.js +233 -0
  340. package/test/integration/spec/journey.js +336 -259
  341. package/test/integration/spec/space-meeting.js +77 -4
  342. package/test/unit/spec/annotation/index.ts +418 -0
  343. package/test/unit/spec/breakouts/breakout.ts +142 -24
  344. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  345. package/test/unit/spec/breakouts/events.ts +89 -0
  346. package/test/unit/spec/breakouts/index.ts +1545 -48
  347. package/test/unit/spec/breakouts/request.ts +104 -0
  348. package/test/unit/spec/breakouts/utils.js +72 -0
  349. package/test/unit/spec/controls-options-manager/index.js +287 -0
  350. package/test/unit/spec/controls-options-manager/util.js +582 -0
  351. package/test/unit/spec/fixture/locus.js +1 -0
  352. package/test/unit/spec/interpretation/collection.ts +15 -0
  353. package/test/unit/spec/interpretation/index.ts +570 -0
  354. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  355. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  356. package/test/unit/spec/locus-info/index.js +707 -22
  357. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  358. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  359. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  360. package/test/unit/spec/media/index.ts +129 -23
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +75 -3
  362. package/test/unit/spec/meeting/index.js +2812 -1375
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  364. package/test/unit/spec/meeting/muteState.js +370 -208
  365. package/test/unit/spec/meeting/request.js +338 -43
  366. package/test/unit/spec/meeting/utils.js +378 -55
  367. package/test/unit/spec/meeting-info/index.js +181 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +14 -0
  371. package/test/unit/spec/meetings/index.js +846 -121
  372. package/test/unit/spec/meetings/utils.js +206 -2
  373. package/test/unit/spec/member/index.js +58 -4
  374. package/test/unit/spec/member/util.js +415 -33
  375. package/test/unit/spec/members/index.js +320 -1
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +184 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  380. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  382. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
  385. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  386. package/test/unit/spec/reachability/index.ts +125 -8
  387. package/test/unit/spec/reachability/request.js +66 -0
  388. package/test/unit/spec/reconnection-manager/index.js +59 -6
  389. package/test/unit/spec/recording-controller/index.js +294 -218
  390. package/test/unit/spec/recording-controller/util.js +223 -96
  391. package/test/unit/spec/roap/index.ts +26 -51
  392. package/test/unit/spec/roap/request.ts +196 -85
  393. package/test/unit/spec/roap/turnDiscovery.ts +30 -7
  394. package/test/unit/spec/stats-analyzer/index.js +92 -41
  395. package/test/utils/constants.js +9 -0
  396. package/test/utils/integrationTestUtils.js +46 -0
  397. package/test/utils/testUtils.js +0 -45
  398. package/test/utils/webex-config.js +4 -0
  399. package/test/utils/webex-test-users.js +6 -3
  400. package/dist/meeting/effectsState.js +0 -262
  401. package/dist/meeting/effectsState.js.map +0 -1
  402. package/dist/metrics/config.js +0 -299
  403. package/dist/metrics/config.js.map +0 -1
  404. package/dist/multistream/multistreamMedia.js +0 -110
  405. package/dist/multistream/multistreamMedia.js.map +0 -1
  406. package/src/index.js +0 -15
  407. package/src/meeting/effectsState.ts +0 -211
  408. package/src/metrics/config.ts +0 -495
  409. package/src/multistream/multistreamMedia.ts +0 -97
  410. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -19,30 +19,70 @@ import {
19
19
  LEAVE,
20
20
  LOCI,
21
21
  LOCUS,
22
- MEDIA,
23
22
  PARTICIPANT,
24
23
  PROVISIONAL_TYPE_DIAL_IN,
25
24
  PROVISIONAL_TYPE_DIAL_OUT,
25
+ REACHABILITY,
26
26
  SEND_DTMF_ENDPOINT,
27
27
  _SLIDES_,
28
+ ANNOTATION,
28
29
  } from '../constants';
29
- import {Reaction} from '../reactions/reactions.type';
30
30
  import {SendReactionOptions, ToggleReactionsOptions} from './request.type';
31
+ import MeetingUtil from './util';
32
+ import {AnnotationInfo} from '../annotation/annotation.types';
31
33
 
32
34
  /**
33
35
  * @class MeetingRequest
34
36
  */
35
37
  export default class MeetingRequest extends StatelessWebexPlugin {
36
38
  changeVideoLayoutDebounced: any;
39
+ meetingRef: WeakRef<any>;
40
+ locusDeltaRequest: (options: object) => Promise<any>;
37
41
 
42
+ /**
43
+ * Constructor
44
+ * @param {Object} attrs
45
+ * @param {Object} options
46
+ */
38
47
  constructor(attrs: any, options: any) {
39
- super(attrs, options);
48
+ const {meeting, ...otherAttrs} = attrs;
49
+
50
+ super(otherAttrs, options);
51
+
52
+ this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
53
+
40
54
  this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {
41
55
  leading: true,
42
56
  trailing: true,
43
57
  });
44
58
  }
45
59
 
60
+ /**
61
+ * Returns joinCookie from boundedStorage if present.
62
+ * @returns {Object} joinCookie
63
+ */
64
+ private getJoinCookie = async () => {
65
+ // @ts-ignore
66
+ const joinCookieRaw = await this.webex.boundedStorage
67
+ .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)
68
+ .catch(() => {});
69
+
70
+ if (joinCookieRaw) {
71
+ try {
72
+ const joinCookie = JSON.parse(joinCookieRaw);
73
+ if (joinCookie) {
74
+ return joinCookie;
75
+ }
76
+ } catch (e) {
77
+ LoggerProxy.logger.error(
78
+ `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`
79
+ );
80
+ }
81
+ }
82
+
83
+ return null;
84
+ };
85
+
46
86
  /**
47
87
  * Make a network request to join a meeting
48
88
  * @param {Object} options
@@ -57,6 +97,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
57
97
  * @param {boolean} options.moveToResource
58
98
  * @param {Object} options.roapMessage
59
99
  * @param {boolean} options.breakoutsSupported
100
+ * @param {String} options.locale,
101
+ * @param {Array} options.deviceCapabilities
102
+ * @param {boolean} options.liveAnnotationSupported
60
103
  * @returns {Promise}
61
104
  */
62
105
  async joinMeeting(options: {
@@ -76,6 +119,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
76
119
  permissionToken: any;
77
120
  preferTranscoding: any;
78
121
  breakoutsSupported: boolean;
122
+ locale?: string;
123
+ deviceCapabilities?: Array<string>;
124
+ liveAnnotationSupported: boolean;
79
125
  }) {
80
126
  const {
81
127
  asResourceOccupant,
@@ -93,12 +139,17 @@ export default class MeetingRequest extends StatelessWebexPlugin {
93
139
  roapMessage,
94
140
  preferTranscoding,
95
141
  breakoutsSupported,
142
+ locale,
143
+ deviceCapabilities = [],
144
+ liveAnnotationSupported,
96
145
  } = options;
97
146
 
98
147
  LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);
99
148
 
100
149
  let url = '';
101
150
 
151
+ const joinCookie = await this.getJoinCookie();
152
+
102
153
  const body: any = {
103
154
  asResourceOccupant,
104
155
  device: {
@@ -115,13 +166,25 @@ export default class MeetingRequest extends StatelessWebexPlugin {
115
166
  supportsNativeLobby: 1,
116
167
  clientMediaPreferences: {
117
168
  preferTranscoding: preferTranscoding ?? true,
169
+ joinCookie,
118
170
  },
119
171
  };
120
172
 
121
173
  if (breakoutsSupported) {
122
- body.deviceCapabilities = [BREAKOUTS.BREAKOUTS_SUPPORTED];
174
+ deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
175
+ }
176
+ if (liveAnnotationSupported) {
177
+ deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
123
178
  }
124
179
 
180
+ if (locale) {
181
+ body.locale = locale;
182
+ }
183
+
184
+ // add deviceCapabilities prop
185
+ if (deviceCapabilities.length) {
186
+ body.deviceCapabilities = deviceCapabilities;
187
+ }
125
188
  // @ts-ignore
126
189
  if (this.webex.meetings.clientRegion) {
127
190
  // @ts-ignore
@@ -251,7 +314,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
251
314
  };
252
315
 
253
316
  // @ts-ignore
254
- return this.request({
317
+ return this.locusDeltaRequest({
255
318
  method: HTTP_VERBS.POST,
256
319
  uri,
257
320
  body,
@@ -306,7 +369,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
306
369
  };
307
370
 
308
371
  // @ts-ignore
309
- return this.request({
372
+ return this.locusDeltaRequest({
310
373
  method: HTTP_VERBS.POST,
311
374
  uri,
312
375
  body,
@@ -421,7 +484,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
421
484
  };
422
485
 
423
486
  // @ts-ignore
424
- return this.request({
487
+ return this.locusDeltaRequest({
425
488
  method: HTTP_VERBS.PUT,
426
489
  uri,
427
490
  body,
@@ -470,8 +533,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
470
533
  correlationId,
471
534
  };
472
535
 
473
- // @ts-ignore
474
- return this.request({
536
+ return this.locusDeltaRequest({
475
537
  method: HTTP_VERBS.PUT,
476
538
  uri,
477
539
  body,
@@ -497,14 +559,19 @@ export default class MeetingRequest extends StatelessWebexPlugin {
497
559
  correlationId: options.correlationId,
498
560
  };
499
561
 
500
- // @ts-ignore
501
- return this.request({
562
+ return this.locusDeltaRequest({
502
563
  method: HTTP_VERBS.PUT,
503
564
  uri,
504
565
  body,
505
566
  });
506
567
  }
507
568
 
569
+ /**
570
+ * Makes a network request to lock the meeting
571
+ * @param {Object} options
572
+ * @param {Boolean} options.lock Whether it is locked or not
573
+ * @returns {Promise}
574
+ */
508
575
  lockMeeting(options) {
509
576
  const uri = `${options.locusUrl}/${CONTROLS}`;
510
577
  const body = {
@@ -513,8 +580,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
513
580
  },
514
581
  };
515
582
 
516
- // @ts-ignore
517
- return this.request({
583
+ return this.locusDeltaRequest({
518
584
  method: HTTP_VERBS.PATCH,
519
585
  uri,
520
586
  body,
@@ -540,54 +606,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
540
606
  ...(options.reason && {reason: options.reason}),
541
607
  };
542
608
 
543
- // @ts-ignore
544
- return this.request({
545
- method: HTTP_VERBS.PUT,
546
- uri,
547
- body,
548
- });
549
- }
550
-
551
- /**
552
- * Toggle remote audio and/or video
553
- * @param {Object} options options for toggling
554
- * @param {String} options.selfId Locus self id??
555
- * @param {String} options.locusUrl Locus url
556
- * @param {String} options.deviceUrl Url of a device
557
- * @param {String} options.resourceId Populated if you are paired to a device
558
- * @param {String} options.localMedias local sdps
559
- * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)
560
- * @returns {Promise}
561
- */
562
- remoteAudioVideoToggle(
563
- options:
564
- | {
565
- selfId: string;
566
- locusUrl: string;
567
- deviceUrl: string;
568
- resourceId: string;
569
- localMedias: string;
570
- }
571
- | any
572
- ) {
573
- const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;
574
- const body = {
575
- device: {
576
- // @ts-ignore
577
- deviceType: this.config.meetings.deviceType,
578
- url: options.deviceUrl,
579
- },
580
- usingResource: options.resourceId || null,
581
- correlationId: options.correlationId,
582
- respOnlySdp: true,
583
- localMedias: options.localMedias,
584
- clientMediaPreferences: {
585
- preferTranscoding: options.preferTranscoding ?? true,
586
- },
587
- };
588
-
589
- // @ts-ignore
590
- return this.request({
609
+ return this.locusDeltaRequest({
591
610
  method: HTTP_VERBS.PUT,
592
611
  uri,
593
612
  body,
@@ -612,6 +631,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
612
631
  deviceUrl: string;
613
632
  resourceId: string;
614
633
  uri: string;
634
+ annotationInfo: AnnotationInfo;
615
635
  }
616
636
  | any
617
637
  ) {
@@ -645,6 +665,9 @@ export default class MeetingRequest extends StatelessWebexPlugin {
645
665
  if (options?.resourceToken) {
646
666
  body.resourceToken = options?.resourceToken;
647
667
  }
668
+ if (options?.annotationInfo) {
669
+ body.annotation = options?.annotationInfo;
670
+ }
648
671
 
649
672
  // @ts-ignore
650
673
  return this.request({
@@ -664,7 +687,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
664
687
  */
665
688
  sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {
666
689
  // @ts-ignore
667
- return this.request({
690
+ return this.locusDeltaRequest({
668
691
  method: HTTP_VERBS.POST,
669
692
  uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,
670
693
  body: {
@@ -745,7 +768,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
745
768
  : undefined;
746
769
 
747
770
  // @ts-ignore
748
- return this.request({
771
+ return this.locusDeltaRequest({
749
772
  method: HTTP_VERBS.PUT,
750
773
  uri: `${locusUrl}/${CONTROLS}`,
751
774
  body: {
@@ -768,7 +791,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
768
791
  const uri = `${locusUrl}/${END}`;
769
792
 
770
793
  // @ts-ignore
771
- return this.request({
794
+ return this.locusDeltaRequest({
772
795
  method: HTTP_VERBS.POST,
773
796
  uri,
774
797
  });
@@ -820,7 +843,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
820
843
  const uri = `${locusUrl}/${CONTROLS}`;
821
844
 
822
845
  // @ts-ignore
823
- return this.request({
846
+ return this.locusDeltaRequest({
824
847
  method: HTTP_VERBS.PUT,
825
848
  uri,
826
849
  body: {
@@ -831,4 +854,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
831
854
  },
832
855
  });
833
856
  }
857
+
858
+ getLocusStatusByUrl(locusUrl: string) {
859
+ // @ts-ignore
860
+ return this.request({
861
+ method: HTTP_VERBS.GET,
862
+ uri: locusUrl,
863
+ });
864
+ }
834
865
  }