@webex/plugin-meetings 2.59.3-next.1 → 2.59.4-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 (420) 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.js +2 -2
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.js +45 -45
  10. package/dist/common/collection.js.map +1 -1
  11. package/dist/common/config.js.map +1 -1
  12. package/dist/common/errors/captcha-error.js +7 -7
  13. package/dist/common/errors/captcha-error.js.map +1 -1
  14. package/dist/common/errors/intent-to-join.js +7 -7
  15. package/dist/common/errors/intent-to-join.js.map +1 -1
  16. package/dist/common/errors/join-meeting.js +8 -8
  17. package/dist/common/errors/join-meeting.js.map +1 -1
  18. package/dist/common/errors/media.js +7 -7
  19. package/dist/common/errors/media.js.map +1 -1
  20. package/dist/common/errors/parameter.js +7 -7
  21. package/dist/common/errors/parameter.js.map +1 -1
  22. package/dist/common/errors/password-error.js +7 -7
  23. package/dist/common/errors/password-error.js.map +1 -1
  24. package/dist/common/errors/permission.js +6 -6
  25. package/dist/common/errors/permission.js.map +1 -1
  26. package/dist/common/errors/reconnection-in-progress.js +6 -6
  27. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  28. package/dist/common/errors/reconnection.js +7 -7
  29. package/dist/common/errors/reconnection.js.map +1 -1
  30. package/dist/common/errors/stats.js +7 -7
  31. package/dist/common/errors/stats.js.map +1 -1
  32. package/dist/common/errors/webex-errors.js +42 -42
  33. package/dist/common/errors/webex-errors.js.map +1 -1
  34. package/dist/common/errors/webex-meetings-error.js +12 -12
  35. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  36. package/dist/common/events/events-scope.js +10 -10
  37. package/dist/common/events/events-scope.js.map +1 -1
  38. package/dist/common/events/events.js +4 -4
  39. package/dist/common/events/events.js.map +1 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js.map +1 -1
  42. package/dist/common/logs/logger-config.js.map +1 -1
  43. package/dist/common/logs/logger-proxy.js.map +1 -1
  44. package/dist/common/logs/request.js +18 -18
  45. package/dist/common/logs/request.js.map +1 -1
  46. package/dist/common/queue.js +18 -18
  47. package/dist/common/queue.js.map +1 -1
  48. package/dist/config.js.map +1 -1
  49. package/dist/constants.js +9 -9
  50. package/dist/constants.js.map +1 -1
  51. package/dist/controls-options-manager/constants.js.map +1 -1
  52. package/dist/controls-options-manager/enums.js.map +1 -1
  53. package/dist/controls-options-manager/index.js +83 -83
  54. package/dist/controls-options-manager/index.js.map +1 -1
  55. package/dist/controls-options-manager/util.js.map +1 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/locus-info/controlsUtils.js +27 -27
  58. package/dist/locus-info/controlsUtils.js.map +1 -1
  59. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  60. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  61. package/dist/locus-info/fullState.js.map +1 -1
  62. package/dist/locus-info/hostUtils.js +19 -19
  63. package/dist/locus-info/hostUtils.js.map +1 -1
  64. package/dist/locus-info/index.js +198 -198
  65. package/dist/locus-info/index.js.map +1 -1
  66. package/dist/locus-info/infoUtils.js.map +1 -1
  67. package/dist/locus-info/mediaSharesUtils.js +50 -50
  68. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  69. package/dist/locus-info/parser.js +138 -138
  70. package/dist/locus-info/parser.js.map +1 -1
  71. package/dist/locus-info/selfUtils.js +52 -52
  72. package/dist/locus-info/selfUtils.js.map +1 -1
  73. package/dist/media/index.js +145 -145
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/properties.js +49 -49
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js.map +1 -1
  78. package/dist/mediaQualityMetrics/config.js.map +1 -1
  79. package/dist/meeting/effectsState.js +24 -24
  80. package/dist/meeting/effectsState.js.map +1 -1
  81. package/dist/meeting/in-meeting-actions.js +11 -11
  82. package/dist/meeting/in-meeting-actions.js.map +1 -1
  83. package/dist/meeting/index.js +1505 -1508
  84. package/dist/meeting/index.js.map +1 -1
  85. package/dist/meeting/muteState.js +85 -85
  86. package/dist/meeting/muteState.js.map +1 -1
  87. package/dist/meeting/request.js +143 -143
  88. package/dist/meeting/request.js.map +1 -1
  89. package/dist/meeting/state.js +30 -30
  90. package/dist/meeting/state.js.map +1 -1
  91. package/dist/meeting/util.js +4 -4
  92. package/dist/meeting/util.js.map +1 -1
  93. package/dist/meeting-info/collection.js +13 -13
  94. package/dist/meeting-info/collection.js.map +1 -1
  95. package/dist/meeting-info/index.js +50 -50
  96. package/dist/meeting-info/index.js.map +1 -1
  97. package/dist/meeting-info/meeting-info-v2.js +52 -52
  98. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  99. package/dist/meeting-info/request.js +14 -14
  100. package/dist/meeting-info/request.js.map +1 -1
  101. package/dist/meeting-info/util.js +9 -9
  102. package/dist/meeting-info/util.js.map +1 -1
  103. package/dist/meeting-info/utilv2.js +20 -20
  104. package/dist/meeting-info/utilv2.js.map +1 -1
  105. package/dist/meetings/collection.js +16 -16
  106. package/dist/meetings/collection.js.map +1 -1
  107. package/dist/meetings/index.js +259 -259
  108. package/dist/meetings/index.js.map +1 -1
  109. package/dist/meetings/request.js +15 -15
  110. package/dist/meetings/request.js.map +1 -1
  111. package/dist/meetings/util.js +29 -29
  112. package/dist/meetings/util.js.map +1 -1
  113. package/dist/member/index.js +214 -214
  114. package/dist/member/index.js.map +1 -1
  115. package/dist/member/member.types.js.map +1 -1
  116. package/dist/member/util.js +60 -60
  117. package/dist/member/util.js.map +1 -1
  118. package/dist/members/collection.js +11 -11
  119. package/dist/members/collection.js.map +1 -1
  120. package/dist/members/index.js +277 -277
  121. package/dist/members/index.js.map +1 -1
  122. package/dist/members/request.js +27 -27
  123. package/dist/members/request.js.map +1 -1
  124. package/dist/members/util.js +21 -21
  125. package/dist/members/util.js.map +1 -1
  126. package/dist/metrics/config.js.map +1 -1
  127. package/dist/metrics/constants.js.map +1 -1
  128. package/dist/metrics/index.js +92 -92
  129. package/dist/metrics/index.js.map +1 -1
  130. package/dist/networkQualityMonitor/index.js +65 -65
  131. package/dist/networkQualityMonitor/index.js.map +1 -1
  132. package/dist/peer-connection-manager/index.js +87 -87
  133. package/dist/peer-connection-manager/index.js.map +1 -1
  134. package/dist/peer-connection-manager/util.js +9 -9
  135. package/dist/peer-connection-manager/util.js.map +1 -1
  136. package/dist/personal-meeting-room/index.js +67 -67
  137. package/dist/personal-meeting-room/index.js.map +1 -1
  138. package/dist/personal-meeting-room/request.js +7 -7
  139. package/dist/personal-meeting-room/request.js.map +1 -1
  140. package/dist/personal-meeting-room/util.js.map +1 -1
  141. package/dist/reachability/index.js +119 -112
  142. package/dist/reachability/index.js.map +1 -1
  143. package/dist/reachability/request.js +15 -15
  144. package/dist/reachability/request.js.map +1 -1
  145. package/dist/reactions/reactions.js.map +1 -1
  146. package/dist/reactions/reactions.type.js.map +1 -1
  147. package/dist/reconnection-manager/index.js +112 -112
  148. package/dist/reconnection-manager/index.js.map +1 -1
  149. package/dist/recording-controller/enums.js.map +1 -1
  150. package/dist/recording-controller/index.js +127 -127
  151. package/dist/recording-controller/index.js.map +1 -1
  152. package/dist/recording-controller/util.js.map +1 -1
  153. package/dist/roap/collection.js.map +1 -1
  154. package/dist/roap/handler.js +27 -27
  155. package/dist/roap/handler.js.map +1 -1
  156. package/dist/roap/index.js +111 -111
  157. package/dist/roap/index.js.map +1 -1
  158. package/dist/roap/request.js +17 -17
  159. package/dist/roap/request.js.map +1 -1
  160. package/dist/roap/state.js +14 -14
  161. package/dist/roap/state.js.map +1 -1
  162. package/dist/roap/turnDiscovery.js +46 -46
  163. package/dist/roap/turnDiscovery.js.map +1 -1
  164. package/dist/roap/util.js.map +1 -1
  165. package/dist/statsAnalyzer/global.js.map +1 -1
  166. package/dist/statsAnalyzer/index.js +130 -130
  167. package/dist/statsAnalyzer/index.js.map +1 -1
  168. package/dist/statsAnalyzer/mqaUtil.js +15 -15
  169. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  170. package/dist/transcription/index.js +42 -42
  171. package/dist/transcription/index.js.map +1 -1
  172. package/internal-README.md +172 -172
  173. package/jest.config.js +3 -3
  174. package/package.json +15 -15
  175. package/process +1 -1
  176. package/src/common/browser-detection.ts +39 -39
  177. package/src/common/collection.ts +94 -94
  178. package/src/common/config.ts +9 -9
  179. package/src/common/errors/captcha-error.ts +25 -25
  180. package/src/common/errors/intent-to-join.ts +27 -27
  181. package/src/common/errors/join-meeting.ts +32 -32
  182. package/src/common/errors/media.ts +25 -25
  183. package/src/common/errors/parameter.ts +33 -33
  184. package/src/common/errors/password-error.ts +25 -25
  185. package/src/common/errors/permission.ts +24 -24
  186. package/src/common/errors/reconnection-in-progress.ts +8 -8
  187. package/src/common/errors/reconnection.ts +25 -25
  188. package/src/common/errors/stats.ts +25 -25
  189. package/src/common/errors/webex-errors.ts +140 -140
  190. package/src/common/errors/webex-meetings-error.ts +35 -35
  191. package/src/common/events/events-scope.ts +30 -30
  192. package/src/common/events/events.ts +25 -25
  193. package/src/common/events/trigger-proxy.ts +25 -25
  194. package/src/common/events/util.ts +39 -39
  195. package/src/common/logs/logger-config.ts +8 -8
  196. package/src/common/logs/logger-proxy.ts +44 -44
  197. package/src/common/logs/request.ts +65 -65
  198. package/src/common/queue.ts +50 -50
  199. package/src/config.ts +96 -96
  200. package/src/constants.ts +1121 -1121
  201. package/src/controls-options-manager/constants.ts +5 -5
  202. package/src/controls-options-manager/enums.ts +6 -6
  203. package/src/controls-options-manager/index.ts +183 -183
  204. package/src/controls-options-manager/util.ts +20 -20
  205. package/src/index.js +15 -15
  206. package/src/locus-info/controlsUtils.ts +112 -112
  207. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  208. package/src/locus-info/fullState.ts +69 -69
  209. package/src/locus-info/hostUtils.ts +60 -60
  210. package/src/locus-info/index.ts +1303 -1303
  211. package/src/locus-info/infoUtils.ts +101 -101
  212. package/src/locus-info/mediaSharesUtils.ts +173 -173
  213. package/src/locus-info/parser.ts +680 -680
  214. package/src/locus-info/selfUtils.ts +428 -428
  215. package/src/media/index.ts +675 -675
  216. package/src/media/properties.ts +313 -313
  217. package/src/media/util.ts +37 -37
  218. package/src/mediaQualityMetrics/config.ts +382 -382
  219. package/src/meeting/effectsState.ts +209 -209
  220. package/src/meeting/in-meeting-actions.ts +153 -153
  221. package/src/meeting/index.ts +6537 -6537
  222. package/src/meeting/muteState.ts +365 -365
  223. package/src/meeting/request.ts +810 -810
  224. package/src/meeting/state.ts +194 -194
  225. package/src/meeting/util.ts +530 -530
  226. package/src/meeting-info/collection.ts +41 -41
  227. package/src/meeting-info/index.ts +137 -137
  228. package/src/meeting-info/meeting-info-v2.ts +273 -273
  229. package/src/meeting-info/request.ts +46 -46
  230. package/src/meeting-info/util.ts +314 -314
  231. package/src/meeting-info/utilv2.ts +324 -324
  232. package/src/meetings/collection.ts +43 -43
  233. package/src/meetings/index.ts +1128 -1128
  234. package/src/meetings/request.ts +81 -81
  235. package/src/meetings/util.ts +181 -181
  236. package/src/member/index.ts +446 -446
  237. package/src/member/member.types.ts +13 -13
  238. package/src/member/util.ts +286 -286
  239. package/src/members/collection.ts +40 -40
  240. package/src/members/index.ts +900 -900
  241. package/src/members/request.ts +175 -175
  242. package/src/members/util.ts +260 -260
  243. package/src/metrics/config.ts +485 -485
  244. package/src/metrics/constants.ts +61 -61
  245. package/src/metrics/index.ts +543 -543
  246. package/src/networkQualityMonitor/index.ts +211 -211
  247. package/src/peer-connection-manager/index.ts +847 -847
  248. package/src/peer-connection-manager/util.ts +119 -119
  249. package/src/personal-meeting-room/index.ts +157 -157
  250. package/src/personal-meeting-room/request.ts +48 -48
  251. package/src/personal-meeting-room/util.ts +49 -49
  252. package/src/reachability/index.ts +478 -478
  253. package/src/reachability/request.ts +81 -81
  254. package/src/reactions/reactions.ts +104 -104
  255. package/src/reactions/reactions.type.ts +36 -36
  256. package/src/reconnection-manager/index.ts +622 -622
  257. package/src/recording-controller/enums.ts +8 -8
  258. package/src/recording-controller/index.ts +315 -315
  259. package/src/recording-controller/util.ts +58 -58
  260. package/src/roap/collection.ts +62 -62
  261. package/src/roap/handler.ts +294 -294
  262. package/src/roap/index.ts +413 -413
  263. package/src/roap/request.ts +229 -229
  264. package/src/roap/state.ts +156 -156
  265. package/src/roap/turnDiscovery.ts +283 -283
  266. package/src/roap/util.ts +100 -100
  267. package/src/statsAnalyzer/global.ts +128 -128
  268. package/src/statsAnalyzer/index.ts +1266 -1266
  269. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  270. package/src/transcription/index.ts +154 -154
  271. package/test/integration/spec/journey.js +941 -941
  272. package/test/integration/spec/space-meeting.js +457 -457
  273. package/test/integration/spec/transcription.js +55 -55
  274. package/test/unit/spec/common/browser-detection.js +119 -119
  275. package/test/unit/spec/common/queue.js +69 -69
  276. package/test/unit/spec/controls-options-manager/index.js +123 -123
  277. package/test/unit/spec/controls-options-manager/util.js +65 -65
  278. package/test/unit/spec/fixture/locus.js +406 -406
  279. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  280. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  281. package/test/unit/spec/locus-info/index.js +1272 -1272
  282. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  283. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  284. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  285. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  286. package/test/unit/spec/locus-info/parser.js +298 -298
  287. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  288. package/test/unit/spec/media/properties.ts +305 -305
  289. package/test/unit/spec/meeting/effectsState.js +281 -281
  290. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  291. package/test/unit/spec/meeting/index.js +5227 -5227
  292. package/test/unit/spec/meeting/muteState.js +430 -430
  293. package/test/unit/spec/meeting/request.js +317 -317
  294. package/test/unit/spec/meeting/utils.js +319 -319
  295. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  296. package/test/unit/spec/meeting-info/request.js +64 -64
  297. package/test/unit/spec/meeting-info/util.js +37 -37
  298. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  299. package/test/unit/spec/meetings/collection.js +52 -52
  300. package/test/unit/spec/meetings/index.js +1375 -1375
  301. package/test/unit/spec/meetings/utils.js +66 -66
  302. package/test/unit/spec/member/index.js +47 -47
  303. package/test/unit/spec/member/util.js +80 -80
  304. package/test/unit/spec/members/index.js +364 -364
  305. package/test/unit/spec/members/request.js +200 -200
  306. package/test/unit/spec/members/utils.js +42 -42
  307. package/test/unit/spec/metrics/index.js +111 -111
  308. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  309. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  310. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  311. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  312. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  313. package/test/unit/spec/reachability/index.ts +50 -50
  314. package/test/unit/spec/reconnection-manager/index.js +206 -206
  315. package/test/unit/spec/recording-controller/index.js +230 -230
  316. package/test/unit/spec/recording-controller/util.js +101 -101
  317. package/test/unit/spec/roap/index.ts +128 -128
  318. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  319. package/test/unit/spec/roap/util.js +30 -30
  320. package/test/unit/spec/stats-analyzer/index.js +287 -287
  321. package/test/utils/cmr.js +104 -104
  322. package/test/utils/testUtils.js +287 -287
  323. package/test/utils/webex-config.js +77 -77
  324. package/test/utils/webex-test-users.js +82 -82
  325. package/tsconfig.json +5 -5
  326. package/dist/common/browser-detection.d.ts +0 -9
  327. package/dist/common/collection.d.ts +0 -48
  328. package/dist/common/config.d.ts +0 -2
  329. package/dist/common/errors/captcha-error.d.ts +0 -15
  330. package/dist/common/errors/intent-to-join.d.ts +0 -16
  331. package/dist/common/errors/join-meeting.d.ts +0 -17
  332. package/dist/common/errors/media.d.ts +0 -15
  333. package/dist/common/errors/parameter.d.ts +0 -15
  334. package/dist/common/errors/password-error.d.ts +0 -15
  335. package/dist/common/errors/permission.d.ts +0 -14
  336. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  337. package/dist/common/errors/reconnection.d.ts +0 -15
  338. package/dist/common/errors/stats.d.ts +0 -15
  339. package/dist/common/errors/webex-errors.d.ts +0 -81
  340. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  341. package/dist/common/events/events-scope.d.ts +0 -17
  342. package/dist/common/events/events.d.ts +0 -12
  343. package/dist/common/events/trigger-proxy.d.ts +0 -2
  344. package/dist/common/events/util.d.ts +0 -2
  345. package/dist/common/logs/logger-config.d.ts +0 -2
  346. package/dist/common/logs/logger-proxy.d.ts +0 -2
  347. package/dist/common/logs/request.d.ts +0 -34
  348. package/dist/common/queue.d.ts +0 -32
  349. package/dist/config.d.ts +0 -73
  350. package/dist/constants.d.ts +0 -924
  351. package/dist/controls-options-manager/constants.d.ts +0 -4
  352. package/dist/controls-options-manager/enums.d.ts +0 -5
  353. package/dist/controls-options-manager/index.d.ts +0 -120
  354. package/dist/controls-options-manager/util.d.ts +0 -7
  355. package/dist/index.d.ts +0 -4
  356. package/dist/locus-info/controlsUtils.d.ts +0 -2
  357. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  358. package/dist/locus-info/fullState.d.ts +0 -2
  359. package/dist/locus-info/hostUtils.d.ts +0 -2
  360. package/dist/locus-info/index.d.ts +0 -269
  361. package/dist/locus-info/infoUtils.d.ts +0 -2
  362. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  363. package/dist/locus-info/parser.d.ts +0 -212
  364. package/dist/locus-info/selfUtils.d.ts +0 -2
  365. package/dist/media/index.d.ts +0 -32
  366. package/dist/media/properties.d.ts +0 -108
  367. package/dist/media/util.d.ts +0 -2
  368. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  369. package/dist/meeting/effectsState.d.ts +0 -42
  370. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  371. package/dist/meeting/index.d.ts +0 -1621
  372. package/dist/meeting/muteState.d.ts +0 -116
  373. package/dist/meeting/request.d.ts +0 -255
  374. package/dist/meeting/state.d.ts +0 -9
  375. package/dist/meeting/util.d.ts +0 -2
  376. package/dist/meeting-info/collection.d.ts +0 -20
  377. package/dist/meeting-info/index.d.ts +0 -57
  378. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  379. package/dist/meeting-info/request.d.ts +0 -22
  380. package/dist/meeting-info/util.d.ts +0 -2
  381. package/dist/meeting-info/utilv2.d.ts +0 -2
  382. package/dist/meetings/collection.d.ts +0 -23
  383. package/dist/meetings/index.d.ts +0 -296
  384. package/dist/meetings/request.d.ts +0 -27
  385. package/dist/meetings/util.d.ts +0 -18
  386. package/dist/member/index.d.ts +0 -147
  387. package/dist/member/member.types.d.ts +0 -11
  388. package/dist/member/util.d.ts +0 -2
  389. package/dist/members/collection.d.ts +0 -24
  390. package/dist/members/index.d.ts +0 -298
  391. package/dist/members/request.d.ts +0 -50
  392. package/dist/members/util.d.ts +0 -2
  393. package/dist/metrics/config.d.ts +0 -169
  394. package/dist/metrics/constants.d.ts +0 -57
  395. package/dist/metrics/index.d.ts +0 -152
  396. package/dist/networkQualityMonitor/index.d.ts +0 -70
  397. package/dist/peer-connection-manager/index.d.ts +0 -6
  398. package/dist/peer-connection-manager/util.d.ts +0 -6
  399. package/dist/personal-meeting-room/index.d.ts +0 -47
  400. package/dist/personal-meeting-room/request.d.ts +0 -14
  401. package/dist/personal-meeting-room/util.d.ts +0 -2
  402. package/dist/reachability/index.d.ts +0 -139
  403. package/dist/reachability/request.d.ts +0 -35
  404. package/dist/reactions/reactions.d.ts +0 -4
  405. package/dist/reactions/reactions.type.d.ts +0 -32
  406. package/dist/reconnection-manager/index.d.ts +0 -112
  407. package/dist/recording-controller/enums.d.ts +0 -7
  408. package/dist/recording-controller/index.d.ts +0 -193
  409. package/dist/recording-controller/util.d.ts +0 -13
  410. package/dist/roap/collection.d.ts +0 -10
  411. package/dist/roap/handler.d.ts +0 -47
  412. package/dist/roap/index.d.ts +0 -116
  413. package/dist/roap/request.d.ts +0 -35
  414. package/dist/roap/state.d.ts +0 -9
  415. package/dist/roap/turnDiscovery.d.ts +0 -67
  416. package/dist/roap/util.d.ts +0 -2
  417. package/dist/statsAnalyzer/global.d.ts +0 -126
  418. package/dist/statsAnalyzer/index.d.ts +0 -190
  419. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  420. package/dist/transcription/index.d.ts +0 -64
@@ -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';\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
+ {"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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"}
@@ -11,11 +11,11 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  value: true
12
12
  });
13
13
  exports.default = void 0;
14
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
15
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
17
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
18
+ var _lodash = require("lodash");
19
19
  var _webexErrors = require("../common/errors/webex-errors");
20
20
  var _metrics = _interopRequireDefault(require("../metrics"));
21
21
  var _config = require("../metrics/config");
@@ -54,7 +54,7 @@ MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting)
54
54
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
55
55
  }
56
56
  var localMedias = _media.default.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);
57
- if ((0, _isEmpty2.default)(localMedias)) {
57
+ if ((0, _lodash.isEmpty)(localMedias)) {
58
58
  return _promise.default.reject(new _parameter.default('You need a media id on the meeting to change remote audio.'));
59
59
  }
60
60
  _metrics.default.postEvent({
@@ -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';\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
+ {"version":3,"names":["_lodash","require","_webexErrors","_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","isEmpty","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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"}
@@ -14,21 +14,21 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
14
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
17
- var _find2 = _interopRequireDefault(require("lodash/find"));
17
+ var _lodash = require("lodash");
18
18
  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",
@@ -52,7 +52,7 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
52
52
  // @ts-ignore
53
53
  return this.meetingInfos[id];
54
54
  }
55
- return (0, _find2.default)(
55
+ return (0, _lodash.find)(
56
56
  // @ts-ignore
57
57
  this.meetingInfos, function (info) {
58
58
  return info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id;
@@ -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';\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
+ {"version":3,"names":["_lodash","require","_collection","_interopRequireDefault","_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","find","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":";;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAAsC,SAAAI,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,YAAI;MACT;MACA,IAAI,CAACD,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"}