@webex/plugin-meetings 3.0.0-beta.11 → 3.0.0-beta.111

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 (512) 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 +944 -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 +5 -26
  30. package/dist/common/errors/captcha-error.js.map +1 -1
  31. package/dist/common/errors/intent-to-join.js +5 -26
  32. package/dist/common/errors/intent-to-join.js.map +1 -1
  33. package/dist/common/errors/join-meeting.js +6 -27
  34. package/dist/common/errors/join-meeting.js.map +1 -1
  35. package/dist/common/errors/media.js +5 -26
  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 +5 -26
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +4 -25
  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 +5 -26
  46. package/dist/common/errors/reconnection.js.map +1 -1
  47. package/dist/common/errors/stats.js +5 -26
  48. package/dist/common/errors/stats.js.map +1 -1
  49. package/dist/common/errors/webex-errors.js +6 -41
  50. package/dist/common/errors/webex-errors.js.map +1 -1
  51. package/dist/common/errors/webex-meetings-error.js +1 -24
  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 +35 -61
  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 +6 -6
  70. package/dist/config.js.map +1 -1
  71. package/dist/constants.js +193 -53
  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 +27 -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 +286 -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 +94 -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 +383 -212
  94. package/dist/locus-info/index.js.map +1 -1
  95. package/dist/locus-info/infoUtils.js +0 -38
  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 +88 -123
  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 +62 -147
  104. package/dist/media/index.js.map +1 -1
  105. package/dist/media/properties.js +71 -117
  106. package/dist/media/properties.js.map +1 -1
  107. package/dist/media/util.js +2 -9
  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 +67 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2477 -2417
  114. package/dist/meeting/index.js.map +1 -1
  115. package/dist/meeting/muteState.js +252 -113
  116. package/dist/meeting/muteState.js.map +1 -1
  117. package/dist/meeting/request.js +296 -289
  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 +58 -217
  124. package/dist/meeting/util.js.map +1 -1
  125. package/dist/meeting-info/collection.js +3 -25
  126. package/dist/meeting-info/collection.js.map +1 -1
  127. package/dist/meeting-info/index.js +10 -33
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.js +278 -281
  130. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  131. package/dist/meeting-info/request.js +1 -16
  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 +24 -20
  138. package/dist/meetings/collection.js.map +1 -1
  139. package/dist/meetings/index.js +675 -593
  140. package/dist/meetings/index.js.map +1 -1
  141. package/dist/meetings/request.js +23 -42
  142. package/dist/meetings/request.js.map +1 -1
  143. package/dist/meetings/util.js +177 -155
  144. package/dist/meetings/util.js.map +1 -1
  145. package/dist/member/index.js +89 -88
  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 +101 -69
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.js +12 -12
  152. package/dist/members/collection.js.map +1 -1
  153. package/dist/members/index.js +162 -204
  154. package/dist/members/index.js.map +1 -1
  155. package/dist/members/request.js +58 -53
  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 +50 -16
  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 +93 -162
  166. package/dist/metrics/index.js.map +1 -1
  167. package/dist/multistream/mediaRequestManager.js +167 -50
  168. package/dist/multistream/mediaRequestManager.js.map +1 -1
  169. package/dist/multistream/receiveSlot.js +58 -65
  170. package/dist/multistream/receiveSlot.js.map +1 -1
  171. package/dist/multistream/receiveSlotManager.js +74 -93
  172. package/dist/multistream/receiveSlotManager.js.map +1 -1
  173. package/dist/multistream/remoteMedia.js +55 -74
  174. package/dist/multistream/remoteMedia.js.map +1 -1
  175. package/dist/multistream/remoteMediaGroup.js +6 -40
  176. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  177. package/dist/multistream/remoteMediaManager.js +466 -442
  178. package/dist/multistream/remoteMediaManager.js.map +1 -1
  179. package/dist/networkQualityMonitor/index.js +32 -59
  180. package/dist/networkQualityMonitor/index.js.map +1 -1
  181. package/dist/personal-meeting-room/index.js +10 -45
  182. package/dist/personal-meeting-room/index.js.map +1 -1
  183. package/dist/personal-meeting-room/request.js +2 -33
  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 +190 -199
  188. package/dist/reachability/index.js.map +1 -1
  189. package/dist/reachability/request.js +14 -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 +2 -4
  194. package/dist/reactions/reactions.js.map +1 -1
  195. package/dist/reactions/reactions.type.js +19 -23
  196. package/dist/reactions/reactions.type.js.map +1 -1
  197. package/dist/reconnection-manager/index.js +326 -465
  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 +38 -67
  206. package/dist/roap/index.js.map +1 -1
  207. package/dist/roap/request.js +143 -134
  208. package/dist/roap/request.js.map +1 -1
  209. package/dist/roap/turnDiscovery.js +149 -101
  210. package/dist/roap/turnDiscovery.js.map +1 -1
  211. package/dist/statsAnalyzer/global.js +1 -95
  212. package/dist/statsAnalyzer/global.js.map +1 -1
  213. package/dist/statsAnalyzer/index.js +369 -461
  214. package/dist/statsAnalyzer/index.js.map +1 -1
  215. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  216. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  217. package/dist/transcription/index.js +13 -45
  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 +984 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +43 -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 +137 -0
  274. package/dist/types/meeting/index.d.ts +1753 -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 +115 -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 +157 -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 +195 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +169 -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 +28 -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 +220 -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 +835 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/browser-detection.ts +9 -6
  341. package/src/common/collection.ts +3 -1
  342. package/src/common/errors/captcha-error.ts +6 -6
  343. package/src/common/errors/intent-to-join.ts +6 -6
  344. package/src/common/errors/join-meeting.ts +12 -8
  345. package/src/common/errors/media.ts +6 -6
  346. package/src/common/errors/parameter.ts +9 -6
  347. package/src/common/errors/password-error.ts +6 -6
  348. package/src/common/errors/permission.ts +5 -5
  349. package/src/common/errors/reconnection.ts +6 -6
  350. package/src/common/errors/stats.ts +6 -6
  351. package/src/common/errors/webex-errors.ts +7 -5
  352. package/src/common/errors/webex-meetings-error.ts +1 -1
  353. package/src/common/events/events-scope.ts +5 -1
  354. package/src/common/events/events.ts +5 -1
  355. package/src/common/events/trigger-proxy.ts +8 -3
  356. package/src/common/events/util.ts +1 -2
  357. package/src/common/logs/logger-proxy.ts +21 -10
  358. package/src/common/logs/request.ts +11 -8
  359. package/src/config.ts +16 -12
  360. package/src/constants.ts +141 -6
  361. package/src/controls-options-manager/constants.ts +5 -0
  362. package/src/controls-options-manager/enums.ts +18 -0
  363. package/src/controls-options-manager/index.ts +278 -0
  364. package/src/controls-options-manager/types.ts +59 -0
  365. package/src/controls-options-manager/util.ts +274 -0
  366. package/src/index.ts +33 -0
  367. package/src/locus-info/controlsUtils.ts +145 -24
  368. package/src/locus-info/fullState.ts +15 -11
  369. package/src/locus-info/hostUtils.ts +4 -3
  370. package/src/locus-info/index.ts +326 -55
  371. package/src/locus-info/infoUtils.ts +12 -4
  372. package/src/locus-info/mediaSharesUtils.ts +4 -4
  373. package/src/locus-info/parser.ts +46 -68
  374. package/src/locus-info/selfUtils.ts +187 -56
  375. package/src/media/index.ts +142 -172
  376. package/src/media/properties.ts +43 -36
  377. package/src/media/util.ts +1 -1
  378. package/src/mediaQualityMetrics/config.ts +380 -378
  379. package/src/meeting/in-meeting-actions.ts +139 -3
  380. package/src/meeting/index.ts +2674 -1543
  381. package/src/meeting/muteState.ts +271 -68
  382. package/src/meeting/request.ts +231 -135
  383. package/src/meeting/request.type.ts +13 -0
  384. package/src/meeting/state.ts +45 -30
  385. package/src/meeting/util.ts +119 -110
  386. package/src/meeting-info/collection.ts +2 -1
  387. package/src/meeting-info/index.ts +32 -30
  388. package/src/meeting-info/meeting-info-v2.ts +201 -113
  389. package/src/meeting-info/request.ts +9 -3
  390. package/src/meeting-info/util.ts +54 -46
  391. package/src/meeting-info/utilv2.ts +70 -55
  392. package/src/meetings/collection.ts +21 -1
  393. package/src/meetings/index.ts +749 -437
  394. package/src/meetings/request.ts +29 -25
  395. package/src/meetings/util.ts +122 -33
  396. package/src/member/index.ts +95 -49
  397. package/src/member/types.ts +24 -0
  398. package/src/member/util.ts +106 -13
  399. package/src/members/collection.ts +8 -1
  400. package/src/members/index.ts +281 -129
  401. package/src/members/request.ts +87 -14
  402. package/src/members/types.ts +28 -0
  403. package/src/members/util.ts +140 -49
  404. package/src/metrics/config.ts +302 -90
  405. package/src/metrics/constants.ts +1 -6
  406. package/src/metrics/index.ts +124 -95
  407. package/src/multistream/mediaRequestManager.ts +203 -45
  408. package/src/multistream/receiveSlot.ts +69 -26
  409. package/src/multistream/receiveSlotManager.ts +62 -38
  410. package/src/multistream/remoteMedia.ts +30 -4
  411. package/src/multistream/remoteMediaGroup.ts +4 -3
  412. package/src/multistream/remoteMediaManager.ts +230 -66
  413. package/src/networkQualityMonitor/index.ts +24 -27
  414. package/src/personal-meeting-room/index.ts +12 -16
  415. package/src/personal-meeting-room/request.ts +10 -3
  416. package/src/personal-meeting-room/util.ts +3 -3
  417. package/src/reachability/index.ts +131 -79
  418. package/src/reachability/request.ts +43 -34
  419. package/src/reactions/constants.ts +4 -0
  420. package/src/reactions/reactions.ts +8 -8
  421. package/src/reactions/reactions.type.ts +31 -5
  422. package/src/reconnection-manager/index.ts +193 -111
  423. package/src/recording-controller/enums.ts +8 -0
  424. package/src/recording-controller/index.ts +315 -0
  425. package/src/recording-controller/util.ts +58 -0
  426. package/src/roap/index.ts +63 -51
  427. package/src/roap/request.ts +86 -53
  428. package/src/roap/turnDiscovery.ts +105 -46
  429. package/src/statsAnalyzer/global.ts +8 -104
  430. package/src/statsAnalyzer/index.ts +624 -376
  431. package/src/statsAnalyzer/mqaUtil.ts +203 -90
  432. package/src/transcription/index.ts +34 -32
  433. package/test/integration/spec/converged-space-meetings.js +177 -0
  434. package/test/integration/spec/journey.js +670 -466
  435. package/test/integration/spec/space-meeting.js +320 -204
  436. package/test/integration/spec/transcription.js +7 -8
  437. package/test/unit/spec/annotation/index.ts +435 -0
  438. package/test/unit/spec/breakouts/breakout.ts +184 -0
  439. package/test/unit/spec/breakouts/collection.ts +15 -0
  440. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  441. package/test/unit/spec/breakouts/events.ts +77 -0
  442. package/test/unit/spec/breakouts/index.ts +1542 -0
  443. package/test/unit/spec/breakouts/request.ts +104 -0
  444. package/test/unit/spec/breakouts/utils.js +72 -0
  445. package/test/unit/spec/common/browser-detection.js +9 -28
  446. package/test/unit/spec/controls-options-manager/index.js +287 -0
  447. package/test/unit/spec/controls-options-manager/util.js +504 -0
  448. package/test/unit/spec/fixture/locus.js +93 -90
  449. package/test/unit/spec/locus-info/controlsUtils.js +289 -32
  450. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  451. package/test/unit/spec/locus-info/index.js +585 -5
  452. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  453. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  454. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  455. package/test/unit/spec/locus-info/parser.js +3 -9
  456. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  457. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  458. package/test/unit/spec/media/index.ts +104 -8
  459. package/test/unit/spec/media/properties.ts +9 -9
  460. package/test/unit/spec/meeting/in-meeting-actions.ts +66 -3
  461. package/test/unit/spec/meeting/index.js +2934 -946
  462. package/test/unit/spec/meeting/muteState.js +368 -70
  463. package/test/unit/spec/meeting/request.js +194 -44
  464. package/test/unit/spec/meeting/utils.js +146 -165
  465. package/test/unit/spec/meeting-info/meetinginfov2.js +333 -74
  466. package/test/unit/spec/meeting-info/request.js +7 -9
  467. package/test/unit/spec/meeting-info/util.js +11 -12
  468. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  469. package/test/unit/spec/meetings/collection.js +15 -1
  470. package/test/unit/spec/meetings/index.js +1052 -329
  471. package/test/unit/spec/meetings/utils.js +163 -14
  472. package/test/unit/spec/member/index.js +24 -1
  473. package/test/unit/spec/member/util.js +383 -32
  474. package/test/unit/spec/members/index.js +402 -54
  475. package/test/unit/spec/members/request.js +76 -20
  476. package/test/unit/spec/members/utils.js +191 -4
  477. package/test/unit/spec/metrics/index.js +104 -20
  478. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  479. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  480. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  481. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  482. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  483. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  484. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  485. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  486. package/test/unit/spec/reachability/index.ts +176 -27
  487. package/test/unit/spec/reachability/request.js +66 -0
  488. package/test/unit/spec/reconnection-manager/index.js +62 -31
  489. package/test/unit/spec/recording-controller/index.js +231 -0
  490. package/test/unit/spec/recording-controller/util.js +102 -0
  491. package/test/unit/spec/roap/index.ts +21 -16
  492. package/test/unit/spec/roap/request.ts +217 -0
  493. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  494. package/test/unit/spec/stats-analyzer/index.js +116 -60
  495. package/test/utils/cmr.js +44 -42
  496. package/test/utils/constants.js +9 -0
  497. package/test/utils/integrationTestUtils.js +64 -0
  498. package/test/utils/testUtils.js +63 -99
  499. package/test/utils/webex-config.js +22 -18
  500. package/test/utils/webex-test-users.js +57 -50
  501. package/tsconfig.json +6 -0
  502. package/dist/media/internal-media-core-wrapper.js +0 -22
  503. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  504. package/dist/meeting/effectsState.js +0 -334
  505. package/dist/meeting/effectsState.js.map +0 -1
  506. package/dist/multistream/multistreamMedia.js +0 -116
  507. package/dist/multistream/multistreamMedia.js.map +0 -1
  508. package/src/index.js +0 -15
  509. package/src/media/internal-media-core-wrapper.ts +0 -9
  510. package/src/meeting/effectsState.ts +0 -211
  511. package/src/multistream/multistreamMedia.ts +0 -92
  512. package/test/unit/spec/meeting/effectsState.js +0 -291
@@ -1,74 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
24
-
25
15
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
26
-
27
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
28
-
29
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
30
-
31
18
  var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
32
-
33
19
  var _webexErrors = require("../common/errors/webex-errors");
34
-
35
20
  var _metrics = _interopRequireDefault(require("../metrics"));
36
-
37
21
  var _config = require("../metrics/config");
38
-
39
22
  var _media = _interopRequireDefault(require("../media"));
40
-
41
23
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
42
-
43
24
  var _constants = require("../constants");
44
-
45
25
  var _intentToJoin = _interopRequireDefault(require("../common/errors/intent-to-join"));
46
-
47
26
  var _joinMeeting = _interopRequireDefault(require("../common/errors/join-meeting"));
48
-
49
27
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
50
-
51
28
  var _permission = _interopRequireDefault(require("../common/errors/permission"));
52
-
53
29
  var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
54
-
55
30
  var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
56
-
57
31
  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
32
  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
33
  var MeetingUtil = {};
62
-
63
34
  MeetingUtil.parseLocusJoin = function (response) {
64
- var parsed = {}; // First todo: add check for existance
35
+ var parsed = {};
65
36
 
37
+ // First todo: add check for existance
66
38
  parsed.locus = response.body.locus;
67
39
  parsed.mediaConnections = response.body.mediaConnections;
68
40
  parsed.locusUrl = parsed.locus.url;
69
41
  parsed.locusId = parsed.locus.url.split('/').pop();
70
- parsed.selfId = parsed.locus.self.id; // we need mediaId before making roap calls
42
+ parsed.selfId = parsed.locus.self.id;
71
43
 
44
+ // we need mediaId before making roap calls
72
45
  parsed.mediaConnections.forEach(function (mediaConnection) {
73
46
  if (mediaConnection.mediaId) {
74
47
  parsed.mediaId = mediaConnection.mediaId;
@@ -76,23 +49,18 @@ MeetingUtil.parseLocusJoin = function (response) {
76
49
  });
77
50
  return parsed;
78
51
  };
79
-
80
52
  MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting) {
81
53
  if (!meeting) {
82
54
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
83
55
  }
84
-
85
56
  var localMedias = _media.default.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);
86
-
87
57
  if ((0, _isEmpty2.default)(localMedias)) {
88
58
  return _promise.default.reject(new _parameter.default('You need a media id on the meeting to change remote audio.'));
89
59
  }
90
-
91
60
  _metrics.default.postEvent({
92
61
  event: _config.eventType.MEDIA_REQUEST,
93
62
  meeting: meeting
94
63
  });
95
-
96
64
  return meeting.meetingRequest.remoteAudioVideoToggle({
97
65
  locusUrl: meeting.locusUrl,
98
66
  selfId: meeting.selfId,
@@ -105,38 +73,31 @@ MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting)
105
73
  event: _config.eventType.MEDIA_RESPONSE,
106
74
  meeting: meeting
107
75
  });
108
-
109
76
  return response.body.locus;
110
77
  });
111
78
  };
112
-
113
79
  MeetingUtil.hasOwner = function (info) {
114
80
  return info && info.owner;
115
81
  };
116
-
117
82
  MeetingUtil.isOwnerSelf = function (owner, selfId) {
118
83
  return owner === selfId;
119
84
  };
120
-
121
85
  MeetingUtil.isPinOrGuest = function (err) {
122
86
  var _err$body;
123
-
124
87
  return (err === null || err === void 0 ? void 0 : (_err$body = err.body) === null || _err$body === void 0 ? void 0 : _err$body.errorCode) && _constants.INTENT_TO_JOIN.includes(err.body.errorCode);
125
88
  };
126
-
127
89
  MeetingUtil.joinMeeting = function (meeting, options) {
128
90
  if (!meeting) {
129
91
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
130
92
  }
131
-
132
93
  _metrics.default.postEvent({
133
94
  event: _config.eventType.LOCUS_JOIN_REQUEST,
134
95
  meeting: meeting
135
- }); // eslint-disable-next-line no-warning-comments
96
+ });
97
+
98
+ // eslint-disable-next-line no-warning-comments
136
99
  // TODO: check if the meeting is in JOINING state
137
100
  // if Joining state termintate the request as user might click multiple times
138
-
139
-
140
101
  return meeting.meetingRequest.joinMeeting({
141
102
  inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,
142
103
  meetingNumber: meeting.meetingNumber,
@@ -150,7 +111,8 @@ MeetingUtil.joinMeeting = function (meeting, options) {
150
111
  pin: options.pin,
151
112
  moveToResource: options.moveToResource,
152
113
  preferTranscoding: !meeting.isMultistream,
153
- asResourceOccupant: options.asResourceOccupant
114
+ asResourceOccupant: options.asResourceOccupant,
115
+ breakoutsSupported: options.breakoutsSupported
154
116
  }).then(function (res) {
155
117
  _metrics.default.postEvent({
156
118
  event: _config.eventType.LOCUS_JOIN_RESPONSE,
@@ -162,12 +124,12 @@ MeetingUtil.joinMeeting = function (meeting, options) {
162
124
  trackingId: res.headers.trackingid
163
125
  }
164
126
  });
165
-
166
127
  return MeetingUtil.parseLocusJoin(res);
167
128
  });
168
129
  };
169
-
170
130
  MeetingUtil.cleanUp = function (meeting) {
131
+ meeting.breakouts.cleanUp();
132
+
171
133
  // make sure we send last metrics before we close the peerconnection
172
134
  var stopStatsAnalyzer = meeting.statsAnalyzer ? meeting.statsAnalyzer.stopAnalyzer() : _promise.default.resolve();
173
135
  return stopStatsAnalyzer.then(function () {
@@ -190,12 +152,10 @@ MeetingUtil.cleanUp = function (meeting) {
190
152
  return meeting.updateLLMConnection();
191
153
  });
192
154
  };
193
-
194
155
  MeetingUtil.disconnectPhoneAudio = function (meeting, phoneUrl) {
195
156
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
196
157
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
197
158
  }
198
-
199
159
  var options = {
200
160
  locusUrl: meeting.locusUrl,
201
161
  selfId: meeting.selfId,
@@ -204,33 +164,28 @@ MeetingUtil.disconnectPhoneAudio = function (meeting, phoneUrl) {
204
164
  };
205
165
  return meeting.meetingRequest.disconnectPhoneAudio(options).then(function (response) {
206
166
  var _response$body;
207
-
208
167
  if (response !== null && response !== void 0 && (_response$body = response.body) !== null && _response$body !== void 0 && _response$body.locus) {
209
168
  meeting.locusInfo.onFullLocus(response.body.locus);
210
169
  }
211
170
  }).catch(function (err) {
212
171
  _loggerProxy.default.logger.error("Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ".concat(meeting.id, ", error: ").concat(err));
213
-
214
172
  return _promise.default.reject(err);
215
173
  });
216
- }; // by default will leave on meeting's resourceId
174
+ };
175
+
176
+ // by default will leave on meeting's resourceId
217
177
  // if you explicity want it not to leave on resource id, pass
218
178
  // {resourceId: null}
219
179
  // TODO: chris, you can modify this however you want
220
-
221
-
222
180
  MeetingUtil.leaveMeeting = function (meeting) {
223
181
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
224
-
225
182
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
226
183
  // TODO: clean up if the meeting is already inactive
227
184
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
228
185
  }
229
-
230
186
  if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {
231
187
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
232
188
  }
233
-
234
189
  var defaultOptions = {
235
190
  locusUrl: meeting.locusUrl,
236
191
  selfId: meeting.selfId,
@@ -238,32 +193,26 @@ MeetingUtil.leaveMeeting = function (meeting) {
238
193
  resourceId: meeting.resourceId,
239
194
  deviceUrl: meeting.deviceUrl
240
195
  };
241
-
242
196
  var leaveOptions = _objectSpread(_objectSpread({}, defaultOptions), options);
243
-
244
197
  return meeting.meetingRequest.leaveMeeting(leaveOptions).then(function (response) {
245
198
  if (response && response.body && response.body.locus) {
246
199
  // && !options.moveMeeting) {
247
200
  meeting.locusInfo.onFullLocus(response.body.locus);
248
201
  }
249
-
250
202
  return _promise.default.resolve();
251
203
  }).then(function () {
252
204
  if (options.moveMeeting) {
253
205
  return _promise.default.resolve();
254
206
  }
255
-
256
207
  return MeetingUtil.cleanUp(meeting);
257
208
  }).catch(function (err) {
258
209
  // TODO: If the meeting state comes as LEFT or INACTIVE as response then
259
210
  // 1) on leave clean up the meeting or simply do a sync on the meeting
260
211
  // 2) If the error says meeting is inactive then destroy the meeting object
261
212
  _loggerProxy.default.logger.error("Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ".concat(meeting.id, ", error: ").concat(err));
262
-
263
213
  return _promise.default.reject(err);
264
214
  });
265
215
  };
266
-
267
216
  MeetingUtil.declineMeeting = function (meeting, reason) {
268
217
  return meeting.meetingRequest.declineMeeting({
269
218
  locusUrl: meeting.locusUrl,
@@ -271,49 +220,38 @@ MeetingUtil.declineMeeting = function (meeting, reason) {
271
220
  reason: reason
272
221
  });
273
222
  };
274
-
275
223
  MeetingUtil.isUserInLeftState = function (locusInfo) {
276
224
  var _locusInfo$parsedLocu, _locusInfo$parsedLocu2;
277
-
278
225
  return ((_locusInfo$parsedLocu = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu === void 0 ? void 0 : (_locusInfo$parsedLocu2 = _locusInfo$parsedLocu.self) === null || _locusInfo$parsedLocu2 === void 0 ? void 0 : _locusInfo$parsedLocu2.state) === _constants._LEFT_;
279
226
  };
280
-
281
227
  MeetingUtil.isUserInIdleState = function (locusInfo) {
282
228
  var _locusInfo$parsedLocu3, _locusInfo$parsedLocu4;
283
-
284
229
  return ((_locusInfo$parsedLocu3 = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu3 === void 0 ? void 0 : (_locusInfo$parsedLocu4 = _locusInfo$parsedLocu3.self) === null || _locusInfo$parsedLocu4 === void 0 ? void 0 : _locusInfo$parsedLocu4.state) === _constants._IDLE_;
285
230
  };
286
-
287
231
  MeetingUtil.isUserInJoinedState = function (locusInfo) {
288
232
  var _locusInfo$parsedLocu5, _locusInfo$parsedLocu6;
289
-
290
233
  return ((_locusInfo$parsedLocu5 = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu5 === void 0 ? void 0 : (_locusInfo$parsedLocu6 = _locusInfo$parsedLocu5.self) === null || _locusInfo$parsedLocu6 === void 0 ? void 0 : _locusInfo$parsedLocu6.state) === _constants._JOINED_;
291
234
  };
292
-
293
235
  MeetingUtil.isMediaEstablished = function (currentMediaStatus) {
294
236
  return currentMediaStatus && (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);
295
237
  };
296
-
297
238
  MeetingUtil.joinMeetingOptions = function (meeting) {
298
239
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
299
240
  meeting.resourceId = meeting.resourceId || options.resourceId;
300
-
301
241
  if (meeting.requiredCaptcha) {
302
242
  return _promise.default.reject(new _captchaError.default());
303
243
  }
304
-
305
244
  if (meeting.passwordStatus === _constants.PASSWORD_STATUS.REQUIRED) {
306
245
  return _promise.default.reject(new _passwordError.default());
307
246
  }
308
-
309
247
  if (options.pin) {
310
248
  _metrics.default.postEvent({
311
249
  event: _config.eventType.PIN_COLLECTED,
312
250
  meeting: meeting
313
251
  });
314
- } // normal join meeting, scenario A, D
315
-
252
+ }
316
253
 
254
+ // normal join meeting, scenario A, D
317
255
  return MeetingUtil.joinMeeting(meeting, options).then(function (response) {
318
256
  meeting.setLocus(response);
319
257
  return _promise.default.resolve(response);
@@ -323,202 +261,114 @@ MeetingUtil.joinMeetingOptions = function (meeting) {
323
261
  _metrics.default.postEvent({
324
262
  event: _config.eventType.PIN_PROMPT,
325
263
  meeting: meeting
326
- }); // request host pin or non host for unclaimed PMR, start of Scenario C
327
- // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature
328
-
264
+ });
329
265
 
266
+ // request host pin or non host for unclaimed PMR, start of Scenario C
267
+ // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature
330
268
  return _promise.default.reject(new _intentToJoin.default('Error Joining Meeting', err));
331
269
  }
332
-
333
270
  _loggerProxy.default.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);
334
-
335
271
  return _promise.default.reject(new _joinMeeting.default(options, 'Error Joining Meeting', err));
336
272
  });
337
273
  };
338
-
339
274
  MeetingUtil.validateOptions = function (options) {
340
275
  var sendVideo = options.sendVideo,
341
- sendAudio = options.sendAudio,
342
- sendShare = options.sendShare,
343
- localStream = options.localStream,
344
- localShare = options.localShare;
345
-
276
+ sendAudio = options.sendAudio,
277
+ sendShare = options.sendShare,
278
+ localStream = options.localStream,
279
+ localShare = options.localShare;
346
280
  if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {
347
281
  return _promise.default.reject(new _parameter.default('please pass valid video streams'));
348
282
  }
349
-
350
283
  if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {
351
284
  return _promise.default.reject(new _parameter.default('please pass valid audio streams'));
352
285
  }
353
-
354
286
  if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {
355
287
  return _promise.default.reject(new _parameter.default('please pass valid share streams'));
356
288
  }
357
-
358
289
  return _promise.default.resolve();
359
290
  };
360
-
361
291
  MeetingUtil.getTrack = function (stream) {
362
292
  var audioTrack = null;
363
293
  var videoTrack = null;
364
294
  var audioTracks = null;
365
295
  var videoTracks = null;
366
-
367
296
  if (!stream) {
368
297
  return {
369
298
  audioTrack: null,
370
299
  videoTrack: null
371
300
  };
372
301
  }
373
-
374
302
  if (stream.getAudioTracks) {
375
303
  audioTracks = stream.getAudioTracks();
376
304
  }
377
-
378
305
  if (stream.getVideoTracks) {
379
306
  videoTracks = stream.getVideoTracks();
380
307
  }
381
-
382
308
  if (audioTracks && audioTracks.length > 0) {
383
309
  var _audioTracks = audioTracks;
384
-
385
310
  var _audioTracks2 = (0, _slicedToArray2.default)(_audioTracks, 1);
386
-
387
311
  audioTrack = _audioTracks2[0];
388
312
  }
389
-
390
313
  if (videoTracks && videoTracks.length > 0) {
391
314
  var _videoTracks = videoTracks;
392
-
393
315
  var _videoTracks2 = (0, _slicedToArray2.default)(_videoTracks, 1);
394
-
395
316
  videoTrack = _videoTracks2[0];
396
317
  }
397
-
398
318
  return {
399
319
  audioTrack: audioTrack,
400
320
  videoTrack: videoTrack
401
321
  };
402
322
  };
403
-
404
323
  MeetingUtil.getModeratorFromLocusInfo = function (locusInfo) {
405
324
  return locusInfo && locusInfo.parsedLocus && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info.moderator;
406
325
  };
407
-
408
326
  MeetingUtil.getPolicyFromLocusInfo = function (locusInfo) {
409
327
  return locusInfo && locusInfo.parsedLocus && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info.policy;
410
328
  };
411
-
412
329
  MeetingUtil.getUserDisplayHintsFromLocusInfo = function (locusInfo) {
413
330
  var _locusInfo$parsedLocu7, _locusInfo$parsedLocu8;
414
-
415
331
  return (locusInfo === null || locusInfo === void 0 ? void 0 : (_locusInfo$parsedLocu7 = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu7 === void 0 ? void 0 : (_locusInfo$parsedLocu8 = _locusInfo$parsedLocu7.info) === null || _locusInfo$parsedLocu8 === void 0 ? void 0 : _locusInfo$parsedLocu8.userDisplayHints) || [];
416
332
  };
417
-
418
333
  MeetingUtil.canInviteNewParticipants = function (displayHints) {
419
334
  return displayHints.includes(_constants.DISPLAY_HINTS.ADD_GUEST);
420
335
  };
421
-
422
336
  MeetingUtil.canAdmitParticipant = function (displayHints) {
423
337
  return displayHints.includes(_constants.DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);
424
338
  };
425
-
426
339
  MeetingUtil.canUserLock = function (displayHints) {
427
340
  return displayHints.includes(_constants.DISPLAY_HINTS.LOCK_CONTROL_LOCK) && displayHints.includes(_constants.DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);
428
341
  };
429
-
430
342
  MeetingUtil.canUserUnlock = function (displayHints) {
431
343
  return displayHints.includes(_constants.DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) && displayHints.includes(_constants.DISPLAY_HINTS.LOCK_STATUS_LOCKED);
432
344
  };
433
-
434
- MeetingUtil.canUserRecord = function (displayHints) {
435
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_START);
436
- };
437
-
438
- MeetingUtil.canUserPause = function (displayHints) {
439
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_PAUSE);
440
- };
441
-
442
- MeetingUtil.canUserResume = function (displayHints) {
443
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_RESUME);
444
- };
445
-
446
- MeetingUtil.canUserStop = function (displayHints) {
447
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_STOP);
448
- };
449
-
450
- MeetingUtil.startRecording = function (request, locusUrl, locusInfo) {
451
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
452
-
453
- if (MeetingUtil.canUserRecord(displayHints)) {
454
- return request.recordMeeting({
455
- locusUrl: locusUrl,
456
- recording: true,
457
- paused: false
458
- });
459
- }
460
-
461
- return _promise.default.reject(new _permission.default('Start recording not allowed, due to moderator property.'));
462
- };
463
-
464
- MeetingUtil.pauseRecording = function (request, locusUrl, locusInfo) {
465
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
466
-
467
- if (MeetingUtil.canUserPause(displayHints)) {
468
- return request.recordMeeting({
469
- locusUrl: locusUrl,
470
- recording: true,
471
- paused: true
472
- });
473
- }
474
-
475
- return _promise.default.reject(new _permission.default('Pause recording not allowed, due to moderator property.'));
476
- };
477
-
478
- MeetingUtil.resumeRecording = function (request, locusUrl, locusInfo) {
479
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
480
-
481
- if (MeetingUtil.canUserResume(displayHints)) {
482
- return request.recordMeeting({
483
- locusUrl: locusUrl,
484
- recording: true,
485
- paused: false
486
- });
487
- }
488
-
489
- return _promise.default.reject(new _permission.default('Resume recording not allowed, due to moderator property.'));
490
- };
491
-
492
- MeetingUtil.stopRecording = function (request, locusUrl, locusInfo) {
493
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
494
-
495
- if (MeetingUtil.canUserStop(displayHints)) {
496
- return request.recordMeeting({
497
- locusUrl: locusUrl,
498
- recording: false,
499
- paused: false
500
- });
501
- }
502
-
503
- return _promise.default.reject(new _permission.default('Stop recording not allowed, due to moderator property.'));
504
- };
505
-
506
345
  MeetingUtil.canUserRaiseHand = function (displayHints) {
507
346
  return displayHints.includes(_constants.DISPLAY_HINTS.RAISE_HAND);
508
347
  };
509
-
510
348
  MeetingUtil.canUserLowerAllHands = function (displayHints) {
511
349
  return displayHints.includes(_constants.DISPLAY_HINTS.LOWER_ALL_HANDS);
512
350
  };
513
-
514
351
  MeetingUtil.canUserLowerSomeoneElsesHand = function (displayHints) {
515
352
  return displayHints.includes(_constants.DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);
516
353
  };
517
-
518
354
  MeetingUtil.bothLeaveAndEndMeetingAvailable = function (displayHints) {
519
355
  return displayHints.includes(_constants.DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) || displayHints.includes(_constants.DISPLAY_HINTS.LEAVE_END_MEETING);
520
356
  };
521
-
357
+ MeetingUtil.canManageBreakout = function (displayHints) {
358
+ return displayHints.includes(_constants.DISPLAY_HINTS.BREAKOUT_MANAGEMENT);
359
+ };
360
+ MeetingUtil.isSuppressBreakoutSupport = function (displayHints) {
361
+ return displayHints.includes(_constants.DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT);
362
+ };
363
+ MeetingUtil.canAdmitLobbyToBreakout = function (displayHints) {
364
+ return !displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT);
365
+ };
366
+ MeetingUtil.isBreakoutPreassignmentsEnabled = function (displayHints) {
367
+ return !displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS);
368
+ };
369
+ MeetingUtil.canUserAskForHelp = function (displayHints) {
370
+ return !displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_ASK_FOR_HELP);
371
+ };
522
372
  MeetingUtil.lockMeeting = function (actions, request, locusUrl) {
523
373
  if (actions && actions.canLock) {
524
374
  return request.lockMeeting({
@@ -526,10 +376,8 @@ MeetingUtil.lockMeeting = function (actions, request, locusUrl) {
526
376
  lock: true
527
377
  });
528
378
  }
529
-
530
379
  return _promise.default.reject(new _permission.default('Lock not allowed, due to joined property.'));
531
380
  };
532
-
533
381
  MeetingUtil.unlockMeeting = function (actions, request, locusUrl) {
534
382
  if (actions && actions.canUnlock) {
535
383
  return request.lockMeeting({
@@ -537,51 +385,38 @@ MeetingUtil.unlockMeeting = function (actions, request, locusUrl) {
537
385
  lock: false
538
386
  });
539
387
  }
540
-
541
388
  return _promise.default.reject(new _permission.default('Unlock not allowed, due to joined property.'));
542
389
  };
543
-
544
390
  MeetingUtil.handleAudioLogging = function (audioTrack) {
545
391
  var LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';
546
-
547
392
  if (audioTrack) {
548
- var settings = audioTrack.getSettings();
393
+ var settings = audioTrack.underlyingTrack.getSettings();
549
394
  var deviceId = settings.deviceId;
550
-
551
395
  _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(deviceId));
552
-
553
396
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings =', (0, _stringify.default)(settings));
554
397
  }
555
398
  };
556
-
557
399
  MeetingUtil.handleVideoLogging = function (videoTrack) {
558
400
  var LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';
559
-
560
401
  if (videoTrack) {
561
- var settings = videoTrack.getSettings();
402
+ var settings = videoTrack.underlyingTrack.getSettings();
562
403
  var deviceId = settings.deviceId;
563
-
564
404
  _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(deviceId));
565
-
566
405
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings =', (0, _stringify.default)(settings));
567
406
  }
568
407
  };
569
-
570
408
  MeetingUtil.handleDeviceLogging = function () {
571
409
  var devices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
572
410
  var LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';
573
411
  devices.forEach(function (device) {
574
412
  _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(device.deviceId));
575
-
576
413
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings', (0, _stringify.default)(device));
577
414
  });
578
415
  };
579
-
580
416
  MeetingUtil.endMeetingForAll = function (meeting) {
581
417
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
582
418
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
583
419
  }
584
-
585
420
  var endOptions = {
586
421
  locusUrl: meeting.locusUrl
587
422
  };
@@ -589,53 +424,59 @@ MeetingUtil.endMeetingForAll = function (meeting) {
589
424
  if (response && response.body && response.body.locus) {
590
425
  meeting.locusInfo.onFullLocus(response.body.locus);
591
426
  }
592
-
593
427
  return _promise.default.resolve();
594
428
  }).then(function () {
595
429
  return MeetingUtil.cleanUp(meeting);
596
430
  }).catch(function (err) {
597
431
  _loggerProxy.default.logger.error("Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ".concat(meeting.id, ", error: ").concat(err));
598
-
599
432
  return _promise.default.reject(err);
600
433
  });
601
434
  };
602
-
603
435
  MeetingUtil.canEnableClosedCaption = function (displayHints) {
604
436
  return displayHints.includes(_constants.DISPLAY_HINTS.CAPTION_START);
605
437
  };
606
-
438
+ MeetingUtil.isSaveTranscriptsEnabled = function (displayHints) {
439
+ return displayHints.includes(_constants.DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED);
440
+ };
607
441
  MeetingUtil.canStartTranscribing = function (displayHints) {
608
442
  return displayHints.includes(_constants.DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);
609
443
  };
610
-
611
444
  MeetingUtil.canStopTranscribing = function (displayHints) {
612
445
  return displayHints.includes(_constants.DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);
613
446
  };
614
-
615
447
  MeetingUtil.isClosedCaptionActive = function (displayHints) {
616
448
  return displayHints.includes(_constants.DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);
617
449
  };
618
-
619
450
  MeetingUtil.isWebexAssistantActive = function (displayHints) {
620
451
  return displayHints.includes(_constants.DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);
621
452
  };
622
-
623
453
  MeetingUtil.canViewCaptionPanel = function (displayHints) {
624
454
  return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_CAPTION_PANEL);
625
455
  };
626
-
627
456
  MeetingUtil.isRealTimeTranslationEnabled = function (displayHints) {
628
457
  return displayHints.includes(_constants.DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);
629
458
  };
630
-
631
459
  MeetingUtil.canSelectSpokenLanguages = function (displayHints) {
632
460
  return displayHints.includes(_constants.DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);
633
461
  };
634
-
635
462
  MeetingUtil.waitingForOthersToJoin = function (displayHints) {
636
463
  return displayHints.includes(_constants.DISPLAY_HINTS.WAITING_FOR_OTHERS);
637
464
  };
638
-
465
+ MeetingUtil.canSendReactions = function (originalValue, displayHints) {
466
+ if (displayHints.includes(_constants.DISPLAY_HINTS.REACTIONS_ACTIVE)) {
467
+ return true;
468
+ }
469
+ if (displayHints.includes(_constants.DISPLAY_HINTS.REACTIONS_INACTIVE)) {
470
+ return false;
471
+ }
472
+ return originalValue;
473
+ };
474
+ MeetingUtil.canUserRenameSelfAndObserved = function (displayHints) {
475
+ return displayHints.includes(_constants.DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED);
476
+ };
477
+ MeetingUtil.canUserRenameOthers = function (displayHints) {
478
+ return displayHints.includes(_constants.DISPLAY_HINTS.CAN_RENAME_OTHERS);
479
+ };
639
480
  var _default = MeetingUtil;
640
481
  exports.default = _default;
641
482
  //# sourceMappingURL=util.js.map