@webex/plugin-meetings 2.60.1-next.9 → 2.60.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 (539) hide show
  1. package/README.md +8 -58
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -6
  54. package/dist/config.js +10 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +100 -234
  57. package/dist/constants.js +444 -433
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +5 -121
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +520 -705
  111. package/dist/meeting/index.js +3083 -5041
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -304
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -118
  122. package/dist/meeting/util.js +435 -676
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +20 -114
  142. package/dist/meetings/index.js +133 -540
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +95 -61
  193. package/dist/reachability/index.js +392 -304
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +232 -285
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +238 -100
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -50
  240. package/dist/statsAnalyzer/index.js +511 -436
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +90 -130
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -39
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -6
  253. package/src/constants.ts +100 -265
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -450
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2581 -4306
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -214
  273. package/src/meeting/util.ts +423 -687
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +136 -531
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +347 -246
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -96
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +645 -479
  310. package/src/statsAnalyzer/mqaUtil.ts +126 -128
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1437
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +2313 -8384
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +43 -523
  330. package/test/unit/spec/meeting/utils.js +24 -834
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +232 -1445
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -532
  347. package/test/unit/spec/reconnection-manager/index.js +24 -163
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +77 -187
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +165 -644
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interceptors/index.d.ts +0 -2
  395. package/dist/interceptors/index.js +0 -15
  396. package/dist/interceptors/index.js.map +0 -1
  397. package/dist/interceptors/locusRetry.d.ts +0 -27
  398. package/dist/interceptors/locusRetry.js +0 -94
  399. package/dist/interceptors/locusRetry.js.map +0 -1
  400. package/dist/interpretation/collection.d.ts +0 -5
  401. package/dist/interpretation/collection.js +0 -22
  402. package/dist/interpretation/collection.js.map +0 -1
  403. package/dist/interpretation/index.d.ts +0 -5
  404. package/dist/interpretation/index.js +0 -365
  405. package/dist/interpretation/index.js.map +0 -1
  406. package/dist/interpretation/siLanguage.d.ts +0 -5
  407. package/dist/interpretation/siLanguage.js +0 -24
  408. package/dist/interpretation/siLanguage.js.map +0 -1
  409. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  410. package/dist/meeting/locusMediaRequest.js +0 -291
  411. package/dist/meeting/locusMediaRequest.js.map +0 -1
  412. package/dist/meeting/request.type.d.ts +0 -11
  413. package/dist/meeting/request.type.js +0 -7
  414. package/dist/meeting/request.type.js.map +0 -1
  415. package/dist/meeting/voicea-meeting.d.ts +0 -20
  416. package/dist/meeting/voicea-meeting.js +0 -201
  417. package/dist/meeting/voicea-meeting.js.map +0 -1
  418. package/dist/meetings/meetings.types.d.ts +0 -4
  419. package/dist/meetings/meetings.types.js +0 -7
  420. package/dist/meetings/meetings.types.js.map +0 -1
  421. package/dist/member/types.d.ts +0 -32
  422. package/dist/member/types.js +0 -23
  423. package/dist/member/types.js.map +0 -1
  424. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  425. package/dist/multistream/mediaRequestManager.js +0 -344
  426. package/dist/multistream/mediaRequestManager.js.map +0 -1
  427. package/dist/multistream/receiveSlot.d.ts +0 -68
  428. package/dist/multistream/receiveSlot.js +0 -200
  429. package/dist/multistream/receiveSlot.js.map +0 -1
  430. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  431. package/dist/multistream/receiveSlotManager.js +0 -174
  432. package/dist/multistream/receiveSlotManager.js.map +0 -1
  433. package/dist/multistream/remoteMedia.d.ts +0 -72
  434. package/dist/multistream/remoteMedia.js +0 -268
  435. package/dist/multistream/remoteMedia.js.map +0 -1
  436. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  437. package/dist/multistream/remoteMediaGroup.js +0 -267
  438. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  439. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  440. package/dist/multistream/remoteMediaManager.js +0 -1211
  441. package/dist/multistream/remoteMediaManager.js.map +0 -1
  442. package/dist/multistream/sendSlotManager.d.ts +0 -61
  443. package/dist/multistream/sendSlotManager.js +0 -236
  444. package/dist/multistream/sendSlotManager.js.map +0 -1
  445. package/dist/reachability/clusterReachability.d.ts +0 -109
  446. package/dist/reachability/clusterReachability.js +0 -357
  447. package/dist/reachability/clusterReachability.js.map +0 -1
  448. package/dist/reachability/util.d.ts +0 -8
  449. package/dist/reachability/util.js +0 -29
  450. package/dist/reachability/util.js.map +0 -1
  451. package/dist/reactions/constants.d.ts +0 -3
  452. package/dist/reactions/constants.js +0 -12
  453. package/dist/reactions/constants.js.map +0 -1
  454. package/dist/rtcMetrics/constants.d.ts +0 -4
  455. package/dist/rtcMetrics/constants.js +0 -11
  456. package/dist/rtcMetrics/constants.js.map +0 -1
  457. package/dist/rtcMetrics/index.d.ts +0 -54
  458. package/dist/rtcMetrics/index.js +0 -140
  459. package/dist/rtcMetrics/index.js.map +0 -1
  460. package/dist/webinar/collection.d.ts +0 -16
  461. package/dist/webinar/collection.js +0 -43
  462. package/dist/webinar/collection.js.map +0 -1
  463. package/dist/webinar/index.d.ts +0 -5
  464. package/dist/webinar/index.js +0 -68
  465. package/dist/webinar/index.js.map +0 -1
  466. package/src/annotation/annotation.types.ts +0 -50
  467. package/src/annotation/constants.ts +0 -36
  468. package/src/annotation/index.ts +0 -328
  469. package/src/breakouts/README.md +0 -220
  470. package/src/breakouts/breakout.ts +0 -188
  471. package/src/breakouts/collection.ts +0 -19
  472. package/src/breakouts/edit-lock-error.ts +0 -25
  473. package/src/breakouts/events.ts +0 -56
  474. package/src/breakouts/index.ts +0 -925
  475. package/src/breakouts/request.ts +0 -55
  476. package/src/breakouts/utils.ts +0 -57
  477. package/src/common/errors/no-meeting-info.ts +0 -24
  478. package/src/controls-options-manager/types.ts +0 -59
  479. package/src/index.ts +0 -44
  480. package/src/interceptors/index.ts +0 -3
  481. package/src/interceptors/locusRetry.ts +0 -67
  482. package/src/interpretation/README.md +0 -60
  483. package/src/interpretation/collection.ts +0 -19
  484. package/src/interpretation/index.ts +0 -332
  485. package/src/interpretation/siLanguage.ts +0 -18
  486. package/src/meeting/locusMediaRequest.ts +0 -313
  487. package/src/meeting/request.type.ts +0 -13
  488. package/src/meeting/voicea-meeting.ts +0 -161
  489. package/src/meetings/meetings.types.ts +0 -12
  490. package/src/member/types.ts +0 -38
  491. package/src/multistream/mediaRequestManager.ts +0 -440
  492. package/src/multistream/receiveSlot.ts +0 -184
  493. package/src/multistream/receiveSlotManager.ts +0 -166
  494. package/src/multistream/remoteMedia.ts +0 -254
  495. package/src/multistream/remoteMediaGroup.ts +0 -284
  496. package/src/multistream/remoteMediaManager.ts +0 -1145
  497. package/src/multistream/sendSlotManager.ts +0 -170
  498. package/src/reachability/clusterReachability.ts +0 -320
  499. package/src/reachability/util.ts +0 -24
  500. package/src/reactions/constants.ts +0 -4
  501. package/src/rtcMetrics/constants.ts +0 -3
  502. package/src/rtcMetrics/index.ts +0 -124
  503. package/src/webinar/collection.ts +0 -31
  504. package/src/webinar/index.ts +0 -62
  505. package/test/integration/spec/converged-space-meetings.js +0 -233
  506. package/test/unit/spec/annotation/index.ts +0 -418
  507. package/test/unit/spec/breakouts/breakout.ts +0 -237
  508. package/test/unit/spec/breakouts/collection.ts +0 -15
  509. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  510. package/test/unit/spec/breakouts/events.ts +0 -89
  511. package/test/unit/spec/breakouts/index.ts +0 -1790
  512. package/test/unit/spec/breakouts/request.ts +0 -104
  513. package/test/unit/spec/breakouts/utils.js +0 -72
  514. package/test/unit/spec/interceptors/locusRetry.ts +0 -131
  515. package/test/unit/spec/interpretation/collection.ts +0 -15
  516. package/test/unit/spec/interpretation/index.ts +0 -589
  517. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  518. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  519. package/test/unit/spec/media/index.ts +0 -290
  520. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  521. package/test/unit/spec/meeting-info/index.js +0 -300
  522. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  523. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  524. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  525. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  526. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  527. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  528. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  529. package/test/unit/spec/reachability/clusterReachability.ts +0 -279
  530. package/test/unit/spec/reachability/request.js +0 -68
  531. package/test/unit/spec/reachability/util.ts +0 -40
  532. package/test/unit/spec/roap/request.ts +0 -255
  533. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  534. package/test/unit/spec/webinar/collection.ts +0 -13
  535. package/test/unit/spec/webinar/index.ts +0 -60
  536. package/test/utils/constants.js +0 -9
  537. package/test/utils/integrationTestUtils.js +0 -46
  538. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -1,332 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
3
- */
4
- import {WebexPlugin} from '@webex/webex-core';
5
- import LoggerProxy from '../common/logs/logger-proxy';
6
- import {HTTP_VERBS, INTERPRETATION, MEETINGS} from '../constants';
7
-
8
- import SILanguageCollection from './collection';
9
-
10
- /**
11
- * @class SimultaneousInterpretation
12
- */
13
- const SimultaneousInterpretation = WebexPlugin.extend({
14
- namespace: MEETINGS,
15
- collections: {
16
- siLanguages: SILanguageCollection,
17
- },
18
-
19
- props: {
20
- locusUrl: 'string', // appears current meeting's locus url
21
- approvalUrl: 'string', // appears current meeting's approval url for handoff between interpreters
22
- originalLanguage: 'string', // appears current meeting's original language
23
- sourceLanguage: 'string', // appears self interpreter's source language
24
- targetLanguage: 'string', // appears self interpreter's target language
25
- receiveLanguage: 'string', // appears self's receive language
26
- order: 'number', // appears the order of self as interpreter
27
- isActive: 'boolean', // appears self is interpreter and is active
28
- selfParticipantId: 'string', // appears the self participant id
29
- canManageInterpreters: 'boolean', // appears the ability to manage interpreters
30
- supportLanguages: 'array', // appears the support languages
31
- meetingSIEnabled: 'boolean', // appears the meeting support SI feature
32
- hostSIEnabled: 'boolean', // appears the meeting host/interpreter feature of SI enabled
33
- selfIsInterpreter: 'boolean', // current user is interpreter or not
34
- },
35
- derived: {
36
- shouldQuerySupportLanguages: {
37
- cache: false,
38
- deps: ['canManageInterpreters', 'hostSIEnabled'],
39
- /**
40
- * Returns should query support languages or not
41
- * @returns {boolean}
42
- */
43
- fn() {
44
- return !!(this.canManageInterpreters && this.hostSIEnabled);
45
- },
46
- },
47
- },
48
- /**
49
- * initialize for interpretation
50
- * @returns {void}
51
- */
52
- initialize() {
53
- this.listenTo(this, 'change:shouldQuerySupportLanguages', () => {
54
- if (this.canManageInterpreters && !this.supportLanguages) {
55
- this.querySupportLanguages();
56
- }
57
- });
58
- this.listenToHandoffRequests();
59
- },
60
-
61
- /**
62
- * Calls this to clean up listeners
63
- * @returns {void}
64
- */
65
- cleanUp() {
66
- this.stopListening();
67
- },
68
- /**
69
- * Update the current locus url of the meeting
70
- * @param {string} locusUrl // locus url
71
- * @returns {void}
72
- */
73
- locusUrlUpdate(locusUrl) {
74
- this.set('locusUrl', locusUrl);
75
- },
76
- /**
77
- * Update the approval url for handoff
78
- * @param {string} approvalUrl // approval url
79
- * @returns {void}
80
- */
81
- approvalUrlUpdate(approvalUrl) {
82
- this.set('approvalUrl', approvalUrl);
83
- },
84
- /**
85
- * Update whether self has capability to manage interpreters (only host can manage it)
86
- * @param {boolean} canManageInterpreters
87
- * @returns {void}
88
- */
89
- updateCanManageInterpreters(canManageInterpreters) {
90
- this.set('canManageInterpreters', canManageInterpreters);
91
- },
92
- /**
93
- * Update whether the meeting's host si is enabled or not
94
- * @param {boolean} hostSIEnabled
95
- * @returns {void}
96
- */
97
- updateHostSIEnabled(hostSIEnabled) {
98
- this.set('hostSIEnabled', hostSIEnabled);
99
- },
100
-
101
- /**
102
- * Update whether the meeting support SI feature or not from meeting info
103
- * @param {boolean} meetingSIEnabled
104
- * @param {boolean} selfIsInterpreter
105
- * @returns {void}
106
- */
107
- updateMeetingSIEnabled(meetingSIEnabled: boolean, selfIsInterpreter): void {
108
- this.set('meetingSIEnabled', meetingSIEnabled);
109
- this.set('selfIsInterpreter', selfIsInterpreter);
110
- },
111
-
112
- /**
113
- * Update the interpretation languages channels which user can choose to subscribe
114
- * @param {Object} interpretation
115
- * @returns {void}
116
- */
117
- updateInterpretation(interpretation) {
118
- this.siLanguages.set(interpretation?.siLanguages || []);
119
- },
120
- /**
121
- * Update self's interpretation information (self is interpreter)
122
- * @param {Object} interpretation
123
- * @param {String} selfParticipantId
124
- * @returns {void}
125
- */
126
- updateSelfInterpretation({interpretation, selfParticipantId}) {
127
- const {originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage} =
128
- interpretation || {};
129
- this.set({originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage});
130
- this.set('selfParticipantId', selfParticipantId);
131
- },
132
- /**
133
- * query interpretation languages
134
- * @returns {Promise}
135
- */
136
- querySupportLanguages() {
137
- return this.request({
138
- method: HTTP_VERBS.GET,
139
- uri: `${this.locusUrl}/languages/interpretation`,
140
- })
141
- .then((result) => {
142
- this.set('supportLanguages', result.body?.siLanguages);
143
- this.trigger(INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);
144
- })
145
- .catch((error) => {
146
- LoggerProxy.logger.error('Meeting:interpretation#querySupportLanguages failed', error);
147
- throw error;
148
- });
149
- },
150
- /**
151
- * get interpreters of the meeting
152
- * @returns {Promise}
153
- */
154
- getInterpreters() {
155
- return this.request({
156
- method: HTTP_VERBS.GET,
157
- uri: `${this.locusUrl}/interpretation/interpreters`,
158
- }).catch((error) => {
159
- LoggerProxy.logger.error('Meeting:interpretation#getInterpreters failed', error);
160
- throw error;
161
- });
162
- },
163
- /**
164
- * update interpreters of the meeting
165
- * @param {Array} interpreters
166
- * @returns {Promise}
167
- */
168
- updateInterpreters(interpreters) {
169
- return this.request({
170
- method: HTTP_VERBS.PATCH,
171
- uri: `${this.locusUrl}/controls`,
172
- body: {
173
- interpretation: {
174
- interpreters,
175
- },
176
- },
177
- }).catch((error) => {
178
- LoggerProxy.logger.error('Meeting:interpretation#updateInterpreters failed', error);
179
- throw error;
180
- });
181
- },
182
- /**
183
- * Change direction of interpretation for an interpreter participant
184
- * @returns {Promise}
185
- */
186
- changeDirection() {
187
- if (!this.sourceLanguage || !this.targetLanguage) {
188
- return Promise.reject(new Error('Missing sourceLanguage or targetLanguage'));
189
- }
190
-
191
- if (!this.selfParticipantId) {
192
- return Promise.reject(new Error('Missing self participant id'));
193
- }
194
-
195
- return this.request({
196
- method: HTTP_VERBS.PATCH,
197
- uri: `${this.locusUrl}/participant/${this.selfParticipantId}/controls`,
198
- body: {
199
- interpretation: {
200
- sourceLanguage: this.targetLanguage,
201
- targetLanguage: this.sourceLanguage,
202
- isActive: this.isActive,
203
- order: this.order,
204
- },
205
- },
206
- }).catch((error) => {
207
- LoggerProxy.logger.error('Meeting:interpretation#changeDirection failed', error);
208
- throw error;
209
- });
210
- },
211
- /**
212
- * Sets up a listener for handoff requests from mercury
213
- * @returns {void}
214
- */
215
- listenToHandoffRequests() {
216
- this.listenTo(this.webex.internal.mercury, 'event:locus.approval_request', (event) => {
217
- if (event?.data?.approval?.resourceType === INTERPRETATION.RESOURCE_TYPE) {
218
- const {receivers, initiator, actionType, url} = event.data.approval;
219
- const receiverId = receivers?.[0]?.participantId;
220
- const isReceiver = !!receiverId && receiverId === this.selfParticipantId;
221
- const senderId = initiator?.participantId;
222
- const isSender = !!senderId && senderId === this.selfParticipantId;
223
- if (!isReceiver && !isSender) {
224
- return;
225
- }
226
- this.trigger(INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, {
227
- actionType,
228
- isReceiver,
229
- isSender,
230
- senderId,
231
- receiverId,
232
- url,
233
- });
234
- }
235
- });
236
- },
237
- /**
238
- * handoff the active interpreter role to another interpreter in same group, only the interpreter is allowed to call this api
239
- * @param {string} participantId the participant id you want to hand off
240
- * @returns {Promise}
241
- */
242
- handoffInterpreter(participantId) {
243
- if (!participantId) {
244
- return Promise.reject(new Error('Missing target participant id'));
245
- }
246
- if (!this.approvalUrl) {
247
- return Promise.reject(new Error('Missing approval url'));
248
- }
249
-
250
- return this.request({
251
- method: HTTP_VERBS.POST,
252
- uri: this.approvalUrl,
253
- body: {
254
- actionType: INTERPRETATION.ACTION_TYPE.OFFERED,
255
- resourceType: INTERPRETATION.RESOURCE_TYPE,
256
- receivers: [
257
- {
258
- participantId,
259
- },
260
- ],
261
- },
262
- }).catch((error) => {
263
- LoggerProxy.logger.error('Meeting:interpretation#handoffInterpreter failed', error);
264
- throw error;
265
- });
266
- },
267
- /**
268
- * the in-active interpreter request to hand off the active role to self
269
- * @returns {Promise}
270
- */
271
- requestHandoff() {
272
- if (!this.approvalUrl) {
273
- return Promise.reject(new Error('Missing approval url'));
274
- }
275
-
276
- return this.request({
277
- method: HTTP_VERBS.POST,
278
- uri: this.approvalUrl,
279
- body: {
280
- actionType: INTERPRETATION.ACTION_TYPE.REQUESTED,
281
- resourceType: INTERPRETATION.RESOURCE_TYPE,
282
- },
283
- }).catch((error) => {
284
- LoggerProxy.logger.error('Meeting:interpretation#requestHandoff failed', error);
285
- throw error;
286
- });
287
- },
288
- /**
289
- * accept the request of handoff
290
- * @param {String} url the url get from last approval event
291
- * @returns {Promise}
292
- */
293
- acceptRequest(url) {
294
- if (!url) {
295
- return Promise.reject(new Error('Missing the url to accept'));
296
- }
297
-
298
- return this.request({
299
- method: HTTP_VERBS.PUT,
300
- uri: url,
301
- body: {
302
- actionType: INTERPRETATION.ACTION_TYPE.ACCEPTED,
303
- },
304
- }).catch((error) => {
305
- LoggerProxy.logger.error('Meeting:interpretation#acceptRequest failed', error);
306
- throw error;
307
- });
308
- },
309
- /**
310
- * decline the request of handoff
311
- * @param {String} url the url get from last approval event
312
- * @returns {Promise}
313
- */
314
- declineRequest(url) {
315
- if (!url) {
316
- return Promise.reject(new Error('Missing the url to decline'));
317
- }
318
-
319
- return this.request({
320
- method: HTTP_VERBS.PUT,
321
- uri: url,
322
- body: {
323
- actionType: INTERPRETATION.ACTION_TYPE.DECLINED,
324
- },
325
- }).catch((error) => {
326
- LoggerProxy.logger.error('Meeting:interpretation#declineRequest failed', error);
327
- throw error;
328
- });
329
- },
330
- });
331
-
332
- export default SimultaneousInterpretation;
@@ -1,18 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- import {WebexPlugin} from '@webex/webex-core';
6
- import {MEETINGS} from '../constants';
7
-
8
- const SILanguage = WebexPlugin.extend({
9
- idAttribute: 'languageName',
10
-
11
- namespace: MEETINGS,
12
- props: {
13
- languageCode: 'number',
14
- languageName: 'string',
15
- },
16
- });
17
-
18
- export default SILanguage;
@@ -1,313 +0,0 @@
1
- /* eslint-disable valid-jsdoc */
2
- import {defer} from 'lodash';
3
- import {Defer} from '@webex/common';
4
- import {WebexPlugin} from '@webex/webex-core';
5
- import {MEDIA, HTTP_VERBS, ROAP, IP_VERSION} from '../constants';
6
- import LoggerProxy from '../common/logs/logger-proxy';
7
-
8
- export type MediaRequestType = 'RoapMessage' | 'LocalMute';
9
- export type RequestResult = any;
10
-
11
- export type RoapRequest = {
12
- type: 'RoapMessage';
13
- selfUrl: string;
14
- mediaId: string;
15
- roapMessage: any;
16
- reachability: any;
17
- sequence?: any;
18
- joinCookie: any; // any, because this is opaque to the client, we pass whatever object we got from one backend component (Orpheus) to the other (Locus)
19
- ipVersion?: IP_VERSION;
20
- };
21
-
22
- export type LocalMuteRequest = {
23
- type: 'LocalMute';
24
- selfUrl: string;
25
- mediaId: string;
26
- sequence?: any;
27
- muteOptions: {
28
- audioMuted?: boolean;
29
- videoMuted?: boolean;
30
- };
31
- };
32
-
33
- export type Request = RoapRequest | LocalMuteRequest;
34
-
35
- /** Class representing a single /media request being sent to Locus */
36
- class InternalRequestInfo {
37
- public readonly request: Request;
38
- private pendingPromises: Defer[];
39
- private sendRequestFn: (request: Request) => Promise<RequestResult>;
40
-
41
- /** Constructor */
42
- constructor(
43
- request: Request,
44
- pendingPromise: Defer,
45
- sendRequestFn: (request: Request) => Promise<RequestResult>
46
- ) {
47
- this.request = request;
48
- this.pendingPromises = [pendingPromise];
49
- this.sendRequestFn = sendRequestFn;
50
- }
51
-
52
- /**
53
- * Returns the list of pending promises associated with this request
54
- */
55
- public getPendingPromises() {
56
- return this.pendingPromises;
57
- }
58
-
59
- /**
60
- * Adds promises to the list of pending promises associated with this request
61
- */
62
- public addPendingPromises(pendingPromises: Defer[]) {
63
- this.pendingPromises.push(...pendingPromises);
64
- }
65
-
66
- /**
67
- * Executes the request. Returned promise is resolved once the request
68
- * is completed (no matter if it succeeded or failed).
69
- */
70
- public execute(): Promise<void> {
71
- return this.sendRequestFn(this.request)
72
- .then((result) => {
73
- // resolve all the pending promises associated with this request
74
- this.pendingPromises.forEach((d) => d.resolve(result));
75
- })
76
- .catch((e) => {
77
- // reject all the pending promises associated with this request
78
- this.pendingPromises.forEach((d) => d.reject(e));
79
- });
80
- }
81
- }
82
-
83
- export type Config = {
84
- device: {
85
- url: string;
86
- deviceType: string;
87
- countryCode?: string;
88
- regionCode?: string;
89
- };
90
- correlationId: string;
91
- preferTranscoding: boolean;
92
- };
93
-
94
- /**
95
- * Returns true if the request is triggering confluence creation in the server
96
- */
97
- function isRequestAffectingConfluenceState(request: Request): boolean {
98
- return (
99
- request.type === 'RoapMessage' && request.roapMessage.messageType === ROAP.ROAP_TYPES.OFFER
100
- );
101
- }
102
-
103
- /**
104
- * This class manages all /media API requests to Locus. Every call to that
105
- * Locus API has to go through this class.
106
- */
107
- export class LocusMediaRequest extends WebexPlugin {
108
- private config: Config;
109
- private latestAudioMuted?: boolean;
110
- private latestVideoMuted?: boolean;
111
- private isRequestInProgress: boolean;
112
- private queuedRequests: InternalRequestInfo[];
113
- private confluenceState: 'not created' | 'creation in progress' | 'created';
114
- /**
115
- * Constructor
116
- */
117
- constructor(config: Config, options: any) {
118
- super({}, options);
119
- this.isRequestInProgress = false;
120
- this.queuedRequests = [];
121
- this.config = config;
122
- this.confluenceState = 'not created';
123
- }
124
-
125
- /**
126
- * Add a request to the internal queue.
127
- */
128
- private addToQueue(info: InternalRequestInfo) {
129
- if (info.request.type === 'LocalMute' && this.queuedRequests.length > 0) {
130
- // We don't need additional local mute requests in the queue.
131
- // We only need at most 1 local mute or 1 roap request, because
132
- // roap requests also include mute state, so whatever request
133
- // is sent out, it will send the latest local mute state.
134
- // We only need to store the pendingPromises so that they get resolved
135
- // when the roap request is sent out.
136
- this.queuedRequests[0].addPendingPromises(info.getPendingPromises());
137
-
138
- return;
139
- }
140
-
141
- if (info.request.type === 'RoapMessage' && this.queuedRequests.length > 0) {
142
- // remove any LocalMute requests from the queue, because this Roap message
143
- // will also update the mute status in Locus, so they are redundant
144
- this.queuedRequests = this.queuedRequests.filter((r) => {
145
- if (r.request.type === 'LocalMute') {
146
- // we need to keep the pending promises from the local mute request
147
- // that we're removing from the queue
148
- info.addPendingPromises(r.getPendingPromises());
149
-
150
- return false;
151
- }
152
-
153
- return true;
154
- });
155
- }
156
-
157
- this.queuedRequests.push(info);
158
- }
159
-
160
- /**
161
- * Takes the next request from the queue and executes it. Once that
162
- * request is completed, the next one will be taken from the queue
163
- * and executed and this is repeated until the queue is empty.
164
- */
165
- private executeNextQueuedRequest(): void {
166
- if (this.isRequestInProgress) {
167
- return;
168
- }
169
-
170
- const nextRequest = this.queuedRequests.shift();
171
-
172
- if (nextRequest) {
173
- this.isRequestInProgress = true;
174
- nextRequest.execute().then(() => {
175
- this.isRequestInProgress = false;
176
- this.executeNextQueuedRequest();
177
- });
178
- }
179
- }
180
-
181
- /**
182
- * Returns latest requested audio and video mute values. If they have never been
183
- * requested, we assume audio/video to be muted.
184
- */
185
- private getLatestMuteState() {
186
- const audioMuted = this.latestAudioMuted !== undefined ? this.latestAudioMuted : true;
187
- const videoMuted = this.latestVideoMuted !== undefined ? this.latestVideoMuted : true;
188
-
189
- return {audioMuted, videoMuted};
190
- }
191
-
192
- /**
193
- * Prepares the uri and body for the media request to be sent to Locus
194
- */
195
- private sendHttpRequest(request: Request) {
196
- const uri = `${request.selfUrl}/${MEDIA}`;
197
-
198
- const {audioMuted, videoMuted} = this.getLatestMuteState();
199
-
200
- // first setup things common to all requests
201
- const body: any = {
202
- device: this.config.device,
203
- correlationId: this.config.correlationId,
204
- clientMediaPreferences: {
205
- preferTranscoding: this.config.preferTranscoding,
206
- ipver: request.type === 'RoapMessage' ? request.ipVersion : undefined,
207
- },
208
- };
209
-
210
- const localMedias: any = {
211
- audioMuted,
212
- videoMuted,
213
- };
214
-
215
- // now add things specific to request type
216
- switch (request.type) {
217
- case 'LocalMute':
218
- body.respOnlySdp = true;
219
- body.usingResource = null;
220
- break;
221
-
222
- case 'RoapMessage':
223
- localMedias.roapMessage = request.roapMessage;
224
- localMedias.reachability = request.reachability;
225
- body.clientMediaPreferences.joinCookie = request.joinCookie;
226
- break;
227
- }
228
-
229
- if (request.sequence) {
230
- body.sequence = request.sequence;
231
- }
232
-
233
- body.localMedias = [
234
- {
235
- localSdp: JSON.stringify(localMedias), // this part must be JSON stringified, Locus requires this
236
- mediaId: request.mediaId,
237
- },
238
- ];
239
-
240
- LoggerProxy.logger.info(
241
- `Meeting:LocusMediaRequest#sendHttpRequest --> ${request.type} audioMuted=${audioMuted} videoMuted=${videoMuted}`
242
- );
243
-
244
- if (isRequestAffectingConfluenceState(request) && this.confluenceState === 'not created') {
245
- this.confluenceState = 'creation in progress';
246
- }
247
-
248
- // @ts-ignore
249
- return this.request({
250
- method: HTTP_VERBS.PUT,
251
- uri,
252
- body,
253
- })
254
- .then((result) => {
255
- if (isRequestAffectingConfluenceState(request)) {
256
- this.confluenceState = 'created';
257
- }
258
-
259
- return result;
260
- })
261
- .catch((e) => {
262
- if (
263
- isRequestAffectingConfluenceState(request) &&
264
- this.confluenceState === 'creation in progress'
265
- ) {
266
- this.confluenceState = 'not created';
267
- }
268
- throw e;
269
- });
270
- }
271
-
272
- /**
273
- * Sends a media request to Locus
274
- */
275
- public send(request: Request): Promise<RequestResult> {
276
- if (request.type === 'LocalMute') {
277
- const {audioMuted, videoMuted} = request.muteOptions;
278
-
279
- if (audioMuted !== undefined) {
280
- this.latestAudioMuted = audioMuted;
281
- }
282
- if (videoMuted !== undefined) {
283
- this.latestVideoMuted = videoMuted;
284
- }
285
-
286
- if (this.confluenceState === 'not created') {
287
- // if there is no confluence, there is no point sending out local mute request
288
- // as it will fail so we just store the latest audio/video muted values
289
- // and resolve immediately, so that higher layer (MuteState class) doesn't get blocked
290
- // and can call us again if user mutes/unmutes again before confluence is created
291
- LoggerProxy.logger.info(
292
- 'Meeting:LocusMediaRequest#send --> called with LocalMute request before confluence creation'
293
- );
294
-
295
- return Promise.resolve({});
296
- }
297
- }
298
-
299
- const pendingPromise = new Defer();
300
-
301
- const newRequest = new InternalRequestInfo(
302
- request,
303
- pendingPromise,
304
- this.sendHttpRequest.bind(this)
305
- );
306
-
307
- this.addToQueue(newRequest);
308
-
309
- defer(() => this.executeNextQueuedRequest());
310
-
311
- return pendingPromise.promise;
312
- }
313
- }
@@ -1,13 +0,0 @@
1
- import {Reaction} from '../reactions/reactions.type';
2
-
3
- export type SendReactionOptions = {
4
- reactionChannelUrl: string;
5
- reaction: Reaction;
6
- participantId: string;
7
- };
8
-
9
- export type ToggleReactionsOptions = {
10
- enable: boolean;
11
- locusUrl: string;
12
- requestingParticipantId: string;
13
- };