@webex/plugin-meetings 3.0.0-beta.39 → 3.0.0-beta.391

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 (393) hide show
  1. package/README.md +58 -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 +94 -15
  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 +671 -81
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +45 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/no-meeting-info.js +51 -0
  17. package/dist/common/errors/no-meeting-info.js.map +1 -0
  18. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  19. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +48 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/logs/request.js +5 -1
  25. package/dist/common/logs/request.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +5 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +242 -33
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +110 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/interceptors/index.js +15 -0
  43. package/dist/interceptors/index.js.map +1 -0
  44. package/dist/interceptors/locusRetry.js +93 -0
  45. package/dist/interceptors/locusRetry.js.map +1 -0
  46. package/dist/interpretation/collection.js +23 -0
  47. package/dist/interpretation/collection.js.map +1 -0
  48. package/dist/interpretation/index.js +380 -0
  49. package/dist/interpretation/index.js.map +1 -0
  50. package/dist/interpretation/siLanguage.js +25 -0
  51. package/dist/interpretation/siLanguage.js.map +1 -0
  52. package/dist/locus-info/controlsUtils.js +91 -2
  53. package/dist/locus-info/controlsUtils.js.map +1 -1
  54. package/dist/locus-info/index.js +386 -62
  55. package/dist/locus-info/index.js.map +1 -1
  56. package/dist/locus-info/infoUtils.js +7 -1
  57. package/dist/locus-info/infoUtils.js.map +1 -1
  58. package/dist/locus-info/mediaSharesUtils.js +71 -1
  59. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  60. package/dist/locus-info/parser.js +249 -72
  61. package/dist/locus-info/parser.js.map +1 -1
  62. package/dist/locus-info/selfUtils.js +89 -14
  63. package/dist/locus-info/selfUtils.js.map +1 -1
  64. package/dist/media/index.js +65 -102
  65. package/dist/media/index.js.map +1 -1
  66. package/dist/media/properties.js +73 -124
  67. package/dist/media/properties.js.map +1 -1
  68. package/dist/mediaQualityMetrics/config.js +135 -330
  69. package/dist/mediaQualityMetrics/config.js.map +1 -1
  70. package/dist/meeting/in-meeting-actions.js +86 -2
  71. package/dist/meeting/in-meeting-actions.js.map +1 -1
  72. package/dist/meeting/index.js +4075 -2827
  73. package/dist/meeting/index.js.map +1 -1
  74. package/dist/meeting/locusMediaRequest.js +292 -0
  75. package/dist/meeting/locusMediaRequest.js.map +1 -0
  76. package/dist/meeting/muteState.js +224 -136
  77. package/dist/meeting/muteState.js.map +1 -1
  78. package/dist/meeting/request.js +177 -152
  79. package/dist/meeting/request.js.map +1 -1
  80. package/dist/meeting/util.js +672 -417
  81. package/dist/meeting/util.js.map +1 -1
  82. package/dist/meeting-info/index.js +73 -7
  83. package/dist/meeting-info/index.js.map +1 -1
  84. package/dist/meeting-info/meeting-info-v2.js +192 -51
  85. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  86. package/dist/meeting-info/util.js +1 -1
  87. package/dist/meeting-info/util.js.map +1 -1
  88. package/dist/meeting-info/utilv2.js +36 -36
  89. package/dist/meeting-info/utilv2.js.map +1 -1
  90. package/dist/meetings/collection.js +39 -0
  91. package/dist/meetings/collection.js.map +1 -1
  92. package/dist/meetings/index.js +484 -119
  93. package/dist/meetings/index.js.map +1 -1
  94. package/dist/meetings/meetings.types.js +7 -0
  95. package/dist/meetings/meetings.types.js.map +1 -0
  96. package/dist/meetings/request.js +2 -0
  97. package/dist/meetings/request.js.map +1 -1
  98. package/dist/meetings/util.js +73 -7
  99. package/dist/meetings/util.js.map +1 -1
  100. package/dist/member/index.js +58 -0
  101. package/dist/member/index.js.map +1 -1
  102. package/dist/member/types.js +25 -0
  103. package/dist/member/types.js.map +1 -0
  104. package/dist/member/util.js +132 -25
  105. package/dist/member/util.js.map +1 -1
  106. package/dist/members/collection.js +10 -0
  107. package/dist/members/collection.js.map +1 -1
  108. package/dist/members/index.js +102 -6
  109. package/dist/members/index.js.map +1 -1
  110. package/dist/members/request.js +106 -38
  111. package/dist/members/request.js.map +1 -1
  112. package/dist/members/types.js +15 -0
  113. package/dist/members/types.js.map +1 -0
  114. package/dist/members/util.js +326 -232
  115. package/dist/members/util.js.map +1 -1
  116. package/dist/metrics/constants.js +18 -1
  117. package/dist/metrics/constants.js.map +1 -1
  118. package/dist/metrics/index.js +1 -446
  119. package/dist/metrics/index.js.map +1 -1
  120. package/dist/multistream/mediaRequestManager.js +223 -32
  121. package/dist/multistream/mediaRequestManager.js.map +1 -1
  122. package/dist/multistream/receiveSlot.js +10 -0
  123. package/dist/multistream/receiveSlot.js.map +1 -1
  124. package/dist/multistream/receiveSlotManager.js +39 -36
  125. package/dist/multistream/receiveSlotManager.js.map +1 -1
  126. package/dist/multistream/remoteMedia.js +3 -1
  127. package/dist/multistream/remoteMedia.js.map +1 -1
  128. package/dist/multistream/remoteMediaGroup.js +76 -5
  129. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  130. package/dist/multistream/remoteMediaManager.js +366 -104
  131. package/dist/multistream/remoteMediaManager.js.map +1 -1
  132. package/dist/multistream/sendSlotManager.js +255 -0
  133. package/dist/multistream/sendSlotManager.js.map +1 -0
  134. package/dist/reachability/clusterReachability.js +356 -0
  135. package/dist/reachability/clusterReachability.js.map +1 -0
  136. package/dist/reachability/index.js +263 -390
  137. package/dist/reachability/index.js.map +1 -1
  138. package/dist/reachability/request.js +6 -4
  139. package/dist/reachability/request.js.map +1 -1
  140. package/dist/reachability/util.js +29 -0
  141. package/dist/reachability/util.js.map +1 -0
  142. package/dist/reconnection-manager/index.js +266 -202
  143. package/dist/reconnection-manager/index.js.map +1 -1
  144. package/dist/recording-controller/index.js +21 -2
  145. package/dist/recording-controller/index.js.map +1 -1
  146. package/dist/recording-controller/util.js +9 -8
  147. package/dist/recording-controller/util.js.map +1 -1
  148. package/dist/roap/index.js +51 -28
  149. package/dist/roap/index.js.map +1 -1
  150. package/dist/roap/request.js +48 -64
  151. package/dist/roap/request.js.map +1 -1
  152. package/dist/roap/turnDiscovery.js +220 -70
  153. package/dist/roap/turnDiscovery.js.map +1 -1
  154. package/dist/rtcMetrics/constants.js +12 -0
  155. package/dist/rtcMetrics/constants.js.map +1 -0
  156. package/dist/rtcMetrics/index.js +179 -0
  157. package/dist/rtcMetrics/index.js.map +1 -0
  158. package/dist/statsAnalyzer/index.js +357 -295
  159. package/dist/statsAnalyzer/index.js.map +1 -1
  160. package/dist/statsAnalyzer/mqaUtil.js +296 -156
  161. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  162. package/dist/types/annotation/annotation.types.d.ts +42 -0
  163. package/dist/types/annotation/constants.d.ts +31 -0
  164. package/dist/types/annotation/index.d.ts +117 -0
  165. package/dist/types/breakouts/events.d.ts +8 -0
  166. package/dist/types/breakouts/utils.d.ts +14 -0
  167. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  168. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  169. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  170. package/dist/types/common/logs/request.d.ts +2 -0
  171. package/dist/types/common/queue.d.ts +9 -7
  172. package/dist/types/config.d.ts +2 -7
  173. package/dist/types/constants.d.ts +203 -31
  174. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  175. package/dist/types/controls-options-manager/index.d.ts +17 -1
  176. package/dist/types/controls-options-manager/types.d.ts +43 -0
  177. package/dist/types/controls-options-manager/util.d.ts +1 -7
  178. package/dist/types/index.d.ts +6 -5
  179. package/dist/types/interceptors/index.d.ts +2 -0
  180. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  181. package/dist/types/interpretation/collection.d.ts +5 -0
  182. package/dist/types/interpretation/index.d.ts +5 -0
  183. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  184. package/dist/types/locus-info/index.d.ts +57 -4
  185. package/dist/types/locus-info/parser.d.ts +66 -6
  186. package/dist/types/media/index.d.ts +2 -0
  187. package/dist/types/media/properties.d.ts +34 -49
  188. package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
  189. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  190. package/dist/types/meeting/index.d.ts +567 -496
  191. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  192. package/dist/types/meeting/muteState.d.ts +93 -25
  193. package/dist/types/meeting/request.d.ts +64 -43
  194. package/dist/types/meeting/util.d.ts +117 -1
  195. package/dist/types/meeting-info/index.d.ts +13 -1
  196. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  197. package/dist/types/meetings/collection.d.ts +17 -0
  198. package/dist/types/meetings/index.d.ts +113 -21
  199. package/dist/types/meetings/meetings.types.d.ts +4 -0
  200. package/dist/types/member/index.d.ts +14 -0
  201. package/dist/types/member/types.d.ts +32 -0
  202. package/dist/types/members/collection.d.ts +5 -0
  203. package/dist/types/members/index.d.ts +35 -2
  204. package/dist/types/members/request.d.ts +73 -9
  205. package/dist/types/members/types.d.ts +25 -0
  206. package/dist/types/members/util.d.ts +214 -1
  207. package/dist/types/metrics/constants.d.ts +17 -0
  208. package/dist/types/metrics/index.d.ts +4 -111
  209. package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
  210. package/dist/types/multistream/receiveSlot.d.ts +7 -3
  211. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  212. package/dist/types/multistream/remoteMedia.d.ts +3 -31
  213. package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
  214. package/dist/types/multistream/remoteMediaManager.d.ts +62 -2
  215. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  216. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  217. package/dist/types/reachability/index.d.ts +60 -95
  218. package/dist/types/reachability/request.d.ts +3 -1
  219. package/dist/types/reachability/util.d.ts +8 -0
  220. package/dist/types/reconnection-manager/index.d.ts +19 -0
  221. package/dist/types/recording-controller/index.d.ts +15 -1
  222. package/dist/types/recording-controller/util.d.ts +5 -4
  223. package/dist/types/roap/index.d.ts +2 -1
  224. package/dist/types/roap/request.d.ts +9 -8
  225. package/dist/types/roap/turnDiscovery.d.ts +39 -5
  226. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  227. package/dist/types/rtcMetrics/index.d.ts +61 -0
  228. package/dist/types/statsAnalyzer/index.d.ts +34 -12
  229. package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
  230. package/dist/types/webinar/collection.d.ts +16 -0
  231. package/dist/types/webinar/index.d.ts +5 -0
  232. package/dist/webinar/collection.js +44 -0
  233. package/dist/webinar/collection.js.map +1 -0
  234. package/dist/webinar/index.js +69 -0
  235. package/dist/webinar/index.js.map +1 -0
  236. package/package.json +22 -19
  237. package/src/annotation/annotation.types.ts +50 -0
  238. package/src/annotation/constants.ts +36 -0
  239. package/src/annotation/index.ts +328 -0
  240. package/src/breakouts/README.md +35 -11
  241. package/src/breakouts/breakout.ts +67 -9
  242. package/src/breakouts/events.ts +56 -0
  243. package/src/breakouts/index.ts +558 -59
  244. package/src/breakouts/utils.ts +42 -0
  245. package/src/common/errors/no-meeting-info.ts +24 -0
  246. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  247. package/src/common/errors/webex-errors.ts +44 -2
  248. package/src/common/logs/logger-proxy.ts +1 -1
  249. package/src/common/logs/request.ts +5 -1
  250. package/src/common/queue.ts +22 -8
  251. package/src/config.ts +4 -9
  252. package/src/constants.ts +229 -21
  253. package/src/controls-options-manager/enums.ts +12 -0
  254. package/src/controls-options-manager/index.ts +116 -21
  255. package/src/controls-options-manager/types.ts +59 -0
  256. package/src/controls-options-manager/util.ts +294 -14
  257. package/src/index.ts +44 -0
  258. package/src/interceptors/index.ts +3 -0
  259. package/src/interceptors/locusRetry.ts +67 -0
  260. package/src/interpretation/README.md +60 -0
  261. package/src/interpretation/collection.ts +19 -0
  262. package/src/interpretation/index.ts +349 -0
  263. package/src/interpretation/siLanguage.ts +18 -0
  264. package/src/locus-info/controlsUtils.ts +108 -0
  265. package/src/locus-info/index.ts +417 -59
  266. package/src/locus-info/infoUtils.ts +10 -2
  267. package/src/locus-info/mediaSharesUtils.ts +80 -0
  268. package/src/locus-info/parser.ts +258 -47
  269. package/src/locus-info/selfUtils.ts +81 -5
  270. package/src/media/index.ts +100 -108
  271. package/src/media/properties.ts +88 -117
  272. package/src/mediaQualityMetrics/config.ts +103 -238
  273. package/src/meeting/in-meeting-actions.ts +171 -3
  274. package/src/meeting/index.ts +3411 -2435
  275. package/src/meeting/locusMediaRequest.ts +313 -0
  276. package/src/meeting/muteState.ts +223 -136
  277. package/src/meeting/request.ts +155 -120
  278. package/src/meeting/util.ts +685 -395
  279. package/src/meeting-info/index.ts +81 -8
  280. package/src/meeting-info/meeting-info-v2.ts +170 -14
  281. package/src/meeting-info/util.ts +1 -1
  282. package/src/meeting-info/utilv2.ts +23 -23
  283. package/src/meetings/collection.ts +33 -0
  284. package/src/meetings/index.ts +507 -127
  285. package/src/meetings/meetings.types.ts +12 -0
  286. package/src/meetings/request.ts +2 -0
  287. package/src/meetings/util.ts +81 -12
  288. package/src/member/index.ts +58 -0
  289. package/src/member/types.ts +38 -0
  290. package/src/member/util.ts +141 -25
  291. package/src/members/collection.ts +8 -0
  292. package/src/members/index.ts +134 -8
  293. package/src/members/request.ts +97 -17
  294. package/src/members/types.ts +29 -0
  295. package/src/members/util.ts +333 -240
  296. package/src/metrics/constants.ts +17 -0
  297. package/src/metrics/index.ts +1 -469
  298. package/src/multistream/mediaRequestManager.ts +271 -56
  299. package/src/multistream/receiveSlot.ts +11 -4
  300. package/src/multistream/receiveSlotManager.ts +34 -24
  301. package/src/multistream/remoteMedia.ts +5 -3
  302. package/src/multistream/remoteMediaGroup.ts +78 -0
  303. package/src/multistream/remoteMediaManager.ts +248 -44
  304. package/src/multistream/sendSlotManager.ts +199 -0
  305. package/src/reachability/clusterReachability.ts +320 -0
  306. package/src/reachability/index.ts +229 -346
  307. package/src/reachability/request.ts +8 -4
  308. package/src/reachability/util.ts +24 -0
  309. package/src/reconnection-manager/index.ts +128 -97
  310. package/src/recording-controller/index.ts +20 -3
  311. package/src/recording-controller/util.ts +26 -9
  312. package/src/roap/index.ts +52 -23
  313. package/src/roap/request.ts +48 -67
  314. package/src/roap/turnDiscovery.ts +147 -49
  315. package/src/rtcMetrics/constants.ts +3 -0
  316. package/src/rtcMetrics/index.ts +166 -0
  317. package/src/statsAnalyzer/index.ts +457 -416
  318. package/src/statsAnalyzer/mqaUtil.ts +317 -170
  319. package/src/webinar/collection.ts +31 -0
  320. package/src/webinar/index.ts +62 -0
  321. package/test/integration/spec/converged-space-meetings.js +60 -3
  322. package/test/integration/spec/journey.js +320 -261
  323. package/test/integration/spec/space-meeting.js +76 -3
  324. package/test/unit/spec/annotation/index.ts +418 -0
  325. package/test/unit/spec/breakouts/breakout.ts +118 -28
  326. package/test/unit/spec/breakouts/events.ts +89 -0
  327. package/test/unit/spec/breakouts/index.ts +1349 -114
  328. package/test/unit/spec/breakouts/utils.js +52 -1
  329. package/test/unit/spec/common/queue.js +31 -2
  330. package/test/unit/spec/controls-options-manager/index.js +163 -0
  331. package/test/unit/spec/controls-options-manager/util.js +576 -60
  332. package/test/unit/spec/fixture/locus.js +1 -0
  333. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  334. package/test/unit/spec/interpretation/collection.ts +15 -0
  335. package/test/unit/spec/interpretation/index.ts +625 -0
  336. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  337. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  338. package/test/unit/spec/locus-info/index.js +1363 -37
  339. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  340. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  341. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  342. package/test/unit/spec/locus-info/parser.js +116 -35
  343. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  344. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  345. package/test/unit/spec/media/index.ts +173 -81
  346. package/test/unit/spec/media/properties.ts +2 -2
  347. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  348. package/test/unit/spec/meeting/index.js +6821 -2172
  349. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  350. package/test/unit/spec/meeting/muteState.js +402 -212
  351. package/test/unit/spec/meeting/request.js +473 -54
  352. package/test/unit/spec/meeting/utils.js +773 -67
  353. package/test/unit/spec/meeting-info/index.js +300 -0
  354. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  355. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  356. package/test/unit/spec/meetings/collection.js +26 -0
  357. package/test/unit/spec/meetings/index.js +1415 -213
  358. package/test/unit/spec/meetings/utils.js +229 -2
  359. package/test/unit/spec/member/index.js +61 -6
  360. package/test/unit/spec/member/util.js +510 -34
  361. package/test/unit/spec/members/index.js +432 -1
  362. package/test/unit/spec/members/request.js +206 -27
  363. package/test/unit/spec/members/utils.js +210 -0
  364. package/test/unit/spec/metrics/index.js +1 -50
  365. package/test/unit/spec/multistream/mediaRequestManager.ts +781 -114
  366. package/test/unit/spec/multistream/receiveSlot.ts +9 -1
  367. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  368. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  369. package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
  370. package/test/unit/spec/multistream/remoteMediaManager.ts +525 -0
  371. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  372. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  373. package/test/unit/spec/reachability/index.ts +551 -14
  374. package/test/unit/spec/reachability/request.js +3 -1
  375. package/test/unit/spec/reachability/util.ts +40 -0
  376. package/test/unit/spec/reconnection-manager/index.js +171 -11
  377. package/test/unit/spec/recording-controller/index.js +294 -218
  378. package/test/unit/spec/recording-controller/util.js +223 -96
  379. package/test/unit/spec/roap/index.ts +180 -83
  380. package/test/unit/spec/roap/request.ts +100 -62
  381. package/test/unit/spec/roap/turnDiscovery.ts +388 -96
  382. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  383. package/test/unit/spec/stats-analyzer/index.js +1252 -12
  384. package/test/unit/spec/webinar/collection.ts +13 -0
  385. package/test/unit/spec/webinar/index.ts +60 -0
  386. package/test/utils/integrationTestUtils.js +46 -0
  387. package/test/utils/testUtils.js +0 -57
  388. package/test/utils/webex-test-users.js +12 -4
  389. package/dist/metrics/config.js +0 -289
  390. package/dist/metrics/config.js.map +0 -1
  391. package/dist/types/metrics/config.d.ts +0 -169
  392. package/src/index.js +0 -18
  393. package/src/metrics/config.ts +0 -485
package/dist/index.js CHANGED
@@ -8,23 +8,128 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
8
8
  _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
- exports.REACTIONS = exports.CONSTANTS = void 0;
11
+ exports.CONSTANTS = void 0;
12
+ _Object$defineProperty(exports, "DisplaySurface", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _mediaHelpers.DisplaySurface;
16
+ }
17
+ });
18
+ _Object$defineProperty(exports, "FacingMode", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _mediaHelpers.FacingMode;
22
+ }
23
+ });
24
+ _Object$defineProperty(exports, "LocalCameraStream", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _mediaHelpers.LocalCameraStream;
28
+ }
29
+ });
30
+ _Object$defineProperty(exports, "LocalCameraStreamEventNames", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _mediaHelpers.LocalCameraStreamEventNames;
34
+ }
35
+ });
36
+ _Object$defineProperty(exports, "LocalDisplayStream", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _mediaHelpers.LocalDisplayStream;
40
+ }
41
+ });
42
+ _Object$defineProperty(exports, "LocalMicrophoneStream", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _mediaHelpers.LocalMicrophoneStream;
46
+ }
47
+ });
48
+ _Object$defineProperty(exports, "LocalMicrophoneStreamEventNames", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _mediaHelpers.LocalMicrophoneStreamEventNames;
52
+ }
53
+ });
54
+ _Object$defineProperty(exports, "LocalStream", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _mediaHelpers.LocalStream;
58
+ }
59
+ });
60
+ _Object$defineProperty(exports, "LocalStreamEventNames", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _mediaHelpers.LocalStreamEventNames;
64
+ }
65
+ });
66
+ _Object$defineProperty(exports, "LocalSystemAudioStream", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _mediaHelpers.LocalSystemAudioStream;
70
+ }
71
+ });
72
+ _Object$defineProperty(exports, "PresetCameraConstraints", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _mediaHelpers.PresetCameraConstraints;
76
+ }
77
+ });
78
+ exports.REACTIONS = void 0;
12
79
  _Object$defineProperty(exports, "RemoteMedia", {
13
80
  enumerable: true,
14
81
  get: function get() {
15
82
  return _remoteMedia.RemoteMedia;
16
83
  }
17
84
  });
85
+ _Object$defineProperty(exports, "StreamEventNames", {
86
+ enumerable: true,
87
+ get: function get() {
88
+ return _mediaHelpers.StreamEventNames;
89
+ }
90
+ });
18
91
  _Object$defineProperty(exports, "TriggerProxy", {
19
92
  enumerable: true,
20
93
  get: function get() {
21
94
  return _triggerProxy.default;
22
95
  }
23
96
  });
97
+ _Object$defineProperty(exports, "createCameraStream", {
98
+ enumerable: true,
99
+ get: function get() {
100
+ return _mediaHelpers.createCameraStream;
101
+ }
102
+ });
103
+ _Object$defineProperty(exports, "createDisplayStream", {
104
+ enumerable: true,
105
+ get: function get() {
106
+ return _mediaHelpers.createDisplayStream;
107
+ }
108
+ });
109
+ _Object$defineProperty(exports, "createDisplayStreamWithAudio", {
110
+ enumerable: true,
111
+ get: function get() {
112
+ return _mediaHelpers.createDisplayStreamWithAudio;
113
+ }
114
+ });
115
+ _Object$defineProperty(exports, "createMicrophoneStream", {
116
+ enumerable: true,
117
+ get: function get() {
118
+ return _mediaHelpers.createMicrophoneStream;
119
+ }
120
+ });
24
121
  exports.default = void 0;
122
+ _Object$defineProperty(exports, "getDevices", {
123
+ enumerable: true,
124
+ get: function get() {
125
+ return _mediaHelpers.getDevices;
126
+ }
127
+ });
25
128
  var _webexCore = require("@webex/webex-core");
26
129
  var _meetings = _interopRequireDefault(require("./meetings"));
27
130
  var _config = _interopRequireDefault(require("./config"));
131
+ var _interceptors = require("./interceptors");
132
+ var _mediaHelpers = require("@webex/media-helpers");
28
133
  var _CONSTANTS = _interopRequireWildcard(require("./constants"));
29
134
  exports.CONSTANTS = _CONSTANTS;
30
135
  var _REACTIONS = _interopRequireWildcard(require("./reactions/reactions"));
@@ -36,7 +141,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
36
141
  /* eslint-env browser */
37
142
 
38
143
  (0, _webexCore.registerPlugin)('meetings', _meetings.default, {
39
- config: _config.default
144
+ config: _config.default,
145
+ interceptors: {
146
+ LocusRetryStatusInterceptor: _interceptors.LocusRetryStatusInterceptor.create
147
+ }
40
148
  });
41
149
  var _default = _meetings.default;
42
150
  exports.default = _default;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerPlugin","Meetings","config"],"sources":["index.js"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\n\nregisterPlugin('meetings', Meetings, {\n config,\n});\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\nexport * as REACTIONS from './reactions/reactions';\n\nexport {RemoteMedia} from './multistream/remoteMedia';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA;AAEA;AACA;AAA8B;AAAA;AAAA;AAAA;AAW9B;AAEA;AAAsE;AAAA;AAjBtE;;AAMA,IAAAA,yBAAc,EAAC,UAAU,EAAEC,iBAAQ,EAAE;EACnCC,MAAM,EAANA;AACF,CAAC,CAAC;AAAC,eAEYD,iBAAQ;AAAA"}
1
+ {"version":3,"names":["registerPlugin","Meetings","config","interceptors","LocusRetryStatusInterceptor","create"],"sources":["index.ts"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\nimport {LocusRetryStatusInterceptor} from './interceptors';\n\nregisterPlugin('meetings', Meetings, {\n config,\n interceptors: {\n LocusRetryStatusInterceptor: LocusRetryStatusInterceptor.create,\n },\n});\n\nexport {\n getDevices,\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n type ServerMuteReason,\n LocalMicrophoneStreamEventNames,\n LocalCameraStreamEventNames,\n LocalMicrophoneStream,\n LocalCameraStream,\n createMicrophoneStream,\n createCameraStream,\n createDisplayStream,\n createDisplayStreamWithAudio,\n FacingMode,\n DisplaySurface,\n PresetCameraConstraints,\n type VideoContentHint,\n} from '@webex/media-helpers';\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\nexport * as REACTIONS from './reactions/reactions';\n\nexport {RemoteMedia} from './multistream/remoteMedia';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAEA;AACA;AACA;AASA;AAoB8B;AAAA;AAAA;AAAA;AAO9B;AAEA;AAAsE;AAAA;AA3CtE;;AAOA,IAAAA,yBAAc,EAAC,UAAU,EAAEC,iBAAQ,EAAE;EACnCC,MAAM,EAANA,eAAM;EACNC,YAAY,EAAE;IACZC,2BAA2B,EAAEA,yCAA2B,CAACC;EAC3D;AACF,CAAC,CAAC;AAAC,eAwBYJ,iBAAQ;AAAA"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ _Object$defineProperty(exports, "LocusRetryStatusInterceptor", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _locusRetry.default;
12
+ }
13
+ });
14
+ var _locusRetry = _interopRequireDefault(require("./locusRetry"));
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["import LocusRetryStatusInterceptor from './locusRetry';\n\nexport {LocusRetryStatusInterceptor};\n"],"mappings":";;;;;;;;;;;;;AAAA"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
+ _Object$defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
15
+ var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
+ var _httpCore = require("@webex/http-core");
18
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
19
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
20
+ var rateLimitExpiryTime = new _weakMap.default();
21
+ /**
22
+ * @class
23
+ */
24
+ var LocusRetryStatusInterceptor = /*#__PURE__*/function (_Interceptor) {
25
+ (0, _inherits2.default)(LocusRetryStatusInterceptor, _Interceptor);
26
+ var _super = _createSuper(LocusRetryStatusInterceptor);
27
+ function LocusRetryStatusInterceptor() {
28
+ (0, _classCallCheck2.default)(this, LocusRetryStatusInterceptor);
29
+ return _super.apply(this, arguments);
30
+ }
31
+ (0, _createClass2.default)(LocusRetryStatusInterceptor, [{
32
+ key: "onResponseError",
33
+ value:
34
+ /**
35
+ * Handle response errors
36
+ * @param {Object} options
37
+ * @param {WebexHttpError} reason
38
+ * @returns {Promise<WebexHttpError>}
39
+ */
40
+ function onResponseError(options, reason) {
41
+ if ((reason.statusCode === 503 || reason.statusCode === 429) && options.uri.includes('locus')) {
42
+ var hasRetriedLocusRequest = rateLimitExpiryTime.get(this);
43
+ var retryAfterTime = options.headers['retry-after'] || 2000;
44
+ if (hasRetriedLocusRequest) {
45
+ rateLimitExpiryTime.set(this, false);
46
+ return _promise.default.reject(options);
47
+ }
48
+ rateLimitExpiryTime.set(this, true);
49
+ return this.handleRetryRequestLocusServiceError(options, retryAfterTime);
50
+ }
51
+ return _promise.default.reject(reason);
52
+ }
53
+
54
+ /**
55
+ * Handle retries for locus service unavailable errors
56
+ * @param {Object} options associated with the request
57
+ * @param {number} retryAfterTime retry after time in milliseconds
58
+ * @returns {Promise}
59
+ */
60
+ }, {
61
+ key: "handleRetryRequestLocusServiceError",
62
+ value: function handleRetryRequestLocusServiceError(options, retryAfterTime) {
63
+ var _this = this;
64
+ return new _promise.default(function (resolve, reject) {
65
+ var timeout = setTimeout(function () {
66
+ clearTimeout(timeout);
67
+
68
+ // @ts-ignore
69
+ _this.webex.request({
70
+ method: options.method,
71
+ uri: options.uri,
72
+ body: options.body
73
+ }).then(resolve).catch(reject);
74
+ }, retryAfterTime);
75
+ });
76
+ }
77
+ }], [{
78
+ key: "create",
79
+ value:
80
+ /**
81
+ * @returns {LocusRetryStatusInterceptor}
82
+ */
83
+ function create() {
84
+ // @ts-ignore
85
+ return new LocusRetryStatusInterceptor({
86
+ webex: this
87
+ });
88
+ }
89
+ }]);
90
+ return LocusRetryStatusInterceptor;
91
+ }(_httpCore.Interceptor);
92
+ exports.default = LocusRetryStatusInterceptor;
93
+ //# sourceMappingURL=locusRetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["rateLimitExpiryTime","LocusRetryStatusInterceptor","options","reason","statusCode","uri","includes","hasRetriedLocusRequest","get","retryAfterTime","headers","set","reject","handleRetryRequestLocusServiceError","resolve","timeout","setTimeout","clearTimeout","webex","request","method","body","then","catch","Interceptor"],"sources":["locusRetry.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\nconst rateLimitExpiryTime = new WeakMap();\n/**\n * @class\n */\nexport default class LocusRetryStatusInterceptor extends Interceptor {\n /**\n * @returns {LocusRetryStatusInterceptor}\n */\n static create() {\n // @ts-ignore\n return new LocusRetryStatusInterceptor({webex: this});\n }\n\n /**\n * Handle response errors\n * @param {Object} options\n * @param {WebexHttpError} reason\n * @returns {Promise<WebexHttpError>}\n */\n onResponseError(options, reason) {\n if ((reason.statusCode === 503 || reason.statusCode === 429) && options.uri.includes('locus')) {\n const hasRetriedLocusRequest = rateLimitExpiryTime.get(this);\n const retryAfterTime = options.headers['retry-after'] || 2000;\n\n if (hasRetriedLocusRequest) {\n rateLimitExpiryTime.set(this, false);\n\n return Promise.reject(options);\n }\n rateLimitExpiryTime.set(this, true);\n\n return this.handleRetryRequestLocusServiceError(options, retryAfterTime);\n }\n\n return Promise.reject(reason);\n }\n\n /**\n * Handle retries for locus service unavailable errors\n * @param {Object} options associated with the request\n * @param {number} retryAfterTime retry after time in milliseconds\n * @returns {Promise}\n */\n handleRetryRequestLocusServiceError(options, retryAfterTime) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n clearTimeout(timeout);\n\n // @ts-ignore\n this.webex\n .request({\n method: options.method,\n uri: options.uri,\n body: options.body,\n })\n .then(resolve)\n .catch(reject);\n }, retryAfterTime);\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;AAE7C,IAAMA,mBAAmB,GAAG,sBAAa;AACzC;AACA;AACA;AAFA,IAGqBC,2BAA2B;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAS9C;AACF;AACA;AACA;AACA;AACA;IACE,yBAAgBC,OAAO,EAAEC,MAAM,EAAE;MAC/B,IAAI,CAACA,MAAM,CAACC,UAAU,KAAK,GAAG,IAAID,MAAM,CAACC,UAAU,KAAK,GAAG,KAAKF,OAAO,CAACG,GAAG,CAACC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC7F,IAAMC,sBAAsB,GAAGP,mBAAmB,CAACQ,GAAG,CAAC,IAAI,CAAC;QAC5D,IAAMC,cAAc,GAAGP,OAAO,CAACQ,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI;QAE7D,IAAIH,sBAAsB,EAAE;UAC1BP,mBAAmB,CAACW,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;UAEpC,OAAO,iBAAQC,MAAM,CAACV,OAAO,CAAC;QAChC;QACAF,mBAAmB,CAACW,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QAEnC,OAAO,IAAI,CAACE,mCAAmC,CAACX,OAAO,EAAEO,cAAc,CAAC;MAC1E;MAEA,OAAO,iBAAQG,MAAM,CAACT,MAAM,CAAC;IAC/B;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,6CAAoCD,OAAO,EAAEO,cAAc,EAAE;MAAA;MAC3D,OAAO,qBAAY,UAACK,OAAO,EAAEF,MAAM,EAAK;QACtC,IAAMG,OAAO,GAAGC,UAAU,CAAC,YAAM;UAC/BC,YAAY,CAACF,OAAO,CAAC;;UAErB;UACA,KAAI,CAACG,KAAK,CACPC,OAAO,CAAC;YACPC,MAAM,EAAElB,OAAO,CAACkB,MAAM;YACtBf,GAAG,EAAEH,OAAO,CAACG,GAAG;YAChBgB,IAAI,EAAEnB,OAAO,CAACmB;UAChB,CAAC,CAAC,CACDC,IAAI,CAACR,OAAO,CAAC,CACbS,KAAK,CAACX,MAAM,CAAC;QAClB,CAAC,EAAEH,cAAc,CAAC;MACpB,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA;IAtDD;AACF;AACA;IACE,kBAAgB;MACd;MACA,OAAO,IAAIR,2BAA2B,CAAC;QAACiB,KAAK,EAAE;MAAI,CAAC,CAAC;IACvD;EAAC;EAAA;AAAA,EAPsDM,qBAAW;AAAA"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _ampersandCollection = _interopRequireDefault(require("ampersand-collection"));
10
+ var _constants = require("../constants");
11
+ var _siLanguage = _interopRequireDefault(require("./siLanguage"));
12
+ /*!
13
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
14
+ */
15
+
16
+ var SILanguageCollection = _ampersandCollection.default.extend({
17
+ model: _siLanguage.default,
18
+ namespace: _constants.MEETINGS,
19
+ mainIndex: 'languageName'
20
+ });
21
+ var _default = SILanguageCollection;
22
+ exports.default = _default;
23
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SILanguageCollection","AmpCollection","extend","model","SILanguage","namespace","MEETINGS","mainIndex"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport AmpCollection from 'ampersand-collection';\n\nimport {MEETINGS} from '../constants';\n\nimport SILanguage from './siLanguage';\n\nconst SILanguageCollection = AmpCollection.extend({\n model: SILanguage,\n\n namespace: MEETINGS,\n\n mainIndex: 'languageName',\n});\n\nexport default SILanguageCollection;\n"],"mappings":";;;;;;;;AAIA;AAEA;AAEA;AARA;AACA;AACA;;AAQA,IAAMA,oBAAoB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAChDC,KAAK,EAAEC,mBAAU;EAEjBC,SAAS,EAAEC,mBAAQ;EAEnBC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,eAEYP,oBAAoB;AAAA"}
@@ -0,0 +1,380 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
+ var _webexCore = require("@webex/webex-core");
11
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
12
+ var _constants = require("../constants");
13
+ var _collection = _interopRequireDefault(require("./collection"));
14
+ /*!
15
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
16
+ */
17
+
18
+ /**
19
+ * @class SimultaneousInterpretation
20
+ */
21
+ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
22
+ namespace: _constants.MEETINGS,
23
+ collections: {
24
+ siLanguages: _collection.default
25
+ },
26
+ props: {
27
+ locusUrl: 'string',
28
+ // appears current meeting's locus url
29
+ approvalUrl: 'string',
30
+ // appears current meeting's approval url for handoff between interpreters
31
+ originalLanguage: 'string',
32
+ // appears current meeting's original language
33
+ sourceLanguage: 'string',
34
+ // appears self interpreter's source language
35
+ targetLanguage: 'string',
36
+ // appears self interpreter's target language
37
+ receiveLanguage: 'string',
38
+ // appears self's receive language
39
+ order: 'number',
40
+ // appears the order of self as interpreter
41
+ isActive: 'boolean',
42
+ // appears self is interpreter and is active
43
+ selfParticipantId: 'string',
44
+ // appears the self participant id
45
+ canManageInterpreters: 'boolean',
46
+ // appears the ability to manage interpreters
47
+ supportLanguages: 'array',
48
+ // appears the support languages
49
+ meetingSIEnabled: 'boolean',
50
+ // appears the meeting support SI feature
51
+ hostSIEnabled: 'boolean',
52
+ // appears the meeting host/interpreter feature of SI enabled
53
+ selfIsInterpreter: 'boolean' // current user is interpreter or not
54
+ },
55
+
56
+ derived: {
57
+ shouldQuerySupportLanguages: {
58
+ cache: false,
59
+ deps: ['canManageInterpreters', 'hostSIEnabled'],
60
+ /**
61
+ * Returns should query support languages or not
62
+ * @returns {boolean}
63
+ */
64
+ fn: function fn() {
65
+ return !!(this.canManageInterpreters && this.hostSIEnabled);
66
+ }
67
+ }
68
+ },
69
+ /**
70
+ * initialize for interpretation
71
+ * @returns {void}
72
+ */
73
+ initialize: function initialize() {
74
+ var _this = this;
75
+ this.listenTo(this, 'change:shouldQuerySupportLanguages', function () {
76
+ if (_this.canManageInterpreters && !_this.supportLanguages) {
77
+ _this.querySupportLanguages();
78
+ }
79
+ });
80
+ this.listenToHandoffRequests();
81
+ },
82
+ /**
83
+ * Calls this to clean up listeners
84
+ * @returns {void}
85
+ */
86
+ cleanUp: function cleanUp() {
87
+ this.stopListening();
88
+ },
89
+ /**
90
+ * Update the current locus url of the meeting
91
+ * @param {string} locusUrl // locus url
92
+ * @returns {void}
93
+ */
94
+ locusUrlUpdate: function locusUrlUpdate(locusUrl) {
95
+ this.set('locusUrl', locusUrl);
96
+ },
97
+ /**
98
+ * Update the approval url for handoff
99
+ * @param {string} approvalUrl // approval url
100
+ * @returns {void}
101
+ */
102
+ approvalUrlUpdate: function approvalUrlUpdate(approvalUrl) {
103
+ this.set('approvalUrl', approvalUrl);
104
+ },
105
+ /**
106
+ * Update whether self has capability to manage interpreters (only host can manage it)
107
+ * @param {boolean} canManageInterpreters
108
+ * @returns {void}
109
+ */
110
+ updateCanManageInterpreters: function updateCanManageInterpreters(canManageInterpreters) {
111
+ this.set('canManageInterpreters', canManageInterpreters);
112
+ },
113
+ /**
114
+ * Update whether the meeting's host si is enabled or not
115
+ * @param {boolean} hostSIEnabled
116
+ * @returns {void}
117
+ */
118
+ updateHostSIEnabled: function updateHostSIEnabled(hostSIEnabled) {
119
+ this.set('hostSIEnabled', hostSIEnabled);
120
+ },
121
+ /**
122
+ * Update whether the meeting support SI feature or not from meeting info
123
+ * @param {boolean} meetingSIEnabled
124
+ * @param {boolean} selfIsInterpreter
125
+ * @returns {void}
126
+ */
127
+ updateMeetingSIEnabled: function updateMeetingSIEnabled(meetingSIEnabled, selfIsInterpreter) {
128
+ this.set('meetingSIEnabled', meetingSIEnabled);
129
+ this.set('selfIsInterpreter', selfIsInterpreter);
130
+ },
131
+ /**
132
+ * Update the interpretation languages channels which user can choose to subscribe
133
+ * @param {Object} interpretation
134
+ * @returns {void}
135
+ */
136
+ updateInterpretation: function updateInterpretation(interpretation) {
137
+ this.siLanguages.set((interpretation === null || interpretation === void 0 ? void 0 : interpretation.siLanguages) || []);
138
+ },
139
+ /**
140
+ * Update self's interpretation information (self is interpreter)
141
+ * @param {Object} interpretation
142
+ * @param {String} selfParticipantId
143
+ * @returns {bool} is target language changed
144
+ */
145
+ updateSelfInterpretation: function updateSelfInterpretation(_ref) {
146
+ var interpretation = _ref.interpretation,
147
+ selfParticipantId = _ref.selfParticipantId;
148
+ var preTargetLanguage = this.targetLanguage;
149
+ var _ref2 = interpretation || {},
150
+ originalLanguage = _ref2.originalLanguage,
151
+ sourceLanguage = _ref2.sourceLanguage,
152
+ order = _ref2.order,
153
+ isActive = _ref2.isActive,
154
+ targetLanguage = _ref2.targetLanguage,
155
+ receiveLanguage = _ref2.receiveLanguage;
156
+ this.set({
157
+ originalLanguage: originalLanguage,
158
+ sourceLanguage: sourceLanguage,
159
+ order: order,
160
+ isActive: isActive,
161
+ targetLanguage: targetLanguage,
162
+ receiveLanguage: receiveLanguage
163
+ });
164
+ this.set('selfParticipantId', selfParticipantId);
165
+ this.set('selfIsInterpreter', !!targetLanguage);
166
+ return !!(preTargetLanguage !== targetLanguage);
167
+ },
168
+ /**
169
+ * Get the language code of the interpreter target language
170
+ * @returns {number}
171
+ */
172
+ getTargetLanguageCode: function getTargetLanguageCode() {
173
+ if (this.selfIsInterpreter) {
174
+ var _this$siLanguages$get;
175
+ return (_this$siLanguages$get = this.siLanguages.get(this.targetLanguage)) === null || _this$siLanguages$get === void 0 ? void 0 : _this$siLanguages$get.languageCode;
176
+ }
177
+ return 0;
178
+ },
179
+ /**
180
+ * query interpretation languages
181
+ * @returns {Promise}
182
+ */
183
+ querySupportLanguages: function querySupportLanguages() {
184
+ var _this2 = this;
185
+ return this.request({
186
+ method: _constants.HTTP_VERBS.GET,
187
+ uri: "".concat(this.locusUrl, "/languages/interpretation")
188
+ }).then(function (result) {
189
+ var _result$body;
190
+ _this2.set('supportLanguages', (_result$body = result.body) === null || _result$body === void 0 ? void 0 : _result$body.siLanguages);
191
+ _this2.trigger(_constants.INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);
192
+ }).catch(function (error) {
193
+ _loggerProxy.default.logger.error('Meeting:interpretation#querySupportLanguages failed', error);
194
+ throw error;
195
+ });
196
+ },
197
+ /**
198
+ * get interpreters of the meeting
199
+ * @returns {Promise}
200
+ */
201
+ getInterpreters: function getInterpreters() {
202
+ return this.request({
203
+ method: _constants.HTTP_VERBS.GET,
204
+ uri: "".concat(this.locusUrl, "/interpretation/interpreters")
205
+ }).catch(function (error) {
206
+ _loggerProxy.default.logger.error('Meeting:interpretation#getInterpreters failed', error);
207
+ throw error;
208
+ });
209
+ },
210
+ /**
211
+ * update interpreters of the meeting
212
+ * @param {Array} interpreters
213
+ * @returns {Promise}
214
+ */
215
+ updateInterpreters: function updateInterpreters(interpreters) {
216
+ return this.request({
217
+ method: _constants.HTTP_VERBS.PATCH,
218
+ uri: "".concat(this.locusUrl, "/controls"),
219
+ body: {
220
+ interpretation: {
221
+ interpreters: interpreters
222
+ }
223
+ }
224
+ }).catch(function (error) {
225
+ _loggerProxy.default.logger.error('Meeting:interpretation#updateInterpreters failed', error);
226
+ throw error;
227
+ });
228
+ },
229
+ /**
230
+ * Change direction of interpretation for an interpreter participant
231
+ * @returns {Promise}
232
+ */
233
+ changeDirection: function changeDirection() {
234
+ if (!this.sourceLanguage || !this.targetLanguage) {
235
+ return _promise.default.reject(new Error('Missing sourceLanguage or targetLanguage'));
236
+ }
237
+ if (!this.selfParticipantId) {
238
+ return _promise.default.reject(new Error('Missing self participant id'));
239
+ }
240
+ return this.request({
241
+ method: _constants.HTTP_VERBS.PATCH,
242
+ uri: "".concat(this.locusUrl, "/participant/").concat(this.selfParticipantId, "/controls"),
243
+ body: {
244
+ interpretation: {
245
+ sourceLanguage: this.targetLanguage,
246
+ targetLanguage: this.sourceLanguage,
247
+ isActive: this.isActive,
248
+ order: this.order
249
+ }
250
+ }
251
+ }).catch(function (error) {
252
+ _loggerProxy.default.logger.error('Meeting:interpretation#changeDirection failed', error);
253
+ throw error;
254
+ });
255
+ },
256
+ /**
257
+ * Sets up a listener for handoff requests from mercury
258
+ * @returns {void}
259
+ */
260
+ listenToHandoffRequests: function listenToHandoffRequests() {
261
+ var _this3 = this;
262
+ this.listenTo(this.webex.internal.mercury, 'event:locus.approval_request', function (event) {
263
+ var _event$data, _event$data$approval;
264
+ if ((event === null || event === void 0 ? void 0 : (_event$data = event.data) === null || _event$data === void 0 ? void 0 : (_event$data$approval = _event$data.approval) === null || _event$data$approval === void 0 ? void 0 : _event$data$approval.resourceType) === _constants.INTERPRETATION.RESOURCE_TYPE) {
265
+ var _receivers$;
266
+ var _event$data$approval2 = event.data.approval,
267
+ receivers = _event$data$approval2.receivers,
268
+ initiator = _event$data$approval2.initiator,
269
+ actionType = _event$data$approval2.actionType,
270
+ url = _event$data$approval2.url;
271
+ var receiverId = receivers === null || receivers === void 0 ? void 0 : (_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.participantId;
272
+ var isReceiver = !!receiverId && receiverId === _this3.selfParticipantId;
273
+ var senderId = initiator === null || initiator === void 0 ? void 0 : initiator.participantId;
274
+ var isSender = !!senderId && senderId === _this3.selfParticipantId;
275
+ if (!isReceiver && !isSender) {
276
+ return;
277
+ }
278
+ _this3.trigger(_constants.INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, {
279
+ actionType: actionType,
280
+ isReceiver: isReceiver,
281
+ isSender: isSender,
282
+ senderId: senderId,
283
+ receiverId: receiverId,
284
+ url: url
285
+ });
286
+ }
287
+ });
288
+ },
289
+ /**
290
+ * handoff the active interpreter role to another interpreter in same group, only the interpreter is allowed to call this api
291
+ * @param {string} participantId the participant id you want to hand off
292
+ * @returns {Promise}
293
+ */
294
+ handoffInterpreter: function handoffInterpreter(participantId) {
295
+ if (!participantId) {
296
+ return _promise.default.reject(new Error('Missing target participant id'));
297
+ }
298
+ if (!this.approvalUrl) {
299
+ return _promise.default.reject(new Error('Missing approval url'));
300
+ }
301
+ return this.request({
302
+ method: _constants.HTTP_VERBS.POST,
303
+ uri: this.approvalUrl,
304
+ body: {
305
+ actionType: _constants.INTERPRETATION.ACTION_TYPE.OFFERED,
306
+ resourceType: _constants.INTERPRETATION.RESOURCE_TYPE,
307
+ receivers: [{
308
+ participantId: participantId
309
+ }]
310
+ }
311
+ }).catch(function (error) {
312
+ _loggerProxy.default.logger.error('Meeting:interpretation#handoffInterpreter failed', error);
313
+ throw error;
314
+ });
315
+ },
316
+ /**
317
+ * the in-active interpreter request to hand off the active role to self
318
+ * @returns {Promise}
319
+ */
320
+ requestHandoff: function requestHandoff() {
321
+ if (!this.approvalUrl) {
322
+ return _promise.default.reject(new Error('Missing approval url'));
323
+ }
324
+ return this.request({
325
+ method: _constants.HTTP_VERBS.POST,
326
+ uri: this.approvalUrl,
327
+ body: {
328
+ actionType: _constants.INTERPRETATION.ACTION_TYPE.REQUESTED,
329
+ resourceType: _constants.INTERPRETATION.RESOURCE_TYPE
330
+ }
331
+ }).catch(function (error) {
332
+ _loggerProxy.default.logger.error('Meeting:interpretation#requestHandoff failed', error);
333
+ throw error;
334
+ });
335
+ },
336
+ /**
337
+ * accept the request of handoff
338
+ * @param {String} url the url get from last approval event
339
+ * @returns {Promise}
340
+ */
341
+ acceptRequest: function acceptRequest(url) {
342
+ if (!url) {
343
+ return _promise.default.reject(new Error('Missing the url to accept'));
344
+ }
345
+ return this.request({
346
+ method: _constants.HTTP_VERBS.PUT,
347
+ uri: url,
348
+ body: {
349
+ actionType: _constants.INTERPRETATION.ACTION_TYPE.ACCEPTED
350
+ }
351
+ }).catch(function (error) {
352
+ _loggerProxy.default.logger.error('Meeting:interpretation#acceptRequest failed', error);
353
+ throw error;
354
+ });
355
+ },
356
+ /**
357
+ * decline the request of handoff
358
+ * @param {String} url the url get from last approval event
359
+ * @returns {Promise}
360
+ */
361
+ declineRequest: function declineRequest(url) {
362
+ if (!url) {
363
+ return _promise.default.reject(new Error('Missing the url to decline'));
364
+ }
365
+ return this.request({
366
+ method: _constants.HTTP_VERBS.PUT,
367
+ uri: url,
368
+ body: {
369
+ actionType: _constants.INTERPRETATION.ACTION_TYPE.DECLINED
370
+ }
371
+ }).catch(function (error) {
372
+ _loggerProxy.default.logger.error('Meeting:interpretation#declineRequest failed', error);
373
+ throw error;
374
+ });
375
+ },
376
+ version: "3.0.0-beta.391"
377
+ });
378
+ var _default = SimultaneousInterpretation;
379
+ exports.default = _default;
380
+ //# sourceMappingURL=index.js.map