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

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 (576) hide show
  1. package/README.md +45 -7
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/parameter.js +5 -33
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +10 -24
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +9 -23
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reconnection-in-progress.js +0 -17
  45. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +10 -24
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +10 -24
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +9 -43
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +5 -25
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +0 -22
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +0 -23
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js +0 -12
  59. package/dist/common/events/trigger-proxy.js.map +1 -1
  60. package/dist/common/events/util.js +0 -15
  61. package/dist/common/events/util.js.map +1 -1
  62. package/dist/common/logs/logger-config.js +0 -4
  63. package/dist/common/logs/logger-config.js.map +1 -1
  64. package/dist/common/logs/logger-proxy.js +1 -8
  65. package/dist/common/logs/logger-proxy.js.map +1 -1
  66. package/dist/common/logs/request.js +37 -60
  67. package/dist/common/logs/request.js.map +1 -1
  68. package/dist/common/queue.js +28 -23
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.js +8 -13
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.js +250 -66
  73. package/dist/constants.js.map +1 -1
  74. package/dist/controls-options-manager/constants.js +14 -0
  75. package/dist/controls-options-manager/constants.js.map +1 -0
  76. package/dist/controls-options-manager/enums.js +27 -0
  77. package/dist/controls-options-manager/enums.js.map +1 -0
  78. package/dist/controls-options-manager/index.js +297 -0
  79. package/dist/controls-options-manager/index.js.map +1 -0
  80. package/dist/controls-options-manager/types.js +7 -0
  81. package/dist/controls-options-manager/types.js.map +1 -0
  82. package/dist/controls-options-manager/util.js +319 -0
  83. package/dist/controls-options-manager/util.js.map +1 -0
  84. package/dist/index.js +108 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/interpretation/collection.js +23 -0
  87. package/dist/interpretation/collection.js.map +1 -0
  88. package/dist/interpretation/index.js +366 -0
  89. package/dist/interpretation/index.js.map +1 -0
  90. package/dist/interpretation/siLanguage.js +25 -0
  91. package/dist/interpretation/siLanguage.js.map +1 -0
  92. package/dist/locus-info/controlsUtils.js +101 -29
  93. package/dist/locus-info/controlsUtils.js.map +1 -1
  94. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  95. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  96. package/dist/locus-info/fullState.js +0 -15
  97. package/dist/locus-info/fullState.js.map +1 -1
  98. package/dist/locus-info/hostUtils.js +4 -12
  99. package/dist/locus-info/hostUtils.js.map +1 -1
  100. package/dist/locus-info/index.js +532 -240
  101. package/dist/locus-info/index.js.map +1 -1
  102. package/dist/locus-info/infoUtils.js +3 -37
  103. package/dist/locus-info/infoUtils.js.map +1 -1
  104. package/dist/locus-info/mediaSharesUtils.js +54 -38
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.js +284 -154
  107. package/dist/locus-info/parser.js.map +1 -1
  108. package/dist/locus-info/selfUtils.js +110 -92
  109. package/dist/locus-info/selfUtils.js.map +1 -1
  110. package/dist/media/index.js +95 -226
  111. package/dist/media/index.js.map +1 -1
  112. package/dist/media/properties.js +99 -194
  113. package/dist/media/properties.js.map +1 -1
  114. package/dist/media/util.js +2 -9
  115. package/dist/media/util.js.map +1 -1
  116. package/dist/mediaQualityMetrics/config.js +505 -495
  117. package/dist/mediaQualityMetrics/config.js.map +1 -1
  118. package/dist/meeting/in-meeting-actions.js +83 -14
  119. package/dist/meeting/in-meeting-actions.js.map +1 -1
  120. package/dist/meeting/index.js +3478 -3563
  121. package/dist/meeting/index.js.map +1 -1
  122. package/dist/meeting/locusMediaRequest.js +291 -0
  123. package/dist/meeting/locusMediaRequest.js.map +1 -0
  124. package/dist/meeting/muteState.js +247 -183
  125. package/dist/meeting/muteState.js.map +1 -1
  126. package/dist/meeting/request.js +344 -344
  127. package/dist/meeting/request.js.map +1 -1
  128. package/dist/meeting/request.type.js +7 -0
  129. package/dist/meeting/request.type.js.map +1 -0
  130. package/dist/meeting/state.js +21 -31
  131. package/dist/meeting/state.js.map +1 -1
  132. package/dist/meeting/util.js +529 -588
  133. package/dist/meeting/util.js.map +1 -1
  134. package/dist/meeting-info/collection.js +6 -25
  135. package/dist/meeting-info/collection.js.map +1 -1
  136. package/dist/meeting-info/index.js +62 -39
  137. package/dist/meeting-info/index.js.map +1 -1
  138. package/dist/meeting-info/meeting-info-v2.js +328 -283
  139. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  140. package/dist/meeting-info/request.js +3 -15
  141. package/dist/meeting-info/request.js.map +1 -1
  142. package/dist/meeting-info/util.js +98 -183
  143. package/dist/meeting-info/util.js.map +1 -1
  144. package/dist/meeting-info/utilv2.js +156 -232
  145. package/dist/meeting-info/utilv2.js.map +1 -1
  146. package/dist/meetings/collection.js +26 -19
  147. package/dist/meetings/collection.js.map +1 -1
  148. package/dist/meetings/index.js +795 -574
  149. package/dist/meetings/index.js.map +1 -1
  150. package/dist/meetings/meetings.types.js +7 -0
  151. package/dist/meetings/meetings.types.js.map +1 -0
  152. package/dist/meetings/request.js +26 -41
  153. package/dist/meetings/request.js.map +1 -1
  154. package/dist/meetings/util.js +186 -155
  155. package/dist/meetings/util.js.map +1 -1
  156. package/dist/member/index.js +126 -85
  157. package/dist/member/index.js.map +1 -1
  158. package/dist/member/types.js +25 -0
  159. package/dist/member/types.js.map +1 -0
  160. package/dist/member/util.js +147 -88
  161. package/dist/member/util.js.map +1 -1
  162. package/dist/members/collection.js +13 -12
  163. package/dist/members/collection.js.map +1 -1
  164. package/dist/members/index.js +178 -204
  165. package/dist/members/index.js.map +1 -1
  166. package/dist/members/request.js +113 -68
  167. package/dist/members/request.js.map +1 -1
  168. package/dist/members/types.js +15 -0
  169. package/dist/members/types.js.map +1 -0
  170. package/dist/members/util.js +314 -260
  171. package/dist/members/util.js.map +1 -1
  172. package/dist/metrics/constants.js +4 -7
  173. package/dist/metrics/constants.js.map +1 -1
  174. package/dist/metrics/index.js +11 -558
  175. package/dist/metrics/index.js.map +1 -1
  176. package/dist/multistream/mediaRequestManager.js +264 -50
  177. package/dist/multistream/mediaRequestManager.js.map +1 -1
  178. package/dist/multistream/receiveSlot.js +58 -65
  179. package/dist/multistream/receiveSlot.js.map +1 -1
  180. package/dist/multistream/receiveSlotManager.js +76 -95
  181. package/dist/multistream/receiveSlotManager.js.map +1 -1
  182. package/dist/multistream/remoteMedia.js +62 -76
  183. package/dist/multistream/remoteMedia.js.map +1 -1
  184. package/dist/multistream/remoteMediaGroup.js +66 -43
  185. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  186. package/dist/multistream/remoteMediaManager.js +502 -442
  187. package/dist/multistream/remoteMediaManager.js.map +1 -1
  188. package/dist/networkQualityMonitor/index.js +40 -59
  189. package/dist/networkQualityMonitor/index.js.map +1 -1
  190. package/dist/personal-meeting-room/index.js +21 -45
  191. package/dist/personal-meeting-room/index.js.map +1 -1
  192. package/dist/personal-meeting-room/request.js +1 -31
  193. package/dist/personal-meeting-room/request.js.map +1 -1
  194. package/dist/personal-meeting-room/util.js +0 -13
  195. package/dist/personal-meeting-room/util.js.map +1 -1
  196. package/dist/reachability/index.js +192 -191
  197. package/dist/reachability/index.js.map +1 -1
  198. package/dist/reachability/request.js +15 -23
  199. package/dist/reachability/request.js.map +1 -1
  200. package/dist/reactions/constants.js +13 -0
  201. package/dist/reactions/constants.js.map +1 -0
  202. package/dist/reactions/reactions.js +109 -0
  203. package/dist/reactions/reactions.js.map +1 -0
  204. package/dist/reactions/reactions.type.js +36 -0
  205. package/dist/reactions/reactions.type.js.map +1 -0
  206. package/dist/reconnection-manager/index.js +384 -476
  207. package/dist/reconnection-manager/index.js.map +1 -1
  208. package/dist/recording-controller/enums.js +17 -0
  209. package/dist/recording-controller/enums.js.map +1 -0
  210. package/dist/recording-controller/index.js +363 -0
  211. package/dist/recording-controller/index.js.map +1 -0
  212. package/dist/recording-controller/util.js +64 -0
  213. package/dist/recording-controller/util.js.map +1 -0
  214. package/dist/roap/index.js +58 -91
  215. package/dist/roap/index.js.map +1 -1
  216. package/dist/roap/request.js +137 -135
  217. package/dist/roap/request.js.map +1 -1
  218. package/dist/roap/turnDiscovery.js +148 -100
  219. package/dist/roap/turnDiscovery.js.map +1 -1
  220. package/dist/rtcMetrics/constants.js +12 -0
  221. package/dist/rtcMetrics/constants.js.map +1 -0
  222. package/dist/rtcMetrics/index.js +115 -0
  223. package/dist/rtcMetrics/index.js.map +1 -0
  224. package/dist/statsAnalyzer/global.js +1 -95
  225. package/dist/statsAnalyzer/global.js.map +1 -1
  226. package/dist/statsAnalyzer/index.js +385 -460
  227. package/dist/statsAnalyzer/index.js.map +1 -1
  228. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  229. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  230. package/dist/transcription/index.js +22 -47
  231. package/dist/transcription/index.js.map +1 -1
  232. package/dist/types/annotation/annotation.types.d.ts +42 -0
  233. package/dist/types/annotation/constants.d.ts +31 -0
  234. package/dist/types/annotation/index.d.ts +117 -0
  235. package/dist/types/breakouts/breakout.d.ts +8 -0
  236. package/dist/types/breakouts/collection.d.ts +5 -0
  237. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  238. package/dist/types/breakouts/events.d.ts +8 -0
  239. package/dist/types/breakouts/index.d.ts +5 -0
  240. package/dist/types/breakouts/request.d.ts +22 -0
  241. package/dist/types/breakouts/utils.d.ts +15 -0
  242. package/dist/types/common/browser-detection.d.ts +9 -0
  243. package/dist/types/common/collection.d.ts +48 -0
  244. package/dist/types/common/config.d.ts +2 -0
  245. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  246. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  247. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  248. package/dist/types/common/errors/media.d.ts +15 -0
  249. package/dist/types/common/errors/parameter.d.ts +15 -0
  250. package/dist/types/common/errors/password-error.d.ts +15 -0
  251. package/dist/types/common/errors/permission.d.ts +14 -0
  252. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  253. package/dist/types/common/errors/reconnection.d.ts +15 -0
  254. package/dist/types/common/errors/stats.d.ts +15 -0
  255. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  256. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  257. package/dist/types/common/events/events-scope.d.ts +17 -0
  258. package/dist/types/common/events/events.d.ts +12 -0
  259. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  260. package/dist/types/common/events/util.d.ts +2 -0
  261. package/dist/types/common/logs/logger-config.d.ts +2 -0
  262. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  263. package/dist/types/common/logs/request.d.ts +34 -0
  264. package/dist/types/common/queue.d.ts +34 -0
  265. package/dist/types/config.d.ts +72 -0
  266. package/dist/types/constants.d.ts +1016 -0
  267. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  268. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  269. package/dist/types/controls-options-manager/index.d.ts +136 -0
  270. package/dist/types/controls-options-manager/types.d.ts +43 -0
  271. package/dist/types/controls-options-manager/util.d.ts +1 -0
  272. package/dist/types/index.d.ts +7 -0
  273. package/dist/types/interpretation/collection.d.ts +5 -0
  274. package/dist/types/interpretation/index.d.ts +5 -0
  275. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  276. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  277. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  278. package/dist/types/locus-info/fullState.d.ts +2 -0
  279. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  280. package/dist/types/locus-info/index.d.ts +322 -0
  281. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  282. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  283. package/dist/types/locus-info/parser.d.ts +271 -0
  284. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  285. package/dist/types/media/index.d.ts +34 -0
  286. package/dist/types/media/properties.d.ts +93 -0
  287. package/dist/types/media/util.d.ts +2 -0
  288. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  289. package/dist/types/meeting/in-meeting-actions.d.ts +153 -0
  290. package/dist/types/meeting/index.d.ts +1471 -0
  291. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  292. package/dist/types/meeting/muteState.d.ts +184 -0
  293. package/dist/types/meeting/request.d.ts +257 -0
  294. package/dist/types/meeting/request.type.d.ts +11 -0
  295. package/dist/types/meeting/state.d.ts +9 -0
  296. package/dist/types/meeting/util.d.ts +78 -0
  297. package/dist/types/meeting-info/collection.d.ts +20 -0
  298. package/dist/types/meeting-info/index.d.ts +62 -0
  299. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  300. package/dist/types/meeting-info/request.d.ts +22 -0
  301. package/dist/types/meeting-info/util.d.ts +2 -0
  302. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  303. package/dist/types/meetings/collection.d.ts +31 -0
  304. package/dist/types/meetings/index.d.ts +367 -0
  305. package/dist/types/meetings/meetings.types.d.ts +4 -0
  306. package/dist/types/meetings/request.d.ts +27 -0
  307. package/dist/types/meetings/util.d.ts +18 -0
  308. package/dist/types/member/index.d.ts +159 -0
  309. package/dist/types/member/types.d.ts +32 -0
  310. package/dist/types/member/util.d.ts +2 -0
  311. package/dist/types/members/collection.d.ts +29 -0
  312. package/dist/types/members/index.d.ts +353 -0
  313. package/dist/types/members/request.d.ts +114 -0
  314. package/dist/types/members/types.d.ts +24 -0
  315. package/dist/types/members/util.d.ts +210 -0
  316. package/dist/types/metrics/constants.d.ts +55 -0
  317. package/dist/types/metrics/index.d.ts +45 -0
  318. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  319. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  320. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  321. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  322. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  323. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  324. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  325. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  326. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  327. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  328. package/dist/types/reachability/index.d.ts +152 -0
  329. package/dist/types/reachability/request.d.ts +37 -0
  330. package/dist/types/reactions/constants.d.ts +3 -0
  331. package/dist/types/reactions/reactions.d.ts +4 -0
  332. package/dist/types/reactions/reactions.type.d.ts +52 -0
  333. package/dist/types/reconnection-manager/index.d.ts +126 -0
  334. package/dist/types/recording-controller/enums.d.ts +7 -0
  335. package/dist/types/recording-controller/index.d.ts +208 -0
  336. package/dist/types/recording-controller/util.d.ts +14 -0
  337. package/dist/types/roap/index.d.ts +77 -0
  338. package/dist/types/roap/request.d.ts +36 -0
  339. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  340. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  341. package/dist/types/rtcMetrics/index.d.ts +46 -0
  342. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  343. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  344. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  345. package/dist/types/transcription/index.d.ts +64 -0
  346. package/internal-README.md +7 -6
  347. package/package.json +29 -21
  348. package/src/annotation/annotation.types.ts +50 -0
  349. package/src/annotation/constants.ts +36 -0
  350. package/src/annotation/index.ts +328 -0
  351. package/src/breakouts/README.md +220 -0
  352. package/src/breakouts/breakout.ts +188 -0
  353. package/src/breakouts/collection.ts +19 -0
  354. package/src/breakouts/edit-lock-error.ts +25 -0
  355. package/src/breakouts/events.ts +56 -0
  356. package/src/breakouts/index.ts +925 -0
  357. package/src/breakouts/request.ts +55 -0
  358. package/src/breakouts/utils.ts +57 -0
  359. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  360. package/src/common/collection.ts +9 -7
  361. package/src/common/{config.js → config.ts} +1 -1
  362. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  363. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  364. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  365. package/src/common/errors/{media.js → media.ts} +11 -7
  366. package/src/common/errors/parameter.ts +11 -7
  367. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  368. package/src/common/errors/{permission.js → permission.ts} +10 -6
  369. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  370. package/src/common/errors/{stats.js → stats.ts} +11 -7
  371. package/src/common/errors/{webex-errors.js → webex-errors.ts} +14 -9
  372. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  373. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  374. package/src/common/events/{events.js → events.ts} +5 -1
  375. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  376. package/src/common/events/{util.js → util.ts} +2 -3
  377. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  378. package/src/common/logs/logger-proxy.ts +44 -0
  379. package/src/common/logs/{request.js → request.ts} +22 -9
  380. package/src/common/queue.ts +22 -9
  381. package/src/{config.js → config.ts} +17 -17
  382. package/src/constants.ts +197 -22
  383. package/src/controls-options-manager/constants.ts +5 -0
  384. package/src/controls-options-manager/enums.ts +18 -0
  385. package/src/controls-options-manager/index.ts +278 -0
  386. package/src/controls-options-manager/types.ts +59 -0
  387. package/src/controls-options-manager/util.ts +300 -0
  388. package/src/index.ts +39 -0
  389. package/src/interpretation/README.md +60 -0
  390. package/src/interpretation/collection.ts +19 -0
  391. package/src/interpretation/index.ts +332 -0
  392. package/src/interpretation/siLanguage.ts +18 -0
  393. package/src/locus-info/controlsUtils.ts +222 -0
  394. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  395. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  396. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  397. package/src/locus-info/{index.js → index.ts} +518 -111
  398. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  399. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +65 -17
  400. package/src/locus-info/{parser.js → parser.ts} +271 -98
  401. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  402. package/src/media/index.ts +456 -0
  403. package/src/media/{properties.js → properties.ts} +80 -102
  404. package/src/media/{util.js → util.ts} +2 -2
  405. package/src/mediaQualityMetrics/config.ts +384 -0
  406. package/src/meeting/in-meeting-actions.ts +171 -3
  407. package/src/meeting/index.ts +7070 -0
  408. package/src/meeting/locusMediaRequest.ts +309 -0
  409. package/src/meeting/muteState.ts +450 -0
  410. package/src/meeting/{request.js → request.ts} +354 -214
  411. package/src/meeting/request.type.ts +13 -0
  412. package/src/meeting/{state.js → state.ts} +50 -35
  413. package/src/meeting/util.ts +615 -0
  414. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  415. package/src/meeting-info/index.ts +183 -0
  416. package/src/meeting-info/meeting-info-v2.ts +407 -0
  417. package/src/meeting-info/{request.js → request.ts} +14 -4
  418. package/src/meeting-info/{util.js → util.ts} +60 -51
  419. package/src/meeting-info/{utilv2.js → utilv2.ts} +77 -60
  420. package/src/meetings/{collection.js → collection.ts} +26 -3
  421. package/src/meetings/index.ts +1467 -0
  422. package/src/meetings/meetings.types.ts +12 -0
  423. package/src/meetings/{request.js → request.ts} +34 -25
  424. package/src/meetings/{util.js → util.ts} +137 -36
  425. package/src/member/{index.js → index.ts} +151 -56
  426. package/src/member/types.ts +38 -0
  427. package/src/member/util.ts +383 -0
  428. package/src/members/{collection.js → collection.ts} +10 -2
  429. package/src/members/{index.js → index.ts} +323 -145
  430. package/src/members/request.ts +255 -0
  431. package/src/members/types.ts +28 -0
  432. package/src/members/util.ts +339 -0
  433. package/src/metrics/{constants.js → constants.ts} +2 -6
  434. package/src/metrics/index.ts +73 -0
  435. package/src/multistream/mediaRequestManager.ts +337 -61
  436. package/src/multistream/receiveSlot.ts +69 -26
  437. package/src/multistream/receiveSlotManager.ts +66 -42
  438. package/src/multistream/remoteMedia.ts +40 -5
  439. package/src/multistream/remoteMediaGroup.ts +63 -3
  440. package/src/multistream/remoteMediaManager.ts +263 -66
  441. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  442. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  443. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  444. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  445. package/src/reachability/{index.js → index.ts} +157 -94
  446. package/src/reachability/request.ts +46 -35
  447. package/src/reactions/constants.ts +4 -0
  448. package/src/reactions/reactions.ts +104 -0
  449. package/src/reactions/reactions.type.ts +62 -0
  450. package/src/reconnection-manager/{index.js → index.ts} +254 -136
  451. package/src/recording-controller/enums.ts +8 -0
  452. package/src/recording-controller/index.ts +333 -0
  453. package/src/recording-controller/util.ts +75 -0
  454. package/src/roap/{index.js → index.ts} +86 -78
  455. package/src/roap/request.ts +163 -0
  456. package/src/roap/turnDiscovery.ts +111 -49
  457. package/src/rtcMetrics/constants.ts +3 -0
  458. package/src/rtcMetrics/index.ts +96 -0
  459. package/src/statsAnalyzer/global.ts +37 -0
  460. package/src/statsAnalyzer/index.ts +1272 -0
  461. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  462. package/src/transcription/{index.js → index.ts} +46 -39
  463. package/test/integration/spec/converged-space-meetings.js +233 -0
  464. package/test/integration/spec/journey.js +804 -526
  465. package/test/integration/spec/space-meeting.js +391 -204
  466. package/test/integration/spec/transcription.js +7 -8
  467. package/test/unit/spec/annotation/index.ts +418 -0
  468. package/test/unit/spec/breakouts/breakout.ts +237 -0
  469. package/test/unit/spec/breakouts/collection.ts +15 -0
  470. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  471. package/test/unit/spec/breakouts/events.ts +89 -0
  472. package/test/unit/spec/breakouts/index.ts +1790 -0
  473. package/test/unit/spec/breakouts/request.ts +104 -0
  474. package/test/unit/spec/breakouts/utils.js +72 -0
  475. package/test/unit/spec/common/browser-detection.js +9 -28
  476. package/test/unit/spec/common/queue.js +31 -2
  477. package/test/unit/spec/controls-options-manager/index.js +287 -0
  478. package/test/unit/spec/controls-options-manager/util.js +582 -0
  479. package/test/unit/spec/fixture/locus.js +93 -90
  480. package/test/unit/spec/interpretation/collection.ts +15 -0
  481. package/test/unit/spec/interpretation/index.ts +589 -0
  482. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  483. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  484. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  485. package/test/unit/spec/locus-info/index.js +1176 -18
  486. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  487. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  488. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  489. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  490. package/test/unit/spec/locus-info/parser.js +65 -31
  491. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  492. package/test/unit/spec/locus-info/selfUtils.js +296 -12
  493. package/test/unit/spec/media/index.ts +162 -68
  494. package/test/unit/spec/media/properties.ts +9 -9
  495. package/test/unit/spec/meeting/in-meeting-actions.ts +82 -3
  496. package/test/unit/spec/meeting/index.js +4569 -1773
  497. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  498. package/test/unit/spec/meeting/muteState.js +382 -211
  499. package/test/unit/spec/meeting/request.js +444 -78
  500. package/test/unit/spec/meeting/utils.js +517 -192
  501. package/test/unit/spec/meeting-info/index.js +181 -0
  502. package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
  503. package/test/unit/spec/meeting-info/request.js +7 -9
  504. package/test/unit/spec/meeting-info/util.js +11 -12
  505. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  506. package/test/unit/spec/meetings/collection.js +15 -1
  507. package/test/unit/spec/meetings/index.js +1254 -330
  508. package/test/unit/spec/meetings/utils.js +220 -14
  509. package/test/unit/spec/member/index.js +58 -5
  510. package/test/unit/spec/member/util.js +494 -26
  511. package/test/unit/spec/members/index.js +423 -55
  512. package/test/unit/spec/members/request.js +228 -40
  513. package/test/unit/spec/members/utils.js +191 -4
  514. package/test/unit/spec/metrics/index.js +12 -66
  515. package/test/unit/spec/multistream/mediaRequestManager.ts +1013 -106
  516. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  517. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  518. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  519. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  520. package/test/unit/spec/multistream/remoteMediaManager.ts +730 -65
  521. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  522. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  523. package/test/unit/spec/reachability/index.ts +176 -27
  524. package/test/unit/spec/reachability/request.js +66 -0
  525. package/test/unit/spec/reconnection-manager/index.js +155 -9
  526. package/test/unit/spec/recording-controller/index.js +307 -0
  527. package/test/unit/spec/recording-controller/util.js +229 -0
  528. package/test/unit/spec/roap/index.ts +28 -52
  529. package/test/unit/spec/roap/request.ts +225 -0
  530. package/test/unit/spec/roap/turnDiscovery.ts +92 -50
  531. package/test/unit/spec/rtcMetrics/index.ts +60 -0
  532. package/test/unit/spec/stats-analyzer/index.js +116 -60
  533. package/test/utils/cmr.js +44 -42
  534. package/test/utils/constants.js +9 -0
  535. package/test/utils/integrationTestUtils.js +46 -0
  536. package/test/utils/testUtils.js +63 -99
  537. package/test/utils/webex-config.js +22 -18
  538. package/test/utils/webex-test-users.js +57 -50
  539. package/tsconfig.json +6 -0
  540. package/dist/media/internal-media-core-wrapper.js +0 -22
  541. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  542. package/dist/meeting/effectsState.js +0 -327
  543. package/dist/meeting/effectsState.js.map +0 -1
  544. package/dist/metrics/config.js +0 -301
  545. package/dist/metrics/config.js.map +0 -1
  546. package/dist/multistream/multistreamMedia.js +0 -116
  547. package/dist/multistream/multistreamMedia.js.map +0 -1
  548. package/dist/peer-connection-manager/util.js +0 -124
  549. package/dist/peer-connection-manager/util.js.map +0 -1
  550. package/src/common/logs/logger-proxy.js +0 -33
  551. package/src/index.js +0 -15
  552. package/src/locus-info/controlsUtils.js +0 -102
  553. package/src/media/index.js +0 -459
  554. package/src/media/internal-media-core-wrapper.ts +0 -9
  555. package/src/mediaQualityMetrics/config.js +0 -382
  556. package/src/meeting/effectsState.js +0 -205
  557. package/src/meeting/index.js +0 -6284
  558. package/src/meeting/muteState.js +0 -318
  559. package/src/meeting/util.js +0 -506
  560. package/src/meeting-info/index.js +0 -131
  561. package/src/meeting-info/meeting-info-v2.js +0 -255
  562. package/src/meetings/index.js +0 -1015
  563. package/src/member/util.js +0 -254
  564. package/src/members/request.js +0 -131
  565. package/src/members/util.js +0 -258
  566. package/src/metrics/config.js +0 -324
  567. package/src/metrics/index.js +0 -530
  568. package/src/multistream/multistreamMedia.ts +0 -92
  569. package/src/peer-connection-manager/util.ts +0 -117
  570. package/src/roap/request.js +0 -127
  571. package/src/statsAnalyzer/global.js +0 -133
  572. package/src/statsAnalyzer/index.js +0 -1006
  573. package/src/statsAnalyzer/mqaUtil.js +0 -173
  574. package/test/unit/spec/meeting/effectsState.js +0 -291
  575. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  576. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["MeetingRequest","attrs","options","changeVideoLayoutDebounced","changeVideoLayout","leading","trailing","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","LoggerProxy","logger","info","url","body","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","error","concat","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","request","method","HTTP_VERBS","POST","uri","captchaRefreshUrl","captchaId","catch","err","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","reject","phoneUrl","selfId","LEAVE","PUT","ALERT","CONTROLS","record","recording","paused","PATCH","lock","locked","DECLINE","reason","MEDIA","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","END","keepAliveUrl","StatelessWebexPlugin"],"sources":["request.js"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\nimport {StatelessWebexPlugin} from '@webex/webex-core';\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_\n} from '../constants';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n constructor(attrs, options) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {leading: true, trailing: true});\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 * @returns {Promise}\n */\n async joinMeeting(options) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding\n } = options;\n\n LoggerProxy.logger.info(\n 'Meeting:request#joinMeeting --> Joining a meeting',\n correlationId\n );\n\n let url = '';\n\n const body = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\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 }\n };\n\n if (this.webex.meetings.clientRegion) {\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\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 }\n else if (inviteeAddress || meetingNumber) {\n try {\n await this.webex.internal.services.waitForCatalog('postauth');\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`);\n throw (e);\n }\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) {\n body.localMedias = roapMessage.localMedias;\n }\n\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 refreshCaptcha({\n captchaRefreshUrl,\n captchaId\n }) {\n const body = {\n captchaId\n };\n\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.localUrl 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 dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId\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 return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`);\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.localUrl 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 dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId\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 return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolen} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`);\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolen} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`);\n\n return 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 disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId\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 return this.request({\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 * Make a network request 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 {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#leaveMeeting --> Leaving a meeting',\n correlationId\n );\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url\n },\n usingResource: resourceId || null,\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\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) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n correlationId: options.correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\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.id\n * @returns {Promise}\n */\n recordMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n record: {\n recording: options.recording,\n paused: options.paused\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\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.request({\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) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n ...(options.reason && {reason: options.reason})\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\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.localMedias local sdps\n * @param {Boolean} options.preferTranscoding false for multistream (Homer), true for transcoded media (Edonus)\n * @returns {Promise}\n */\n remoteAudioVideoToggle(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n return this.request({\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 * @returns {Promise}\n */\n changeMeetingFloor(options) {\n let floorReq = {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 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 = {\n floor: floorReq,\n resourceUrl: options.resourceUrl\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\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}) {\n return this.request({\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 // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(main)}`));\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(content)}`));\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 = (renderInfoMain || renderInfoContent) ?\n {\n renderInfo:\n {\n main: renderInfoMain,\n content: renderInfoContent\n }\n } : undefined;\n\n return this.request({\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({\n locusUrl,\n }) {\n const uri = `${locusUrl}/${END}`;\n\n return this.request({\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({\n keepAliveUrl,\n }) {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["MeetingRequest","attrs","options","meeting","otherAttrs","webex","boundedStorage","get","REACHABILITY","namespace","localStorageJoinCookie","catch","joinCookieRaw","joinCookie","JSON","parse","LoggerProxy","logger","error","locusDeltaRequest","MeetingUtil","generateLocusDeltaRequest","changeVideoLayoutDebounced","changeVideoLayout","leading","trailing","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","info","url","getJoinCookie","body","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","push","BREAKOUTS","BREAKOUTS_SUPPORTED","ANNOTATION","ANNOTATION_ON_SHARE_SUPPORTED","length","clientRegion","countryCode","regionCode","undefined","PARTICIPANT","internal","services","waitForCatalog","LOCI","CALL","invitee","address","concat","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","request","method","HTTP_VERBS","POST","uri","captchaRefreshUrl","captchaId","err","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","GET","reject","phoneUrl","selfId","LEAVE","PUT","ALERT","CONTROLS","lock","locked","PATCH","DECLINE","reason","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","annotationInfo","annotation","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","END","keepAliveUrl","reactionChannelUrl","reaction","participantId","sender","enable","requestingParticipantId","reactions","enabled","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';\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, 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\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\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 * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: 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 breakoutsSupported: boolean;\n locale?: string;\n deviceCapabilities?: Array<string>;\n liveAnnotationSupported: boolean;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding,\n breakoutsSupported,\n locale,\n deviceCapabilities = [],\n liveAnnotationSupported,\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 },\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 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.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\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 // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${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) {\n body.localMedias = roapMessage.localMedias;\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 return 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 * Make a network request 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 {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 * 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 * @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 }\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?.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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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ //# sourceMappingURL=request.type.js.map
@@ -0,0 +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,27 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _javascriptStateMachine = _interopRequireDefault(require("javascript-state-machine"));
14
-
15
10
  var _history = _interopRequireDefault(require("javascript-state-machine/lib/history"));
16
-
17
11
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
18
-
19
12
  var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
20
-
21
13
  var _constants = require("../constants");
22
-
23
14
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
24
-
25
15
  // TODO: ensure that meeting can be destroyed when in an error state
26
16
  var MeetingStateMachine = {
27
17
  /**
@@ -33,46 +23,47 @@ var MeetingStateMachine = {
33
23
  if (!meetingRef) {
34
24
  throw new _parameter.default('You must initialize the meeting state machine with a meeting reference.');
35
25
  }
36
-
37
26
  return new _javascriptStateMachine.default({
38
27
  init: _constants.MEETING_STATE_MACHINE.STATES.IDLE,
39
- transitions: [// when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state
28
+ transitions: [
29
+ // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state
40
30
  {
41
31
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.RING,
42
32
  from: [_constants.MEETING_STATE_MACHINE.STATES.IDLE, _constants.MEETING_STATE_MACHINE.STATES.ERROR, _constants.MEETING_STATE_MACHINE.STATES.JOINED],
43
33
  to: _constants.MEETING_STATE_MACHINE.STATES.RINGING
44
- }, // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,
34
+ },
35
+ // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,
45
36
  // others will go straight to JOINED with this transition
46
37
  {
47
38
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.JOIN,
48
39
  from: [_constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.IDLE, _constants.MEETING_STATE_MACHINE.STATES.RINGING, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
49
40
  to: _constants.MEETING_STATE_MACHINE.STATES.JOINED
50
- }, // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED
41
+ },
42
+ // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED
51
43
  {
52
44
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,
53
45
  from: [_constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
54
-
55
46
  /**
56
- * @param {Object} remote
57
- * @param {Boolean} remote.remoteAnswered
58
- * @param {Boolean} remote.remoteDeclined
59
- * @returns {String}
60
- */
47
+ * @param {Object} remote
48
+ * @param {Boolean} remote.remoteAnswered
49
+ * @param {Boolean} remote.remoteDeclined
50
+ * @returns {String}
51
+ */
61
52
  to: function to(remote) {
62
53
  // other user answered the call
63
54
  if (remote.remoteAnswered) {
64
55
  return _constants.MEETING_STATE_MACHINE.STATES.ANSWERED;
65
- } // other user declined the call
66
-
67
-
56
+ }
57
+ // other user declined the call
68
58
  if (remote.remoteDeclined) {
69
59
  return _constants.MEETING_STATE_MACHINE.STATES.DECLINED;
70
- } // default
71
-
60
+ }
72
61
 
62
+ // default
73
63
  return _constants.MEETING_STATE_MACHINE.STATES.ERROR;
74
64
  }
75
- }, // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state
65
+ },
66
+ // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state
76
67
  {
77
68
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,
78
69
  from: [_constants.MEETING_STATE_MACHINE.STATES.IDLE, _constants.MEETING_STATE_MACHINE.STATES.RINGING, _constants.MEETING_STATE_MACHINE.STATES.JOINED, _constants.MEETING_STATE_MACHINE.STATES.ANSWERED, _constants.MEETING_STATE_MACHINE.STATES.DECLINED, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
@@ -85,12 +76,14 @@ var MeetingStateMachine = {
85
76
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,
86
77
  from: [_constants.MEETING_STATE_MACHINE.STATES.RINGING, _constants.MEETING_STATE_MACHINE.STATES.ERROR],
87
78
  to: _constants.MEETING_STATE_MACHINE.STATES.ENDED
88
- }, // transition from ANY state to ERROR state
79
+ },
80
+ // transition from ANY state to ERROR state
89
81
  {
90
82
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.FAIL,
91
83
  from: '*',
92
84
  to: _constants.MEETING_STATE_MACHINE.STATES.ERROR
93
- }, // fail safe, transition from ANY state to IDLE state
85
+ },
86
+ // fail safe, transition from ANY state to IDLE state
94
87
  {
95
88
  name: _constants.MEETING_STATE_MACHINE.TRANSITIONS.RESET,
96
89
  from: '*',
@@ -120,7 +113,6 @@ var MeetingStateMachine = {
120
113
  });
121
114
  }
122
115
  },
123
-
124
116
  /**
125
117
  * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings
126
118
  * @param {Object} transition -- FiniteStateMachine automatically passed, not used
@@ -138,7 +130,6 @@ var MeetingStateMachine = {
138
130
  });
139
131
  }
140
132
  },
141
-
142
133
  /**
143
134
  * handle the entry to error state
144
135
  * @param {Object} transition
@@ -148,7 +139,6 @@ var MeetingStateMachine = {
148
139
  onEnterError: function onEnterError(transition, error) {
149
140
  _loggerProxy.default.logger.error("Meeting:state#onEnterError --> state->onEnterError#meeting.id: ".concat(this.meeting.id, " | Transition '").concat(transition === null || transition === void 0 ? void 0 : transition.transition, "' : ").concat(transition === null || transition === void 0 ? void 0 : transition.from, " -> ").concat(transition === null || transition === void 0 ? void 0 : transition.to, ", with error ").concat(error, ". Last states: ").concat(this.history));
150
141
  },
151
-
152
142
  /**
153
143
  * After ANY transition occurs, we want to know what state the meeting moved to for debugging
154
144
  * @param {Object} transition
@@ -1 +1 @@
1
- {"version":3,"names":["MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","history","onAfterTransition","log","plugins","StateMachineHistory","max"],"sources":["state.js"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\n// TODO: ensure that meeting can be destroyed when in an error state\nconst MeetingStateMachine = {\n /**\n * Initializes the StateMachine for the meeting\n * @param {Meeting} meetingRef A reference to a meeting instance\n * @returns {StateMachine}\n */\n create(meetingRef) {\n if (!meetingRef) {\n throw new ParameterError('You must initialize the meeting state machine with a meeting reference.');\n }\n\n return new StateMachine({\n init: MEETING_STATE_MACHINE.STATES.IDLE,\n transitions: [\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\n from: [MEETING_STATE_MACHINE.STATES.IDLE, MEETING_STATE_MACHINE.STATES.ERROR, MEETING_STATE_MACHINE.STATES.JOINED],\n to: MEETING_STATE_MACHINE.STATES.RINGING\n },\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\n // others will go straight to JOINED with this transition\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.IDLE, MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.JOINED\n },\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\n /**\n * @param {Object} remote\n * @param {Boolean} remote.remoteAnswered\n * @param {Boolean} remote.remoteDeclined\n * @returns {String}\n */\n to(remote) {\n // other user answered the call\n if (remote.remoteAnswered) {\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\n }\n // other user declined the call\n if (remote.remoteDeclined) {\n return MEETING_STATE_MACHINE.STATES.DECLINED;\n }\n\n // default\n return MEETING_STATE_MACHINE.STATES.ERROR;\n }\n },\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.ENDED\n },\n // transition from ANY state to ERROR state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.ERROR\n },\n // fail safe, transition from ANY state to IDLE state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.IDLE\n }\n ],\n data: {\n /**\n * The meeting instance to execute all state changes on\n */\n meeting: meetingRef\n },\n methods: {\n /**\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\n * @returns {Boolean}\n */\n onRemote(transition, stop) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRemote'\n },\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\n {\n id: this.meeting.id,\n type: stop\n }\n );\n }\n },\n /**\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\n * @returns {Boolean}\n */\n onRing(transition, type) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRing'\n },\n EVENT_TRIGGERS.MEETING_RINGING,\n {\n type,\n id: this.meeting.id\n }\n );\n }\n },\n /**\n * handle the entry to error state\n * @param {Object} transition\n * @param {Error} error\n * @returns {Boolean}\n */\n onEnterError(transition, error) {\n LoggerProxy.logger.error(`Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`);\n },\n /**\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\n * @param {Object} transition\n * @returns {Boolean}\n */\n onAfterTransition(transition) {\n LoggerProxy.logger.log(`Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`);\n }\n },\n // track the last 25 states entered\n plugins: [new StateMachineHistory({max: 25})]\n });\n }\n};\n\nexport default MeetingStateMachine;\n"],"mappings":"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"}
1
+ {"version":3,"names":["MeetingStateMachine","create","meetingRef","ParameterError","StateMachine","init","MEETING_STATE_MACHINE","STATES","IDLE","transitions","name","TRANSITIONS","RING","from","ERROR","JOINED","to","RINGING","JOIN","REMOTE","remote","remoteAnswered","ANSWERED","remoteDeclined","DECLINED","LEAVE","ENDED","END","DECLINE","FAIL","RESET","data","meeting","methods","onRemote","transition","stop","Trigger","trigger","file","function","EVENT_TRIGGERS","MEETING_RINGING_STOP","id","type","onRing","MEETING_RINGING","onEnterError","error","LoggerProxy","logger","history","onAfterTransition","log","plugins","StateMachineHistory","max"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\nimport StateMachineHistory from 'javascript-state-machine/lib/history';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport {MEETING_STATE_MACHINE, EVENT_TRIGGERS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\n// TODO: ensure that meeting can be destroyed when in an error state\nconst MeetingStateMachine = {\n /**\n * Initializes the StateMachine for the meeting\n * @param {Meeting} meetingRef A reference to a meeting instance\n * @returns {StateMachine}\n */\n create(meetingRef: any) {\n if (!meetingRef) {\n throw new ParameterError(\n 'You must initialize the meeting state machine with a meeting reference.'\n );\n }\n\n return new StateMachine({\n init: MEETING_STATE_MACHINE.STATES.IDLE,\n transitions: [\n // when ringing a meeting, it must be first IDLE, because all other states are invalid, it transitions to the RINGING state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RING,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.ERROR,\n MEETING_STATE_MACHINE.STATES.JOINED,\n ],\n to: MEETING_STATE_MACHINE.STATES.RINGING,\n },\n // when joining a meeting, it must be from the RINGING or IDLE state, transitions to JOINED state, 1:1 will go to RINGING,\n // others will go straight to JOINED with this transition\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.JOIN,\n from: [\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.JOINED,\n },\n // signify that ringing has stopped and somebody else answered, move state to DECLINED, ANSWERED\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.REMOTE,\n from: [MEETING_STATE_MACHINE.STATES.JOINED, MEETING_STATE_MACHINE.STATES.ERROR],\n /**\n * @param {Object} remote\n * @param {Boolean} remote.remoteAnswered\n * @param {Boolean} remote.remoteDeclined\n * @returns {String}\n */\n to(remote: {remoteAnswered: boolean; remoteDeclined: boolean}) {\n // other user answered the call\n if (remote.remoteAnswered) {\n return MEETING_STATE_MACHINE.STATES.ANSWERED;\n }\n // other user declined the call\n if (remote.remoteDeclined) {\n return MEETING_STATE_MACHINE.STATES.DECLINED;\n }\n\n // default\n return MEETING_STATE_MACHINE.STATES.ERROR;\n },\n },\n // when leaving a meeting it must be from either the RINGING, JOINED, or ERROR states, and transitions it to the ENDED state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.LEAVE,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.END,\n from: [\n MEETING_STATE_MACHINE.STATES.IDLE,\n MEETING_STATE_MACHINE.STATES.RINGING,\n MEETING_STATE_MACHINE.STATES.JOINED,\n MEETING_STATE_MACHINE.STATES.ANSWERED,\n MEETING_STATE_MACHINE.STATES.DECLINED,\n MEETING_STATE_MACHINE.STATES.ERROR,\n ],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.DECLINE,\n from: [MEETING_STATE_MACHINE.STATES.RINGING, MEETING_STATE_MACHINE.STATES.ERROR],\n to: MEETING_STATE_MACHINE.STATES.ENDED,\n },\n // transition from ANY state to ERROR state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.FAIL,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.ERROR,\n },\n // fail safe, transition from ANY state to IDLE state\n {\n name: MEETING_STATE_MACHINE.TRANSITIONS.RESET,\n from: '*',\n to: MEETING_STATE_MACHINE.STATES.IDLE,\n },\n ],\n data: {\n /**\n * The meeting instance to execute all state changes on\n */\n meeting: meetingRef,\n },\n methods: {\n /**\n * Ring stop transition, to end the ring event for the meeting, and transition the state to ANSWERED OR DECLINED, only for outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {Object} stop -- {remoteAnswered: {Boolean}, remoteDeclined: {Boolean}}\n * @returns {Boolean}\n */\n onRemote(transition: object, stop: object) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRemote',\n },\n EVENT_TRIGGERS.MEETING_RINGING_STOP,\n {\n id: this.meeting.id,\n type: stop,\n }\n );\n }\n },\n /**\n * Ring transition, to cause the ring event for the meeting, and transition the state to RINGING, for both incoming, and outgoing meetings\n * @param {Object} transition -- FiniteStateMachine automatically passed, not used\n * @param {String} type -- incoming call === INCOMING / or other meetings have a ring type of JOIN\n * @returns {Boolean}\n */\n onRing(transition: object, type: string) {\n if (this.meeting) {\n Trigger.trigger(\n this.meeting,\n {\n file: 'meeting/state',\n function: 'onRing',\n },\n EVENT_TRIGGERS.MEETING_RINGING,\n {\n type,\n id: this.meeting.id,\n }\n );\n }\n },\n /**\n * handle the entry to error state\n * @param {Object} transition\n * @param {Error} error\n * @returns {Boolean}\n */\n onEnterError(transition: any, error: Error) {\n LoggerProxy.logger.error(\n `Meeting:state#onEnterError --> state->onEnterError#meeting.id: ${this.meeting.id} | Transition '${transition?.transition}' : ${transition?.from} -> ${transition?.to}, with error ${error}. Last states: ${this.history}`\n );\n },\n /**\n * After ANY transition occurs, we want to know what state the meeting moved to for debugging\n * @param {Object} transition\n * @returns {Boolean}\n */\n onAfterTransition(transition: any) {\n LoggerProxy.logger.log(\n `Meeting:state#onAfterTransition --> state->onAfterTransition#meeting.id: ${this.meeting.id} | Transition '${transition.transition}' : ${transition.from} -> ${transition.to} executed. Last states: ${this.history}`\n );\n },\n },\n // track the last 25 states entered\n plugins: [new StateMachineHistory({max: 25})],\n });\n },\n};\n\nexport default MeetingStateMachine;\n"],"mappings":"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"}