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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +919 -0
  18. package/dist/breakouts/index.js.map +1 -0
  19. package/dist/breakouts/request.js +78 -0
  20. package/dist/breakouts/request.js.map +1 -0
  21. package/dist/breakouts/utils.js +67 -0
  22. package/dist/breakouts/utils.js.map +1 -0
  23. package/dist/common/browser-detection.js +1 -20
  24. package/dist/common/browser-detection.js.map +1 -1
  25. package/dist/common/collection.js +5 -20
  26. package/dist/common/collection.js.map +1 -1
  27. package/dist/common/config.js +0 -7
  28. package/dist/common/config.js.map +1 -1
  29. package/dist/common/errors/captcha-error.js +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 +173 -52
  72. package/dist/constants.js.map +1 -1
  73. package/dist/controls-options-manager/constants.js +14 -0
  74. package/dist/controls-options-manager/constants.js.map +1 -0
  75. package/dist/controls-options-manager/enums.js +25 -0
  76. package/dist/controls-options-manager/enums.js.map +1 -0
  77. package/dist/controls-options-manager/index.js +297 -0
  78. package/dist/controls-options-manager/index.js.map +1 -0
  79. package/dist/controls-options-manager/types.js +7 -0
  80. package/dist/controls-options-manager/types.js.map +1 -0
  81. package/dist/controls-options-manager/util.js +250 -0
  82. package/dist/controls-options-manager/util.js.map +1 -0
  83. package/dist/index.js +72 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/locus-info/controlsUtils.js +56 -29
  86. package/dist/locus-info/controlsUtils.js.map +1 -1
  87. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  88. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  89. package/dist/locus-info/fullState.js +0 -15
  90. package/dist/locus-info/fullState.js.map +1 -1
  91. package/dist/locus-info/hostUtils.js +4 -12
  92. package/dist/locus-info/hostUtils.js.map +1 -1
  93. package/dist/locus-info/index.js +327 -211
  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 +59 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2396 -2388
  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 +318 -283
  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 +263 -282
  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 +80 -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 +90 -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 +5 -14
  162. package/dist/metrics/config.js.map +1 -1
  163. package/dist/metrics/constants.js +3 -7
  164. package/dist/metrics/constants.js.map +1 -1
  165. package/dist/metrics/index.js +61 -161
  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 +109 -0
  194. package/dist/reactions/reactions.js.map +1 -0
  195. package/dist/reactions/reactions.type.js +36 -0
  196. package/dist/reactions/reactions.type.js.map +1 -0
  197. package/dist/reconnection-manager/index.js +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 +968 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +37 -0
  258. package/dist/types/controls-options-manager/util.d.ts +1 -0
  259. package/dist/types/index.d.ts +7 -0
  260. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  261. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  262. package/dist/types/locus-info/fullState.d.ts +2 -0
  263. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  264. package/dist/types/locus-info/index.d.ts +315 -0
  265. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  266. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  267. package/dist/types/locus-info/parser.d.ts +212 -0
  268. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  269. package/dist/types/media/index.d.ts +34 -0
  270. package/dist/types/media/properties.d.ts +108 -0
  271. package/dist/types/media/util.d.ts +2 -0
  272. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  273. package/dist/types/meeting/in-meeting-actions.d.ts +129 -0
  274. package/dist/types/meeting/index.d.ts +1748 -0
  275. package/dist/types/meeting/muteState.d.ts +185 -0
  276. package/dist/types/meeting/request.d.ts +275 -0
  277. package/dist/types/meeting/request.type.d.ts +11 -0
  278. package/dist/types/meeting/state.d.ts +9 -0
  279. package/dist/types/meeting/util.d.ts +2 -0
  280. package/dist/types/meeting-info/collection.d.ts +20 -0
  281. package/dist/types/meeting-info/index.d.ts +57 -0
  282. package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -0
  283. package/dist/types/meeting-info/request.d.ts +22 -0
  284. package/dist/types/meeting-info/util.d.ts +2 -0
  285. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  286. package/dist/types/meetings/collection.d.ts +31 -0
  287. package/dist/types/meetings/index.d.ts +345 -0
  288. package/dist/types/meetings/request.d.ts +27 -0
  289. package/dist/types/meetings/util.d.ts +18 -0
  290. package/dist/types/member/index.d.ts +156 -0
  291. package/dist/types/member/types.d.ts +21 -0
  292. package/dist/types/member/util.d.ts +2 -0
  293. package/dist/types/members/collection.d.ts +29 -0
  294. package/dist/types/members/index.d.ts +353 -0
  295. package/dist/types/members/request.d.ts +69 -0
  296. package/dist/types/members/types.d.ts +24 -0
  297. package/dist/types/members/util.d.ts +2 -0
  298. package/dist/types/metrics/config.d.ts +172 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +152 -0
  301. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  302. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  303. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  304. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  305. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  306. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  307. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  308. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  309. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  310. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  311. package/dist/types/reachability/index.d.ts +152 -0
  312. package/dist/types/reachability/request.d.ts +37 -0
  313. package/dist/types/reactions/constants.d.ts +3 -0
  314. package/dist/types/reactions/reactions.d.ts +4 -0
  315. package/dist/types/reactions/reactions.type.d.ts +52 -0
  316. package/dist/types/reconnection-manager/index.d.ts +126 -0
  317. package/dist/types/recording-controller/enums.d.ts +7 -0
  318. package/dist/types/recording-controller/index.d.ts +193 -0
  319. package/dist/types/recording-controller/util.d.ts +13 -0
  320. package/dist/types/roap/index.d.ts +77 -0
  321. package/dist/types/roap/request.d.ts +38 -0
  322. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  323. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  324. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  325. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  326. package/dist/types/transcription/index.d.ts +64 -0
  327. package/internal-README.md +7 -6
  328. package/package.json +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 +219 -0
  333. package/src/breakouts/breakout.ts +141 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +37 -0
  337. package/src/breakouts/index.ts +823 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/browser-detection.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 +119 -6
  361. package/src/controls-options-manager/constants.ts +5 -0
  362. package/src/controls-options-manager/enums.ts +16 -0
  363. package/src/controls-options-manager/index.ts +278 -0
  364. package/src/controls-options-manager/types.ts +49 -0
  365. package/src/controls-options-manager/util.ts +229 -0
  366. package/src/index.ts +33 -0
  367. package/src/locus-info/controlsUtils.ts +91 -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 +270 -54
  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 +123 -3
  380. package/src/meeting/index.ts +2617 -1545
  381. package/src/meeting/muteState.ts +271 -68
  382. package/src/meeting/request.ts +251 -132
  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 +181 -109
  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 +86 -49
  397. package/src/member/types.ts +24 -0
  398. package/src/member/util.ts +92 -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 +256 -90
  405. package/src/metrics/constants.ts +1 -6
  406. package/src/metrics/index.ts +96 -96
  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 +104 -0
  421. package/src/reactions/reactions.type.ts +62 -0
  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 +666 -464
  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 +1504 -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 +403 -0
  448. package/test/unit/spec/fixture/locus.js +92 -90
  449. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  450. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  451. package/test/unit/spec/locus-info/index.js +493 -3
  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 +58 -3
  461. package/test/unit/spec/meeting/index.js +2649 -837
  462. package/test/unit/spec/meeting/muteState.js +368 -70
  463. package/test/unit/spec/meeting/request.js +217 -43
  464. package/test/unit/spec/meeting/utils.js +146 -165
  465. package/test/unit/spec/meeting-info/meetinginfov2.js +268 -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 +359 -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 +46 -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
@@ -8,31 +8,21 @@ import uuid from 'uuid';
8
8
  import window from 'global/window';
9
9
  import anonymize from 'ip-anonymize';
10
10
 
11
+ import {getOSNameInternal} from '@webex/internal-plugin-metrics';
11
12
  import LoggerProxy from '../common/logs/logger-proxy';
12
13
  import {MEETING_ERRORS} from '../constants';
13
14
  import BrowserDetection from '../common/browser-detection';
14
15
 
15
16
  import {
16
- error, eventType, errorCodes as ERROR_CODE, OS_NAME, UNKNOWN, CLIENT_NAME,
17
- mediaType
17
+ error,
18
+ eventType,
19
+ errorCodes as ERROR_CODE,
20
+ UNKNOWN,
21
+ CLIENT_NAME,
22
+ mediaType,
18
23
  } from './config';
19
24
 
20
- const OSMap = {
21
- // @ts-ignore
22
- 'Chrome OS': OS_NAME.chrome,
23
- macOS: OS_NAME.MAC,
24
- Windows: OS_NAME.WINDOWS,
25
- iOS: OS_NAME.IOS,
26
- Android: OS_NAME.ANDROID,
27
- Linux: OS_NAME.LINUX
28
- };
29
-
30
- const {
31
- getOSName,
32
- getOSVersion,
33
- getBrowserName,
34
- getBrowserVersion
35
- } = BrowserDetection();
25
+ const {getOSName, getOSVersion, getBrowserName, getBrowserVersion} = BrowserDetection();
36
26
 
37
27
  // Apply a CIDR /28 format to the IPV4 and /96 to the IPV6 addresses
38
28
  // For reference : https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
@@ -41,10 +31,10 @@ const anonymizeIPAddress = (localIp) => anonymize(localIp, 28, 96);
41
31
  const triggerTimers = ({event, meeting, data}) => {
42
32
  switch (event) {
43
33
  case eventType.CALL_INITIATED:
44
- meeting.setStartCallInitiateJoinReq();
34
+ meeting.setStartCallInitJoinReq();
45
35
  break;
46
36
  case eventType.LOCUS_JOIN_REQUEST:
47
- meeting.setEndCallInitiateJoinReq();
37
+ meeting.setEndCallInitJoinReq();
48
38
  meeting.setStartJoinReqResp();
49
39
  break;
50
40
  case eventType.LOCUS_JOIN_RESPONSE:
@@ -85,33 +75,33 @@ class Metrics {
85
75
  webex: any;
86
76
 
87
77
  /**
88
- * Create Metrics Object
89
- * @constructor
90
- * @public
91
- * @memberof Meetings
92
- */
78
+ * Create Metrics Object
79
+ * @constructor
80
+ * @public
81
+ * @memberof Meetings
82
+ */
93
83
  constructor() {
94
84
  if (!Metrics.instance) {
95
- /**
96
- * @instance
97
- * @type {Array}
98
- * @private
99
- * @memberof Metrics
100
- */
85
+ /**
86
+ * @instance
87
+ * @type {Array}
88
+ * @private
89
+ * @memberof Metrics
90
+ */
101
91
  this._events = [];
102
92
  /**
103
- * @instance
104
- * @type {MeetingCollection}
105
- * @private
106
- * @memberof Metrics
107
- */
93
+ * @instance
94
+ * @type {MeetingCollection}
95
+ * @private
96
+ * @memberof Metrics
97
+ */
108
98
  this.meetingCollection = null;
109
99
  /**
110
- * @instance
111
- * @type {MeetingCollection}
112
- * @private
113
- * @memberof Metrics
114
- */
100
+ * @instance
101
+ * @type {MeetingCollection}
102
+ * @private
103
+ * @memberof Metrics
104
+ */
115
105
  this.keys = Object.values(eventType);
116
106
  /**
117
107
  * @instance
@@ -122,6 +112,7 @@ class Metrics {
122
112
  Metrics.instance = this;
123
113
  }
124
114
 
115
+ // eslint-disable-next-line no-constructor-return
125
116
  return Metrics.instance;
126
117
  }
127
118
 
@@ -147,12 +138,14 @@ class Metrics {
147
138
  * @param {object} options.event
148
139
  * @returns {object} null
149
140
  */
150
- postEvent(options: { meeting?: any; meetingId?: string; data?: object; event?: any } | any) {
141
+ postEvent(options: {meeting?: any; meetingId?: string; data?: object; event?: any} | any) {
151
142
  const {meetingId, data = {}, event} = options;
152
143
  let {meeting} = options;
153
144
 
154
145
  if (this.keys.indexOf(event) === -1) {
155
- LoggerProxy.logger.error(`Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`);
146
+ LoggerProxy.logger.error(
147
+ `Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`
148
+ );
156
149
  }
157
150
 
158
151
  if (!meeting && meetingId) {
@@ -169,25 +162,25 @@ class Metrics {
169
162
  if (event === eventType.MEDIA_QUALITY) {
170
163
  data.event = event;
171
164
  meeting.sendMediaQualityAnalyzerMetrics(data);
172
- }
173
- else {
165
+ } else {
174
166
  meeting.callEvents.push(event);
175
167
  data.event = event;
176
168
  meeting.sendCallAnalyzerMetrics(data);
177
169
  }
178
- }
179
-
180
- else {
181
- LoggerProxy.logger.info(`Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`);
170
+ } else {
171
+ LoggerProxy.logger.info(
172
+ `Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`
173
+ );
182
174
  }
183
175
  }
184
176
 
185
177
  /**
186
178
  * Docs for Call analyzer metrics
187
- * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
188
- * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
189
- */
179
+ * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
180
+ * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
181
+ */
190
182
 
183
+ // eslint-disable-next-line @typescript-eslint/no-shadow
191
184
  initPayload(eventType, identifiers, options) {
192
185
  const payload: any = {
193
186
  eventId: uuid.v4(),
@@ -196,27 +189,30 @@ class Metrics {
196
189
  name: 'endpoint',
197
190
  networkType: 'unknown',
198
191
  userAgent: this.userAgentToString(),
192
+ userType: options.userType,
193
+ loginType: options.loginType,
194
+ channel: options.channel,
199
195
  clientInfo: {
200
196
  clientType: options.clientType,
201
197
  clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
202
198
  localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
203
199
  osVersion: getOSVersion() || 'unknown',
204
200
  subClientType: options.subClientType,
205
- os: this.getOsName(),
201
+ os: getOSNameInternal(),
206
202
  browser: getBrowserName(),
207
- browserVersion: getBrowserVersion()
208
- }
203
+ browserVersion: getBrowserVersion(),
204
+ },
209
205
  },
210
206
  originTime: {
211
- triggered: new Date().toISOString()
207
+ triggered: new Date().toISOString(),
212
208
  },
213
209
  senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
214
210
  event: {
215
211
  name: eventType,
216
212
  canProceed: true,
217
213
  identifiers,
218
- eventData: {webClientDomain: window.location.hostname}
219
- }
214
+ eventData: {webClientDomain: window.location.hostname},
215
+ },
220
216
  };
221
217
 
222
218
  // TODO: more options should be checked and some of them should be mandatory in certain conditions
@@ -248,22 +244,16 @@ class Metrics {
248
244
  if (options.isRoapCallEnabled) {
249
245
  payload.event.isRoapCallEnabled = options.isRoapCallEnabled;
250
246
  }
247
+ ['breakoutMoveId', 'breakoutSessionId', 'breakoutGroupId'].forEach((item) => {
248
+ if (options[item]) {
249
+ payload.event.identifiers[item] = options[item];
250
+ }
251
+ });
251
252
  }
252
253
 
253
254
  return payload;
254
255
  }
255
256
 
256
- /**
257
- * returns metrics friendly OS versions
258
- * @param {String} osName Os name
259
- * @returns {String}
260
- * @private
261
- * @memberof Metrics
262
- */
263
- private getOsName() {
264
- return OSMap[getOSName()] ?? OS_NAME.OTHERS;
265
- }
266
-
267
257
  /**
268
258
  * get the payload specific for a media quality event through call analyzer
269
259
  * @param {String} eventType the event name
@@ -279,16 +269,19 @@ class Metrics {
279
269
  * @memberof Metrics
280
270
  */
281
271
  public initMediaPayload(
272
+ // eslint-disable-next-line @typescript-eslint/no-shadow
282
273
  eventType: string,
283
274
  identifiers: {
284
275
  correlationId: string;
285
276
  locusUrl: string;
286
277
  locusId: string;
287
278
  },
288
- options: {
289
- intervalData: object;
290
- clientType: string;
291
- } | any = {}
279
+ options:
280
+ | {
281
+ intervalData: object;
282
+ clientType: string;
283
+ }
284
+ | any = {}
292
285
  ) {
293
286
  const {audioSetupDelay, videoSetupDelay, joinTimes} = options;
294
287
 
@@ -305,15 +298,15 @@ class Metrics {
305
298
  clientType: options.clientType, // TODO: Only clientType: 'TEAMS_CLIENT' is whitelisted
306
299
  clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
307
300
  localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
308
- os: this.getOsName(),
301
+ os: getOSNameInternal(),
309
302
  osVersion: getOSVersion() || UNKNOWN,
310
303
  subClientType: options.subClientType,
311
304
  browser: getBrowserName(),
312
- browserVersion: getBrowserVersion()
313
- }
305
+ browserVersion: getBrowserVersion(),
306
+ },
314
307
  },
315
308
  originTime: {
316
- triggered: new Date().toISOString()
309
+ triggered: new Date().toISOString(),
317
310
  },
318
311
  senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
319
312
  event: {
@@ -323,16 +316,16 @@ class Metrics {
323
316
  intervals: [options.intervalData],
324
317
  joinTimes,
325
318
  eventData: {
326
- webClientDomain: window.location.hostname
319
+ webClientDomain: window.location.hostname,
327
320
  },
328
321
  sourceMetadata: {
329
322
  applicationSoftwareType: CLIENT_NAME,
330
323
  applicationSoftwareVersion: this.webex.version,
331
324
  mediaEngineSoftwareType: getBrowserName() || 'browser',
332
325
  mediaEngineSoftwareVersion: getOSVersion() || UNKNOWN,
333
- startTime: new Date().toISOString()
334
- }
335
- }
326
+ startTime: new Date().toISOString(),
327
+ },
328
+ },
336
329
  };
337
330
 
338
331
  return payload;
@@ -353,8 +346,7 @@ class Metrics {
353
346
 
354
347
  if (err && err.statusCode && err.statusCode >= 500) {
355
348
  errorCode = 1003;
356
- }
357
- else if (err && err.body && err.body.errorCode) {
349
+ } else if (err && err.body && err.body.errorCode) {
358
350
  // locus error codes: https://sqbu-github.cisco.com/WebExSquared/locus/blob/master/server/src/main/resources/locus-error-codes.properties
359
351
  switch (ERROR_CODE[err.body.errorCode]) {
360
352
  case MEETING_ERRORS.FREE_USER_MAX_PARTICIPANTS_EXCEEDED:
@@ -453,17 +445,13 @@ class Metrics {
453
445
  default:
454
446
  errorCode = 4008;
455
447
  }
456
- }
457
- else {
448
+ } else {
458
449
  errorCode = 4008;
459
450
  }
460
451
 
461
- return this.generateErrorPayload(
462
- errorCode, showToUser, error.name.LOCUS_RESPONSE, err
463
- );
452
+ return this.generateErrorPayload(errorCode, showToUser, error.name.LOCUS_RESPONSE, err);
464
453
  }
465
454
 
466
-
467
455
  generateErrorPayload(errorCode, shownToUser, name, err) {
468
456
  if (error.errors[errorCode]) {
469
457
  const errorPayload: any = {
@@ -472,11 +460,11 @@ class Metrics {
472
460
  errorDescription: error.errors[errorCode][0],
473
461
  errorCode,
474
462
  fatal: !includes(error.notFatalErrorList, errorCode),
475
- name: name || error.name.OTHER
463
+ name: name || error.name.OTHER,
476
464
  };
477
465
 
478
466
  if (err && err.body) {
479
- errorPayload.errorData = err.body;
467
+ errorPayload.errorData = {error: err.body};
480
468
  }
481
469
 
482
470
  if (err && err.statusCode) {
@@ -499,8 +487,14 @@ class Metrics {
499
487
  let browserInfo;
500
488
  const clientInfo = util.format('client=%s', `${this.webex.meetings?.metrics?.clientName}`);
501
489
 
502
- if (['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !== -1) {
503
- browserInfo = util.format('browser=%s', `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`);
490
+ if (
491
+ ['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !==
492
+ -1
493
+ ) {
494
+ browserInfo = util.format(
495
+ 'browser=%s',
496
+ `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`
497
+ );
504
498
  }
505
499
  const osInfo = util.format('os=%s', `${getOSName()}/${getOSVersion().split('.')[0]}`);
506
500
 
@@ -508,12 +502,18 @@ class Metrics {
508
502
  userAgentOption = `(${browserInfo}`;
509
503
  }
510
504
  if (osInfo) {
511
- userAgentOption = userAgentOption ? `${userAgentOption}; ${clientInfo}; ${osInfo}` : `${clientInfo}; (${osInfo}`;
505
+ userAgentOption = userAgentOption
506
+ ? `${userAgentOption}; ${clientInfo}; ${osInfo}`
507
+ : `${clientInfo}; (${osInfo}`;
512
508
  }
513
509
  if (userAgentOption) {
514
510
  userAgentOption += ')';
515
511
 
516
- return util.format('webex-js-sdk/%s %s', `${process.env.NODE_ENV}-${this.webex.version}`, userAgentOption);
512
+ return util.format(
513
+ 'webex-js-sdk/%s %s',
514
+ `${process.env.NODE_ENV}-${this.webex.version}`,
515
+ userAgentOption
516
+ );
517
517
  }
518
518
 
519
519
  return util.format('webex-js-sdk/%s', `${process.env.NODE_ENV}-${this.webex.version}`);
@@ -538,7 +538,7 @@ class Metrics {
538
538
  this.webex.internal.metrics.submitClientMetrics(metricName, {
539
539
  type: this.webex.config.metrics.type,
540
540
  fields: metricFields,
541
- tags: metricTags
541
+ tags: metricTags,
542
542
  });
543
543
  }
544
544
  }