@webex/plugin-meetings 3.7.0 → 3.8.0

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 (351) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/annotation/index.js +17 -0
  5. package/dist/annotation/index.js.map +1 -1
  6. package/dist/breakouts/breakout.d.ts +8 -0
  7. package/dist/breakouts/breakout.js +1 -1
  8. package/dist/breakouts/collection.d.ts +5 -0
  9. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  10. package/dist/breakouts/events.d.ts +8 -0
  11. package/dist/breakouts/index.d.ts +5 -0
  12. package/dist/breakouts/index.js +1 -1
  13. package/dist/breakouts/request.d.ts +22 -0
  14. package/dist/breakouts/utils.d.ts +15 -0
  15. package/dist/common/browser-detection.d.ts +9 -0
  16. package/dist/common/collection.d.ts +48 -0
  17. package/dist/common/config.d.ts +2 -0
  18. package/dist/common/errors/captcha-error.d.ts +15 -0
  19. package/dist/common/errors/intent-to-join.d.ts +16 -0
  20. package/dist/common/errors/join-forbidden-error.js +52 -0
  21. package/dist/common/errors/join-forbidden-error.js.map +1 -0
  22. package/dist/common/errors/join-meeting.d.ts +17 -0
  23. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  24. package/dist/common/errors/join-webinar-error.js.map +1 -0
  25. package/dist/common/errors/media.d.ts +15 -0
  26. package/dist/common/errors/multistream-not-supported-error.js +53 -0
  27. package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
  28. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  29. package/dist/common/errors/parameter.d.ts +15 -0
  30. package/dist/common/errors/password-error.d.ts +15 -0
  31. package/dist/common/errors/permission.d.ts +14 -0
  32. package/dist/common/errors/reclaim-host-role-error.js +149 -0
  33. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  34. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  36. package/dist/common/errors/reconnection-in-progress.js +33 -0
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -0
  38. package/dist/common/errors/reconnection.d.ts +15 -0
  39. package/dist/common/errors/stats.d.ts +15 -0
  40. package/dist/common/errors/webex-errors.d.ts +93 -0
  41. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  42. package/dist/common/events/events-scope.d.ts +17 -0
  43. package/dist/common/events/events.d.ts +12 -0
  44. package/dist/common/events/trigger-proxy.d.ts +2 -0
  45. package/dist/common/events/util.d.ts +2 -0
  46. package/dist/common/logs/logger-config.d.ts +2 -0
  47. package/dist/common/logs/logger-proxy.d.ts +2 -0
  48. package/dist/common/logs/request.d.ts +36 -0
  49. package/dist/common/queue.d.ts +34 -0
  50. package/dist/config.d.ts +72 -0
  51. package/dist/config.js +2 -1
  52. package/dist/config.js.map +1 -1
  53. package/dist/constants.d.ts +1088 -0
  54. package/dist/constants.js +68 -6
  55. package/dist/constants.js.map +1 -1
  56. package/dist/controls-options-manager/constants.d.ts +4 -0
  57. package/dist/controls-options-manager/enums.d.ts +15 -0
  58. package/dist/controls-options-manager/index.d.ts +136 -0
  59. package/dist/controls-options-manager/types.d.ts +43 -0
  60. package/dist/controls-options-manager/util.d.ts +1 -0
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.js +16 -11
  63. package/dist/index.js.map +1 -1
  64. package/dist/interceptors/index.d.ts +2 -0
  65. package/dist/interceptors/locusRetry.d.ts +27 -0
  66. package/dist/interpretation/collection.d.ts +5 -0
  67. package/dist/interpretation/index.d.ts +5 -0
  68. package/dist/interpretation/index.js +1 -1
  69. package/dist/interpretation/siLanguage.d.ts +5 -0
  70. package/dist/interpretation/siLanguage.js +1 -1
  71. package/dist/locus-info/controlsUtils.d.ts +2 -0
  72. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  73. package/dist/locus-info/fullState.d.ts +2 -0
  74. package/dist/locus-info/hostUtils.d.ts +2 -0
  75. package/dist/locus-info/index.d.ts +322 -0
  76. package/dist/locus-info/index.js +14 -3
  77. package/dist/locus-info/index.js.map +1 -1
  78. package/dist/locus-info/infoUtils.d.ts +2 -0
  79. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  80. package/dist/locus-info/parser.d.ts +272 -0
  81. package/dist/locus-info/selfUtils.d.ts +2 -0
  82. package/dist/locus-info/selfUtils.js +35 -17
  83. package/dist/locus-info/selfUtils.js.map +1 -1
  84. package/dist/media/MediaConnectionAwaiter.js +1 -0
  85. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  86. package/dist/media/index.d.ts +34 -0
  87. package/dist/media/properties.d.ts +93 -0
  88. package/dist/media/properties.js +30 -16
  89. package/dist/media/properties.js.map +1 -1
  90. package/dist/media/util.d.ts +2 -0
  91. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  92. package/dist/mediaQualityMetrics/config.js +502 -0
  93. package/dist/mediaQualityMetrics/config.js.map +1 -0
  94. package/dist/meeting/brbState.js +167 -0
  95. package/dist/meeting/brbState.js.map +1 -0
  96. package/dist/meeting/effectsState.js +260 -0
  97. package/dist/meeting/effectsState.js.map +1 -0
  98. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  99. package/dist/meeting/in-meeting-actions.js +13 -1
  100. package/dist/meeting/in-meeting-actions.js.map +1 -1
  101. package/dist/meeting/index.d.ts +1825 -0
  102. package/dist/meeting/index.js +1331 -1051
  103. package/dist/meeting/index.js.map +1 -1
  104. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  105. package/dist/meeting/locusMediaRequest.js +11 -6
  106. package/dist/meeting/locusMediaRequest.js.map +1 -1
  107. package/dist/meeting/muteState.d.ts +178 -0
  108. package/dist/meeting/muteState.js +1 -6
  109. package/dist/meeting/muteState.js.map +1 -1
  110. package/dist/meeting/request.d.ts +295 -0
  111. package/dist/meeting/request.js +51 -29
  112. package/dist/meeting/request.js.map +1 -1
  113. package/dist/meeting/request.type.d.ts +11 -0
  114. package/dist/meeting/request.type.js.map +1 -1
  115. package/dist/meeting/state.d.ts +9 -0
  116. package/dist/meeting/util.d.ts +119 -0
  117. package/dist/meeting/util.js +103 -67
  118. package/dist/meeting/util.js.map +1 -1
  119. package/dist/meeting/voicea-meeting.d.ts +16 -0
  120. package/dist/meeting-info/collection.d.ts +20 -0
  121. package/dist/meeting-info/index.d.ts +69 -0
  122. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  123. package/dist/meeting-info/meeting-info-v2.js +115 -45
  124. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  125. package/dist/meeting-info/request.d.ts +22 -0
  126. package/dist/meeting-info/util.d.ts +2 -0
  127. package/dist/meeting-info/utilv2.d.ts +2 -0
  128. package/dist/meeting-info/utilv2.js +6 -2
  129. package/dist/meeting-info/utilv2.js.map +1 -1
  130. package/dist/meetings/collection.d.ts +40 -0
  131. package/dist/meetings/index.d.ts +390 -0
  132. package/dist/meetings/index.js +107 -55
  133. package/dist/meetings/index.js.map +1 -1
  134. package/dist/meetings/meetings.types.d.ts +4 -0
  135. package/dist/meetings/meetings.types.js +2 -0
  136. package/dist/meetings/meetings.types.js.map +1 -1
  137. package/dist/meetings/request.d.ts +27 -0
  138. package/dist/meetings/util.d.ts +18 -0
  139. package/dist/meetings/util.js +1 -1
  140. package/dist/meetings/util.js.map +1 -1
  141. package/dist/member/index.d.ts +160 -0
  142. package/dist/member/index.js +9 -0
  143. package/dist/member/index.js.map +1 -1
  144. package/dist/member/member.types.js +17 -0
  145. package/dist/member/member.types.js.map +1 -0
  146. package/dist/member/types.d.ts +32 -0
  147. package/dist/member/types.js.map +1 -1
  148. package/dist/member/util.d.ts +2 -0
  149. package/dist/member/util.js +39 -28
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.d.ts +29 -0
  152. package/dist/members/index.d.ts +353 -0
  153. package/dist/members/request.d.ts +114 -0
  154. package/dist/members/types.d.ts +25 -0
  155. package/dist/members/util.d.ts +215 -0
  156. package/dist/members/util.js +4 -2
  157. package/dist/members/util.js.map +1 -1
  158. package/dist/metrics/config.js +276 -0
  159. package/dist/metrics/config.js.map +1 -0
  160. package/dist/metrics/constants.d.ts +70 -0
  161. package/dist/metrics/constants.js +6 -1
  162. package/dist/metrics/constants.js.map +1 -1
  163. package/dist/metrics/index.d.ts +45 -0
  164. package/dist/multistream/mediaRequestManager.d.ts +119 -0
  165. package/dist/multistream/receiveSlot.d.ts +68 -0
  166. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  167. package/dist/multistream/remoteMedia.d.ts +72 -0
  168. package/dist/multistream/remoteMedia.js +30 -15
  169. package/dist/multistream/remoteMedia.js.map +1 -1
  170. package/dist/multistream/remoteMediaGroup.d.ts +49 -0
  171. package/dist/multistream/remoteMediaManager.d.ts +300 -0
  172. package/dist/multistream/sendSlotManager.d.ts +69 -0
  173. package/dist/multistream/sendSlotManager.js +24 -0
  174. package/dist/multistream/sendSlotManager.js.map +1 -1
  175. package/dist/networkQualityMonitor/index.d.ts +70 -0
  176. package/dist/networkQualityMonitor/index.js +13 -19
  177. package/dist/networkQualityMonitor/index.js.map +1 -1
  178. package/dist/peer-connection-manager/index.js +671 -0
  179. package/dist/peer-connection-manager/index.js.map +1 -0
  180. package/dist/peer-connection-manager/util.js +109 -0
  181. package/dist/peer-connection-manager/util.js.map +1 -0
  182. package/dist/personal-meeting-room/index.d.ts +47 -0
  183. package/dist/personal-meeting-room/request.d.ts +14 -0
  184. package/dist/personal-meeting-room/util.d.ts +2 -0
  185. package/dist/reachability/clusterReachability.d.ts +109 -0
  186. package/dist/reachability/clusterReachability.js +12 -15
  187. package/dist/reachability/clusterReachability.js.map +1 -1
  188. package/dist/reachability/index.d.ts +105 -0
  189. package/dist/reachability/index.js +461 -136
  190. package/dist/reachability/index.js.map +1 -1
  191. package/dist/reachability/reachability.types.js +7 -0
  192. package/dist/reachability/reachability.types.js.map +1 -0
  193. package/dist/reachability/request.d.ts +39 -0
  194. package/dist/reachability/request.js +21 -8
  195. package/dist/reachability/request.js.map +1 -1
  196. package/dist/reachability/util.d.ts +8 -0
  197. package/dist/reactions/constants.d.ts +3 -0
  198. package/dist/reactions/reactions.d.ts +4 -0
  199. package/dist/reactions/reactions.type.d.ts +52 -0
  200. package/dist/reconnection-manager/index.d.ts +136 -0
  201. package/dist/recording-controller/enums.d.ts +7 -0
  202. package/dist/recording-controller/enums.js +8 -4
  203. package/dist/recording-controller/enums.js.map +1 -1
  204. package/dist/recording-controller/index.d.ts +207 -0
  205. package/dist/recording-controller/index.js +18 -9
  206. package/dist/recording-controller/index.js.map +1 -1
  207. package/dist/recording-controller/util.d.ts +14 -0
  208. package/dist/recording-controller/util.js +13 -9
  209. package/dist/recording-controller/util.js.map +1 -1
  210. package/dist/roap/collection.js +62 -0
  211. package/dist/roap/collection.js.map +1 -0
  212. package/dist/roap/handler.js +275 -0
  213. package/dist/roap/handler.js.map +1 -0
  214. package/dist/roap/index.d.ts +86 -0
  215. package/dist/roap/index.js +15 -15
  216. package/dist/roap/index.js.map +1 -1
  217. package/dist/roap/request.d.ts +39 -0
  218. package/dist/roap/request.js +45 -79
  219. package/dist/roap/request.js.map +1 -1
  220. package/dist/roap/state.js +126 -0
  221. package/dist/roap/state.js.map +1 -0
  222. package/dist/roap/turnDiscovery.d.ts +155 -0
  223. package/dist/roap/turnDiscovery.js +3 -6
  224. package/dist/roap/turnDiscovery.js.map +1 -1
  225. package/dist/roap/util.js +75 -0
  226. package/dist/roap/util.js.map +1 -0
  227. package/dist/rtcMetrics/constants.d.ts +4 -0
  228. package/dist/rtcMetrics/index.d.ts +61 -0
  229. package/dist/statsAnalyzer/global.d.ts +36 -0
  230. package/dist/statsAnalyzer/global.js +126 -0
  231. package/dist/statsAnalyzer/global.js.map +1 -0
  232. package/dist/statsAnalyzer/index.d.ts +217 -0
  233. package/dist/statsAnalyzer/index.js +1013 -0
  234. package/dist/statsAnalyzer/index.js.map +1 -0
  235. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  236. package/dist/statsAnalyzer/mqaUtil.js +179 -0
  237. package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
  238. package/dist/transcription/index.d.ts +64 -0
  239. package/dist/types/annotation/index.d.ts +5 -0
  240. package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
  241. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  242. package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
  243. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  244. package/dist/types/config.d.ts +1 -0
  245. package/dist/types/constants.d.ts +53 -1
  246. package/dist/types/index.d.ts +3 -3
  247. package/dist/types/locus-info/index.d.ts +2 -1
  248. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  249. package/dist/types/meeting/brbState.d.ts +54 -0
  250. package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
  251. package/dist/types/meeting/index.d.ts +64 -14
  252. package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
  253. package/dist/types/meeting/request.d.ts +14 -3
  254. package/dist/types/meeting/request.type.d.ts +6 -0
  255. package/dist/types/meeting/util.d.ts +3 -3
  256. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
  257. package/dist/types/meetings/index.d.ts +20 -2
  258. package/dist/types/meetings/meetings.types.d.ts +8 -0
  259. package/dist/types/member/index.d.ts +1 -0
  260. package/dist/types/member/types.d.ts +7 -0
  261. package/dist/types/members/util.d.ts +2 -0
  262. package/dist/types/metrics/constants.d.ts +6 -1
  263. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  264. package/dist/types/reachability/clusterReachability.d.ts +1 -10
  265. package/dist/types/reachability/index.d.ts +83 -36
  266. package/dist/types/reachability/reachability.types.d.ts +64 -0
  267. package/dist/types/reachability/request.d.ts +5 -1
  268. package/dist/types/recording-controller/enums.d.ts +5 -2
  269. package/dist/types/recording-controller/index.d.ts +1 -0
  270. package/dist/types/recording-controller/util.d.ts +2 -1
  271. package/dist/types/roap/request.d.ts +1 -13
  272. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  273. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  274. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  275. package/dist/webinar/collection.d.ts +16 -0
  276. package/dist/webinar/index.d.ts +5 -0
  277. package/dist/webinar/index.js +390 -7
  278. package/dist/webinar/index.js.map +1 -1
  279. package/package.json +23 -22
  280. package/src/annotation/index.ts +16 -0
  281. package/src/common/errors/join-forbidden-error.ts +26 -0
  282. package/src/common/errors/join-webinar-error.ts +24 -0
  283. package/src/common/errors/multistream-not-supported-error.ts +30 -0
  284. package/src/config.ts +1 -0
  285. package/src/constants.ts +61 -3
  286. package/src/index.ts +5 -3
  287. package/src/locus-info/index.ts +20 -3
  288. package/src/locus-info/selfUtils.ts +24 -6
  289. package/src/media/MediaConnectionAwaiter.ts +2 -0
  290. package/src/media/properties.ts +34 -13
  291. package/src/meeting/brbState.ts +169 -0
  292. package/src/meeting/in-meeting-actions.ts +25 -0
  293. package/src/meeting/index.ts +443 -87
  294. package/src/meeting/locusMediaRequest.ts +11 -8
  295. package/src/meeting/muteState.ts +1 -6
  296. package/src/meeting/request.ts +30 -12
  297. package/src/meeting/request.type.ts +7 -0
  298. package/src/meeting/util.ts +32 -13
  299. package/src/meeting-info/meeting-info-v2.ts +83 -12
  300. package/src/meeting-info/utilv2.ts +17 -3
  301. package/src/meetings/index.ts +79 -20
  302. package/src/meetings/meetings.types.ts +10 -0
  303. package/src/meetings/util.ts +2 -1
  304. package/src/member/index.ts +9 -0
  305. package/src/member/types.ts +8 -0
  306. package/src/member/util.ts +34 -24
  307. package/src/members/util.ts +1 -0
  308. package/src/metrics/constants.ts +6 -1
  309. package/src/multistream/remoteMedia.ts +28 -15
  310. package/src/multistream/sendSlotManager.ts +31 -0
  311. package/src/reachability/clusterReachability.ts +5 -15
  312. package/src/reachability/index.ts +311 -75
  313. package/src/reachability/reachability.types.ts +85 -0
  314. package/src/reachability/request.ts +55 -31
  315. package/src/recording-controller/enums.ts +5 -2
  316. package/src/recording-controller/index.ts +17 -4
  317. package/src/recording-controller/util.ts +20 -5
  318. package/src/roap/index.ts +14 -13
  319. package/src/roap/request.ts +30 -44
  320. package/src/roap/turnDiscovery.ts +2 -4
  321. package/src/webinar/index.ts +235 -9
  322. package/test/unit/spec/annotation/index.ts +46 -1
  323. package/test/unit/spec/locus-info/index.js +292 -60
  324. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  325. package/test/unit/spec/locus-info/selfUtils.js +101 -1
  326. package/test/unit/spec/media/properties.ts +15 -0
  327. package/test/unit/spec/meeting/brbState.ts +114 -0
  328. package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
  329. package/test/unit/spec/meeting/index.js +851 -107
  330. package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
  331. package/test/unit/spec/meeting/muteState.js +0 -24
  332. package/test/unit/spec/meeting/request.js +3 -26
  333. package/test/unit/spec/meeting/utils.js +73 -28
  334. package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
  335. package/test/unit/spec/meeting-info/utilv2.js +26 -0
  336. package/test/unit/spec/meetings/index.js +159 -18
  337. package/test/unit/spec/meetings/utils.js +10 -0
  338. package/test/unit/spec/member/util.js +52 -11
  339. package/test/unit/spec/members/utils.js +95 -0
  340. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  341. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  342. package/test/unit/spec/reachability/index.ts +383 -9
  343. package/test/unit/spec/reachability/request.js +48 -12
  344. package/test/unit/spec/recording-controller/index.js +61 -5
  345. package/test/unit/spec/recording-controller/util.js +39 -3
  346. package/test/unit/spec/roap/index.ts +48 -1
  347. package/test/unit/spec/roap/request.ts +51 -109
  348. package/test/unit/spec/roap/turnDiscovery.ts +202 -147
  349. package/test/unit/spec/webinar/index.ts +504 -0
  350. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  351. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","_interopRequireDefault","require","_lodash","_webexCore","_common","_internalPluginMetrics","_loggerProxy","_constants","_util","_excluded","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","MeetingRequest","exports","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","meeting","otherAttrs","_objectWithoutProperties2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee","joinCookieRaw","joinCookie","wrap","_callee$","_context","prev","next","webex","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","sent","JSON","parse","abrupt","t0","LoggerProxy","logger","error","concat","stop","locusDeltaRequest","MeetingUtil","generateLocusDeltaRequest","buildLocusDeltaRequestOptions","generateBuildLocusDeltaRequestOptions","changeVideoLayoutDebounced","debounce","changeVideoLayout","leading","trailing","_createClass2","key","value","_joinMeeting","_callee2","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","locusClusterUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","reachability","preferTranscoding","breakoutsSupported","locale","_options$deviceCapabi","deviceCapabilities","liveAnnotationSupported","ipVersion","alias","url","body","clusterUrl","_callee2$","_context2","info","getJoinCookie","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","ipver","BREAKOUTS","BREAKOUTS_SUPPORTED","ANNOTATION","ANNOTATION_ON_SHARE_SUPPORTED","internal","installationId","geoHintInfo","countryCode","regionCode","localIp","CallDiagnosticUtils","anonymizeIPAddress","clientAddress","undefined","PARTICIPANT","services","waitForCatalog","LOCI","CALL","invitee","address","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","localSdp","_stringify","request","method","HTTP_VERBS","POST","uri","joinMeeting","_x","refreshCaptcha","_ref2","captchaRefreshUrl","captchaId","err","dialIn","_ref3","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOut","_ref4","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","getLocusDTO","GET","_promise","reject","disconnectPhoneAudio","_ref5","phoneUrl","selfId","LEAVE","PUT","prepareLeaveMeetingRequestOptions","_ref6","leaveMeeting","_ref7","buildLeaveMeetingRequestOptions","acknowledgeMeeting","ALERT","lockMeeting","CONTROLS","lock","locked","PATCH","declineMeeting","DECLINE","reason","changeMeetingFloor","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","shareInstanceId","resourceToken","annotationInfo","annotation","sendDTMF","_ref8","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","_ref9","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","endMeetingForAll","_ref10","END","keepAlive","_ref11","keepAliveUrl","sendReaction","_ref12","reactionChannelUrl","reaction","participantId","sender","toggleReactions","_ref13","enable","requestingParticipantId","reactions","enabled","getLocusStatusByUrl","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\nimport {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n BREAKOUTS,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n REACHABILITY,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n ANNOTATION,\n IP_VERSION,\n} from '../constants';\nimport {SendReactionOptions, ToggleReactionsOptions} from './request.type';\nimport MeetingUtil from './util';\nimport {AnnotationInfo} from '../annotation/annotation.types';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n meetingRef: WeakRef<any>;\n locusDeltaRequest: (options: object) => Promise<any>;\n buildLocusDeltaRequestOptions: (options: object) => Promise<any>;\n\n /**\n * Constructor\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n const {meeting, ...otherAttrs} = attrs;\n\n super(otherAttrs, options);\n\n this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);\n this.buildLocusDeltaRequestOptions = MeetingUtil.generateBuildLocusDeltaRequestOptions(meeting);\n\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Returns joinCookie from boundedStorage if present.\n * @returns {Object} joinCookie\n */\n private getJoinCookie = async () => {\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n const joinCookie = JSON.parse(joinCookieRaw);\n if (joinCookie) {\n return joinCookie;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return null;\n };\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @param {boolean} options.breakoutsSupported\n * @param {String} options.locale,\n * @param {Array} options.deviceCapabilities\n * @param {boolean} options.liveAnnotationSupported\n * @param {String} options.alias\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n locusClusterUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n reachability: any;\n breakoutsSupported: boolean;\n locale?: string;\n deviceCapabilities?: Array<string>;\n liveAnnotationSupported: boolean;\n ipVersion?: IP_VERSION;\n alias?: string;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n locusClusterUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n reachability,\n preferTranscoding,\n breakoutsSupported,\n locale,\n deviceCapabilities = [],\n liveAnnotationSupported,\n ipVersion,\n alias,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const joinCookie = await this.getJoinCookie();\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true,\n joinCookie,\n ipver: ipVersion,\n },\n };\n\n if (alias) {\n body.alias = alias;\n }\n\n if (breakoutsSupported) {\n deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);\n }\n if (liveAnnotationSupported) {\n deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);\n }\n\n // append installationId to device config if it exists\n // @ts-ignore\n if (this.webex.internal.device.config.installationId) {\n // @ts-ignore\n body.device.installationId = this.webex.internal.device.config.installationId;\n }\n\n if (locale) {\n body.locale = locale;\n }\n\n // add deviceCapabilities prop\n if (deviceCapabilities.length) {\n body.deviceCapabilities = deviceCapabilities;\n }\n // @ts-ignore\n if (this.webex.meetings.geoHintInfo) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;\n body.device.localIp =\n // @ts-ignore\n CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) ||\n undefined;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n let clusterUrl;\n\n if (locusClusterUrl) {\n clusterUrl = `https://${locusClusterUrl}/locus/api/v1`;\n } else {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n clusterUrl = this.webex.internal.services.get('locus');\n }\n\n url = `${clusterUrl}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage || reachability) {\n body.localMedias = [\n {\n localSdp: JSON.stringify({\n roapMessage,\n reachability,\n }),\n },\n ];\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided\n * @param {Object} options\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getLocusDTO(options: {url: string}) {\n const {url} = options;\n\n if (url) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: url,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`\n );\n\n throw err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Prepares request options to to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Object} request options\n */\n prepareLeaveMeetingRequestOptions({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body,\n };\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Builds request options to leave a meeting\n * @param {Object} options\n * @returns {Object} request options\n */\n buildLeaveMeetingRequestOptions(options: any) {\n return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Makes a network request to lock the meeting\n * @param {Object} options\n * @param {Boolean} options.lock Whether it is locked or not\n * @returns {Promise}\n */\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @param {String} options.shareInstanceId id for current share\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n annotationInfo: AnnotationInfo;\n shareInstanceId: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.shareInstanceId) {\n body.floor.shareInstanceId = options.shareInstanceId;\n }\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n if (options?.annotationInfo) {\n body.annotation = options?.annotationInfo;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n\n /**\n * Make a network request to enable or disable reactions.\n * @param {boolean} options.enable - determines if we need to enable or disable.\n * @param {locusUrl} options.locusUrl\n * @returns {Promise}\n */\n toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {\n const uri = `${locusUrl}/${CONTROLS}`;\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body: {\n reactions: {\n enabled: enable,\n },\n requestingParticipantId,\n },\n });\n }\n\n getLocusStatusByUrl(locusUrl: string) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_uuid","_interopRequireDefault","require","_lodash","_webexCore","_common","_internalPluginMetrics","_loggerProxy","_constants","_util","_excluded","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","MeetingRequest","exports","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","meeting","otherAttrs","_objectWithoutProperties2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee","joinCookieRaw","joinCookie","wrap","_callee$","_context","prev","next","webex","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","sent","JSON","parse","abrupt","t0","LoggerProxy","logger","error","concat","stop","locusDeltaRequest","MeetingUtil","generateLocusDeltaRequest","buildLocusDeltaRequestOptions","generateBuildLocusDeltaRequestOptions","changeVideoLayoutDebounced","debounce","changeVideoLayout","leading","trailing","_createClass2","key","value","_joinMeeting","_callee2","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","locusClusterUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","reachability","breakoutsSupported","locale","_options$deviceCapabi","deviceCapabilities","liveAnnotationSupported","clientMediaPreferences","alias","url","body","clusterUrl","_callee2$","_context2","info","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","BREAKOUTS","BREAKOUTS_SUPPORTED","ANNOTATION","ANNOTATION_ON_SHARE_SUPPORTED","internal","installationId","geoHintInfo","countryCode","regionCode","localIp","CallDiagnosticUtils","anonymizeIPAddress","clientAddress","undefined","PARTICIPANT","services","waitForCatalog","LOCI","CALL","invitee","address","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","localSdp","_stringify","request","method","HTTP_VERBS","POST","uri","joinMeeting","_x","refreshCaptcha","_ref2","captchaRefreshUrl","captchaId","err","dialIn","_ref3","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOut","_ref4","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","getLocusDTO","GET","_promise","reject","disconnectPhoneAudio","_ref5","phoneUrl","selfId","LEAVE","PUT","prepareLeaveMeetingRequestOptions","_ref6","leaveMeeting","_ref7","buildLeaveMeetingRequestOptions","acknowledgeMeeting","ALERT","lockMeeting","CONTROLS","lock","locked","PATCH","declineMeeting","DECLINE","reason","changeMeetingFloor","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","shareInstanceId","resourceToken","annotationInfo","annotation","sendDTMF","_ref8","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","_ref9","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","endMeetingForAll","_ref10","END","keepAlive","_ref11","keepAliveUrl","sendReaction","_ref12","reactionChannelUrl","reaction","participantId","sender","toggleReactions","_ref13","enable","requestingParticipantId","reactions","enabled","getLocusStatusByUrl","setBrb","_ref14","brb","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\nimport {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n BREAKOUTS,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n REACHABILITY,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n ANNOTATION,\n} from '../constants';\nimport {SendReactionOptions, BrbOptions, ToggleReactionsOptions} from './request.type';\nimport MeetingUtil from './util';\nimport {AnnotationInfo} from '../annotation/annotation.types';\nimport {ClientMediaPreferences} from '../reachability/reachability.types';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n meetingRef: WeakRef<any>;\n locusDeltaRequest: (options: object) => Promise<any>;\n buildLocusDeltaRequestOptions: (options: object) => Promise<any>;\n\n /**\n * Constructor\n * @param {Object} attrs\n * @param {Object} options\n */\n constructor(attrs: any, options: any) {\n const {meeting, ...otherAttrs} = attrs;\n\n super(otherAttrs, options);\n\n this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);\n this.buildLocusDeltaRequestOptions = MeetingUtil.generateBuildLocusDeltaRequestOptions(meeting);\n\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Returns joinCookie from boundedStorage if present.\n * @returns {Object} joinCookie\n */\n private getJoinCookie = async () => {\n // @ts-ignore\n const joinCookieRaw = await this.webex.boundedStorage\n .get(REACHABILITY.namespace, REACHABILITY.localStorageJoinCookie)\n .catch(() => {});\n\n if (joinCookieRaw) {\n try {\n const joinCookie = JSON.parse(joinCookieRaw);\n if (joinCookie) {\n return joinCookie;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `MeetingRequest#constructor --> Error in parsing join cookie data: ${e}`\n );\n }\n }\n\n return null;\n };\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @param {boolean} options.breakoutsSupported\n * @param {String} options.locale,\n * @param {Array} options.deviceCapabilities\n * @param {boolean} options.liveAnnotationSupported\n * @param {String} options.alias\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n locusClusterUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n reachability: any;\n breakoutsSupported: boolean;\n locale?: string;\n deviceCapabilities?: Array<string>;\n liveAnnotationSupported: boolean;\n alias?: string;\n clientMediaPreferences: ClientMediaPreferences;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n locusClusterUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n reachability,\n breakoutsSupported,\n locale,\n deviceCapabilities = [],\n liveAnnotationSupported,\n clientMediaPreferences,\n alias,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences,\n };\n\n if (alias) {\n body.alias = alias;\n }\n\n if (breakoutsSupported) {\n deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);\n }\n if (liveAnnotationSupported) {\n deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);\n }\n\n // append installationId to device config if it exists\n // @ts-ignore\n if (this.webex.internal.device.config.installationId) {\n // @ts-ignore\n body.device.installationId = this.webex.internal.device.config.installationId;\n }\n\n if (locale) {\n body.locale = locale;\n }\n\n // add deviceCapabilities prop\n if (deviceCapabilities.length) {\n body.deviceCapabilities = deviceCapabilities;\n }\n // @ts-ignore\n if (this.webex.meetings.geoHintInfo) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.geoHintInfo.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.geoHintInfo.regionCode;\n body.device.localIp =\n // @ts-ignore\n CallDiagnosticUtils.anonymizeIPAddress(this.webex.meetings.geoHintInfo.clientAddress) ||\n undefined;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n let clusterUrl;\n\n if (locusClusterUrl) {\n clusterUrl = `https://${locusClusterUrl}/locus/api/v1`;\n } else {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n clusterUrl = this.webex.internal.services.get('locus');\n }\n\n url = `${clusterUrl}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage || reachability) {\n body.localMedias = [\n {\n localSdp: JSON.stringify({\n roapMessage,\n reachability,\n }),\n },\n ];\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided\n * @param {Object} options\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getLocusDTO(options: {url: string}) {\n const {url} = options;\n\n if (url) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: url,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getLocusDTO --> Error getting latest locus, error ${err}`\n );\n\n throw err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Prepares request options to to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Object} request options\n */\n prepareLeaveMeetingRequestOptions({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body,\n };\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Builds request options to leave a meeting\n * @param {Object} options\n * @returns {Object} request options\n */\n buildLeaveMeetingRequestOptions(options: any) {\n return this.buildLocusDeltaRequestOptions(this.prepareLeaveMeetingRequestOptions(options));\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Makes a network request to lock the meeting\n * @param {Object} options\n * @param {Boolean} options.lock Whether it is locked or not\n * @returns {Promise}\n */\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @param {String} options.shareInstanceId id for current share\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n annotationInfo: AnnotationInfo;\n shareInstanceId: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.shareInstanceId) {\n body.floor.shareInstanceId = options.shareInstanceId;\n }\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n if (options?.annotationInfo) {\n body.annotation = options?.annotationInfo;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({reactionChannelUrl, reaction, participantId}: SendReactionOptions) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n\n /**\n * Make a network request to enable or disable reactions.\n * @param {boolean} options.enable - determines if we need to enable or disable.\n * @param {locusUrl} options.locusUrl\n * @returns {Promise}\n */\n toggleReactions({enable, locusUrl, requestingParticipantId}: ToggleReactionsOptions) {\n const uri = `${locusUrl}/${CONTROLS}`;\n\n // @ts-ignore\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PUT,\n uri,\n body: {\n reactions: {\n enabled: enable,\n },\n requestingParticipantId,\n },\n });\n }\n\n getLocusStatusByUrl(locusUrl: string) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n });\n }\n\n /**\n * Sends a request to set be right back status.\n *\n * @param {Object} options - The options for brb request.\n * @param {boolean} options.enabled - Whether brb status is enabled.\n * @param {string} options.locusUrl - The URL of the locus.\n * @param {string} options.deviceUrl - The URL of the device.\n * @param {string} options.selfId - The ID of the participant.\n * @returns {Promise}\n */\n setBrb({enabled, locusUrl, deviceUrl, selfId}: BrbOptions) {\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${CONTROLS}`;\n\n return this.locusDeltaRequest({\n method: HTTP_VERBS.PATCH,\n uri,\n body: {\n brb: {\n enabled,\n deviceUrl,\n },\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AAEA,IAAAK,YAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAqBA,IAAAO,KAAA,GAAAR,sBAAA,CAAAC,OAAA;AAAiC,IAAAQ,SAAA;AAAA,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAqB,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAV,OAAA,EAAAK,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAAV,OAAA,QAAAa,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAL,KAAA,EAAAd,SAAA,EAAAiB,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAhB,KAAA,OAAAE,SAAA,gBAAAoB,2BAAA,CAAAf,OAAA,QAAAW,MAAA;AAAA,SAAAJ,0BAAA,eAAAS,OAAA,qBAAAF,kBAAA,oBAAAA,kBAAA,CAAAG,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAR,kBAAA,CAAAK,OAAA,8CAAApC,CAAA,sBA5BjC;AAEA;AA8BA;AACA;AACA;AAFA,IAGqBwC,cAAc,GAAAC,OAAA,CAAAxB,OAAA,0BAAAyB,qBAAA;EAAA,IAAAC,UAAA,CAAA1B,OAAA,EAAAuB,cAAA,EAAAE,qBAAA;EAAA,IAAAE,MAAA,GAAAvB,YAAA,CAAAmB,cAAA;EAMjC;AACF;AACA;AACA;AACA;EACE,SAAAA,eAAYK,KAAU,EAAEC,OAAY,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAA/B,OAAA,QAAAuB,cAAA;IACpC,IAAOS,OAAO,GAAmBJ,KAAK,CAA/BI,OAAO;MAAKC,UAAU,OAAAC,yBAAA,CAAAlC,OAAA,EAAI4B,KAAK,EAAA/C,SAAA;IAEtCiD,KAAA,GAAAH,MAAA,CAAAL,IAAA,OAAMW,UAAU,EAAEJ,OAAO;IAAE,IAAA9B,gBAAA,CAAAC,OAAA,MAAAmC,uBAAA,CAAAnC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAmC,uBAAA,CAAAnC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAmC,uBAAA,CAAAnC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAmC,uBAAA,CAAAnC,OAAA,EAAA8B,KAAA;IAW7B;AACF;AACA;AACA;IAHE,IAAA/B,gBAAA,CAAAC,OAAA,MAAAmC,uBAAA,CAAAnC,OAAA,EAAA8B,KAAA,qCAAAM,kBAAA,CAAApC,OAAA,gBAAAqC,YAAA,CAAArC,OAAA,CAAAsC,IAAA,CAIwB,SAAAC,QAAA;MAAA,IAAAC,aAAA,EAAAC,UAAA;MAAA,OAAAJ,YAAA,CAAArC,OAAA,CAAA0C,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAEMhB,KAAA,CAAKiB,KAAK,CAACC,cAAc,CAClDC,GAAG,CAACC,uBAAY,CAACC,SAAS,EAAED,uBAAY,CAACE,sBAAsB,CAAC,CAChEC,KAAK,CAAC,YAAM,CAAC,CAAC,CAAC;UAAA;YAFZb,aAAa,GAAAI,QAAA,CAAAU,IAAA;YAAA,KAIfd,aAAa;cAAAI,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAC,IAAA;YAEPJ,UAAU,GAAGc,IAAI,CAACC,KAAK,CAAChB,aAAa,CAAC;YAAA,KACxCC,UAAU;cAAAG,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,OAAAF,QAAA,CAAAa,MAAA,WACLhB,UAAU;UAAA;YAAAG,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAAF,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAc,EAAA,GAAAd,QAAA;YAGnBe,oBAAW,CAACC,MAAM,CAACC,KAAK,sEAAAC,MAAA,CAAAlB,QAAA,CAAAc,EAAA,CAExB,CAAC;UAAC;YAAA,OAAAd,QAAA,CAAAa,MAAA,WAIC,IAAI;UAAA;UAAA;YAAA,OAAAb,QAAA,CAAAmB,IAAA;QAAA;MAAA,GAAAxB,OAAA;IAAA,CACZ;IAjCCT,KAAA,CAAKkC,iBAAiB,GAAGC,aAAW,CAACC,yBAAyB,CAAClC,OAAO,CAAC;IACvEF,KAAA,CAAKqC,6BAA6B,GAAGF,aAAW,CAACG,qCAAqC,CAACpC,OAAO,CAAC;IAE/FF,KAAA,CAAKuC,0BAA0B,GAAG,IAAAC,gBAAQ,EAACxC,KAAA,CAAKyC,iBAAiB,EAAE,IAAI,EAAE;MACvEC,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAAC,OAAA3C,KAAA;EACL;EAAC,IAAA4C,aAAA,CAAA1E,OAAA,EAAAuB,cAAA;IAAAoD,GAAA;IAAAC,KAAA;IA4BD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAnBE;MAAA,IAAAC,YAAA,OAAAzC,kBAAA,CAAApC,OAAA,gBAAAqC,YAAA,CAAArC,OAAA,CAAAsC,IAAA,CAoBA,SAAAwC,SAAkBjD,OAwBjB;QAAA,IAAAkD,kBAAA,EAAAC,cAAA,EAAAC,aAAA,EAAAC,eAAA,EAAAC,SAAA,EAAAC,QAAA,EAAAC,eAAA,EAAAC,UAAA,EAAAC,aAAA,EAAAC,kBAAA,EAAAC,SAAA,EAAAC,GAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,MAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,uBAAA,EAAAC,sBAAA,EAAAC,KAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,UAAA;QAAA,OAAAlE,YAAA,CAAArC,OAAA,CAAA0C,IAAA,UAAA8D,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAA3D,IAAA;YAAA;cAEGiC,kBAAkB,GAqBhBlD,OAAO,CArBTkD,kBAAkB,EAClBC,cAAc,GAoBZnD,OAAO,CApBTmD,cAAc,EACdC,aAAa,GAmBXpD,OAAO,CAnBToD,aAAa,EACbC,eAAe,GAkBbrD,OAAO,CAlBTqD,eAAe,EACfC,SAAS,GAiBPtD,OAAO,CAjBTsD,SAAS,EACTC,QAAQ,GAgBNvD,OAAO,CAhBTuD,QAAQ,EACRC,eAAe,GAebxD,OAAO,CAfTwD,eAAe,EACfC,UAAU,GAcRzD,OAAO,CAdTyD,UAAU,EACVC,aAAa,GAaX1D,OAAO,CAbT0D,aAAa,EACbC,kBAAkB,GAYhB3D,OAAO,CAZT2D,kBAAkB,EAClBC,SAAS,GAWP5D,OAAO,CAXT4D,SAAS,EACTC,GAAG,GAUD7D,OAAO,CAVT6D,GAAG,EACHC,cAAc,GASZ9D,OAAO,CATT8D,cAAc,EACdC,WAAW,GAQT/D,OAAO,CART+D,WAAW,EACXC,YAAY,GAOVhE,OAAO,CAPTgE,YAAY,EACZC,kBAAkB,GAMhBjE,OAAO,CANTiE,kBAAkB,EAClBC,MAAM,GAKJlE,OAAO,CALTkE,MAAM,EAAAC,qBAAA,GAKJnE,OAAO,CAJToE,kBAAkB,EAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA,EACvBE,uBAAuB,GAGrBrE,OAAO,CAHTqE,uBAAuB,EACvBC,sBAAsB,GAEpBtE,OAAO,CAFTsE,sBAAsB,EACtBC,KAAK,GACHvE,OAAO,CADTuE,KAAK;cAGPzC,oBAAW,CAACC,MAAM,CAAC8C,IAAI,CAAC,mDAAmD,EAAEnB,aAAa,CAAC;cAEvFc,GAAG,GAAG,EAAE;cAENC,IAAS,GAAG;gBAChBvB,kBAAkB,EAAlBA,kBAAkB;gBAClB4B,MAAM,EAAE;kBACNN,GAAG,EAAElB,SAAS;kBACd;kBACAyB,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF;gBACnC,CAAC;gBACDG,aAAa,EAAEzB,UAAU,IAAI,IAAI;gBACjC0B,mBAAmB,EAAG1B,UAAU,IAAIK,cAAc,IAAK,KAAK;gBAC5DJ,aAAa,EAAbA,aAAa;gBACb0B,WAAW,EAAE,IAAI;gBACjBC,gBAAgB,EAAE,IAAI;gBACtB1B,kBAAkB,EAAEA,kBAAkB,IAAI,KAAK;gBAC/C2B,mBAAmB,EAAE,CAAC;gBACtBhB,sBAAsB,EAAtBA;cACF,CAAC;cAED,IAAIC,KAAK,EAAE;gBACTE,IAAI,CAACF,KAAK,GAAGA,KAAK;cACpB;cAEA,IAAIN,kBAAkB,EAAE;gBACtBG,kBAAkB,CAACzG,IAAI,CAAC4H,oBAAS,CAACC,mBAAmB,CAAC;cACxD;cACA,IAAInB,uBAAuB,EAAE;gBAC3BD,kBAAkB,CAACzG,IAAI,CAAC8H,qBAAU,CAACC,6BAA6B,CAAC;cACnE;;cAEA;cACA;cACA,IAAI,IAAI,CAACxE,KAAK,CAACyE,QAAQ,CAACb,MAAM,CAACE,MAAM,CAACY,cAAc,EAAE;gBACpD;gBACAnB,IAAI,CAACK,MAAM,CAACc,cAAc,GAAG,IAAI,CAAC1E,KAAK,CAACyE,QAAQ,CAACb,MAAM,CAACE,MAAM,CAACY,cAAc;cAC/E;cAEA,IAAI1B,MAAM,EAAE;gBACVO,IAAI,CAACP,MAAM,GAAGA,MAAM;cACtB;;cAEA;cACA,IAAIE,kBAAkB,CAACrG,MAAM,EAAE;gBAC7B0G,IAAI,CAACL,kBAAkB,GAAGA,kBAAkB;cAC9C;cACA;cACA,IAAI,IAAI,CAAClD,KAAK,CAAC+D,QAAQ,CAACY,WAAW,EAAE;gBACnC;gBACApB,IAAI,CAACK,MAAM,CAACgB,WAAW,GAAG,IAAI,CAAC5E,KAAK,CAAC+D,QAAQ,CAACY,WAAW,CAACC,WAAW;gBACrE;gBACArB,IAAI,CAACK,MAAM,CAACiB,UAAU,GAAG,IAAI,CAAC7E,KAAK,CAAC+D,QAAQ,CAACY,WAAW,CAACE,UAAU;gBACnEtB,IAAI,CAACK,MAAM,CAACkB,OAAO;gBACjB;gBACAC,0CAAmB,CAACC,kBAAkB,CAAC,IAAI,CAAChF,KAAK,CAAC+D,QAAQ,CAACY,WAAW,CAACM,aAAa,CAAC,IACrFC,SAAS;cACb;cAEA,IAAIxC,SAAS,KAAKwC,SAAS,EAAE;gBAC3B3B,IAAI,CAACb,SAAS,GAAGA,SAAS;cAC5B;cAEA,IAAIP,eAAe,EAAE;gBACnBoB,IAAI,CAACpB,eAAe,GAAGA,eAAe;cACxC;cAEA,IAAIQ,GAAG,KAAKuC,SAAS,EAAE;gBACrB3B,IAAI,CAACZ,GAAG,GAAGA,GAAG;cAChB;cAAC,KAEGN,QAAQ;gBAAAqB,SAAA,CAAA3D,IAAA;gBAAA;cAAA;cACVuD,GAAG,MAAAvC,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,CAAE;cAACzB,SAAA,CAAA3D,IAAA;cAAA;YAAA;cAAA,MAC1BkC,cAAc,IAAIC,aAAa;gBAAAwB,SAAA,CAAA3D,IAAA;gBAAA;cAAA;cAAA2D,SAAA,CAAA5D,IAAA;cAAA,KAIlCwC,eAAe;gBAAAoB,SAAA,CAAA3D,IAAA;gBAAA;cAAA;cACjByD,UAAU,cAAAzC,MAAA,CAAcuB,eAAe,kBAAe;cAACoB,SAAA,CAAA3D,IAAA;cAAA;YAAA;cAAA2D,SAAA,CAAA3D,IAAA;cAAA,OAGjD,IAAI,CAACC,KAAK,CAACyE,QAAQ,CAACW,QAAQ,CAACC,cAAc,CAAC,UAAU,CAAC;YAAA;cAC7D;cACA7B,UAAU,GAAG,IAAI,CAACxD,KAAK,CAACyE,QAAQ,CAACW,QAAQ,CAAClF,GAAG,CAAC,OAAO,CAAC;YAAC;cAGzDoD,GAAG,MAAAvC,MAAA,CAAMyC,UAAU,OAAAzC,MAAA,CAAIuE,eAAI,OAAAvE,MAAA,CAAIwE,eAAI,CAAE;cACrChC,IAAI,CAACiC,OAAO,GAAG;gBACbC,OAAO,EAAExD,cAAc,aAAAlB,MAAA,CAAamB,aAAa;cACnD,CAAC;cAACwB,SAAA,CAAA3D,IAAA;cAAA;YAAA;cAAA2D,SAAA,CAAA5D,IAAA;cAAA4D,SAAA,CAAA/C,EAAA,GAAA+C,SAAA;cAEF9C,oBAAW,CAACC,MAAM,CAACC,KAAK,8CAAAC,MAAA,CACuBkB,cAAc,IAAIC,aAAa,WAAAnB,MAAA,CAAA2C,SAAA,CAAA/C,EAAA,CAC9E,CAAC;cAAC,MAAA+C,SAAA,CAAA/C,EAAA;YAAA;cAKN;cACA2C,GAAG,GAAGA,GAAG,CAACvC,MAAM,KAAAA,MAAA,CAAK2E,kCAAuB,CAAE,CAAC;cAE/C,IAAInD,UAAU,KAAKN,cAAc,EAAE;gBACjCsB,IAAI,CAACoC,eAAe,GAAG;kBACrBC,cAAc,EAAE,CAACC,mBAAQ;gBAC3B,CAAC;cACH;cAEA,IAAIhD,WAAW,IAAIC,YAAY,EAAE;gBAC/BS,IAAI,CAACuC,WAAW,GAAG,CACjB;kBACEC,QAAQ,EAAE,IAAAC,UAAA,CAAA/I,OAAA,EAAe;oBACvB4F,WAAW,EAAXA,WAAW;oBACXC,YAAY,EAAZA;kBACF,CAAC;gBACH,CAAC,CACF;cACH;;cAEA;cAAA,OAAAY,SAAA,CAAAhD,MAAA,WACO,IAAI,CAACuF,OAAO,CAAC;gBAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;gBACvBC,GAAG,EAAE/C,GAAG;gBACRC,IAAI,EAAJA;cACF,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAG,SAAA,CAAA1C,IAAA;UAAA;QAAA,GAAAe,QAAA;MAAA,CACH;MAAA,SAAAuE,YAAAC,EAAA;QAAA,OAAAzE,YAAA,CAAApF,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA0J,WAAA;IAAA;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;IAPE;EAAA;IAAA1E,GAAA;IAAAC,KAAA,EAQA,SAAA2E,eAAAC,KAAA,EAMG;MAAA,IALDC,iBAAiB,GAAAD,KAAA,CAAjBC,iBAAiB;QACjBC,SAAS,GAAAF,KAAA,CAATE,SAAS;MAKT,IAAMpD,IAAI,GAAG;QACXoD,SAAS,EAATA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACV,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAEK,iBAAiB;QACtBnD,IAAI,EAAJA;MACF,CAAC,CAAC,CAACjD,KAAK,CAAC,UAACsG,GAAG,EAAK;QAChBhG,oBAAW,CAACC,MAAM,CAACC,KAAK,8CAAAC,MAAA,CAA8C6F,GAAG,CAAE,CAAC;QAE5E,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAhF,GAAA;IAAAC,KAAA,EAUA,SAAAgF,OAAAC,KAAA,EAUG;MAAA,IATDzE,QAAQ,GAAAyE,KAAA,CAARzE,QAAQ;QACR0E,SAAS,GAAAD,KAAA,CAATC,SAAS;QACTC,SAAS,GAAAF,KAAA,CAATE,SAAS;QACTxE,aAAa,GAAAsE,KAAA,CAAbtE,aAAa;MAOb5B,oBAAW,CAACC,MAAM,CAAC8C,IAAI,CACrB,0DAA0D,EAC1DnB,aACF,CAAC;MACD,IAAM6D,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,CAAE;MAExC,IAAM5B,IAAI,GAAG;QACXK,MAAM,EAAE;UACNC,UAAU,EAAEA,kBAAU,CAACoD,WAAW;UAClCC,eAAe,EAAEC,mCAAwB;UACzC7D,GAAG,EAAEyD,SAAS;UACdC,SAAS,EAATA;QACF,CAAC;QACDxE,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACvB,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC,CAACjD,KAAK,CAAC,UAACsG,GAAG,EAAK;QAChBhG,oBAAW,CAACC,MAAM,CAACC,KAAK,0EAAAC,MAAA,CACmD6F,GAAG,CAC9E,CAAC;QAED,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAVE;IAAAhF,GAAA;IAAAC,KAAA,EAWA,SAAAuF,QAAAC,KAAA,EAYG;MAAA,IAXDhF,QAAQ,GAAAgF,KAAA,CAARhF,QAAQ;QACRiF,UAAU,GAAAD,KAAA,CAAVC,UAAU;QACVC,WAAW,GAAAF,KAAA,CAAXE,WAAW;QACXP,SAAS,GAAAK,KAAA,CAATL,SAAS;QACTxE,aAAa,GAAA6E,KAAA,CAAb7E,aAAa;MAQb5B,oBAAW,CAACC,MAAM,CAAC8C,IAAI,CACrB,4DAA4D,EAC5DnB,aACF,CAAC;MACD,IAAM6D,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,CAAE;MAExC,IAAM5B,IAAI,GAAG;QACXK,MAAM,EAAE;UACNC,UAAU,EAAEA,kBAAU,CAACoD,WAAW;UAClCC,eAAe,EAAEM,oCAAyB;UAC1ClE,GAAG,EAAEgE,UAAU;UACfG,cAAc,EAAEF,WAAW;UAC3BP,SAAS,EAATA;QACF,CAAC;QACDxE,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACvB,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC,CAACjD,KAAK,CAAC,UAACsG,GAAG,EAAK;QAChBhG,oBAAW,CAACC,MAAM,CAACC,KAAK,4EAAAC,MAAA,CACqD6F,GAAG,CAChF,CAAC;QAED,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAhF,GAAA;IAAAC,KAAA,EAMA,SAAA6F,YAAY5I,OAAsB,EAAE;MAClC,IAAOwE,GAAG,GAAIxE,OAAO,CAAdwE,GAAG;MAEV,IAAIA,GAAG,EAAE;QACP;QACA,OAAO,IAAI,CAAC2C,OAAO,CAAC;UAClBC,MAAM,EAAEC,qBAAU,CAACwB,GAAG;UACtBtB,GAAG,EAAE/C;QACP,CAAC,CAAC,CAAChD,KAAK,CAAC,UAACsG,GAAG,EAAK;UAChBhG,oBAAW,CAACC,MAAM,CAACC,KAAK,sEAAAC,MAAA,CAC+C6F,GAAG,CAC1E,CAAC;UAED,MAAMA,GAAG;QACX,CAAC,CAAC;MACJ;MAEA,OAAOgB,QAAA,CAAA3K,OAAA,CAAQ4K,MAAM,CAAC,CAAC;IACzB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAjG,GAAA;IAAAC,KAAA,EAUA,SAAAiG,qBAAAC,KAAA,EAUG;MAAA,IATD1F,QAAQ,GAAA0F,KAAA,CAAR1F,QAAQ;QACR2F,QAAQ,GAAAD,KAAA,CAARC,QAAQ;QACRxF,aAAa,GAAAuF,KAAA,CAAbvF,aAAa;QACbyF,MAAM,GAAAF,KAAA,CAANE,MAAM;MAONrH,oBAAW,CAACC,MAAM,CAAC8C,IAAI,2DAAA5C,MAAA,CACqCiH,QAAQ,gBAClExF,aACF,CAAC;MACD,IAAM6D,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,OAAApE,MAAA,CAAIkH,MAAM,OAAAlH,MAAA,CAAImH,gBAAK,CAAE;MAE3D,IAAM3E,IAAI,GAAG;QACXK,MAAM,EAAE;UACNC,UAAU,EAAEA,kBAAU,CAACoD,WAAW;UAClC3D,GAAG,EAAE0E;QACP,CAAC;QACDxF,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACvB,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC,CAACjD,KAAK,CAAC,UAACsG,GAAG,EAAK;QAChBhG,oBAAW,CAACC,MAAM,CAACC,KAAK,yEAAAC,MAAA,CACkDiH,QAAQ,uBAAAjH,MAAA,CAAoB6F,GAAG,CACzG,CAAC;QAED,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAhF,GAAA;IAAAC,KAAA,EAUA,SAAAuG,kCAAAC,KAAA,EAYG;MAAA,IAXDhG,QAAQ,GAAAgG,KAAA,CAARhG,QAAQ;QACR4F,MAAM,GAAAI,KAAA,CAANJ,MAAM;QACK3E,GAAG,GAAA+E,KAAA,CAAdjG,SAAS;QACTG,UAAU,GAAA8F,KAAA,CAAV9F,UAAU;QACVC,aAAa,GAAA6F,KAAA,CAAb7F,aAAa;MAQb,IAAM6D,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,OAAApE,MAAA,CAAIkH,MAAM,OAAAlH,MAAA,CAAImH,gBAAK,CAAE;MAC3D,IAAM3E,IAAI,GAAG;QACXK,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CP,GAAG,EAAHA;QACF,CAAC;QACDU,aAAa,EAAEzB,UAAU,IAAI,IAAI;QACjCC,aAAa,EAAbA;MACF,CAAC;MAED,OAAO;QACL0D,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA3B,GAAA;IAAAC,KAAA,EAKA,SAAAyG,aAAAC,KAAA,EAYG;MAAA,IAXDlG,QAAQ,GAAAkG,KAAA,CAARlG,QAAQ;QACR4F,MAAM,GAAAM,KAAA,CAANN,MAAM;QACK3E,GAAG,GAAAiF,KAAA,CAAdnG,SAAS;QACTG,UAAU,GAAAgG,KAAA,CAAVhG,UAAU;QACVC,aAAa,GAAA+F,KAAA,CAAb/F,aAAa;MAQb5B,oBAAW,CAACC,MAAM,CAAC8C,IAAI,CAAC,oDAAoD,EAAEnB,aAAa,CAAC;MAE5F,IAAM6D,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,OAAApE,MAAA,CAAIkH,MAAM,OAAAlH,MAAA,CAAImH,gBAAK,CAAE;MAC3D,IAAM3E,IAAI,GAAG;QACXK,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CP,GAAG,EAAHA;QACF,CAAC;QACDU,aAAa,EAAEzB,UAAU,IAAI,IAAI;QACjCC,aAAa,EAAbA;MACF,CAAC;MAED,OAAO,IAAI,CAACvB,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA3B,GAAA;IAAAC,KAAA,EAKA,SAAA2G,gCAAgC1J,OAAY,EAAE;MAC5C,OAAO,IAAI,CAACsC,6BAA6B,CAAC,IAAI,CAACgH,iCAAiC,CAACtJ,OAAO,CAAC,CAAC;IAC5F;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA8C,GAAA;IAAAC,KAAA,EAQA,SAAA4G,mBAAmB3J,OAAqE,EAAE;MACxF,IAAMuH,GAAG,MAAAtF,MAAA,CAAMjC,OAAO,CAACuD,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,OAAApE,MAAA,CAAI2H,gBAAK,CAAE;MACzD,IAAMnF,IAAI,GAAG;QACXK,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CP,GAAG,EAAExE,OAAO,CAACsD;QACf,CAAC;QACDI,aAAa,EAAE1D,OAAO,CAAC0D;MACzB,CAAC;MAED,OAAO,IAAI,CAACvB,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA3B,GAAA;IAAAC,KAAA,EAMA,SAAA8G,YAAY7J,OAAO,EAAE;MACnB,IAAMuH,GAAG,MAAAtF,MAAA,CAAMjC,OAAO,CAACuD,QAAQ,OAAAtB,MAAA,CAAI6H,mBAAQ,CAAE;MAC7C,IAAMrF,IAAI,GAAG;QACXsF,IAAI,EAAE;UACJC,MAAM,EAAEhK,OAAO,CAAC+J;QAClB;MACF,CAAC;MAED,OAAO,IAAI,CAAC5H,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAAC4C,KAAK;QACxB1C,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA3B,GAAA;IAAAC,KAAA,EAQA,SAAAmH,eAAelK,OAA8D,EAAE;MAC7E,IAAMuH,GAAG,MAAAtF,MAAA,CAAMjC,OAAO,CAACuD,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,OAAApE,MAAA,CAAIkI,kBAAO,CAAE;MAC3D,IAAM1F,IAAI,GAAA5G,aAAA;QACRiH,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CP,GAAG,EAAExE,OAAO,CAACsD;QACf;MAAC,GACGtD,OAAO,CAACoK,MAAM,IAAI;QAACA,MAAM,EAAEpK,OAAO,CAACoK;MAAM,CAAC,CAC/C;MAED,OAAO,IAAI,CAACjI,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAVE;IAAA3B,GAAA;IAAAC,KAAA,EAWA,SAAAsH,mBACErK,OAUO,EACP;MACA,IAAIsK,QAAa,GAAG;QAACC,WAAW,EAAEvK,OAAO,CAACuK;MAAW,CAAC;;MAEtD;MACA,IAAIvK,OAAO,CAACuK,WAAW,KAAKC,uBAAY,CAACC,OAAO,EAAE;QAChDH,QAAQ,GAAG;UACTI,WAAW,EAAE;YACXlG,GAAG,EAAExE,OAAO,CAAC2K,SAAS;YACtBC,OAAO,EAAE,CACP;cACE;cACA7F,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;cAC3CP,GAAG,EAAExE,OAAO,CAACsD;YACf,CAAC;UAEL,CAAC;UACDiH,WAAW,EAAEvK,OAAO,CAACuK,WAAW;UAChCM,SAAS,EAAE;YACTrG,GAAG,EAAExE,OAAO,CAAC2K;UACf;QACF,CAAC;MACH;MAEA,IAAMlG,IAAS,GAAG;QAChBqG,KAAK,EAAER,QAAQ;QACfS,WAAW,EAAE/K,OAAO,CAAC+K;MACvB,CAAC;MAED,IAAI/K,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEgL,eAAe,EAAE;QAC5BvG,IAAI,CAACqG,KAAK,CAACE,eAAe,GAAGhL,OAAO,CAACgL,eAAe;MACtD;MAEA,IAAIhL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEiL,aAAa,EAAE;QAC1BxG,IAAI,CAACwG,aAAa,GAAGjL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiL,aAAa;MAC7C;MACA,IAAIjL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEkL,cAAc,EAAE;QAC3BzG,IAAI,CAAC0G,UAAU,GAAGnL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEkL,cAAc;MAC3C;;MAEA;MACA,OAAO,IAAI,CAAC/D,OAAO,CAAC;QAClBI,GAAG,EAAEvH,OAAO,CAACuH,GAAG;QAChBH,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB5E,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA3B,GAAA;IAAAC,KAAA,EAQA,SAAAqI,SAAAC,KAAA,EAA6F;MAAA,IAAnF9H,QAAQ,GAAA8H,KAAA,CAAR9H,QAAQ;QAAED,SAAS,GAAA+H,KAAA,CAAT/H,SAAS;QAAEgI,KAAK,GAAAD,KAAA,CAALC,KAAK;MAClC;MACA,OAAO,IAAI,CAACnJ,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,KAAAtF,MAAA,CAAKsB,QAAQ,OAAAtB,MAAA,CAAIsJ,6BAAkB,CAAE;QACxC9G,IAAI,EAAE;UACJnB,SAAS,EAATA,SAAS;UACTkI,IAAI,EAAE;YACJ9H,aAAa,EAAE+H,aAAI,CAACC,EAAE,CAAC,CAAC;YACxBJ,KAAK,EAALA;UACF;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAbE;IAAAxI,GAAA;IAAAC,KAAA,EAcA,SAAAL,kBAAAiJ,KAAA,EAkBG;MAAA,IAjBDpI,QAAQ,GAAAoI,KAAA,CAARpI,QAAQ;QACRD,SAAS,GAAAqI,KAAA,CAATrI,SAAS;QACTsI,UAAU,GAAAD,KAAA,CAAVC,UAAU;QACVC,IAAI,GAAAF,KAAA,CAAJE,IAAI;QACJC,OAAO,GAAAH,KAAA,CAAPG,OAAO;MAcP;MACA,IAAID,IAAI,KAAK,CAACA,IAAI,CAACE,KAAK,IAAI,CAACF,IAAI,CAACG,MAAM,CAAC,EAAE;QACzC,OAAOlD,QAAA,CAAA3K,OAAA,CAAQ4K,MAAM,CACnB,IAAIkD,KAAK,8EAAAhK,MAAA,CACsE,IAAAiF,UAAA,CAAA/I,OAAA,EAC3E0N,IACF,CAAC,CACH,CACF,CAAC;MACH;MAEA,IAAIC,OAAO,KAAK,CAACA,OAAO,CAACC,KAAK,IAAI,CAACD,OAAO,CAACE,MAAM,CAAC,EAAE;QAClD,OAAOlD,QAAA,CAAA3K,OAAA,CAAQ4K,MAAM,CACnB,IAAIkD,KAAK,iFAAAhK,MAAA,CACyE,IAAAiF,UAAA,CAAA/I,OAAA,EAC9E2N,OACF,CAAC,CACH,CACF,CAAC;MACH;MAEA,IAAMI,cAAc,GAAGL,IAAI,GAAG;QAACE,KAAK,EAAEF,IAAI,CAACE,KAAK;QAAEC,MAAM,EAAEH,IAAI,CAACG;MAAM,CAAC,GAAG5F,SAAS;MAClF,IAAM+F,iBAAiB,GAAGL,OAAO,GAAG;QAACC,KAAK,EAAED,OAAO,CAACC,KAAK;QAAEC,MAAM,EAAEF,OAAO,CAACE;MAAM,CAAC,GAAG5F,SAAS;MAE9F,IAAMgG,YAAY,GAChBF,cAAc,IAAIC,iBAAiB,GAC/B;QACEE,UAAU,EAAE;UACVR,IAAI,EAAEK,cAAc;UACpBJ,OAAO,EAAEK;QACX;MACF,CAAC,GACD/F,SAAS;;MAEf;MACA,OAAO,IAAI,CAACjE,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,KAAAtF,MAAA,CAAKsB,QAAQ,OAAAtB,MAAA,CAAI6H,mBAAQ,CAAE;QAC9BrF,IAAI,EAAE;UACJ6H,MAAM,EAAE;YACNhJ,SAAS,EAATA,SAAS;YACTiJ,IAAI,EAAEX,UAAU;YAChBQ,YAAY,EAAZA;UACF;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAtJ,GAAA;IAAAC,KAAA,EAMA,SAAAyJ,iBAAAC,MAAA,EAAiD;MAAA,IAA/BlJ,QAAQ,GAAAkJ,MAAA,CAARlJ,QAAQ;MACxB,IAAMgE,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIyK,cAAG,CAAE;;MAEhC;MACA,OAAO,IAAI,CAACvK,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAzE,GAAA;IAAAC,KAAA,EAMA,SAAA4J,UAAAC,MAAA,EAAkD;MAAA,IAAvCC,YAAY,GAAAD,MAAA,CAAZC,YAAY;MACrB;MACA,OAAO,IAAI,CAAC1F,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwB,GAAG;QACtBtB,GAAG,EAAEsF;MACP,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA/J,GAAA;IAAAC,KAAA,EAQA,SAAA+J,aAAAC,MAAA,EAAiF;MAAA,IAAnEC,kBAAkB,GAAAD,MAAA,CAAlBC,kBAAkB;QAAEC,QAAQ,GAAAF,MAAA,CAARE,QAAQ;QAAEC,aAAa,GAAAH,MAAA,CAAbG,aAAa;MACvD,IAAM3F,GAAG,GAAGyF,kBAAkB;;MAE9B;MACA,OAAO,IAAI,CAAC7F,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAE;UACJ0I,MAAM,EAAE;YAACD,aAAa,EAAbA;UAAa,CAAC;UACvBD,QAAQ,EAARA;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAnK,GAAA;IAAAC,KAAA,EAMA,SAAAqK,gBAAAC,MAAA,EAAqF;MAAA,IAApEC,MAAM,GAAAD,MAAA,CAANC,MAAM;QAAE/J,QAAQ,GAAA8J,MAAA,CAAR9J,QAAQ;QAAEgK,uBAAuB,GAAAF,MAAA,CAAvBE,uBAAuB;MACxD,IAAMhG,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAI6H,mBAAQ,CAAE;;MAErC;MACA,OAAO,IAAI,CAAC3H,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAACgC,GAAG;QACtB9B,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAE;UACJ+I,SAAS,EAAE;YACTC,OAAO,EAAEH;UACX,CAAC;UACDC,uBAAuB,EAAvBA;QACF;MACF,CAAC,CAAC;IACJ;EAAC;IAAAzK,GAAA;IAAAC,KAAA,EAED,SAAA2K,oBAAoBnK,QAAgB,EAAE;MACpC;MACA,OAAO,IAAI,CAAC4D,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwB,GAAG;QACtBtB,GAAG,EAAEhE;MACP,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAAT,GAAA;IAAAC,KAAA,EAUA,SAAA4K,OAAAC,MAAA,EAA2D;MAAA,IAAnDH,OAAO,GAAAG,MAAA,CAAPH,OAAO;QAAElK,QAAQ,GAAAqK,MAAA,CAARrK,QAAQ;QAAED,SAAS,GAAAsK,MAAA,CAATtK,SAAS;QAAE6F,MAAM,GAAAyE,MAAA,CAANzE,MAAM;MAC1C,IAAM5B,GAAG,MAAAtF,MAAA,CAAMsB,QAAQ,OAAAtB,MAAA,CAAIoE,sBAAW,OAAApE,MAAA,CAAIkH,MAAM,OAAAlH,MAAA,CAAI6H,mBAAQ,CAAE;MAE9D,OAAO,IAAI,CAAC3H,iBAAiB,CAAC;QAC5BiF,MAAM,EAAEC,qBAAU,CAAC4C,KAAK;QACxB1C,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAE;UACJoJ,GAAG,EAAE;YACHJ,OAAO,EAAPA,OAAO;YACPnK,SAAS,EAATA;UACF;QACF;MACF,CAAC,CAAC;IACJ;EAAC;EAAA,OAAA5D,cAAA;AAAA,EAl4ByCoO,+BAAoB"}
@@ -0,0 +1,11 @@
1
+ import { Reaction } from '../reactions/reactions.type';
2
+ export type SendReactionOptions = {
3
+ reactionChannelUrl: string;
4
+ reaction: Reaction;
5
+ participantId: string;
6
+ };
7
+ export type ToggleReactionsOptions = {
8
+ enable: boolean;
9
+ locusUrl: string;
10
+ requestingParticipantId: string;
11
+ };
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["request.type.ts"],"sourcesContent":["import {Reaction} from '../reactions/reactions.type';\n\nexport type SendReactionOptions = {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n};\n\nexport type ToggleReactionsOptions = {\n enable: boolean;\n locusUrl: string;\n requestingParticipantId: string;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["request.type.ts"],"sourcesContent":["import {Reaction} from '../reactions/reactions.type';\n\nexport type SendReactionOptions = {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n};\n\nexport type ToggleReactionsOptions = {\n enable: boolean;\n locusUrl: string;\n requestingParticipantId: string;\n};\n\nexport type BrbOptions = {\n enabled: boolean;\n locusUrl: string;\n deviceUrl: string;\n selfId: string;\n};\n"],"mappings":""}
@@ -0,0 +1,9 @@
1
+ declare const MeetingStateMachine: {
2
+ /**
3
+ * Initializes the StateMachine for the meeting
4
+ * @param {Meeting} meetingRef A reference to a meeting instance
5
+ * @returns {StateMachine}
6
+ */
7
+ create(meetingRef: any): any;
8
+ };
9
+ export default MeetingStateMachine;
@@ -0,0 +1,119 @@
1
+ import { LocalCameraStream, LocalMicrophoneStream } from '@webex/media-helpers';
2
+ import { SELF_POLICY, IP_VERSION } from '../constants';
3
+ declare const MeetingUtil: {
4
+ parseLocusJoin: (response: any) => any;
5
+ remoteUpdateAudioVideo: (meeting: any, audioMuted?: boolean, videoMuted?: boolean) => any;
6
+ hasOwner: (info: any) => any;
7
+ isOwnerSelf: (owner: any, selfId: any) => boolean;
8
+ isPinOrGuest: (err: any) => boolean;
9
+ /**
10
+ * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.
11
+ * The return value matches the possible values of "ipver" parameter used by the backend APIs.
12
+ *
13
+ * @param {Object} webex webex instance
14
+ * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend
15
+ */
16
+ getIpVersion(webex: any): IP_VERSION | undefined;
17
+ joinMeeting: (meeting: any, options: any) => any;
18
+ cleanUp: (meeting: any) => any;
19
+ disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
20
+ /**
21
+ * Returns options for leaving a meeting.
22
+ * @param {any} meeting
23
+ * @param {any} options
24
+ * @returns {any} leave options
25
+ */
26
+ prepareLeaveMeetingOptions: (meeting: any, options?: any) => any;
27
+ leaveMeeting: (meeting: any, options?: any) => any;
28
+ declineMeeting: (meeting: any, reason: any) => any;
29
+ isUserInLeftState: (locusInfo: any) => boolean;
30
+ isUserInIdleState: (locusInfo: any) => boolean;
31
+ isUserInJoinedState: (locusInfo: any) => boolean;
32
+ isMediaEstablished: (currentMediaStatus: any) => any;
33
+ joinMeetingOptions: (meeting: any, options?: any) => any;
34
+ /**
35
+ * Returns request options for leaving a meeting.
36
+ * @param {any} meeting
37
+ * @param {any} options
38
+ * @returns {any} request options
39
+ */
40
+ buildLeaveFetchRequestOptions: (meeting: any, options?: any) => any;
41
+ getTrack: (stream: any) => {
42
+ audioTrack: any;
43
+ videoTrack: any;
44
+ };
45
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
46
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
47
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
48
+ canInviteNewParticipants: (displayHints: any) => any;
49
+ canAdmitParticipant: (displayHints: any) => any;
50
+ canUserLock: (displayHints: any) => any;
51
+ canUserUnlock: (displayHints: any) => any;
52
+ canUserRaiseHand: (displayHints: any) => any;
53
+ canUserLowerAllHands: (displayHints: any) => any;
54
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
55
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
56
+ canManageBreakout: (displayHints: any) => any;
57
+ canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
58
+ isSuppressBreakoutSupport: (displayHints: any) => any;
59
+ canAdmitLobbyToBreakout: (displayHints: any) => boolean;
60
+ isBreakoutPreassignmentsEnabled: (displayHints: any) => boolean;
61
+ canUserAskForHelp: (displayHints: any) => boolean;
62
+ lockMeeting: (actions: any, request: any, locusUrl: any) => any;
63
+ unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
64
+ handleAudioLogging: (audioStream?: LocalMicrophoneStream) => void;
65
+ handleVideoLogging: (videoStream?: LocalCameraStream) => void;
66
+ handleDeviceLogging: (devices?: any[]) => void;
67
+ endMeetingForAll: (meeting: any) => any;
68
+ canEnableClosedCaption: (displayHints: any) => any;
69
+ isSaveTranscriptsEnabled: (displayHints: any) => any;
70
+ canStartTranscribing: (displayHints: any) => any;
71
+ canStopTranscribing: (displayHints: any) => any;
72
+ isClosedCaptionActive: (displayHints: any) => any;
73
+ isWebexAssistantActive: (displayHints: any) => any;
74
+ canViewCaptionPanel: (displayHints: any) => any;
75
+ isRealTimeTranslationEnabled: (displayHints: any) => any;
76
+ canSelectSpokenLanguages: (displayHints: any) => any;
77
+ waitingForOthersToJoin: (displayHints: any) => any;
78
+ canSendReactions: (originalValue: any, displayHints: any) => any;
79
+ canUserRenameSelfAndObserved: (displayHints: any) => any;
80
+ canUserRenameOthers: (displayHints: any) => any;
81
+ canShareWhiteBoard: (displayHints: any) => any;
82
+ /**
83
+ * Adds the current locus sequence information to a request body
84
+ * @param {Object} meeting The meeting object
85
+ * @param {Object} requestBody The body of a request to locus
86
+ * @returns {void}
87
+ */
88
+ addSequence: (meeting: any, requestBody: any) => void;
89
+ /**
90
+ * Updates the locus info for the meeting with the delta locus
91
+ * returned from requests that include the sequence information
92
+ * Returns the original response object
93
+ * @param {Object} meeting The meeting object
94
+ * @param {Object} response The response of the http request
95
+ * @returns {Object}
96
+ */
97
+ updateLocusWithDelta: (meeting: any, response: any) => any;
98
+ generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
99
+ generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
100
+ selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
101
+ parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
102
+ /**
103
+ * Returns a CA-recognized error payload for the specified raw error message/reason.
104
+ *
105
+ * New errors can be added to this function for handling in the future
106
+ *
107
+ * @param {String} reason the raw error message
108
+ * @returns {Array<object>} an array of payload objects
109
+ */
110
+ getChangeMeetingFloorErrorPayload: (reason: string) => {
111
+ fatal: boolean;
112
+ category: string;
113
+ errorCode: number;
114
+ errorDescription: string;
115
+ name: string;
116
+ shownToUser: boolean;
117
+ }[];
118
+ };
119
+ export default MeetingUtil;
@@ -15,8 +15,10 @@ _Object$defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  exports.default = void 0;
18
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
18
19
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
19
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
21
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
20
22
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
21
23
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
22
24
  var _lodash = require("lodash");
@@ -25,7 +27,7 @@ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy")
25
27
  var _constants = require("../constants");
26
28
  var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
27
29
  var _intentToJoin = _interopRequireDefault(require("../common/errors/intent-to-join"));
28
- var _joinMeeting = _interopRequireDefault(require("../common/errors/join-meeting"));
30
+ var _joinMeeting2 = _interopRequireDefault(require("../common/errors/join-meeting"));
29
31
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
30
32
  var _permission = _interopRequireDefault(require("../common/errors/permission"));
31
33
  var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
@@ -115,66 +117,105 @@ var MeetingUtil = {
115
117
  }
116
118
  return _constants.IP_VERSION.unknown;
117
119
  },
118
- joinMeeting: function joinMeeting(meeting, options) {
119
- var _meeting$meetingInfo;
120
- if (!meeting) {
121
- return _promise.default.reject(new _parameter.default('You need a meeting object.'));
122
- }
123
- var webex = meeting.getWebexObject();
124
-
125
- // @ts-ignore
126
- webex.internal.newMetrics.submitClientEvent({
127
- name: 'client.locus.join.request',
128
- options: {
129
- meetingId: meeting.id
130
- }
131
- });
132
-
133
- // eslint-disable-next-line no-warning-comments
134
- // TODO: check if the meeting is in JOINING state
135
- // if Joining state termintate the request as user might click multiple times
136
- return meeting.meetingRequest.joinMeeting({
137
- inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,
138
- meetingNumber: meeting.meetingNumber,
139
- deviceUrl: meeting.deviceUrl,
140
- locusUrl: meeting.locusUrl,
141
- locusClusterUrl: (_meeting$meetingInfo = meeting.meetingInfo) === null || _meeting$meetingInfo === void 0 ? void 0 : _meeting$meetingInfo.locusClusterUrl,
142
- correlationId: meeting.correlationId,
143
- reachability: options.reachability,
144
- roapMessage: options.roapMessage,
145
- permissionToken: meeting.permissionToken,
146
- resourceId: options.resourceId || null,
147
- moderator: options.moderator,
148
- pin: options.pin,
149
- moveToResource: options.moveToResource,
150
- preferTranscoding: !meeting.isMultistream,
151
- asResourceOccupant: options.asResourceOccupant,
152
- breakoutsSupported: options.breakoutsSupported,
153
- locale: options.locale,
154
- deviceCapabilities: options.deviceCapabilities,
155
- liveAnnotationSupported: options.liveAnnotationSupported,
156
- ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject())
157
- }).then(function (res) {
158
- var parsed = MeetingUtil.parseLocusJoin(res);
159
- meeting.setLocus(parsed);
160
- webex.internal.newMetrics.submitClientEvent({
161
- name: 'client.locus.join.response',
162
- payload: {
163
- trigger: 'loci-update',
164
- identifiers: {
165
- trackingId: res.headers.trackingid
166
- }
167
- },
168
- options: {
169
- meetingId: meeting.id,
170
- mediaConnections: parsed.mediaConnections
120
+ joinMeeting: function () {
121
+ var _joinMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(meeting, options) {
122
+ var _meeting$meetingInfo;
123
+ var webex, reachability, clientMediaPreferences;
124
+ return _regenerator.default.wrap(function _callee$(_context) {
125
+ while (1) switch (_context.prev = _context.next) {
126
+ case 0:
127
+ if (meeting) {
128
+ _context.next = 2;
129
+ break;
130
+ }
131
+ return _context.abrupt("return", _promise.default.reject(new _parameter.default('You need a meeting object.')));
132
+ case 2:
133
+ webex = meeting.getWebexObject(); // @ts-ignore
134
+ webex.internal.newMetrics.submitClientEvent({
135
+ name: 'client.locus.join.request',
136
+ options: {
137
+ meetingId: meeting.id
138
+ }
139
+ });
140
+ clientMediaPreferences = {
141
+ // bare minimum fallback value that should allow us to join
142
+ ipver: _constants.IP_VERSION.unknown,
143
+ joinCookie: undefined,
144
+ preferTranscoding: !meeting.isMultistream
145
+ };
146
+ _context.prev = 5;
147
+ _context.next = 8;
148
+ return webex.meetings.reachability.getClientMediaPreferences(meeting.isMultistream, MeetingUtil.getIpVersion(webex));
149
+ case 8:
150
+ clientMediaPreferences = _context.sent;
151
+ if (!options.roapMessage) {
152
+ _context.next = 13;
153
+ break;
154
+ }
155
+ _context.next = 12;
156
+ return webex.meetings.reachability.getReachabilityReportToAttachToRoap();
157
+ case 12:
158
+ reachability = _context.sent;
159
+ case 13:
160
+ _context.next = 18;
161
+ break;
162
+ case 15:
163
+ _context.prev = 15;
164
+ _context.t0 = _context["catch"](5);
165
+ _loggerProxy.default.logger.error('Meeting:util#joinMeeting --> Error getting reachability or clientMediaPreferences:', _context.t0);
166
+ case 18:
167
+ return _context.abrupt("return", meeting.meetingRequest.joinMeeting({
168
+ inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,
169
+ meetingNumber: meeting.meetingNumber,
170
+ deviceUrl: meeting.deviceUrl,
171
+ locusUrl: meeting.locusUrl,
172
+ locusClusterUrl: (_meeting$meetingInfo = meeting.meetingInfo) === null || _meeting$meetingInfo === void 0 ? void 0 : _meeting$meetingInfo.locusClusterUrl,
173
+ correlationId: meeting.correlationId,
174
+ reachability: reachability,
175
+ roapMessage: options.roapMessage,
176
+ permissionToken: meeting.permissionToken,
177
+ resourceId: options.resourceId || null,
178
+ moderator: options.moderator,
179
+ pin: options.pin,
180
+ moveToResource: options.moveToResource,
181
+ asResourceOccupant: options.asResourceOccupant,
182
+ breakoutsSupported: options.breakoutsSupported,
183
+ locale: options.locale,
184
+ deviceCapabilities: options.deviceCapabilities,
185
+ liveAnnotationSupported: options.liveAnnotationSupported,
186
+ clientMediaPreferences: clientMediaPreferences
187
+ }).then(function (res) {
188
+ var parsed = MeetingUtil.parseLocusJoin(res);
189
+ meeting.setLocus(parsed);
190
+ webex.internal.newMetrics.submitClientEvent({
191
+ name: 'client.locus.join.response',
192
+ payload: {
193
+ trigger: 'loci-update',
194
+ identifiers: {
195
+ trackingId: res.headers.trackingid
196
+ }
197
+ },
198
+ options: {
199
+ meetingId: meeting.id,
200
+ mediaConnections: parsed.mediaConnections
201
+ }
202
+ });
203
+ return parsed;
204
+ }));
205
+ case 19:
206
+ case "end":
207
+ return _context.stop();
171
208
  }
172
- });
173
- return parsed;
174
- });
175
- },
209
+ }, _callee, null, [[5, 15]]);
210
+ }));
211
+ function joinMeeting(_x, _x2) {
212
+ return _joinMeeting.apply(this, arguments);
213
+ }
214
+ return joinMeeting;
215
+ }(),
176
216
  cleanUp: function cleanUp(meeting) {
177
217
  meeting.getWebexObject().internal.device.meetingEnded();
218
+ meeting.stopPeriodicLogUpload();
178
219
  meeting.breakouts.cleanUp();
179
220
  meeting.simultaneousInterpretation.cleanUp();
180
221
  meeting.locusMediaRequest = undefined;
@@ -316,7 +357,7 @@ var MeetingUtil = {
316
357
  return _promise.default.reject(new _intentToJoin.default('Error Joining Meeting', err));
317
358
  }
318
359
  _loggerProxy.default.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);
319
- return _promise.default.reject(new _joinMeeting.default(options, 'Error Joining Meeting', err));
360
+ return _promise.default.reject(new _joinMeeting2.default(options, 'Error Joining Meeting', err));
320
361
  });
321
362
  },
322
363
  /**
@@ -399,6 +440,9 @@ var MeetingUtil = {
399
440
  canManageBreakout: function canManageBreakout(displayHints) {
400
441
  return displayHints.includes(_constants.DISPLAY_HINTS.BREAKOUT_MANAGEMENT);
401
442
  },
443
+ canStartBreakout: function canStartBreakout(displayHints) {
444
+ return !displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_BREAKOUT_START);
445
+ },
402
446
  canBroadcastMessageToBreakout: function canBroadcastMessageToBreakout(displayHints) {
403
447
  var policies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
404
448
  return displayHints.includes(_constants.DISPLAY_HINTS.BROADCAST_MESSAGE_TO_BREAKOUT) && !!policies[_constants.SELF_POLICY.SUPPORT_BROADCAST_MESSAGE];
@@ -451,14 +495,6 @@ var MeetingUtil = {
451
495
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings =', (0, _stringify.default)(settings));
452
496
  }
453
497
  },
454
- handleDeviceLogging: function handleDeviceLogging() {
455
- var devices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
456
- var LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';
457
- devices.forEach(function (device) {
458
- _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(device.deviceId));
459
- _loggerProxy.default.logger.log(LOG_HEADER, 'settings', (0, _stringify.default)(device));
460
- });
461
- },
462
498
  endMeetingForAll: function endMeetingForAll(meeting) {
463
499
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
464
500
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());