@webex/plugin-meetings 3.8.0 → 3.8.1-next.1

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 (360) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +70 -6
  3. package/dist/breakouts/index.js.map +1 -1
  4. package/dist/common/errors/webex-errors.js +12 -2
  5. package/dist/common/errors/webex-errors.js.map +1 -1
  6. package/dist/config.js +5 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.js +23 -123
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controls-options-manager/enums.js +2 -0
  11. package/dist/controls-options-manager/enums.js.map +1 -1
  12. package/dist/controls-options-manager/types.js.map +1 -1
  13. package/dist/controls-options-manager/util.js +52 -0
  14. package/dist/controls-options-manager/util.js.map +1 -1
  15. package/dist/interpretation/index.js +4 -4
  16. package/dist/interpretation/index.js.map +1 -1
  17. package/dist/interpretation/siLanguage.js +1 -1
  18. package/dist/locus-info/controlsUtils.js +31 -11
  19. package/dist/locus-info/controlsUtils.js.map +1 -1
  20. package/dist/locus-info/index.js +83 -12
  21. package/dist/locus-info/index.js.map +1 -1
  22. package/dist/locus-info/selfUtils.js +432 -418
  23. package/dist/locus-info/selfUtils.js.map +1 -1
  24. package/dist/media/index.js +17 -17
  25. package/dist/media/index.js.map +1 -1
  26. package/dist/media/properties.js +94 -6
  27. package/dist/media/properties.js.map +1 -1
  28. package/dist/meeting/brbState.js +9 -2
  29. package/dist/meeting/brbState.js.map +1 -1
  30. package/dist/meeting/in-meeting-actions.js +17 -1
  31. package/dist/meeting/in-meeting-actions.js.map +1 -1
  32. package/dist/meeting/index.js +661 -334
  33. package/dist/meeting/index.js.map +1 -1
  34. package/dist/meeting/locusMediaRequest.js +21 -22
  35. package/dist/meeting/locusMediaRequest.js.map +1 -1
  36. package/dist/meeting/muteState.js +4 -4
  37. package/dist/meeting/muteState.js.map +1 -1
  38. package/dist/meeting/request.js +30 -0
  39. package/dist/meeting/request.js.map +1 -1
  40. package/dist/meeting/request.type.js.map +1 -1
  41. package/dist/meeting/util.js +13 -2
  42. package/dist/meeting/util.js.map +1 -1
  43. package/dist/meeting-info/meeting-info-v2.js +373 -68
  44. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  45. package/dist/meeting-info/utilv2.js +5 -1
  46. package/dist/meeting-info/utilv2.js.map +1 -1
  47. package/dist/meetings/index.js +136 -1
  48. package/dist/meetings/index.js.map +1 -1
  49. package/dist/meetings/util.js +14 -0
  50. package/dist/meetings/util.js.map +1 -1
  51. package/dist/member/index.js +55 -9
  52. package/dist/member/index.js.map +1 -1
  53. package/dist/member/types.js +3 -0
  54. package/dist/member/types.js.map +1 -1
  55. package/dist/member/util.js +335 -353
  56. package/dist/member/util.js.map +1 -1
  57. package/dist/members/collection.js.map +1 -1
  58. package/dist/members/index.js +137 -29
  59. package/dist/members/index.js.map +1 -1
  60. package/dist/members/request.js +38 -0
  61. package/dist/members/request.js.map +1 -1
  62. package/dist/members/util.js +36 -1
  63. package/dist/members/util.js.map +1 -1
  64. package/dist/metrics/constants.js +10 -0
  65. package/dist/metrics/constants.js.map +1 -1
  66. package/dist/multistream/remoteMediaManager.js +40 -8
  67. package/dist/multistream/remoteMediaManager.js.map +1 -1
  68. package/dist/reachability/clusterReachability.js +63 -27
  69. package/dist/reachability/clusterReachability.js.map +1 -1
  70. package/dist/reachability/index.js +112 -47
  71. package/dist/reachability/index.js.map +1 -1
  72. package/dist/reachability/reachability.types.js +14 -0
  73. package/dist/reachability/reachability.types.js.map +1 -1
  74. package/dist/reachability/request.js +19 -3
  75. package/dist/reachability/request.js.map +1 -1
  76. package/dist/reconnection-manager/index.js +2 -2
  77. package/dist/reconnection-manager/index.js.map +1 -1
  78. package/dist/recording-controller/util.js +5 -5
  79. package/dist/recording-controller/util.js.map +1 -1
  80. package/dist/roap/index.js.map +1 -1
  81. package/dist/roap/turnDiscovery.js +45 -27
  82. package/dist/roap/turnDiscovery.js.map +1 -1
  83. package/dist/roap/types.js +17 -0
  84. package/dist/roap/types.js.map +1 -0
  85. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  86. package/dist/types/config.d.ts +3 -0
  87. package/dist/types/constants.d.ts +16 -85
  88. package/dist/types/controls-options-manager/enums.d.ts +3 -1
  89. package/dist/types/controls-options-manager/types.d.ts +7 -1
  90. package/dist/types/locus-info/index.d.ts +3 -3
  91. package/dist/types/locus-info/selfUtils.d.ts +216 -1
  92. package/dist/types/media/properties.d.ts +15 -0
  93. package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
  94. package/dist/types/meeting/index.d.ts +65 -1
  95. package/dist/types/meeting/muteState.d.ts +0 -1
  96. package/dist/types/meeting/request.d.ts +12 -1
  97. package/dist/types/meeting/request.type.d.ts +6 -0
  98. package/dist/types/meeting/util.d.ts +3 -1
  99. package/dist/types/meeting-info/meeting-info-v2.d.ts +82 -1
  100. package/dist/types/meetings/index.d.ts +57 -0
  101. package/dist/types/member/index.d.ts +21 -6
  102. package/dist/types/member/types.d.ts +73 -14
  103. package/dist/types/member/util.d.ts +156 -1
  104. package/dist/types/members/collection.d.ts +6 -5
  105. package/dist/types/members/index.d.ts +32 -43
  106. package/dist/types/members/request.d.ts +26 -0
  107. package/dist/types/members/util.d.ts +27 -0
  108. package/dist/types/metrics/constants.d.ts +10 -0
  109. package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
  110. package/dist/types/reachability/clusterReachability.d.ts +15 -7
  111. package/dist/types/reachability/index.d.ts +10 -1
  112. package/dist/types/reachability/reachability.types.d.ts +5 -0
  113. package/dist/types/roap/index.d.ts +3 -2
  114. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  115. package/dist/types/roap/types.d.ts +16 -0
  116. package/dist/webinar/index.js +2 -2
  117. package/dist/webinar/index.js.map +1 -1
  118. package/package.json +24 -23
  119. package/src/breakouts/index.ts +69 -0
  120. package/src/common/errors/webex-errors.ts +8 -1
  121. package/src/config.ts +3 -0
  122. package/src/constants.ts +24 -90
  123. package/src/controls-options-manager/enums.ts +2 -0
  124. package/src/controls-options-manager/types.ts +11 -1
  125. package/src/controls-options-manager/util.ts +62 -0
  126. package/src/interpretation/index.ts +3 -3
  127. package/src/locus-info/controlsUtils.ts +50 -14
  128. package/src/locus-info/index.ts +88 -13
  129. package/src/locus-info/selfUtils.ts +496 -442
  130. package/src/media/index.ts +23 -21
  131. package/src/media/properties.ts +96 -0
  132. package/src/meeting/brbState.ts +11 -2
  133. package/src/meeting/in-meeting-actions.ts +32 -0
  134. package/src/meeting/index.ts +449 -95
  135. package/src/meeting/locusMediaRequest.ts +27 -22
  136. package/src/meeting/muteState.ts +4 -4
  137. package/src/meeting/request.ts +36 -1
  138. package/src/meeting/request.type.ts +7 -0
  139. package/src/meeting/util.ts +11 -2
  140. package/src/meeting-info/meeting-info-v2.ts +254 -8
  141. package/src/meeting-info/utilv2.ts +5 -0
  142. package/src/meetings/index.ts +148 -1
  143. package/src/meetings/util.ts +18 -0
  144. package/src/member/index.ts +68 -22
  145. package/src/member/types.ts +82 -16
  146. package/src/member/util.ts +357 -350
  147. package/src/members/collection.ts +4 -3
  148. package/src/members/index.ts +137 -18
  149. package/src/members/request.ts +44 -0
  150. package/src/members/util.ts +43 -1
  151. package/src/metrics/constants.ts +10 -0
  152. package/src/multistream/remoteMediaManager.ts +32 -10
  153. package/src/reachability/clusterReachability.ts +73 -26
  154. package/src/reachability/index.ts +70 -1
  155. package/src/reachability/reachability.types.ts +6 -0
  156. package/src/reachability/request.ts +7 -0
  157. package/src/reconnection-manager/index.ts +2 -2
  158. package/src/recording-controller/util.ts +17 -13
  159. package/src/roap/index.ts +3 -7
  160. package/src/roap/turnDiscovery.ts +34 -39
  161. package/src/roap/types.ts +23 -0
  162. package/src/webinar/index.ts +1 -1
  163. package/test/unit/spec/breakouts/index.ts +167 -95
  164. package/test/unit/spec/controls-options-manager/util.js +120 -0
  165. package/test/unit/spec/interpretation/index.ts +39 -1
  166. package/test/unit/spec/locus-info/controlsUtils.js +139 -9
  167. package/test/unit/spec/locus-info/index.js +195 -73
  168. package/test/unit/spec/locus-info/selfUtils.js +98 -24
  169. package/test/unit/spec/media/index.ts +150 -18
  170. package/test/unit/spec/media/properties.ts +130 -0
  171. package/test/unit/spec/meeting/brbState.ts +40 -2
  172. package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
  173. package/test/unit/spec/meeting/index.js +754 -139
  174. package/test/unit/spec/meeting/locusMediaRequest.ts +95 -87
  175. package/test/unit/spec/meeting/muteState.js +73 -2
  176. package/test/unit/spec/meeting/request.js +32 -1
  177. package/test/unit/spec/meeting/utils.js +119 -18
  178. package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
  179. package/test/unit/spec/meeting-info/utilv2.js +19 -0
  180. package/test/unit/spec/meetings/index.js +146 -2
  181. package/test/unit/spec/member/index.js +7 -0
  182. package/test/unit/spec/member/util.js +24 -0
  183. package/test/unit/spec/members/index.js +304 -78
  184. package/test/unit/spec/members/request.js +68 -22
  185. package/test/unit/spec/members/utils.js +75 -0
  186. package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
  187. package/test/unit/spec/reachability/clusterReachability.ts +88 -56
  188. package/test/unit/spec/reachability/index.ts +101 -0
  189. package/test/unit/spec/reachability/request.js +47 -2
  190. package/test/unit/spec/reconnection-manager/index.js +4 -4
  191. package/test/unit/spec/roap/turnDiscovery.ts +110 -28
  192. package/test/unit/spec/webinar/index.ts +5 -0
  193. package/dist/annotation/annotation.types.d.ts +0 -42
  194. package/dist/annotation/constants.d.ts +0 -31
  195. package/dist/annotation/index.d.ts +0 -117
  196. package/dist/breakouts/breakout.d.ts +0 -8
  197. package/dist/breakouts/collection.d.ts +0 -5
  198. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  199. package/dist/breakouts/events.d.ts +0 -8
  200. package/dist/breakouts/index.d.ts +0 -5
  201. package/dist/breakouts/request.d.ts +0 -22
  202. package/dist/breakouts/utils.d.ts +0 -15
  203. package/dist/common/browser-detection.d.ts +0 -9
  204. package/dist/common/collection.d.ts +0 -48
  205. package/dist/common/config.d.ts +0 -2
  206. package/dist/common/errors/captcha-error.d.ts +0 -15
  207. package/dist/common/errors/intent-to-join.d.ts +0 -16
  208. package/dist/common/errors/join-meeting.d.ts +0 -17
  209. package/dist/common/errors/media.d.ts +0 -15
  210. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  211. package/dist/common/errors/parameter.d.ts +0 -15
  212. package/dist/common/errors/password-error.d.ts +0 -15
  213. package/dist/common/errors/permission.d.ts +0 -14
  214. package/dist/common/errors/reclaim-host-role-error.js +0 -149
  215. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  216. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  217. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  218. package/dist/common/errors/reconnection-in-progress.js +0 -33
  219. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  220. package/dist/common/errors/reconnection.d.ts +0 -15
  221. package/dist/common/errors/stats.d.ts +0 -15
  222. package/dist/common/errors/webex-errors.d.ts +0 -93
  223. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  224. package/dist/common/events/events-scope.d.ts +0 -17
  225. package/dist/common/events/events.d.ts +0 -12
  226. package/dist/common/events/trigger-proxy.d.ts +0 -2
  227. package/dist/common/events/util.d.ts +0 -2
  228. package/dist/common/logs/logger-config.d.ts +0 -2
  229. package/dist/common/logs/logger-proxy.d.ts +0 -2
  230. package/dist/common/logs/request.d.ts +0 -36
  231. package/dist/common/queue.d.ts +0 -34
  232. package/dist/config.d.ts +0 -72
  233. package/dist/constants.d.ts +0 -1088
  234. package/dist/controls-options-manager/constants.d.ts +0 -4
  235. package/dist/controls-options-manager/enums.d.ts +0 -15
  236. package/dist/controls-options-manager/index.d.ts +0 -136
  237. package/dist/controls-options-manager/types.d.ts +0 -43
  238. package/dist/controls-options-manager/util.d.ts +0 -1
  239. package/dist/index.d.ts +0 -7
  240. package/dist/interceptors/index.d.ts +0 -2
  241. package/dist/interceptors/locusRetry.d.ts +0 -27
  242. package/dist/interpretation/collection.d.ts +0 -5
  243. package/dist/interpretation/index.d.ts +0 -5
  244. package/dist/interpretation/siLanguage.d.ts +0 -5
  245. package/dist/locus-info/controlsUtils.d.ts +0 -2
  246. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  247. package/dist/locus-info/fullState.d.ts +0 -2
  248. package/dist/locus-info/hostUtils.d.ts +0 -2
  249. package/dist/locus-info/index.d.ts +0 -322
  250. package/dist/locus-info/infoUtils.d.ts +0 -2
  251. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  252. package/dist/locus-info/parser.d.ts +0 -272
  253. package/dist/locus-info/selfUtils.d.ts +0 -2
  254. package/dist/media/index.d.ts +0 -34
  255. package/dist/media/properties.d.ts +0 -93
  256. package/dist/media/util.d.ts +0 -2
  257. package/dist/mediaQualityMetrics/config.d.ts +0 -241
  258. package/dist/mediaQualityMetrics/config.js +0 -502
  259. package/dist/mediaQualityMetrics/config.js.map +0 -1
  260. package/dist/meeting/effectsState.js +0 -260
  261. package/dist/meeting/effectsState.js.map +0 -1
  262. package/dist/meeting/in-meeting-actions.d.ts +0 -167
  263. package/dist/meeting/index.d.ts +0 -1825
  264. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  265. package/dist/meeting/muteState.d.ts +0 -178
  266. package/dist/meeting/request.d.ts +0 -295
  267. package/dist/meeting/request.type.d.ts +0 -11
  268. package/dist/meeting/state.d.ts +0 -9
  269. package/dist/meeting/util.d.ts +0 -119
  270. package/dist/meeting/voicea-meeting.d.ts +0 -16
  271. package/dist/meeting-info/collection.d.ts +0 -20
  272. package/dist/meeting-info/index.d.ts +0 -69
  273. package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
  274. package/dist/meeting-info/request.d.ts +0 -22
  275. package/dist/meeting-info/util.d.ts +0 -2
  276. package/dist/meeting-info/utilv2.d.ts +0 -2
  277. package/dist/meetings/collection.d.ts +0 -40
  278. package/dist/meetings/index.d.ts +0 -390
  279. package/dist/meetings/meetings.types.d.ts +0 -4
  280. package/dist/meetings/request.d.ts +0 -27
  281. package/dist/meetings/util.d.ts +0 -18
  282. package/dist/member/index.d.ts +0 -160
  283. package/dist/member/member.types.js +0 -17
  284. package/dist/member/member.types.js.map +0 -1
  285. package/dist/member/types.d.ts +0 -32
  286. package/dist/member/util.d.ts +0 -2
  287. package/dist/members/collection.d.ts +0 -29
  288. package/dist/members/index.d.ts +0 -353
  289. package/dist/members/request.d.ts +0 -114
  290. package/dist/members/types.d.ts +0 -25
  291. package/dist/members/util.d.ts +0 -215
  292. package/dist/metrics/config.js +0 -276
  293. package/dist/metrics/config.js.map +0 -1
  294. package/dist/metrics/constants.d.ts +0 -70
  295. package/dist/metrics/index.d.ts +0 -45
  296. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  297. package/dist/multistream/receiveSlot.d.ts +0 -68
  298. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  299. package/dist/multistream/remoteMedia.d.ts +0 -72
  300. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  301. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  302. package/dist/multistream/sendSlotManager.d.ts +0 -69
  303. package/dist/networkQualityMonitor/index.d.ts +0 -70
  304. package/dist/networkQualityMonitor/index.js +0 -221
  305. package/dist/networkQualityMonitor/index.js.map +0 -1
  306. package/dist/peer-connection-manager/index.js +0 -671
  307. package/dist/peer-connection-manager/index.js.map +0 -1
  308. package/dist/peer-connection-manager/util.js +0 -109
  309. package/dist/peer-connection-manager/util.js.map +0 -1
  310. package/dist/personal-meeting-room/index.d.ts +0 -47
  311. package/dist/personal-meeting-room/request.d.ts +0 -14
  312. package/dist/personal-meeting-room/util.d.ts +0 -2
  313. package/dist/reachability/clusterReachability.d.ts +0 -109
  314. package/dist/reachability/index.d.ts +0 -105
  315. package/dist/reachability/request.d.ts +0 -39
  316. package/dist/reachability/util.d.ts +0 -8
  317. package/dist/reactions/constants.d.ts +0 -3
  318. package/dist/reactions/reactions.d.ts +0 -4
  319. package/dist/reactions/reactions.type.d.ts +0 -52
  320. package/dist/reconnection-manager/index.d.ts +0 -136
  321. package/dist/recording-controller/enums.d.ts +0 -7
  322. package/dist/recording-controller/index.d.ts +0 -207
  323. package/dist/recording-controller/util.d.ts +0 -14
  324. package/dist/roap/collection.js +0 -62
  325. package/dist/roap/collection.js.map +0 -1
  326. package/dist/roap/handler.js +0 -275
  327. package/dist/roap/handler.js.map +0 -1
  328. package/dist/roap/index.d.ts +0 -86
  329. package/dist/roap/request.d.ts +0 -39
  330. package/dist/roap/state.js +0 -126
  331. package/dist/roap/state.js.map +0 -1
  332. package/dist/roap/turnDiscovery.d.ts +0 -155
  333. package/dist/roap/util.js +0 -75
  334. package/dist/roap/util.js.map +0 -1
  335. package/dist/rtcMetrics/constants.d.ts +0 -4
  336. package/dist/rtcMetrics/constants.js +0 -11
  337. package/dist/rtcMetrics/constants.js.map +0 -1
  338. package/dist/rtcMetrics/index.d.ts +0 -61
  339. package/dist/rtcMetrics/index.js +0 -197
  340. package/dist/rtcMetrics/index.js.map +0 -1
  341. package/dist/statsAnalyzer/global.d.ts +0 -36
  342. package/dist/statsAnalyzer/global.js +0 -126
  343. package/dist/statsAnalyzer/global.js.map +0 -1
  344. package/dist/statsAnalyzer/index.d.ts +0 -217
  345. package/dist/statsAnalyzer/index.js +0 -1013
  346. package/dist/statsAnalyzer/index.js.map +0 -1
  347. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
  348. package/dist/statsAnalyzer/mqaUtil.js +0 -179
  349. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  350. package/dist/transcription/index.d.ts +0 -64
  351. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  352. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  353. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  354. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  355. package/dist/types/rtcMetrics/index.d.ts +0 -71
  356. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  357. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  358. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  359. package/dist/webinar/collection.d.ts +0 -16
  360. package/dist/webinar/index.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_lodash","_constants","_collection","_loggerProxy","Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastInstanceUrl","canManageWebcast","selfIsPanelist","selfIsAttendee","practiceSessionEnabled","meetingId","locusUrlUpdate","set","updateWebcastUrl","payload","get","updateCanManageWebcast","updateRoleChanged","oldRoles","newRoles","isPromoted","includes","SELF_ROLES","ATTENDEE","PANELIST","isDemoted","MODERATOR","updateStatusByRole","_ref","meeting","webex","meetings","getMeetingByType","_ID_","shareStatus","SHARE_STATUS","WHITEBOARD_SHARE_ACTIVE","_meeting$locusInfo","_meeting$locusInfo2","locusInfo","updateMediaShares","mediaShares","updateLLMConnection","isJoinPracticeSessionDataChannel","setPracticeSessionState","enabled","request","method","HTTP_VERBS","PATCH","uri","concat","body","practiceSession","catch","error","LoggerProxy","logger","updatePracticeSessionStatus","startWebcast","layout","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","t0","t1","PUT","t2","t3","_defineProperty2","credentials","getUserToken","t4","sent","t5","config","trackingIdPrefix","uuid","v4","toString","t6","authorization","trackingId","t7","HEADERS","CONTENT_TYPE","t8","CONTENT_TYPE_VALUE","APPLICATION_JSON","t9","t10","action","meetingInfo","locusId","correlationId","t11","headers","abrupt","call","stop","stopWebcast","_this2","_callee2","_callee2$","_context2","queryWebcastLayout","_this3","_callee3","_callee3$","_context3","GET","updateWebcastLayout","_this4","_callee4","_callee4$","_context4","videoLayout","contentLayout","syncStageLayout","syncStageInMeeting","viewAllWebcastAttendees","_this5","_callee5","_callee5$","_context5","searchWebcastAttendees","_arguments","arguments","_this6","_callee6","queryString","_callee6$","_context6","length","undefined","encodeURIComponent","expelWebcastAttendee","participantId","_this7","_callee7","_callee7$","_context7","DELETE","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport uuid from 'uuid';\nimport {get} from 'lodash';\nimport {_ID_, HEADERS, HTTP_VERBS, MEETINGS, SELF_ROLES, SHARE_STATUS} from '../constants';\n\nimport WebinarCollection from './collection';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastInstanceUrl: 'string', // current webinar's webcast instance url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n selfIsPanelist: 'boolean', // self is panelist\n selfIsAttendee: 'boolean', // self is attendee\n practiceSessionEnabled: 'boolean', // practice session enabled\n meetingId: 'string',\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast instance url of the meeting\n * @param {object} payload\n * @returns {void}\n */\n updateWebcastUrl(payload) {\n this.set('webcastInstanceUrl', get(payload, 'resources.webcastInstance.url'));\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n\n /**\n * Updates user roles and manages associated state transitions\n * @param {object} payload\n * @param {string[]} payload.oldRoles - Previous roles of the user\n * @param {string[]} payload.newRoles - New roles of the user\n * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states\n */\n updateRoleChanged(payload) {\n const oldRoles = get(payload, 'oldRoles', []);\n const newRoles = get(payload, 'newRoles', []);\n\n const isPromoted =\n oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.PANELIST);\n const isDemoted =\n (oldRoles.includes(SELF_ROLES.PANELIST) && newRoles.includes(SELF_ROLES.ATTENDEE)) ||\n (!oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.ATTENDEE)); // for attendee just join meeting case\n this.set('selfIsPanelist', newRoles.includes(SELF_ROLES.PANELIST));\n this.set('selfIsAttendee', newRoles.includes(SELF_ROLES.ATTENDEE));\n this.updateCanManageWebcast(newRoles.includes(SELF_ROLES.MODERATOR));\n this.updateStatusByRole({isPromoted, isDemoted});\n\n return {isPromoted, isDemoted};\n },\n\n /**\n * should join practice session data channel or not\n * @param {Object} {isPromoted: boolean, isDemoted: boolean}} Role transition states\n * @returns {void}\n */\n updateStatusByRole({isPromoted, isDemoted}) {\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n\n if (\n (isDemoted && meeting?.shareStatus === SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) ||\n isPromoted\n ) {\n // attendees in webinar should subscribe streaming for whiteboard sharing\n // while panelist still need subscribe native mode so trigger force update here\n meeting?.locusInfo?.updateMediaShares(meeting?.locusInfo?.mediaShares, true);\n }\n\n if (this.practiceSessionEnabled) {\n // may need change data channel in practice session\n meeting?.updateLLMConnection();\n }\n },\n\n /**\n * should join practice session data channel or not\n * @returns {boolean}\n */\n isJoinPracticeSessionDataChannel() {\n return this.selfIsPanelist && this.practiceSessionEnabled;\n },\n\n /**\n * start or stop practice session for webinar\n * @param {boolean} enabled\n * @returns {Promise}\n */\n setPracticeSessionState(enabled) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n practiceSession: {\n enabled,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#setPracticeSessionState failed', error);\n throw error;\n });\n },\n\n /**\n * update practice session status\n * @param {object} payload\n * @returns {void}\n */\n updatePracticeSessionStatus(payload) {\n this.set('practiceSessionEnabled', payload.enabled);\n },\n\n /**\n * start webcast mode for webinar\n * @param {object} meeting\n * @param {object} layout\n * @returns {Promise}\n */\n async startWebcast(meeting, layout) {\n if (!meeting) {\n LoggerProxy.logger.error(\n `Meeting:webinar#startWebcast failed --> meeting parameter : ${meeting}`\n );\n throw new Error('Meeting parameter does not meet expectations');\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'start',\n meetingInfo: {\n locusId: meeting.locusId,\n correlationId: meeting.correlationId,\n },\n layout,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#startWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * stop webcast mode for webinar\n * @returns {Promise}\n */\n async stopWebcast() {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'stop',\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#stopWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * query webcast layout for webinar\n * @returns {Promise}\n */\n async queryWebcastLayout() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#queryWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * update webcast layout for webinar\n * @param {object} layout\n * @returns {Promise}\n */\n async updateWebcastLayout(layout) {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n videoLayout: layout.videoLayout,\n contentLayout: layout.contentLayout,\n syncStageLayout: layout.syncStageLayout,\n syncStageInMeeting: layout.syncStageInMeeting,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#updateWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * view all webcast attendees\n * @param {string} queryString\n * @returns {Promise}\n */\n async viewAllWebcastAttendees() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * search webcast attendees by query string\n * @param {string} queryString\n * @returns {Promise}\n */\n async searchWebcastAttendees(queryString = '') {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(queryString)}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * expel webcast attendee by participantId\n * @param {string} participantId\n * @returns {Promise}\n */\n async expelWebcastAttendee(participantId) {\n return this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.webcastInstanceUrl}/attendees/${participantId}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);\n throw error;\n });\n },\n});\n\nexport default Webinar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_lodash","_constants","_collection","_loggerProxy","Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastInstanceUrl","canManageWebcast","selfIsPanelist","selfIsAttendee","practiceSessionEnabled","meetingId","locusUrlUpdate","set","updateWebcastUrl","payload","get","updateCanManageWebcast","updateRoleChanged","oldRoles","newRoles","isPromoted","includes","SELF_ROLES","ATTENDEE","PANELIST","isDemoted","MODERATOR","updateStatusByRole","_ref","meeting","webex","meetings","getMeetingByType","_ID_","shareStatus","SHARE_STATUS","WHITEBOARD_SHARE_ACTIVE","_meeting$locusInfo","_meeting$locusInfo2","locusInfo","updateMediaShares","mediaShares","updateLLMConnection","isJoinPracticeSessionDataChannel","setPracticeSessionState","enabled","request","method","HTTP_VERBS","PATCH","uri","concat","body","practiceSession","catch","error","LoggerProxy","logger","updatePracticeSessionStatus","startWebcast","layout","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","t0","t1","PUT","t2","t3","_defineProperty2","credentials","getUserToken","t4","sent","t5","config","trackingIdPrefix","uuid","v4","toString","t6","authorization","trackingId","t7","HEADERS","CONTENT_TYPE","t8","CONTENT_TYPE_VALUE","APPLICATION_JSON","t9","t10","action","meetingInfo","locusId","correlationId","t11","headers","abrupt","call","stop","stopWebcast","_this2","_callee2","_callee2$","_context2","queryWebcastLayout","_this3","_callee3","_callee3$","_context3","GET","updateWebcastLayout","_this4","_callee4","_callee4$","_context4","videoLayout","contentLayout","syncStageLayout","syncStageInMeeting","viewAllWebcastAttendees","_this5","_callee5","_callee5$","_context5","searchWebcastAttendees","_arguments","arguments","_this6","_callee6","queryString","_callee6$","_context6","length","undefined","encodeURIComponent","expelWebcastAttendee","participantId","_this7","_callee7","_callee7$","_context7","DELETE","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport uuid from 'uuid';\nimport {get} from 'lodash';\nimport {_ID_, HEADERS, HTTP_VERBS, MEETINGS, SELF_ROLES, SHARE_STATUS} from '../constants';\n\nimport WebinarCollection from './collection';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastInstanceUrl: 'string', // current webinar's webcast instance url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n selfIsPanelist: 'boolean', // self is panelist\n selfIsAttendee: 'boolean', // self is attendee\n practiceSessionEnabled: 'boolean', // practice session enabled\n meetingId: 'string',\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast instance url of the meeting\n * @param {object} payload\n * @returns {void}\n */\n updateWebcastUrl(payload) {\n this.set('webcastInstanceUrl', get(payload, 'resources.webcastInstance.url'));\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n\n /**\n * Updates user roles and manages associated state transitions\n * @param {object} payload\n * @param {string[]} payload.oldRoles - Previous roles of the user\n * @param {string[]} payload.newRoles - New roles of the user\n * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states\n */\n updateRoleChanged(payload) {\n const oldRoles = get(payload, 'oldRoles', []);\n const newRoles = get(payload, 'newRoles', []);\n\n const isPromoted =\n oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.PANELIST);\n const isDemoted =\n (oldRoles.includes(SELF_ROLES.PANELIST) && newRoles.includes(SELF_ROLES.ATTENDEE)) ||\n (!oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.ATTENDEE)); // for attendee just join meeting case\n this.set('selfIsPanelist', newRoles.includes(SELF_ROLES.PANELIST));\n this.set('selfIsAttendee', newRoles.includes(SELF_ROLES.ATTENDEE));\n this.updateCanManageWebcast(newRoles.includes(SELF_ROLES.MODERATOR));\n this.updateStatusByRole({isPromoted, isDemoted});\n\n return {isPromoted, isDemoted};\n },\n\n /**\n * should join practice session data channel or not\n * @param {Object} {isPromoted: boolean, isDemoted: boolean}} Role transition states\n * @returns {void}\n */\n updateStatusByRole({isPromoted, isDemoted}) {\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n\n if (\n (isDemoted && meeting?.shareStatus === SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) ||\n isPromoted\n ) {\n // attendees in webinar should subscribe streaming for whiteboard sharing\n // while panelist still need subscribe native mode so trigger force update here\n meeting?.locusInfo?.updateMediaShares(meeting?.locusInfo?.mediaShares, true);\n }\n\n if (this.practiceSessionEnabled) {\n // may need change data channel in practice session\n meeting?.updateLLMConnection();\n }\n },\n\n /**\n * should join practice session data channel or not\n * @returns {boolean}\n */\n isJoinPracticeSessionDataChannel() {\n return this.selfIsPanelist && this.practiceSessionEnabled;\n },\n\n /**\n * start or stop practice session for webinar\n * @param {boolean} enabled\n * @returns {Promise}\n */\n setPracticeSessionState(enabled) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n practiceSession: {\n enabled,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#setPracticeSessionState failed', error);\n throw error;\n });\n },\n\n /**\n * update practice session status\n * @param {object} payload\n * @returns {void}\n */\n updatePracticeSessionStatus(payload) {\n this.set('practiceSessionEnabled', !!payload?.enabled);\n },\n\n /**\n * start webcast mode for webinar\n * @param {object} meeting\n * @param {object} layout\n * @returns {Promise}\n */\n async startWebcast(meeting, layout) {\n if (!meeting) {\n LoggerProxy.logger.error(\n `Meeting:webinar#startWebcast failed --> meeting parameter : ${meeting}`\n );\n throw new Error('Meeting parameter does not meet expectations');\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'start',\n meetingInfo: {\n locusId: meeting.locusId,\n correlationId: meeting.correlationId,\n },\n layout,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#startWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * stop webcast mode for webinar\n * @returns {Promise}\n */\n async stopWebcast() {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'stop',\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#stopWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * query webcast layout for webinar\n * @returns {Promise}\n */\n async queryWebcastLayout() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#queryWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * update webcast layout for webinar\n * @param {object} layout\n * @returns {Promise}\n */\n async updateWebcastLayout(layout) {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n videoLayout: layout.videoLayout,\n contentLayout: layout.contentLayout,\n syncStageLayout: layout.syncStageLayout,\n syncStageInMeeting: layout.syncStageInMeeting,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#updateWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * view all webcast attendees\n * @param {string} queryString\n * @returns {Promise}\n */\n async viewAllWebcastAttendees() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * search webcast attendees by query string\n * @param {string} queryString\n * @returns {Promise}\n */\n async searchWebcastAttendees(queryString = '') {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(queryString)}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * expel webcast attendee by participantId\n * @param {string} participantId\n * @returns {Promise}\n */\n async expelWebcastAttendee(participantId) {\n return this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.webcastInstanceUrl}/attendees/${participantId}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);\n throw error;\n });\n },\n});\n\nexport default Webinar;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -43,13 +43,13 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.0",
47
- "@webex/plugin-rooms": "3.8.0",
48
- "@webex/test-helper-chai": "3.8.0",
49
- "@webex/test-helper-mocha": "3.8.0",
50
- "@webex/test-helper-mock-webex": "3.8.0",
51
- "@webex/test-helper-retry": "3.8.0",
52
- "@webex/test-helper-test-users": "3.8.0",
46
+ "@webex/plugin-meetings": "3.8.1-next.1",
47
+ "@webex/plugin-rooms": "3.8.0-next.29",
48
+ "@webex/test-helper-chai": "3.8.0-next.24",
49
+ "@webex/test-helper-mocha": "3.8.0-next.24",
50
+ "@webex/test-helper-mock-webex": "3.8.0-next.24",
51
+ "@webex/test-helper-retry": "3.8.0-next.24",
52
+ "@webex/test-helper-test-users": "3.8.0-next.24",
53
53
  "chai": "^4.3.4",
54
54
  "chai-as-promised": "^7.1.1",
55
55
  "eslint": "^8.24.0",
@@ -61,22 +61,23 @@
61
61
  "typescript": "^4.7.4"
62
62
  },
63
63
  "dependencies": {
64
- "@webex/common": "3.8.0",
65
- "@webex/event-dictionary-ts": "^1.0.1688",
66
- "@webex/internal-media-core": "2.14.4",
67
- "@webex/internal-plugin-conversation": "3.8.0",
68
- "@webex/internal-plugin-device": "3.8.0",
69
- "@webex/internal-plugin-llm": "3.8.0",
70
- "@webex/internal-plugin-mercury": "3.8.0",
71
- "@webex/internal-plugin-metrics": "3.8.0",
72
- "@webex/internal-plugin-support": "3.8.0",
73
- "@webex/internal-plugin-user": "3.8.0",
74
- "@webex/internal-plugin-voicea": "3.8.0",
75
- "@webex/media-helpers": "3.8.0",
76
- "@webex/plugin-people": "3.8.0",
77
- "@webex/plugin-rooms": "3.8.0",
64
+ "@webex/common": "3.8.0-next.24",
65
+ "@webex/event-dictionary-ts": "^1.0.1753",
66
+ "@webex/internal-media-core": "2.17.1",
67
+ "@webex/internal-plugin-conversation": "3.8.0-next.29",
68
+ "@webex/internal-plugin-device": "3.8.0-next.24",
69
+ "@webex/internal-plugin-llm": "3.8.0-next.27",
70
+ "@webex/internal-plugin-mercury": "3.8.0-next.26",
71
+ "@webex/internal-plugin-metrics": "3.8.0-next.24",
72
+ "@webex/internal-plugin-support": "3.8.0-next.29",
73
+ "@webex/internal-plugin-user": "3.8.0-next.24",
74
+ "@webex/internal-plugin-voicea": "3.8.1-next.1",
75
+ "@webex/media-helpers": "3.8.0-next.30",
76
+ "@webex/plugin-people": "3.8.0-next.26",
77
+ "@webex/plugin-rooms": "3.8.0-next.29",
78
+ "@webex/ts-sdp": "^1.8.1",
78
79
  "@webex/web-capabilities": "^1.4.0",
79
- "@webex/webex-core": "3.8.0",
80
+ "@webex/webex-core": "3.8.0-next.24",
80
81
  "ampersand-collection": "^2.0.2",
81
82
  "bowser": "^2.11.0",
82
83
  "btoa": "^1.2.1",
@@ -92,5 +93,5 @@
92
93
  "//": [
93
94
  "TODO: upgrade jwt-decode when moving to node 18"
94
95
  ],
95
- "version": "3.8.0"
96
+ "version": "3.8.1-next.1"
96
97
  }
@@ -45,6 +45,8 @@ const Breakouts = WebexPlugin.extend({
45
45
  intervalID: 'number',
46
46
  meetingId: 'string',
47
47
  canManageBreakouts: 'boolean', // appear the ability to manage breakouts
48
+ mainGroupId: 'string', // appears from the moment you enable breakouts
49
+ mainSessionId: 'string', // appears from the moment you enable breakouts
48
50
  },
49
51
  children: {
50
52
  currentBreakoutSession: Breakout,
@@ -544,6 +546,28 @@ const Breakouts = WebexPlugin.extend({
544
546
  }
545
547
  },
546
548
 
549
+ /**
550
+ * set main group id
551
+ * @param {Object} breakoutInfo -- breakout groups
552
+ * @returns {void}
553
+ */
554
+ _setMainGroupId(breakoutInfo) {
555
+ if (breakoutInfo?.body?.mainGroupId) {
556
+ this.set('mainGroupId', breakoutInfo.body.mainGroupId);
557
+ }
558
+ },
559
+
560
+ /**
561
+ * set main session id
562
+ * @param {Object} breakoutInfo -- breakout groups
563
+ * @returns {void}
564
+ */
565
+ _setMainSessionId(breakoutInfo) {
566
+ if (breakoutInfo?.body?.mainSessionId) {
567
+ this.set('mainSessionId', breakoutInfo.body.mainSessionId);
568
+ }
569
+ },
570
+
547
571
  /**
548
572
  * Create new breakout sessions
549
573
  * @param {object} params -- breakout session group
@@ -567,6 +591,8 @@ const Breakouts = WebexPlugin.extend({
567
591
  });
568
592
 
569
593
  this._setManageGroups(breakoutInfo);
594
+ this._setMainGroupId(breakoutInfo);
595
+ this._setMainSessionId(breakoutInfo);
570
596
 
571
597
  // clear edit lock info after save breakout session info
572
598
  this._clearEditLockInfo();
@@ -630,6 +656,8 @@ const Breakouts = WebexPlugin.extend({
630
656
  });
631
657
 
632
658
  this._setManageGroups(breakoutInfo);
659
+ this._setMainGroupId(breakoutInfo);
660
+ this._setMainSessionId(breakoutInfo);
633
661
 
634
662
  return breakoutInfo;
635
663
  },
@@ -665,6 +693,8 @@ const Breakouts = WebexPlugin.extend({
665
693
  });
666
694
 
667
695
  this._setManageGroups(breakoutInfo);
696
+ this._setMainGroupId(breakoutInfo);
697
+ this._setMainSessionId(breakoutInfo);
668
698
 
669
699
  return breakoutInfo;
670
700
  },
@@ -718,6 +748,9 @@ const Breakouts = WebexPlugin.extend({
718
748
  });
719
749
 
720
750
  this._setManageGroups(breakout);
751
+ this._setMainGroupId(breakout);
752
+ this._setMainSessionId(breakout);
753
+
721
754
  if (editlock && breakout.body?.editlock?.token) {
722
755
  this.set('editLock', breakout.body.editlock);
723
756
  this.keepEditLockAlive();
@@ -916,6 +949,42 @@ const Breakouts = WebexPlugin.extend({
916
949
  body,
917
950
  });
918
951
  },
952
+ /**
953
+ * Move participants to main session lobby
954
+ * @param {Array} sessions
955
+ * @param {string} sessions[].participants - Participant IDs to move
956
+ * @returns {void}
957
+ */
958
+ moveToLobby(sessions: Array<{participants: string[]}>) {
959
+ if (!this.mainGroupId || !this.mainSessionId) {
960
+ throw new Error(
961
+ 'Main group ID and session ID must be available to move participants to lobby'
962
+ );
963
+ }
964
+
965
+ const updatedSessions = sessions.map((item) => {
966
+ return {
967
+ id: this.mainSessionId,
968
+ participants: item.participants,
969
+ targetState: 'LOBBY',
970
+ };
971
+ });
972
+
973
+ const body = {
974
+ groups: [
975
+ {
976
+ id: this.mainGroupId,
977
+ sessions: updatedSessions,
978
+ },
979
+ ],
980
+ };
981
+
982
+ return this.request({
983
+ method: HTTP_VERBS.PUT,
984
+ uri: `${this.url}/dynamicAssign`,
985
+ body,
986
+ });
987
+ },
919
988
  /**
920
989
  * trigger ASK_RETURN_TO_MAIN event when main session requested
921
990
  * @param {Object} breakout
@@ -152,12 +152,19 @@ WebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;
152
152
  * @extends WebexMeetingsError
153
153
  * @property {number} code - 30203
154
154
  * @property {string} message - 'Failed to add media'
155
+ * @property {Error} [cause] - The underlying error that caused the failure
155
156
  */
156
157
  class AddMediaFailed extends WebexMeetingsError {
157
158
  static CODE = 30203;
159
+ cause?: Error;
158
160
 
159
- constructor() {
161
+ /**
162
+ * Creates a new AddMediaFailed error
163
+ * @param {Error} [cause] - The underlying error that caused the media addition to fail
164
+ */
165
+ constructor(cause?: Error) {
160
166
  super(AddMediaFailed.CODE, 'Failed to add media');
167
+ this.cause = cause;
161
168
  }
162
169
  }
163
170
  export {AddMediaFailed};
package/src/config.ts CHANGED
@@ -95,7 +95,10 @@ export default {
95
95
  // This only applies to non-multistream meetings
96
96
  iceCandidatesGatheringTimeout: undefined,
97
97
  backendIpv6NativeSupport: false,
98
+ enableReachabilityChecks: true,
98
99
  reachabilityGetClusterTimeout: 5000,
99
100
  logUploadIntervalMultiplicationFactor: 0, // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1
101
+ stopIceGatheringAfterFirstRelayCandidate: false,
102
+ enableAudioTwccForMultistream: false,
100
103
  },
101
104
  };
package/src/constants.ts CHANGED
@@ -369,6 +369,9 @@ export const EVENT_TRIGGERS = {
369
369
  MEETING_CONTROLS_MEETING_FULL_UPDATED: 'meeting:controls:meeting-full:updated',
370
370
  MEETING_CONTROLS_PRACTICE_SESSION_STATUS_UPDATED:
371
371
  'meeting:controls:practice-session-status:updated',
372
+ MEETING_CONTROLS_ANNOTATION_UPDATED: 'meeting:controls:annotation:updated',
373
+ MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED:
374
+ 'meeting:controls:remote-desktop-control:updated',
372
375
  // Locus URL changed
373
376
  MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
374
377
  MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
@@ -376,8 +379,10 @@ export const EVENT_TRIGGERS = {
376
379
  MEETING_TRANSCRIPTION_CONNECTED: 'meeting:transcription:connected',
377
380
  MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',
378
381
  MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
382
+ MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED: 'meeting:transcription:spokenLanguageUpdate',
379
383
  MEETING_MANUAL_CAPTION_UPDATED: 'meeting:manualCaptionControl:updated',
380
384
  MEETING_CAPTION_RECEIVED: 'meeting:caption-received',
385
+ MEETING_PARTICIPANT_REASON_CHANGED: 'meeting:participant-reason-changed',
381
386
  };
382
387
 
383
388
  export const EVENT_TYPES = {
@@ -695,6 +700,8 @@ export const LOCUSINFO = {
695
700
  CONTROLS_MEETING_LAYOUT_UPDATED: 'CONTROLS_MEETING_LAYOUT_UPDATED',
696
701
  CONTROLS_RECORDING_UPDATED: 'CONTROLS_RECORDING_UPDATED',
697
702
  CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',
703
+ CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED:
704
+ 'CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED',
698
705
  CONTROLS_MEETING_MANUAL_CAPTION_UPDATED: 'CONTROLS_MEETING_MANUAL_CAPTION_UPDATED',
699
706
  CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',
700
707
  CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
@@ -711,6 +718,8 @@ export const LOCUSINFO = {
711
718
  CONTROLS_PRACTICE_SESSION_STATUS_UPDATED: 'CONTROLS_PRACTICE_SESSION_STATUS_UPDATED',
712
719
  CONTROLS_VIDEO_CHANGED: 'CONTROLS_VIDEO_CHANGED',
713
720
  CONTROLS_STAGE_VIEW_UPDATED: 'CONTROLS_STAGE_VIEW_UPDATED',
721
+ CONTROLS_ANNOTATION_CHANGED: 'CONTROLS_ANNOTATION_CHANGED',
722
+ CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED: 'CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED',
714
723
  SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
715
724
  SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
716
725
  SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',
@@ -738,6 +747,7 @@ export const LOCUSINFO = {
738
747
  MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
739
748
  LINKS_SERVICES: 'LINKS_SERVICES',
740
749
  LINKS_RESOURCES: 'LINKS_RESOURCES',
750
+ PARTICIPANT_REASON_CHANGED: 'PARTICIPANT_REASON_CHANGED',
741
751
  },
742
752
  };
743
753
 
@@ -904,7 +914,9 @@ export enum SELF_POLICY {
904
914
  ENFORCE_VIRTUAL_BACKGROUND = 'enforceVirtualBackground',
905
915
  SUPPORT_LOCAL_RECORD = 'supportLocalRecord',
906
916
  SUPPORT_NETWORK_BASED_RECORD = 'supportNetworkBasedRecord',
917
+ SUPPORT_PREMISE_RECORD = 'supportPremiseRecord',
907
918
  SUPPORT_REALTIME_CLOSE_CAPTION = 'supportRealtimeCloseCaption',
919
+ SUPPORT_REALTIME_CLOSE_CAPTION_MANUAL = 'supportRealtimeCloseCaptionManual',
908
920
  SUPPORT_CHAT = 'supportChat',
909
921
  SUPPORT_DESKTOP_SHARE_REMOTE = 'supportDesktopShareRemote',
910
922
  SUPPORT_DESKTOP_SHARE = 'supportDesktopShare',
@@ -972,6 +984,7 @@ export const DISPLAY_HINTS = {
972
984
  PRESENTER_CONTROL: 'PRESENTER_CONTROL',
973
985
  CAN_RENAME_SELF_AND_OBSERVED: 'CAN_RENAME_SELF_AND_OBSERVED',
974
986
  CAN_RENAME_OTHERS: 'CAN_RENAME_OTHERS',
987
+ MOVE_TO_LOBBY: 'MOVE_TO_LOBBY',
975
988
 
976
989
  // breakout session
977
990
  BREAKOUT_MANAGEMENT: 'BREAKOUT_MANAGEMENT',
@@ -1025,6 +1038,17 @@ export const DISPLAY_HINTS = {
1025
1038
  PRACTICE_SESSION_OFF: 'PRACTICE_SESSION_OFF',
1026
1039
  SHOW_PRACTICE_SESSION_START: 'SHOW_PRACTICE_SESSION_START',
1027
1040
  SHOW_PRACTICE_SESSION_STOP: 'SHOW_PRACTICE_SESSION_STOP',
1041
+
1042
+ // Explicit consent for post meeting data
1043
+ SHOW_POST_MEETING_DATA_CONSENT_PROMPT: 'SHOW_POST_MEETING_DATA_CONSENT_PROMPT',
1044
+
1045
+ // Annotations
1046
+ ENABLE_ANNOTATION_MEETING_OPTION: 'ENABLE_ANNOTATION_MEETING_OPTION',
1047
+ DISABLE_ANNOTATION_MEETING_OPTION: 'DISABLE_ANNOTATION_MEETING_OPTION',
1048
+
1049
+ // Remote Desktop Control
1050
+ ENABLE_RDC_MEETING_OPTION: 'ENABLE_RDC_MEETING_OPTION',
1051
+ DISABLE_RDC_MEETING_OPTION: 'DISABLE_RDC_MEETING_OPTION',
1028
1052
  };
1029
1053
 
1030
1054
  export const INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_HINTS.VOIP_IS_ENABLED];
@@ -1149,96 +1173,6 @@ export const NETWORK_STATUS = {
1149
1173
 
1150
1174
  export type NETWORK_STATUS = Enum<typeof NETWORK_STATUS>;
1151
1175
 
1152
- export const NETWORK_TYPE = {
1153
- VPN: 'vpn',
1154
- UNKNOWN: 'unknown',
1155
- WIFI: 'wifi',
1156
- ETHERNET: 'ethernet',
1157
- };
1158
-
1159
- export const STATS = {
1160
- SEND_DIRECTION: 'send',
1161
- RECEIVE_DIRECTION: 'recv',
1162
- REMOTE: 'remote',
1163
- LOCAL: 'local',
1164
- };
1165
-
1166
- export const MQA_STATS = {
1167
- MQA_SIZE: 120, // MQA is done on 60 second intervals by server def, add a buffer for missed events
1168
- CA_TYPE: 'MQA',
1169
- DEFAULT_IP: '0.0.0.0',
1170
- DEFAULT_SHARE_SENDER_STATS: {
1171
- common: {
1172
- common: {
1173
- direction: 'sendrecv', // TODO: parse from SDP and save globally
1174
- isMain: false, // always true for share sender
1175
- mariFecEnabled: false, // unavailable
1176
- mariRtxEnabled: false, // unavailable
1177
- mariLiteEnabled: false, // unavailable
1178
- mariQosEnabled: false, // unavailable
1179
- multistreamEnabled: false, // unavailable
1180
- },
1181
- availableBitrate: 0,
1182
- dtlsBitrate: 0, // unavailable
1183
- dtlsPackets: 0, // unavailable
1184
- fecBitrate: 0, // unavailable
1185
- fecPackets: 0, // unavailable
1186
- maxBitrate: 0, // unavailable
1187
- queueDelay: 0, // unavailable
1188
- remoteJitter: 0, // unavailable
1189
- remoteLossRate: 0,
1190
- roundTripTime: 0,
1191
- rtcpBitrate: 0, // unavailable
1192
- rtcpPackets: 0, // unavailable
1193
- rtpBitrate: 0, // unavailable
1194
- rtpPackets: 0,
1195
- stunBitrate: 0, // unavailable
1196
- stunPackets: 0, // unavailable
1197
- transportType: 'UDP', // TODO: parse the transport type from the SDP and save globally
1198
- },
1199
- streams: [
1200
- {
1201
- common: {
1202
- codec: 'H264', // TODO: parse the codec from the SDP and save globally
1203
- duplicateSsci: 0, // unavailable
1204
- requestedBitrate: 0, // unavailable
1205
- requestedFrames: 0, // unavailable
1206
- rtpPackets: 0,
1207
- ssci: 0, // unavailable
1208
- transmittedBitrate: 0,
1209
- transmittedFrameRate: 0,
1210
- },
1211
- h264CodecProfile: 'BP', // TODO: parse the profile level from h264 in the SDP and save globally
1212
- localConfigurationChanges: 0, // unavailable
1213
- remoteConfigurationChanges: 0, // unavailable
1214
- requestedFrameSize: 0, // unavailable
1215
- requestedKeyFrames: 0, // unavailable
1216
- transmittedFrameSize: 0, // unavailable
1217
- transmittedHeight: 0,
1218
- transmittedKeyFrames: 0,
1219
- transmittedWidth: 0,
1220
- },
1221
- ],
1222
- },
1223
- intervalMetadata: {
1224
- memoryUsage: {
1225
- cpuBitWidth: 0,
1226
- mainProcessMaximumMemoryBytes: 0,
1227
- osBitWidth: 0,
1228
- processAverageMemoryUsage: 0,
1229
- processMaximumMemoryBytes: 0,
1230
- processMaximumMemoryUsage: 0,
1231
- systemAverageMemoryUsage: 0,
1232
- systemMaximumMemoryUsage: 0,
1233
- },
1234
- peerReflexiveIP: 'NULL', // TODO: save after ice trickling completes and use as a global variable
1235
- processAverageCPU: 0,
1236
- processMaximumCPU: 0,
1237
- systemAverageCPU: 0,
1238
- systemMaximumCPU: 0,
1239
- },
1240
- };
1241
-
1242
1176
  // ****** MEDIA QUALITY CONSTANTS ****** //
1243
1177
 
1244
1178
  // these values must match allowed values of RemoteQualityLevel from the @webex/internal-media-core lib
@@ -12,6 +12,8 @@ enum Control {
12
12
  shareControl = 'shareControl',
13
13
  video = 'video',
14
14
  viewTheParticipantList = 'viewTheParticipantList',
15
+ annotation = 'annotation',
16
+ rdc = 'rdc',
15
17
  }
16
18
 
17
19
  export {Control, Setting};
@@ -40,13 +40,23 @@ export interface ViewTheParticipantListProperties {
40
40
  attendeeCount?: boolean;
41
41
  }
42
42
 
43
+ export interface AnnotationProperties {
44
+ enabled?: boolean;
45
+ }
46
+
47
+ export interface RemoteDesktopControlProperties {
48
+ enabled?: boolean;
49
+ }
50
+
43
51
  export type Properties =
44
52
  | AudioProperties
45
53
  | RaiseHandProperties
46
54
  | ReactionsProperties
47
55
  | ShareControlProperties
48
56
  | VideoProperties
49
- | ViewTheParticipantListProperties;
57
+ | ViewTheParticipantListProperties
58
+ | AnnotationProperties
59
+ | RemoteDesktopControlProperties;
50
60
 
51
61
  export interface ControlConfig<Props = Properties> {
52
62
  /**
@@ -7,6 +7,8 @@ import {
7
7
  ReactionsProperties,
8
8
  ViewTheParticipantListProperties,
9
9
  VideoProperties,
10
+ type RemoteDesktopControlProperties,
11
+ type AnnotationProperties,
10
12
  } from './types';
11
13
 
12
14
  /**
@@ -256,6 +258,52 @@ class Utils {
256
258
  return Utils.hasHints({requiredHints, displayHints});
257
259
  }
258
260
 
261
+ /**
262
+ * Validate if a annotation-scoped control is allowed to be sent to the service.
263
+ *
264
+ * @param {ControlConfig<AnnotationProperties>} control - Annotation control config to validate
265
+ * @param {Array<string>} displayHints - All available hints
266
+ * @returns {boolean} - True if all of the actions are allowed.
267
+ */
268
+ public static canUpdateAnnotation(
269
+ control: ControlConfig<AnnotationProperties>,
270
+ displayHints: Array<string>
271
+ ): boolean {
272
+ const requiredHints = [];
273
+
274
+ if (control.properties.enabled === true) {
275
+ requiredHints.push(DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION);
276
+ }
277
+ if (control.properties.enabled === false) {
278
+ requiredHints.push(DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION);
279
+ }
280
+
281
+ return Utils.hasHints({requiredHints, displayHints});
282
+ }
283
+
284
+ /**
285
+ * Validate if a rdc-scoped control is allowed to be sent to the service.
286
+ *
287
+ * @param {ControlConfig<RemoteDesktopControlProperties>} control - Remote Desktop Control config to validate
288
+ * @param {Array<string>} displayHints - All available hints
289
+ * @returns {boolean} - True if all of the actions are allowed.
290
+ */
291
+ public static canUpdateRemoteDesktopControl(
292
+ control: ControlConfig<RemoteDesktopControlProperties>,
293
+ displayHints: Array<string>
294
+ ): boolean {
295
+ const requiredHints = [];
296
+
297
+ if (control.properties.enabled === true) {
298
+ requiredHints.push(DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION);
299
+ }
300
+ if (control.properties.enabled === false) {
301
+ requiredHints.push(DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION);
302
+ }
303
+
304
+ return Utils.hasHints({requiredHints, displayHints});
305
+ }
306
+
259
307
  /**
260
308
  * Validate that a control can be sent to the service based on the provided
261
309
  * display hints.
@@ -301,6 +349,20 @@ class Utils {
301
349
  );
302
350
  break;
303
351
 
352
+ case Control.annotation:
353
+ determinant = Utils.canUpdateAnnotation(
354
+ control as ControlConfig<AnnotationProperties>,
355
+ displayHints
356
+ );
357
+ break;
358
+
359
+ case Control.rdc:
360
+ determinant = Utils.canUpdateRemoteDesktopControl(
361
+ control as ControlConfig<RemoteDesktopControlProperties>,
362
+ displayHints
363
+ );
364
+ break;
365
+
304
366
  default:
305
367
  determinant = false;
306
368
  }