@webex/plugin-meetings 3.0.0-beta.41 → 3.0.0-beta.410

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 (398) 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 +625 -123
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +27 -8
  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 +6 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +247 -34
  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 +116 -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 +4531 -2994
  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 +236 -136
  77. package/dist/meeting/muteState.js.map +1 -1
  78. package/dist/meeting/request.js +189 -155
  79. package/dist/meeting/request.js.map +1 -1
  80. package/dist/meeting/util.js +676 -417
  81. package/dist/meeting/util.js.map +1 -1
  82. package/dist/meeting/voicea-meeting.js +172 -0
  83. package/dist/meeting/voicea-meeting.js.map +1 -0
  84. package/dist/meeting-info/index.js +73 -7
  85. package/dist/meeting-info/index.js.map +1 -1
  86. package/dist/meeting-info/meeting-info-v2.js +201 -57
  87. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  88. package/dist/meeting-info/util.js +8 -7
  89. package/dist/meeting-info/util.js.map +1 -1
  90. package/dist/meeting-info/utilv2.js +44 -40
  91. package/dist/meeting-info/utilv2.js.map +1 -1
  92. package/dist/meetings/collection.js +39 -0
  93. package/dist/meetings/collection.js.map +1 -1
  94. package/dist/meetings/index.js +484 -119
  95. package/dist/meetings/index.js.map +1 -1
  96. package/dist/meetings/meetings.types.js +7 -0
  97. package/dist/meetings/meetings.types.js.map +1 -0
  98. package/dist/meetings/request.js +2 -0
  99. package/dist/meetings/request.js.map +1 -1
  100. package/dist/meetings/util.js +73 -7
  101. package/dist/meetings/util.js.map +1 -1
  102. package/dist/member/index.js +57 -0
  103. package/dist/member/index.js.map +1 -1
  104. package/dist/member/types.js +25 -0
  105. package/dist/member/types.js.map +1 -0
  106. package/dist/member/util.js +132 -25
  107. package/dist/member/util.js.map +1 -1
  108. package/dist/members/collection.js +10 -0
  109. package/dist/members/collection.js.map +1 -1
  110. package/dist/members/index.js +100 -5
  111. package/dist/members/index.js.map +1 -1
  112. package/dist/members/request.js +106 -38
  113. package/dist/members/request.js.map +1 -1
  114. package/dist/members/types.js +15 -0
  115. package/dist/members/types.js.map +1 -0
  116. package/dist/members/util.js +326 -232
  117. package/dist/members/util.js.map +1 -1
  118. package/dist/metrics/constants.js +18 -1
  119. package/dist/metrics/constants.js.map +1 -1
  120. package/dist/metrics/index.js +1 -446
  121. package/dist/metrics/index.js.map +1 -1
  122. package/dist/multistream/mediaRequestManager.js +223 -32
  123. package/dist/multistream/mediaRequestManager.js.map +1 -1
  124. package/dist/multistream/receiveSlot.js +10 -0
  125. package/dist/multistream/receiveSlot.js.map +1 -1
  126. package/dist/multistream/receiveSlotManager.js +39 -36
  127. package/dist/multistream/receiveSlotManager.js.map +1 -1
  128. package/dist/multistream/remoteMedia.js +3 -1
  129. package/dist/multistream/remoteMedia.js.map +1 -1
  130. package/dist/multistream/remoteMediaGroup.js +76 -5
  131. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  132. package/dist/multistream/remoteMediaManager.js +366 -104
  133. package/dist/multistream/remoteMediaManager.js.map +1 -1
  134. package/dist/multistream/sendSlotManager.js +255 -0
  135. package/dist/multistream/sendSlotManager.js.map +1 -0
  136. package/dist/reachability/clusterReachability.js +356 -0
  137. package/dist/reachability/clusterReachability.js.map +1 -0
  138. package/dist/reachability/index.js +263 -390
  139. package/dist/reachability/index.js.map +1 -1
  140. package/dist/reachability/request.js +6 -4
  141. package/dist/reachability/request.js.map +1 -1
  142. package/dist/reachability/util.js +29 -0
  143. package/dist/reachability/util.js.map +1 -0
  144. package/dist/reconnection-manager/index.js +266 -202
  145. package/dist/reconnection-manager/index.js.map +1 -1
  146. package/dist/recording-controller/index.js +21 -2
  147. package/dist/recording-controller/index.js.map +1 -1
  148. package/dist/recording-controller/util.js +9 -8
  149. package/dist/recording-controller/util.js.map +1 -1
  150. package/dist/roap/index.js +66 -28
  151. package/dist/roap/index.js.map +1 -1
  152. package/dist/roap/request.js +48 -64
  153. package/dist/roap/request.js.map +1 -1
  154. package/dist/roap/turnDiscovery.js +407 -79
  155. package/dist/roap/turnDiscovery.js.map +1 -1
  156. package/dist/rtcMetrics/constants.js +12 -0
  157. package/dist/rtcMetrics/constants.js.map +1 -0
  158. package/dist/rtcMetrics/index.js +179 -0
  159. package/dist/rtcMetrics/index.js.map +1 -0
  160. package/dist/statsAnalyzer/index.js +389 -304
  161. package/dist/statsAnalyzer/index.js.map +1 -1
  162. package/dist/statsAnalyzer/mqaUtil.js +296 -156
  163. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  164. package/dist/types/annotation/annotation.types.d.ts +42 -0
  165. package/dist/types/annotation/constants.d.ts +31 -0
  166. package/dist/types/annotation/index.d.ts +117 -0
  167. package/dist/types/breakouts/events.d.ts +8 -0
  168. package/dist/types/breakouts/utils.d.ts +9 -2
  169. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  170. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  171. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  172. package/dist/types/common/logs/request.d.ts +2 -0
  173. package/dist/types/common/queue.d.ts +9 -7
  174. package/dist/types/config.d.ts +2 -7
  175. package/dist/types/constants.d.ts +204 -32
  176. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  177. package/dist/types/controls-options-manager/index.d.ts +17 -1
  178. package/dist/types/controls-options-manager/types.d.ts +43 -0
  179. package/dist/types/controls-options-manager/util.d.ts +1 -7
  180. package/dist/types/index.d.ts +6 -5
  181. package/dist/types/interceptors/index.d.ts +2 -0
  182. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  183. package/dist/types/interpretation/collection.d.ts +5 -0
  184. package/dist/types/interpretation/index.d.ts +5 -0
  185. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  186. package/dist/types/locus-info/index.d.ts +57 -4
  187. package/dist/types/locus-info/parser.d.ts +66 -6
  188. package/dist/types/media/index.d.ts +2 -0
  189. package/dist/types/media/properties.d.ts +34 -49
  190. package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
  191. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  192. package/dist/types/meeting/index.d.ts +630 -505
  193. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  194. package/dist/types/meeting/muteState.d.ts +88 -26
  195. package/dist/types/meeting/request.d.ts +67 -43
  196. package/dist/types/meeting/util.d.ts +117 -1
  197. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  198. package/dist/types/meeting-info/index.d.ts +13 -1
  199. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  200. package/dist/types/meetings/collection.d.ts +17 -0
  201. package/dist/types/meetings/index.d.ts +113 -21
  202. package/dist/types/meetings/meetings.types.d.ts +4 -0
  203. package/dist/types/member/index.d.ts +14 -0
  204. package/dist/types/member/types.d.ts +32 -0
  205. package/dist/types/members/collection.d.ts +5 -0
  206. package/dist/types/members/index.d.ts +35 -2
  207. package/dist/types/members/request.d.ts +73 -9
  208. package/dist/types/members/types.d.ts +25 -0
  209. package/dist/types/members/util.d.ts +214 -1
  210. package/dist/types/metrics/constants.d.ts +17 -0
  211. package/dist/types/metrics/index.d.ts +4 -111
  212. package/dist/types/multistream/mediaRequestManager.d.ts +71 -3
  213. package/dist/types/multistream/receiveSlot.d.ts +7 -3
  214. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  215. package/dist/types/multistream/remoteMedia.d.ts +3 -31
  216. package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
  217. package/dist/types/multistream/remoteMediaManager.d.ts +61 -2
  218. package/dist/types/multistream/sendSlotManager.d.ts +69 -0
  219. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  220. package/dist/types/reachability/index.d.ts +60 -95
  221. package/dist/types/reachability/request.d.ts +3 -1
  222. package/dist/types/reachability/util.d.ts +8 -0
  223. package/dist/types/reconnection-manager/index.d.ts +19 -0
  224. package/dist/types/recording-controller/index.d.ts +15 -1
  225. package/dist/types/recording-controller/util.d.ts +5 -4
  226. package/dist/types/roap/index.d.ts +11 -2
  227. package/dist/types/roap/request.d.ts +9 -8
  228. package/dist/types/roap/turnDiscovery.d.ts +90 -9
  229. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  230. package/dist/types/rtcMetrics/index.d.ts +61 -0
  231. package/dist/types/statsAnalyzer/index.d.ts +34 -12
  232. package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
  233. package/dist/types/webinar/collection.d.ts +16 -0
  234. package/dist/types/webinar/index.d.ts +5 -0
  235. package/dist/webinar/collection.js +44 -0
  236. package/dist/webinar/collection.js.map +1 -0
  237. package/dist/webinar/index.js +69 -0
  238. package/dist/webinar/index.js.map +1 -0
  239. package/package.json +22 -19
  240. package/src/annotation/annotation.types.ts +50 -0
  241. package/src/annotation/constants.ts +36 -0
  242. package/src/annotation/index.ts +328 -0
  243. package/src/breakouts/README.md +27 -6
  244. package/src/breakouts/breakout.ts +67 -9
  245. package/src/breakouts/events.ts +56 -0
  246. package/src/breakouts/index.ts +494 -73
  247. package/src/breakouts/utils.ts +26 -8
  248. package/src/common/errors/no-meeting-info.ts +24 -0
  249. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  250. package/src/common/errors/webex-errors.ts +44 -2
  251. package/src/common/logs/logger-proxy.ts +1 -1
  252. package/src/common/logs/request.ts +5 -1
  253. package/src/common/queue.ts +22 -8
  254. package/src/config.ts +6 -13
  255. package/src/constants.ts +234 -22
  256. package/src/controls-options-manager/enums.ts +12 -0
  257. package/src/controls-options-manager/index.ts +116 -21
  258. package/src/controls-options-manager/types.ts +59 -0
  259. package/src/controls-options-manager/util.ts +294 -14
  260. package/src/index.ts +45 -0
  261. package/src/interceptors/index.ts +3 -0
  262. package/src/interceptors/locusRetry.ts +67 -0
  263. package/src/interpretation/README.md +60 -0
  264. package/src/interpretation/collection.ts +19 -0
  265. package/src/interpretation/index.ts +349 -0
  266. package/src/interpretation/siLanguage.ts +18 -0
  267. package/src/locus-info/controlsUtils.ts +108 -0
  268. package/src/locus-info/index.ts +417 -59
  269. package/src/locus-info/infoUtils.ts +10 -2
  270. package/src/locus-info/mediaSharesUtils.ts +80 -0
  271. package/src/locus-info/parser.ts +258 -47
  272. package/src/locus-info/selfUtils.ts +81 -5
  273. package/src/media/index.ts +100 -108
  274. package/src/media/properties.ts +88 -117
  275. package/src/mediaQualityMetrics/config.ts +103 -238
  276. package/src/meeting/in-meeting-actions.ts +171 -3
  277. package/src/meeting/index.ts +3929 -2622
  278. package/src/meeting/locusMediaRequest.ts +313 -0
  279. package/src/meeting/muteState.ts +237 -136
  280. package/src/meeting/request.ts +173 -122
  281. package/src/meeting/util.ts +690 -395
  282. package/src/meeting/voicea-meeting.ts +122 -0
  283. package/src/meeting-info/index.ts +81 -8
  284. package/src/meeting-info/meeting-info-v2.ts +166 -16
  285. package/src/meeting-info/util.ts +13 -10
  286. package/src/meeting-info/utilv2.ts +47 -37
  287. package/src/meetings/collection.ts +33 -0
  288. package/src/meetings/index.ts +507 -127
  289. package/src/meetings/meetings.types.ts +12 -0
  290. package/src/meetings/request.ts +2 -0
  291. package/src/meetings/util.ts +81 -12
  292. package/src/member/index.ts +57 -0
  293. package/src/member/types.ts +38 -0
  294. package/src/member/util.ts +141 -25
  295. package/src/members/collection.ts +8 -0
  296. package/src/members/index.ts +133 -7
  297. package/src/members/request.ts +97 -17
  298. package/src/members/types.ts +29 -0
  299. package/src/members/util.ts +333 -240
  300. package/src/metrics/constants.ts +17 -0
  301. package/src/metrics/index.ts +1 -469
  302. package/src/multistream/mediaRequestManager.ts +271 -56
  303. package/src/multistream/receiveSlot.ts +11 -4
  304. package/src/multistream/receiveSlotManager.ts +34 -24
  305. package/src/multistream/remoteMedia.ts +5 -3
  306. package/src/multistream/remoteMediaGroup.ts +78 -0
  307. package/src/multistream/remoteMediaManager.ts +248 -45
  308. package/src/multistream/sendSlotManager.ts +198 -0
  309. package/src/reachability/clusterReachability.ts +320 -0
  310. package/src/reachability/index.ts +229 -346
  311. package/src/reachability/request.ts +8 -4
  312. package/src/reachability/util.ts +24 -0
  313. package/src/reconnection-manager/index.ts +128 -97
  314. package/src/recording-controller/index.ts +20 -3
  315. package/src/recording-controller/util.ts +26 -9
  316. package/src/roap/index.ts +76 -25
  317. package/src/roap/request.ts +48 -67
  318. package/src/roap/turnDiscovery.ts +331 -67
  319. package/src/rtcMetrics/constants.ts +3 -0
  320. package/src/rtcMetrics/index.ts +166 -0
  321. package/src/statsAnalyzer/index.ts +496 -419
  322. package/src/statsAnalyzer/mqaUtil.ts +317 -170
  323. package/src/webinar/collection.ts +31 -0
  324. package/src/webinar/index.ts +62 -0
  325. package/test/integration/spec/converged-space-meetings.js +60 -3
  326. package/test/integration/spec/journey.js +321 -262
  327. package/test/integration/spec/space-meeting.js +76 -3
  328. package/test/unit/spec/annotation/index.ts +418 -0
  329. package/test/unit/spec/breakouts/breakout.ts +119 -28
  330. package/test/unit/spec/breakouts/events.ts +89 -0
  331. package/test/unit/spec/breakouts/index.ts +1204 -118
  332. package/test/unit/spec/breakouts/utils.js +27 -2
  333. package/test/unit/spec/common/queue.js +31 -2
  334. package/test/unit/spec/controls-options-manager/index.js +163 -0
  335. package/test/unit/spec/controls-options-manager/util.js +576 -60
  336. package/test/unit/spec/fixture/locus.js +1 -0
  337. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  338. package/test/unit/spec/interpretation/collection.ts +15 -0
  339. package/test/unit/spec/interpretation/index.ts +625 -0
  340. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  341. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  342. package/test/unit/spec/locus-info/index.js +1372 -37
  343. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  344. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  345. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  346. package/test/unit/spec/locus-info/parser.js +116 -35
  347. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  348. package/test/unit/spec/locus-info/selfUtils.js +203 -17
  349. package/test/unit/spec/media/index.ts +178 -81
  350. package/test/unit/spec/media/properties.ts +2 -2
  351. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  352. package/test/unit/spec/meeting/index.js +7835 -2501
  353. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  354. package/test/unit/spec/meeting/muteState.js +549 -207
  355. package/test/unit/spec/meeting/request.js +494 -54
  356. package/test/unit/spec/meeting/utils.js +827 -74
  357. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  358. package/test/unit/spec/meeting-info/index.js +300 -0
  359. package/test/unit/spec/meeting-info/meetinginfov2.js +535 -9
  360. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  361. package/test/unit/spec/meetings/collection.js +26 -0
  362. package/test/unit/spec/meetings/index.js +1489 -219
  363. package/test/unit/spec/meetings/utils.js +229 -2
  364. package/test/unit/spec/member/index.js +61 -6
  365. package/test/unit/spec/member/util.js +510 -34
  366. package/test/unit/spec/members/index.js +432 -1
  367. package/test/unit/spec/members/request.js +206 -27
  368. package/test/unit/spec/members/utils.js +210 -0
  369. package/test/unit/spec/metrics/index.js +2 -52
  370. package/test/unit/spec/multistream/mediaRequestManager.ts +782 -114
  371. package/test/unit/spec/multistream/receiveSlot.ts +9 -1
  372. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  373. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  374. package/test/unit/spec/multistream/remoteMediaGroup.ts +344 -0
  375. package/test/unit/spec/multistream/remoteMediaManager.ts +524 -0
  376. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  377. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  378. package/test/unit/spec/reachability/index.ts +551 -14
  379. package/test/unit/spec/reachability/request.js +3 -1
  380. package/test/unit/spec/reachability/util.ts +40 -0
  381. package/test/unit/spec/reconnection-manager/index.js +171 -11
  382. package/test/unit/spec/recording-controller/index.js +293 -218
  383. package/test/unit/spec/recording-controller/util.js +223 -96
  384. package/test/unit/spec/roap/index.ts +233 -81
  385. package/test/unit/spec/roap/request.ts +100 -62
  386. package/test/unit/spec/roap/turnDiscovery.ts +682 -108
  387. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  388. package/test/unit/spec/stats-analyzer/index.js +1431 -12
  389. package/test/unit/spec/webinar/collection.ts +13 -0
  390. package/test/unit/spec/webinar/index.ts +60 -0
  391. package/test/utils/integrationTestUtils.js +46 -0
  392. package/test/utils/testUtils.js +0 -57
  393. package/test/utils/webex-test-users.js +12 -4
  394. package/dist/metrics/config.js +0 -289
  395. package/dist/metrics/config.js.map +0 -1
  396. package/dist/types/metrics/config.d.ts +0 -169
  397. package/src/index.js +0 -18
  398. package/src/metrics/config.ts +0 -485
package/dist/index.js CHANGED
@@ -8,23 +8,134 @@ 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, "RemoteStreamEventNames", {
86
+ enumerable: true,
87
+ get: function get() {
88
+ return _mediaHelpers.RemoteStreamEventNames;
89
+ }
90
+ });
91
+ _Object$defineProperty(exports, "StreamEventNames", {
92
+ enumerable: true,
93
+ get: function get() {
94
+ return _mediaHelpers.StreamEventNames;
95
+ }
96
+ });
18
97
  _Object$defineProperty(exports, "TriggerProxy", {
19
98
  enumerable: true,
20
99
  get: function get() {
21
100
  return _triggerProxy.default;
22
101
  }
23
102
  });
103
+ _Object$defineProperty(exports, "createCameraStream", {
104
+ enumerable: true,
105
+ get: function get() {
106
+ return _mediaHelpers.createCameraStream;
107
+ }
108
+ });
109
+ _Object$defineProperty(exports, "createDisplayStream", {
110
+ enumerable: true,
111
+ get: function get() {
112
+ return _mediaHelpers.createDisplayStream;
113
+ }
114
+ });
115
+ _Object$defineProperty(exports, "createDisplayStreamWithAudio", {
116
+ enumerable: true,
117
+ get: function get() {
118
+ return _mediaHelpers.createDisplayStreamWithAudio;
119
+ }
120
+ });
121
+ _Object$defineProperty(exports, "createMicrophoneStream", {
122
+ enumerable: true,
123
+ get: function get() {
124
+ return _mediaHelpers.createMicrophoneStream;
125
+ }
126
+ });
24
127
  exports.default = void 0;
128
+ _Object$defineProperty(exports, "getDevices", {
129
+ enumerable: true,
130
+ get: function get() {
131
+ return _mediaHelpers.getDevices;
132
+ }
133
+ });
25
134
  var _webexCore = require("@webex/webex-core");
26
135
  var _meetings = _interopRequireDefault(require("./meetings"));
27
136
  var _config = _interopRequireDefault(require("./config"));
137
+ var _interceptors = require("./interceptors");
138
+ var _mediaHelpers = require("@webex/media-helpers");
28
139
  var _CONSTANTS = _interopRequireWildcard(require("./constants"));
29
140
  exports.CONSTANTS = _CONSTANTS;
30
141
  var _REACTIONS = _interopRequireWildcard(require("./reactions/reactions"));
@@ -36,7 +147,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
36
147
  /* eslint-env browser */
37
148
 
38
149
  (0, _webexCore.registerPlugin)('meetings', _meetings.default, {
39
- config: _config.default
150
+ config: _config.default,
151
+ interceptors: {
152
+ LocusRetryStatusInterceptor: _interceptors.LocusRetryStatusInterceptor.create
153
+ }
40
154
  });
41
155
  var _default = _meetings.default;
42
156
  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 RemoteStreamEventNames,\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;AAqB8B;AAAA;AAAA;AAAA;AAO9B;AAEA;AAAsE;AAAA;AA5CtE;;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,eAyBYJ,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.410"
377
+ });
378
+ var _default = SimultaneousInterpretation;
379
+ exports.default = _default;
380
+ //# sourceMappingURL=index.js.map