@webex/plugin-meetings 2.59.1 → 2.59.3-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.d.ts +9 -9
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.d.ts +48 -48
  10. package/dist/common/collection.js +43 -43
  11. package/dist/common/collection.js.map +1 -1
  12. package/dist/common/config.d.ts +2 -2
  13. package/dist/common/config.js.map +1 -1
  14. package/dist/common/errors/captcha-error.d.ts +15 -15
  15. package/dist/common/errors/captcha-error.js +7 -7
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.d.ts +16 -16
  18. package/dist/common/errors/intent-to-join.js +7 -7
  19. package/dist/common/errors/intent-to-join.js.map +1 -1
  20. package/dist/common/errors/join-meeting.d.ts +17 -17
  21. package/dist/common/errors/join-meeting.js +8 -8
  22. package/dist/common/errors/join-meeting.js.map +1 -1
  23. package/dist/common/errors/media.d.ts +15 -15
  24. package/dist/common/errors/media.js +7 -7
  25. package/dist/common/errors/media.js.map +1 -1
  26. package/dist/common/errors/parameter.d.ts +15 -15
  27. package/dist/common/errors/parameter.js +7 -7
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.d.ts +15 -15
  30. package/dist/common/errors/password-error.js +7 -7
  31. package/dist/common/errors/password-error.js.map +1 -1
  32. package/dist/common/errors/permission.d.ts +14 -14
  33. package/dist/common/errors/permission.js +6 -6
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
  36. package/dist/common/errors/reconnection-in-progress.js +6 -6
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  38. package/dist/common/errors/reconnection.d.ts +15 -15
  39. package/dist/common/errors/reconnection.js +7 -7
  40. package/dist/common/errors/reconnection.js.map +1 -1
  41. package/dist/common/errors/stats.d.ts +15 -15
  42. package/dist/common/errors/stats.js +7 -7
  43. package/dist/common/errors/stats.js.map +1 -1
  44. package/dist/common/errors/webex-errors.d.ts +81 -81
  45. package/dist/common/errors/webex-errors.js +42 -42
  46. package/dist/common/errors/webex-errors.js.map +1 -1
  47. package/dist/common/errors/webex-meetings-error.d.ts +20 -20
  48. package/dist/common/errors/webex-meetings-error.js +12 -12
  49. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  50. package/dist/common/events/events-scope.d.ts +17 -17
  51. package/dist/common/events/events-scope.js +10 -10
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.d.ts +12 -12
  54. package/dist/common/events/events.js +4 -4
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.d.ts +2 -2
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.d.ts +2 -2
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.d.ts +2 -2
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.d.ts +2 -2
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.d.ts +34 -34
  65. package/dist/common/logs/request.js +18 -18
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.d.ts +32 -32
  68. package/dist/common/queue.js +18 -18
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.d.ts +73 -73
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.d.ts +924 -924
  73. package/dist/constants.js +9 -9
  74. package/dist/constants.js.map +1 -1
  75. package/dist/controls-options-manager/constants.d.ts +4 -4
  76. package/dist/controls-options-manager/constants.js.map +1 -1
  77. package/dist/controls-options-manager/enums.d.ts +5 -5
  78. package/dist/controls-options-manager/enums.js.map +1 -1
  79. package/dist/controls-options-manager/index.d.ts +120 -120
  80. package/dist/controls-options-manager/index.js +81 -81
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/util.d.ts +7 -7
  83. package/dist/controls-options-manager/util.js.map +1 -1
  84. package/dist/index.d.ts +4 -4
  85. package/dist/index.js.map +1 -1
  86. package/dist/locus-info/controlsUtils.d.ts +2 -2
  87. package/dist/locus-info/controlsUtils.js +21 -21
  88. package/dist/locus-info/controlsUtils.js.map +1 -1
  89. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  90. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  91. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  92. package/dist/locus-info/fullState.d.ts +2 -2
  93. package/dist/locus-info/fullState.js.map +1 -1
  94. package/dist/locus-info/hostUtils.d.ts +2 -2
  95. package/dist/locus-info/hostUtils.js +19 -19
  96. package/dist/locus-info/hostUtils.js.map +1 -1
  97. package/dist/locus-info/index.d.ts +269 -269
  98. package/dist/locus-info/index.js +180 -180
  99. package/dist/locus-info/index.js.map +1 -1
  100. package/dist/locus-info/infoUtils.d.ts +2 -2
  101. package/dist/locus-info/infoUtils.js.map +1 -1
  102. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  103. package/dist/locus-info/mediaSharesUtils.js +50 -50
  104. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  105. package/dist/locus-info/parser.d.ts +212 -212
  106. package/dist/locus-info/parser.js +136 -136
  107. package/dist/locus-info/parser.js.map +1 -1
  108. package/dist/locus-info/selfUtils.d.ts +2 -2
  109. package/dist/locus-info/selfUtils.js +52 -52
  110. package/dist/locus-info/selfUtils.js.map +1 -1
  111. package/dist/media/index.d.ts +32 -32
  112. package/dist/media/index.js +145 -145
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.d.ts +108 -108
  115. package/dist/media/properties.js +49 -49
  116. package/dist/media/properties.js.map +1 -1
  117. package/dist/media/util.d.ts +2 -2
  118. package/dist/media/util.js.map +1 -1
  119. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  120. package/dist/mediaQualityMetrics/config.js.map +1 -1
  121. package/dist/meeting/effectsState.d.ts +42 -42
  122. package/dist/meeting/effectsState.js +24 -24
  123. package/dist/meeting/effectsState.js.map +1 -1
  124. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  125. package/dist/meeting/in-meeting-actions.js +11 -11
  126. package/dist/meeting/in-meeting-actions.js.map +1 -1
  127. package/dist/meeting/index.d.ts +1621 -1621
  128. package/dist/meeting/index.js +1502 -1505
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/muteState.d.ts +116 -116
  131. package/dist/meeting/muteState.js +85 -85
  132. package/dist/meeting/muteState.js.map +1 -1
  133. package/dist/meeting/request.d.ts +255 -255
  134. package/dist/meeting/request.js +141 -141
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/state.d.ts +9 -9
  137. package/dist/meeting/state.js +30 -30
  138. package/dist/meeting/state.js.map +1 -1
  139. package/dist/meeting/util.d.ts +2 -2
  140. package/dist/meeting/util.js.map +1 -1
  141. package/dist/meeting-info/collection.d.ts +20 -20
  142. package/dist/meeting-info/collection.js +11 -11
  143. package/dist/meeting-info/collection.js.map +1 -1
  144. package/dist/meeting-info/index.d.ts +57 -57
  145. package/dist/meeting-info/index.js +50 -50
  146. package/dist/meeting-info/index.js.map +1 -1
  147. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  148. package/dist/meeting-info/meeting-info-v2.js +52 -52
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.d.ts +22 -22
  151. package/dist/meeting-info/request.js +14 -14
  152. package/dist/meeting-info/request.js.map +1 -1
  153. package/dist/meeting-info/util.d.ts +2 -2
  154. package/dist/meeting-info/util.js +9 -9
  155. package/dist/meeting-info/util.js.map +1 -1
  156. package/dist/meeting-info/utilv2.d.ts +2 -2
  157. package/dist/meeting-info/utilv2.js +20 -20
  158. package/dist/meeting-info/utilv2.js.map +1 -1
  159. package/dist/meetings/collection.d.ts +23 -23
  160. package/dist/meetings/collection.js +14 -14
  161. package/dist/meetings/collection.js.map +1 -1
  162. package/dist/meetings/index.d.ts +296 -296
  163. package/dist/meetings/index.js +259 -259
  164. package/dist/meetings/index.js.map +1 -1
  165. package/dist/meetings/request.d.ts +27 -27
  166. package/dist/meetings/request.js +15 -15
  167. package/dist/meetings/request.js.map +1 -1
  168. package/dist/meetings/util.d.ts +18 -18
  169. package/dist/meetings/util.js +29 -29
  170. package/dist/meetings/util.js.map +1 -1
  171. package/dist/member/index.d.ts +147 -147
  172. package/dist/member/index.js +214 -214
  173. package/dist/member/index.js.map +1 -1
  174. package/dist/member/member.types.d.ts +11 -11
  175. package/dist/member/member.types.js.map +1 -1
  176. package/dist/member/util.d.ts +2 -2
  177. package/dist/member/util.js +60 -60
  178. package/dist/member/util.js.map +1 -1
  179. package/dist/members/collection.d.ts +24 -24
  180. package/dist/members/collection.js +11 -11
  181. package/dist/members/collection.js.map +1 -1
  182. package/dist/members/index.d.ts +298 -298
  183. package/dist/members/index.js +275 -275
  184. package/dist/members/index.js.map +1 -1
  185. package/dist/members/request.d.ts +50 -50
  186. package/dist/members/request.js +27 -27
  187. package/dist/members/request.js.map +1 -1
  188. package/dist/members/util.d.ts +2 -2
  189. package/dist/members/util.js +21 -21
  190. package/dist/members/util.js.map +1 -1
  191. package/dist/metrics/config.d.ts +169 -169
  192. package/dist/metrics/config.js.map +1 -1
  193. package/dist/metrics/constants.d.ts +57 -57
  194. package/dist/metrics/constants.js.map +1 -1
  195. package/dist/metrics/index.d.ts +152 -152
  196. package/dist/metrics/index.js +90 -90
  197. package/dist/metrics/index.js.map +1 -1
  198. package/dist/networkQualityMonitor/index.d.ts +70 -70
  199. package/dist/networkQualityMonitor/index.js +65 -65
  200. package/dist/networkQualityMonitor/index.js.map +1 -1
  201. package/dist/peer-connection-manager/index.d.ts +6 -6
  202. package/dist/peer-connection-manager/index.js +87 -87
  203. package/dist/peer-connection-manager/index.js.map +1 -1
  204. package/dist/peer-connection-manager/util.d.ts +6 -6
  205. package/dist/peer-connection-manager/util.js +9 -9
  206. package/dist/peer-connection-manager/util.js.map +1 -1
  207. package/dist/personal-meeting-room/index.d.ts +47 -47
  208. package/dist/personal-meeting-room/index.js +67 -67
  209. package/dist/personal-meeting-room/index.js.map +1 -1
  210. package/dist/personal-meeting-room/request.d.ts +14 -14
  211. package/dist/personal-meeting-room/request.js +7 -7
  212. package/dist/personal-meeting-room/request.js.map +1 -1
  213. package/dist/personal-meeting-room/util.d.ts +2 -2
  214. package/dist/personal-meeting-room/util.js.map +1 -1
  215. package/dist/reachability/index.d.ts +139 -139
  216. package/dist/reachability/index.js +110 -110
  217. package/dist/reachability/index.js.map +1 -1
  218. package/dist/reachability/request.d.ts +35 -35
  219. package/dist/reachability/request.js +15 -15
  220. package/dist/reachability/request.js.map +1 -1
  221. package/dist/reactions/reactions.d.ts +4 -4
  222. package/dist/reactions/reactions.js.map +1 -1
  223. package/dist/reactions/reactions.type.d.ts +32 -32
  224. package/dist/reactions/reactions.type.js.map +1 -1
  225. package/dist/reconnection-manager/index.d.ts +112 -112
  226. package/dist/reconnection-manager/index.js +112 -112
  227. package/dist/reconnection-manager/index.js.map +1 -1
  228. package/dist/recording-controller/enums.d.ts +7 -7
  229. package/dist/recording-controller/enums.js.map +1 -1
  230. package/dist/recording-controller/index.d.ts +193 -193
  231. package/dist/recording-controller/index.js +127 -127
  232. package/dist/recording-controller/index.js.map +1 -1
  233. package/dist/recording-controller/util.d.ts +13 -13
  234. package/dist/recording-controller/util.js.map +1 -1
  235. package/dist/roap/collection.d.ts +10 -10
  236. package/dist/roap/collection.js.map +1 -1
  237. package/dist/roap/handler.d.ts +47 -47
  238. package/dist/roap/handler.js +27 -27
  239. package/dist/roap/handler.js.map +1 -1
  240. package/dist/roap/index.d.ts +116 -116
  241. package/dist/roap/index.js +111 -111
  242. package/dist/roap/index.js.map +1 -1
  243. package/dist/roap/request.d.ts +35 -35
  244. package/dist/roap/request.js +17 -17
  245. package/dist/roap/request.js.map +1 -1
  246. package/dist/roap/state.d.ts +9 -9
  247. package/dist/roap/state.js +14 -14
  248. package/dist/roap/state.js.map +1 -1
  249. package/dist/roap/turnDiscovery.d.ts +67 -67
  250. package/dist/roap/turnDiscovery.js +46 -46
  251. package/dist/roap/turnDiscovery.js.map +1 -1
  252. package/dist/roap/util.d.ts +2 -2
  253. package/dist/roap/util.js.map +1 -1
  254. package/dist/statsAnalyzer/global.d.ts +126 -126
  255. package/dist/statsAnalyzer/global.js.map +1 -1
  256. package/dist/statsAnalyzer/index.d.ts +190 -190
  257. package/dist/statsAnalyzer/index.js +128 -128
  258. package/dist/statsAnalyzer/index.js.map +1 -1
  259. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  260. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  261. package/dist/transcription/index.d.ts +64 -64
  262. package/dist/transcription/index.js +42 -42
  263. package/dist/transcription/index.js.map +1 -1
  264. package/internal-README.md +172 -172
  265. package/jest.config.js +3 -3
  266. package/package.json +22 -21
  267. package/process +1 -1
  268. package/src/common/browser-detection.ts +39 -39
  269. package/src/common/collection.ts +94 -94
  270. package/src/common/config.ts +9 -9
  271. package/src/common/errors/captcha-error.ts +25 -25
  272. package/src/common/errors/intent-to-join.ts +27 -27
  273. package/src/common/errors/join-meeting.ts +32 -32
  274. package/src/common/errors/media.ts +25 -25
  275. package/src/common/errors/parameter.ts +33 -33
  276. package/src/common/errors/password-error.ts +25 -25
  277. package/src/common/errors/permission.ts +24 -24
  278. package/src/common/errors/reconnection-in-progress.ts +8 -8
  279. package/src/common/errors/reconnection.ts +25 -25
  280. package/src/common/errors/stats.ts +25 -25
  281. package/src/common/errors/webex-errors.ts +140 -140
  282. package/src/common/errors/webex-meetings-error.ts +35 -35
  283. package/src/common/events/events-scope.ts +30 -30
  284. package/src/common/events/events.ts +25 -25
  285. package/src/common/events/trigger-proxy.ts +25 -25
  286. package/src/common/events/util.ts +39 -39
  287. package/src/common/logs/logger-config.ts +8 -8
  288. package/src/common/logs/logger-proxy.ts +44 -44
  289. package/src/common/logs/request.ts +65 -65
  290. package/src/common/queue.ts +50 -50
  291. package/src/config.ts +96 -96
  292. package/src/constants.ts +1121 -1121
  293. package/src/controls-options-manager/constants.ts +5 -5
  294. package/src/controls-options-manager/enums.ts +6 -6
  295. package/src/controls-options-manager/index.ts +183 -183
  296. package/src/controls-options-manager/util.ts +20 -20
  297. package/src/index.js +15 -15
  298. package/src/locus-info/controlsUtils.ts +112 -112
  299. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  300. package/src/locus-info/fullState.ts +69 -69
  301. package/src/locus-info/hostUtils.ts +60 -60
  302. package/src/locus-info/index.ts +1303 -1303
  303. package/src/locus-info/infoUtils.ts +101 -101
  304. package/src/locus-info/mediaSharesUtils.ts +173 -173
  305. package/src/locus-info/parser.ts +680 -680
  306. package/src/locus-info/selfUtils.ts +428 -428
  307. package/src/media/index.ts +675 -675
  308. package/src/media/properties.ts +313 -313
  309. package/src/media/util.ts +37 -37
  310. package/src/mediaQualityMetrics/config.ts +382 -382
  311. package/src/meeting/effectsState.ts +209 -209
  312. package/src/meeting/in-meeting-actions.ts +153 -153
  313. package/src/meeting/index.ts +6537 -6543
  314. package/src/meeting/muteState.ts +365 -365
  315. package/src/meeting/request.ts +810 -810
  316. package/src/meeting/state.ts +194 -194
  317. package/src/meeting/util.ts +530 -530
  318. package/src/meeting-info/collection.ts +41 -41
  319. package/src/meeting-info/index.ts +137 -137
  320. package/src/meeting-info/meeting-info-v2.ts +273 -273
  321. package/src/meeting-info/request.ts +46 -46
  322. package/src/meeting-info/util.ts +314 -314
  323. package/src/meeting-info/utilv2.ts +324 -324
  324. package/src/meetings/collection.ts +43 -43
  325. package/src/meetings/index.ts +1128 -1128
  326. package/src/meetings/request.ts +81 -81
  327. package/src/meetings/util.ts +181 -181
  328. package/src/member/index.ts +446 -446
  329. package/src/member/member.types.ts +13 -13
  330. package/src/member/util.ts +286 -286
  331. package/src/members/collection.ts +40 -40
  332. package/src/members/index.ts +900 -900
  333. package/src/members/request.ts +175 -175
  334. package/src/members/util.ts +260 -260
  335. package/src/metrics/config.ts +485 -485
  336. package/src/metrics/constants.ts +61 -61
  337. package/src/metrics/index.ts +543 -543
  338. package/src/networkQualityMonitor/index.ts +211 -211
  339. package/src/peer-connection-manager/index.ts +847 -847
  340. package/src/peer-connection-manager/util.ts +119 -119
  341. package/src/personal-meeting-room/index.ts +157 -157
  342. package/src/personal-meeting-room/request.ts +48 -48
  343. package/src/personal-meeting-room/util.ts +49 -49
  344. package/src/reachability/index.ts +478 -478
  345. package/src/reachability/request.ts +81 -81
  346. package/src/reactions/reactions.ts +104 -104
  347. package/src/reactions/reactions.type.ts +36 -36
  348. package/src/reconnection-manager/index.ts +622 -622
  349. package/src/recording-controller/enums.ts +8 -8
  350. package/src/recording-controller/index.ts +315 -315
  351. package/src/recording-controller/util.ts +58 -58
  352. package/src/roap/collection.ts +62 -62
  353. package/src/roap/handler.ts +294 -294
  354. package/src/roap/index.ts +413 -413
  355. package/src/roap/request.ts +229 -229
  356. package/src/roap/state.ts +156 -156
  357. package/src/roap/turnDiscovery.ts +283 -283
  358. package/src/roap/util.ts +100 -100
  359. package/src/statsAnalyzer/global.ts +128 -128
  360. package/src/statsAnalyzer/index.ts +1266 -1266
  361. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  362. package/src/transcription/index.ts +154 -154
  363. package/test/integration/spec/journey.js +941 -941
  364. package/test/integration/spec/space-meeting.js +457 -457
  365. package/test/integration/spec/transcription.js +55 -55
  366. package/test/unit/spec/common/browser-detection.js +119 -119
  367. package/test/unit/spec/common/queue.js +69 -69
  368. package/test/unit/spec/controls-options-manager/index.js +123 -123
  369. package/test/unit/spec/controls-options-manager/util.js +65 -65
  370. package/test/unit/spec/fixture/locus.js +406 -406
  371. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  372. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  373. package/test/unit/spec/locus-info/index.js +1272 -1272
  374. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  375. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  376. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  377. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  378. package/test/unit/spec/locus-info/parser.js +298 -298
  379. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  380. package/test/unit/spec/media/properties.ts +305 -305
  381. package/test/unit/spec/meeting/effectsState.js +281 -281
  382. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  383. package/test/unit/spec/meeting/index.js +5227 -5227
  384. package/test/unit/spec/meeting/muteState.js +430 -430
  385. package/test/unit/spec/meeting/request.js +317 -317
  386. package/test/unit/spec/meeting/utils.js +319 -319
  387. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  388. package/test/unit/spec/meeting-info/request.js +64 -64
  389. package/test/unit/spec/meeting-info/util.js +37 -37
  390. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  391. package/test/unit/spec/meetings/collection.js +52 -52
  392. package/test/unit/spec/meetings/index.js +1375 -1375
  393. package/test/unit/spec/meetings/utils.js +66 -66
  394. package/test/unit/spec/member/index.js +47 -47
  395. package/test/unit/spec/member/util.js +80 -80
  396. package/test/unit/spec/members/index.js +364 -364
  397. package/test/unit/spec/members/request.js +200 -200
  398. package/test/unit/spec/members/utils.js +42 -42
  399. package/test/unit/spec/metrics/index.js +111 -111
  400. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  401. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  402. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  403. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  404. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  405. package/test/unit/spec/reachability/index.ts +50 -50
  406. package/test/unit/spec/reconnection-manager/index.js +206 -206
  407. package/test/unit/spec/recording-controller/index.js +230 -230
  408. package/test/unit/spec/recording-controller/util.js +101 -101
  409. package/test/unit/spec/roap/index.ts +128 -128
  410. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  411. package/test/unit/spec/roap/util.js +30 -30
  412. package/test/unit/spec/stats-analyzer/index.js +287 -287
  413. package/test/utils/cmr.js +104 -104
  414. package/test/utils/testUtils.js +287 -287
  415. package/test/utils/webex-config.js +77 -77
  416. package/test/utils/webex-test-users.js +82 -82
  417. package/tsconfig.json +5 -5
@@ -14,10 +14,10 @@ var _constants = require("../constants");
14
14
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
15
15
  // TODO: ensure that meeting can be destroyed when in an error state
16
16
  var MeetingStateMachine = {
17
- /**
18
- * Initializes the StateMachine for the meeting
19
- * @param {Meeting} meetingRef A reference to a meeting instance
20
- * @returns {StateMachine}
17
+ /**
18
+ * Initializes the StateMachine for the meeting
19
+ * @param {Meeting} meetingRef A reference to a meeting instance
20
+ * @returns {StateMachine}
21
21
  */
22
22
  create: function create(meetingRef) {
23
23
  if (!meetingRef) {
@@ -43,11 +43,11 @@ var MeetingStateMachine = {
43
43
  {
44
44
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,
45
45
  from: [_constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
46
- /**
47
- * @param {Object} remote
48
- * @param {Boolean} remote.remoteAnswered
49
- * @param {Boolean} remote.remoteDeclined
50
- * @returns {String}
46
+ /**
47
+ * @param {Object} remote
48
+ * @param {Boolean} remote.remoteAnswered
49
+ * @param {Boolean} remote.remoteDeclined
50
+ * @returns {String}
51
51
  */
52
52
  to: function to(remote) {
53
53
  // other user answered the call
@@ -90,17 +90,17 @@ var MeetingStateMachine = {
90
90
  to: _constants.MEETING_STATE_MACHINE.STATES.IDLE
91
91
  }],
92
92
  data: {
93
- /**
94
- * The meeting instance to execute all state changes on
93
+ /**
94
+ * The meeting instance to execute all state changes on
95
95
  */
96
96
  meeting: meetingRef
97
97
  },
98
98
  methods: {
99
- /**
100
- * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings
101
- * @param {Object} transition -- FiniteStateMachine automatically passed, not used
102
- * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}
103
- * @returns {Boolean}
99
+ /**
100
+ * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings
101
+ * @param {Object} transition -- FiniteStateMachine automatically passed, not used
102
+ * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}
103
+ * @returns {Boolean}
104
104
  */
105
105
  onRemote: function onRemote(transition, stop) {
106
106
  if (this.meeting) {
@@ -113,11 +113,11 @@ var MeetingStateMachine = {
113
113
  });
114
114
  }
115
115
  },
116
- /**
117
- * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings
118
- * @param {Object} transition -- FiniteStateMachine automatically passed, not used
119
- * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN
120
- * @returns {Boolean}
116
+ /**
117
+ * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings
118
+ * @param {Object} transition -- FiniteStateMachine automatically passed, not used
119
+ * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN
120
+ * @returns {Boolean}
121
121
  */
122
122
  onRing: function onRing(transition, type) {
123
123
  if (this.meeting) {
@@ -130,19 +130,19 @@ var MeetingStateMachine = {
130
130
  });
131
131
  }
132
132
  },
133
- /**
134
- * handle the entry to error state
135
- * @param {Object} transition
136
- * @param {Error} error
137
- * @returns {Boolean}
133
+ /**
134
+ * handle the entry to error state
135
+ * @param {Object} transition
136
+ * @param {Error} error
137
+ * @returns {Boolean}
138
138
  */
139
139
  onEnterError: function onEnterError(transition, error) {
140
140
  _loggerProxy.default.logger.error("Meeting:state#onEnterError --> state->onEnterError#meeting.id: ".concat(this.meeting.id, " | Transition '").concat(transition === null || transition === void 0 ? void 0 : transition.transition, "' : ").concat(transition === null || transition === void 0 ? void 0 : transition.from, " -> ").concat(transition === null || transition === void 0 ? void 0 : transition.to, ", with error ").concat(error, ". Last states: ").concat(this.history));
141
141
  },
142
- /**
143
- * After ANY transition occurs, we want to know what state the meeting moved to for debugging
144
- * @param {Object} transition
145
- * @returns {Boolean}
142
+ /**
143
+ * After ANY transition occurs, we want to know what state the meeting moved to for debugging
144
+ * @param {Object} transition
145
+ * @returns {Boolean}
146
146
  */
147
147
  onAfterTransition: function onAfterTransition(transition) {
148
148
  _loggerProxy.default.logger.log("Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ".concat(this.meeting.id, " | Transition '").concat(transition.transition, "' : ").concat(transition.from, " -> ").concat(transition.to, " executed. Last states: ").concat(this.history));
@@ -1 +1 @@
1
- {"version":3,"names":["_javascriptStateMachine","_interopRequireDefault","require","_history","_loggerProxy","_triggerProxy","_constants","_parameter","MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","concat","history","onAfterTransition","log","plugins","StateMachineHistory","max","_default","exports","default"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\n// TODO: ensure that meeting can be destroyed when in an error state\nconst MeetingStateMachine = {\n /**\n * Initializes the StateMachine for the meeting\n * @param {Meeting} meetingRef A reference to a meeting instance\n * @returns {StateMachine}\n */\n create(meetingRef: any) {\n if (!meetingRef) {\n throw new ParameterError(\n 'You must initialize the meeting state machine with a meeting reference.'\n );\n }\n\n return new StateMachine({\n init: MEETING_STATE_MACHINE.STATES.IDLE,\n transitions: [\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.ERROR,\n MEETING_STATE_MACHINE.STATES.JOINED,\n ],\n to: MEETING_STATE_MACHINE.STATES.RINGING,\n },\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\n // others will go straight to JOINED with this transition\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\n from: [\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.JOINED,\n },\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\n /**\n * @param {Object} remote\n * @param {Boolean} remote.remoteAnswered\n * @param {Boolean} remote.remoteDeclined\n * @returns {String}\n */\n to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {\n // other user answered the call\n if (remote.remoteAnswered) {\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\n }\n // other user declined the call\n if (remote.remoteDeclined) {\n return MEETING_STATE_MACHINE.STATES.DECLINED;\n }\n\n // default\n return MEETING_STATE_MACHINE.STATES.ERROR;\n },\n },\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n // transition from ANY state to ERROR state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.ERROR,\n },\n // fail safe, transition from ANY state to IDLE state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.IDLE,\n },\n ],\n data: {\n /**\n * The meeting instance to execute all state changes on\n */\n meeting: meetingRef,\n },\n methods: {\n /**\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\n * @returns {Boolean}\n */\n onRemote(transition: object, stop: object) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRemote',\n },\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\n {\n id: this.meeting.id,\n type: stop,\n }\n );\n }\n },\n /**\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\n * @returns {Boolean}\n */\n onRing(transition: object, type: string) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRing',\n },\n EVENT_TRIGGERS.MEETING_RINGING,\n {\n type,\n id: this.meeting.id,\n }\n );\n }\n },\n /**\n * handle the entry to error state\n * @param {Object} transition\n * @param {Error} error\n * @returns {Boolean}\n */\n onEnterError(transition: any, error: Error) {\n LoggerProxy.logger.error(\n `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`\n );\n },\n /**\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\n * @param {Object} transition\n * @returns {Boolean}\n */\n onAfterTransition(transition: any) {\n LoggerProxy.logger.log(\n `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`\n );\n },\n },\n // track the last 25 states entered\n plugins: [new StateMachineHistory({max: 25})],\n });\n },\n};\n\nexport default MeetingStateMachine;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_javascriptStateMachine","_interopRequireDefault","require","_history","_loggerProxy","_triggerProxy","_constants","_parameter","MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","concat","history","onAfterTransition","log","plugins","StateMachineHistory","max","_default","exports","default"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\r\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\r\n\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport Trigger from '../common/events/trigger-proxy';\r\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\r\nimport ParameterError from '../common/errors/parameter';\r\n\r\n// TODO: ensure that meeting can be destroyed when in an error state\r\nconst MeetingStateMachine = {\r\n /**\r\n * Initializes the StateMachine for the meeting\r\n * @param {Meeting} meetingRef A reference to a meeting instance\r\n * @returns {StateMachine}\r\n */\r\n create(meetingRef: any) {\r\n if (!meetingRef) {\r\n throw new ParameterError(\r\n 'You must initialize the meeting state machine with a meeting reference.'\r\n );\r\n }\r\n\r\n return new StateMachine({\r\n init: MEETING_STATE_MACHINE.STATES.IDLE,\r\n transitions: [\r\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.RINGING,\r\n },\r\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\r\n // others will go straight to JOINED with this transition\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.RINGING,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.JOINED,\r\n },\r\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\r\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\r\n /**\r\n * @param {Object} remote\r\n * @param {Boolean} remote.remoteAnswered\r\n * @param {Boolean} remote.remoteDeclined\r\n * @returns {String}\r\n */\r\n to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {\r\n // other user answered the call\r\n if (remote.remoteAnswered) {\r\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\r\n }\r\n // other user declined the call\r\n if (remote.remoteDeclined) {\r\n return MEETING_STATE_MACHINE.STATES.DECLINED;\r\n }\r\n\r\n // default\r\n return MEETING_STATE_MACHINE.STATES.ERROR;\r\n },\r\n },\r\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.RINGING,\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n MEETING_STATE_MACHINE.STATES.ANSWERED,\r\n MEETING_STATE_MACHINE.STATES.DECLINED,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.ENDED,\r\n },\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\r\n from: [\r\n MEETING_STATE_MACHINE.STATES.IDLE,\r\n MEETING_STATE_MACHINE.STATES.RINGING,\r\n MEETING_STATE_MACHINE.STATES.JOINED,\r\n MEETING_STATE_MACHINE.STATES.ANSWERED,\r\n MEETING_STATE_MACHINE.STATES.DECLINED,\r\n MEETING_STATE_MACHINE.STATES.ERROR,\r\n ],\r\n to: MEETING_STATE_MACHINE.STATES.ENDED,\r\n },\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\r\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\r\n to: MEETING_STATE_MACHINE.STATES.ENDED,\r\n },\r\n // transition from ANY state to ERROR state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\r\n from: '*',\r\n to: MEETING_STATE_MACHINE.STATES.ERROR,\r\n },\r\n // fail safe, transition from ANY state to IDLE state\r\n {\r\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\r\n from: '*',\r\n to: MEETING_STATE_MACHINE.STATES.IDLE,\r\n },\r\n ],\r\n data: {\r\n /**\r\n * The meeting instance to execute all state changes on\r\n */\r\n meeting: meetingRef,\r\n },\r\n methods: {\r\n /**\r\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\r\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\r\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\r\n * @returns {Boolean}\r\n */\r\n onRemote(transition: object, stop: object) {\r\n if (this.meeting) {\r\n Trigger.trigger(\r\n this.meeting,\r\n {\r\n file: 'meeting/state',\r\n function: 'onRemote',\r\n },\r\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\r\n {\r\n id: this.meeting.id,\r\n type: stop,\r\n }\r\n );\r\n }\r\n },\r\n /**\r\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\r\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\r\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\r\n * @returns {Boolean}\r\n */\r\n onRing(transition: object, type: string) {\r\n if (this.meeting) {\r\n Trigger.trigger(\r\n this.meeting,\r\n {\r\n file: 'meeting/state',\r\n function: 'onRing',\r\n },\r\n EVENT_TRIGGERS.MEETING_RINGING,\r\n {\r\n type,\r\n id: this.meeting.id,\r\n }\r\n );\r\n }\r\n },\r\n /**\r\n * handle the entry to error state\r\n * @param {Object} transition\r\n * @param {Error} error\r\n * @returns {Boolean}\r\n */\r\n onEnterError(transition: any, error: Error) {\r\n LoggerProxy.logger.error(\r\n `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`\r\n );\r\n },\r\n /**\r\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\r\n * @param {Object} transition\r\n * @returns {Boolean}\r\n */\r\n onAfterTransition(transition: any) {\r\n LoggerProxy.logger.log(\r\n `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`\r\n );\r\n },\r\n },\r\n // track the last 25 states entered\r\n plugins: [new StateMachineHistory({max: 25})],\r\n });\r\n },\r\n};\r\n\r\nexport default MeetingStateMachine;\r\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- declare const MeetingUtil: any;
2
- export default MeetingUtil;
1
+ declare const MeetingUtil: any;
2
+ export default MeetingUtil;
@@ -1 +1 @@
1
- {"version":3,"names":["_webexErrors","require","_metrics","_interopRequireDefault","_config","_media","_loggerProxy","_constants","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","_promise","reject","ParameterError","localMedias","Media","generateLocalMedias","_isEmpty2","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","_err$body","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","roap","stop","roapSeq","stopKeepAlive","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","_response$body","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","concat","leaveMeeting","undefined","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","updateTransceiver","meetingOptions","type","sendTrack","receiveTrack","track","transceiver","peerConnection","previousMediaDirection","meetingId","remoteQualityLevel","mediaProperties","enableRtx","config","enableExtmap","sendRoapMediaRequest","sdp","e","sender","replaceTrack","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\n\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport Metrics from '../metrics';\nimport {eventType, trigger} from '../metrics/config';\nimport Media from '../media';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n} from '../constants';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\n\nconst MeetingUtil: any = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n};\n\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\n\n if (isEmpty(localMedias)) {\n return Promise.reject(\n new ParameterError('You need a media id on the meeting to change remote audio.')\n );\n }\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\n\n return meeting.meetingRequest\n .remoteAudioVideoToggle({\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n localMedias,\n deviceUrl: meeting.deviceUrl,\n correlationId: meeting.correlationId,\n })\n .then((response) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\n\n return response.body.locus;\n });\n};\n\nMeetingUtil.hasOwner = (info) => info && info.owner;\n\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\n\nMeetingUtil.isPinOrGuest = (err) =>\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\n\nMeetingUtil.joinMeeting = (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: options.preferTranscoding,\n asResourceOccupant: options.asResourceOccupant,\n })\n .then((res) => {\n Metrics.postEvent({\n event: eventType.LOCUS_JOIN_RESPONSE,\n meeting,\n data: {\n trigger: trigger.LOCI_UPDATE,\n locus: res.body.locus,\n mediaConnections: res.body.mediaConnections,\n trackingId: res.headers.trackingid,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n};\n\nMeetingUtil.cleanUp = (meeting) => {\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeLocalStream())\n .then(() => meeting.closeLocalShare())\n .then(() => meeting.closeRemoteTracks())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.unsetLocalVideoTrack();\n meeting.unsetLocalShareTrack();\n meeting.unsetRemoteTracks();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.roap.stop(meeting.correlationId, meeting.roapSeq))\n .then(() => meeting.stopKeepAlive());\n};\n\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest\n .disconnectPhoneAudio(options)\n .then((response) => {\n if (response?.body?.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\n// by default will leave on meeting's resourceId\n// if you explicity want it not to leave on resource id, pass\n// {resourceId: null}\n// TODO: chris, you can modify this however you want\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n const leaveOptions = {...defaultOptions, ...options};\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n // && !options.moveMeeting) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\nMeetingUtil.declineMeeting = (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n });\n\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\n\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\n\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\n\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\n\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n Metrics.postEvent({\n event: eventType.PIN_COLLECTED,\n meeting,\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n Metrics.postEvent({\n event: eventType.PIN_PROMPT,\n meeting,\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n};\n\nMeetingUtil.updateTransceiver = (options, meetingOptions) => {\n const {\n type,\n sendTrack,\n receiveTrack,\n track,\n transceiver,\n peerConnection,\n previousMediaDirection,\n } = options;\n\n if (\n (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||\n (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)\n ) {\n return Media.updateTransceiver(\n {\n meetingId: meetingOptions.meeting.id,\n remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,\n enableRtx: meetingOptions.meeting.config.enableRtx,\n enableExtmap: meetingOptions.meeting.config.enableExtmap,\n },\n peerConnection,\n transceiver,\n {\n track,\n type,\n receiveTrack,\n sendTrack,\n }\n )\n .then(() =>\n meetingOptions.meeting.roap.sendRoapMediaRequest({\n sdp: meetingOptions.mediaProperties.peerConnection.sdp,\n roapSeq: meetingOptions.meeting.roapSeq,\n meeting: meetingOptions.meeting, // or can pass meeting ID\n })\n )\n .catch((e) => {\n LoggerProxy.logger.error(\n `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`\n );\n });\n }\n if (track) {\n transceiver.sender.replaceTrack(track);\n\n return Promise.resolve();\n }\n\n return Promise.reject(new ParameterError('update Failed: please pass valid parameter'));\n};\n\nMeetingUtil.validateOptions = (options) => {\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\n\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid video streams'));\n }\n\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\n return Promise.reject(new ParameterError('please pass valid audio streams'));\n }\n\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid share streams'));\n }\n\n return Promise.resolve();\n};\n\nMeetingUtil.getTrack = (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n};\n\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator;\n\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy;\n\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\n\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\n\nMeetingUtil.canAdmitParticipant = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\n\nMeetingUtil.canUserLock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\n\nMeetingUtil.canUserUnlock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\n\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\n\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\n\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\n\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\n\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n};\n\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n};\n\nMeetingUtil.handleAudioLogging = (audioTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioTrack) {\n const settings = audioTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleVideoLogging = (videoTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoTrack) {\n const settings = videoTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleDeviceLogging = (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n};\n\nMeetingUtil.endMeetingForAll = (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\n\nMeetingUtil.canStartTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\n\nMeetingUtil.canStopTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\n\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\n\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\n\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\n\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\n\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\n\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\n\nexport default MeetingUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexErrors","require","_metrics","_interopRequireDefault","_config","_media","_loggerProxy","_constants","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","_promise","reject","ParameterError","localMedias","Media","generateLocalMedias","_isEmpty2","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","_err$body","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","roap","stop","roapSeq","stopKeepAlive","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","_response$body","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","concat","leaveMeeting","undefined","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","updateTransceiver","meetingOptions","type","sendTrack","receiveTrack","track","transceiver","peerConnection","previousMediaDirection","meetingId","remoteQualityLevel","mediaProperties","enableRtx","config","enableExtmap","sendRoapMediaRequest","sdp","e","sender","replaceTrack","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\r\n\r\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\r\nimport Metrics from '../metrics';\r\nimport {eventType, trigger} from '../metrics/config';\r\nimport Media from '../media';\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport {\r\n INTENT_TO_JOIN,\r\n _LEFT_,\r\n _IDLE_,\r\n _JOINED_,\r\n PASSWORD_STATUS,\r\n DISPLAY_HINTS,\r\n FULL_STATE,\r\n} from '../constants';\r\nimport IntentToJoinError from '../common/errors/intent-to-join';\r\nimport JoinMeetingError from '../common/errors/join-meeting';\r\nimport ParameterError from '../common/errors/parameter';\r\nimport PermissionError from '../common/errors/permission';\r\nimport PasswordError from '../common/errors/password-error';\r\nimport CaptchaError from '../common/errors/captcha-error';\r\n\r\nconst MeetingUtil: any = {};\r\n\r\nMeetingUtil.parseLocusJoin = (response) => {\r\n const parsed: any = {};\r\n\r\n // First todo: add check for existance\r\n parsed.locus = response.body.locus;\r\n parsed.mediaConnections = response.body.mediaConnections;\r\n parsed.locusUrl = parsed.locus.url;\r\n parsed.locusId = parsed.locus.url.split('/').pop();\r\n parsed.selfId = parsed.locus.self.id;\r\n\r\n // we need mediaId before making roap calls\r\n parsed.mediaConnections.forEach((mediaConnection) => {\r\n if (mediaConnection.mediaId) {\r\n parsed.mediaId = mediaConnection.mediaId;\r\n }\r\n });\r\n\r\n return parsed;\r\n};\r\n\r\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\r\n if (!meeting) {\r\n return Promise.reject(new ParameterError('You need a meeting object.'));\r\n }\r\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\r\n\r\n if (isEmpty(localMedias)) {\r\n return Promise.reject(\r\n new ParameterError('You need a media id on the meeting to change remote audio.')\r\n );\r\n }\r\n\r\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\r\n\r\n return meeting.meetingRequest\r\n .remoteAudioVideoToggle({\r\n locusUrl: meeting.locusUrl,\r\n selfId: meeting.selfId,\r\n localMedias,\r\n deviceUrl: meeting.deviceUrl,\r\n correlationId: meeting.correlationId,\r\n })\r\n .then((response) => {\r\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\r\n\r\n return response.body.locus;\r\n });\r\n};\r\n\r\nMeetingUtil.hasOwner = (info) => info && info.owner;\r\n\r\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\r\n\r\nMeetingUtil.isPinOrGuest = (err) =>\r\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\r\n\r\nMeetingUtil.joinMeeting = (meeting, options) => {\r\n if (!meeting) {\r\n return Promise.reject(new ParameterError('You need a meeting object.'));\r\n }\r\n\r\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\r\n\r\n // eslint-disable-next-line no-warning-comments\r\n // TODO: check if the meeting is in JOINING state\r\n // if Joining state termintate the request as user might click multiple times\r\n return meeting.meetingRequest\r\n .joinMeeting({\r\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\r\n meetingNumber: meeting.meetingNumber,\r\n deviceUrl: meeting.deviceUrl,\r\n locusUrl: meeting.locusUrl,\r\n correlationId: meeting.correlationId,\r\n roapMessage: options.roapMessage,\r\n permissionToken: meeting.permissionToken,\r\n resourceId: options.resourceId || null,\r\n moderator: options.moderator,\r\n pin: options.pin,\r\n moveToResource: options.moveToResource,\r\n preferTranscoding: options.preferTranscoding,\r\n asResourceOccupant: options.asResourceOccupant,\r\n })\r\n .then((res) => {\r\n Metrics.postEvent({\r\n event: eventType.LOCUS_JOIN_RESPONSE,\r\n meeting,\r\n data: {\r\n trigger: trigger.LOCI_UPDATE,\r\n locus: res.body.locus,\r\n mediaConnections: res.body.mediaConnections,\r\n trackingId: res.headers.trackingid,\r\n },\r\n });\r\n\r\n return MeetingUtil.parseLocusJoin(res);\r\n });\r\n};\r\n\r\nMeetingUtil.cleanUp = (meeting) => {\r\n // make sure we send last metrics before we close the peerconnection\r\n const stopStatsAnalyzer = meeting.statsAnalyzer\r\n ? meeting.statsAnalyzer.stopAnalyzer()\r\n : Promise.resolve();\r\n\r\n return stopStatsAnalyzer\r\n .then(() => meeting.closeLocalStream())\r\n .then(() => meeting.closeLocalShare())\r\n .then(() => meeting.closeRemoteTracks())\r\n .then(() => meeting.closePeerConnections())\r\n .then(() => {\r\n meeting.unsetLocalVideoTrack();\r\n meeting.unsetLocalShareTrack();\r\n meeting.unsetRemoteTracks();\r\n meeting.unsetPeerConnections();\r\n meeting.reconnectionManager.cleanUp();\r\n })\r\n .then(() => meeting.roap.stop(meeting.correlationId, meeting.roapSeq))\r\n .then(() => meeting.stopKeepAlive());\r\n};\r\n\r\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\r\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\r\n return Promise.reject(new MeetingNotActiveError());\r\n }\r\n\r\n const options = {\r\n locusUrl: meeting.locusUrl,\r\n selfId: meeting.selfId,\r\n correlationId: meeting.correlationId,\r\n phoneUrl,\r\n };\r\n\r\n return meeting.meetingRequest\r\n .disconnectPhoneAudio(options)\r\n .then((response) => {\r\n if (response?.body?.locus) {\r\n meeting.locusInfo.onFullLocus(response.body.locus);\r\n }\r\n })\r\n .catch((err) => {\r\n LoggerProxy.logger.error(\r\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\r\n );\r\n\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\n// by default will leave on meeting's resourceId\r\n// if you explicity want it not to leave on resource id, pass\r\n// {resourceId: null}\r\n// TODO: chris, you can modify this however you want\r\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\r\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\r\n // TODO: clean up if the meeting is already inactive\r\n return Promise.reject(new MeetingNotActiveError());\r\n }\r\n\r\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\r\n return Promise.reject(new UserNotJoinedError());\r\n }\r\n\r\n const defaultOptions = {\r\n locusUrl: meeting.locusUrl,\r\n selfId: meeting.selfId,\r\n correlationId: meeting.correlationId,\r\n resourceId: meeting.resourceId,\r\n deviceUrl: meeting.deviceUrl,\r\n };\r\n\r\n const leaveOptions = {...defaultOptions, ...options};\r\n\r\n return meeting.meetingRequest\r\n .leaveMeeting(leaveOptions)\r\n .then((response) => {\r\n if (response && response.body && response.body.locus) {\r\n // && !options.moveMeeting) {\r\n meeting.locusInfo.onFullLocus(response.body.locus);\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .then(() => {\r\n if (options.moveMeeting) {\r\n return Promise.resolve();\r\n }\r\n\r\n return MeetingUtil.cleanUp(meeting);\r\n })\r\n .catch((err) => {\r\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\r\n // 1) on leave clean up the meeting or simply do a sync on the meeting\r\n // 2) If the error says meeting is inactive then destroy the meeting object\r\n LoggerProxy.logger.error(\r\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\r\n );\r\n\r\n return Promise.reject(err);\r\n });\r\n};\r\nMeetingUtil.declineMeeting = (meeting, reason) =>\r\n meeting.meetingRequest.declineMeeting({\r\n locusUrl: meeting.locusUrl,\r\n deviceUrl: meeting.deviceUrl,\r\n reason,\r\n });\r\n\r\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\r\n\r\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\r\n\r\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\r\n\r\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\r\n currentMediaStatus &&\r\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\r\n\r\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\r\n meeting.resourceId = meeting.resourceId || options.resourceId;\r\n\r\n if (meeting.requiredCaptcha) {\r\n return Promise.reject(new CaptchaError());\r\n }\r\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\r\n return Promise.reject(new PasswordError());\r\n }\r\n\r\n if (options.pin) {\r\n Metrics.postEvent({\r\n event: eventType.PIN_COLLECTED,\r\n meeting,\r\n });\r\n }\r\n\r\n // normal join meeting, scenario A, D\r\n return MeetingUtil.joinMeeting(meeting, options)\r\n .then((response) => {\r\n meeting.setLocus(response);\r\n\r\n return Promise.resolve(response);\r\n })\r\n .catch((err) => {\r\n // joining a claimed PMR that is not my own, scenario B\r\n if (MeetingUtil.isPinOrGuest(err)) {\r\n Metrics.postEvent({\r\n event: eventType.PIN_PROMPT,\r\n meeting,\r\n });\r\n\r\n // request host pin or non host for unclaimed PMR, start of Scenario C\r\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\r\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\r\n }\r\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\r\n\r\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\r\n });\r\n};\r\n\r\nMeetingUtil.updateTransceiver = (options, meetingOptions) => {\r\n const {\r\n type,\r\n sendTrack,\r\n receiveTrack,\r\n track,\r\n transceiver,\r\n peerConnection,\r\n previousMediaDirection,\r\n } = options;\r\n\r\n if (\r\n (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||\r\n (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)\r\n ) {\r\n return Media.updateTransceiver(\r\n {\r\n meetingId: meetingOptions.meeting.id,\r\n remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,\r\n enableRtx: meetingOptions.meeting.config.enableRtx,\r\n enableExtmap: meetingOptions.meeting.config.enableExtmap,\r\n },\r\n peerConnection,\r\n transceiver,\r\n {\r\n track,\r\n type,\r\n receiveTrack,\r\n sendTrack,\r\n }\r\n )\r\n .then(() =>\r\n meetingOptions.meeting.roap.sendRoapMediaRequest({\r\n sdp: meetingOptions.mediaProperties.peerConnection.sdp,\r\n roapSeq: meetingOptions.meeting.roapSeq,\r\n meeting: meetingOptions.meeting, // or can pass meeting ID\r\n })\r\n )\r\n .catch((e) => {\r\n LoggerProxy.logger.error(\r\n `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`\r\n );\r\n });\r\n }\r\n if (track) {\r\n transceiver.sender.replaceTrack(track);\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new ParameterError('update Failed: please pass valid parameter'));\r\n};\r\n\r\nMeetingUtil.validateOptions = (options) => {\r\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\r\n\r\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\r\n return Promise.reject(new ParameterError('please pass valid video streams'));\r\n }\r\n\r\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\r\n return Promise.reject(new ParameterError('please pass valid audio streams'));\r\n }\r\n\r\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\r\n return Promise.reject(new ParameterError('please pass valid share streams'));\r\n }\r\n\r\n return Promise.resolve();\r\n};\r\n\r\nMeetingUtil.getTrack = (stream) => {\r\n let audioTrack = null;\r\n let videoTrack = null;\r\n let audioTracks = null;\r\n let videoTracks = null;\r\n\r\n if (!stream) {\r\n return {audioTrack: null, videoTrack: null};\r\n }\r\n if (stream.getAudioTracks) {\r\n audioTracks = stream.getAudioTracks();\r\n }\r\n if (stream.getVideoTracks) {\r\n videoTracks = stream.getVideoTracks();\r\n }\r\n\r\n if (audioTracks && audioTracks.length > 0) {\r\n [audioTrack] = audioTracks;\r\n }\r\n\r\n if (videoTracks && videoTracks.length > 0) {\r\n [videoTrack] = videoTracks;\r\n }\r\n\r\n return {audioTrack, videoTrack};\r\n};\r\n\r\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\r\n locusInfo &&\r\n locusInfo.parsedLocus &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info.moderator;\r\n\r\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\r\n locusInfo &&\r\n locusInfo.parsedLocus &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info &&\r\n locusInfo.parsedLocus.info.policy;\r\n\r\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\r\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\r\n\r\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\r\n\r\nMeetingUtil.canAdmitParticipant = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\r\n\r\nMeetingUtil.canUserLock = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\r\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\r\n\r\nMeetingUtil.canUserUnlock = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\r\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\r\n\r\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\r\n\r\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\r\n\r\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\r\n\r\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\r\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\r\n\r\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\r\n if (actions && actions.canLock) {\r\n return request.lockMeeting({locusUrl, lock: true});\r\n }\r\n\r\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\r\n};\r\n\r\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\r\n if (actions && actions.canUnlock) {\r\n return request.lockMeeting({locusUrl, lock: false});\r\n }\r\n\r\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\r\n};\r\n\r\nMeetingUtil.handleAudioLogging = (audioTrack) => {\r\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\r\n\r\n if (audioTrack) {\r\n const settings = audioTrack.getSettings();\r\n const {deviceId} = settings;\r\n\r\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\r\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\r\n }\r\n};\r\n\r\nMeetingUtil.handleVideoLogging = (videoTrack) => {\r\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\r\n\r\n if (videoTrack) {\r\n const settings = videoTrack.getSettings();\r\n const {deviceId} = settings;\r\n\r\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\r\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\r\n }\r\n};\r\n\r\nMeetingUtil.handleDeviceLogging = (devices = []) => {\r\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\r\n\r\n devices.forEach((device) => {\r\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\r\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\r\n });\r\n};\r\n\r\nMeetingUtil.endMeetingForAll = (meeting) => {\r\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\r\n return Promise.reject(new MeetingNotActiveError());\r\n }\r\n\r\n const endOptions = {\r\n locusUrl: meeting.locusUrl,\r\n };\r\n\r\n return meeting.meetingRequest\r\n .endMeetingForAll(endOptions)\r\n .then((response) => {\r\n if (response && response.body && response.body.locus) {\r\n meeting.locusInfo.onFullLocus(response.body.locus);\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .then(() => MeetingUtil.cleanUp(meeting))\r\n .catch((err) => {\r\n LoggerProxy.logger.error(\r\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\r\n );\r\n\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\r\n\r\nMeetingUtil.canStartTranscribing = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\r\n\r\nMeetingUtil.canStopTranscribing = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\r\n\r\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\r\n\r\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\r\n\r\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\r\n\r\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\r\n\r\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\r\n\r\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\r\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\r\n\r\nexport default MeetingUtil;\r\n"],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- import Collection from '../common/collection';
2
- /**
3
- * @class MeetingInfoCollection
4
- */
5
- export default class MeetingInfoCollection extends Collection {
6
- namespace: string;
7
- /**
8
- * @memberof MeetingInfoCollection
9
- * @constructor
10
- * @public
11
- */
12
- constructor();
13
- /**
14
- * @param {String} id ID of the meeting info you wish to retreive
15
- * @returns {MeetingInfo} returns a meeting info instance
16
- * @public
17
- * @memberof MeetingInfoCollection
18
- */
19
- get(id: string): any;
20
- }
1
+ import Collection from '../common/collection';
2
+ /**
3
+ * @class MeetingInfoCollection
4
+ */
5
+ export default class MeetingInfoCollection extends Collection {
6
+ namespace: string;
7
+ /**
8
+ * @memberof MeetingInfoCollection
9
+ * @constructor
10
+ * @public
11
+ */
12
+ constructor();
13
+ /**
14
+ * @param {String} id ID of the meeting info you wish to retreive
15
+ * @returns {MeetingInfo} returns a meeting info instance
16
+ * @public
17
+ * @memberof MeetingInfoCollection
18
+ */
19
+ get(id: string): any;
20
+ }
@@ -19,16 +19,16 @@ var _collection = _interopRequireDefault(require("../common/collection"));
19
19
  var _constants = require("../constants");
20
20
  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); }; }
21
21
  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; } }
22
- /**
23
- * @class MeetingInfoCollection
22
+ /**
23
+ * @class MeetingInfoCollection
24
24
  */
25
25
  var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
26
26
  (0, _inherits2.default)(MeetingInfoCollection, _Collection);
27
27
  var _super = _createSuper(MeetingInfoCollection);
28
- /**
29
- * @memberof MeetingInfoCollection
30
- * @constructor
31
- * @public
28
+ /**
29
+ * @memberof MeetingInfoCollection
30
+ * @constructor
31
+ * @public
32
32
  */
33
33
  function MeetingInfoCollection() {
34
34
  var _this;
@@ -38,11 +38,11 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
38
38
  return _this;
39
39
  }
40
40
 
41
- /**
42
- * @param {String} id ID of the meeting info you wish to retreive
43
- * @returns {MeetingInfo} returns a meeting info instance
44
- * @public
45
- * @memberof MeetingInfoCollection
41
+ /**
42
+ * @param {String} id ID of the meeting info you wish to retreive
43
+ * @returns {MeetingInfo} returns a meeting info instance
44
+ * @public
45
+ * @memberof MeetingInfoCollection
46
46
  */
47
47
  (0, _createClass2.default)(MeetingInfoCollection, [{
48
48
  key: "get",
@@ -1 +1 @@
1
- {"version":3,"names":["_collection","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingInfoCollection","_Collection","_inherits2","_super","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","MEETINGS","_createClass2","key","value","get","id","meetingInfos","_find2","info","sipUrl","locusId","userId","meetingLink","Collection","exports"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\nimport {MEETINGS} from '../constants';\n\n/**\n * @class MeetingInfoCollection\n */\nexport default class MeetingInfoCollection extends Collection {\n namespace = MEETINGS;\n\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n constructor() {\n super('meetingInfos');\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n public get(id: string) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n\n return find(\n // @ts-ignore\n this.meetingInfos,\n (info) =>\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAAsC,SAAAE,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAEtC;AACA;AACA;AAFA,IAGqBC,qBAAqB,0BAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,qBAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,qBAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,SAAAA,sBAAA,EAAc;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,qBAAA;IACZI,KAAA,GAAAD,MAAA,CAAAL,IAAA,OAAM,cAAc;IAAE,IAAAQ,gBAAA,CAAAtB,OAAA,MAAAuB,uBAAA,CAAAvB,OAAA,EAAAoB,KAAA,gBARZI,mBAAQ;IAAA,OAAAJ,KAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAK,aAAA,CAAAzB,OAAA,EAAAgB,qBAAA;IAAAU,GAAA;IAAAC,KAAA,EAMA,SAAAC,IAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO,IAAAE,MAAA,CAAA/B,OAAA;MACL;MACA,IAAI,CAAC8B,YAAY,EACjB,UAACE,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKJ,EAAE,IAAIG,IAAI,CAACE,OAAO,KAAKL,EAAE,IAAIG,IAAI,CAACG,MAAM,KAAKN,EAAE,IAAIG,IAAI,CAACI,WAAW,KAAKP,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA,OAAAb,qBAAA;AAAA,EA/BgDqB,mBAAU;AAAAC,OAAA,CAAAtC,OAAA,GAAAgB,qBAAA"}
1
+ {"version":3,"names":["_collection","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingInfoCollection","_Collection","_inherits2","_super","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","MEETINGS","_createClass2","key","value","get","id","meetingInfos","_find2","info","sipUrl","locusId","userId","meetingLink","Collection","exports"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\r\n\r\nimport Collection from '../common/collection';\r\nimport {MEETINGS} from '../constants';\r\n\r\n/**\r\n * @class MeetingInfoCollection\r\n */\r\nexport default class MeetingInfoCollection extends Collection {\r\n namespace = MEETINGS;\r\n\r\n /**\r\n * @memberof MeetingInfoCollection\r\n * @constructor\r\n * @public\r\n */\r\n constructor() {\r\n super('meetingInfos');\r\n }\r\n\r\n /**\r\n * @param {String} id ID of the meeting info you wish to retreive\r\n * @returns {MeetingInfo} returns a meeting info instance\r\n * @public\r\n * @memberof MeetingInfoCollection\r\n */\r\n public get(id: string) {\r\n // @ts-ignore\r\n if (this.meetingInfos[id]) {\r\n // @ts-ignore\r\n return this.meetingInfos[id];\r\n }\r\n\r\n return find(\r\n // @ts-ignore\r\n this.meetingInfos,\r\n (info) =>\r\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\r\n );\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAAsC,SAAAE,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAEtC;AACA;AACA;AAFA,IAGqBC,qBAAqB,0BAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,qBAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,qBAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,SAAAA,sBAAA,EAAc;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,qBAAA;IACZI,KAAA,GAAAD,MAAA,CAAAL,IAAA,OAAM,cAAc;IAAE,IAAAQ,gBAAA,CAAAtB,OAAA,MAAAuB,uBAAA,CAAAvB,OAAA,EAAAoB,KAAA,gBARZI,mBAAQ;IAAA,OAAAJ,KAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAK,aAAA,CAAAzB,OAAA,EAAAgB,qBAAA;IAAAU,GAAA;IAAAC,KAAA,EAMA,SAAAC,IAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO,IAAAE,MAAA,CAAA/B,OAAA;MACL;MACA,IAAI,CAAC8B,YAAY,EACjB,UAACE,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKJ,EAAE,IAAIG,IAAI,CAACE,OAAO,KAAKL,EAAE,IAAIG,IAAI,CAACG,MAAM,KAAKN,EAAE,IAAIG,IAAI,CAACI,WAAW,KAAKP,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA,OAAAb,qBAAA;AAAA,EA/BgDqB,mBAAU;AAAAC,OAAA,CAAAtC,OAAA,GAAAgB,qBAAA"}
@@ -1,57 +1,57 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
- /**
5
- * @class MeetingInfo
6
- */
7
- export default class MeetingInfo {
8
- meetingInfoCollection: any;
9
- meetingInfoRequest: any;
10
- webex: any;
11
- /**
12
- *
13
- * @param {WebexSDK} webex
14
- */
15
- constructor(webex: any);
16
- /**
17
- * @param {string} id
18
- * @returns {object}
19
- * @public
20
- * @memberof MeetingInfo
21
- */
22
- getMeetingInfo(id: string): any;
23
- /**
24
- * @param {string} id
25
- * @param {object} info
26
- * @returns {null}
27
- * @public
28
- * @memberof MeetingInfo
29
- */
30
- setMeetingInfo(id: string, info: object): void;
31
- /**
32
- * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
33
- * @param {Object} options
34
- * @returns {Promise}
35
- * @private
36
- * @memberof MeetingInfo
37
- */
38
- private requestFetchInfo;
39
- /**
40
- * Helper to generate the options for the MeetingInfo request
41
- * @param {String} destination
42
- * @param {String} type
43
- * @returns {Promise}
44
- * @private
45
- * @memberof MeetingInfo
46
- */
47
- private fetchInfoOptions;
48
- /**
49
- * Fetches meeting info from the server
50
- * @param {String} destination one of many different types of destinations to look up info for
51
- * @param {String} [type] to match up with the destination value
52
- * @returns {Promise} returns a meeting info object
53
- * @public
54
- * @memberof MeetingInfo
55
- */
56
- fetchMeetingInfo(destination: string, type?: string): any;
57
- }
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ /**
5
+ * @class MeetingInfo
6
+ */
7
+ export default class MeetingInfo {
8
+ meetingInfoCollection: any;
9
+ meetingInfoRequest: any;
10
+ webex: any;
11
+ /**
12
+ *
13
+ * @param {WebexSDK} webex
14
+ */
15
+ constructor(webex: any);
16
+ /**
17
+ * @param {string} id
18
+ * @returns {object}
19
+ * @public
20
+ * @memberof MeetingInfo
21
+ */
22
+ getMeetingInfo(id: string): any;
23
+ /**
24
+ * @param {string} id
25
+ * @param {object} info
26
+ * @returns {null}
27
+ * @public
28
+ * @memberof MeetingInfo
29
+ */
30
+ setMeetingInfo(id: string, info: object): void;
31
+ /**
32
+ * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
33
+ * @param {Object} options
34
+ * @returns {Promise}
35
+ * @private
36
+ * @memberof MeetingInfo
37
+ */
38
+ private requestFetchInfo;
39
+ /**
40
+ * Helper to generate the options for the MeetingInfo request
41
+ * @param {String} destination
42
+ * @param {String} type
43
+ * @returns {Promise}
44
+ * @private
45
+ * @memberof MeetingInfo
46
+ */
47
+ private fetchInfoOptions;
48
+ /**
49
+ * Fetches meeting info from the server
50
+ * @param {String} destination one of many different types of destinations to look up info for
51
+ * @param {String} [type] to match up with the destination value
52
+ * @returns {Promise} returns a meeting info object
53
+ * @public
54
+ * @memberof MeetingInfo
55
+ */
56
+ fetchMeetingInfo(destination: string, type?: string): any;
57
+ }