@webex/plugin-meetings 2.60.0-next.9 → 2.60.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 (516) hide show
  1. package/README.md +8 -46
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -5
  54. package/dist/config.js +11 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +97 -217
  57. package/dist/constants.js +441 -416
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +4 -116
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +494 -591
  111. package/dist/meeting/index.js +2969 -4707
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -297
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -102
  122. package/dist/meeting/util.js +435 -605
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +21 -103
  142. package/dist/meetings/index.js +124 -486
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +7 -62
  193. package/dist/reachability/index.js +72 -265
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +231 -282
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +235 -101
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -28
  240. package/dist/statsAnalyzer/index.js +509 -374
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +83 -116
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -35
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -5
  253. package/src/constants.ts +97 -244
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -449
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2482 -3929
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -207
  273. package/src/meeting/util.ts +423 -590
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +126 -486
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +45 -238
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -98
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +642 -413
  310. package/src/statsAnalyzer/mqaUtil.ts +114 -111
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1389
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +3136 -8547
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +42 -512
  330. package/test/unit/spec/meeting/utils.js +24 -741
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +211 -1278
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -598
  347. package/test/unit/spec/reconnection-manager/index.js +24 -162
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +76 -200
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +174 -188
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interpretation/collection.d.ts +0 -5
  395. package/dist/interpretation/collection.js +0 -22
  396. package/dist/interpretation/collection.js.map +0 -1
  397. package/dist/interpretation/index.d.ts +0 -5
  398. package/dist/interpretation/index.js +0 -365
  399. package/dist/interpretation/index.js.map +0 -1
  400. package/dist/interpretation/siLanguage.d.ts +0 -5
  401. package/dist/interpretation/siLanguage.js +0 -24
  402. package/dist/interpretation/siLanguage.js.map +0 -1
  403. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  404. package/dist/meeting/locusMediaRequest.js +0 -291
  405. package/dist/meeting/locusMediaRequest.js.map +0 -1
  406. package/dist/meeting/request.type.d.ts +0 -11
  407. package/dist/meeting/request.type.js +0 -7
  408. package/dist/meeting/request.type.js.map +0 -1
  409. package/dist/meetings/meetings.types.d.ts +0 -4
  410. package/dist/meetings/meetings.types.js +0 -7
  411. package/dist/meetings/meetings.types.js.map +0 -1
  412. package/dist/member/types.d.ts +0 -32
  413. package/dist/member/types.js +0 -23
  414. package/dist/member/types.js.map +0 -1
  415. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  416. package/dist/multistream/mediaRequestManager.js +0 -344
  417. package/dist/multistream/mediaRequestManager.js.map +0 -1
  418. package/dist/multistream/receiveSlot.d.ts +0 -68
  419. package/dist/multistream/receiveSlot.js +0 -200
  420. package/dist/multistream/receiveSlot.js.map +0 -1
  421. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  422. package/dist/multistream/receiveSlotManager.js +0 -174
  423. package/dist/multistream/receiveSlotManager.js.map +0 -1
  424. package/dist/multistream/remoteMedia.d.ts +0 -72
  425. package/dist/multistream/remoteMedia.js +0 -268
  426. package/dist/multistream/remoteMedia.js.map +0 -1
  427. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  428. package/dist/multistream/remoteMediaGroup.js +0 -267
  429. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  430. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  431. package/dist/multistream/remoteMediaManager.js +0 -1211
  432. package/dist/multistream/remoteMediaManager.js.map +0 -1
  433. package/dist/multistream/sendSlotManager.d.ts +0 -61
  434. package/dist/multistream/sendSlotManager.js +0 -236
  435. package/dist/multistream/sendSlotManager.js.map +0 -1
  436. package/dist/reactions/constants.d.ts +0 -3
  437. package/dist/reactions/constants.js +0 -12
  438. package/dist/reactions/constants.js.map +0 -1
  439. package/dist/rtcMetrics/constants.d.ts +0 -4
  440. package/dist/rtcMetrics/constants.js +0 -11
  441. package/dist/rtcMetrics/constants.js.map +0 -1
  442. package/dist/rtcMetrics/index.d.ts +0 -54
  443. package/dist/rtcMetrics/index.js +0 -140
  444. package/dist/rtcMetrics/index.js.map +0 -1
  445. package/dist/webinar/collection.d.ts +0 -16
  446. package/dist/webinar/collection.js +0 -43
  447. package/dist/webinar/collection.js.map +0 -1
  448. package/dist/webinar/index.d.ts +0 -5
  449. package/dist/webinar/index.js +0 -68
  450. package/dist/webinar/index.js.map +0 -1
  451. package/src/annotation/annotation.types.ts +0 -50
  452. package/src/annotation/constants.ts +0 -36
  453. package/src/annotation/index.ts +0 -328
  454. package/src/breakouts/README.md +0 -220
  455. package/src/breakouts/breakout.ts +0 -188
  456. package/src/breakouts/collection.ts +0 -19
  457. package/src/breakouts/edit-lock-error.ts +0 -25
  458. package/src/breakouts/events.ts +0 -56
  459. package/src/breakouts/index.ts +0 -925
  460. package/src/breakouts/request.ts +0 -55
  461. package/src/breakouts/utils.ts +0 -57
  462. package/src/common/errors/no-meeting-info.ts +0 -24
  463. package/src/controls-options-manager/types.ts +0 -59
  464. package/src/index.ts +0 -40
  465. package/src/interpretation/README.md +0 -60
  466. package/src/interpretation/collection.ts +0 -19
  467. package/src/interpretation/index.ts +0 -332
  468. package/src/interpretation/siLanguage.ts +0 -18
  469. package/src/meeting/locusMediaRequest.ts +0 -313
  470. package/src/meeting/request.type.ts +0 -13
  471. package/src/meetings/meetings.types.ts +0 -12
  472. package/src/member/types.ts +0 -38
  473. package/src/multistream/mediaRequestManager.ts +0 -440
  474. package/src/multistream/receiveSlot.ts +0 -184
  475. package/src/multistream/receiveSlotManager.ts +0 -166
  476. package/src/multistream/remoteMedia.ts +0 -254
  477. package/src/multistream/remoteMediaGroup.ts +0 -284
  478. package/src/multistream/remoteMediaManager.ts +0 -1145
  479. package/src/multistream/sendSlotManager.ts +0 -170
  480. package/src/reactions/constants.ts +0 -4
  481. package/src/rtcMetrics/constants.ts +0 -3
  482. package/src/rtcMetrics/index.ts +0 -124
  483. package/src/webinar/collection.ts +0 -31
  484. package/src/webinar/index.ts +0 -62
  485. package/test/integration/spec/converged-space-meetings.js +0 -233
  486. package/test/unit/spec/annotation/index.ts +0 -418
  487. package/test/unit/spec/breakouts/breakout.ts +0 -237
  488. package/test/unit/spec/breakouts/collection.ts +0 -15
  489. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  490. package/test/unit/spec/breakouts/events.ts +0 -89
  491. package/test/unit/spec/breakouts/index.ts +0 -1790
  492. package/test/unit/spec/breakouts/request.ts +0 -104
  493. package/test/unit/spec/breakouts/utils.js +0 -72
  494. package/test/unit/spec/interpretation/collection.ts +0 -15
  495. package/test/unit/spec/interpretation/index.ts +0 -589
  496. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  497. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  498. package/test/unit/spec/media/index.ts +0 -290
  499. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  500. package/test/unit/spec/meeting-info/index.js +0 -300
  501. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  502. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  503. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  504. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  505. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  506. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  507. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  508. package/test/unit/spec/reachability/request.js +0 -68
  509. package/test/unit/spec/roap/request.ts +0 -232
  510. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  511. package/test/unit/spec/webinar/collection.ts +0 -13
  512. package/test/unit/spec/webinar/index.ts +0 -60
  513. package/test/utils/constants.js +0 -9
  514. package/test/utils/integrationTestUtils.js +0 -46
  515. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  516. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -33,24 +33,6 @@ describe('plugin-meetings', () => {
33
33
  assert.calledWith(getRolesSpy, self);
34
34
 
35
35
  assert.deepEqual(parsedSelf.roles, ['PRESENTER']);
36
- assert.deepEqual(parsedSelf.breakoutSessions, {
37
- active: [
38
- {
39
- name: 'Breakout session 2',
40
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
41
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
42
- sessionType: 'BREAKOUT',
43
- },
44
- ],
45
- allowed: [
46
- {
47
- name: 'Breakout session 2',
48
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
49
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
50
- sessionType: 'BREAKOUT',
51
- },
52
- ],
53
- });
54
36
  });
55
37
 
56
38
  it('calls getLayout and returns the resulting layout', () => {
@@ -76,101 +58,6 @@ describe('plugin-meetings', () => {
76
58
  });
77
59
  });
78
60
 
79
- describe('getBreakoutSessions', () => {
80
- it('should return breakout sessions', () => {
81
- assert.deepEqual(
82
- SelfUtils.getBreakoutSessions({controls: {breakout: {sessions: 'SESSIONS'}}}),
83
- 'SESSIONS'
84
- );
85
- });
86
- });
87
-
88
- describe('breakoutsChanged', () => {
89
- it('should return true if breakouts have changed', () => {
90
- const current = {
91
- breakoutSessions: {
92
- allowed: [
93
- {
94
- name: 'Breakout session 2',
95
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
96
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
97
- sessionType: 'BREAKOUT',
98
- },
99
- ],
100
- },
101
- breakout: {},
102
- };
103
- const previous = {
104
- breakoutSessions: {
105
- active: [
106
- {
107
- name: 'Breakout session 2',
108
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
109
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
110
- sessionType: 'BREAKOUT',
111
- },
112
- ],
113
- },
114
- breakout: {},
115
- };
116
-
117
- assert.isTrue(SelfUtils.breakoutsChanged(previous, current));
118
- });
119
-
120
- it('should return false if breakouts have not changed', () => {
121
- const current = {
122
- breakoutSessions: {
123
- active: [
124
- {
125
- name: 'Breakout session 2',
126
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
127
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
128
- sessionType: 'BREAKOUT',
129
- },
130
- ],
131
- },
132
- breakout: {},
133
- };
134
- const previous = {
135
- breakoutSessions: {
136
- active: [
137
- {
138
- name: 'Breakout session 2',
139
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
140
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
141
- sessionType: 'BREAKOUT',
142
- },
143
- ],
144
- },
145
- breakout: {},
146
- };
147
-
148
- assert.isFalse(SelfUtils.breakoutsChanged(previous, current));
149
- });
150
-
151
- it('should return false if no breakouts in current', () => {
152
- const current = {
153
- breakoutSessions: {
154
- },
155
- };
156
- const previous = {
157
- breakoutSessions: {
158
- active: [
159
- {
160
- name: 'Breakout session 2',
161
- groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
162
- sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
163
- sessionType: 'BREAKOUT',
164
- },
165
- ],
166
- },
167
- breakout: {},
168
- };
169
-
170
- assert.isFalse(SelfUtils.breakoutsChanged(previous, current));
171
- });
172
- });
173
-
174
61
  describe('canNotViewTheParticipantList', () => {
175
62
  it('should return the correct value', () => {
176
63
  assert.equal(
@@ -251,55 +138,6 @@ describe('plugin-meetings', () => {
251
138
  assert.equal(updates.canNotViewTheParticipantListChanged, false);
252
139
  });
253
140
  });
254
-
255
- describe('localAudioUnmuteRequestedByServer', () => {
256
- it('should return localAudioUnmuteRequestedByServer = false when requestedToUnmute = false', () => {
257
- const clonedSelf = cloneDeep(self);
258
-
259
- const {updates} = SelfUtils.getSelves(self, clonedSelf);
260
-
261
- assert.equal(updates.localAudioUnmuteRequestedByServer, false);
262
- });
263
-
264
- it('should return localAudioUnmuteRequestedByServer = true when first request is made with requestedToUnmute = true', () => {
265
- const clonedSelf = cloneDeep(self);
266
-
267
- //request to unmute with timestamp
268
- clonedSelf.controls.audio.requestedToUnmute = true;
269
- clonedSelf.controls.audio.lastModifiedRequestedToUnmute = '2023-06-16T18:25:04.369Z';
270
-
271
- const {updates} = SelfUtils.getSelves(self, clonedSelf);
272
-
273
- assert.equal(updates.localAudioUnmuteRequestedByServer, true);
274
- });
275
-
276
- it('should return localAudioUnmuteRequestedByServer = true when requestedToUnmute = true and new requests lastModifiedRequestedToUnmute timestamp is greater than old one', () => {
277
- self.controls.audio.requestedToUnmute = true;
278
- self.controls.audio.lastModifiedRequestedToUnmute = '2023-06-16T18:25:04.369Z';
279
- const clonedSelf = cloneDeep(self);
280
-
281
- //request to unmute with timestamp
282
- clonedSelf.controls.audio.requestedToUnmute = true;
283
- clonedSelf.controls.audio.lastModifiedRequestedToUnmute = '2023-06-16T19:25:04.369Z';
284
-
285
- const {updates} = SelfUtils.getSelves(self, clonedSelf);
286
-
287
- assert.equal(updates.localAudioUnmuteRequestedByServer, true);
288
- });
289
-
290
- it('should return localAudioUnmuteRequestedByServer = false when requestedToUnmute but lastModifiedRequestedToUnmute timestamps are same', () => {
291
- self.controls.audio.requestedToUnmute = true;
292
- self.controls.audio.lastModifiedRequestedToUnmute = '2023-06-16T18:25:04.369Z';
293
- const clonedSelf = cloneDeep(self);
294
-
295
- clonedSelf.controls.audio.requestedToUnmute = true;
296
- clonedSelf.controls.audio.lastModifiedRequestedToUnmute = '2023-06-16T18:25:04.369Z'
297
-
298
- const {updates} = SelfUtils.getSelves(self, clonedSelf);
299
-
300
- assert.equal(updates.localAudioUnmuteRequestedByServer, false);
301
- });
302
- });
303
141
  });
304
142
 
305
143
  describe('isSharingBlocked', () => {
@@ -344,117 +182,4 @@ describe('plugin-meetings', () => {
344
182
  assert.deepEqual(SelfUtils.isJoined(customSelf), false);
345
183
  });
346
184
  });
347
-
348
- describe('videoMutedByOthersChanged', () => {
349
- it('returns true if changed', () => {
350
- assert.equal(
351
- SelfUtils.videoMutedByOthersChanged({remoteVideoMuted: true}, {remoteVideoMuted: false}),
352
- true
353
- );
354
- });
355
-
356
- it('returns true if changed from undefined', () => {
357
- assert.equal(SelfUtils.videoMutedByOthersChanged({}, {remoteVideoMuted: false}), true);
358
- });
359
-
360
- it('returns false if not changed', () => {
361
- assert.equal(
362
- SelfUtils.videoMutedByOthersChanged({remoteVideoMuted: false}, {remoteVideoMuted: false}),
363
- false
364
- );
365
- });
366
- });
367
-
368
- describe('getReplacedBreakoutMoveId', () => {
369
- const deviceId = 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24';
370
- const breakoutMoveId = 'e5caeb2c-ffcc-4e06-a08a-1122e7710398';
371
- const clonedSelf = cloneDeep(self);
372
-
373
- it('get breakoutMoveId works', () => {
374
-
375
- assert.deepEqual(SelfUtils.getReplacedBreakoutMoveId(self, deviceId), breakoutMoveId);
376
-
377
- });
378
-
379
- it('replaces is empty', () => {
380
-
381
- clonedSelf.devices[0].replaces = undefined;
382
- assert.deepEqual(SelfUtils.getReplacedBreakoutMoveId(clonedSelf, deviceId), null);
383
-
384
- });
385
-
386
- it('no self or self.devices is not array', () => {
387
-
388
- assert.deepEqual(SelfUtils.getReplacedBreakoutMoveId(undefined, deviceId), null);
389
-
390
- clonedSelf.devices = {
391
- url: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/20eabde3-4254-48da-9a24',
392
- deviceType: 'WEB',
393
- mediaSessionsExternal: false,
394
- replaces: [
395
- {
396
- breakoutMoveId: 'e5caeb2c-ffcc-4e06-a08a-1122e7710398',
397
- lastActive: '2023-05-04T07:14:32.068Z',
398
- locusUrl: 'https://locus-alpha-apdx.prod.meetapi.webex.com/locus/api/v1/loci/495061ca-7b3c-3b77-85ff-4e1bd58600d1',
399
- replacedAt: '2023-05-04T07:16:04.905Z',
400
- sessionId: 'be3147d4-c318-86d8-7611-8d24beaaca8d',
401
- }
402
- ],
403
- state: 'JOINED',
404
- };
405
- assert.deepEqual(SelfUtils.getReplacedBreakoutMoveId(clonedSelf, deviceId), null);
406
- });
407
- });
408
-
409
- describe('isRolesChanged', () => {
410
- it('should return false if new self is null', () => {
411
- const parsedSelf = SelfUtils.parse(self);
412
-
413
- assert.deepEqual(SelfUtils.isRolesChanged(parsedSelf, null), false);
414
- });
415
-
416
- it('should return true if self roles has changed', () => {
417
- const parsedSelf = SelfUtils.parse(self);
418
- const clonedSelf = cloneDeep(parsedSelf);
419
-
420
- clonedSelf.roles = ['COHOST'];
421
-
422
- assert.deepEqual(SelfUtils.isRolesChanged(parsedSelf, clonedSelf), true);
423
- });
424
-
425
- it('should return false if self roles has not changed', () => {
426
- const parsedSelf = SelfUtils.parse(self);
427
- const clonedSelf = cloneDeep(parsedSelf);
428
-
429
- clonedSelf.roles = ['PRESENTER'];
430
-
431
- assert.deepEqual(SelfUtils.isRolesChanged(parsedSelf, clonedSelf), false);
432
- });
433
- });
434
-
435
- describe('interpretationChanged', () => {
436
- it('should return false if new self is null', () => {
437
- const parsedSelf = SelfUtils.parse(self);
438
-
439
- assert.deepEqual(SelfUtils.interpretationChanged(parsedSelf, null), false);
440
- });
441
-
442
- it('should return true if interpretation info has changed', () => {
443
- const parsedSelf = SelfUtils.parse(self);
444
- const clonedSelf = cloneDeep(parsedSelf);
445
-
446
- clonedSelf.interpretation.sourceLanguage = 'ja';
447
-
448
- assert.deepEqual(SelfUtils.interpretationChanged(parsedSelf, clonedSelf), true);
449
- });
450
-
451
- it('should return false if interpretation info has not changed', () => {
452
- const parsedSelf = SelfUtils.parse(self);
453
- const clonedSelf = cloneDeep(parsedSelf);
454
-
455
- clonedSelf.interpretation.sourceLanguage = 'en';
456
-
457
- assert.deepEqual(SelfUtils.interpretationChanged(parsedSelf, clonedSelf), false);
458
- });
459
- });
460
185
  });
@@ -1,47 +1,54 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
2
  import sinon from 'sinon';
3
- import {ConnectionState, Event} from '@webex/internal-media-core';
4
3
  import MediaProperties from '@webex/plugin-meetings/src/media/properties';
5
4
  import MediaUtil from '@webex/plugin-meetings/src/media/util';
6
5
  import testUtils from '../../../utils/testUtils';
7
- import {ICE_AND_DTLS_CONNECTION_TIMEOUT} from '@webex/plugin-meetings/src/constants';
6
+ import {PC_BAIL_TIMEOUT} from '@webex/plugin-meetings/src/constants';
8
7
  import {Defer} from '@webex/common';
9
8
 
10
9
  describe('MediaProperties', () => {
11
10
  let mediaProperties;
12
- let mockMC;
11
+ let mockPc;
13
12
  let clock;
14
13
 
15
14
  beforeEach(() => {
16
15
  clock = sinon.useFakeTimers();
17
16
 
18
- mockMC = {
17
+ mockPc = {
19
18
  getStats: sinon.stub().resolves([]),
20
- on: sinon.stub(),
21
- off: sinon.stub(),
22
- getConnectionState: sinon.stub().returns(ConnectionState.Connected),
19
+ addEventListener: sinon.stub(),
20
+ removeEventListener: sinon.stub(),
21
+ iceConnectionState: 'connected',
23
22
  };
24
23
 
24
+ sinon.stub(MediaUtil, 'createPeerConnection').returns(mockPc);
25
+
25
26
  mediaProperties = new MediaProperties();
26
- mediaProperties.setMediaPeerConnection(mockMC);
27
27
  });
28
28
 
29
29
  afterEach(() => {
30
30
  clock.restore();
31
31
  sinon.restore();
32
32
  });
33
- describe('waitForMediaConnectionConnected', () => {
33
+ describe('waitForIceConnectedState', () => {
34
34
  it('resolves immediately if ice state is connected', async () => {
35
- await mediaProperties.waitForMediaConnectionConnected();
35
+ mockPc.iceConnectionState = 'connected';
36
+
37
+ await mediaProperties.waitForIceConnectedState();
38
+ });
39
+ it('resolves immediately if ice state is completed', async () => {
40
+ mockPc.iceConnectionState = 'completed';
41
+
42
+ await mediaProperties.waitForIceConnectedState();
36
43
  });
37
44
  it('rejects after timeout if ice state does not reach connected/completed', async () => {
38
- mockMC.getConnectionState.returns(ConnectionState.Connecting);
45
+ mockPc.iceConnectionState = 'connecting';
39
46
 
40
47
  let promiseResolved = false;
41
48
  let promiseRejected = false;
42
49
 
43
50
  mediaProperties
44
- .waitForMediaConnectionConnected()
51
+ .waitForIceConnectedState()
45
52
  .then(() => {
46
53
  promiseResolved = true;
47
54
  })
@@ -52,133 +59,135 @@ describe('MediaProperties', () => {
52
59
  assert.equal(promiseResolved, false);
53
60
  assert.equal(promiseRejected, false);
54
61
 
55
- await clock.tickAsync(ICE_AND_DTLS_CONNECTION_TIMEOUT);
62
+ await clock.tickAsync(PC_BAIL_TIMEOUT);
56
63
  await testUtils.flushPromises();
57
64
 
58
65
  assert.equal(promiseResolved, false);
59
66
  assert.equal(promiseRejected, true);
60
67
 
61
68
  // check that listener was registered and removed
62
- assert.calledOnce(mockMC.on);
63
- assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
64
- const listener = mockMC.on.getCall(0).args[1];
69
+ assert.calledOnce(mockPc.addEventListener);
70
+ assert.equal(mockPc.addEventListener.getCall(0).args[0], 'iceconnectionstatechange');
71
+ const listener = mockPc.addEventListener.getCall(0).args[1];
65
72
 
66
- assert.calledOnce(mockMC.off);
67
- assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
73
+ assert.calledOnce(mockPc.removeEventListener);
74
+ assert.calledWith(mockPc.removeEventListener, 'iceconnectionstatechange', listener);
68
75
  });
69
76
 
70
- it(`resolves when media connection reaches "connected" state`, async () => {
71
- mockMC.getConnectionState.returns(ConnectionState.Connecting);
77
+ ['connected', 'completed'].forEach((successIceState) =>
78
+ it(`resolves when ice state reaches ${successIceState}`, async () => {
79
+ mockPc.iceConnectionState = 'connecting';
72
80
 
73
- const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
81
+ const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
74
82
 
75
- let promiseResolved = false;
76
- let promiseRejected = false;
83
+ let promiseResolved = false;
84
+ let promiseRejected = false;
77
85
 
78
- mediaProperties
79
- .waitForMediaConnectionConnected()
80
- .then(() => {
81
- promiseResolved = true;
82
- })
83
- .catch(() => {
84
- promiseRejected = true;
85
- });
86
+ mediaProperties
87
+ .waitForIceConnectedState()
88
+ .then(() => {
89
+ promiseResolved = true;
90
+ })
91
+ .catch(() => {
92
+ promiseRejected = true;
93
+ });
86
94
 
87
- assert.equal(promiseResolved, false);
88
- assert.equal(promiseRejected, false);
95
+ assert.equal(promiseResolved, false);
96
+ assert.equal(promiseRejected, false);
89
97
 
90
- // check the right listener was registered
91
- assert.calledOnce(mockMC.on);
92
- assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
93
- const listener = mockMC.on.getCall(0).args[1];
98
+ // check the right listener was registered
99
+ assert.calledOnce(mockPc.addEventListener);
100
+ assert.equal(mockPc.addEventListener.getCall(0).args[0], 'iceconnectionstatechange');
101
+ const listener = mockPc.addEventListener.getCall(0).args[1];
94
102
 
95
- // call the listener and pretend we are now connected
96
- mockMC.getConnectionState.returns(ConnectionState.Connected);
97
- listener();
98
- await testUtils.flushPromises();
103
+ // call the listener and pretend we are now connected
104
+ mockPc.iceConnectionState = successIceState;
105
+ listener();
106
+ await testUtils.flushPromises();
99
107
 
100
- assert.equal(promiseResolved, true);
101
- assert.equal(promiseRejected, false);
108
+ assert.equal(promiseResolved, true);
109
+ assert.equal(promiseRejected, false);
102
110
 
103
- // check that listener was removed
104
- assert.calledOnce(mockMC.off);
105
- assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
111
+ // check that listener was removed
112
+ assert.calledOnce(mockPc.removeEventListener);
113
+ assert.calledWith(mockPc.removeEventListener, 'iceconnectionstatechange', listener);
106
114
 
107
- assert.calledOnce(clearTimeoutSpy);
108
- });
115
+ assert.calledOnce(clearTimeoutSpy);
116
+ })
117
+ );
109
118
  });
110
119
 
111
120
  describe('getCurrentConnectionType', () => {
112
- it('calls waitForMediaConnectionConnected', async () => {
113
- const spy = sinon.stub(mediaProperties, 'waitForMediaConnectionConnected');
121
+ it('calls waitForIceConnectedState', async () => {
122
+ const spy = sinon.stub(mediaProperties, 'waitForIceConnectedState');
114
123
 
115
124
  await mediaProperties.getCurrentConnectionType();
116
125
 
117
126
  assert.calledOnce(spy);
118
127
  });
119
- it('calls getStats() only after waitForMediaConnectionConnected resolves', async () => {
120
- const waitForMediaConnectionConnectedResult = new Defer();
128
+ it('calls getStats() only after waitForIceConnectedState resolves', async () => {
129
+ const waitForIceConnectedStateResult = new Defer();
121
130
 
122
- const waitForMediaConnectionConnectedStub = sinon
123
- .stub(mediaProperties, 'waitForMediaConnectionConnected')
124
- .returns(waitForMediaConnectionConnectedResult.promise);
131
+ const waitForIceConnectedStateStub = sinon
132
+ .stub(mediaProperties, 'waitForIceConnectedState')
133
+ .returns(waitForIceConnectedStateResult.promise);
125
134
 
126
135
  const result = mediaProperties.getCurrentConnectionType();
127
136
 
128
137
  await testUtils.flushPromises();
129
138
 
130
- assert.called(waitForMediaConnectionConnectedStub);
131
- assert.notCalled(mockMC.getStats);
139
+ assert.called(waitForIceConnectedStateStub);
140
+ assert.notCalled(mockPc.getStats);
132
141
 
133
- waitForMediaConnectionConnectedResult.resolve();
142
+ waitForIceConnectedStateResult.resolve();
134
143
  await testUtils.flushPromises();
135
144
 
136
- assert.called(mockMC.getStats);
145
+ assert.called(mockPc.getStats);
137
146
  await result;
138
147
  });
139
- it('rejects if waitForMediaConnectionConnected rejects', async () => {
140
- const waitForMediaConnectionConnectedResult = new Defer();
148
+ it('rejects if waitForIceConnectedState rejects', async () => {
149
+ const waitForIceConnectedStateResult = new Defer();
141
150
 
142
- const waitForMediaConnectionConnectedStub = sinon
143
- .stub(mediaProperties, 'waitForMediaConnectionConnected')
144
- .returns(waitForMediaConnectionConnectedResult.promise);
151
+ const waitForIceConnectedStateStub = sinon
152
+ .stub(mediaProperties, 'waitForIceConnectedState')
153
+ .returns(waitForIceConnectedStateResult.promise);
145
154
 
146
155
  const result = mediaProperties.getCurrentConnectionType();
147
156
 
148
157
  await testUtils.flushPromises();
149
158
 
150
- assert.called(waitForMediaConnectionConnectedStub);
159
+ assert.called(waitForIceConnectedStateStub);
151
160
 
152
- waitForMediaConnectionConnectedResult.reject(new Error('fake error'));
161
+ waitForIceConnectedStateResult.reject(new Error('fake error'));
153
162
  await testUtils.flushPromises();
154
163
 
155
- assert.notCalled(mockMC.getStats);
164
+ assert.notCalled(mockPc.getStats);
156
165
 
157
166
  await assert.isRejected(result);
158
167
  });
159
168
  it('returns "unknown" if getStats() fails', async () => {
160
- mockMC.getStats.rejects(new Error());
169
+ mockPc.getStats.rejects(new Error());
161
170
 
162
171
  const connectionType = await mediaProperties.getCurrentConnectionType();
163
172
  assert.equal(connectionType, 'unknown');
164
173
  });
165
174
 
166
175
  it('returns "unknown" if getStats() returns no candidate pairs', async () => {
167
- mockMC.getStats.resolves([{type: 'something', id: '1234'}]);
176
+ mockPc.getStats.resolves([{type: 'something', id: '1234'}]);
168
177
 
169
178
  const connectionType = await mediaProperties.getCurrentConnectionType();
170
179
  assert.equal(connectionType, 'unknown');
171
180
  });
172
181
 
173
182
  it('returns "unknown" if getStats() returns no successful candidate pair', async () => {
174
- mockMC.getStats.resolves([{type: 'candidate-pair', id: '1234', state: 'inprogress'}]);
183
+ mockPc.getStats.resolves([{type: 'candidate-pair', id: '1234', state: 'inprogress'}]);
175
184
 
176
185
  const connectionType = await mediaProperties.getCurrentConnectionType();
177
186
  assert.equal(connectionType, 'unknown');
178
187
  });
179
188
 
180
189
  it('returns "unknown" if getStats() returns a successful candidate pair but local candidate is missing', async () => {
181
- mockMC.getStats.resolves([
190
+ mockPc.getStats.resolves([
182
191
  {type: 'candidate-pair', id: '1234', state: 'succeeded', localCandidateId: 'wrong id'},
183
192
  ]);
184
193
 
@@ -187,7 +196,7 @@ describe('MediaProperties', () => {
187
196
  });
188
197
 
189
198
  it('returns "UDP" if getStats() returns a successful candidate pair with udp local candidate', async () => {
190
- mockMC.getStats.resolves([
199
+ mockPc.getStats.resolves([
191
200
  {
192
201
  type: 'candidate-pair',
193
202
  id: 'some candidate pair id',
@@ -203,7 +212,7 @@ describe('MediaProperties', () => {
203
212
  });
204
213
 
205
214
  it('returns "TCP" if getStats() returns a successful candidate pair with tcp local candidate', async () => {
206
- mockMC.getStats.resolves([
215
+ mockPc.getStats.resolves([
207
216
  {
208
217
  type: 'candidate-pair',
209
218
  id: 'some candidate pair id',
@@ -224,7 +233,7 @@ describe('MediaProperties', () => {
224
233
  {relayProtocol: 'udp', expectedConnectionType: 'TURN-UDP'},
225
234
  ].forEach(({relayProtocol, expectedConnectionType}) =>
226
235
  it(`returns "${expectedConnectionType}" if getStats() returns a successful candidate pair with a local candidate with relayProtocol=${relayProtocol}`, async () => {
227
- mockMC.getStats.resolves([
236
+ mockPc.getStats.resolves([
228
237
  {
229
238
  type: 'candidate-pair',
230
239
  id: 'some candidate pair id',
@@ -256,7 +265,7 @@ describe('MediaProperties', () => {
256
265
  // in real life this will never happen and all active candidate pairs will have same transport,
257
266
  // but here we're simulating a situation where they have different transports and just checking
258
267
  // that the code still works and just returns the first one
259
- mockMC.getStats.resolves([
268
+ mockPc.getStats.resolves([
260
269
  {
261
270
  type: 'inbound-rtp',
262
271
  id: 'whatever',