@webex/plugin-meetings 3.0.0-bnr.5 → 3.0.0-stream-classes.2

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 (854) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +70 -32
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +422 -217
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +12 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/webex-errors.js +3 -2
  17. package/dist/common/errors/webex-errors.js.map +1 -1
  18. package/dist/common/logs/logger-proxy.js +1 -1
  19. package/dist/common/logs/logger-proxy.js.map +1 -1
  20. package/dist/common/queue.js +24 -9
  21. package/dist/common/queue.js.map +1 -1
  22. package/dist/config.js +1 -7
  23. package/dist/config.js.map +1 -1
  24. package/dist/constants.js +118 -24
  25. package/dist/constants.js.map +1 -1
  26. package/dist/controls-options-manager/enums.js +2 -0
  27. package/dist/controls-options-manager/enums.js.map +1 -1
  28. package/dist/controls-options-manager/index.js +19 -14
  29. package/dist/controls-options-manager/index.js.map +1 -1
  30. package/dist/controls-options-manager/types.js.map +1 -1
  31. package/dist/controls-options-manager/util.js +80 -11
  32. package/dist/controls-options-manager/util.js.map +1 -1
  33. package/dist/index.js +62 -20
  34. package/dist/index.js.map +1 -1
  35. package/dist/interpretation/collection.js +23 -0
  36. package/dist/interpretation/collection.js.map +1 -0
  37. package/dist/interpretation/index.js +366 -0
  38. package/dist/interpretation/index.js.map +1 -0
  39. package/dist/interpretation/siLanguage.js +25 -0
  40. package/dist/interpretation/siLanguage.js.map +1 -0
  41. package/dist/locus-info/controlsUtils.js +71 -1
  42. package/dist/locus-info/controlsUtils.js.map +1 -1
  43. package/dist/locus-info/index.js +305 -57
  44. package/dist/locus-info/index.js.map +1 -1
  45. package/dist/locus-info/infoUtils.js +7 -1
  46. package/dist/locus-info/infoUtils.js.map +1 -1
  47. package/dist/locus-info/mediaSharesUtils.js +43 -1
  48. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  49. package/dist/locus-info/parser.js +219 -63
  50. package/dist/locus-info/parser.js.map +1 -1
  51. package/dist/locus-info/selfUtils.js +44 -22
  52. package/dist/locus-info/selfUtils.js.map +1 -1
  53. package/dist/media/index.js +57 -104
  54. package/dist/media/index.js.map +1 -1
  55. package/dist/media/properties.js +60 -121
  56. package/dist/media/properties.js.map +1 -1
  57. package/dist/meeting/in-meeting-actions.js +61 -3
  58. package/dist/meeting/in-meeting-actions.js.map +1 -1
  59. package/dist/meeting/index.js +2530 -2534
  60. package/dist/meeting/index.js.map +1 -1
  61. package/dist/meeting/locusMediaRequest.js +292 -0
  62. package/dist/meeting/locusMediaRequest.js.map +1 -0
  63. package/dist/meeting/muteState.js +125 -205
  64. package/dist/meeting/muteState.js.map +1 -1
  65. package/dist/meeting/request.js +150 -150
  66. package/dist/meeting/request.js.map +1 -1
  67. package/dist/meeting/util.js +568 -438
  68. package/dist/meeting/util.js.map +1 -1
  69. package/dist/meeting-info/index.js +48 -7
  70. package/dist/meeting-info/index.js.map +1 -1
  71. package/dist/meeting-info/meeting-info-v2.js +94 -38
  72. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  73. package/dist/meeting-info/utilv2.js +4 -2
  74. package/dist/meeting-info/utilv2.js.map +1 -1
  75. package/dist/meetings/index.js +260 -85
  76. package/dist/meetings/index.js.map +1 -1
  77. package/dist/meetings/meetings.types.js +7 -0
  78. package/dist/meetings/meetings.types.js.map +1 -0
  79. package/dist/meetings/util.js +42 -7
  80. package/dist/meetings/util.js.map +1 -1
  81. package/dist/member/index.js +26 -0
  82. package/dist/member/index.js.map +1 -1
  83. package/dist/member/types.js +11 -1
  84. package/dist/member/types.js.map +1 -1
  85. package/dist/member/util.js +60 -23
  86. package/dist/member/util.js.map +1 -1
  87. package/dist/members/index.js +4 -1
  88. package/dist/members/index.js.map +1 -1
  89. package/dist/members/request.js +75 -45
  90. package/dist/members/request.js.map +1 -1
  91. package/dist/members/util.js +308 -317
  92. package/dist/members/util.js.map +1 -1
  93. package/dist/metrics/constants.js +1 -0
  94. package/dist/metrics/constants.js.map +1 -1
  95. package/dist/metrics/index.js +1 -451
  96. package/dist/metrics/index.js.map +1 -1
  97. package/dist/multistream/mediaRequestManager.js +136 -40
  98. package/dist/multistream/mediaRequestManager.js.map +1 -1
  99. package/dist/multistream/receiveSlot.js.map +1 -1
  100. package/dist/multistream/receiveSlotManager.js +4 -4
  101. package/dist/multistream/receiveSlotManager.js.map +1 -1
  102. package/dist/multistream/remoteMedia.js.map +1 -1
  103. package/dist/multistream/remoteMediaGroup.js +60 -3
  104. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  105. package/dist/multistream/remoteMediaManager.js +36 -0
  106. package/dist/multistream/remoteMediaManager.js.map +1 -1
  107. package/dist/multistream/sendSlotManager.js +233 -0
  108. package/dist/multistream/sendSlotManager.js.map +1 -0
  109. package/dist/reachability/index.js +18 -3
  110. package/dist/reachability/index.js.map +1 -1
  111. package/dist/reachability/request.js +5 -3
  112. package/dist/reachability/request.js.map +1 -1
  113. package/dist/reconnection-manager/index.js +181 -153
  114. package/dist/reconnection-manager/index.js.map +1 -1
  115. package/dist/recording-controller/index.js +21 -2
  116. package/dist/recording-controller/index.js.map +1 -1
  117. package/dist/recording-controller/util.js +9 -8
  118. package/dist/recording-controller/util.js.map +1 -1
  119. package/dist/roap/index.js +25 -32
  120. package/dist/roap/index.js.map +1 -1
  121. package/dist/roap/request.js +42 -51
  122. package/dist/roap/request.js.map +1 -1
  123. package/dist/roap/turnDiscovery.js +97 -38
  124. package/dist/roap/turnDiscovery.js.map +1 -1
  125. package/dist/rtcMetrics/constants.js +12 -0
  126. package/dist/rtcMetrics/constants.js.map +1 -0
  127. package/dist/rtcMetrics/index.js +117 -0
  128. package/dist/rtcMetrics/index.js.map +1 -0
  129. package/dist/statsAnalyzer/index.js +0 -1
  130. package/dist/statsAnalyzer/index.js.map +1 -1
  131. package/dist/types/annotation/annotation.types.d.ts +42 -0
  132. package/dist/types/annotation/constants.d.ts +31 -0
  133. package/dist/types/annotation/index.d.ts +117 -0
  134. package/dist/types/breakouts/events.d.ts +8 -0
  135. package/dist/types/breakouts/utils.d.ts +7 -0
  136. package/dist/types/common/errors/webex-errors.d.ts +1 -1
  137. package/dist/types/common/queue.d.ts +9 -7
  138. package/dist/types/config.d.ts +0 -6
  139. package/dist/types/constants.d.ts +95 -22
  140. package/dist/types/controls-options-manager/enums.d.ts +2 -0
  141. package/dist/types/controls-options-manager/index.d.ts +1 -1
  142. package/dist/types/controls-options-manager/types.d.ts +7 -1
  143. package/dist/types/index.d.ts +1 -1
  144. package/dist/types/interpretation/collection.d.ts +5 -0
  145. package/dist/types/interpretation/index.d.ts +5 -0
  146. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  147. package/dist/types/locus-info/index.d.ts +47 -2
  148. package/dist/types/locus-info/parser.d.ts +65 -6
  149. package/dist/types/media/index.d.ts +2 -0
  150. package/dist/types/media/properties.d.ts +34 -49
  151. package/dist/types/meeting/in-meeting-actions.d.ts +60 -2
  152. package/dist/types/meeting/index.d.ts +268 -473
  153. package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
  154. package/dist/types/meeting/muteState.d.ts +53 -54
  155. package/dist/types/meeting/request.d.ts +61 -43
  156. package/dist/types/meeting/util.d.ts +93 -1
  157. package/dist/types/meeting-info/index.d.ts +6 -1
  158. package/dist/types/meeting-info/meeting-info-v2.d.ts +14 -3
  159. package/dist/types/meetings/index.d.ts +56 -11
  160. package/dist/types/meetings/meetings.types.d.ts +4 -0
  161. package/dist/types/member/index.d.ts +4 -1
  162. package/dist/types/member/types.d.ts +11 -0
  163. package/dist/types/members/request.d.ts +56 -11
  164. package/dist/types/members/util.d.ts +209 -1
  165. package/dist/types/metrics/constants.d.ts +1 -0
  166. package/dist/types/metrics/index.d.ts +4 -111
  167. package/dist/types/multistream/mediaRequestManager.d.ts +27 -10
  168. package/dist/types/multistream/receiveSlot.d.ts +3 -3
  169. package/dist/types/multistream/remoteMedia.d.ts +2 -2
  170. package/dist/types/multistream/remoteMediaManager.d.ts +14 -0
  171. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  172. package/dist/types/reachability/index.d.ts +6 -0
  173. package/dist/types/reachability/request.d.ts +3 -1
  174. package/dist/types/reconnection-manager/index.d.ts +2 -2
  175. package/dist/types/recording-controller/index.d.ts +15 -1
  176. package/dist/types/recording-controller/util.d.ts +5 -4
  177. package/dist/types/roap/request.d.ts +8 -8
  178. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  179. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  180. package/dist/types/rtcMetrics/index.d.ts +47 -0
  181. package/package.json +21 -20
  182. package/src/annotation/annotation.types.ts +50 -0
  183. package/src/annotation/constants.ts +36 -0
  184. package/src/annotation/index.ts +328 -0
  185. package/src/breakouts/README.md +3 -2
  186. package/src/breakouts/breakout.ts +62 -27
  187. package/src/breakouts/events.ts +56 -0
  188. package/src/breakouts/index.ts +244 -64
  189. package/src/breakouts/utils.ts +13 -0
  190. package/src/common/errors/webex-errors.ts +6 -2
  191. package/src/common/logs/logger-proxy.ts +1 -1
  192. package/src/common/queue.ts +22 -8
  193. package/src/config.ts +0 -6
  194. package/src/constants.ts +111 -19
  195. package/src/controls-options-manager/enums.ts +2 -0
  196. package/src/controls-options-manager/index.ts +13 -10
  197. package/src/controls-options-manager/types.ts +10 -0
  198. package/src/controls-options-manager/util.ts +82 -11
  199. package/src/index.ts +18 -11
  200. package/src/interpretation/README.md +60 -0
  201. package/src/interpretation/collection.ts +19 -0
  202. package/src/interpretation/index.ts +332 -0
  203. package/src/interpretation/siLanguage.ts +18 -0
  204. package/src/locus-info/controlsUtils.ts +81 -0
  205. package/src/locus-info/index.ts +318 -57
  206. package/src/locus-info/infoUtils.ts +10 -2
  207. package/src/locus-info/mediaSharesUtils.ts +48 -0
  208. package/src/locus-info/parser.ts +224 -39
  209. package/src/locus-info/selfUtils.ts +32 -20
  210. package/src/media/index.ts +94 -108
  211. package/src/media/properties.ts +69 -109
  212. package/src/meeting/in-meeting-actions.ts +120 -4
  213. package/src/meeting/index.ts +1967 -2120
  214. package/src/meeting/locusMediaRequest.ts +314 -0
  215. package/src/meeting/muteState.ts +119 -194
  216. package/src/meeting/request.ts +122 -115
  217. package/src/meeting/util.ts +549 -413
  218. package/src/meeting-info/index.ts +54 -8
  219. package/src/meeting-info/meeting-info-v2.ts +89 -24
  220. package/src/meeting-info/utilv2.ts +6 -2
  221. package/src/meetings/index.ts +247 -87
  222. package/src/meetings/meetings.types.ts +12 -0
  223. package/src/meetings/util.ts +47 -12
  224. package/src/member/index.ts +28 -1
  225. package/src/member/types.ts +14 -0
  226. package/src/member/util.ts +75 -26
  227. package/src/members/index.ts +7 -1
  228. package/src/members/request.ts +61 -21
  229. package/src/members/util.ts +316 -326
  230. package/src/metrics/constants.ts +1 -0
  231. package/src/metrics/index.ts +1 -474
  232. package/src/multistream/mediaRequestManager.ts +183 -67
  233. package/src/multistream/receiveSlot.ts +4 -4
  234. package/src/multistream/receiveSlotManager.ts +4 -4
  235. package/src/multistream/remoteMedia.ts +2 -2
  236. package/src/multistream/remoteMediaGroup.ts +59 -0
  237. package/src/multistream/remoteMediaManager.ts +33 -0
  238. package/src/multistream/sendSlotManager.ts +170 -0
  239. package/src/reachability/index.ts +15 -4
  240. package/src/reachability/request.ts +7 -3
  241. package/src/reconnection-manager/index.ts +36 -29
  242. package/src/recording-controller/index.ts +20 -3
  243. package/src/recording-controller/util.ts +26 -9
  244. package/src/roap/index.ts +25 -30
  245. package/src/roap/request.ts +44 -51
  246. package/src/roap/turnDiscovery.ts +51 -25
  247. package/src/rtcMetrics/constants.ts +3 -0
  248. package/src/rtcMetrics/index.ts +100 -0
  249. package/src/statsAnalyzer/index.ts +0 -1
  250. package/test/integration/spec/converged-space-meetings.js +60 -3
  251. package/test/integration/spec/journey.js +336 -259
  252. package/test/integration/spec/space-meeting.js +76 -3
  253. package/test/unit/spec/annotation/index.ts +418 -0
  254. package/test/unit/spec/breakouts/breakout.ts +85 -26
  255. package/test/unit/spec/breakouts/events.ts +89 -0
  256. package/test/unit/spec/breakouts/index.ts +636 -98
  257. package/test/unit/spec/breakouts/utils.js +19 -1
  258. package/test/unit/spec/common/queue.js +31 -2
  259. package/test/unit/spec/controls-options-manager/index.js +8 -1
  260. package/test/unit/spec/controls-options-manager/util.js +576 -397
  261. package/test/unit/spec/fixture/locus.js +1 -0
  262. package/test/unit/spec/interpretation/collection.ts +15 -0
  263. package/test/unit/spec/interpretation/index.ts +589 -0
  264. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  265. package/test/unit/spec/locus-info/controlsUtils.js +195 -1
  266. package/test/unit/spec/locus-info/index.js +950 -45
  267. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  268. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  269. package/test/unit/spec/locus-info/parser.js +62 -22
  270. package/test/unit/spec/locus-info/selfConstant.js +19 -0
  271. package/test/unit/spec/locus-info/selfUtils.js +131 -26
  272. package/test/unit/spec/media/index.ts +82 -79
  273. package/test/unit/spec/meeting/in-meeting-actions.ts +60 -2
  274. package/test/unit/spec/meeting/index.js +3208 -1734
  275. package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
  276. package/test/unit/spec/meeting/muteState.js +328 -417
  277. package/test/unit/spec/meeting/request.js +393 -48
  278. package/test/unit/spec/meeting/utils.js +552 -76
  279. package/test/unit/spec/meeting-info/index.js +181 -0
  280. package/test/unit/spec/meeting-info/meetinginfov2.js +258 -20
  281. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  282. package/test/unit/spec/meetings/index.js +631 -145
  283. package/test/unit/spec/meetings/utils.js +164 -9
  284. package/test/unit/spec/member/index.js +44 -14
  285. package/test/unit/spec/member/util.js +296 -155
  286. package/test/unit/spec/members/index.js +23 -3
  287. package/test/unit/spec/members/request.js +167 -35
  288. package/test/unit/spec/metrics/index.js +1 -50
  289. package/test/unit/spec/multistream/mediaRequestManager.ts +366 -8
  290. package/test/unit/spec/multistream/receiveSlot.ts +1 -1
  291. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  292. package/test/unit/spec/multistream/remoteMediaManager.ts +123 -0
  293. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  294. package/test/unit/spec/reachability/index.ts +66 -5
  295. package/test/unit/spec/reachability/request.js +3 -1
  296. package/test/unit/spec/reconnection-manager/index.js +55 -5
  297. package/test/unit/spec/recording-controller/index.js +294 -218
  298. package/test/unit/spec/recording-controller/util.js +223 -96
  299. package/test/unit/spec/roap/index.ts +21 -48
  300. package/test/unit/spec/roap/request.ts +74 -60
  301. package/test/unit/spec/roap/turnDiscovery.ts +30 -6
  302. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  303. package/test/utils/integrationTestUtils.js +46 -0
  304. package/test/utils/testUtils.js +0 -60
  305. package/dist/common/browser-detection.d.ts +0 -9
  306. package/dist/common/collection.d.ts +0 -48
  307. package/dist/common/config.d.ts +0 -2
  308. package/dist/common/errors/captcha-error.d.ts +0 -15
  309. package/dist/common/errors/intent-to-join.d.ts +0 -16
  310. package/dist/common/errors/join-meeting.d.ts +0 -17
  311. package/dist/common/errors/media.d.ts +0 -15
  312. package/dist/common/errors/parameter.d.ts +0 -15
  313. package/dist/common/errors/password-error.d.ts +0 -15
  314. package/dist/common/errors/permission.d.ts +0 -14
  315. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  316. package/dist/common/errors/reconnection.d.ts +0 -15
  317. package/dist/common/errors/stats.d.ts +0 -15
  318. package/dist/common/errors/webex-errors.d.ts +0 -81
  319. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  320. package/dist/common/events/events-scope.d.ts +0 -17
  321. package/dist/common/events/events.d.ts +0 -12
  322. package/dist/common/events/trigger-proxy.d.ts +0 -2
  323. package/dist/common/events/util.d.ts +0 -2
  324. package/dist/common/logs/logger-config.d.ts +0 -2
  325. package/dist/common/logs/logger-proxy.d.ts +0 -2
  326. package/dist/common/logs/request.d.ts +0 -34
  327. package/dist/common/queue.d.ts +0 -32
  328. package/dist/config.d.ts +0 -73
  329. package/dist/constants.d.ts +0 -924
  330. package/dist/controls-options-manager/constants.d.ts +0 -4
  331. package/dist/controls-options-manager/enums.d.ts +0 -5
  332. package/dist/controls-options-manager/index.d.ts +0 -120
  333. package/dist/controls-options-manager/util.d.ts +0 -7
  334. package/dist/docs/markdown/index.md +0 -12
  335. package/dist/docs/markdown/plugin-meetings.constants._active_.md +0 -11
  336. package/dist/docs/markdown/plugin-meetings.constants._answer_.md +0 -11
  337. package/dist/docs/markdown/plugin-meetings.constants._call_.md +0 -11
  338. package/dist/docs/markdown/plugin-meetings.constants._conflict_.md +0 -11
  339. package/dist/docs/markdown/plugin-meetings.constants._conversation_url_.md +0 -11
  340. package/dist/docs/markdown/plugin-meetings.constants._created_.md +0 -11
  341. package/dist/docs/markdown/plugin-meetings.constants._error_.md +0 -11
  342. package/dist/docs/markdown/plugin-meetings.constants._forced_.md +0 -11
  343. package/dist/docs/markdown/plugin-meetings.constants._id_.md +0 -11
  344. package/dist/docs/markdown/plugin-meetings.constants._idle_.md +0 -11
  345. package/dist/docs/markdown/plugin-meetings.constants._in_.md +0 -11
  346. package/dist/docs/markdown/plugin-meetings.constants._in_lobby_.md +0 -11
  347. package/dist/docs/markdown/plugin-meetings.constants._in_meeting_.md +0 -11
  348. package/dist/docs/markdown/plugin-meetings.constants._inactive_.md +0 -11
  349. package/dist/docs/markdown/plugin-meetings.constants._incoming_.md +0 -11
  350. package/dist/docs/markdown/plugin-meetings.constants._join_.md +0 -11
  351. package/dist/docs/markdown/plugin-meetings.constants._joined_.md +0 -11
  352. package/dist/docs/markdown/plugin-meetings.constants._left_.md +0 -11
  353. package/dist/docs/markdown/plugin-meetings.constants._locus_id_.md +0 -11
  354. package/dist/docs/markdown/plugin-meetings.constants._meeting_.md +0 -11
  355. package/dist/docs/markdown/plugin-meetings.constants._meeting_center_.md +0 -11
  356. package/dist/docs/markdown/plugin-meetings.constants._meeting_id_.md +0 -11
  357. package/dist/docs/markdown/plugin-meetings.constants._meeting_link_.md +0 -11
  358. package/dist/docs/markdown/plugin-meetings.constants._meeting_uuid_.md +0 -11
  359. package/dist/docs/markdown/plugin-meetings.constants._move_media_.md +0 -11
  360. package/dist/docs/markdown/plugin-meetings.constants._none_.md +0 -11
  361. package/dist/docs/markdown/plugin-meetings.constants._not_in_meeting_.md +0 -11
  362. package/dist/docs/markdown/plugin-meetings.constants._observe_.md +0 -11
  363. package/dist/docs/markdown/plugin-meetings.constants._people_.md +0 -11
  364. package/dist/docs/markdown/plugin-meetings.constants._personal_room_.md +0 -11
  365. package/dist/docs/markdown/plugin-meetings.constants._receive_only_.md +0 -11
  366. package/dist/docs/markdown/plugin-meetings.constants._remove_.md +0 -11
  367. package/dist/docs/markdown/plugin-meetings.constants._requested_.md +0 -11
  368. package/dist/docs/markdown/plugin-meetings.constants._resource_room_.md +0 -11
  369. package/dist/docs/markdown/plugin-meetings.constants._room_.md +0 -11
  370. package/dist/docs/markdown/plugin-meetings.constants._s_line.md +0 -11
  371. package/dist/docs/markdown/plugin-meetings.constants._send_only_.md +0 -11
  372. package/dist/docs/markdown/plugin-meetings.constants._send_receive_.md +0 -11
  373. package/dist/docs/markdown/plugin-meetings.constants._sip_bridge_.md +0 -11
  374. package/dist/docs/markdown/plugin-meetings.constants._sip_uri_.md +0 -11
  375. package/dist/docs/markdown/plugin-meetings.constants._slides_.md +0 -11
  376. package/dist/docs/markdown/plugin-meetings.constants._unknown_.md +0 -11
  377. package/dist/docs/markdown/plugin-meetings.constants._user_.md +0 -11
  378. package/dist/docs/markdown/plugin-meetings.constants._wait_.md +0 -11
  379. package/dist/docs/markdown/plugin-meetings.constants._webex_meeting_.md +0 -11
  380. package/dist/docs/markdown/plugin-meetings.constants.alert.md +0 -11
  381. package/dist/docs/markdown/plugin-meetings.constants.alternate_redirect_true.md +0 -11
  382. package/dist/docs/markdown/plugin-meetings.constants.answer.md +0 -11
  383. package/dist/docs/markdown/plugin-meetings.constants.api.md +0 -14
  384. package/dist/docs/markdown/plugin-meetings.constants.audio.md +0 -11
  385. package/dist/docs/markdown/plugin-meetings.constants.audio_input.md +0 -11
  386. package/dist/docs/markdown/plugin-meetings.constants.audio_status.md +0 -11
  387. package/dist/docs/markdown/plugin-meetings.constants.available_resolutions.md +0 -60
  388. package/dist/docs/markdown/plugin-meetings.constants.bnr_status.md +0 -16
  389. package/dist/docs/markdown/plugin-meetings.constants.breakouts.md +0 -51
  390. package/dist/docs/markdown/plugin-meetings.constants.calendar.md +0 -11
  391. package/dist/docs/markdown/plugin-meetings.constants.calendar_events.md +0 -17
  392. package/dist/docs/markdown/plugin-meetings.constants.calendar_events_api.md +0 -11
  393. package/dist/docs/markdown/plugin-meetings.constants.call.md +0 -11
  394. package/dist/docs/markdown/plugin-meetings.constants.call_removed_reason.md +0 -15
  395. package/dist/docs/markdown/plugin-meetings.constants.claim.md +0 -11
  396. package/dist/docs/markdown/plugin-meetings.constants.cmr_meetings.md +0 -11
  397. package/dist/docs/markdown/plugin-meetings.constants.complete.md +0 -11
  398. package/dist/docs/markdown/plugin-meetings.constants.connection_state.md +0 -18
  399. package/dist/docs/markdown/plugin-meetings.constants.content.md +0 -11
  400. package/dist/docs/markdown/plugin-meetings.constants.controls.md +0 -11
  401. package/dist/docs/markdown/plugin-meetings.constants.conversation_service.md +0 -11
  402. package/dist/docs/markdown/plugin-meetings.constants.conversation_url.md +0 -11
  403. package/dist/docs/markdown/plugin-meetings.constants.correlation_id.md +0 -11
  404. package/dist/docs/markdown/plugin-meetings.constants.decline.md +0 -11
  405. package/dist/docs/markdown/plugin-meetings.constants.default_excluded_stats.md +0 -11
  406. package/dist/docs/markdown/plugin-meetings.constants.default_get_stats_filter.md +0 -13
  407. package/dist/docs/markdown/plugin-meetings.constants.development.md +0 -11
  408. package/dist/docs/markdown/plugin-meetings.constants.dialer_regex.md +0 -15
  409. package/dist/docs/markdown/plugin-meetings.constants.display_hints.md +0 -51
  410. package/dist/docs/markdown/plugin-meetings.constants.embedded_app_types.md +0 -14
  411. package/dist/docs/markdown/plugin-meetings.constants.end.md +0 -11
  412. package/dist/docs/markdown/plugin-meetings.constants.ended.md +0 -11
  413. package/dist/docs/markdown/plugin-meetings.constants.error.md +0 -11
  414. package/dist/docs/markdown/plugin-meetings.constants.error_dictionary.md +0 -62
  415. package/dist/docs/markdown/plugin-meetings.constants.event_triggers.md +0 -82
  416. package/dist/docs/markdown/plugin-meetings.constants.event_types.md +0 -21
  417. package/dist/docs/markdown/plugin-meetings.constants.events.md +0 -26
  418. package/dist/docs/markdown/plugin-meetings.constants.floor_action.md +0 -15
  419. package/dist/docs/markdown/plugin-meetings.constants.full_state.md +0 -17
  420. package/dist/docs/markdown/plugin-meetings.constants.gathering.md +0 -11
  421. package/dist/docs/markdown/plugin-meetings.constants.hecate.md +0 -11
  422. package/dist/docs/markdown/plugin-meetings.constants.host.md +0 -11
  423. package/dist/docs/markdown/plugin-meetings.constants.http_verbs.md +0 -17
  424. package/dist/docs/markdown/plugin-meetings.constants.https_protocol.md +0 -11
  425. package/dist/docs/markdown/plugin-meetings.constants.ice_fail_timeout.md +0 -11
  426. package/dist/docs/markdown/plugin-meetings.constants.ice_gathering_state.md +0 -15
  427. package/dist/docs/markdown/plugin-meetings.constants.ice_state.md +0 -18
  428. package/dist/docs/markdown/plugin-meetings.constants.ice_timeout.md +0 -11
  429. package/dist/docs/markdown/plugin-meetings.constants.intent_to_join.md +0 -11
  430. package/dist/docs/markdown/plugin-meetings.constants.ipv4_regex.md +0 -11
  431. package/dist/docs/markdown/plugin-meetings.constants.join.md +0 -11
  432. package/dist/docs/markdown/plugin-meetings.constants.layout_types.md +0 -13
  433. package/dist/docs/markdown/plugin-meetings.constants.leave.md +0 -11
  434. package/dist/docs/markdown/plugin-meetings.constants.live.md +0 -11
  435. package/dist/docs/markdown/plugin-meetings.constants.local.md +0 -11
  436. package/dist/docs/markdown/plugin-meetings.constants.loci.md +0 -11
  437. package/dist/docs/markdown/plugin-meetings.constants.locus.md +0 -26
  438. package/dist/docs/markdown/plugin-meetings.constants.locus_url.md +0 -11
  439. package/dist/docs/markdown/plugin-meetings.constants.locusevent.md +0 -33
  440. package/dist/docs/markdown/plugin-meetings.constants.locusinfo.md +0 -43
  441. package/dist/docs/markdown/plugin-meetings.constants.max_random_delay_for_meeting_info.md +0 -11
  442. package/dist/docs/markdown/plugin-meetings.constants.md +0 -186
  443. package/dist/docs/markdown/plugin-meetings.constants.media.md +0 -11
  444. package/dist/docs/markdown/plugin-meetings.constants.media_devices.md +0 -15
  445. package/dist/docs/markdown/plugin-meetings.constants.media_peer_connection_name.md +0 -11
  446. package/dist/docs/markdown/plugin-meetings.constants.media_state.md +0 -14
  447. package/dist/docs/markdown/plugin-meetings.constants.media_track_constraint.md +0 -17
  448. package/dist/docs/markdown/plugin-meetings.constants.mediacontent.md +0 -14
  449. package/dist/docs/markdown/plugin-meetings.constants.meet.md +0 -11
  450. package/dist/docs/markdown/plugin-meetings.constants.meet_m.md +0 -11
  451. package/dist/docs/markdown/plugin-meetings.constants.meeting_audio_state_machine.md +0 -20
  452. package/dist/docs/markdown/plugin-meetings.constants.meeting_end_reason.md +0 -14
  453. package/dist/docs/markdown/plugin-meetings.constants.meeting_errors.md +0 -102
  454. package/dist/docs/markdown/plugin-meetings.constants.meeting_info_failure_reason.md +0 -16
  455. package/dist/docs/markdown/plugin-meetings.constants.meeting_removed_reason.md +0 -19
  456. package/dist/docs/markdown/plugin-meetings.constants.meeting_state.md +0 -25
  457. package/dist/docs/markdown/plugin-meetings.constants.meeting_state_machine.md +0 -31
  458. package/dist/docs/markdown/plugin-meetings.constants.meeting_video_state_machine.md +0 -20
  459. package/dist/docs/markdown/plugin-meetings.constants.meetinginfo.md +0 -11
  460. package/dist/docs/markdown/plugin-meetings.constants.meetings.md +0 -11
  461. package/dist/docs/markdown/plugin-meetings.constants.metrics_join_times_max_duration.md +0 -11
  462. package/dist/docs/markdown/plugin-meetings.constants.moderator_false.md +0 -11
  463. package/dist/docs/markdown/plugin-meetings.constants.moderator_true.md +0 -11
  464. package/dist/docs/markdown/plugin-meetings.constants.mqa_inteval.md +0 -11
  465. package/dist/docs/markdown/plugin-meetings.constants.mqa_stats.md +0 -82
  466. package/dist/docs/markdown/plugin-meetings.constants.network_status.md +0 -15
  467. package/dist/docs/markdown/plugin-meetings.constants.network_type.md +0 -16
  468. package/dist/docs/markdown/plugin-meetings.constants.offline.md +0 -11
  469. package/dist/docs/markdown/plugin-meetings.constants.online.md +0 -11
  470. package/dist/docs/markdown/plugin-meetings.constants.participant.md +0 -11
  471. package/dist/docs/markdown/plugin-meetings.constants.participant_deltas.md +0 -22
  472. package/dist/docs/markdown/plugin-meetings.constants.password_status.md +0 -16
  473. package/dist/docs/markdown/plugin-meetings.constants.pc_bail_timeout.md +0 -11
  474. package/dist/docs/markdown/plugin-meetings.constants.peer_connection_state.md +0 -14
  475. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_in.md +0 -11
  476. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_out.md +0 -11
  477. package/dist/docs/markdown/plugin-meetings.constants.pstn_status.md +0 -18
  478. package/dist/docs/markdown/plugin-meetings.constants.quality_levels.md +0 -19
  479. package/dist/docs/markdown/plugin-meetings.constants.reachability.md +0 -15
  480. package/dist/docs/markdown/plugin-meetings.constants.ready.md +0 -11
  481. package/dist/docs/markdown/plugin-meetings.constants.reconnection.md +0 -19
  482. package/dist/docs/markdown/plugin-meetings.constants.recording_state.md +0 -16
  483. package/dist/docs/markdown/plugin-meetings.constants.remote.md +0 -11
  484. package/dist/docs/markdown/plugin-meetings.constants.resource.md +0 -15
  485. package/dist/docs/markdown/plugin-meetings.constants.retry_timeout.md +0 -11
  486. package/dist/docs/markdown/plugin-meetings.constants.roap.md +0 -22
  487. package/dist/docs/markdown/plugin-meetings.constants.self_roles.md +0 -14
  488. package/dist/docs/markdown/plugin-meetings.constants.send_dtmf_endpoint.md +0 -11
  489. package/dist/docs/markdown/plugin-meetings.constants.sendrecv.md +0 -11
  490. package/dist/docs/markdown/plugin-meetings.constants.share.md +0 -11
  491. package/dist/docs/markdown/plugin-meetings.constants.share_peer_connection_name.md +0 -11
  492. package/dist/docs/markdown/plugin-meetings.constants.share_status.md +0 -16
  493. package/dist/docs/markdown/plugin-meetings.constants.share_stopped_reason.md +0 -14
  494. package/dist/docs/markdown/plugin-meetings.constants.sip_uri.md +0 -11
  495. package/dist/docs/markdown/plugin-meetings.constants.stats.md +0 -16
  496. package/dist/docs/markdown/plugin-meetings.constants.type.md +0 -11
  497. package/dist/docs/markdown/plugin-meetings.constants.use_uri_lookup_false.md +0 -11
  498. package/dist/docs/markdown/plugin-meetings.constants.uuid_reg.md +0 -11
  499. package/dist/docs/markdown/plugin-meetings.constants.valid_email_address.md +0 -11
  500. package/dist/docs/markdown/plugin-meetings.constants.valid_pin.md +0 -11
  501. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_address.md +0 -11
  502. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_link.md +0 -11
  503. package/dist/docs/markdown/plugin-meetings.constants.video.md +0 -11
  504. package/dist/docs/markdown/plugin-meetings.constants.video_input.md +0 -11
  505. package/dist/docs/markdown/plugin-meetings.constants.video_resolutions.md +0 -24
  506. package/dist/docs/markdown/plugin-meetings.constants.video_status.md +0 -11
  507. package/dist/docs/markdown/plugin-meetings.constants.wbxappapi_service.md +0 -11
  508. package/dist/docs/markdown/plugin-meetings.constants.webex_dot_com.md +0 -11
  509. package/dist/docs/markdown/plugin-meetings.constants.whiteboard.md +0 -11
  510. package/dist/docs/markdown/plugin-meetings.constants.www_dot.md +0 -11
  511. package/dist/docs/markdown/plugin-meetings.md +0 -28
  512. package/dist/docs/markdown/plugin-meetings.meeting.default._constructor_.md +0 -21
  513. package/dist/docs/markdown/plugin-meetings.meeting.default.acknowledge.md +0 -28
  514. package/dist/docs/markdown/plugin-meetings.meeting.default.addmedia.md +0 -28
  515. package/dist/docs/markdown/plugin-meetings.meeting.default.admit.md +0 -32
  516. package/dist/docs/markdown/plugin-meetings.meeting.default.attrs.md +0 -11
  517. package/dist/docs/markdown/plugin-meetings.meeting.default.audio.md +0 -11
  518. package/dist/docs/markdown/plugin-meetings.meeting.default.breakouts.md +0 -11
  519. package/dist/docs/markdown/plugin-meetings.meeting.default.callevents.md +0 -11
  520. package/dist/docs/markdown/plugin-meetings.meeting.default.cancelphoneinvite.md +0 -30
  521. package/dist/docs/markdown/plugin-meetings.meeting.default.canupdatemedia.md +0 -19
  522. package/dist/docs/markdown/plugin-meetings.meeting.default.changevideolayout.md +0 -38
  523. package/dist/docs/markdown/plugin-meetings.meeting.default.clearmeetingdata.md +0 -13
  524. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalshare.md +0 -21
  525. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalstream.md +0 -21
  526. package/dist/docs/markdown/plugin-meetings.meeting.default.closepeerconnections.md +0 -21
  527. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotestream.md +0 -26
  528. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotetracks.md +0 -19
  529. package/dist/docs/markdown/plugin-meetings.meeting.default.controlsoptionsmanager.md +0 -11
  530. package/dist/docs/markdown/plugin-meetings.meeting.default.conversationurl.md +0 -11
  531. package/dist/docs/markdown/plugin-meetings.meeting.default.correlationid.md +0 -11
  532. package/dist/docs/markdown/plugin-meetings.meeting.default.createmediaconnection.md +0 -26
  533. package/dist/docs/markdown/plugin-meetings.meeting.default.decline.md +0 -28
  534. package/dist/docs/markdown/plugin-meetings.meeting.default.deferjoin.md +0 -11
  535. package/dist/docs/markdown/plugin-meetings.meeting.default.destination.md +0 -11
  536. package/dist/docs/markdown/plugin-meetings.meeting.default.destinationtype.md +0 -11
  537. package/dist/docs/markdown/plugin-meetings.meeting.default.deviceurl.md +0 -11
  538. package/dist/docs/markdown/plugin-meetings.meeting.default.dialindevicestatus.md +0 -11
  539. package/dist/docs/markdown/plugin-meetings.meeting.default.dialinurl.md +0 -11
  540. package/dist/docs/markdown/plugin-meetings.meeting.default.dialoutdevicestatus.md +0 -11
  541. package/dist/docs/markdown/plugin-meetings.meeting.default.dialouturl.md +0 -11
  542. package/dist/docs/markdown/plugin-meetings.meeting.default.disconnectphoneaudio.md +0 -19
  543. package/dist/docs/markdown/plugin-meetings.meeting.default.endcallinitiatejoinreq.md +0 -11
  544. package/dist/docs/markdown/plugin-meetings.meeting.default.endjoinreqresp.md +0 -11
  545. package/dist/docs/markdown/plugin-meetings.meeting.default.endlocalsdpgenremotesdprecvdelay.md +0 -11
  546. package/dist/docs/markdown/plugin-meetings.meeting.default.endmeetingforall.md +0 -21
  547. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfo.md +0 -29
  548. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfotimeoutid.md +0 -11
  549. package/dist/docs/markdown/plugin-meetings.meeting.default.floorgrantpending.md +0 -11
  550. package/dist/docs/markdown/plugin-meetings.meeting.default.forwardevent.md +0 -29
  551. package/dist/docs/markdown/plugin-meetings.meeting.default.getanalyzermetricsprepayload.md +0 -32
  552. package/dist/docs/markdown/plugin-meetings.meeting.default.getcallinitiatejoinreq.md +0 -17
  553. package/dist/docs/markdown/plugin-meetings.meeting.default.getdevices.md +0 -13
  554. package/dist/docs/markdown/plugin-meetings.meeting.default.getjoinreqresp.md +0 -17
  555. package/dist/docs/markdown/plugin-meetings.meeting.default.getlocalsdpgenremotesdprecvdelay.md +0 -17
  556. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediaconnectiondebugid.md +0 -15
  557. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediastreams.md +0 -15
  558. package/dist/docs/markdown/plugin-meetings.meeting.default.getmembers.md +0 -21
  559. package/dist/docs/markdown/plugin-meetings.meeting.default.getsendingmediadelayduration.md +0 -24
  560. package/dist/docs/markdown/plugin-meetings.meeting.default.getsetupdelayduration.md +0 -24
  561. package/dist/docs/markdown/plugin-meetings.meeting.default.getsupporteddevices.md +0 -16
  562. package/dist/docs/markdown/plugin-meetings.meeting.default.gettotaljmt.md +0 -17
  563. package/dist/docs/markdown/plugin-meetings.meeting.default.guest.md +0 -11
  564. package/dist/docs/markdown/plugin-meetings.meeting.default.handledatachannelurlchange.md +0 -26
  565. package/dist/docs/markdown/plugin-meetings.meeting.default.handleroapfailure.md +0 -13
  566. package/dist/docs/markdown/plugin-meetings.meeting.default.hasjoinedonce.md +0 -11
  567. package/dist/docs/markdown/plugin-meetings.meeting.default.haswebsocketconnected.md +0 -11
  568. package/dist/docs/markdown/plugin-meetings.meeting.default.hostid.md +0 -11
  569. package/dist/docs/markdown/plugin-meetings.meeting.default.id.md +0 -11
  570. package/dist/docs/markdown/plugin-meetings.meeting.default.inmeetingactions.md +0 -11
  571. package/dist/docs/markdown/plugin-meetings.meeting.default.invite.md +0 -33
  572. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioconnected.md +0 -21
  573. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudiomuted.md +0 -21
  574. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioself.md +0 -21
  575. package/dist/docs/markdown/plugin-meetings.meeting.default.islocalsharelive.md +0 -11
  576. package/dist/docs/markdown/plugin-meetings.meeting.default.ismultistream.md +0 -11
  577. package/dist/docs/markdown/plugin-meetings.meeting.default.isreactionssupported.md +0 -19
  578. package/dist/docs/markdown/plugin-meetings.meeting.default.isroapinprogress.md +0 -11
  579. package/dist/docs/markdown/plugin-meetings.meeting.default.issharing.md +0 -11
  580. package/dist/docs/markdown/plugin-meetings.meeting.default.istranscriptionsupported.md +0 -23
  581. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoconnected.md +0 -21
  582. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideomuted.md +0 -21
  583. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoself.md +0 -21
  584. package/dist/docs/markdown/plugin-meetings.meeting.default.join.md +0 -28
  585. package/dist/docs/markdown/plugin-meetings.meeting.default.joinedwith.md +0 -11
  586. package/dist/docs/markdown/plugin-meetings.meeting.default.joinwithmedia.md +0 -36
  587. package/dist/docs/markdown/plugin-meetings.meeting.default.keepalivetimerid.md +0 -11
  588. package/dist/docs/markdown/plugin-meetings.meeting.default.lastvideolayoutinfo.md +0 -11
  589. package/dist/docs/markdown/plugin-meetings.meeting.default.leave.md +0 -31
  590. package/dist/docs/markdown/plugin-meetings.meeting.default.lockmeeting.md +0 -21
  591. package/dist/docs/markdown/plugin-meetings.meeting.default.locusid.md +0 -11
  592. package/dist/docs/markdown/plugin-meetings.meeting.default.locusinfo.md +0 -11
  593. package/dist/docs/markdown/plugin-meetings.meeting.default.locusurl.md +0 -11
  594. package/dist/docs/markdown/plugin-meetings.meeting.default.md +0 -227
  595. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaconnections.md +0 -11
  596. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaid.md +0 -11
  597. package/dist/docs/markdown/plugin-meetings.meeting.default.medianegotiatedevent.md +0 -13
  598. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaproperties.md +0 -11
  599. package/dist/docs/markdown/plugin-meetings.meeting.default.mediarequestmanagers.md +0 -16
  600. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingfinitestatemachine.md +0 -11
  601. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfo.md +0 -11
  602. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfofailurereason.md +0 -11
  603. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingjoinurl.md +0 -11
  604. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingnumber.md +0 -11
  605. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingrequest.md +0 -11
  606. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingstate.md +0 -11
  607. package/dist/docs/markdown/plugin-meetings.meeting.default.members.md +0 -11
  608. package/dist/docs/markdown/plugin-meetings.meeting.default.movefrom.md +0 -28
  609. package/dist/docs/markdown/plugin-meetings.meeting.default.moveto.md +0 -28
  610. package/dist/docs/markdown/plugin-meetings.meeting.default.mute.md +0 -29
  611. package/dist/docs/markdown/plugin-meetings.meeting.default.muteaudio.md +0 -21
  612. package/dist/docs/markdown/plugin-meetings.meeting.default.mutevideo.md +0 -21
  613. package/dist/docs/markdown/plugin-meetings.meeting.default.namespace.md +0 -11
  614. package/dist/docs/markdown/plugin-meetings.meeting.default.networkqualitymonitor.md +0 -11
  615. package/dist/docs/markdown/plugin-meetings.meeting.default.networkstatus.md +0 -11
  616. package/dist/docs/markdown/plugin-meetings.meeting.default.options.md +0 -11
  617. package/dist/docs/markdown/plugin-meetings.meeting.default.orgid.md +0 -11
  618. package/dist/docs/markdown/plugin-meetings.meeting.default.owner.md +0 -11
  619. package/dist/docs/markdown/plugin-meetings.meeting.default.parsemeetinginfo.md +0 -34
  620. package/dist/docs/markdown/plugin-meetings.meeting.default.partner.md +0 -11
  621. package/dist/docs/markdown/plugin-meetings.meeting.default.passwordstatus.md +0 -11
  622. package/dist/docs/markdown/plugin-meetings.meeting.default.pauserecording.md +0 -21
  623. package/dist/docs/markdown/plugin-meetings.meeting.default.permissiontoken.md +0 -11
  624. package/dist/docs/markdown/plugin-meetings.meeting.default.policy.md +0 -11
  625. package/dist/docs/markdown/plugin-meetings.meeting.default.processnextqueuedmediaupdate.md +0 -13
  626. package/dist/docs/markdown/plugin-meetings.meeting.default.publishtracks.md +0 -33
  627. package/dist/docs/markdown/plugin-meetings.meeting.default.queuedmediaupdates.md +0 -11
  628. package/dist/docs/markdown/plugin-meetings.meeting.default.receiveslotmanager.md +0 -11
  629. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnect.md +0 -28
  630. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnectionmanager.md +0 -11
  631. package/dist/docs/markdown/plugin-meetings.meeting.default.recording.md +0 -11
  632. package/dist/docs/markdown/plugin-meetings.meeting.default.recordingcontroller.md +0 -11
  633. package/dist/docs/markdown/plugin-meetings.meeting.default.refreshcaptcha.md +0 -21
  634. package/dist/docs/markdown/plugin-meetings.meeting.default.remotemediamanager.md +0 -11
  635. package/dist/docs/markdown/plugin-meetings.meeting.default.remove.md +0 -28
  636. package/dist/docs/markdown/plugin-meetings.meeting.default.requiredcaptcha.md +0 -11
  637. package/dist/docs/markdown/plugin-meetings.meeting.default.resource.md +0 -11
  638. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceid.md +0 -11
  639. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceurl.md +0 -11
  640. package/dist/docs/markdown/plugin-meetings.meeting.default.resumerecording.md +0 -21
  641. package/dist/docs/markdown/plugin-meetings.meeting.default.roap.md +0 -11
  642. package/dist/docs/markdown/plugin-meetings.meeting.default.roapseq.md +0 -11
  643. package/dist/docs/markdown/plugin-meetings.meeting.default.selfid.md +0 -11
  644. package/dist/docs/markdown/plugin-meetings.meeting.default.senddtmf.md +0 -28
  645. package/dist/docs/markdown/plugin-meetings.meeting.default.sendreaction.md +0 -29
  646. package/dist/docs/markdown/plugin-meetings.meeting.default.setdisallowunmute.md +0 -26
  647. package/dist/docs/markdown/plugin-meetings.meeting.default.setendcallinitiatejoinreq.md +0 -17
  648. package/dist/docs/markdown/plugin-meetings.meeting.default.setendjoinreqresp.md +0 -17
  649. package/dist/docs/markdown/plugin-meetings.meeting.default.setendlocalsdpgenremotesdprecvdelay.md +0 -17
  650. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsendingmediadelay.md +0 -24
  651. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsetupdelay.md +0 -24
  652. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalsharetrack.md +0 -28
  653. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocaltracks.md +0 -28
  654. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalvideoquality.md +0 -26
  655. package/dist/docs/markdown/plugin-meetings.meeting.default.setmeetingquality.md +0 -31
  656. package/dist/docs/markdown/plugin-meetings.meeting.default.setmercurylistener.md +0 -21
  657. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteall.md +0 -28
  658. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteonentry.md +0 -26
  659. package/dist/docs/markdown/plugin-meetings.meeting.default.setremotequalitylevel.md +0 -26
  660. package/dist/docs/markdown/plugin-meetings.meeting.default.setsipuri.md +0 -26
  661. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartcallinitiatejoinreq.md +0 -17
  662. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartjoinreqresp.md +0 -17
  663. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartlocalsdpgenremotesdprecvdelay.md +0 -17
  664. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsendingmediadelay.md +0 -24
  665. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsetupdelay.md +0 -24
  666. package/dist/docs/markdown/plugin-meetings.meeting.default.setupbreakoutslistener.md +0 -19
  667. package/dist/docs/markdown/plugin-meetings.meeting.default.setupmediaconnectionlisteners.md +0 -11
  668. package/dist/docs/markdown/plugin-meetings.meeting.default.setupstatsanalyzereventhandlers.md +0 -13
  669. package/dist/docs/markdown/plugin-meetings.meeting.default.sharescreen.md +0 -32
  670. package/dist/docs/markdown/plugin-meetings.meeting.default.sharestatus.md +0 -11
  671. package/dist/docs/markdown/plugin-meetings.meeting.default.sipuri.md +0 -11
  672. package/dist/docs/markdown/plugin-meetings.meeting.default.startcallinitiatejoinreq.md +0 -11
  673. package/dist/docs/markdown/plugin-meetings.meeting.default.startjoinreqresp.md +0 -11
  674. package/dist/docs/markdown/plugin-meetings.meeting.default.startkeepalive.md +0 -13
  675. package/dist/docs/markdown/plugin-meetings.meeting.default.startlocalsdpgenremotesdprecvdelay.md +0 -11
  676. package/dist/docs/markdown/plugin-meetings.meeting.default.startrecording.md +0 -21
  677. package/dist/docs/markdown/plugin-meetings.meeting.default.startwhiteboardshare.md +0 -29
  678. package/dist/docs/markdown/plugin-meetings.meeting.default.state.md +0 -11
  679. package/dist/docs/markdown/plugin-meetings.meeting.default.statsanalyzer.md +0 -11
  680. package/dist/docs/markdown/plugin-meetings.meeting.default.stopkeepalive.md +0 -13
  681. package/dist/docs/markdown/plugin-meetings.meeting.default.stopreceivingtranscription.md +0 -19
  682. package/dist/docs/markdown/plugin-meetings.meeting.default.stoprecording.md +0 -21
  683. package/dist/docs/markdown/plugin-meetings.meeting.default.stopshare.md +0 -28
  684. package/dist/docs/markdown/plugin-meetings.meeting.default.stopwhiteboardshare.md +0 -28
  685. package/dist/docs/markdown/plugin-meetings.meeting.default.togglereactions.md +0 -28
  686. package/dist/docs/markdown/plugin-meetings.meeting.default.transcription.md +0 -11
  687. package/dist/docs/markdown/plugin-meetings.meeting.default.transfer.md +0 -29
  688. package/dist/docs/markdown/plugin-meetings.meeting.default.type.md +0 -11
  689. package/dist/docs/markdown/plugin-meetings.meeting.default.unlockmeeting.md +0 -21
  690. package/dist/docs/markdown/plugin-meetings.meeting.default.unmuteaudio.md +0 -21
  691. package/dist/docs/markdown/plugin-meetings.meeting.default.unmutevideo.md +0 -21
  692. package/dist/docs/markdown/plugin-meetings.meeting.default.unpublishtracks.md +0 -26
  693. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalsharetrack.md +0 -21
  694. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalvideotrack.md +0 -21
  695. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetpeerconnections.md +0 -21
  696. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotestream.md +0 -26
  697. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotetracks.md +0 -19
  698. package/dist/docs/markdown/plugin-meetings.meeting.default.updateaudio.md +0 -34
  699. package/dist/docs/markdown/plugin-meetings.meeting.default.updatellmconnection.md +0 -19
  700. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemedia.md +0 -32
  701. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemediaconnections.md +0 -11
  702. package/dist/docs/markdown/plugin-meetings.meeting.default.updateshare.md +0 -35
  703. package/dist/docs/markdown/plugin-meetings.meeting.default.updatevideo.md +0 -34
  704. package/dist/docs/markdown/plugin-meetings.meeting.default.uploadlogs.md +0 -28
  705. package/dist/docs/markdown/plugin-meetings.meeting.default.usephoneaudio.md +0 -28
  706. package/dist/docs/markdown/plugin-meetings.meeting.default.userid.md +0 -11
  707. package/dist/docs/markdown/plugin-meetings.meeting.default.verifypassword.md +0 -35
  708. package/dist/docs/markdown/plugin-meetings.meeting.default.video.md +0 -11
  709. package/dist/docs/markdown/plugin-meetings.meeting.default.wirelessshare.md +0 -11
  710. package/dist/docs/markdown/plugin-meetings.meeting.md +0 -18
  711. package/dist/docs/markdown/plugin-meetings.meeting.media_update_type.md +0 -17
  712. package/dist/docs/markdown/plugin-meetings.meetings._constructor_.md +0 -22
  713. package/dist/docs/markdown/plugin-meetings.meetings.create.md +0 -30
  714. package/dist/docs/markdown/plugin-meetings.meetings.fetchuserpreferredwebexsite.md +0 -19
  715. package/dist/docs/markdown/plugin-meetings.meetings.geohintinfo.md +0 -11
  716. package/dist/docs/markdown/plugin-meetings.meetings.getallmeetings.md +0 -31
  717. package/dist/docs/markdown/plugin-meetings.meetings.getgeohint.md +0 -19
  718. package/dist/docs/markdown/plugin-meetings.meetings.getlogger.md +0 -19
  719. package/dist/docs/markdown/plugin-meetings.meetings.getmeetingbytype.md +0 -29
  720. package/dist/docs/markdown/plugin-meetings.meetings.getpersonalmeetingroom.md +0 -21
  721. package/dist/docs/markdown/plugin-meetings.meetings.getreachability.md +0 -21
  722. package/dist/docs/markdown/plugin-meetings.meetings.getscheduledmeetings.md +0 -19
  723. package/dist/docs/markdown/plugin-meetings.meetings.loggerrequest.md +0 -11
  724. package/dist/docs/markdown/plugin-meetings.meetings.md +0 -57
  725. package/dist/docs/markdown/plugin-meetings.meetings.media.md +0 -11
  726. package/dist/docs/markdown/plugin-meetings.meetings.meetingcollection.md +0 -11
  727. package/dist/docs/markdown/plugin-meetings.meetings.meetinginfo.md +0 -11
  728. package/dist/docs/markdown/plugin-meetings.meetings.namespace.md +0 -11
  729. package/dist/docs/markdown/plugin-meetings.meetings.personalmeetingroom.md +0 -11
  730. package/dist/docs/markdown/plugin-meetings.meetings.preferredwebexsite.md +0 -11
  731. package/dist/docs/markdown/plugin-meetings.meetings.reachability.md +0 -11
  732. package/dist/docs/markdown/plugin-meetings.meetings.register.md +0 -21
  733. package/dist/docs/markdown/plugin-meetings.meetings.registered.md +0 -11
  734. package/dist/docs/markdown/plugin-meetings.meetings.request.md +0 -11
  735. package/dist/docs/markdown/plugin-meetings.meetings.setreachability.md +0 -21
  736. package/dist/docs/markdown/plugin-meetings.meetings.startreachability.md +0 -21
  737. package/dist/docs/markdown/plugin-meetings.meetings.syncmeetings.md +0 -21
  738. package/dist/docs/markdown/plugin-meetings.meetings.unregister.md +0 -21
  739. package/dist/docs/markdown/plugin-meetings.meetings.uploadlogs.md +0 -34
  740. package/dist/docs/markdown/plugin-meetings.reactions.md +0 -13
  741. package/dist/docs/markdown/plugin-meetings.reactions.reactions.md +0 -11
  742. package/dist/docs/markdown/plugin-meetings.reactions.skintones.md +0 -11
  743. package/dist/docs/markdown/plugin-meetings.remotemedia.getmaxfs.md +0 -26
  744. package/dist/docs/markdown/plugin-meetings.remotemedia.md +0 -31
  745. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia._constructor_.md +0 -22
  746. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.csi.md +0 -13
  747. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.id.md +0 -11
  748. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.md +0 -40
  749. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.mediatype.md +0 -13
  750. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.memberid.md +0 -13
  751. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.setsizehint.md +0 -25
  752. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.sourcestate.md +0 -13
  753. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.stream.md +0 -13
  754. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaevents.md +0 -14
  755. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaid.md +0 -11
  756. package/dist/docs/markdown/plugin-meetings.remotemedia.remotevideoresolution.md +0 -11
  757. package/dist/docs/markdown/plugin-meetings.remotemediagroup.md +0 -12
  758. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup._constructor_.md +0 -24
  759. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.getremotemedia.md +0 -26
  760. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.includes.md +0 -27
  761. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.ispinned.md +0 -22
  762. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.md +0 -28
  763. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.pin.md +0 -25
  764. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.unpin.md +0 -24
  765. package/dist/docs/markdown/plugin-meetings.triggerproxy.md +0 -11
  766. package/dist/docs/metadata/index.api.json +0 -14144
  767. package/dist/docs/metadata/index.api.md +0 -2075
  768. package/dist/docs/metadata/index.d.ts +0 -5594
  769. package/dist/index.d.ts +0 -4
  770. package/dist/locus-info/controlsUtils.d.ts +0 -2
  771. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  772. package/dist/locus-info/fullState.d.ts +0 -2
  773. package/dist/locus-info/hostUtils.d.ts +0 -2
  774. package/dist/locus-info/index.d.ts +0 -269
  775. package/dist/locus-info/infoUtils.d.ts +0 -2
  776. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  777. package/dist/locus-info/parser.d.ts +0 -212
  778. package/dist/locus-info/selfUtils.d.ts +0 -2
  779. package/dist/media/index.d.ts +0 -32
  780. package/dist/media/properties.d.ts +0 -108
  781. package/dist/media/util.d.ts +0 -2
  782. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  783. package/dist/meeting/effectsState.d.ts +0 -42
  784. package/dist/meeting/effectsState.js +0 -260
  785. package/dist/meeting/effectsState.js.map +0 -1
  786. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  787. package/dist/meeting/index.d.ts +0 -1621
  788. package/dist/meeting/muteState.d.ts +0 -116
  789. package/dist/meeting/request.d.ts +0 -255
  790. package/dist/meeting/state.d.ts +0 -9
  791. package/dist/meeting/util.d.ts +0 -2
  792. package/dist/meeting-info/collection.d.ts +0 -20
  793. package/dist/meeting-info/index.d.ts +0 -57
  794. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  795. package/dist/meeting-info/request.d.ts +0 -22
  796. package/dist/meeting-info/util.d.ts +0 -2
  797. package/dist/meeting-info/utilv2.d.ts +0 -2
  798. package/dist/meetings/collection.d.ts +0 -23
  799. package/dist/meetings/index.d.ts +0 -298
  800. package/dist/meetings/request.d.ts +0 -27
  801. package/dist/meetings/util.d.ts +0 -18
  802. package/dist/member/index.d.ts +0 -145
  803. package/dist/member/util.d.ts +0 -2
  804. package/dist/members/collection.d.ts +0 -24
  805. package/dist/members/index.d.ts +0 -298
  806. package/dist/members/request.d.ts +0 -50
  807. package/dist/members/util.d.ts +0 -2
  808. package/dist/metrics/config.d.ts +0 -169
  809. package/dist/metrics/config.js +0 -291
  810. package/dist/metrics/config.js.map +0 -1
  811. package/dist/metrics/constants.d.ts +0 -57
  812. package/dist/metrics/index.d.ts +0 -152
  813. package/dist/networkQualityMonitor/index.d.ts +0 -70
  814. package/dist/peer-connection-manager/index.d.ts +0 -6
  815. package/dist/peer-connection-manager/index.js +0 -671
  816. package/dist/peer-connection-manager/index.js.map +0 -1
  817. package/dist/peer-connection-manager/util.d.ts +0 -6
  818. package/dist/peer-connection-manager/util.js +0 -110
  819. package/dist/peer-connection-manager/util.js.map +0 -1
  820. package/dist/personal-meeting-room/index.d.ts +0 -47
  821. package/dist/personal-meeting-room/request.d.ts +0 -14
  822. package/dist/personal-meeting-room/util.d.ts +0 -2
  823. package/dist/plugin-meetings.d.ts +0 -5399
  824. package/dist/reachability/index.d.ts +0 -139
  825. package/dist/reachability/request.d.ts +0 -35
  826. package/dist/reactions/reactions.d.ts +0 -4
  827. package/dist/reactions/reactions.type.d.ts +0 -32
  828. package/dist/reconnection-manager/index.d.ts +0 -112
  829. package/dist/recording-controller/enums.d.ts +0 -7
  830. package/dist/recording-controller/index.d.ts +0 -193
  831. package/dist/recording-controller/util.d.ts +0 -13
  832. package/dist/roap/collection.d.ts +0 -10
  833. package/dist/roap/collection.js +0 -63
  834. package/dist/roap/collection.js.map +0 -1
  835. package/dist/roap/handler.d.ts +0 -47
  836. package/dist/roap/handler.js +0 -279
  837. package/dist/roap/handler.js.map +0 -1
  838. package/dist/roap/index.d.ts +0 -116
  839. package/dist/roap/request.d.ts +0 -35
  840. package/dist/roap/state.d.ts +0 -9
  841. package/dist/roap/state.js +0 -127
  842. package/dist/roap/state.js.map +0 -1
  843. package/dist/roap/turnDiscovery.d.ts +0 -67
  844. package/dist/roap/util.d.ts +0 -2
  845. package/dist/roap/util.js +0 -76
  846. package/dist/roap/util.js.map +0 -1
  847. package/dist/statsAnalyzer/global.d.ts +0 -126
  848. package/dist/statsAnalyzer/index.d.ts +0 -190
  849. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  850. package/dist/transcription/index.d.ts +0 -64
  851. package/dist/types/meeting/effectsState.d.ts +0 -42
  852. package/dist/types/metrics/config.d.ts +0 -171
  853. package/dist/types/tsdoc-metadata.json +0 -11
  854. package/src/metrics/config.ts +0 -487
@@ -1,7 +1,7 @@
1
1
  import sinon from 'sinon';
2
2
  import {assert} from '@webex/test-helper-chai';
3
3
  import MeetingUtil from '@webex/plugin-meetings/src/meeting/util';
4
- import {createMuteState} from '@webex/plugin-meetings/src/meeting/muteState';
4
+ import {createMuteState, MuteState} from '@webex/plugin-meetings/src/meeting/muteState';
5
5
  import PermissionError from '@webex/plugin-meetings/src/common/errors/permission';
6
6
  import {AUDIO, VIDEO} from '@webex/plugin-meetings/src/constants';
7
7
 
@@ -15,20 +15,21 @@ describe('plugin-meetings', () => {
15
15
 
16
16
  const fakeLocus = {info: 'this is a fake locus'};
17
17
 
18
- const createFakeLocalTrack = (id) => {
18
+ const createFakeLocalStream = (id, muted) => {
19
19
  return {
20
20
  id,
21
- setMuted: sinon.stub(),
22
21
  setServerMuted: sinon.stub(),
23
22
  setUnmuteAllowed: sinon.stub(),
24
- };
23
+ setMuted: sinon.stub(),
24
+ muted,
25
+ };
25
26
  };
26
27
 
27
- beforeEach(() => {
28
+ beforeEach(async () => {
28
29
  meeting = {
29
30
  mediaProperties: {
30
- audioTrack: createFakeLocalTrack('fake audio track'),
31
- videoTrack: createFakeLocalTrack('fake video track'),
31
+ audioStream: createFakeLocalStream('fake audio stream', false),
32
+ videoStream: createFakeLocalStream('fake video stream', false),
32
33
  },
33
34
  remoteMuted: false,
34
35
  unmuteAllowed: true,
@@ -36,7 +37,7 @@ describe('plugin-meetings', () => {
36
37
  unmuteVideoAllowed: true,
37
38
 
38
39
  locusInfo: {
39
- onFullLocus: sinon.stub(),
40
+ handleLocusDelta: sinon.stub(),
40
41
  },
41
42
  members: {
42
43
  selfId: 'fake self id',
@@ -44,12 +45,14 @@ describe('plugin-meetings', () => {
44
45
  },
45
46
  };
46
47
 
47
- audio = createMuteState(AUDIO, meeting, {sendAudio: true}, true);
48
- video = createMuteState(VIDEO, meeting, {sendVideo: true}, true);
49
-
50
48
  originalRemoteUpdateAudioVideo = MeetingUtil.remoteUpdateAudioVideo;
51
49
 
52
50
  MeetingUtil.remoteUpdateAudioVideo = sinon.stub().resolves(fakeLocus);
51
+
52
+ audio = createMuteState(AUDIO, meeting, true);
53
+ video = createMuteState(VIDEO, meeting, true);
54
+
55
+ await testUtils.flushPromises();
53
56
  });
54
57
 
55
58
  afterEach(() => {
@@ -57,33 +60,28 @@ describe('plugin-meetings', () => {
57
60
  });
58
61
 
59
62
  describe('mute state library', () => {
60
- it('does not create an audio instance if we are not sending audio', async () => {
61
- assert.isNull(createMuteState(AUDIO, meeting, {sendAudio: false}, true));
62
- assert.isNull(createMuteState(AUDIO, meeting, {}, true));
63
- });
64
-
65
- it('does not create a video instance if we are not sending video', async () => {
66
- assert.isNull(createMuteState(VIDEO, meeting, {sendVideo: false}));
67
- assert.isNull(createMuteState(VIDEO, meeting, {}));
68
- });
69
-
70
63
  it('takes into account current remote mute status when instantiated', async () => {
71
64
  // simulate being already remote muted
72
65
  meeting.remoteMuted = true;
73
- // create a new MuteState intance
74
- audio = createMuteState(AUDIO, meeting, {sendAudio: true});
66
+
67
+ // create a new MuteState instance
68
+ audio = createMuteState(AUDIO, meeting, true);
69
+
70
+ await testUtils.flushPromises();
75
71
 
76
72
  assert.isTrue(audio.isMuted());
77
- assert.isFalse(audio.isSelf());
73
+ assert.isTrue(audio.isRemotelyMuted());
78
74
 
79
75
  // now check the opposite case
80
76
  meeting.remoteMuted = false;
81
77
 
82
- // create a new MuteState intance
83
- audio = createMuteState(AUDIO, meeting, {sendAudio: true});
78
+ // create a new MuteState instance
79
+ audio = createMuteState(AUDIO, meeting, true);
84
80
 
85
- assert.isFalse(audio.isMuted());
86
- assert.isFalse(audio.isSelf());
81
+ await testUtils.flushPromises();
82
+
83
+ assert.isTrue(audio.isMuted()); // because we start with no stream
84
+ assert.isFalse(audio.isRemotelyMuted());
87
85
  });
88
86
 
89
87
  it('initialises correctly for video', async () => {
@@ -92,100 +90,59 @@ describe('plugin-meetings', () => {
92
90
  meeting.unmuteVideoAllowed = false;
93
91
 
94
92
  // create a new video MuteState instance
95
- video = createMuteState(VIDEO, meeting, {sendVideo: true});
93
+ video = createMuteState(VIDEO, meeting, true);
96
94
 
97
- assert.isFalse(video.isMuted());
95
+ await testUtils.flushPromises();
96
+
97
+ assert.isTrue(video.isMuted()); // because we start with no stream
98
+ assert.isFalse(video.isRemotelyMuted());
98
99
  assert.isFalse(video.state.server.remoteMute);
99
100
  assert.isFalse(video.state.server.unmuteAllowed);
100
101
  });
101
102
 
102
103
  it('takes remote mute into account when reporting current state', async () => {
103
- assert.isFalse(audio.isMuted());
104
+ assert.isFalse(audio.isRemotelyMuted());
104
105
 
105
106
  // simulate remote mute
106
107
  audio.handleServerRemoteMuteUpdate(meeting, true, true);
107
108
 
108
- assert.isTrue(audio.isMuted());
109
- assert.isFalse(audio.isSelf());
109
+ assert.isTrue(audio.isRemotelyMuted());
110
110
  });
111
111
 
112
112
  it('does local unmute if localAudioUnmuteRequired is received', async () => {
113
- // first we need to mute
114
- await audio.handleClientRequest(meeting, true);
113
+ // first we need to mute have the local stream muted
114
+ meeting.mediaProperties.audioStream.muted = true;
115
+ audio.handleLocalStreamChange(meeting);
115
116
 
116
117
  assert.isTrue(audio.isMuted());
117
- assert.isTrue(audio.isSelf());
118
118
 
119
119
  MeetingUtil.remoteUpdateAudioVideo.resetHistory();
120
120
 
121
121
  // now simulate server requiring us to locally unmute
122
122
  audio.handleServerLocalUnmuteRequired(meeting);
123
+
123
124
  await testUtils.flushPromises();
124
125
 
125
- // check that local track was unmuted
126
- assert.calledWith(meeting.mediaProperties.audioTrack.setMuted, false);
127
-
128
- // and local unmute was sent to server
129
- assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
130
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, false, undefined, meeting);
131
-
132
- assert.isFalse(audio.isMuted());
133
- assert.isFalse(audio.isSelf());
134
- });
135
-
136
- it('rejects client request in progress if localAudioUnmuteRequired is received', async () => {
137
- let clientPromiseResolved = false;
138
- let clientPromiseRejected = false;
139
-
140
- // first we need to mute and make that request last forever
141
- let serverResponseResolve;
142
-
143
- MeetingUtil.remoteUpdateAudioVideo = sinon.stub().returns(
144
- new Promise((resolve) => {
145
- serverResponseResolve = resolve;
146
- })
126
+ // check that local stream was unmuted
127
+ assert.calledWith(
128
+ meeting.mediaProperties.audioStream.setServerMuted,
129
+ false,
130
+ 'localUnmuteRequired'
147
131
  );
148
132
 
149
- audio
150
- .handleClientRequest(meeting, true)
151
- .then(() => {
152
- clientPromiseResolved = true;
153
- })
154
- .catch(() => {
155
- clientPromiseRejected = true;
156
- });
157
-
158
- MeetingUtil.remoteUpdateAudioVideo.resetHistory();
159
-
160
- // now simulate server requiring us to locally unmute
161
- audio.handleServerLocalUnmuteRequired(meeting);
162
- await testUtils.flushPromises();
163
-
164
- // the original client request should have been rejected by now
165
- assert.isTrue(clientPromiseRejected);
166
- assert.isFalse(clientPromiseResolved);
167
-
168
- // now make the server respond to the original mute request
169
- serverResponseResolve();
170
- await testUtils.flushPromises();
171
-
172
- // local unmute should be sent to server
133
+ // and local unmute was sent to server
173
134
  assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
174
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, false, undefined, meeting);
175
-
176
- // and local track should be unmuted
177
- assert.calledWith(meeting.mediaProperties.audioTrack.setMuted, false);
135
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, false, undefined);
178
136
 
179
137
  assert.isFalse(audio.isMuted());
180
- assert.isFalse(audio.isSelf());
181
138
  });
182
139
 
183
140
  it('does local video unmute if localVideoUnmuteRequired is received', async () => {
184
141
  // first we need to mute
185
- await video.handleClientRequest(meeting, true);
142
+ meeting.mediaProperties.videoStream.muted = true;
143
+ video.handleLocalStreamChange(meeting);
186
144
 
187
145
  assert.isTrue(video.isMuted());
188
- assert.isTrue(video.isSelf());
189
146
 
190
147
  MeetingUtil.remoteUpdateAudioVideo.resetHistory();
191
148
 
@@ -193,23 +150,31 @@ describe('plugin-meetings', () => {
193
150
  video.handleServerLocalUnmuteRequired(meeting);
194
151
  await testUtils.flushPromises();
195
152
 
196
- // check that local track was unmuted
197
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, false);
153
+ // check that local stream was unmuted
154
+ assert.calledWith(
155
+ meeting.mediaProperties.videoStream.setServerMuted,
156
+ false,
157
+ 'localUnmuteRequired'
158
+ );
198
159
 
199
160
  // and local unmute was sent to server
200
161
  assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
201
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, undefined, false, meeting);
162
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, undefined, false);
202
163
 
203
164
  assert.isFalse(video.isMuted());
204
- assert.isFalse(video.isSelf());
205
165
  });
206
166
 
207
167
  describe('#isLocallyMuted()', () => {
208
168
  it('does not consider remote mute status for audio', async () => {
209
- // simulate being already remote muted
169
+ // simulate being already remote muted and locally unmuted
210
170
  meeting.remoteMuted = true;
211
- // create a new MuteState intance
212
- audio = createMuteState(AUDIO, meeting, {sendAudio: true});
171
+ meeting.mediaProperties.audioStream.muted = false;
172
+
173
+ // create a new MuteState instance
174
+ audio = createMuteState(AUDIO, meeting, true);
175
+ audio.handleLocalStreamChange(meeting);
176
+
177
+ await testUtils.flushPromises();
213
178
 
214
179
  assert.isFalse(audio.isLocallyMuted());
215
180
  });
@@ -217,62 +182,48 @@ describe('plugin-meetings', () => {
217
182
  it('does not consider remote mute status for video', async () => {
218
183
  // simulate being already remote muted
219
184
  meeting.remoteVideoMuted = true;
220
- // create a new MuteState intance
221
- video = createMuteState(VIDEO, meeting, {sendVideo: true});
185
+ meeting.mediaProperties.videoStream.muted = false;
186
+
187
+ // create a new MuteState instance
188
+ video = createMuteState(VIDEO, meeting, true);
189
+ video.handleLocalStreamChange(meeting);
190
+
191
+ await testUtils.flushPromises();
222
192
 
223
193
  assert.isFalse(video.isLocallyMuted());
224
194
  });
225
195
  });
226
196
 
227
- describe('#handleClientRequest', () => {
228
- it('disables/enables the local audio track when audio is muted/unmuted', async () => {
229
- // mute
230
- audio.handleClientRequest(meeting, true);
231
- assert.calledWith(meeting.mediaProperties.audioTrack.setMuted, true);
232
-
233
- // even when calling mute when it's already muted should still call setMuted
234
- audio.handleClientRequest(meeting, true);
235
- assert.calledWith(meeting.mediaProperties.audioTrack.setMuted, true);
197
+ describe('handling local stream mute events', () => {
198
+ beforeEach(async () => {
199
+ audio.handleLocalStreamChange(meeting);
200
+ video.handleLocalStreamChange(meeting);
236
201
 
237
- // unmute
238
- audio.handleClientRequest(meeting, false);
239
- assert.calledWith(meeting.mediaProperties.audioTrack.setMuted, false);
240
-
241
- // even when calling unmute when it's already unmuted should still call setMuted
242
- audio.handleClientRequest(meeting, false);
243
- assert.calledWith(meeting.mediaProperties.audioTrack.setMuted, false);
202
+ await testUtils.flushPromises();
244
203
  });
245
204
 
246
- it('disables/enables the local video track when video is muted/unmuted', async () => {
247
- // mute
248
- video.handleClientRequest(meeting, true);
249
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, true);
205
+ const simulateAudioMuteChange = async (muteValue) => {
206
+ meeting.mediaProperties.audioStream.muted = muteValue;
207
+ audio.handleLocalStreamMuteStateChange(meeting, muteValue);
250
208
 
251
- // even when calling mute when it's already muted should still call setMuted
252
- video.handleClientRequest(meeting, false);
253
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, true);
209
+ await testUtils.flushPromises();
210
+ };
254
211
 
255
- // unmute
256
- video.handleClientRequest(meeting, false);
257
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, false);
212
+ const simulateVideoMuteChange = async (muteValue) => {
213
+ meeting.mediaProperties.videoStream.muted = muteValue;
214
+ video.handleLocalStreamMuteStateChange(meeting, muteValue);
258
215
 
259
- // even when calling unmute when it's already unmuted should still call setMuted
260
- video.handleClientRequest(meeting, false);
261
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, false);
262
- });
216
+ await testUtils.flushPromises();
217
+ };
263
218
 
264
- it('returns correct value in isMuted()/isSelf() methods after client mute/unmute requests', async () => {
219
+ it('returns correct value in isMuted() methods after local stream is muted/unmuted', async () => {
265
220
  // mute
266
- audio.handleClientRequest(meeting, true);
267
-
221
+ await simulateAudioMuteChange(true);
268
222
  assert.isTrue(audio.isMuted());
269
- assert.isTrue(audio.isSelf());
270
223
 
271
224
  // unmute
272
- audio.handleClientRequest(meeting, false);
273
-
225
+ await simulateAudioMuteChange(false);
274
226
  assert.isFalse(audio.isMuted());
275
- assert.isFalse(audio.isSelf());
276
227
  });
277
228
 
278
229
  it('does remote unmute when unmuting and remote mute is on', async () => {
@@ -280,14 +231,13 @@ describe('plugin-meetings', () => {
280
231
  audio.handleServerRemoteMuteUpdate(meeting, true, true);
281
232
 
282
233
  // unmute
283
- await audio.handleClientRequest(meeting, false);
234
+ await simulateAudioMuteChange(false);
284
235
 
285
236
  // check that remote unmute was sent to server
286
237
  assert.calledOnce(meeting.members.muteMember);
287
238
  assert.calledWith(meeting.members.muteMember, meeting.members.selfId, false, true);
288
239
 
289
240
  assert.isFalse(audio.isMuted());
290
- assert.isFalse(audio.isSelf());
291
241
  });
292
242
 
293
243
  it('does video remote unmute when unmuting and remote mute is on', async () => {
@@ -295,14 +245,13 @@ describe('plugin-meetings', () => {
295
245
  video.handleServerRemoteMuteUpdate(meeting, true, true);
296
246
 
297
247
  // unmute
298
- await video.handleClientRequest(meeting, false);
248
+ await simulateVideoMuteChange(false);
299
249
 
300
250
  // check that remote unmute was sent to server
301
251
  assert.calledOnce(meeting.members.muteMember);
302
252
  assert.calledWith(meeting.members.muteMember, meeting.members.selfId, false, false);
303
253
 
304
254
  assert.isFalse(video.isMuted());
305
- assert.isFalse(video.isSelf());
306
255
  });
307
256
 
308
257
  it('does not video remote unmute when unmuting and remote mute is off', async () => {
@@ -310,60 +259,43 @@ describe('plugin-meetings', () => {
310
259
  video.handleServerRemoteMuteUpdate(meeting, false, true);
311
260
 
312
261
  // unmute
313
- await video.handleClientRequest(meeting, false);
262
+ await simulateVideoMuteChange(false);
314
263
 
315
- // check that remote unmute was sent to server
264
+ // check that remote unmute was not sent to server
316
265
  assert.notCalled(meeting.members.muteMember);
317
266
 
318
267
  assert.isFalse(video.isMuted());
319
- assert.isFalse(video.isSelf());
320
268
  });
321
269
 
322
- it('resolves client request promise once the server is updated', async () => {
323
- let clientPromiseResolved = false;
270
+ it('calls setServerMuted with "clientRequestFailed" when server request for local mute fails', async () => {
271
+ MeetingUtil.remoteUpdateAudioVideo = sinon.stub().rejects(new Error('fake error'));
324
272
 
325
- let serverResponseResolve;
273
+ await simulateAudioMuteChange(true);
326
274
 
327
- MeetingUtil.remoteUpdateAudioVideo = sinon.stub().returns(
328
- new Promise((resolve) => {
329
- serverResponseResolve = resolve;
330
- })
275
+ assert.calledOnceWithExactly(
276
+ meeting.mediaProperties.audioStream.setServerMuted,
277
+ false,
278
+ 'clientRequestFailed'
331
279
  );
332
-
333
- audio.handleClientRequest(meeting, true).then(() => {
334
- clientPromiseResolved = true;
335
- });
336
-
337
- // do a small delay to make sure that the client promise doesn't resolve in that time
338
- await testUtils.waitUntil(200);
339
- assert.isFalse(clientPromiseResolved);
340
-
341
- // now allow the server response to arrive, this should trigger the client promise to get resolved
342
- serverResponseResolve();
343
- await testUtils.flushPromises();
344
-
345
- assert.isTrue(clientPromiseResolved);
346
- });
347
-
348
- it('rejects client request promise if server request for local mute fails', async () => {
349
- MeetingUtil.remoteUpdateAudioVideo = sinon.stub().returns(
350
- new Promise((resolve, reject) => {
351
- reject();
352
- })
353
- );
354
-
355
- assert.isRejected(audio.handleClientRequest(meeting, true));
356
280
  });
357
281
 
358
- it('rejects client request promise if server request for remote mute fails', async () => {
282
+ it('calls setServerMuted with "clientRequestFailed" if server request for remote mute fails', async () => {
359
283
  // we only send remote mute requests when we're unmuting, so first we need to do a remote mute
360
284
  audio.handleServerRemoteMuteUpdate(meeting, true, true);
361
285
 
286
+ await testUtils.flushPromises();
287
+
362
288
  // setup the stub to simulate server error response
363
289
  meeting.members.muteMember = sinon.stub().rejects();
290
+ meeting.mediaProperties.audioStream.setServerMuted.resetHistory();
291
+
292
+ await simulateAudioMuteChange(false);
364
293
 
365
- // try to unmute - it should fail
366
- await assert.isRejected(audio.handleClientRequest(meeting, false));
294
+ assert.calledOnceWithExactly(
295
+ meeting.mediaProperties.audioStream.setServerMuted,
296
+ true,
297
+ 'clientRequestFailed'
298
+ );
367
299
 
368
300
  // even though remote mute update in the server failed, isMuted() should still return true,
369
301
  // because of local mute
@@ -379,12 +311,13 @@ describe('plugin-meetings', () => {
379
311
  })
380
312
  );
381
313
 
382
- // simulate many client requests, with the last one matching the initial one
383
- audio.handleClientRequest(meeting, true);
384
- audio.handleClientRequest(meeting, false);
385
- audio.handleClientRequest(meeting, true);
386
- audio.handleClientRequest(meeting, false);
387
- audio.handleClientRequest(meeting, true);
314
+ // the stream is initially unmuted
315
+ // simulate many mute changes with the last one matching the first one
316
+ await simulateAudioMuteChange(true);
317
+ await simulateAudioMuteChange(false);
318
+ await simulateAudioMuteChange(true);
319
+ await simulateAudioMuteChange(false);
320
+ await simulateAudioMuteChange(true);
388
321
 
389
322
  // so far there should have been only 1 request to server (because our stub hasn't resolved yet
390
323
  // and MuteState sends only 1 server request at a time)
@@ -399,7 +332,7 @@ describe('plugin-meetings', () => {
399
332
  assert.notCalled(MeetingUtil.remoteUpdateAudioVideo);
400
333
  });
401
334
 
402
- it('queues up server requests when multiple client requests are received', async () => {
335
+ it('queues up server requests when multiple mute changes happen to local stream', async () => {
403
336
  let serverResponseResolve;
404
337
 
405
338
  MeetingUtil.remoteUpdateAudioVideo = sinon.stub().returns(
@@ -408,308 +341,286 @@ describe('plugin-meetings', () => {
408
341
  })
409
342
  );
410
343
 
411
- let firstClientPromiseResolved = false;
412
- let secondClientPromiseResolved = false;
413
-
414
344
  // 2 client requests, one after another without waiting for first one to resolve
415
- audio.handleClientRequest(meeting, true).then(() => {
416
- firstClientPromiseResolved = true;
417
- });
418
- audio.handleClientRequest(meeting, false).then(() => {
419
- secondClientPromiseResolved = true;
420
- });
421
-
422
- await testUtils.flushPromises();
345
+ await simulateAudioMuteChange(true);
346
+ await simulateAudioMuteChange(false);
423
347
 
424
348
  assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
425
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, true, undefined, meeting);
349
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, true, undefined);
426
350
 
427
351
  // now allow the first request to complete
428
352
  serverResponseResolve();
429
353
  await testUtils.flushPromises();
430
- assert.isTrue(firstClientPromiseResolved);
431
354
 
432
355
  // that should trigger the second server request to be sent
433
356
  assert.calledTwice(MeetingUtil.remoteUpdateAudioVideo);
434
- assert.strictEqual(false, MeetingUtil.remoteUpdateAudioVideo.getCall(1).args[0]);
435
- assert.strictEqual(undefined, MeetingUtil.remoteUpdateAudioVideo.getCall(1).args[1]);
436
- assert.strictEqual(meeting, MeetingUtil.remoteUpdateAudioVideo.getCall(1).args[2]);
357
+ assert.deepEqual(
358
+ [meeting, false, undefined],
359
+ MeetingUtil.remoteUpdateAudioVideo.getCall(1).args
360
+ );
437
361
 
438
362
  serverResponseResolve();
439
- await testUtils.flushPromises();
440
-
441
- assert.isTrue(secondClientPromiseResolved);
442
- });
443
-
444
- it('rejects client request to unmute if hard mute is used', (done) => {
445
- audio.handleServerRemoteMuteUpdate(meeting, true, false);
446
-
447
- audio
448
- .handleClientRequest(meeting, false)
449
- .then(() => {
450
- done(new Error('expected handleClientRequest to fail, but it did not!'));
451
- })
452
- .catch((e) => {
453
- assert.isTrue(e instanceof PermissionError);
454
- done();
455
- });
456
363
  });
457
364
 
458
365
  it('does not send remote mute for video', async () => {
459
366
  // mute
460
- await video.handleClientRequest(meeting, true);
367
+ await simulateVideoMuteChange(true);
461
368
 
462
369
  assert.isTrue(video.isMuted());
463
- assert.isTrue(video.isSelf());
464
370
 
465
371
  // check local mute is done, but not remote one
466
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, true);
467
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, undefined, true, meeting);
372
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, undefined, true);
468
373
  assert.notCalled(meeting.members.muteMember);
469
374
 
470
- meeting.mediaProperties.videoTrack.setMuted.resetHistory();
471
375
  MeetingUtil.remoteUpdateAudioVideo.resetHistory();
472
376
  meeting.members.muteMember.resetHistory();
473
377
 
474
378
  // unmute
475
- await video.handleClientRequest(meeting, false);
379
+ await simulateVideoMuteChange(false);
476
380
 
477
381
  assert.isFalse(video.isMuted());
478
- assert.isFalse(video.isSelf());
479
382
 
480
- assert.calledWith(meeting.mediaProperties.videoTrack.setMuted, false);
481
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, undefined, false, meeting);
383
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, undefined, false);
482
384
  assert.notCalled(meeting.members.muteMember);
483
385
  });
484
386
 
485
- it('sends correct audio value when sending local mute for video', async () => {
387
+ it('sends undefined value for the other media type when sending local mute', async () => {
486
388
  // make sure the meeting object has mute state machines for both audio and video
487
389
  meeting.audio = audio;
488
390
  meeting.video = video;
489
391
 
490
- // mute audio -> request sent to server should have video unmuted
491
- await audio.handleClientRequest(meeting, true);
492
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, true, false, meeting);
392
+ // mute audio -> the call to remoteUpdateAudioVideo should have video undefined
393
+ await simulateAudioMuteChange(true);
394
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, true, undefined);
493
395
  MeetingUtil.remoteUpdateAudioVideo.resetHistory();
494
396
 
495
- // now mute video -> request sent to server should have mute for both audio and video
496
- await video.handleClientRequest(meeting, true);
497
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, true, true, meeting);
397
+ // now mute video -> the call to remoteUpdateAudioVideo should have unmute for video and undefined for audio
398
+ await simulateVideoMuteChange(true);
399
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, undefined, true);
498
400
  MeetingUtil.remoteUpdateAudioVideo.resetHistory();
499
401
 
500
- // now unmute the audio -> request sent to server should still have video muted
501
- await audio.handleClientRequest(meeting, false);
502
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, false, true, meeting);
402
+ // now unmute the audio -> the call to remoteUpdateAudioVideo should have video undefined
403
+ await simulateAudioMuteChange(false);
404
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, false, undefined);
503
405
  MeetingUtil.remoteUpdateAudioVideo.resetHistory();
504
406
 
505
- // unmute video -> request sent to server should have both audio and video unmuted
506
- await video.handleClientRequest(meeting, false);
507
- assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, false, false, meeting);
407
+ // unmute video -> the call to remoteUpdateAudioVideo should have audio undefined
408
+ await simulateVideoMuteChange(false);
409
+ assert.calledWith(MeetingUtil.remoteUpdateAudioVideo, meeting, undefined, false);
508
410
  });
509
411
  });
510
- });
511
- });
512
-
513
- describe('#init, #handleLocalTrackChange', () => {
514
- let meeting;
515
- let muteState;
516
- let setServerMutedSpy;
517
- let setMutedSpy, setUnmuteAllowedSpy;
518
- const fakeLocus = {info: 'this is a fake locus'};
519
-
520
- const createFakeLocalTrack = (id, muted) => {
521
- return {
522
- id,
523
- setMuted: sinon.stub(),
524
- setServerMuted: sinon.stub(),
525
- setUnmuteAllowed: sinon.stub(),
526
- muted,
527
- };
528
- };
529
-
530
- const setup = (mediaType, remoteMuted = false, muted = false, defineTracks = true) => {
531
-
532
- const remoteMuteField = mediaType === AUDIO ? 'remoteMuted' : 'remoteVideoMuted';
533
412
 
534
- meeting = {
535
- mediaProperties: {
536
- audioTrack: defineTracks ? createFakeLocalTrack('fake audio track', muted) : undefined,
537
- videoTrack: defineTracks ? createFakeLocalTrack('fake video track', muted) : undefined,
538
- },
539
- [remoteMuteField]: remoteMuted,
540
- unmuteAllowed: true,
541
- unmuteVideoAllowed: true,
413
+ describe('#init, #handleLocalStreamChange', () => {
414
+ let meeting;
415
+ let muteState;
416
+ let setServerMutedSpy;
417
+ let setMutedSpy, setUnmuteAllowedSpy;
418
+
419
+ const setupMeeting = (
420
+ mediaType,
421
+ remoteMuted = false,
422
+ muted = false,
423
+ defineStreams = true
424
+ ) => {
425
+ const remoteMuteField = mediaType === AUDIO ? 'remoteMuted' : 'remoteVideoMuted';
426
+
427
+ meeting = {
428
+ mediaProperties: {
429
+ audioStream: defineStreams
430
+ ? createFakeLocalStream('fake audio stream', muted)
431
+ : undefined,
432
+ videoStream: defineStreams
433
+ ? createFakeLocalStream('fake video stream', muted)
434
+ : undefined,
435
+ },
436
+ [remoteMuteField]: remoteMuted,
437
+ unmuteAllowed: true,
438
+ unmuteVideoAllowed: true,
439
+
440
+ locusInfo: {
441
+ onFullLocus: sinon.stub(),
442
+ },
443
+ members: {
444
+ selfId: 'fake self id',
445
+ muteMember: sinon.stub().resolves(),
446
+ },
447
+ };
448
+ };
449
+
450
+ const setup = async (mediaType, remoteMuted = false, muted = false, defineStreams = true) => {
451
+ setupMeeting(mediaType, remoteMuted, muted, defineStreams);
452
+
453
+ muteState = createMuteState(mediaType, meeting, true);
454
+ muteState.handleLocalStreamChange(meeting);
542
455
 
543
- locusInfo: {
544
- onFullLocus: sinon.stub(),
545
- },
546
- members: {
547
- selfId: 'fake self id',
548
- muteMember: sinon.stub().resolves(),
549
- },
550
- };
551
-
552
- const direction = mediaType === AUDIO ? {sendAudio: true} : {sendVideo: true};
553
- sinon.spy(MeetingUtil, 'remoteUpdateAudioVideo');
554
- muteState = createMuteState(mediaType, meeting, direction, false);
555
- }
556
-
557
- const setupSpies = (mediaType) => {
558
- setUnmuteAllowedSpy = mediaType === AUDIO ? meeting.mediaProperties.audioTrack?.setUnmuteAllowed : meeting.mediaProperties.videoTrack?.setUnmuteAllowed;
559
- setServerMutedSpy = mediaType === AUDIO ? meeting.mediaProperties.audioTrack?.setServerMuted : meeting.mediaProperties.videoTrack?.setServerMuted;
560
- setMutedSpy = mediaType === AUDIO ? meeting.mediaProperties.audioTrack?.setMuted : meeting.mediaProperties.videoTrack?.setMuted;
456
+ await testUtils.flushPromises();
561
457
 
562
- clearSpies();
563
- };
458
+ MeetingUtil.remoteUpdateAudioVideo.resetHistory();
459
+ };
460
+
461
+ const setupSpies = (mediaType) => {
462
+ setUnmuteAllowedSpy =
463
+ mediaType === AUDIO
464
+ ? meeting.mediaProperties.audioStream?.setUnmuteAllowed
465
+ : meeting.mediaProperties.videoStream?.setUnmuteAllowed;
466
+ setServerMutedSpy =
467
+ mediaType === AUDIO
468
+ ? meeting.mediaProperties.audioStream?.setServerMuted
469
+ : meeting.mediaProperties.videoStream?.setServerMuted;
470
+ setMutedSpy =
471
+ mediaType === AUDIO
472
+ ? meeting.mediaProperties.audioStream?.setMuted
473
+ : meeting.mediaProperties.videoStream?.setMuted;
474
+
475
+ clearSpies();
476
+ };
477
+
478
+ const clearSpies = () => {
479
+ setUnmuteAllowedSpy?.resetHistory();
480
+ setServerMutedSpy?.resetHistory();
481
+ setMutedSpy?.resetHistory();
482
+ };
483
+ const tests = [
484
+ {mediaType: AUDIO, title: 'audio'},
485
+ {mediaType: VIDEO, title: 'video'},
486
+ ];
487
+
488
+ tests.forEach(({mediaType, title}) =>
489
+ describe(title, () => {
490
+ let originalRemoteUpdateAudioVideo;
491
+
492
+ beforeEach(() => {
493
+ originalRemoteUpdateAudioVideo = MeetingUtil.remoteUpdateAudioVideo;
494
+ MeetingUtil.remoteUpdateAudioVideo = sinon.stub().resolves({info: 'fake locus'});
495
+ });
564
496
 
565
- const clearSpies = () => {
566
- setUnmuteAllowedSpy?.resetHistory();
567
- setServerMutedSpy?.resetHistory();
568
- setMutedSpy?.resetHistory();
569
- };
570
- const tests = [
571
- {mediaType: AUDIO, title: 'audio'},
572
- {mediaType: VIDEO, title: 'video'}
573
- ];
497
+ afterEach(() => {
498
+ MeetingUtil.remoteUpdateAudioVideo = originalRemoteUpdateAudioVideo;
499
+ sinon.restore();
500
+ });
574
501
 
575
- tests.forEach(({mediaType, title}) =>
576
- describe(title, () => {
502
+ describe('#handleLocalStreamChange', () => {
503
+ it('calls init()', async () => {
504
+ await setup(mediaType);
505
+ const spy = sinon.spy(muteState, 'init');
506
+ muteState.handleLocalStreamChange(meeting);
507
+ assert.calledOnceWithExactly(spy, meeting);
508
+ });
509
+ });
577
510
 
578
- afterEach(() => {
579
- sinon.restore();
580
- });
511
+ describe('#init', () => {
512
+ // does the setup by calling new MuteState() so that MuteState.init() doesn't get called
513
+ const setupWithoutInit = async (
514
+ mediaType,
515
+ remoteMuted = false,
516
+ muted = false,
517
+ defineStreams = true
518
+ ) => {
519
+ setupMeeting(mediaType, remoteMuted, muted, defineStreams);
581
520
 
582
- describe('#handleLocalTrackChange',() => {
521
+ muteState = new MuteState(mediaType, meeting, true);
522
+ };
583
523
 
584
- it('calls init()', async () => {
585
- setup(mediaType);
586
- const spy = sinon.spy(muteState, 'init');
587
- muteState.handleLocalTrackChange(meeting);
588
- assert.calledOnceWithExactly(spy, meeting);
589
- });
590
- });
524
+ it('nothing goes bad when stream is undefined', async () => {
525
+ await setupWithoutInit(mediaType, false, false, false);
526
+ setupSpies(mediaType);
591
527
 
592
- describe('#init', () => {
593
-
594
- afterEach(() => {
595
- sinon.restore();
596
- });
597
-
598
- it('nothing goes bad when track is undefined', async () => {
599
- setup(mediaType, false, false, false);
600
- setupSpies(mediaType);
601
-
602
- muteState.init(meeting);
603
-
604
- assert.isFalse(muteState.state.client.localMute);
605
- });
606
-
607
- it('tests when track muted is true and remoteMuted is false', async () => {
608
- setup(mediaType, false, true);
609
- setupSpies(mediaType);
610
-
611
- muteState.init(meeting);
612
-
613
- assert.calledWith(setUnmuteAllowedSpy, muteState.state.server.unmuteAllowed);
614
- assert.notCalled(setServerMutedSpy);
615
- assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
616
- assert.isTrue(muteState.state.client.localMute);
617
- });
618
-
619
-
620
- it('tests when track muted is false and remoteMuted is false', async () => {
621
- setup(mediaType, false, false);
622
- setupSpies(mediaType);
623
- muteState.state.server.localMute = true;
624
-
625
- muteState.init(meeting);
626
-
627
- assert.calledWith(setUnmuteAllowedSpy, muteState.state.server.unmuteAllowed);
628
- assert.notCalled(setServerMutedSpy);
629
- assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
630
- assert.isFalse(muteState.state.client.localMute);
631
- });
632
-
633
- it('tests when remoteMuted is true', async () => {
634
- // testing that muteLocalTrack is called
635
- setup(mediaType, true);
636
- setupSpies(mediaType);
637
-
638
- muteState.init(meeting);
639
-
640
- assert.calledWith(setUnmuteAllowedSpy, muteState.state.server.unmuteAllowed);
641
- assert.calledOnceWithExactly(setServerMutedSpy, true, 'remotelyMuted');
642
- });
643
- });
528
+ muteState.init(meeting);
644
529
 
645
- describe('#handleLocalTrackMuteStateChange', () => {
530
+ assert.isTrue(muteState.state.client.localMute);
531
+ });
646
532
 
647
- afterEach(() => {
648
- sinon.restore();
649
- });
533
+ it('tests when stream muted is true and remoteMuted is false', async () => {
534
+ await setupWithoutInit(mediaType, false, true);
535
+ setupSpies(mediaType);
650
536
 
651
- it('checks when ignoreMuteStateChange is true nothing changes', () => {
652
- setup(mediaType, false, false);
653
- muteState.ignoreMuteStateChange= true;
537
+ muteState.init(meeting);
654
538
 
655
- muteState.handleLocalTrackMuteStateChange(meeting, true);
656
- assert.notCalled(MeetingUtil.remoteUpdateAudioVideo);
539
+ assert.calledWith(setUnmuteAllowedSpy, muteState.state.server.unmuteAllowed);
540
+ assert.notCalled(setServerMutedSpy);
541
+ assert.notCalled(MeetingUtil.remoteUpdateAudioVideo);
542
+ assert.isTrue(muteState.state.client.localMute);
543
+ });
657
544
 
658
- assert.isFalse(muteState.state.client.localMute);
659
- });
545
+ it('tests when stream muted is false and remoteMuted is false', async () => {
546
+ await setupWithoutInit(mediaType, false, false);
547
+ setupSpies(mediaType);
660
548
 
661
- it('tests localMute - true to false', () => {
662
- setup(mediaType, false, true);
549
+ muteState.init(meeting);
663
550
 
664
- muteState.handleLocalTrackMuteStateChange(meeting, false);
665
- assert.equal(muteState.state.client.localMute, false);
666
- assert.called(MeetingUtil.remoteUpdateAudioVideo);
667
- });
551
+ assert.calledWith(setUnmuteAllowedSpy, muteState.state.server.unmuteAllowed);
552
+ assert.notCalled(setServerMutedSpy);
553
+ assert.calledOnce(MeetingUtil.remoteUpdateAudioVideo);
554
+ assert.isFalse(muteState.state.client.localMute);
555
+ });
668
556
 
669
- it('tests localMute - false to true', () => {
670
- setup(mediaType, false, false);
557
+ it('tests when remoteMuted is true', async () => {
558
+ // testing that muteLocalStream is called
559
+ await setupWithoutInit(mediaType, true);
560
+ setupSpies(mediaType);
671
561
 
672
- muteState.handleLocalTrackMuteStateChange(meeting, true);
673
- assert.equal(muteState.state.client.localMute, true);
674
- assert.called(MeetingUtil.remoteUpdateAudioVideo);
675
- });
676
- });
562
+ muteState.init(meeting);
677
563
 
678
- describe('#applyClientStateLocally', () => {
564
+ assert.calledWith(setUnmuteAllowedSpy, muteState.state.server.unmuteAllowed);
565
+ assert.calledOnceWithExactly(setServerMutedSpy, true, 'remotelyMuted');
566
+ });
567
+ });
679
568
 
680
- afterEach(() => {
681
- sinon.restore();
682
- });
569
+ describe('#handleLocalStreamMuteStateChange', () => {
570
+ it('checks when ignoreMuteStateChange is true nothing changes', async () => {
571
+ await setup(mediaType, false, false);
572
+ muteState.ignoreMuteStateChange = true;
683
573
 
684
- it('checks when sdkOwnsLocalTrack is false', () => {
685
- setup(mediaType);
686
- setupSpies(mediaType);
687
- muteState.sdkOwnsLocalTrack= false;
574
+ muteState.handleLocalStreamMuteStateChange(meeting, true);
575
+ assert.notCalled(MeetingUtil.remoteUpdateAudioVideo);
688
576
 
689
- muteState.applyClientStateLocally(meeting, 'somereason');
690
- assert.calledOnceWithExactly(setServerMutedSpy, muteState.state.client.localMute, 'somereason');
691
- assert.notCalled(setMutedSpy);
692
- });
577
+ assert.isFalse(muteState.state.client.localMute);
578
+ });
693
579
 
694
- it('checks when sdkOwnsLocalTrack is true', () => {
695
- setup(mediaType);
696
- setupSpies(mediaType);
697
- muteState.sdkOwnsLocalTrack= true;
580
+ it('tests localMute - true to false', async () => {
581
+ await setup(mediaType, false, true);
698
582
 
699
- muteState.applyClientStateLocally(meeting, 'somereason');
700
- assert.notCalled(setServerMutedSpy);
701
- assert.calledOnceWithExactly(setMutedSpy, muteState.state.client.localMute);
702
- });
583
+ muteState.handleLocalStreamMuteStateChange(meeting, false);
584
+ assert.equal(muteState.state.client.localMute, false);
585
+ assert.called(MeetingUtil.remoteUpdateAudioVideo);
586
+ });
703
587
 
704
- it('checks nothing explodes when tracks are undefined', () => {
705
- setup(mediaType, false, false, false);
706
- setupSpies(mediaType);
707
- muteState.sdkOwnsLocalTrack= true;
588
+ it('tests localMute - false to true', async () => {
589
+ await setup(mediaType, false, false);
708
590
 
709
- muteState.applyClientStateLocally(meeting, 'somereason');
710
- });
711
- });
591
+ muteState.handleLocalStreamMuteStateChange(meeting, true);
592
+ assert.equal(muteState.state.client.localMute, true);
593
+ assert.called(MeetingUtil.remoteUpdateAudioVideo);
594
+ });
595
+ });
712
596
 
713
- })
714
- );
715
- });
597
+ describe('#applyClientStateLocally', () => {
598
+ afterEach(() => {
599
+ sinon.restore();
600
+ });
601
+
602
+ it('calls setServerMuted on the stream', async () => {
603
+ await setup(mediaType);
604
+ setupSpies(mediaType);
605
+
606
+ muteState.applyClientStateLocally(meeting, 'somereason');
607
+ assert.calledOnceWithExactly(
608
+ setServerMutedSpy,
609
+ muteState.state.client.localMute,
610
+ 'somereason'
611
+ );
612
+ assert.notCalled(setMutedSpy);
613
+ });
614
+
615
+ it('nothing explodes when streams are undefined', async () => {
616
+ await setup(mediaType, false, false, false);
617
+ setupSpies(mediaType);
618
+
619
+ muteState.applyClientStateLocally(meeting, 'somereason');
620
+ });
621
+ });
622
+ })
623
+ );
624
+ });
625
+ });
626
+ });