@webex/plugin-meetings 2.59.3-next.1 → 2.59.4

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 (420) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.d.ts +9 -9
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.d.ts +48 -48
  10. package/dist/common/collection.js +43 -43
  11. package/dist/common/collection.js.map +1 -1
  12. package/dist/common/config.d.ts +2 -2
  13. package/dist/common/config.js.map +1 -1
  14. package/dist/common/errors/captcha-error.d.ts +15 -15
  15. package/dist/common/errors/captcha-error.js +7 -7
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.d.ts +16 -16
  18. package/dist/common/errors/intent-to-join.js +7 -7
  19. package/dist/common/errors/intent-to-join.js.map +1 -1
  20. package/dist/common/errors/join-meeting.d.ts +17 -17
  21. package/dist/common/errors/join-meeting.js +8 -8
  22. package/dist/common/errors/join-meeting.js.map +1 -1
  23. package/dist/common/errors/media.d.ts +15 -15
  24. package/dist/common/errors/media.js +7 -7
  25. package/dist/common/errors/media.js.map +1 -1
  26. package/dist/common/errors/parameter.d.ts +15 -15
  27. package/dist/common/errors/parameter.js +7 -7
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.d.ts +15 -15
  30. package/dist/common/errors/password-error.js +7 -7
  31. package/dist/common/errors/password-error.js.map +1 -1
  32. package/dist/common/errors/permission.d.ts +14 -14
  33. package/dist/common/errors/permission.js +6 -6
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
  36. package/dist/common/errors/reconnection-in-progress.js +6 -6
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  38. package/dist/common/errors/reconnection.d.ts +15 -15
  39. package/dist/common/errors/reconnection.js +7 -7
  40. package/dist/common/errors/reconnection.js.map +1 -1
  41. package/dist/common/errors/stats.d.ts +15 -15
  42. package/dist/common/errors/stats.js +7 -7
  43. package/dist/common/errors/stats.js.map +1 -1
  44. package/dist/common/errors/webex-errors.d.ts +81 -81
  45. package/dist/common/errors/webex-errors.js +42 -42
  46. package/dist/common/errors/webex-errors.js.map +1 -1
  47. package/dist/common/errors/webex-meetings-error.d.ts +20 -20
  48. package/dist/common/errors/webex-meetings-error.js +12 -12
  49. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  50. package/dist/common/events/events-scope.d.ts +17 -17
  51. package/dist/common/events/events-scope.js +10 -10
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.d.ts +12 -12
  54. package/dist/common/events/events.js +4 -4
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.d.ts +2 -2
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.d.ts +2 -2
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.d.ts +2 -2
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.d.ts +2 -2
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.d.ts +34 -34
  65. package/dist/common/logs/request.js +18 -18
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.d.ts +32 -32
  68. package/dist/common/queue.js +18 -18
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.d.ts +73 -73
  71. package/dist/config.js +2 -2
  72. package/dist/config.js.map +1 -1
  73. package/dist/constants.d.ts +926 -924
  74. package/dist/constants.js +11 -9
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.d.ts +4 -4
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.d.ts +5 -5
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.d.ts +120 -120
  81. package/dist/controls-options-manager/index.js +81 -81
  82. package/dist/controls-options-manager/index.js.map +1 -1
  83. package/dist/controls-options-manager/util.d.ts +7 -7
  84. package/dist/controls-options-manager/util.js.map +1 -1
  85. package/dist/index.d.ts +4 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/locus-info/controlsUtils.d.ts +2 -2
  88. package/dist/locus-info/controlsUtils.js +21 -21
  89. package/dist/locus-info/controlsUtils.js.map +1 -1
  90. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  91. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  92. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  93. package/dist/locus-info/fullState.d.ts +2 -2
  94. package/dist/locus-info/fullState.js.map +1 -1
  95. package/dist/locus-info/hostUtils.d.ts +2 -2
  96. package/dist/locus-info/hostUtils.js +19 -19
  97. package/dist/locus-info/hostUtils.js.map +1 -1
  98. package/dist/locus-info/index.d.ts +269 -269
  99. package/dist/locus-info/index.js +180 -180
  100. package/dist/locus-info/index.js.map +1 -1
  101. package/dist/locus-info/infoUtils.d.ts +2 -2
  102. package/dist/locus-info/infoUtils.js.map +1 -1
  103. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  104. package/dist/locus-info/mediaSharesUtils.js +50 -50
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.d.ts +212 -212
  107. package/dist/locus-info/parser.js +136 -136
  108. package/dist/locus-info/parser.js.map +1 -1
  109. package/dist/locus-info/selfUtils.d.ts +2 -2
  110. package/dist/locus-info/selfUtils.js +52 -52
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.d.ts +32 -32
  113. package/dist/media/index.js +145 -145
  114. package/dist/media/index.js.map +1 -1
  115. package/dist/media/properties.d.ts +108 -108
  116. package/dist/media/properties.js +49 -49
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.d.ts +2 -2
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/effectsState.d.ts +42 -42
  123. package/dist/meeting/effectsState.js +24 -24
  124. package/dist/meeting/effectsState.js.map +1 -1
  125. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  126. package/dist/meeting/in-meeting-actions.js +11 -11
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.d.ts +1621 -1621
  129. package/dist/meeting/index.js +1538 -1518
  130. package/dist/meeting/index.js.map +1 -1
  131. package/dist/meeting/muteState.d.ts +116 -116
  132. package/dist/meeting/muteState.js +85 -85
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.d.ts +255 -255
  135. package/dist/meeting/request.js +141 -141
  136. package/dist/meeting/request.js.map +1 -1
  137. package/dist/meeting/state.d.ts +9 -9
  138. package/dist/meeting/state.js +30 -30
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.d.ts +2 -2
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting-info/collection.d.ts +20 -20
  143. package/dist/meeting-info/collection.js +11 -11
  144. package/dist/meeting-info/collection.js.map +1 -1
  145. package/dist/meeting-info/index.d.ts +57 -57
  146. package/dist/meeting-info/index.js +50 -50
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  149. package/dist/meeting-info/meeting-info-v2.js +52 -52
  150. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  151. package/dist/meeting-info/request.d.ts +22 -22
  152. package/dist/meeting-info/request.js +14 -14
  153. package/dist/meeting-info/request.js.map +1 -1
  154. package/dist/meeting-info/util.d.ts +2 -2
  155. package/dist/meeting-info/util.js +9 -9
  156. package/dist/meeting-info/util.js.map +1 -1
  157. package/dist/meeting-info/utilv2.d.ts +2 -2
  158. package/dist/meeting-info/utilv2.js +20 -20
  159. package/dist/meeting-info/utilv2.js.map +1 -1
  160. package/dist/meetings/collection.d.ts +23 -23
  161. package/dist/meetings/collection.js +14 -14
  162. package/dist/meetings/collection.js.map +1 -1
  163. package/dist/meetings/index.d.ts +296 -296
  164. package/dist/meetings/index.js +259 -259
  165. package/dist/meetings/index.js.map +1 -1
  166. package/dist/meetings/request.d.ts +27 -27
  167. package/dist/meetings/request.js +15 -15
  168. package/dist/meetings/request.js.map +1 -1
  169. package/dist/meetings/util.d.ts +18 -18
  170. package/dist/meetings/util.js +29 -29
  171. package/dist/meetings/util.js.map +1 -1
  172. package/dist/member/index.d.ts +147 -147
  173. package/dist/member/index.js +214 -214
  174. package/dist/member/index.js.map +1 -1
  175. package/dist/member/member.types.d.ts +11 -11
  176. package/dist/member/member.types.js.map +1 -1
  177. package/dist/member/util.d.ts +2 -2
  178. package/dist/member/util.js +60 -60
  179. package/dist/member/util.js.map +1 -1
  180. package/dist/members/collection.d.ts +24 -24
  181. package/dist/members/collection.js +11 -11
  182. package/dist/members/collection.js.map +1 -1
  183. package/dist/members/index.d.ts +298 -298
  184. package/dist/members/index.js +275 -275
  185. package/dist/members/index.js.map +1 -1
  186. package/dist/members/request.d.ts +50 -50
  187. package/dist/members/request.js +27 -27
  188. package/dist/members/request.js.map +1 -1
  189. package/dist/members/util.d.ts +2 -2
  190. package/dist/members/util.js +21 -21
  191. package/dist/members/util.js.map +1 -1
  192. package/dist/metrics/config.d.ts +169 -169
  193. package/dist/metrics/config.js.map +1 -1
  194. package/dist/metrics/constants.d.ts +59 -57
  195. package/dist/metrics/constants.js +2 -0
  196. package/dist/metrics/constants.js.map +1 -1
  197. package/dist/metrics/index.d.ts +152 -152
  198. package/dist/metrics/index.js +90 -90
  199. package/dist/metrics/index.js.map +1 -1
  200. package/dist/networkQualityMonitor/index.d.ts +70 -70
  201. package/dist/networkQualityMonitor/index.js +65 -65
  202. package/dist/networkQualityMonitor/index.js.map +1 -1
  203. package/dist/peer-connection-manager/index.d.ts +6 -6
  204. package/dist/peer-connection-manager/index.js +87 -87
  205. package/dist/peer-connection-manager/index.js.map +1 -1
  206. package/dist/peer-connection-manager/util.d.ts +6 -6
  207. package/dist/peer-connection-manager/util.js +9 -9
  208. package/dist/peer-connection-manager/util.js.map +1 -1
  209. package/dist/personal-meeting-room/index.d.ts +47 -47
  210. package/dist/personal-meeting-room/index.js +67 -67
  211. package/dist/personal-meeting-room/index.js.map +1 -1
  212. package/dist/personal-meeting-room/request.d.ts +14 -14
  213. package/dist/personal-meeting-room/request.js +7 -7
  214. package/dist/personal-meeting-room/request.js.map +1 -1
  215. package/dist/personal-meeting-room/util.d.ts +2 -2
  216. package/dist/personal-meeting-room/util.js.map +1 -1
  217. package/dist/reachability/index.d.ts +139 -139
  218. package/dist/reachability/index.js +110 -110
  219. package/dist/reachability/index.js.map +1 -1
  220. package/dist/reachability/request.d.ts +35 -35
  221. package/dist/reachability/request.js +15 -15
  222. package/dist/reachability/request.js.map +1 -1
  223. package/dist/reactions/reactions.d.ts +4 -4
  224. package/dist/reactions/reactions.js.map +1 -1
  225. package/dist/reactions/reactions.type.d.ts +32 -32
  226. package/dist/reactions/reactions.type.js.map +1 -1
  227. package/dist/reconnection-manager/index.d.ts +112 -112
  228. package/dist/reconnection-manager/index.js +112 -112
  229. package/dist/reconnection-manager/index.js.map +1 -1
  230. package/dist/recording-controller/enums.d.ts +7 -7
  231. package/dist/recording-controller/enums.js.map +1 -1
  232. package/dist/recording-controller/index.d.ts +193 -193
  233. package/dist/recording-controller/index.js +127 -127
  234. package/dist/recording-controller/index.js.map +1 -1
  235. package/dist/recording-controller/util.d.ts +13 -13
  236. package/dist/recording-controller/util.js.map +1 -1
  237. package/dist/roap/collection.d.ts +10 -10
  238. package/dist/roap/collection.js.map +1 -1
  239. package/dist/roap/handler.d.ts +47 -47
  240. package/dist/roap/handler.js +27 -27
  241. package/dist/roap/handler.js.map +1 -1
  242. package/dist/roap/index.d.ts +116 -116
  243. package/dist/roap/index.js +111 -111
  244. package/dist/roap/index.js.map +1 -1
  245. package/dist/roap/request.d.ts +35 -35
  246. package/dist/roap/request.js +17 -17
  247. package/dist/roap/request.js.map +1 -1
  248. package/dist/roap/state.d.ts +9 -9
  249. package/dist/roap/state.js +14 -14
  250. package/dist/roap/state.js.map +1 -1
  251. package/dist/roap/turnDiscovery.d.ts +67 -67
  252. package/dist/roap/turnDiscovery.js +46 -46
  253. package/dist/roap/turnDiscovery.js.map +1 -1
  254. package/dist/roap/util.d.ts +2 -2
  255. package/dist/roap/util.js.map +1 -1
  256. package/dist/statsAnalyzer/global.d.ts +118 -126
  257. package/dist/statsAnalyzer/global.js +4 -12
  258. package/dist/statsAnalyzer/global.js.map +1 -1
  259. package/dist/statsAnalyzer/index.d.ts +193 -190
  260. package/dist/statsAnalyzer/index.js +182 -140
  261. package/dist/statsAnalyzer/index.js.map +1 -1
  262. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  263. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  264. package/dist/transcription/index.d.ts +64 -64
  265. package/dist/transcription/index.js +42 -42
  266. package/dist/transcription/index.js.map +1 -1
  267. package/internal-README.md +172 -172
  268. package/jest.config.js +3 -3
  269. package/package.json +21 -22
  270. package/process +1 -1
  271. package/src/common/browser-detection.ts +39 -39
  272. package/src/common/collection.ts +94 -94
  273. package/src/common/config.ts +9 -9
  274. package/src/common/errors/captcha-error.ts +25 -25
  275. package/src/common/errors/intent-to-join.ts +27 -27
  276. package/src/common/errors/join-meeting.ts +32 -32
  277. package/src/common/errors/media.ts +25 -25
  278. package/src/common/errors/parameter.ts +33 -33
  279. package/src/common/errors/password-error.ts +25 -25
  280. package/src/common/errors/permission.ts +24 -24
  281. package/src/common/errors/reconnection-in-progress.ts +8 -8
  282. package/src/common/errors/reconnection.ts +25 -25
  283. package/src/common/errors/stats.ts +25 -25
  284. package/src/common/errors/webex-errors.ts +140 -140
  285. package/src/common/errors/webex-meetings-error.ts +35 -35
  286. package/src/common/events/events-scope.ts +30 -30
  287. package/src/common/events/events.ts +25 -25
  288. package/src/common/events/trigger-proxy.ts +25 -25
  289. package/src/common/events/util.ts +39 -39
  290. package/src/common/logs/logger-config.ts +8 -8
  291. package/src/common/logs/logger-proxy.ts +44 -44
  292. package/src/common/logs/request.ts +65 -65
  293. package/src/common/queue.ts +50 -50
  294. package/src/config.ts +96 -96
  295. package/src/constants.ts +1123 -1121
  296. package/src/controls-options-manager/constants.ts +5 -5
  297. package/src/controls-options-manager/enums.ts +6 -6
  298. package/src/controls-options-manager/index.ts +183 -183
  299. package/src/controls-options-manager/util.ts +20 -20
  300. package/src/index.js +15 -15
  301. package/src/locus-info/controlsUtils.ts +112 -112
  302. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  303. package/src/locus-info/fullState.ts +69 -69
  304. package/src/locus-info/hostUtils.ts +60 -60
  305. package/src/locus-info/index.ts +1303 -1303
  306. package/src/locus-info/infoUtils.ts +101 -101
  307. package/src/locus-info/mediaSharesUtils.ts +173 -173
  308. package/src/locus-info/parser.ts +680 -680
  309. package/src/locus-info/selfUtils.ts +428 -428
  310. package/src/media/index.ts +675 -675
  311. package/src/media/properties.ts +313 -313
  312. package/src/media/util.ts +37 -37
  313. package/src/mediaQualityMetrics/config.ts +382 -382
  314. package/src/meeting/effectsState.ts +209 -209
  315. package/src/meeting/in-meeting-actions.ts +153 -153
  316. package/src/meeting/index.ts +6572 -6537
  317. package/src/meeting/muteState.ts +365 -365
  318. package/src/meeting/request.ts +810 -810
  319. package/src/meeting/state.ts +194 -194
  320. package/src/meeting/util.ts +530 -530
  321. package/src/meeting-info/collection.ts +41 -41
  322. package/src/meeting-info/index.ts +137 -137
  323. package/src/meeting-info/meeting-info-v2.ts +273 -273
  324. package/src/meeting-info/request.ts +46 -46
  325. package/src/meeting-info/util.ts +314 -314
  326. package/src/meeting-info/utilv2.ts +324 -324
  327. package/src/meetings/collection.ts +43 -43
  328. package/src/meetings/index.ts +1128 -1128
  329. package/src/meetings/request.ts +81 -81
  330. package/src/meetings/util.ts +181 -181
  331. package/src/member/index.ts +446 -446
  332. package/src/member/member.types.ts +13 -13
  333. package/src/member/util.ts +286 -286
  334. package/src/members/collection.ts +40 -40
  335. package/src/members/index.ts +900 -900
  336. package/src/members/request.ts +175 -175
  337. package/src/members/util.ts +260 -260
  338. package/src/metrics/config.ts +485 -485
  339. package/src/metrics/constants.ts +63 -61
  340. package/src/metrics/index.ts +543 -543
  341. package/src/networkQualityMonitor/index.ts +211 -211
  342. package/src/peer-connection-manager/index.ts +847 -847
  343. package/src/peer-connection-manager/util.ts +119 -119
  344. package/src/personal-meeting-room/index.ts +157 -157
  345. package/src/personal-meeting-room/request.ts +48 -48
  346. package/src/personal-meeting-room/util.ts +49 -49
  347. package/src/reachability/index.ts +478 -478
  348. package/src/reachability/request.ts +81 -81
  349. package/src/reactions/reactions.ts +104 -104
  350. package/src/reactions/reactions.type.ts +36 -36
  351. package/src/reconnection-manager/index.ts +622 -622
  352. package/src/recording-controller/enums.ts +8 -8
  353. package/src/recording-controller/index.ts +315 -315
  354. package/src/recording-controller/util.ts +58 -58
  355. package/src/roap/collection.ts +62 -62
  356. package/src/roap/handler.ts +294 -294
  357. package/src/roap/index.ts +413 -413
  358. package/src/roap/request.ts +229 -229
  359. package/src/roap/state.ts +156 -156
  360. package/src/roap/turnDiscovery.ts +283 -283
  361. package/src/roap/util.ts +100 -100
  362. package/src/statsAnalyzer/global.ts +120 -128
  363. package/src/statsAnalyzer/index.ts +1329 -1266
  364. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  365. package/src/transcription/index.ts +154 -154
  366. package/test/integration/spec/journey.js +941 -941
  367. package/test/integration/spec/space-meeting.js +457 -457
  368. package/test/integration/spec/transcription.js +55 -55
  369. package/test/unit/spec/common/browser-detection.js +119 -119
  370. package/test/unit/spec/common/queue.js +69 -69
  371. package/test/unit/spec/controls-options-manager/index.js +123 -123
  372. package/test/unit/spec/controls-options-manager/util.js +65 -65
  373. package/test/unit/spec/fixture/locus.js +406 -406
  374. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  375. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  376. package/test/unit/spec/locus-info/index.js +1272 -1272
  377. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  378. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  379. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  380. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  381. package/test/unit/spec/locus-info/parser.js +298 -298
  382. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  383. package/test/unit/spec/media/properties.ts +305 -305
  384. package/test/unit/spec/meeting/effectsState.js +281 -281
  385. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  386. package/test/unit/spec/meeting/index.js +5298 -5227
  387. package/test/unit/spec/meeting/muteState.js +430 -430
  388. package/test/unit/spec/meeting/request.js +317 -317
  389. package/test/unit/spec/meeting/utils.js +319 -319
  390. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  391. package/test/unit/spec/meeting-info/request.js +64 -64
  392. package/test/unit/spec/meeting-info/util.js +37 -37
  393. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  394. package/test/unit/spec/meetings/collection.js +52 -52
  395. package/test/unit/spec/meetings/index.js +1375 -1375
  396. package/test/unit/spec/meetings/utils.js +66 -66
  397. package/test/unit/spec/member/index.js +47 -47
  398. package/test/unit/spec/member/util.js +80 -80
  399. package/test/unit/spec/members/index.js +364 -364
  400. package/test/unit/spec/members/request.js +200 -200
  401. package/test/unit/spec/members/utils.js +42 -42
  402. package/test/unit/spec/metrics/index.js +111 -111
  403. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  404. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  405. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  406. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  407. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  408. package/test/unit/spec/reachability/index.ts +50 -50
  409. package/test/unit/spec/reconnection-manager/index.js +206 -206
  410. package/test/unit/spec/recording-controller/index.js +230 -230
  411. package/test/unit/spec/recording-controller/util.js +101 -101
  412. package/test/unit/spec/roap/index.ts +128 -128
  413. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  414. package/test/unit/spec/roap/util.js +30 -30
  415. package/test/unit/spec/stats-analyzer/index.js +438 -287
  416. package/test/utils/cmr.js +104 -104
  417. package/test/utils/testUtils.js +287 -287
  418. package/test/utils/webex-config.js +77 -77
  419. package/test/utils/webex-test-users.js +82 -82
  420. package/tsconfig.json +5 -5
@@ -1,112 +1,112 @@
1
- import {isEqual} from 'lodash';
2
-
3
- const ControlsUtils: any = {};
4
-
5
- /**
6
- * Controls
7
- * @typedef {Object} LocusControls
8
- * @property {Object} record
9
- * @property {Boolean} record.recording
10
- * @property {Object} record.meta
11
- * @property {String} record.meta.modifiedBy
12
- */
13
-
14
- /**
15
- * parse the relevant host values that we care about: id
16
- * @param {LocusControls} controls
17
- * @returns {Object} parsedObject - parsed host or null if host was undefined
18
- * @returns {String} parsedObject.recordingId
19
- */
20
- ControlsUtils.parse = (controls: any) => {
21
- const parsedControls = {...controls};
22
-
23
- if (controls && controls.record) {
24
- parsedControls.record = {
25
- modifiedBy: ControlsUtils.getId(controls),
26
- paused: controls.record.paused ? controls.record.paused : false,
27
- recording: controls.record.recording,
28
- lastModified: controls.record.meta.lastModified,
29
- };
30
- }
31
-
32
- if (controls && controls.meetingContainer) {
33
- parsedControls.meetingContainer = {
34
- meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,
35
- };
36
- }
37
-
38
- if (controls && controls.transcribe) {
39
- parsedControls.transcribe = {
40
- transcribing: controls.transcribe.transcribing,
41
- caption: controls.transcribe.caption,
42
- };
43
- }
44
-
45
- if (controls && controls.entryExitTone) {
46
- parsedControls.entryExitTone = controls.entryExitTone.enabled
47
- ? controls.entryExitTone.mode
48
- : null;
49
- }
50
-
51
- return parsedControls;
52
- };
53
-
54
- /**
55
- * parses and returns previous state vs current state and triggers the changes.
56
- * @param {LocusControls} oldControls previous state
57
- * @param {LocusControls} newControls current state
58
- * @returns {Object} combination of state plus the changes
59
- */
60
- ControlsUtils.getControls = (oldControls: any, newControls: any) => {
61
- const previous = ControlsUtils.parse(oldControls);
62
- const current = ControlsUtils.parse(newControls);
63
-
64
- return {
65
- previous,
66
- current,
67
- updates: {
68
- hasRecordingPausedChanged:
69
- current?.record &&
70
- !isEqual(previous?.record?.paused, current.record.paused) &&
71
- (previous?.record?.recording || current?.record?.recording), // see comments directly below
72
-
73
- hasRecordingChanged:
74
- current?.record &&
75
- !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
76
- (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
77
-
78
- hasMeetingContainerChanged:
79
- current?.meetingContainer &&
80
- !isEqual(
81
- previous?.meetingContainer?.meetingContainerUrl,
82
- current?.meetingContainer?.meetingContainerUrl
83
- ),
84
-
85
- hasTranscribeChanged:
86
- current?.transcribe &&
87
- !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
88
- (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
89
-
90
- hasEntryExitToneChanged: !!(
91
- newControls.entryExitTone &&
92
- !isEqual(previous?.entryExitTone, current?.entryExitTone) &&
93
- (previous?.entryExitTone || current?.entryExitTone)
94
- ),
95
- },
96
- };
97
- };
98
-
99
- /**
100
- * Extract the id from the record controls object
101
- * @param {LocusControls} controls
102
- * @returns {String|null}
103
- */
104
- ControlsUtils.getId = (controls: any) => {
105
- if (controls.record.meta) {
106
- return controls.record.meta.modifiedBy;
107
- }
108
-
109
- return null;
110
- };
111
-
112
- export default ControlsUtils;
1
+ import {isEqual} from 'lodash';
2
+
3
+ const ControlsUtils: any = {};
4
+
5
+ /**
6
+ * Controls
7
+ * @typedef {Object} LocusControls
8
+ * @property {Object} record
9
+ * @property {Boolean} record.recording
10
+ * @property {Object} record.meta
11
+ * @property {String} record.meta.modifiedBy
12
+ */
13
+
14
+ /**
15
+ * parse the relevant host values that we care about: id
16
+ * @param {LocusControls} controls
17
+ * @returns {Object} parsedObject - parsed host or null if host was undefined
18
+ * @returns {String} parsedObject.recordingId
19
+ */
20
+ ControlsUtils.parse = (controls: any) => {
21
+ const parsedControls = {...controls};
22
+
23
+ if (controls && controls.record) {
24
+ parsedControls.record = {
25
+ modifiedBy: ControlsUtils.getId(controls),
26
+ paused: controls.record.paused ? controls.record.paused : false,
27
+ recording: controls.record.recording,
28
+ lastModified: controls.record.meta.lastModified,
29
+ };
30
+ }
31
+
32
+ if (controls && controls.meetingContainer) {
33
+ parsedControls.meetingContainer = {
34
+ meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,
35
+ };
36
+ }
37
+
38
+ if (controls && controls.transcribe) {
39
+ parsedControls.transcribe = {
40
+ transcribing: controls.transcribe.transcribing,
41
+ caption: controls.transcribe.caption,
42
+ };
43
+ }
44
+
45
+ if (controls && controls.entryExitTone) {
46
+ parsedControls.entryExitTone = controls.entryExitTone.enabled
47
+ ? controls.entryExitTone.mode
48
+ : null;
49
+ }
50
+
51
+ return parsedControls;
52
+ };
53
+
54
+ /**
55
+ * parses and returns previous state vs current state and triggers the changes.
56
+ * @param {LocusControls} oldControls previous state
57
+ * @param {LocusControls} newControls current state
58
+ * @returns {Object} combination of state plus the changes
59
+ */
60
+ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
61
+ const previous = ControlsUtils.parse(oldControls);
62
+ const current = ControlsUtils.parse(newControls);
63
+
64
+ return {
65
+ previous,
66
+ current,
67
+ updates: {
68
+ hasRecordingPausedChanged:
69
+ current?.record &&
70
+ !isEqual(previous?.record?.paused, current.record.paused) &&
71
+ (previous?.record?.recording || current?.record?.recording), // see comments directly below
72
+
73
+ hasRecordingChanged:
74
+ current?.record &&
75
+ !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
76
+ (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
77
+
78
+ hasMeetingContainerChanged:
79
+ current?.meetingContainer &&
80
+ !isEqual(
81
+ previous?.meetingContainer?.meetingContainerUrl,
82
+ current?.meetingContainer?.meetingContainerUrl
83
+ ),
84
+
85
+ hasTranscribeChanged:
86
+ current?.transcribe &&
87
+ !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
88
+ (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
89
+
90
+ hasEntryExitToneChanged: !!(
91
+ newControls.entryExitTone &&
92
+ !isEqual(previous?.entryExitTone, current?.entryExitTone) &&
93
+ (previous?.entryExitTone || current?.entryExitTone)
94
+ ),
95
+ },
96
+ };
97
+ };
98
+
99
+ /**
100
+ * Extract the id from the record controls object
101
+ * @param {LocusControls} controls
102
+ * @returns {String|null}
103
+ */
104
+ ControlsUtils.getId = (controls: any) => {
105
+ if (controls.record.meta) {
106
+ return controls.record.meta.modifiedBy;
107
+ }
108
+
109
+ return null;
110
+ };
111
+
112
+ export default ControlsUtils;
@@ -1,57 +1,57 @@
1
- import {EMBEDDED_APP_TYPES} from '../constants';
2
-
3
- const EmbeddedAppsUtils: any = {};
4
- const SLIDO_REGEX = /.sli.do\//;
5
-
6
- /**
7
- * Parse the relevant values that we care about
8
- * @param {Object} embeddedApp - raw embedded app object
9
- * @returns {Object} parsedObject - parsed embedded app object
10
- */
11
- EmbeddedAppsUtils.parseApp = (embeddedApp: object) => {
12
- const parsedApp: any = {...embeddedApp};
13
-
14
- parsedApp.type = EMBEDDED_APP_TYPES.OTHER;
15
- const url = parsedApp.instanceInfo?.appInstanceUrl;
16
-
17
- if (url && url.match(SLIDO_REGEX)) {
18
- parsedApp.type = EMBEDDED_APP_TYPES.SLIDO;
19
- }
20
-
21
- return parsedApp;
22
- };
23
-
24
- /**
25
- * Determines if two embedded apps arrays are similar.
26
- * NOTE: This is a simple test for performance reasons.
27
- * @param {any[]} apps1 - an array of apps
28
- * @param {any[]} apps2 - an array of apps
29
- * @returns {boolean} true if the arrays are different
30
- */
31
- EmbeddedAppsUtils.areSimilar = (apps1: any[], apps2: any[]) => {
32
- if (!apps1 || !apps2) {
33
- return apps1 === apps2;
34
- }
35
-
36
- if (apps1?.length !== apps2?.length) {
37
- return false;
38
- }
39
-
40
- for (let i = 0; i < apps1.length; i += 1) {
41
- if (apps1[i].state !== apps2[i].state) {
42
- return false;
43
- }
44
- }
45
-
46
- return true;
47
- };
48
-
49
- /**
50
- * Parse the array of embedded apps
51
- * @param {array} embeddedApps
52
- * @returns {array} result - new array of parsed embedded app objects
53
- */
54
- EmbeddedAppsUtils.parse = (embeddedApps: Array<any>) =>
55
- embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);
56
-
57
- export default EmbeddedAppsUtils;
1
+ import {EMBEDDED_APP_TYPES} from '../constants';
2
+
3
+ const EmbeddedAppsUtils: any = {};
4
+ const SLIDO_REGEX = /.sli.do\//;
5
+
6
+ /**
7
+ * Parse the relevant values that we care about
8
+ * @param {Object} embeddedApp - raw embedded app object
9
+ * @returns {Object} parsedObject - parsed embedded app object
10
+ */
11
+ EmbeddedAppsUtils.parseApp = (embeddedApp: object) => {
12
+ const parsedApp: any = {...embeddedApp};
13
+
14
+ parsedApp.type = EMBEDDED_APP_TYPES.OTHER;
15
+ const url = parsedApp.instanceInfo?.appInstanceUrl;
16
+
17
+ if (url && url.match(SLIDO_REGEX)) {
18
+ parsedApp.type = EMBEDDED_APP_TYPES.SLIDO;
19
+ }
20
+
21
+ return parsedApp;
22
+ };
23
+
24
+ /**
25
+ * Determines if two embedded apps arrays are similar.
26
+ * NOTE: This is a simple test for performance reasons.
27
+ * @param {any[]} apps1 - an array of apps
28
+ * @param {any[]} apps2 - an array of apps
29
+ * @returns {boolean} true if the arrays are different
30
+ */
31
+ EmbeddedAppsUtils.areSimilar = (apps1: any[], apps2: any[]) => {
32
+ if (!apps1 || !apps2) {
33
+ return apps1 === apps2;
34
+ }
35
+
36
+ if (apps1?.length !== apps2?.length) {
37
+ return false;
38
+ }
39
+
40
+ for (let i = 0; i < apps1.length; i += 1) {
41
+ if (apps1[i].state !== apps2[i].state) {
42
+ return false;
43
+ }
44
+ }
45
+
46
+ return true;
47
+ };
48
+
49
+ /**
50
+ * Parse the array of embedded apps
51
+ * @param {array} embeddedApps
52
+ * @returns {array} result - new array of parsed embedded app objects
53
+ */
54
+ EmbeddedAppsUtils.parse = (embeddedApps: Array<any>) =>
55
+ embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);
56
+
57
+ export default EmbeddedAppsUtils;
@@ -1,69 +1,69 @@
1
- import {FULL_STATE} from '../constants';
2
-
3
- const FullState: any = {};
4
-
5
- FullState.parse = (fullState) => ({
6
- type: fullState.type || FULL_STATE.UNKNOWN,
7
- meetingState: fullState.state,
8
- locked: fullState.locked,
9
- });
10
-
11
- FullState.getFullState = (oldFullState, newFullState) => {
12
- const previous = oldFullState && FullState.parse(oldFullState);
13
- const current = newFullState && FullState.parse(newFullState);
14
-
15
- return {
16
- previous,
17
- current,
18
- updates: {
19
- isMeetingEnded: FullState.isMeetingEnded(previous, current),
20
- isMeetingTerminating: FullState.isMeetingTerminating(previous, current),
21
- meetingTypeChangedTo: FullState.isTypeChanged(previous, current),
22
- meetingStateChangedTo: FullState.meetingStateChange(previous, current),
23
- },
24
- };
25
- };
26
-
27
- FullState.isMeetingEnded = (previous, current) => {
28
- if (
29
- current.state === FULL_STATE.INACTIVE &&
30
- previous &&
31
- (previous.state === FULL_STATE.ACTIVE ||
32
- previous.state === FULL_STATE.INITIALIZING ||
33
- previous.state === FULL_STATE.TERMINATING)
34
- ) {
35
- return true;
36
- }
37
-
38
- return false;
39
- };
40
-
41
- FullState.isMeetingTerminating = (previous, current) => {
42
- if (
43
- current.state === FULL_STATE.TERMINATING &&
44
- previous &&
45
- (previous.state === FULL_STATE.ACTIVE || previous.state === FULL_STATE.INITIALIZING)
46
- ) {
47
- return true;
48
- }
49
-
50
- return false;
51
- };
52
-
53
- FullState.isTypeChanged = (previous, current) => {
54
- if (!previous || current.type !== previous.type) {
55
- return current && current.type;
56
- }
57
-
58
- return null;
59
- };
60
-
61
- FullState.meetingStateChange = (previous, current) => {
62
- if (!previous || current.meetingState !== previous.meetingState) {
63
- return current && current.meetingState;
64
- }
65
-
66
- return null;
67
- };
68
-
69
- export default FullState;
1
+ import {FULL_STATE} from '../constants';
2
+
3
+ const FullState: any = {};
4
+
5
+ FullState.parse = (fullState) => ({
6
+ type: fullState.type || FULL_STATE.UNKNOWN,
7
+ meetingState: fullState.state,
8
+ locked: fullState.locked,
9
+ });
10
+
11
+ FullState.getFullState = (oldFullState, newFullState) => {
12
+ const previous = oldFullState && FullState.parse(oldFullState);
13
+ const current = newFullState && FullState.parse(newFullState);
14
+
15
+ return {
16
+ previous,
17
+ current,
18
+ updates: {
19
+ isMeetingEnded: FullState.isMeetingEnded(previous, current),
20
+ isMeetingTerminating: FullState.isMeetingTerminating(previous, current),
21
+ meetingTypeChangedTo: FullState.isTypeChanged(previous, current),
22
+ meetingStateChangedTo: FullState.meetingStateChange(previous, current),
23
+ },
24
+ };
25
+ };
26
+
27
+ FullState.isMeetingEnded = (previous, current) => {
28
+ if (
29
+ current.state === FULL_STATE.INACTIVE &&
30
+ previous &&
31
+ (previous.state === FULL_STATE.ACTIVE ||
32
+ previous.state === FULL_STATE.INITIALIZING ||
33
+ previous.state === FULL_STATE.TERMINATING)
34
+ ) {
35
+ return true;
36
+ }
37
+
38
+ return false;
39
+ };
40
+
41
+ FullState.isMeetingTerminating = (previous, current) => {
42
+ if (
43
+ current.state === FULL_STATE.TERMINATING &&
44
+ previous &&
45
+ (previous.state === FULL_STATE.ACTIVE || previous.state === FULL_STATE.INITIALIZING)
46
+ ) {
47
+ return true;
48
+ }
49
+
50
+ return false;
51
+ };
52
+
53
+ FullState.isTypeChanged = (previous, current) => {
54
+ if (!previous || current.type !== previous.type) {
55
+ return current && current.type;
56
+ }
57
+
58
+ return null;
59
+ };
60
+
61
+ FullState.meetingStateChange = (previous, current) => {
62
+ if (!previous || current.meetingState !== previous.meetingState) {
63
+ return current && current.meetingState;
64
+ }
65
+
66
+ return null;
67
+ };
68
+
69
+ export default FullState;
@@ -1,60 +1,60 @@
1
- const HostUtils: any = {};
2
-
3
- /**
4
- * parse the relevant host values that we care about: id
5
- * @param {Object} host
6
- * @returns {Object} parsed host or null if host was undefined
7
- */
8
- HostUtils.parse = (host: object) => {
9
- if (host) {
10
- return {
11
- hostId: HostUtils.getId(host),
12
- };
13
- }
14
-
15
- return null;
16
- };
17
-
18
- /**
19
- * get the previous and current host values parsed, as well as the boolean updates
20
- * @param {Object} oldHost
21
- * @param {Object} newHost
22
- * @returns {Object}
23
- * previous: {Object} old host, current: {Object} new host, updates: {isNewHost: {boolean}} boolean update values
24
- */
25
- HostUtils.getHosts = (oldHost: object, newHost: object) => {
26
- const previous = oldHost && HostUtils.parse(oldHost);
27
- const current = newHost && HostUtils.parse(newHost);
28
-
29
- return {
30
- previous,
31
- current,
32
- updates: {
33
- isNewHost:
34
- previous && current ? HostUtils.isDifferentHosts(previous.hostId, current.hostId) : true,
35
- },
36
- };
37
- };
38
-
39
- /**
40
- * determine by id if 2 hosts are different
41
- * @param {String} previousId
42
- * @param {String} currentId
43
- * @returns {Boolean}
44
- */
45
- HostUtils.isDifferentHosts = (previousId: string, currentId: string) => previousId !== currentId;
46
-
47
- /**
48
- * Extract the id from the host object
49
- * @param {Object} host
50
- * @returns {String}
51
- */
52
- HostUtils.getId = (host: any) => {
53
- if (!host) {
54
- return null;
55
- }
56
-
57
- return host.id;
58
- };
59
-
60
- export default HostUtils;
1
+ const HostUtils: any = {};
2
+
3
+ /**
4
+ * parse the relevant host values that we care about: id
5
+ * @param {Object} host
6
+ * @returns {Object} parsed host or null if host was undefined
7
+ */
8
+ HostUtils.parse = (host: object) => {
9
+ if (host) {
10
+ return {
11
+ hostId: HostUtils.getId(host),
12
+ };
13
+ }
14
+
15
+ return null;
16
+ };
17
+
18
+ /**
19
+ * get the previous and current host values parsed, as well as the boolean updates
20
+ * @param {Object} oldHost
21
+ * @param {Object} newHost
22
+ * @returns {Object}
23
+ * previous: {Object} old host, current: {Object} new host, updates: {isNewHost: {boolean}} boolean update values
24
+ */
25
+ HostUtils.getHosts = (oldHost: object, newHost: object) => {
26
+ const previous = oldHost && HostUtils.parse(oldHost);
27
+ const current = newHost && HostUtils.parse(newHost);
28
+
29
+ return {
30
+ previous,
31
+ current,
32
+ updates: {
33
+ isNewHost:
34
+ previous && current ? HostUtils.isDifferentHosts(previous.hostId, current.hostId) : true,
35
+ },
36
+ };
37
+ };
38
+
39
+ /**
40
+ * determine by id if 2 hosts are different
41
+ * @param {String} previousId
42
+ * @param {String} currentId
43
+ * @returns {Boolean}
44
+ */
45
+ HostUtils.isDifferentHosts = (previousId: string, currentId: string) => previousId !== currentId;
46
+
47
+ /**
48
+ * Extract the id from the host object
49
+ * @param {Object} host
50
+ * @returns {String}
51
+ */
52
+ HostUtils.getId = (host: any) => {
53
+ if (!host) {
54
+ return null;
55
+ }
56
+
57
+ return host.id;
58
+ };
59
+
60
+ export default HostUtils;