@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.21

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 (365) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +116 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/index.js +226 -0
  8. package/dist/breakouts/index.js.map +1 -0
  9. package/dist/common/browser-detection.js +1 -20
  10. package/dist/common/browser-detection.js.map +1 -1
  11. package/dist/common/collection.js +5 -20
  12. package/dist/common/collection.js.map +1 -1
  13. package/dist/common/config.js +0 -7
  14. package/dist/common/config.js.map +1 -1
  15. package/dist/common/errors/captcha-error.js +10 -24
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.js +11 -24
  18. package/dist/common/errors/intent-to-join.js.map +1 -1
  19. package/dist/common/errors/join-meeting.js +12 -25
  20. package/dist/common/errors/join-meeting.js.map +1 -1
  21. package/dist/common/errors/media.js +10 -24
  22. package/dist/common/errors/media.js.map +1 -1
  23. package/dist/common/errors/parameter.js +5 -33
  24. package/dist/common/errors/parameter.js.map +1 -1
  25. package/dist/common/errors/password-error.js +10 -24
  26. package/dist/common/errors/password-error.js.map +1 -1
  27. package/dist/common/errors/permission.js +9 -23
  28. package/dist/common/errors/permission.js.map +1 -1
  29. package/dist/common/errors/reconnection-in-progress.js +0 -17
  30. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  31. package/dist/common/errors/reconnection.js +10 -24
  32. package/dist/common/errors/reconnection.js.map +1 -1
  33. package/dist/common/errors/stats.js +10 -24
  34. package/dist/common/errors/stats.js.map +1 -1
  35. package/dist/common/errors/webex-errors.js +6 -41
  36. package/dist/common/errors/webex-errors.js.map +1 -1
  37. package/dist/common/errors/webex-meetings-error.js +5 -25
  38. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  39. package/dist/common/events/events-scope.js +0 -22
  40. package/dist/common/events/events-scope.js.map +1 -1
  41. package/dist/common/events/events.js +0 -23
  42. package/dist/common/events/events.js.map +1 -1
  43. package/dist/common/events/trigger-proxy.js +0 -12
  44. package/dist/common/events/trigger-proxy.js.map +1 -1
  45. package/dist/common/events/util.js +0 -15
  46. package/dist/common/events/util.js.map +1 -1
  47. package/dist/common/logs/logger-config.js +0 -4
  48. package/dist/common/logs/logger-config.js.map +1 -1
  49. package/dist/common/logs/logger-proxy.js +1 -8
  50. package/dist/common/logs/logger-proxy.js.map +1 -1
  51. package/dist/common/logs/request.js +37 -60
  52. package/dist/common/logs/request.js.map +1 -1
  53. package/dist/common/queue.js +4 -14
  54. package/dist/common/queue.js.map +1 -1
  55. package/dist/config.js +6 -6
  56. package/dist/config.js.map +1 -1
  57. package/dist/constants.js +88 -46
  58. package/dist/constants.js.map +1 -1
  59. package/dist/index.js +4 -18
  60. package/dist/index.js.map +1 -1
  61. package/dist/locus-info/controlsUtils.js +12 -29
  62. package/dist/locus-info/controlsUtils.js.map +1 -1
  63. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  64. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  65. package/dist/locus-info/fullState.js +0 -15
  66. package/dist/locus-info/fullState.js.map +1 -1
  67. package/dist/locus-info/hostUtils.js +4 -12
  68. package/dist/locus-info/hostUtils.js.map +1 -1
  69. package/dist/locus-info/index.js +184 -190
  70. package/dist/locus-info/index.js.map +1 -1
  71. package/dist/locus-info/infoUtils.js +3 -37
  72. package/dist/locus-info/infoUtils.js.map +1 -1
  73. package/dist/locus-info/mediaSharesUtils.js +12 -38
  74. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  75. package/dist/locus-info/parser.js +92 -118
  76. package/dist/locus-info/parser.js.map +1 -1
  77. package/dist/locus-info/selfUtils.js +34 -91
  78. package/dist/locus-info/selfUtils.js.map +1 -1
  79. package/dist/media/index.js +67 -111
  80. package/dist/media/index.js.map +1 -1
  81. package/dist/media/properties.js +80 -114
  82. package/dist/media/properties.js.map +1 -1
  83. package/dist/media/util.js +2 -9
  84. package/dist/media/util.js.map +1 -1
  85. package/dist/mediaQualityMetrics/config.js +10 -12
  86. package/dist/mediaQualityMetrics/config.js.map +1 -1
  87. package/dist/meeting/effectsState.js +125 -190
  88. package/dist/meeting/effectsState.js.map +1 -1
  89. package/dist/meeting/in-meeting-actions.js +5 -14
  90. package/dist/meeting/in-meeting-actions.js.map +1 -1
  91. package/dist/meeting/index.js +1692 -1925
  92. package/dist/meeting/index.js.map +1 -1
  93. package/dist/meeting/muteState.js +36 -77
  94. package/dist/meeting/muteState.js.map +1 -1
  95. package/dist/meeting/request.js +224 -230
  96. package/dist/meeting/request.js.map +1 -1
  97. package/dist/meeting/request.type.js +7 -0
  98. package/dist/meeting/request.type.js.map +1 -0
  99. package/dist/meeting/state.js +21 -31
  100. package/dist/meeting/state.js.map +1 -1
  101. package/dist/meeting/util.js +43 -215
  102. package/dist/meeting/util.js.map +1 -1
  103. package/dist/meeting-info/collection.js +6 -25
  104. package/dist/meeting-info/collection.js.map +1 -1
  105. package/dist/meeting-info/index.js +14 -32
  106. package/dist/meeting-info/index.js.map +1 -1
  107. package/dist/meeting-info/meeting-info-v2.js +193 -268
  108. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  109. package/dist/meeting-info/request.js +3 -15
  110. package/dist/meeting-info/request.js.map +1 -1
  111. package/dist/meeting-info/util.js +98 -183
  112. package/dist/meeting-info/util.js.map +1 -1
  113. package/dist/meeting-info/utilv2.js +137 -228
  114. package/dist/meeting-info/utilv2.js.map +1 -1
  115. package/dist/meetings/collection.js +5 -20
  116. package/dist/meetings/collection.js.map +1 -1
  117. package/dist/meetings/index.js +490 -560
  118. package/dist/meetings/index.js.map +1 -1
  119. package/dist/meetings/request.js +24 -41
  120. package/dist/meetings/request.js.map +1 -1
  121. package/dist/meetings/util.js +99 -155
  122. package/dist/meetings/util.js.map +1 -1
  123. package/dist/member/index.js +78 -86
  124. package/dist/member/index.js.map +1 -1
  125. package/dist/member/util.js +31 -68
  126. package/dist/member/util.js.map +1 -1
  127. package/dist/members/collection.js +3 -12
  128. package/dist/members/collection.js.map +1 -1
  129. package/dist/members/index.js +93 -200
  130. package/dist/members/index.js.map +1 -1
  131. package/dist/members/request.js +16 -39
  132. package/dist/members/request.js.map +1 -1
  133. package/dist/members/util.js +9 -38
  134. package/dist/members/util.js.map +1 -1
  135. package/dist/metrics/config.js +0 -2
  136. package/dist/metrics/config.js.map +1 -1
  137. package/dist/metrics/constants.js +1 -2
  138. package/dist/metrics/constants.js.map +1 -1
  139. package/dist/metrics/index.js +55 -135
  140. package/dist/metrics/index.js.map +1 -1
  141. package/dist/multistream/mediaRequestManager.js +57 -32
  142. package/dist/multistream/mediaRequestManager.js.map +1 -1
  143. package/dist/multistream/multistreamMedia.js +15 -21
  144. package/dist/multistream/multistreamMedia.js.map +1 -1
  145. package/dist/multistream/receiveSlot.js +10 -50
  146. package/dist/multistream/receiveSlot.js.map +1 -1
  147. package/dist/multistream/receiveSlotManager.js +45 -82
  148. package/dist/multistream/receiveSlotManager.js.map +1 -1
  149. package/dist/multistream/remoteMedia.js +18 -58
  150. package/dist/multistream/remoteMedia.js.map +1 -1
  151. package/dist/multistream/remoteMediaGroup.js +6 -40
  152. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  153. package/dist/multistream/remoteMediaManager.js +362 -416
  154. package/dist/multistream/remoteMediaManager.js.map +1 -1
  155. package/dist/networkQualityMonitor/index.js +36 -57
  156. package/dist/networkQualityMonitor/index.js.map +1 -1
  157. package/dist/personal-meeting-room/index.js +21 -45
  158. package/dist/personal-meeting-room/index.js.map +1 -1
  159. package/dist/personal-meeting-room/request.js +1 -31
  160. package/dist/personal-meeting-room/request.js.map +1 -1
  161. package/dist/personal-meeting-room/util.js +0 -13
  162. package/dist/personal-meeting-room/util.js.map +1 -1
  163. package/dist/reachability/index.js +138 -182
  164. package/dist/reachability/index.js.map +1 -1
  165. package/dist/reachability/request.js +3 -18
  166. package/dist/reachability/request.js.map +1 -1
  167. package/dist/reactions/constants.js +13 -0
  168. package/dist/reactions/constants.js.map +1 -0
  169. package/dist/reactions/reactions.js +109 -0
  170. package/dist/reactions/reactions.js.map +1 -0
  171. package/dist/reactions/reactions.type.js +36 -0
  172. package/dist/reactions/reactions.type.js.map +1 -0
  173. package/dist/reconnection-manager/index.js +322 -455
  174. package/dist/reconnection-manager/index.js.map +1 -1
  175. package/dist/recording-controller/enums.js +17 -0
  176. package/dist/recording-controller/enums.js.map +1 -0
  177. package/dist/recording-controller/index.js +343 -0
  178. package/dist/recording-controller/index.js.map +1 -0
  179. package/dist/recording-controller/util.js +63 -0
  180. package/dist/recording-controller/util.js.map +1 -0
  181. package/dist/roap/index.js +39 -64
  182. package/dist/roap/index.js.map +1 -1
  183. package/dist/roap/request.js +94 -113
  184. package/dist/roap/request.js.map +1 -1
  185. package/dist/roap/turnDiscovery.js +85 -94
  186. package/dist/roap/turnDiscovery.js.map +1 -1
  187. package/dist/statsAnalyzer/global.js +0 -2
  188. package/dist/statsAnalyzer/global.js.map +1 -1
  189. package/dist/statsAnalyzer/index.js +85 -175
  190. package/dist/statsAnalyzer/index.js.map +1 -1
  191. package/dist/statsAnalyzer/mqaUtil.js +72 -53
  192. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  193. package/dist/transcription/index.js +22 -47
  194. package/dist/transcription/index.js.map +1 -1
  195. package/internal-README.md +7 -6
  196. package/package.json +25 -20
  197. package/src/breakouts/README.md +190 -0
  198. package/src/breakouts/breakout.ts +110 -0
  199. package/src/breakouts/collection.ts +19 -0
  200. package/src/breakouts/index.ts +225 -0
  201. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  202. package/src/common/collection.ts +9 -7
  203. package/src/common/{config.js → config.ts} +1 -1
  204. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  205. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  206. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  207. package/src/common/errors/{media.js → media.ts} +11 -7
  208. package/src/common/errors/parameter.ts +11 -7
  209. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  210. package/src/common/errors/{permission.js → permission.ts} +10 -6
  211. package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
  212. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  213. package/src/common/errors/{stats.js → stats.ts} +11 -7
  214. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  215. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  216. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  217. package/src/common/events/{events.js → events.ts} +5 -1
  218. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  219. package/src/common/events/{util.js → util.ts} +2 -3
  220. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  221. package/src/common/logs/logger-proxy.ts +44 -0
  222. package/src/common/logs/{request.js → request.ts} +22 -9
  223. package/src/common/queue.ts +1 -2
  224. package/src/{config.js → config.ts} +17 -12
  225. package/src/constants.ts +40 -1
  226. package/src/index.js +2 -1
  227. package/src/locus-info/controlsUtils.ts +114 -0
  228. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  229. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  230. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  231. package/src/locus-info/{index.js → index.ts} +148 -64
  232. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  233. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  234. package/src/locus-info/{parser.js → parser.ts} +67 -79
  235. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  236. package/src/media/{index.js → index.ts} +181 -131
  237. package/src/media/{properties.js → properties.ts} +47 -28
  238. package/src/media/{util.js → util.ts} +2 -2
  239. package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
  240. package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
  241. package/src/meeting/in-meeting-actions.ts +15 -3
  242. package/src/meeting/{index.js → index.ts} +2263 -1427
  243. package/src/meeting/{muteState.js → muteState.ts} +78 -42
  244. package/src/meeting/{request.js → request.ts} +292 -142
  245. package/src/meeting/request.type.ts +13 -0
  246. package/src/meeting/{state.js → state.ts} +50 -35
  247. package/src/meeting/{util.js → util.ts} +112 -115
  248. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  249. package/src/meeting-info/{index.js → index.ts} +42 -36
  250. package/src/meeting-info/meeting-info-v2.ts +273 -0
  251. package/src/meeting-info/{request.js → request.ts} +14 -4
  252. package/src/meeting-info/{util.js → util.ts} +60 -51
  253. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  254. package/src/meetings/{collection.js → collection.ts} +6 -3
  255. package/src/meetings/index.ts +1159 -0
  256. package/src/meetings/{request.js → request.ts} +32 -25
  257. package/src/meetings/{util.js → util.ts} +34 -32
  258. package/src/member/{index.js → index.ts} +102 -56
  259. package/src/member/{util.js → util.ts} +52 -25
  260. package/src/members/{collection.js → collection.ts} +2 -2
  261. package/src/members/{index.js → index.ts} +219 -142
  262. package/src/members/{request.js → request.ts} +60 -16
  263. package/src/members/{util.js → util.ts} +50 -48
  264. package/src/metrics/{config.js → config.ts} +254 -83
  265. package/src/metrics/{constants.js → constants.ts} +0 -2
  266. package/src/metrics/{index.js → index.ts} +106 -74
  267. package/src/multistream/mediaRequestManager.ts +81 -15
  268. package/src/multistream/multistreamMedia.ts +5 -0
  269. package/src/multistream/receiveSlot.ts +18 -12
  270. package/src/multistream/receiveSlotManager.ts +23 -21
  271. package/src/multistream/remoteMedia.ts +15 -5
  272. package/src/multistream/remoteMediaGroup.ts +4 -3
  273. package/src/multistream/remoteMediaManager.ts +153 -37
  274. package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
  275. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  276. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  277. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  278. package/src/reachability/{index.js → index.ts} +99 -83
  279. package/src/reachability/request.ts +39 -33
  280. package/src/reactions/constants.ts +4 -0
  281. package/src/reactions/reactions.ts +104 -0
  282. package/src/reactions/reactions.type.ts +62 -0
  283. package/src/reconnection-manager/{index.js → index.ts} +195 -102
  284. package/src/recording-controller/enums.ts +8 -0
  285. package/src/recording-controller/index.ts +315 -0
  286. package/src/recording-controller/util.ts +58 -0
  287. package/src/roap/{index.js → index.ts} +73 -56
  288. package/src/roap/request.ts +157 -0
  289. package/src/roap/turnDiscovery.ts +77 -37
  290. package/src/statsAnalyzer/{global.js → global.ts} +30 -33
  291. package/src/statsAnalyzer/{index.js → index.ts} +468 -192
  292. package/src/statsAnalyzer/mqaUtil.ts +290 -0
  293. package/src/transcription/{index.js → index.ts} +46 -39
  294. package/test/integration/spec/journey.js +664 -463
  295. package/test/integration/spec/space-meeting.js +320 -206
  296. package/test/integration/spec/transcription.js +7 -8
  297. package/test/unit/spec/breakouts/breakout.ts +119 -0
  298. package/test/unit/spec/breakouts/collection.ts +15 -0
  299. package/test/unit/spec/breakouts/index.ts +293 -0
  300. package/test/unit/spec/common/browser-detection.js +9 -28
  301. package/test/unit/spec/fixture/locus.js +92 -90
  302. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  303. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  304. package/test/unit/spec/locus-info/index.js +104 -2
  305. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  306. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  307. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  308. package/test/unit/spec/locus-info/parser.js +3 -9
  309. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  310. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  311. package/test/unit/spec/media/index.ts +31 -47
  312. package/test/unit/spec/media/properties.ts +9 -9
  313. package/test/unit/spec/meeting/effectsState.js +39 -45
  314. package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
  315. package/test/unit/spec/meeting/index.js +2017 -742
  316. package/test/unit/spec/meeting/muteState.js +42 -33
  317. package/test/unit/spec/meeting/request.js +115 -44
  318. package/test/unit/spec/meeting/utils.js +104 -171
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  320. package/test/unit/spec/meeting-info/request.js +7 -9
  321. package/test/unit/spec/meeting-info/util.js +11 -12
  322. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  323. package/test/unit/spec/meetings/collection.js +1 -1
  324. package/test/unit/spec/meetings/index.js +439 -257
  325. package/test/unit/spec/meetings/utils.js +14 -12
  326. package/test/unit/spec/member/index.js +0 -1
  327. package/test/unit/spec/member/util.js +31 -7
  328. package/test/unit/spec/members/index.js +104 -54
  329. package/test/unit/spec/members/request.js +29 -20
  330. package/test/unit/spec/members/utils.js +8 -5
  331. package/test/unit/spec/metrics/index.js +16 -21
  332. package/test/unit/spec/multistream/mediaRequestManager.ts +316 -50
  333. package/test/unit/spec/multistream/receiveSlot.ts +6 -6
  334. package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
  335. package/test/unit/spec/multistream/remoteMedia.ts +10 -2
  336. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  337. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  338. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  339. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  340. package/test/unit/spec/reachability/index.ts +58 -26
  341. package/test/unit/spec/reconnection-manager/index.js +102 -9
  342. package/test/unit/spec/recording-controller/index.js +231 -0
  343. package/test/unit/spec/recording-controller/util.js +102 -0
  344. package/test/unit/spec/roap/index.ts +2 -1
  345. package/test/unit/spec/roap/request.ts +114 -0
  346. package/test/unit/spec/roap/turnDiscovery.ts +64 -45
  347. package/test/unit/spec/stats-analyzer/index.js +27 -22
  348. package/test/utils/cmr.js +44 -42
  349. package/test/utils/testUtils.js +83 -74
  350. package/test/utils/webex-config.js +18 -18
  351. package/test/utils/webex-test-users.js +54 -50
  352. package/tsconfig.json +6 -0
  353. package/dist/media/internal-media-core-wrapper.js +0 -22
  354. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  355. package/dist/peer-connection-manager/util.js +0 -124
  356. package/dist/peer-connection-manager/util.js.map +0 -1
  357. package/src/common/logs/logger-proxy.js +0 -33
  358. package/src/locus-info/controlsUtils.js +0 -102
  359. package/src/media/internal-media-core-wrapper.ts +0 -9
  360. package/src/meeting-info/meeting-info-v2.js +0 -255
  361. package/src/meetings/index.js +0 -1015
  362. package/src/peer-connection-manager/util.ts +0 -117
  363. package/src/roap/request.js +0 -127
  364. package/src/statsAnalyzer/mqaUtil.js +0 -173
  365. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
@@ -1,43 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
-
7
5
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
-
9
6
  _Object$defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
-
13
9
  exports.default = void 0;
14
-
15
10
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
-
17
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
18
-
19
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
20
-
13
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
21
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
22
-
23
15
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
24
-
25
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
26
-
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
27
18
  var _webexCore = require("@webex/webex-core");
28
-
29
19
  var _constants = require("../constants");
30
-
31
20
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
32
-
33
21
  var _request = _interopRequireDefault(require("./request"));
34
-
35
22
  var _turnDiscovery = _interopRequireDefault(require("./turnDiscovery"));
36
-
37
23
  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); }; }
38
-
39
24
  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; } }
40
-
41
25
  /**
42
26
  * Roap options
43
27
  * @typedef {Object} RoapOptions
@@ -47,14 +31,12 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
47
31
  * @property {Number} tieBreaker
48
32
  * @property {Boolean} reconnect
49
33
  */
50
-
51
34
  /**
52
- * @typedef {Object} SeqOptions
53
- * @property {String} correlationId
54
- * @property {String} mediaId
55
- * @property {Number} seq
56
- */
57
-
35
+ * @typedef {Object} SeqOptions
36
+ * @property {String} correlationId
37
+ * @property {String} mediaId
38
+ * @property {Number} seq
39
+ */
58
40
  /**
59
41
  * @class Roap
60
42
  * @export
@@ -62,9 +44,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
62
44
  */
63
45
  var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
64
46
  (0, _inherits2.default)(Roap, _StatelessWebexPlugin);
65
-
66
47
  var _super = _createSuper(Roap);
67
-
68
48
  /**
69
49
  *
70
50
  * @param {Object} attrs
@@ -72,7 +52,6 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
72
52
  */
73
53
  function Roap(attrs, options) {
74
54
  var _this;
75
-
76
55
  (0, _classCallCheck2.default)(this, Roap);
77
56
  _this = _super.call(this, {}, options);
78
57
  /**
@@ -81,7 +60,12 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
81
60
  * @private
82
61
  * @memberof Roap
83
62
  */
84
-
63
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
64
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastRoapOffer", void 0);
65
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "options", void 0);
66
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapHandler", void 0);
67
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roapRequest", void 0);
68
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "turnDiscovery", void 0);
85
69
  _this.attrs = attrs;
86
70
  /**
87
71
  * @instance
@@ -89,7 +73,6 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
89
73
  * @private
90
74
  * @memberof Roap
91
75
  */
92
-
93
76
  _this.options = options;
94
77
  /**
95
78
  * The Roap Request Server Proxy Object
@@ -98,36 +81,31 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
98
81
  * @private
99
82
  * @memberof Roap
100
83
  */
101
-
84
+ // @ts-ignore
102
85
  _this.roapRequest = new _request.default({}, options);
103
86
  _this.turnDiscovery = new _turnDiscovery.default(_this.roapRequest);
104
87
  return _this;
105
88
  }
89
+
106
90
  /**
107
91
  *
108
92
  * @param {SeqOptions} options
109
93
  * @returns {null}
110
- * @private
111
94
  * @memberof Roap
112
95
  */
113
-
114
-
115
96
  (0, _createClass2.default)(Roap, [{
116
97
  key: "sendRoapOK",
117
98
  value: function sendRoapOK(options) {
118
99
  var _this2 = this;
119
-
120
100
  return _promise.default.resolve().then(function () {
101
+ // @ts-ignore
121
102
  var meeting = _this2.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);
122
-
123
103
  var roapMessage = {
124
104
  messageType: _constants.ROAP.ROAP_TYPES.OK,
125
105
  version: _constants.ROAP.ROAP_VERSION,
126
106
  seq: options.seq
127
107
  };
128
-
129
108
  _loggerProxy.default.logger.log("Roap:index#sendRoapOK --> ROAP OK sending with seq ".concat(options.seq));
130
-
131
109
  return _this2.roapRequest.sendRoap({
132
110
  roapMessage: roapMessage,
133
111
  locusSelfUrl: meeting.selfUrl,
@@ -142,19 +120,19 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
142
120
  });
143
121
  });
144
122
  }
123
+
145
124
  /**
146
125
  * Sends a ROAP answer...
147
126
  * @param {SeqOptions} options
148
127
  * @param {Boolean} options.audioMuted
149
128
  * @param {Boolean} options.videoMuted
150
129
  * @returns {Promise}
151
- * @private
152
130
  * @memberof Roap
153
131
  */
154
-
155
132
  }, {
156
133
  key: "sendRoapAnswer",
157
134
  value: function sendRoapAnswer(options) {
135
+ // @ts-ignore
158
136
  var meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);
159
137
  var roapMessage = {
160
138
  messageType: _constants.ROAP.ROAP_TYPES.ANSWER,
@@ -173,17 +151,17 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
173
151
  preferTranscoding: !meeting.isMultistream
174
152
  });
175
153
  }
154
+
176
155
  /**
177
156
  * Sends a ROAP error...
178
157
  * @param {Object} options
179
158
  * @returns {Promise}
180
- * @private
181
159
  * @memberof Roap
182
160
  */
183
-
184
161
  }, {
185
162
  key: "sendRoapError",
186
163
  value: function sendRoapError(options) {
164
+ // @ts-ignore
187
165
  var meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);
188
166
  var roapMessage = {
189
167
  messageType: _constants.ROAP.ROAP_TYPES.ERROR,
@@ -204,32 +182,32 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
204
182
  _loggerProxy.default.logger.log("Roap:index#sendRoapError --> ROAP ERROR sent with seq ".concat(options.seq));
205
183
  });
206
184
  }
185
+
207
186
  /**
208
187
  * sends a roap media request
209
188
  * @param {RoapOptions} options
210
189
  * @returns {Promise}
211
- * @private
212
190
  * @memberof Roap
213
191
  */
214
-
215
192
  }, {
216
193
  key: "sendRoapMediaRequest",
217
194
  value: function sendRoapMediaRequest(options) {
218
195
  var meeting = options.meeting,
219
- seq = options.seq,
220
- sdp = options.sdp,
221
- reconnect = options.reconnect,
222
- tieBreaker = options.tieBreaker;
196
+ seq = options.seq,
197
+ sdp = options.sdp,
198
+ reconnect = options.reconnect,
199
+ tieBreaker = options.tieBreaker;
223
200
  var roapMessage = {
224
201
  messageType: _constants.ROAP.ROAP_TYPES.OFFER,
225
202
  sdps: [sdp],
226
203
  version: _constants.ROAP.ROAP_VERSION,
227
204
  seq: seq,
228
205
  tieBreaker: tieBreaker
229
- }; // When reconnecting, it's important that the first roap message being sent out has empty media id.
206
+ };
207
+
208
+ // When reconnecting, it's important that the first roap message being sent out has empty media id.
230
209
  // Normally this is the roap offer, but when TURN discovery is enabled,
231
210
  // then this is the TURN discovery request message
232
-
233
211
  var sendEmptyMediaId = reconnect && !meeting.config.experimental.enableTurnDiscovery;
234
212
  return this.roapRequest.sendRoap({
235
213
  roapMessage: roapMessage,
@@ -242,26 +220,24 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
242
220
  preferTranscoding: !meeting.isMultistream
243
221
  }).then(function (_ref) {
244
222
  var locus = _ref.locus,
245
- mediaConnections = _ref.mediaConnections;
246
-
223
+ mediaConnections = _ref.mediaConnections;
247
224
  if (mediaConnections) {
248
225
  meeting.updateMediaConnections(mediaConnections);
249
226
  }
250
-
251
227
  return locus;
252
228
  });
253
229
  }
254
- /**
255
- * Performs a TURN server discovery procedure, which involves exchanging
256
- * some roap messages with the server. This exchange has to be done before
257
- * any other roap messages are sent
258
- *
259
- * @param {Meeting} meeting
260
- * @param {Boolean} isReconnecting should be set to true if this is a new
261
- * media connection just after a reconnection
262
- * @returns {Promise}
263
- */
264
230
 
231
+ /**
232
+ * Performs a TURN server discovery procedure, which involves exchanging
233
+ * some roap messages with the server. This exchange has to be done before
234
+ * any other roap messages are sent
235
+ *
236
+ * @param {Meeting} meeting
237
+ * @param {Boolean} isReconnecting should be set to true if this is a new
238
+ * media connection just after a reconnection
239
+ * @returns {Promise}
240
+ */
265
241
  }, {
266
242
  key: "doTurnDiscovery",
267
243
  value: function doTurnDiscovery(meeting, isReconnecting) {
@@ -270,6 +246,5 @@ var Roap = /*#__PURE__*/function (_StatelessWebexPlugin) {
270
246
  }]);
271
247
  return Roap;
272
248
  }(_webexCore.StatelessWebexPlugin);
273
-
274
249
  exports.default = Roap;
275
250
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Roap","attrs","options","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","resolve","then","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","sendRoap","locusSelfUrl","selfUrl","mediaId","audioMuted","isAudioMuted","videoMuted","isVideoMuted","meetingId","id","preferTranscoding","isMultistream","ANSWER","sdps","sdp","ERROR","errorType","reconnect","tieBreaker","OFFER","sendEmptyMediaId","config","experimental","enableTurnDiscovery","locus","mediaConnections","updateMediaConnections","isReconnecting","doTurnDiscovery","StatelessWebexPlugin"],"sources":["index.js"],"sourcesContent":["import {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs, options) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n this.roapRequest = new RoapRequest({}, options);\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @private\n * @memberof Roap\n */\n sendRoapOK(options) {\n return Promise.resolve().then(() => {\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapAnswer(options) {\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapError(options) {\n const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', options.correlationId);\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq\n\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`);\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @private\n * @memberof Roap\n */\n sendRoapMediaRequest(options) {\n const {\n meeting, seq, sdp, reconnect, tieBreaker\n } = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker\n };\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n const sendEmptyMediaId = reconnect && !meeting.config.experimental.enableTurnDiscovery;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n correlationId: meeting.correlationId,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n return locus;\n });\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting, isReconnecting) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Roap","attrs","options","roapRequest","RoapRequest","turnDiscovery","TurnDiscovery","resolve","then","meeting","webex","meetings","meetingCollection","getByKey","correlationId","roapMessage","messageType","ROAP","ROAP_TYPES","OK","version","ROAP_VERSION","seq","LoggerProxy","logger","log","sendRoap","locusSelfUrl","selfUrl","mediaId","audioMuted","isAudioMuted","videoMuted","isVideoMuted","meetingId","id","preferTranscoding","isMultistream","ANSWER","sdps","sdp","ERROR","errorType","reconnect","tieBreaker","OFFER","sendEmptyMediaId","config","experimental","enableTurnDiscovery","locus","mediaConnections","updateMediaConnections","isReconnecting","doTurnDiscovery","StatelessWebexPlugin"],"sources":["index.ts"],"sourcesContent":["// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {ROAP} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport RoapRequest from './request';\nimport TurnDiscovery from './turnDiscovery';\nimport Meeting from '../meeting';\n\n/**\n * Roap options\n * @typedef {Object} RoapOptions\n * @property {String} sdp\n * @property {Meeting} meeting\n * @property {Number} seq\n * @property {Number} tieBreaker\n * @property {Boolean} reconnect\n */\n\n/**\n * @typedef {Object} SeqOptions\n * @property {String} correlationId\n * @property {String} mediaId\n * @property {Number} seq\n */\n\n/**\n * @class Roap\n * @export\n * @private\n */\nexport default class Roap extends StatelessWebexPlugin {\n attrs: any;\n lastRoapOffer: any;\n options: any;\n roapHandler: any;\n roapRequest: any;\n turnDiscovery: any;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof Roap\n */\n this.options = options;\n /**\n * The Roap Request Server Proxy Object\n * @instance\n * @type {RoapRequest}\n * @private\n * @memberof Roap\n */\n // @ts-ignore\n this.roapRequest = new RoapRequest({}, options);\n\n this.turnDiscovery = new TurnDiscovery(this.roapRequest);\n }\n\n /**\n *\n * @param {SeqOptions} options\n * @returns {null}\n * @memberof Roap\n */\n public sendRoapOK(options: any) {\n return Promise.resolve().then(() => {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OK,\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sending with seq ${options.seq}`);\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(() => {\n LoggerProxy.logger.log(`Roap:index#sendRoapOK --> ROAP OK sent with seq ${options.seq}`);\n });\n });\n }\n\n /**\n * Sends a ROAP answer...\n * @param {SeqOptions} options\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @returns {Promise}\n * @memberof Roap\n */\n public sendRoapAnswer(options: any) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ANSWER,\n sdps: [options.sdp],\n version: ROAP.ROAP_VERSION,\n seq: options.seq,\n };\n\n return this.roapRequest.sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n });\n }\n\n /**\n * Sends a ROAP error...\n * @param {Object} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapError(options) {\n // @ts-ignore\n const meeting = this.webex.meetings.meetingCollection.getByKey(\n 'correlationId',\n options.correlationId\n );\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.ERROR,\n version: ROAP.ROAP_VERSION,\n errorType: options.errorType,\n seq: options.seq,\n };\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n locusSelfUrl: meeting.selfUrl,\n mediaId: options.mediaId,\n correlationId: options.correlationId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(() => {\n LoggerProxy.logger.log(\n `Roap:index#sendRoapError --> ROAP ERROR sent with seq ${options.seq}`\n );\n });\n }\n\n /**\n * sends a roap media request\n * @param {RoapOptions} options\n * @returns {Promise}\n * @memberof Roap\n */\n sendRoapMediaRequest(options: any) {\n const {meeting, seq, sdp, reconnect, tieBreaker} = options;\n const roapMessage = {\n messageType: ROAP.ROAP_TYPES.OFFER,\n sdps: [sdp],\n version: ROAP.ROAP_VERSION,\n seq,\n tieBreaker,\n };\n\n // When reconnecting, it's important that the first roap message being sent out has empty media id.\n // Normally this is the roap offer, but when TURN discovery is enabled,\n // then this is the TURN discovery request message\n const sendEmptyMediaId = reconnect && !meeting.config.experimental.enableTurnDiscovery;\n\n return this.roapRequest\n .sendRoap({\n roapMessage,\n correlationId: meeting.correlationId,\n locusSelfUrl: meeting.selfUrl,\n mediaId: sendEmptyMediaId ? '' : meeting.mediaId,\n audioMuted: meeting.isAudioMuted(),\n videoMuted: meeting.isVideoMuted(),\n meetingId: meeting.id,\n preferTranscoding: !meeting.isMultistream,\n })\n .then(({locus, mediaConnections}) => {\n if (mediaConnections) {\n meeting.updateMediaConnections(mediaConnections);\n }\n\n return locus;\n });\n }\n\n /**\n * Performs a TURN server discovery procedure, which involves exchanging\n * some roap messages with the server. This exchange has to be done before\n * any other roap messages are sent\n *\n * @param {Meeting} meeting\n * @param {Boolean} isReconnecting should be set to true if this is a new\n * media connection just after a reconnection\n * @returns {Promise}\n */\n doTurnDiscovery(meeting: Meeting, isReconnecting: boolean) {\n return this.turnDiscovery.doTurnDiscovery(meeting, isReconnecting);\n }\n}\n"],"mappings":"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"}
@@ -1,100 +1,87 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
6
-
7
5
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
8
-
9
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
-
11
7
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
12
-
13
8
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
14
-
15
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
16
-
17
10
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
18
-
19
11
  _Object$defineProperty(exports, "__esModule", {
20
12
  value: true
21
13
  });
22
-
23
14
  exports.default = void 0;
24
-
15
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
25
16
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
26
-
27
17
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
28
-
29
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
30
-
19
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
31
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
32
-
33
21
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
34
-
35
22
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
36
-
37
23
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
38
-
39
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
40
-
41
25
  var _webexCore = require("@webex/webex-core");
42
-
43
26
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
44
-
45
27
  var _constants = require("../constants");
46
-
47
28
  var _metrics = _interopRequireDefault(require("../metrics"));
48
-
49
29
  var _config = require("../metrics/config");
50
-
51
30
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
52
-
53
31
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
54
-
55
32
  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); }; }
56
-
57
33
  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; } }
58
-
59
34
  /**
60
35
  * @class RoapRequest
61
36
  */
62
37
  var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
63
38
  (0, _inherits2.default)(RoapRequest, _StatelessWebexPlugin);
64
-
65
39
  var _super = _createSuper(RoapRequest);
66
-
67
40
  function RoapRequest() {
68
41
  (0, _classCallCheck2.default)(this, RoapRequest);
69
42
  return _super.apply(this, arguments);
70
43
  }
71
-
72
44
  (0, _createClass2.default)(RoapRequest, [{
73
45
  key: "attachRechabilityData",
74
46
  value:
75
47
  /**
76
48
  * Joins a meeting via ROAP
77
- * @param {Object} options
49
+ * @param {Object} localSdp
78
50
  * @returns {Promise} returns a promise that resolves/rejects whatever the request does
79
51
  */
80
- function attachRechabilityData(localSdp) {
81
- var reachabilityData = window.localStorage.getItem(_constants.REACHABILITY.localStorage);
82
-
83
- if (reachabilityData) {
84
- try {
85
- var reachabilityResult = JSON.parse(reachabilityData);
86
- /* istanbul ignore else */
87
-
88
- if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
89
- localSdp.reachability = reachabilityResult;
52
+ function () {
53
+ var _attachRechabilityData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(localSdp) {
54
+ var reachabilityData, reachabilityResult;
55
+ return _regenerator.default.wrap(function _callee$(_context) {
56
+ while (1) switch (_context.prev = _context.next) {
57
+ case 0:
58
+ _context.next = 2;
59
+ return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorage).catch(function () {});
60
+ case 2:
61
+ reachabilityData = _context.sent;
62
+ if (reachabilityData) {
63
+ try {
64
+ reachabilityResult = JSON.parse(reachabilityData);
65
+ /* istanbul ignore else */
66
+ if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
67
+ localSdp.reachability = reachabilityResult;
68
+ }
69
+ } catch (e) {
70
+ _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
71
+ }
72
+ }
73
+ return _context.abrupt("return", localSdp);
74
+ case 5:
75
+ case "end":
76
+ return _context.stop();
90
77
  }
91
- } catch (e) {
92
- _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
93
- }
78
+ }, _callee, this);
79
+ }));
80
+ function attachRechabilityData(_x) {
81
+ return _attachRechabilityData.apply(this, arguments);
94
82
  }
95
-
96
- return localSdp;
97
- }
83
+ return attachRechabilityData;
84
+ }()
98
85
  /**
99
86
  * Sends a ROAP message
100
87
  * @param {Object} options
@@ -105,94 +92,88 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
105
92
  * @param {Boolean} options.audioMuted
106
93
  * @param {Boolean} options.videoMuted
107
94
  * @param {String} options.meetingId
95
+ * @param {Boolean} options.preferTranscoding
108
96
  * @returns {Promise} returns the response/failure of the request
109
97
  */
110
-
111
98
  }, {
112
99
  key: "sendRoap",
113
100
  value: function sendRoap(options) {
114
- var _options$preferTransc;
115
-
101
+ var _this = this;
116
102
  var roapMessage = options.roapMessage,
117
- locusSelfUrl = options.locusSelfUrl,
118
- mediaId = options.mediaId,
119
- correlationId = options.correlationId,
120
- meetingId = options.meetingId;
121
-
103
+ locusSelfUrl = options.locusSelfUrl,
104
+ mediaId = options.mediaId,
105
+ correlationId = options.correlationId,
106
+ meetingId = options.meetingId;
122
107
  if (!mediaId) {
123
108
  _loggerProxy.default.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');
124
109
  }
125
-
126
110
  var mediaUrl = "".concat(locusSelfUrl, "/").concat(_constants.MEDIA);
111
+ // @ts-ignore
127
112
  var deviceUrl = this.webex.internal.device.url;
128
-
129
113
  _loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(mediaUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
130
-
131
114
  _metrics.default.postEvent({
132
115
  event: _config.eventType.MEDIA_REQUEST,
133
116
  meetingId: meetingId
134
117
  });
135
-
136
- return this.webex.request({
137
- uri: mediaUrl,
138
- method: _constants.HTTP_VERBS.PUT,
139
- body: {
140
- device: {
141
- url: deviceUrl,
142
- deviceType: this.config.meetings.deviceType
143
- },
144
- correlationId: correlationId,
145
- localMedias: [{
146
- localSdp: (0, _stringify.default)(this.attachRechabilityData({
147
- roapMessage: roapMessage,
148
- // eslint-disable-next-line no-warning-comments
149
- // TODO: check whats the need for video and audiomute
150
- audioMuted: !!options.audioMuted,
151
- videoMuted: !!options.videoMuted
152
- })),
153
- mediaId: options.mediaId
154
- }],
155
- clientMediaPreferences: {
156
- preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
118
+ return this.attachRechabilityData({
119
+ roapMessage: roapMessage,
120
+ // eslint-disable-next-line no-warning-comments
121
+ // TODO: check whats the need for video and audiomute
122
+ audioMuted: !!options.audioMuted,
123
+ videoMuted: !!options.videoMuted
124
+ }).then(function (sdpWithReachability) {
125
+ var _options$preferTransc;
126
+ // @ts-ignore
127
+ return _this.webex.request({
128
+ uri: mediaUrl,
129
+ method: _constants.HTTP_VERBS.PUT,
130
+ body: {
131
+ device: {
132
+ url: deviceUrl,
133
+ // @ts-ignore
134
+ deviceType: _this.config.meetings.deviceType
135
+ },
136
+ correlationId: correlationId,
137
+ localMedias: [{
138
+ localSdp: (0, _stringify.default)(sdpWithReachability),
139
+ mediaId: options.mediaId
140
+ }],
141
+ clientMediaPreferences: {
142
+ preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
143
+ }
157
144
  }
158
- }
159
- }).then(function (res) {
160
- _metrics.default.postEvent({
161
- event: _config.eventType.MEDIA_RESPONSE,
162
- meetingId: meetingId
163
- }); // always it will be the first mediaConnection Object
164
-
165
-
166
- var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
167
-
168
- _loggerProxy.default.logger.info("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
169
-
170
- var locus = res.body.locus;
171
- locus.roapSeq = options.roapMessage.seq;
172
- return _objectSpread({
173
- locus: locus
174
- }, mediaConnections && {
175
- mediaConnections: res.body.mediaConnections
145
+ }).then(function (res) {
146
+ _metrics.default.postEvent({
147
+ event: _config.eventType.MEDIA_RESPONSE,
148
+ meetingId: meetingId
149
+ });
150
+
151
+ // always it will be the first mediaConnection Object
152
+ var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
153
+ _loggerProxy.default.logger.info("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
154
+ var locus = res.body.locus;
155
+ locus.roapSeq = options.roapMessage.seq;
156
+ return _objectSpread({
157
+ locus: locus
158
+ }, mediaConnections && {
159
+ mediaConnections: res.body.mediaConnections
160
+ });
161
+ }).catch(function (err) {
162
+ _metrics.default.postEvent({
163
+ event: _config.eventType.MEDIA_RESPONSE,
164
+ meetingId: meetingId,
165
+ data: {
166
+ error: _metrics.default.parseLocusError(err, true)
167
+ }
168
+ });
169
+ _loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
170
+ _loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
171
+ throw err;
176
172
  });
177
- }).catch(function (err) {
178
- _metrics.default.postEvent({
179
- event: _config.eventType.MEDIA_RESPONSE,
180
- meetingId: meetingId,
181
- data: {
182
- error: _metrics.default.parseLocusError(err, true)
183
- }
184
- });
185
-
186
- _loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
187
-
188
- _loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
189
-
190
- throw err;
191
173
  });
192
174
  }
193
175
  }]);
194
176
  return RoapRequest;
195
177
  }(_webexCore.StatelessWebexPlugin);
196
-
197
178
  exports.default = RoapRequest;
198
179
  //# sourceMappingURL=request.js.map