@webex/plugin-meetings 3.0.0-beta.9 → 3.0.0-beta.91

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 (507) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.js +48 -0
  6. package/dist/annotation/constants.js.map +1 -0
  7. package/dist/annotation/index.js +325 -0
  8. package/dist/annotation/index.js.map +1 -0
  9. package/dist/breakouts/breakout.js +180 -0
  10. package/dist/breakouts/breakout.js.map +1 -0
  11. package/dist/breakouts/collection.js +23 -0
  12. package/dist/breakouts/collection.js.map +1 -0
  13. package/dist/breakouts/edit-lock-error.js +52 -0
  14. package/dist/breakouts/edit-lock-error.js.map +1 -0
  15. package/dist/breakouts/index.js +868 -0
  16. package/dist/breakouts/index.js.map +1 -0
  17. package/dist/breakouts/request.js +78 -0
  18. package/dist/breakouts/request.js.map +1 -0
  19. package/dist/breakouts/utils.js +67 -0
  20. package/dist/breakouts/utils.js.map +1 -0
  21. package/dist/common/browser-detection.js +1 -20
  22. package/dist/common/browser-detection.js.map +1 -1
  23. package/dist/common/collection.js +5 -20
  24. package/dist/common/collection.js.map +1 -1
  25. package/dist/common/config.js +0 -7
  26. package/dist/common/config.js.map +1 -1
  27. package/dist/common/errors/captcha-error.js +5 -26
  28. package/dist/common/errors/captcha-error.js.map +1 -1
  29. package/dist/common/errors/intent-to-join.js +5 -26
  30. package/dist/common/errors/intent-to-join.js.map +1 -1
  31. package/dist/common/errors/join-meeting.js +6 -27
  32. package/dist/common/errors/join-meeting.js.map +1 -1
  33. package/dist/common/errors/media.js +5 -26
  34. package/dist/common/errors/media.js.map +1 -1
  35. package/dist/common/errors/parameter.js +5 -33
  36. package/dist/common/errors/parameter.js.map +1 -1
  37. package/dist/common/errors/password-error.js +5 -26
  38. package/dist/common/errors/password-error.js.map +1 -1
  39. package/dist/common/errors/permission.js +4 -25
  40. package/dist/common/errors/permission.js.map +1 -1
  41. package/dist/common/errors/reconnection-in-progress.js +0 -17
  42. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  43. package/dist/common/errors/reconnection.js +5 -26
  44. package/dist/common/errors/reconnection.js.map +1 -1
  45. package/dist/common/errors/stats.js +5 -26
  46. package/dist/common/errors/stats.js.map +1 -1
  47. package/dist/common/errors/webex-errors.js +6 -41
  48. package/dist/common/errors/webex-errors.js.map +1 -1
  49. package/dist/common/errors/webex-meetings-error.js +1 -24
  50. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  51. package/dist/common/events/events-scope.js +0 -22
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.js +0 -23
  54. package/dist/common/events/events.js.map +1 -1
  55. package/dist/common/events/trigger-proxy.js +0 -12
  56. package/dist/common/events/trigger-proxy.js.map +1 -1
  57. package/dist/common/events/util.js +0 -15
  58. package/dist/common/events/util.js.map +1 -1
  59. package/dist/common/logs/logger-config.js +0 -4
  60. package/dist/common/logs/logger-config.js.map +1 -1
  61. package/dist/common/logs/logger-proxy.js +1 -8
  62. package/dist/common/logs/logger-proxy.js.map +1 -1
  63. package/dist/common/logs/request.js +35 -61
  64. package/dist/common/logs/request.js.map +1 -1
  65. package/dist/common/queue.js +4 -14
  66. package/dist/common/queue.js.map +1 -1
  67. package/dist/config.js +7 -6
  68. package/dist/config.js.map +1 -1
  69. package/dist/constants.js +169 -52
  70. package/dist/constants.js.map +1 -1
  71. package/dist/controls-options-manager/constants.js +14 -0
  72. package/dist/controls-options-manager/constants.js.map +1 -0
  73. package/dist/controls-options-manager/enums.js +25 -0
  74. package/dist/controls-options-manager/enums.js.map +1 -0
  75. package/dist/controls-options-manager/index.js +292 -0
  76. package/dist/controls-options-manager/index.js.map +1 -0
  77. package/dist/controls-options-manager/types.js +7 -0
  78. package/dist/controls-options-manager/types.js.map +1 -0
  79. package/dist/controls-options-manager/util.js +250 -0
  80. package/dist/controls-options-manager/util.js.map +1 -0
  81. package/dist/index.js +72 -17
  82. package/dist/index.js.map +1 -1
  83. package/dist/locus-info/controlsUtils.js +56 -29
  84. package/dist/locus-info/controlsUtils.js.map +1 -1
  85. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  86. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  87. package/dist/locus-info/fullState.js +0 -15
  88. package/dist/locus-info/fullState.js.map +1 -1
  89. package/dist/locus-info/hostUtils.js +4 -12
  90. package/dist/locus-info/hostUtils.js.map +1 -1
  91. package/dist/locus-info/index.js +325 -208
  92. package/dist/locus-info/index.js.map +1 -1
  93. package/dist/locus-info/infoUtils.js +3 -37
  94. package/dist/locus-info/infoUtils.js.map +1 -1
  95. package/dist/locus-info/mediaSharesUtils.js +12 -38
  96. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  97. package/dist/locus-info/parser.js +88 -123
  98. package/dist/locus-info/parser.js.map +1 -1
  99. package/dist/locus-info/selfUtils.js +87 -91
  100. package/dist/locus-info/selfUtils.js.map +1 -1
  101. package/dist/media/index.js +62 -147
  102. package/dist/media/index.js.map +1 -1
  103. package/dist/media/properties.js +71 -117
  104. package/dist/media/properties.js.map +1 -1
  105. package/dist/media/util.js +2 -9
  106. package/dist/media/util.js.map +1 -1
  107. package/dist/mediaQualityMetrics/config.js +505 -495
  108. package/dist/mediaQualityMetrics/config.js.map +1 -1
  109. package/dist/meeting/in-meeting-actions.js +35 -14
  110. package/dist/meeting/in-meeting-actions.js.map +1 -1
  111. package/dist/meeting/index.js +2261 -2269
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.js +252 -113
  114. package/dist/meeting/muteState.js.map +1 -1
  115. package/dist/meeting/request.js +318 -283
  116. package/dist/meeting/request.js.map +1 -1
  117. package/dist/meeting/request.type.js +7 -0
  118. package/dist/meeting/request.type.js.map +1 -0
  119. package/dist/meeting/state.js +21 -31
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.js +69 -217
  122. package/dist/meeting/util.js.map +1 -1
  123. package/dist/meeting-info/collection.js +3 -25
  124. package/dist/meeting-info/collection.js.map +1 -1
  125. package/dist/meeting-info/index.js +10 -33
  126. package/dist/meeting-info/index.js.map +1 -1
  127. package/dist/meeting-info/meeting-info-v2.js +258 -281
  128. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  129. package/dist/meeting-info/request.js +1 -16
  130. package/dist/meeting-info/request.js.map +1 -1
  131. package/dist/meeting-info/util.js +98 -183
  132. package/dist/meeting-info/util.js.map +1 -1
  133. package/dist/meeting-info/utilv2.js +154 -232
  134. package/dist/meeting-info/utilv2.js.map +1 -1
  135. package/dist/meetings/collection.js +24 -20
  136. package/dist/meetings/collection.js.map +1 -1
  137. package/dist/meetings/index.js +573 -587
  138. package/dist/meetings/index.js.map +1 -1
  139. package/dist/meetings/request.js +23 -42
  140. package/dist/meetings/request.js.map +1 -1
  141. package/dist/meetings/util.js +164 -155
  142. package/dist/meetings/util.js.map +1 -1
  143. package/dist/member/index.js +80 -88
  144. package/dist/member/index.js.map +1 -1
  145. package/dist/member/types.js +15 -0
  146. package/dist/member/types.js.map +1 -0
  147. package/dist/member/util.js +90 -69
  148. package/dist/member/util.js.map +1 -1
  149. package/dist/members/collection.js +12 -12
  150. package/dist/members/collection.js.map +1 -1
  151. package/dist/members/index.js +162 -204
  152. package/dist/members/index.js.map +1 -1
  153. package/dist/members/request.js +58 -53
  154. package/dist/members/request.js.map +1 -1
  155. package/dist/members/types.js +15 -0
  156. package/dist/members/types.js.map +1 -0
  157. package/dist/members/util.js +107 -44
  158. package/dist/members/util.js.map +1 -1
  159. package/dist/metrics/config.js +4 -14
  160. package/dist/metrics/config.js.map +1 -1
  161. package/dist/metrics/constants.js +3 -7
  162. package/dist/metrics/constants.js.map +1 -1
  163. package/dist/metrics/index.js +56 -159
  164. package/dist/metrics/index.js.map +1 -1
  165. package/dist/multistream/mediaRequestManager.js +167 -50
  166. package/dist/multistream/mediaRequestManager.js.map +1 -1
  167. package/dist/multistream/receiveSlot.js +58 -65
  168. package/dist/multistream/receiveSlot.js.map +1 -1
  169. package/dist/multistream/receiveSlotManager.js +74 -93
  170. package/dist/multistream/receiveSlotManager.js.map +1 -1
  171. package/dist/multistream/remoteMedia.js +55 -74
  172. package/dist/multistream/remoteMedia.js.map +1 -1
  173. package/dist/multistream/remoteMediaGroup.js +6 -40
  174. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  175. package/dist/multistream/remoteMediaManager.js +466 -442
  176. package/dist/multistream/remoteMediaManager.js.map +1 -1
  177. package/dist/networkQualityMonitor/index.js +32 -59
  178. package/dist/networkQualityMonitor/index.js.map +1 -1
  179. package/dist/personal-meeting-room/index.js +10 -45
  180. package/dist/personal-meeting-room/index.js.map +1 -1
  181. package/dist/personal-meeting-room/request.js +2 -33
  182. package/dist/personal-meeting-room/request.js.map +1 -1
  183. package/dist/personal-meeting-room/util.js +0 -13
  184. package/dist/personal-meeting-room/util.js.map +1 -1
  185. package/dist/reachability/index.js +190 -199
  186. package/dist/reachability/index.js.map +1 -1
  187. package/dist/reachability/request.js +14 -23
  188. package/dist/reachability/request.js.map +1 -1
  189. package/dist/reactions/constants.js +13 -0
  190. package/dist/reactions/constants.js.map +1 -0
  191. package/dist/reactions/reactions.js +109 -0
  192. package/dist/reactions/reactions.js.map +1 -0
  193. package/dist/reactions/reactions.type.js +36 -0
  194. package/dist/reactions/reactions.type.js.map +1 -0
  195. package/dist/reconnection-manager/index.js +326 -465
  196. package/dist/reconnection-manager/index.js.map +1 -1
  197. package/dist/recording-controller/enums.js +17 -0
  198. package/dist/recording-controller/enums.js.map +1 -0
  199. package/dist/recording-controller/index.js +343 -0
  200. package/dist/recording-controller/index.js.map +1 -0
  201. package/dist/recording-controller/util.js +63 -0
  202. package/dist/recording-controller/util.js.map +1 -0
  203. package/dist/roap/index.js +38 -67
  204. package/dist/roap/index.js.map +1 -1
  205. package/dist/roap/request.js +143 -134
  206. package/dist/roap/request.js.map +1 -1
  207. package/dist/roap/turnDiscovery.js +149 -101
  208. package/dist/roap/turnDiscovery.js.map +1 -1
  209. package/dist/statsAnalyzer/global.js +1 -95
  210. package/dist/statsAnalyzer/global.js.map +1 -1
  211. package/dist/statsAnalyzer/index.js +369 -461
  212. package/dist/statsAnalyzer/index.js.map +1 -1
  213. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  214. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  215. package/dist/transcription/index.js +13 -45
  216. package/dist/transcription/index.js.map +1 -1
  217. package/dist/types/annotation/annotation.types.d.ts +33 -0
  218. package/dist/types/annotation/constants.d.ts +31 -0
  219. package/dist/types/annotation/index.d.ts +117 -0
  220. package/dist/types/breakouts/breakout.d.ts +8 -0
  221. package/dist/types/breakouts/collection.d.ts +5 -0
  222. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  223. package/dist/types/breakouts/index.d.ts +5 -0
  224. package/dist/types/breakouts/request.d.ts +22 -0
  225. package/dist/types/breakouts/utils.d.ts +15 -0
  226. package/dist/types/common/browser-detection.d.ts +9 -0
  227. package/dist/types/common/collection.d.ts +48 -0
  228. package/dist/types/common/config.d.ts +2 -0
  229. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  230. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  231. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  232. package/dist/types/common/errors/media.d.ts +15 -0
  233. package/dist/types/common/errors/parameter.d.ts +15 -0
  234. package/dist/types/common/errors/password-error.d.ts +15 -0
  235. package/dist/types/common/errors/permission.d.ts +14 -0
  236. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  237. package/dist/types/common/errors/reconnection.d.ts +15 -0
  238. package/dist/types/common/errors/stats.d.ts +15 -0
  239. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  240. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  241. package/dist/types/common/events/events-scope.d.ts +17 -0
  242. package/dist/types/common/events/events.d.ts +12 -0
  243. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  244. package/dist/types/common/events/util.d.ts +2 -0
  245. package/dist/types/common/logs/logger-config.d.ts +2 -0
  246. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  247. package/dist/types/common/logs/request.d.ts +34 -0
  248. package/dist/types/common/queue.d.ts +32 -0
  249. package/dist/types/config.d.ts +78 -0
  250. package/dist/types/constants.d.ts +965 -0
  251. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  252. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  253. package/dist/types/controls-options-manager/index.d.ts +136 -0
  254. package/dist/types/controls-options-manager/types.d.ts +37 -0
  255. package/dist/types/controls-options-manager/util.d.ts +1 -0
  256. package/dist/types/index.d.ts +7 -0
  257. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  258. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  259. package/dist/types/locus-info/fullState.d.ts +2 -0
  260. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  261. package/dist/types/locus-info/index.d.ts +314 -0
  262. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  263. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  264. package/dist/types/locus-info/parser.d.ts +212 -0
  265. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  266. package/dist/types/media/index.d.ts +34 -0
  267. package/dist/types/media/properties.d.ts +108 -0
  268. package/dist/types/media/util.d.ts +2 -0
  269. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  270. package/dist/types/meeting/in-meeting-actions.d.ts +105 -0
  271. package/dist/types/meeting/index.d.ts +1727 -0
  272. package/dist/types/meeting/muteState.d.ts +185 -0
  273. package/dist/types/meeting/request.d.ts +275 -0
  274. package/dist/types/meeting/request.type.d.ts +11 -0
  275. package/dist/types/meeting/state.d.ts +9 -0
  276. package/dist/types/meeting/util.d.ts +2 -0
  277. package/dist/types/meeting-info/collection.d.ts +20 -0
  278. package/dist/types/meeting-info/index.d.ts +57 -0
  279. package/dist/types/meeting-info/meeting-info-v2.d.ts +111 -0
  280. package/dist/types/meeting-info/request.d.ts +22 -0
  281. package/dist/types/meeting-info/util.d.ts +2 -0
  282. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  283. package/dist/types/meetings/collection.d.ts +31 -0
  284. package/dist/types/meetings/index.d.ts +316 -0
  285. package/dist/types/meetings/request.d.ts +27 -0
  286. package/dist/types/meetings/util.d.ts +18 -0
  287. package/dist/types/member/index.d.ts +156 -0
  288. package/dist/types/member/types.d.ts +21 -0
  289. package/dist/types/member/util.d.ts +2 -0
  290. package/dist/types/members/collection.d.ts +29 -0
  291. package/dist/types/members/index.d.ts +353 -0
  292. package/dist/types/members/request.d.ts +69 -0
  293. package/dist/types/members/types.d.ts +24 -0
  294. package/dist/types/members/util.d.ts +2 -0
  295. package/dist/types/metrics/config.d.ts +171 -0
  296. package/dist/types/metrics/constants.d.ts +54 -0
  297. package/dist/types/metrics/index.d.ts +152 -0
  298. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  299. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  300. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  301. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  302. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  303. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  304. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  305. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  306. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  307. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  308. package/dist/types/reachability/index.d.ts +152 -0
  309. package/dist/types/reachability/request.d.ts +37 -0
  310. package/dist/types/reactions/constants.d.ts +3 -0
  311. package/dist/types/reactions/reactions.d.ts +4 -0
  312. package/dist/types/reactions/reactions.type.d.ts +52 -0
  313. package/dist/types/reconnection-manager/index.d.ts +126 -0
  314. package/dist/types/recording-controller/enums.d.ts +7 -0
  315. package/dist/types/recording-controller/index.d.ts +193 -0
  316. package/dist/types/recording-controller/util.d.ts +13 -0
  317. package/dist/types/roap/index.d.ts +77 -0
  318. package/dist/types/roap/request.d.ts +38 -0
  319. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  320. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  321. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  322. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  323. package/dist/types/transcription/index.d.ts +64 -0
  324. package/internal-README.md +7 -6
  325. package/package.json +28 -20
  326. package/src/annotation/annotation.types.ts +37 -0
  327. package/src/annotation/constants.ts +36 -0
  328. package/src/annotation/index.ts +314 -0
  329. package/src/breakouts/README.md +219 -0
  330. package/src/breakouts/breakout.ts +154 -0
  331. package/src/breakouts/collection.ts +19 -0
  332. package/src/breakouts/edit-lock-error.ts +25 -0
  333. package/src/breakouts/index.ts +776 -0
  334. package/src/breakouts/request.ts +55 -0
  335. package/src/breakouts/utils.ts +57 -0
  336. package/src/common/browser-detection.ts +9 -6
  337. package/src/common/collection.ts +3 -1
  338. package/src/common/errors/captcha-error.ts +6 -6
  339. package/src/common/errors/intent-to-join.ts +6 -6
  340. package/src/common/errors/join-meeting.ts +12 -8
  341. package/src/common/errors/media.ts +6 -6
  342. package/src/common/errors/parameter.ts +9 -6
  343. package/src/common/errors/password-error.ts +6 -6
  344. package/src/common/errors/permission.ts +5 -5
  345. package/src/common/errors/reconnection.ts +6 -6
  346. package/src/common/errors/stats.ts +6 -6
  347. package/src/common/errors/webex-errors.ts +7 -5
  348. package/src/common/errors/webex-meetings-error.ts +1 -1
  349. package/src/common/events/events-scope.ts +5 -1
  350. package/src/common/events/events.ts +5 -1
  351. package/src/common/events/trigger-proxy.ts +8 -3
  352. package/src/common/events/util.ts +1 -2
  353. package/src/common/logs/logger-proxy.ts +21 -10
  354. package/src/common/logs/request.ts +11 -8
  355. package/src/config.ts +17 -12
  356. package/src/constants.ts +116 -6
  357. package/src/controls-options-manager/constants.ts +5 -0
  358. package/src/controls-options-manager/enums.ts +16 -0
  359. package/src/controls-options-manager/index.ts +275 -0
  360. package/src/controls-options-manager/types.ts +49 -0
  361. package/src/controls-options-manager/util.ts +229 -0
  362. package/src/index.ts +33 -0
  363. package/src/locus-info/controlsUtils.ts +91 -24
  364. package/src/locus-info/fullState.ts +15 -11
  365. package/src/locus-info/hostUtils.ts +4 -3
  366. package/src/locus-info/index.ts +265 -51
  367. package/src/locus-info/infoUtils.ts +16 -4
  368. package/src/locus-info/mediaSharesUtils.ts +4 -4
  369. package/src/locus-info/parser.ts +46 -68
  370. package/src/locus-info/selfUtils.ts +178 -57
  371. package/src/media/index.ts +142 -172
  372. package/src/media/properties.ts +43 -36
  373. package/src/media/util.ts +1 -1
  374. package/src/mediaQualityMetrics/config.ts +380 -378
  375. package/src/meeting/in-meeting-actions.ts +75 -3
  376. package/src/meeting/index.ts +2504 -1522
  377. package/src/meeting/muteState.ts +271 -68
  378. package/src/meeting/request.ts +251 -132
  379. package/src/meeting/request.type.ts +13 -0
  380. package/src/meeting/state.ts +45 -30
  381. package/src/meeting/util.ts +132 -111
  382. package/src/meeting-info/collection.ts +2 -1
  383. package/src/meeting-info/index.ts +32 -30
  384. package/src/meeting-info/meeting-info-v2.ts +178 -109
  385. package/src/meeting-info/request.ts +9 -3
  386. package/src/meeting-info/util.ts +54 -46
  387. package/src/meeting-info/utilv2.ts +69 -57
  388. package/src/meetings/collection.ts +21 -1
  389. package/src/meetings/index.ts +687 -467
  390. package/src/meetings/request.ts +29 -25
  391. package/src/meetings/util.ts +108 -33
  392. package/src/member/index.ts +86 -49
  393. package/src/member/types.ts +24 -0
  394. package/src/member/util.ts +92 -13
  395. package/src/members/collection.ts +8 -1
  396. package/src/members/index.ts +281 -129
  397. package/src/members/request.ts +87 -14
  398. package/src/members/types.ts +28 -0
  399. package/src/members/util.ts +140 -49
  400. package/src/metrics/config.ts +255 -90
  401. package/src/metrics/constants.ts +1 -6
  402. package/src/metrics/index.ts +91 -94
  403. package/src/multistream/mediaRequestManager.ts +201 -43
  404. package/src/multistream/receiveSlot.ts +69 -26
  405. package/src/multistream/receiveSlotManager.ts +62 -38
  406. package/src/multistream/remoteMedia.ts +30 -4
  407. package/src/multistream/remoteMediaGroup.ts +4 -3
  408. package/src/multistream/remoteMediaManager.ts +230 -66
  409. package/src/networkQualityMonitor/index.ts +24 -27
  410. package/src/personal-meeting-room/index.ts +12 -16
  411. package/src/personal-meeting-room/request.ts +10 -3
  412. package/src/personal-meeting-room/util.ts +3 -3
  413. package/src/reachability/index.ts +131 -79
  414. package/src/reachability/request.ts +43 -34
  415. package/src/reactions/constants.ts +4 -0
  416. package/src/reactions/reactions.ts +104 -0
  417. package/src/reactions/reactions.type.ts +62 -0
  418. package/src/reconnection-manager/index.ts +193 -111
  419. package/src/recording-controller/enums.ts +8 -0
  420. package/src/recording-controller/index.ts +315 -0
  421. package/src/recording-controller/util.ts +58 -0
  422. package/src/roap/index.ts +63 -51
  423. package/src/roap/request.ts +86 -53
  424. package/src/roap/turnDiscovery.ts +105 -46
  425. package/src/statsAnalyzer/global.ts +8 -104
  426. package/src/statsAnalyzer/index.ts +624 -376
  427. package/src/statsAnalyzer/mqaUtil.ts +203 -90
  428. package/src/transcription/index.ts +34 -32
  429. package/test/integration/spec/converged-space-meetings.js +177 -0
  430. package/test/integration/spec/journey.js +666 -464
  431. package/test/integration/spec/space-meeting.js +320 -204
  432. package/test/integration/spec/transcription.js +7 -8
  433. package/test/unit/spec/annotation/index.ts +420 -0
  434. package/test/unit/spec/breakouts/breakout.ts +178 -0
  435. package/test/unit/spec/breakouts/collection.ts +15 -0
  436. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  437. package/test/unit/spec/breakouts/index.ts +1416 -0
  438. package/test/unit/spec/breakouts/request.ts +104 -0
  439. package/test/unit/spec/breakouts/utils.js +72 -0
  440. package/test/unit/spec/common/browser-detection.js +9 -28
  441. package/test/unit/spec/controls-options-manager/index.js +280 -0
  442. package/test/unit/spec/controls-options-manager/util.js +403 -0
  443. package/test/unit/spec/fixture/locus.js +92 -90
  444. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  445. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  446. package/test/unit/spec/locus-info/index.js +484 -3
  447. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  448. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  449. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  450. package/test/unit/spec/locus-info/parser.js +3 -9
  451. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  452. package/test/unit/spec/locus-info/selfUtils.js +191 -12
  453. package/test/unit/spec/media/index.ts +104 -8
  454. package/test/unit/spec/media/properties.ts +9 -9
  455. package/test/unit/spec/meeting/in-meeting-actions.ts +34 -3
  456. package/test/unit/spec/meeting/index.js +2672 -828
  457. package/test/unit/spec/meeting/muteState.js +368 -70
  458. package/test/unit/spec/meeting/request.js +217 -43
  459. package/test/unit/spec/meeting/utils.js +167 -163
  460. package/test/unit/spec/meeting-info/meetinginfov2.js +241 -74
  461. package/test/unit/spec/meeting-info/request.js +7 -9
  462. package/test/unit/spec/meeting-info/util.js +11 -12
  463. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  464. package/test/unit/spec/meetings/collection.js +15 -1
  465. package/test/unit/spec/meetings/index.js +701 -273
  466. package/test/unit/spec/meetings/utils.js +105 -14
  467. package/test/unit/spec/member/index.js +24 -1
  468. package/test/unit/spec/member/util.js +359 -32
  469. package/test/unit/spec/members/index.js +402 -54
  470. package/test/unit/spec/members/request.js +76 -20
  471. package/test/unit/spec/members/utils.js +191 -4
  472. package/test/unit/spec/metrics/index.js +46 -20
  473. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  474. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  475. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  476. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  477. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  478. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  479. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  480. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  481. package/test/unit/spec/reachability/index.ts +176 -27
  482. package/test/unit/spec/reachability/request.js +66 -0
  483. package/test/unit/spec/reconnection-manager/index.js +62 -31
  484. package/test/unit/spec/recording-controller/index.js +231 -0
  485. package/test/unit/spec/recording-controller/util.js +102 -0
  486. package/test/unit/spec/roap/index.ts +21 -16
  487. package/test/unit/spec/roap/request.ts +217 -0
  488. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  489. package/test/unit/spec/stats-analyzer/index.js +116 -60
  490. package/test/utils/cmr.js +44 -42
  491. package/test/utils/constants.js +9 -0
  492. package/test/utils/integrationTestUtils.js +64 -0
  493. package/test/utils/testUtils.js +63 -99
  494. package/test/utils/webex-config.js +22 -18
  495. package/test/utils/webex-test-users.js +57 -50
  496. package/tsconfig.json +6 -0
  497. package/dist/media/internal-media-core-wrapper.js +0 -22
  498. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  499. package/dist/meeting/effectsState.js +0 -334
  500. package/dist/meeting/effectsState.js.map +0 -1
  501. package/dist/multistream/multistreamMedia.js +0 -116
  502. package/dist/multistream/multistreamMedia.js.map +0 -1
  503. package/src/index.js +0 -15
  504. package/src/media/internal-media-core-wrapper.ts +0 -9
  505. package/src/meeting/effectsState.ts +0 -211
  506. package/src/multistream/multistreamMedia.ts +0 -92
  507. package/test/unit/spec/meeting/effectsState.js +0 -291
package/UPGRADING.md CHANGED
@@ -25,7 +25,7 @@ When using the phone plugin, this was handled automatically for you via `webex.p
25
25
  With the meetings plugin, we provide the same method:
26
26
 
27
27
  ```js
28
- webex.meetings.register()
28
+ webex.meetings.register();
29
29
  ```
30
30
 
31
31
  ## Dialing
@@ -56,7 +56,7 @@ await myMeeting.join();
56
56
  ### Joining a one-on-one meeting
57
57
 
58
58
  ```js
59
- let destination = "testuser@webex.bot";
59
+ let destination = 'testuser@webex.bot';
60
60
 
61
61
  const myMeeting = await webex.meetings.create(destination);
62
62
 
@@ -92,7 +92,7 @@ const mediaSettings = {
92
92
  receiveShare: true,
93
93
  sendVideo: true,
94
94
  sendAudio: true,
95
- sendShare: false
95
+ sendShare: false,
96
96
  };
97
97
 
98
98
  const mediaStreams = await meeting.getMediaStreams(mediaSettings);
@@ -117,7 +117,7 @@ Once you have your local streams and shares, you need to add the media to the me
117
117
  const mediaResponse = await meeting.addMedia({
118
118
  localShare,
119
119
  localStream,
120
- mediaSettings
120
+ mediaSettings,
121
121
  });
122
122
  ```
123
123
 
@@ -130,20 +130,20 @@ Just like the phone plugin, the meeting object will emit events that the develop
130
130
  ```js
131
131
  myMeeting.on('media:ready', (media) => {
132
132
  // Handle media streams
133
- })
133
+ });
134
134
  ```
135
135
 
136
136
  This event is emitted when a media stream is ready to be rendered. It contains an object with two properties:
137
137
 
138
- * `stream` the actual media stream that can be used in an html srcObject
139
- * `type` the type of stream that is ready (`local`, `remoteVideo`, etc)
138
+ - `stream` the actual media stream that can be used in an html srcObject
139
+ - `type` the type of stream that is ready (`local`, `remoteVideo`, etc)
140
140
 
141
141
  ### `media:stopped`
142
142
 
143
143
  ```js
144
144
  myMeeting.on('media:stopped', (media) => {
145
145
  // Remove media streams
146
- })
146
+ });
147
147
  ```
148
148
 
149
149
  This event is emitted when a stream has stopped sending. It has a `type` property to know which media to remove from the DOM.
@@ -197,7 +197,7 @@ With a meeting object, you use these functions:
197
197
  const mediaStreams = await meeting.getMediaStreams(mediaSettings);
198
198
  const [localStream, localShare] = mediaStreams;
199
199
  // Then, update share
200
- meeting.updateShare({sendShare: true, receiveShare:true, stream: localShare})
200
+ meeting.updateShare({sendShare: true, receiveShare: true, stream: localShare});
201
201
  ```
202
202
 
203
203
  ### Stop Sending Share
package/browsers.js CHANGED
@@ -4,7 +4,6 @@
4
4
 
5
5
  // eslint-disable-next-line strict
6
6
 
7
-
8
7
  /* eslint camelcase: [0] */
9
8
  module.exports = function createBrowsers() {
10
9
  if (process.env.SC_TUNNEL_IDENTIFIER || process.env.SAUCE) {
@@ -19,14 +18,14 @@ module.exports = function createBrowsers() {
19
18
  args: [
20
19
  '--disable-features=WebRtcHideLocalIpsWithMdns',
21
20
  '--use-fake-device-for-media-stream',
22
- '--use-fake-ui-for-media-stream'
23
- ]
21
+ '--use-fake-ui-for-media-stream',
22
+ ],
24
23
  },
25
24
  flags: [
26
25
  '--disable-features=WebRtcHideLocalIpsWithMdns',
27
26
  '--use-fake-device-for-media-stream',
28
- '--use-fake-ui-for-media-stream'
29
- ]
27
+ '--use-fake-ui-for-media-stream',
28
+ ],
30
29
  },
31
30
  sl_edge_latest_Win_10: {
32
31
  base: 'SauceLabs',
@@ -38,9 +37,9 @@ module.exports = function createBrowsers() {
38
37
  args: [
39
38
  '--disable-features=WebRtcHideLocalIpsWithMdns',
40
39
  '--use-fake-device-for-media-stream',
41
- '--use-fake-ui-for-media-stream'
42
- ]
43
- }
40
+ '--use-fake-ui-for-media-stream',
41
+ ],
42
+ },
44
43
  },
45
44
  // sl_firefox_latest_linux: {
46
45
  // base: 'SauceLabs',
@@ -54,8 +53,8 @@ module.exports = function createBrowsers() {
54
53
  browserName: 'Safari',
55
54
  version: 'latest',
56
55
  'webkit:WebRTC': {
57
- DisableInsecureMediaCapture: true
58
- }
56
+ DisableInsecureMediaCapture: true,
57
+ },
59
58
  },
60
59
  sl_firefox_macOS_Catalina: {
61
60
  base: 'SauceLabs',
@@ -63,10 +62,7 @@ module.exports = function createBrowsers() {
63
62
  browserName: 'Firefox',
64
63
  extendedDebugging: true,
65
64
  'moz:firefoxOptions': {
66
- args: [
67
- '-start-debugger-server',
68
- '9222'
69
- ],
65
+ args: ['-start-debugger-server', '9222'],
70
66
  prefs: {
71
67
  'devtools.chrome.enabled': true,
72
68
  'devtools.debugger.prompt-connection': false,
@@ -76,10 +72,10 @@ module.exports = function createBrowsers() {
76
72
  'media.getusermedia.screensharing.enabled': true,
77
73
  'media.navigator.permission.disabled': true,
78
74
  'media.navigator.streams.fake': true,
79
- 'media.peerconnection.video.h264_enabled': true
80
- }
81
- }
82
- }
75
+ 'media.peerconnection.video.h264_enabled': true,
76
+ },
77
+ },
78
+ },
83
79
  // sl_firefox_latest_win7: {
84
80
  // base: `SauceLabs`,
85
81
  // platform: `Windows 7`,
@@ -97,17 +93,16 @@ module.exports = function createBrowsers() {
97
93
  'media.getusermedia.screensharing.enabled': true,
98
94
  'media.navigator.permission.disabled': true,
99
95
  'media.navigator.streams.fake': true,
100
- 'media.peerconnection.video.h264_enabled': true
101
- }
96
+ 'media.peerconnection.video.h264_enabled': true,
97
+ },
102
98
  },
103
99
  ChromeH264: {
104
100
  base: 'ChromeHeadless',
105
101
  flags: [
106
102
  '--disable-features=WebRtcHideLocalIpsWithMdns',
107
103
  '--use-fake-device-for-media-stream',
108
- '--use-fake-ui-for-media-stream'
109
- ]
110
- }
104
+ '--use-fake-ui-for-media-stream',
105
+ ],
106
+ },
111
107
  };
112
108
  };
113
-
@@ -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=annotation.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["annotation.types.ts"],"sourcesContent":["/**\n * Type for an StrokeData Object\n */\ntype StrokeData = {\n fromUserId: string;\n fromDeviceUrl: string;\n toUserId: string;\n content: string;\n shareInstanceId: string;\n encryptionKeyUrl: string;\n};\n\ntype RequestData = {\n toUserId: string;\n toDeviceUrl: string;\n shareInstanceId: string;\n};\n\ntype CommandRequestBody = {\n actionType: string;\n resourceType: string;\n shareInstanceId: string;\n receivers?: any[];\n};\n\ninterface IAnnotationChannel {\n acceptRequest(approval);\n declineRequest(approval);\n approveAnnotation: (requestData: RequestData) => undefined | Promise<void>;\n cancelApproveAnnotation: (requestData: RequestData) => undefined | Promise<void>;\n closeAnnotation: (requestData: RequestData) => undefined | Promise<void>;\n sendStrokeData: (strokeData: StrokeData) => void;\n approvalUrlUpdate: (approvalUrl: string) => void;\n locusUrlUpdate: (locusUrl: string) => void;\n}\n\nexport type {StrokeData, RequestData, CommandRequestBody, IAnnotationChannel};\n"],"mappings":""}
@@ -0,0 +1,48 @@
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
+ exports.EVENT_TRIGGERS = exports.ANNOTATION_STATUS = exports.ANNOTATION_RESOURCE_TYPE = exports.ANNOTATION_REQUEST_TYPE = exports.ANNOTATION_RELAY_TYPES = exports.ANNOTATION_POLICY = exports.ANNOTATION_ACTION_TYPE = exports.ANNOTATION = void 0;
8
+ var EVENT_TRIGGERS = {
9
+ ANNOTATION_STROKE_DATA: 'annotation:strokeData',
10
+ ANNOTATION_COMMAND: 'annotation:command'
11
+ };
12
+ exports.EVENT_TRIGGERS = EVENT_TRIGGERS;
13
+ var ANNOTATION_RESOURCE_TYPE = 'AnnotationOnShare';
14
+ exports.ANNOTATION_RESOURCE_TYPE = ANNOTATION_RESOURCE_TYPE;
15
+ var ANNOTATION_RELAY_TYPES = {
16
+ ANNOTATION_CLIENT: 'annotation.client'
17
+ };
18
+ exports.ANNOTATION_RELAY_TYPES = ANNOTATION_RELAY_TYPES;
19
+ var ANNOTATION_STATUS = {
20
+ NO_ANNOTATION: 'NO_ANNOTATION',
21
+ RUNNING_ANNOTATION: 'RUNNING_ANNOTATION'
22
+ };
23
+ exports.ANNOTATION_STATUS = ANNOTATION_STATUS;
24
+ var ANNOTATION_POLICY = {
25
+ ANYONE_CAN_ANNOTATE: 'AnyoneCanAnnotate',
26
+ APPROVAL: 'Approval',
27
+ ANNOTATION_NOT_ALLOWED: 'AnnotationNotAllowed'
28
+ };
29
+ exports.ANNOTATION_POLICY = ANNOTATION_POLICY;
30
+ var ANNOTATION_REQUEST_TYPE = {
31
+ ANNOTATION_MESSAGE: 'annotation_message'
32
+ };
33
+ exports.ANNOTATION_REQUEST_TYPE = ANNOTATION_REQUEST_TYPE;
34
+ var ANNOTATION_ACTION_TYPE;
35
+ exports.ANNOTATION_ACTION_TYPE = ANNOTATION_ACTION_TYPE;
36
+ (function (ANNOTATION_ACTION_TYPE) {
37
+ ANNOTATION_ACTION_TYPE["REQUESTED"] = "REQUESTED";
38
+ ANNOTATION_ACTION_TYPE["ACCEPTED"] = "ACCEPTED";
39
+ ANNOTATION_ACTION_TYPE["DECLINED"] = "DECLINED";
40
+ ANNOTATION_ACTION_TYPE["OFFERED"] = "OFFERED";
41
+ ANNOTATION_ACTION_TYPE["CANCELED"] = "CANCELED";
42
+ ANNOTATION_ACTION_TYPE["EXPIRED"] = "EXPIRED";
43
+ ANNOTATION_ACTION_TYPE["REVOKED"] = "REVOKED";
44
+ ANNOTATION_ACTION_TYPE["CLOSED"] = "CLOSED";
45
+ })(ANNOTATION_ACTION_TYPE || (exports.ANNOTATION_ACTION_TYPE = ANNOTATION_ACTION_TYPE = {}));
46
+ var ANNOTATION = 'annotation';
47
+ exports.ANNOTATION = ANNOTATION;
48
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EVENT_TRIGGERS","ANNOTATION_STROKE_DATA","ANNOTATION_COMMAND","ANNOTATION_RESOURCE_TYPE","ANNOTATION_RELAY_TYPES","ANNOTATION_CLIENT","ANNOTATION_STATUS","NO_ANNOTATION","RUNNING_ANNOTATION","ANNOTATION_POLICY","ANYONE_CAN_ANNOTATE","APPROVAL","ANNOTATION_NOT_ALLOWED","ANNOTATION_REQUEST_TYPE","ANNOTATION_MESSAGE","ANNOTATION_ACTION_TYPE","ANNOTATION"],"sources":["constants.ts"],"sourcesContent":["export const EVENT_TRIGGERS = {\n ANNOTATION_STROKE_DATA: 'annotation:strokeData',\n ANNOTATION_COMMAND: 'annotation:command',\n};\nexport const ANNOTATION_RESOURCE_TYPE = 'AnnotationOnShare';\nexport const ANNOTATION_RELAY_TYPES = {\n ANNOTATION_CLIENT: 'annotation.client',\n};\n\nexport const ANNOTATION_STATUS = {\n NO_ANNOTATION: 'NO_ANNOTATION',\n RUNNING_ANNOTATION: 'RUNNING_ANNOTATION',\n};\n\nexport const ANNOTATION_POLICY = {\n ANYONE_CAN_ANNOTATE: 'AnyoneCanAnnotate',\n APPROVAL: 'Approval',\n ANNOTATION_NOT_ALLOWED: 'AnnotationNotAllowed',\n};\n\nexport const ANNOTATION_REQUEST_TYPE = {\n ANNOTATION_MESSAGE: 'annotation_message',\n};\n\nexport const enum ANNOTATION_ACTION_TYPE {\n REQUESTED = 'REQUESTED',\n ACCEPTED = 'ACCEPTED',\n DECLINED = 'DECLINED',\n OFFERED = 'OFFERED',\n CANCELED = 'CANCELED',\n EXPIRED = 'EXPIRED',\n REVOKED = 'REVOKED',\n CLOSED = 'CLOSED',\n}\n\nexport const ANNOTATION = 'annotation';\n"],"mappings":";;;;;;;AAAO,IAAMA,cAAc,GAAG;EAC5BC,sBAAsB,EAAE,uBAAuB;EAC/CC,kBAAkB,EAAE;AACtB,CAAC;AAAC;AACK,IAAMC,wBAAwB,GAAG,mBAAmB;AAAC;AACrD,IAAMC,sBAAsB,GAAG;EACpCC,iBAAiB,EAAE;AACrB,CAAC;AAAC;AAEK,IAAMC,iBAAiB,GAAG;EAC/BC,aAAa,EAAE,eAAe;EAC9BC,kBAAkB,EAAE;AACtB,CAAC;AAAC;AAEK,IAAMC,iBAAiB,GAAG;EAC/BC,mBAAmB,EAAE,mBAAmB;EACxCC,QAAQ,EAAE,UAAU;EACpBC,sBAAsB,EAAE;AAC1B,CAAC;AAAC;AAEK,IAAMC,uBAAuB,GAAG;EACrCC,kBAAkB,EAAE;AACtB,CAAC;AAAC;AAAA,IAEgBC,sBAAsB;AAAA;AAAA,WAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;AAAA,GAAtBA,sBAAsB,sCAAtBA,sBAAsB;AAWjC,IAAMC,UAAU,GAAG,YAAY;AAAC"}
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
+ _Object$defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
17
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
19
+ var _uuid = _interopRequireDefault(require("uuid"));
20
+ var _webexCore = require("@webex/webex-core");
21
+ var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
22
+ var _constants = require("./constants");
23
+ var _constants2 = require("../constants");
24
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
26
+ /**
27
+ * @description Annotation to handle LLM and Mercury message and locus API
28
+ * @class
29
+ */
30
+ var AnnotationChannel = /*#__PURE__*/function (_WebexPlugin) {
31
+ (0, _inherits2.default)(AnnotationChannel, _WebexPlugin);
32
+ var _super = _createSuper(AnnotationChannel);
33
+ /**
34
+ * Initializes annotation module
35
+ */
36
+ function AnnotationChannel() {
37
+ var _this;
38
+ (0, _classCallCheck2.default)(this, AnnotationChannel);
39
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
40
+ args[_key] = arguments[_key];
41
+ }
42
+ _this = _super.call.apply(_super, [this].concat(args));
43
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.ANNOTATION);
44
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "seqNum", void 0);
45
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasSubscribedToEvents", void 0);
46
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "approvalUrl", void 0);
47
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
48
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "annotationStatus", void 0);
49
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deviceUrl", void 0);
50
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "eventCommandProcessor", function (e) {
51
+ var _e$data, _e$data2, _e$data2$approval, _e$data3, _e$data3$approval;
52
+ if ((e === null || e === void 0 ? void 0 : (_e$data = e.data) === null || _e$data === void 0 ? void 0 : _e$data.eventType) === 'locus.approval_request' && (e === null || e === void 0 ? void 0 : (_e$data2 = e.data) === null || _e$data2 === void 0 ? void 0 : (_e$data2$approval = _e$data2.approval) === null || _e$data2$approval === void 0 ? void 0 : _e$data2$approval.resourceType) === _constants.ANNOTATION_RESOURCE_TYPE && e !== null && e !== void 0 && (_e$data3 = e.data) !== null && _e$data3 !== void 0 && (_e$data3$approval = _e$data3.approval) !== null && _e$data3$approval !== void 0 && _e$data3$approval.actionType) {
53
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
54
+ file: 'annotation',
55
+ function: 'approval_request'
56
+ }, _constants.EVENT_TRIGGERS.ANNOTATION_COMMAND, {
57
+ type: e.data.approval.actionType,
58
+ payload: e.data.approval
59
+ });
60
+ _this.seqNum = ((e === null || e === void 0 ? void 0 : e.sequenceNumber) || 0) + 1;
61
+ }
62
+ });
63
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "eventDataProcessor", function (e) {
64
+ var _e$data4;
65
+ switch (e === null || e === void 0 ? void 0 : (_e$data4 = e.data) === null || _e$data4 === void 0 ? void 0 : _e$data4.relayType) {
66
+ case _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:
67
+ _this.seqNum = ((e === null || e === void 0 ? void 0 : e.sequenceNumber) || 0) + 1;
68
+ _this.processStrokeMessage(e.data.request);
69
+ break;
70
+ default:
71
+ break;
72
+ }
73
+ });
74
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendAnnotationAction", /*#__PURE__*/function () {
75
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(actionType, requestData) {
76
+ var body;
77
+ return _regenerator.default.wrap(function _callee$(_context) {
78
+ while (1) switch (_context.prev = _context.next) {
79
+ case 0:
80
+ body = {
81
+ actionType: actionType,
82
+ resourceType: 'AnnotationOnShare',
83
+ shareInstanceId: requestData.shareInstanceId
84
+ };
85
+ if (requestData !== null && requestData !== void 0 && requestData.toUserId) {
86
+ body.receivers = [{
87
+ participantId: requestData.toUserId,
88
+ deviceUrl: requestData.toDeviceUrl
89
+ }];
90
+ }
91
+
92
+ // @ts-ignore
93
+ return _context.abrupt("return", _this.request({
94
+ method: _constants2.HTTP_VERBS.POST,
95
+ url: "".concat(_this.approvalUrl),
96
+ body: body
97
+ }));
98
+ case 3:
99
+ case "end":
100
+ return _context.stop();
101
+ }
102
+ }, _callee);
103
+ }));
104
+ return function (_x, _x2) {
105
+ return _ref.apply(this, arguments);
106
+ };
107
+ }());
108
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "decryptContent", function (encryptionKeyUrl, content) {
109
+ // @ts-ignore
110
+ return _this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then(function (res) {
111
+ return res;
112
+ });
113
+ });
114
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "encryptContent", function (encryptionKeyUrl, content) {
115
+ // @ts-ignore
116
+ return _this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then(function (res) {
117
+ return res;
118
+ });
119
+ });
120
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendStrokeData", function (strokeData) {
121
+ // @ts-ignore
122
+ if (!_this.webex.internal.llm.isConnected()) return;
123
+ _this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(function (encryptedContent) {
124
+ _this.publishEncrypted(encryptedContent, strokeData);
125
+ });
126
+ });
127
+ _this.seqNum = 1;
128
+ return _this;
129
+ }
130
+
131
+ /**
132
+ * Process Stroke Data
133
+ * @param {request} request stroke data
134
+ * @returns {void}
135
+ */
136
+ (0, _createClass2.default)(AnnotationChannel, [{
137
+ key: "processStrokeMessage",
138
+ value: function processStrokeMessage(request) {
139
+ var _this2 = this;
140
+ this.decryptContent(request.encryptionKeyUrl, request.content).then(function (decryptedContent) {
141
+ request.content = decryptedContent;
142
+ _triggerProxy.default.trigger(_this2, {
143
+ file: 'annotation',
144
+ function: 'processStrokeMessage'
145
+ }, _constants.EVENT_TRIGGERS.ANNOTATION_STROKE_DATA, {
146
+ data: request
147
+ });
148
+ });
149
+ }
150
+
151
+ /** bind all events from mercury
152
+ * @param {Object} e
153
+ * @returns {undefined}
154
+ */
155
+ }, {
156
+ key: "listenToEvents",
157
+ value:
158
+ /**
159
+ * Listen to websocket messages
160
+ * @returns {undefined}
161
+ */
162
+ function listenToEvents() {
163
+ if (!this.hasSubscribedToEvents) {
164
+ // @ts-ignore
165
+ this.webex.internal.mercury.on('event:locus', this.eventCommandProcessor);
166
+ // @ts-ignore
167
+ this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor);
168
+ this.hasSubscribedToEvents = true;
169
+ }
170
+ }
171
+
172
+ /**
173
+ * set locusUrl
174
+ * @param {string} locusUrl
175
+ * @returns {void}
176
+ */
177
+ }, {
178
+ key: "locusUrlUpdate",
179
+ value: function locusUrlUpdate(locusUrl) {
180
+ this.locusUrl = locusUrl;
181
+ this.listenToEvents();
182
+ }
183
+
184
+ /**
185
+ * set approved url
186
+ * @param {string} approvalUrl
187
+ * @returns {void}
188
+ */
189
+ }, {
190
+ key: "approvalUrlUpdate",
191
+ value: function approvalUrlUpdate(approvalUrl) {
192
+ this.approvalUrl = approvalUrl;
193
+ }
194
+
195
+ /**
196
+ * accept request
197
+ * @param {object} approval
198
+ * @returns {Promise}
199
+ */
200
+ }, {
201
+ key: "acceptRequest",
202
+ value: function acceptRequest(approval) {
203
+ // @ts-ignore
204
+ return this.request({
205
+ method: _constants2.HTTP_VERBS.PUT,
206
+ url: approval.url,
207
+ body: {
208
+ resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
209
+ actionType: _constants.ANNOTATION_ACTION_TYPE.ACCEPTED
210
+ }
211
+ });
212
+ }
213
+
214
+ /**
215
+ * presenter declined request annotation
216
+ * @param {approval} approval
217
+ * @returns {Promise}
218
+ */
219
+ }, {
220
+ key: "declineRequest",
221
+ value: function declineRequest(approval) {
222
+ // @ts-ignore
223
+ return this.request({
224
+ method: _constants2.HTTP_VERBS.PUT,
225
+ url: approval.url,
226
+ body: {
227
+ resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
228
+ actionType: _constants.ANNOTATION_ACTION_TYPE.DECLINED
229
+ }
230
+ });
231
+ }
232
+
233
+ /**
234
+ * request approved annotation
235
+ * @param {RequestData} requestData
236
+ * @returns {Promise}
237
+ */
238
+ }, {
239
+ key: "approveAnnotation",
240
+ value: function approveAnnotation(requestData) {
241
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.REQUESTED, requestData);
242
+ }
243
+
244
+ /**
245
+ * cancel approved annotation
246
+ * @param {object} requestData
247
+ * @returns {Promise}
248
+ */
249
+ }, {
250
+ key: "cancelApproveAnnotation",
251
+ value: function cancelApproveAnnotation(requestData) {
252
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.CANCELED, requestData);
253
+ }
254
+
255
+ /**
256
+ * close annotation
257
+ * @param {object} requestData
258
+ * @returns {Promise}
259
+ */
260
+ }, {
261
+ key: "closeAnnotation",
262
+ value: function closeAnnotation(requestData) {
263
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.CLOSED, requestData);
264
+ }
265
+
266
+ /**
267
+ * send annotation command
268
+ * @param {ANNOTATION_ACTION_TYPE} actionType
269
+ * @param {RequestData} requestData
270
+ * @returns {Promise}
271
+ */
272
+ }, {
273
+ key: "publishEncrypted",
274
+ value:
275
+ /**
276
+ * private encrypted the strokes data
277
+ * @param {string} encryptedContent
278
+ * @param {StrokeData} strokeData
279
+ * @returns {void}
280
+ */
281
+ function publishEncrypted(encryptedContent, strokeData) {
282
+ var data = {
283
+ id: "".concat(this.seqNum),
284
+ type: 'publishRequest',
285
+ recipients: {
286
+ // @ts-ignore
287
+ route: this.webex.internal.llm.getBinding()
288
+ },
289
+ headers: {
290
+ to: strokeData.toUserId
291
+ },
292
+ data: {
293
+ eventType: 'relay.event',
294
+ relayType: _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,
295
+ request: {
296
+ value: {
297
+ sessionId: _uuid.default.v4(),
298
+ type: _constants.ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,
299
+ locusUrl: this.locusUrl,
300
+ content: encryptedContent,
301
+ version: 'mVersion',
302
+ fromUserId: strokeData.fromUserId,
303
+ fromDeviceUrl: strokeData.fromDeviceUrl,
304
+ shareInstanceId: strokeData.shareInstanceId,
305
+ locusId: this.locusUrl && this.locusUrl.split('/').pop(),
306
+ encryptionKeyUrl: strokeData.encryptionKeyUrl
307
+ }
308
+ }
309
+ },
310
+ trackingId: "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString()),
311
+ timestamp: new Date().getTime(),
312
+ sequenceNumber: this.seqNum,
313
+ filterMessage: false
314
+ };
315
+
316
+ // @ts-ignore
317
+ this.webex.internal.llm.socket.send(data);
318
+ this.seqNum += 1;
319
+ }
320
+ }]);
321
+ return AnnotationChannel;
322
+ }(_webexCore.WebexPlugin);
323
+ var _default = AnnotationChannel;
324
+ exports.default = _default;
325
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AnnotationChannel","args","ANNOTATION","e","data","eventType","approval","resourceType","ANNOTATION_RESOURCE_TYPE","actionType","TriggerProxy","trigger","file","function","EVENT_TRIGGERS","ANNOTATION_COMMAND","type","payload","seqNum","sequenceNumber","relayType","ANNOTATION_RELAY_TYPES","ANNOTATION_CLIENT","processStrokeMessage","request","requestData","body","shareInstanceId","toUserId","receivers","participantId","deviceUrl","toDeviceUrl","method","HTTP_VERBS","POST","url","approvalUrl","encryptionKeyUrl","content","webex","internal","encryption","decryptText","then","res","encryptText","strokeData","llm","isConnected","encryptContent","encryptedContent","publishEncrypted","decryptContent","decryptedContent","ANNOTATION_STROKE_DATA","hasSubscribedToEvents","mercury","on","eventCommandProcessor","eventDataProcessor","locusUrl","listenToEvents","PUT","ANNOTATION_ACTION_TYPE","ACCEPTED","DECLINED","sendAnnotationAction","REQUESTED","CANCELED","CLOSED","id","recipients","route","getBinding","headers","to","value","sessionId","uuid","v4","ANNOTATION_REQUEST_TYPE","ANNOTATION_MESSAGE","version","fromUserId","fromDeviceUrl","locusId","split","pop","trackingId","config","trackingIdPrefix","toString","timestamp","Date","getTime","filterMessage","socket","send","WebexPlugin"],"sources":["index.ts"],"sourcesContent":["import uuid from 'uuid';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport TriggerProxy from '../common/events/trigger-proxy';\n\nimport {\n EVENT_TRIGGERS,\n ANNOTATION_RELAY_TYPES,\n ANNOTATION,\n ANNOTATION_REQUEST_TYPE,\n ANNOTATION_ACTION_TYPE,\n ANNOTATION_RESOURCE_TYPE,\n} from './constants';\n\nimport {StrokeData, RequestData, IAnnotationChannel, CommandRequestBody} from './annotation.types';\nimport {HTTP_VERBS} from '../constants';\n\n/**\n * @description Annotation to handle LLM and Mercury message and locus API\n * @class\n */\nclass AnnotationChannel extends WebexPlugin implements IAnnotationChannel {\n namespace = ANNOTATION;\n\n private seqNum: number;\n\n hasSubscribedToEvents: boolean;\n\n approvalUrl: string;\n locusUrl: string;\n annotationStatus: string;\n deviceUrl: string;\n\n /**\n * Initializes annotation module\n */\n constructor(...args) {\n super(...args);\n this.seqNum = 1;\n }\n\n /**\n * Process Stroke Data\n * @param {request} request stroke data\n * @returns {void}\n */\n private processStrokeMessage(request) {\n this.decryptContent(request.encryptionKeyUrl, request.content).then((decryptedContent) => {\n request.content = decryptedContent;\n TriggerProxy.trigger(\n this,\n {\n file: 'annotation',\n function: 'processStrokeMessage',\n },\n EVENT_TRIGGERS.ANNOTATION_STROKE_DATA,\n {\n data: request,\n }\n );\n });\n }\n\n /** bind all events from mercury\n * @param {Object} e\n * @returns {undefined}\n */\n private eventCommandProcessor = (e) => {\n if (\n e?.data?.eventType === 'locus.approval_request' &&\n e?.data?.approval?.resourceType === ANNOTATION_RESOURCE_TYPE &&\n e?.data?.approval?.actionType\n ) {\n TriggerProxy.trigger(\n this,\n {\n file: 'annotation',\n function: 'approval_request',\n },\n EVENT_TRIGGERS.ANNOTATION_COMMAND,\n {\n type: e.data.approval.actionType,\n payload: e.data.approval,\n }\n );\n this.seqNum = (e?.sequenceNumber || 0) + 1;\n }\n };\n\n /** bind all events from llm\n * @param {Object} e\n * @returns {undefined}\n */\n private eventDataProcessor = (e) => {\n switch (e?.data?.relayType) {\n case ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:\n this.seqNum = (e?.sequenceNumber || 0) + 1;\n this.processStrokeMessage(e.data.request);\n break;\n default:\n break;\n }\n };\n\n /**\n * Listen to websocket messages\n * @returns {undefined}\n */\n private listenToEvents() {\n if (!this.hasSubscribedToEvents) {\n // @ts-ignore\n this.webex.internal.mercury.on('event:locus', this.eventCommandProcessor);\n // @ts-ignore\n this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor);\n this.hasSubscribedToEvents = true;\n }\n }\n\n /**\n * set locusUrl\n * @param {string} locusUrl\n * @returns {void}\n */\n public locusUrlUpdate(locusUrl: string) {\n this.locusUrl = locusUrl;\n this.listenToEvents();\n }\n\n /**\n * set approved url\n * @param {string} approvalUrl\n * @returns {void}\n */\n public approvalUrlUpdate(approvalUrl: string) {\n this.approvalUrl = approvalUrl;\n }\n\n /**\n * accept request\n * @param {object} approval\n * @returns {Promise}\n */\n public acceptRequest(approval) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n url: approval.url,\n body: {\n resourceType: ANNOTATION_RESOURCE_TYPE,\n actionType: ANNOTATION_ACTION_TYPE.ACCEPTED,\n },\n });\n }\n\n /**\n * presenter declined request annotation\n * @param {approval} approval\n * @returns {Promise}\n */\n public declineRequest(approval) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n url: approval.url,\n body: {\n resourceType: ANNOTATION_RESOURCE_TYPE,\n actionType: ANNOTATION_ACTION_TYPE.DECLINED,\n },\n });\n }\n\n /**\n * request approved annotation\n * @param {RequestData} requestData\n * @returns {Promise}\n */\n public approveAnnotation(requestData: RequestData) {\n return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.REQUESTED, requestData);\n }\n\n /**\n * cancel approved annotation\n * @param {object} requestData\n * @returns {Promise}\n */\n public cancelApproveAnnotation(requestData: RequestData) {\n return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.CANCELED, requestData);\n }\n\n /**\n * close annotation\n * @param {object} requestData\n * @returns {Promise}\n */\n public closeAnnotation(requestData: RequestData) {\n return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.CLOSED, requestData);\n }\n\n /**\n * send annotation command\n * @param {ANNOTATION_ACTION_TYPE} actionType\n * @param {RequestData} requestData\n * @returns {Promise}\n */\n private sendAnnotationAction = async (\n actionType: ANNOTATION_ACTION_TYPE,\n requestData: RequestData\n ): Promise<void> => {\n const body: CommandRequestBody = {\n actionType,\n resourceType: 'AnnotationOnShare',\n shareInstanceId: requestData.shareInstanceId,\n };\n if (requestData?.toUserId) {\n body.receivers = [{participantId: requestData.toUserId, deviceUrl: requestData.toDeviceUrl}];\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n url: `${this.approvalUrl}`,\n body,\n });\n };\n\n /**\n * decrypt data\n * @param {string} encryptionKeyUrl\n * @param {string} content encrypted content\n * @returns {string} decrypted content\n */\n private decryptContent = (encryptionKeyUrl: string, content: string): Promise<any> => {\n // @ts-ignore\n return this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then((res) => {\n return res;\n });\n };\n\n /**\n * encrypt data\n * @param {string} encryptionKeyUrl\n * @param {string} content original content\n * @returns {string} encrypted content\n */\n private encryptContent = (encryptionKeyUrl: string, content: string): Promise<any> => {\n // @ts-ignore\n return this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then((res) => {\n return res;\n });\n };\n\n /**\n * Sends stroke data to presenter\n * @param {StrokeData} strokeData\n * @returns {void}\n */\n public sendStrokeData = (strokeData: StrokeData): void => {\n // @ts-ignore\n if (!this.webex.internal.llm.isConnected()) return;\n this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(\n (encryptedContent) => {\n this.publishEncrypted(encryptedContent, strokeData);\n }\n );\n };\n\n /**\n * private encrypted the strokes data\n * @param {string} encryptedContent\n * @param {StrokeData} strokeData\n * @returns {void}\n */\n private publishEncrypted(encryptedContent: string, strokeData: StrokeData) {\n const data = {\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: this.webex.internal.llm.getBinding(),\n },\n headers: {\n to: strokeData.toUserId,\n },\n data: {\n eventType: 'relay.event',\n relayType: ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,\n request: {\n value: {\n sessionId: uuid.v4(),\n type: ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,\n locusUrl: this.locusUrl,\n content: encryptedContent,\n version: 'mVersion',\n fromUserId: strokeData.fromUserId,\n fromDeviceUrl: strokeData.fromDeviceUrl,\n shareInstanceId: strokeData.shareInstanceId,\n locusId: this.locusUrl && this.locusUrl.split('/').pop(),\n encryptionKeyUrl: strokeData.encryptionKeyUrl,\n },\n },\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n timestamp: new Date().getTime(),\n sequenceNumber: this.seqNum,\n filterMessage: false,\n };\n\n // @ts-ignore\n this.webex.internal.llm.socket.send(data);\n this.seqNum += 1;\n }\n}\n\nexport default AnnotationChannel;\n"],"mappings":"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"}