@webex/plugin-meetings 3.0.0-beta.15 → 3.0.0-beta.150

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 (480) hide show
  1. package/README.md +45 -1
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +359 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +193 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +23 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +52 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +43 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1012 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +78 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +67 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +1 -21
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +5 -20
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +0 -7
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +0 -21
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +0 -21
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +0 -21
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +0 -21
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/parameter.js +0 -28
  37. package/dist/common/errors/parameter.js.map +1 -1
  38. package/dist/common/errors/password-error.js +0 -21
  39. package/dist/common/errors/password-error.js.map +1 -1
  40. package/dist/common/errors/permission.js +0 -21
  41. package/dist/common/errors/permission.js.map +1 -1
  42. package/dist/common/errors/reconnection-in-progress.js +0 -17
  43. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  44. package/dist/common/errors/reconnection.js +0 -21
  45. package/dist/common/errors/reconnection.js.map +1 -1
  46. package/dist/common/errors/stats.js +0 -21
  47. package/dist/common/errors/stats.js.map +1 -1
  48. package/dist/common/errors/webex-errors.js +9 -43
  49. package/dist/common/errors/webex-errors.js.map +1 -1
  50. package/dist/common/errors/webex-meetings-error.js +1 -24
  51. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  52. package/dist/common/events/events-scope.js +0 -22
  53. package/dist/common/events/events-scope.js.map +1 -1
  54. package/dist/common/events/events.js +0 -23
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.js +0 -12
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.js +0 -15
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.js +0 -4
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.js +1 -8
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.js +35 -61
  65. package/dist/common/logs/request.js.map +1 -1
  66. package/dist/common/queue.js +4 -14
  67. package/dist/common/queue.js.map +1 -1
  68. package/dist/config.js +7 -13
  69. package/dist/config.js.map +1 -1
  70. package/dist/constants.js +208 -64
  71. package/dist/constants.js.map +1 -1
  72. package/dist/controls-options-manager/constants.js +14 -0
  73. package/dist/controls-options-manager/constants.js.map +1 -0
  74. package/dist/controls-options-manager/enums.js +27 -0
  75. package/dist/controls-options-manager/enums.js.map +1 -0
  76. package/dist/controls-options-manager/index.js +297 -0
  77. package/dist/controls-options-manager/index.js.map +1 -0
  78. package/dist/controls-options-manager/types.js +7 -0
  79. package/dist/controls-options-manager/types.js.map +1 -0
  80. package/dist/controls-options-manager/util.js +300 -0
  81. package/dist/controls-options-manager/util.js.map +1 -0
  82. package/dist/index.js +78 -17
  83. package/dist/index.js.map +1 -1
  84. package/dist/locus-info/controlsUtils.js +100 -29
  85. package/dist/locus-info/controlsUtils.js.map +1 -1
  86. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  87. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  88. package/dist/locus-info/fullState.js +0 -15
  89. package/dist/locus-info/fullState.js.map +1 -1
  90. package/dist/locus-info/hostUtils.js +4 -12
  91. package/dist/locus-info/hostUtils.js.map +1 -1
  92. package/dist/locus-info/index.js +387 -208
  93. package/dist/locus-info/index.js.map +1 -1
  94. package/dist/locus-info/infoUtils.js +0 -38
  95. package/dist/locus-info/infoUtils.js.map +1 -1
  96. package/dist/locus-info/mediaSharesUtils.js +54 -38
  97. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  98. package/dist/locus-info/parser.js +90 -126
  99. package/dist/locus-info/parser.js.map +1 -1
  100. package/dist/locus-info/selfUtils.js +93 -92
  101. package/dist/locus-info/selfUtils.js.map +1 -1
  102. package/dist/media/index.js +70 -219
  103. package/dist/media/index.js.map +1 -1
  104. package/dist/media/properties.js +74 -198
  105. package/dist/media/properties.js.map +1 -1
  106. package/dist/media/util.js +1 -8
  107. package/dist/media/util.js.map +1 -1
  108. package/dist/mediaQualityMetrics/config.js +505 -495
  109. package/dist/mediaQualityMetrics/config.js.map +1 -1
  110. package/dist/meeting/in-meeting-actions.js +79 -14
  111. package/dist/meeting/in-meeting-actions.js.map +1 -1
  112. package/dist/meeting/index.js +2685 -3324
  113. package/dist/meeting/index.js.map +1 -1
  114. package/dist/meeting/locusMediaRequest.js +291 -0
  115. package/dist/meeting/locusMediaRequest.js.map +1 -0
  116. package/dist/meeting/muteState.js +243 -185
  117. package/dist/meeting/muteState.js.map +1 -1
  118. package/dist/meeting/request.js +296 -342
  119. package/dist/meeting/request.js.map +1 -1
  120. package/dist/meeting/request.type.js +0 -1
  121. package/dist/meeting/request.type.js.map +1 -1
  122. package/dist/meeting/state.js +16 -26
  123. package/dist/meeting/state.js.map +1 -1
  124. package/dist/meeting/util.js +446 -585
  125. package/dist/meeting/util.js.map +1 -1
  126. package/dist/meeting-info/collection.js +3 -25
  127. package/dist/meeting-info/collection.js.map +1 -1
  128. package/dist/meeting-info/index.js +8 -31
  129. package/dist/meeting-info/index.js.map +1 -1
  130. package/dist/meeting-info/meeting-info-v2.js +261 -242
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +1 -16
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +98 -183
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +156 -232
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.js +24 -20
  139. package/dist/meetings/collection.js.map +1 -1
  140. package/dist/meetings/index.js +526 -372
  141. package/dist/meetings/index.js.map +1 -1
  142. package/dist/meetings/meetings.types.js +7 -0
  143. package/dist/meetings/meetings.types.js.map +1 -0
  144. package/dist/meetings/request.js +21 -40
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +172 -141
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.js +58 -57
  149. package/dist/member/index.js.map +1 -1
  150. package/dist/member/types.js +15 -0
  151. package/dist/member/types.js.map +1 -0
  152. package/dist/member/util.js +101 -69
  153. package/dist/member/util.js.map +1 -1
  154. package/dist/members/collection.js +12 -12
  155. package/dist/members/collection.js.map +1 -1
  156. package/dist/members/index.js +123 -162
  157. package/dist/members/index.js.map +1 -1
  158. package/dist/members/request.js +120 -85
  159. package/dist/members/request.js.map +1 -1
  160. package/dist/members/types.js +15 -0
  161. package/dist/members/types.js.map +1 -0
  162. package/dist/members/util.js +314 -260
  163. package/dist/members/util.js.map +1 -1
  164. package/dist/metrics/config.js +50 -16
  165. package/dist/metrics/config.js.map +1 -1
  166. package/dist/metrics/constants.js +4 -7
  167. package/dist/metrics/constants.js.map +1 -1
  168. package/dist/metrics/index.js +75 -147
  169. package/dist/metrics/index.js.map +1 -1
  170. package/dist/multistream/mediaRequestManager.js +170 -50
  171. package/dist/multistream/mediaRequestManager.js.map +1 -1
  172. package/dist/multistream/receiveSlot.js +58 -65
  173. package/dist/multistream/receiveSlot.js.map +1 -1
  174. package/dist/multistream/receiveSlotManager.js +73 -94
  175. package/dist/multistream/receiveSlotManager.js.map +1 -1
  176. package/dist/multistream/remoteMedia.js +55 -74
  177. package/dist/multistream/remoteMedia.js.map +1 -1
  178. package/dist/multistream/remoteMediaGroup.js +66 -43
  179. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  180. package/dist/multistream/remoteMediaManager.js +502 -442
  181. package/dist/multistream/remoteMediaManager.js.map +1 -1
  182. package/dist/networkQualityMonitor/index.js +24 -51
  183. package/dist/networkQualityMonitor/index.js.map +1 -1
  184. package/dist/personal-meeting-room/index.js +3 -38
  185. package/dist/personal-meeting-room/index.js.map +1 -1
  186. package/dist/personal-meeting-room/request.js +2 -33
  187. package/dist/personal-meeting-room/request.js.map +1 -1
  188. package/dist/personal-meeting-room/util.js +0 -13
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/index.js +190 -199
  191. package/dist/reachability/index.js.map +1 -1
  192. package/dist/reachability/request.js +14 -23
  193. package/dist/reachability/request.js.map +1 -1
  194. package/dist/reactions/constants.js +13 -0
  195. package/dist/reactions/constants.js.map +1 -0
  196. package/dist/reactions/reactions.js +2 -4
  197. package/dist/reactions/reactions.js.map +1 -1
  198. package/dist/reactions/reactions.type.js +18 -24
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +356 -476
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js +17 -0
  203. package/dist/recording-controller/enums.js.map +1 -0
  204. package/dist/recording-controller/index.js +343 -0
  205. package/dist/recording-controller/index.js.map +1 -0
  206. package/dist/recording-controller/util.js +63 -0
  207. package/dist/recording-controller/util.js.map +1 -0
  208. package/dist/roap/index.js +32 -75
  209. package/dist/roap/index.js.map +1 -1
  210. package/dist/roap/request.js +129 -136
  211. package/dist/roap/request.js.map +1 -1
  212. package/dist/roap/turnDiscovery.js +143 -103
  213. package/dist/roap/turnDiscovery.js.map +1 -1
  214. package/dist/statsAnalyzer/global.js +1 -95
  215. package/dist/statsAnalyzer/global.js.map +1 -1
  216. package/dist/statsAnalyzer/index.js +369 -462
  217. package/dist/statsAnalyzer/index.js.map +1 -1
  218. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  219. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  220. package/dist/transcription/index.js +9 -44
  221. package/dist/transcription/index.js.map +1 -1
  222. package/dist/types/annotation/annotation.types.d.ts +43 -0
  223. package/dist/types/annotation/constants.d.ts +31 -0
  224. package/dist/types/annotation/index.d.ts +124 -0
  225. package/dist/types/breakouts/breakout.d.ts +8 -0
  226. package/dist/types/breakouts/collection.d.ts +5 -0
  227. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  228. package/dist/types/breakouts/events.d.ts +2 -0
  229. package/dist/types/breakouts/index.d.ts +5 -0
  230. package/dist/types/breakouts/request.d.ts +22 -0
  231. package/dist/types/breakouts/utils.d.ts +15 -0
  232. package/dist/types/common/browser-detection.d.ts +9 -0
  233. package/dist/types/common/collection.d.ts +48 -0
  234. package/dist/types/common/config.d.ts +2 -0
  235. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  236. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  237. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  238. package/dist/types/common/errors/media.d.ts +15 -0
  239. package/dist/types/common/errors/parameter.d.ts +15 -0
  240. package/dist/types/common/errors/password-error.d.ts +15 -0
  241. package/dist/types/common/errors/permission.d.ts +14 -0
  242. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  243. package/dist/types/common/errors/reconnection.d.ts +15 -0
  244. package/dist/types/common/errors/stats.d.ts +15 -0
  245. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  246. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  247. package/dist/types/common/events/events-scope.d.ts +17 -0
  248. package/dist/types/common/events/events.d.ts +12 -0
  249. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  250. package/dist/types/common/events/util.d.ts +2 -0
  251. package/dist/types/common/logs/logger-config.d.ts +2 -0
  252. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  253. package/dist/types/common/logs/request.d.ts +34 -0
  254. package/dist/types/common/queue.d.ts +32 -0
  255. package/dist/types/config.d.ts +72 -0
  256. package/dist/types/constants.d.ts +978 -0
  257. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  258. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  259. package/dist/types/controls-options-manager/index.d.ts +136 -0
  260. package/dist/types/controls-options-manager/types.d.ts +43 -0
  261. package/dist/types/controls-options-manager/util.d.ts +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  264. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  265. package/dist/types/locus-info/fullState.d.ts +2 -0
  266. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  267. package/dist/types/locus-info/index.d.ts +315 -0
  268. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  269. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  270. package/dist/types/locus-info/parser.d.ts +212 -0
  271. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  272. package/dist/types/media/index.d.ts +34 -0
  273. package/dist/types/media/properties.d.ts +86 -0
  274. package/dist/types/media/util.d.ts +2 -0
  275. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  276. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  277. package/dist/types/meeting/index.d.ts +1509 -0
  278. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  279. package/dist/types/meeting/muteState.d.ts +184 -0
  280. package/dist/types/meeting/request.d.ts +270 -0
  281. package/dist/types/meeting/request.type.d.ts +11 -0
  282. package/dist/types/meeting/state.d.ts +9 -0
  283. package/dist/types/meeting/util.d.ts +75 -0
  284. package/dist/types/meeting-info/collection.d.ts +20 -0
  285. package/dist/types/meeting-info/index.d.ts +57 -0
  286. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  287. package/dist/types/meeting-info/request.d.ts +22 -0
  288. package/dist/types/meeting-info/util.d.ts +2 -0
  289. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  290. package/dist/types/meetings/collection.d.ts +31 -0
  291. package/dist/types/meetings/index.d.ts +364 -0
  292. package/dist/types/meetings/meetings.types.d.ts +4 -0
  293. package/dist/types/meetings/request.d.ts +27 -0
  294. package/dist/types/meetings/util.d.ts +18 -0
  295. package/dist/types/member/index.d.ts +157 -0
  296. package/dist/types/member/types.d.ts +21 -0
  297. package/dist/types/member/util.d.ts +2 -0
  298. package/dist/types/members/collection.d.ts +29 -0
  299. package/dist/types/members/index.d.ts +353 -0
  300. package/dist/types/members/request.d.ts +114 -0
  301. package/dist/types/members/types.d.ts +24 -0
  302. package/dist/types/members/util.d.ts +210 -0
  303. package/dist/types/metrics/config.d.ts +195 -0
  304. package/dist/types/metrics/constants.d.ts +55 -0
  305. package/dist/types/metrics/index.d.ts +169 -0
  306. package/dist/types/multistream/mediaRequestManager.d.ts +104 -0
  307. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  308. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  309. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  310. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  311. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  312. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  313. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  314. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  315. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  316. package/dist/types/reachability/index.d.ts +152 -0
  317. package/dist/types/reachability/request.d.ts +37 -0
  318. package/dist/types/reactions/constants.d.ts +3 -0
  319. package/dist/types/reactions/reactions.d.ts +4 -0
  320. package/dist/types/reactions/reactions.type.d.ts +52 -0
  321. package/dist/types/reconnection-manager/index.d.ts +126 -0
  322. package/dist/types/recording-controller/enums.d.ts +7 -0
  323. package/dist/types/recording-controller/index.d.ts +193 -0
  324. package/dist/types/recording-controller/util.d.ts +13 -0
  325. package/dist/types/roap/index.d.ts +77 -0
  326. package/dist/types/roap/request.d.ts +36 -0
  327. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  328. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  329. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  330. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  331. package/dist/types/transcription/index.d.ts +64 -0
  332. package/package.json +28 -21
  333. package/src/annotation/annotation.types.ts +52 -0
  334. package/src/annotation/constants.ts +36 -0
  335. package/src/annotation/index.ts +343 -0
  336. package/src/breakouts/README.md +220 -0
  337. package/src/breakouts/breakout.ts +163 -0
  338. package/src/breakouts/collection.ts +19 -0
  339. package/src/breakouts/edit-lock-error.ts +25 -0
  340. package/src/breakouts/events.ts +37 -0
  341. package/src/breakouts/index.ts +888 -0
  342. package/src/breakouts/request.ts +55 -0
  343. package/src/breakouts/utils.ts +57 -0
  344. package/src/common/errors/webex-errors.ts +6 -2
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/config.ts +5 -7
  347. package/src/constants.ts +155 -20
  348. package/src/controls-options-manager/constants.ts +5 -0
  349. package/src/controls-options-manager/enums.ts +18 -0
  350. package/src/controls-options-manager/index.ts +278 -0
  351. package/src/controls-options-manager/types.ts +59 -0
  352. package/src/controls-options-manager/util.ts +286 -0
  353. package/src/index.ts +34 -0
  354. package/src/locus-info/controlsUtils.ts +108 -0
  355. package/src/locus-info/index.ts +310 -21
  356. package/src/locus-info/mediaSharesUtils.ts +48 -0
  357. package/src/locus-info/parser.ts +2 -1
  358. package/src/locus-info/selfUtils.ts +71 -1
  359. package/src/media/index.ts +70 -142
  360. package/src/media/properties.ts +41 -104
  361. package/src/mediaQualityMetrics/config.ts +379 -377
  362. package/src/meeting/in-meeting-actions.ts +156 -0
  363. package/src/meeting/index.ts +1730 -1768
  364. package/src/meeting/locusMediaRequest.ts +309 -0
  365. package/src/meeting/muteState.ts +228 -132
  366. package/src/meeting/request.ts +100 -91
  367. package/src/meeting/request.type.ts +2 -0
  368. package/src/meeting/util.ts +421 -421
  369. package/src/meeting-info/meeting-info-v2.ts +134 -13
  370. package/src/meeting-info/utilv2.ts +13 -3
  371. package/src/meetings/collection.ts +20 -0
  372. package/src/meetings/index.ts +375 -83
  373. package/src/meetings/meetings.types.ts +9 -0
  374. package/src/meetings/request.ts +3 -1
  375. package/src/meetings/util.ts +103 -4
  376. package/src/member/index.ts +40 -0
  377. package/src/member/types.ts +24 -0
  378. package/src/member/util.ts +81 -1
  379. package/src/members/collection.ts +8 -0
  380. package/src/members/index.ts +108 -6
  381. package/src/members/request.ts +98 -17
  382. package/src/members/types.ts +28 -0
  383. package/src/members/util.ts +319 -240
  384. package/src/metrics/config.ts +49 -10
  385. package/src/metrics/constants.ts +2 -4
  386. package/src/metrics/index.ts +43 -27
  387. package/src/multistream/mediaRequestManager.ts +210 -45
  388. package/src/multistream/receiveSlot.ts +68 -26
  389. package/src/multistream/receiveSlotManager.ts +61 -38
  390. package/src/multistream/remoteMedia.ts +29 -3
  391. package/src/multistream/remoteMediaGroup.ts +61 -2
  392. package/src/multistream/remoteMediaManager.ts +260 -66
  393. package/src/networkQualityMonitor/index.ts +6 -6
  394. package/src/reachability/index.ts +75 -25
  395. package/src/reachability/request.ts +10 -5
  396. package/src/reactions/constants.ts +4 -0
  397. package/src/reactions/reactions.ts +4 -4
  398. package/src/reactions/reactions.type.ts +28 -3
  399. package/src/reconnection-manager/index.ts +53 -32
  400. package/src/recording-controller/enums.ts +8 -0
  401. package/src/recording-controller/index.ts +315 -0
  402. package/src/recording-controller/util.ts +58 -0
  403. package/src/roap/index.ts +21 -30
  404. package/src/roap/request.ts +51 -52
  405. package/src/roap/turnDiscovery.ts +51 -27
  406. package/src/statsAnalyzer/global.ts +1 -94
  407. package/src/statsAnalyzer/index.ts +380 -390
  408. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  409. package/test/integration/spec/converged-space-meetings.js +233 -0
  410. package/test/integration/spec/journey.js +332 -255
  411. package/test/integration/spec/space-meeting.js +78 -5
  412. package/test/integration/spec/transcription.js +1 -1
  413. package/test/unit/spec/annotation/index.ts +436 -0
  414. package/test/unit/spec/breakouts/breakout.ts +203 -0
  415. package/test/unit/spec/breakouts/collection.ts +15 -0
  416. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  417. package/test/unit/spec/breakouts/events.ts +77 -0
  418. package/test/unit/spec/breakouts/index.ts +1715 -0
  419. package/test/unit/spec/breakouts/request.ts +104 -0
  420. package/test/unit/spec/breakouts/utils.js +72 -0
  421. package/test/unit/spec/controls-options-manager/index.js +287 -0
  422. package/test/unit/spec/controls-options-manager/util.js +518 -0
  423. package/test/unit/spec/fixture/locus.js +1 -0
  424. package/test/unit/spec/locus-info/controlsUtils.js +303 -30
  425. package/test/unit/spec/locus-info/index.js +615 -4
  426. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  427. package/test/unit/spec/locus-info/selfConstant.js +38 -0
  428. package/test/unit/spec/locus-info/selfUtils.js +200 -0
  429. package/test/unit/spec/media/index.ts +118 -22
  430. package/test/unit/spec/media/properties.ts +9 -9
  431. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
  432. package/test/unit/spec/meeting/index.js +2394 -1381
  433. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  434. package/test/unit/spec/meeting/muteState.js +370 -208
  435. package/test/unit/spec/meeting/request.js +354 -42
  436. package/test/unit/spec/meeting/utils.js +268 -156
  437. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  438. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  439. package/test/unit/spec/meetings/collection.js +14 -0
  440. package/test/unit/spec/meetings/index.js +842 -128
  441. package/test/unit/spec/meetings/utils.js +206 -2
  442. package/test/unit/spec/member/index.js +24 -0
  443. package/test/unit/spec/member/util.js +384 -32
  444. package/test/unit/spec/members/index.js +320 -1
  445. package/test/unit/spec/members/request.js +206 -27
  446. package/test/unit/spec/members/utils.js +184 -0
  447. package/test/unit/spec/metrics/index.js +98 -0
  448. package/test/unit/spec/multistream/mediaRequestManager.ts +676 -105
  449. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  450. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  451. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  452. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  453. package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
  454. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  455. package/test/unit/spec/reachability/index.ts +176 -25
  456. package/test/unit/spec/reachability/request.js +66 -0
  457. package/test/unit/spec/reconnection-manager/index.js +46 -13
  458. package/test/unit/spec/recording-controller/index.js +231 -0
  459. package/test/unit/spec/recording-controller/util.js +102 -0
  460. package/test/unit/spec/roap/index.ts +21 -51
  461. package/test/unit/spec/roap/request.ts +187 -0
  462. package/test/unit/spec/roap/turnDiscovery.ts +73 -34
  463. package/test/unit/spec/stats-analyzer/index.js +94 -43
  464. package/test/utils/constants.js +9 -0
  465. package/test/utils/integrationTestUtils.js +46 -0
  466. package/test/utils/testUtils.js +0 -45
  467. package/test/utils/webex-config.js +4 -0
  468. package/test/utils/webex-test-users.js +7 -3
  469. package/tsconfig.json +6 -0
  470. package/dist/media/internal-media-core-wrapper.js +0 -22
  471. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  472. package/dist/meeting/effectsState.js +0 -334
  473. package/dist/meeting/effectsState.js.map +0 -1
  474. package/dist/multistream/multistreamMedia.js +0 -117
  475. package/dist/multistream/multistreamMedia.js.map +0 -1
  476. package/src/index.js +0 -15
  477. package/src/media/internal-media-core-wrapper.ts +0 -9
  478. package/src/meeting/effectsState.ts +0 -211
  479. package/src/multistream/multistreamMedia.ts +0 -93
  480. package/test/unit/spec/meeting/effectsState.js +0 -281
package/README.md CHANGED
@@ -331,7 +331,6 @@ webex.meetings.on('meeting:added', (addedMeeting) => {
331
331
  addedMeeting.join().then(() => {});
332
332
  }
333
333
  ```
334
-
335
334
  ##### Reject an incoming meeting
336
335
 
337
336
  When listening to an added meeting, to determine if it is an "incoming" meeting, check the type property of the meeting:
@@ -457,6 +456,51 @@ audioOutputSelect.onchange = function () {
457
456
  attachSinkId(document.getElementById('remoteaudio'), audioOutputSelect.value);
458
457
  };
459
458
  ```
459
+ ##### Availabel joining options
460
+ ```
461
+ /**
462
+ * Make a network request to join a meeting
463
+ * @param {Object} options
464
+ * @param {String} options.sipUri
465
+ * @param {String} options.deviceUrl
466
+ * @param {String} options.locusUrl
467
+ * @param {String} options.resourceId,
468
+ * @param {String} options.correlationId
469
+ * @param {boolean} options.ensureConversation
470
+ * @param {boolean} options.moderator
471
+ * @param {boolean} options.pin
472
+ * @param {boolean} options.moveToResource
473
+ * @param {Object} options.roapMessage
474
+ * @param {boolean} options.breakoutsSupported
475
+ * @param {String} options.locale,
476
+ * @param {Array} options.deviceCapabilities
477
+ * @param {boolean} options.liveAnnotationSupported
478
+ * @returns {Promise}
479
+ */
480
+ ```
481
+ ##### options.deviceCapabilities
482
+ This option provides toggles that Locus service needs, and those toggles will control the performance or features of the meetings to be joined, see examples:
483
+ ###### Breakout Sessions
484
+ ```
485
+ if (breakoutsSupported) {
486
+ deviceCapabilities.push(BREAKOUTS.BREAKOUTS_SUPPORTED);
487
+ }
488
+ ```
489
+ ###### Live Annotation
490
+ ```
491
+ if (liveAnnotationSupported) {
492
+ deviceCapabilities.push(ANNOTATION.ANNOTATION_ON_SHARE_SUPPORTED);
493
+ }
494
+ ```
495
+ ###### Audio Disclaimer
496
+ ```
497
+ const joinOptions = {
498
+ locale: 'en_UK', // audio disclaimer language
499
+ deviceCapabilities: ['SERVER_AUDIO_ANNOUNCEMENT_SUPPORTED'], // audio disclaimer toggle
500
+ };
501
+
502
+ const joinMeeting = () => { meeting.join(joinOptions)}
503
+ ```
460
504
 
461
505
  ##### Record
462
506
 
@@ -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":["import {ANNOTATION_POLICY} from './constants';\n\n/**\n * Type for an StrokeData Object\n */\ntype StrokeData = {\n deviceId: string;\n toUserId: string;\n requesterId: string;\n content: string;\n shareInstanceId: string;\n encryptionKeyUrl: string;\n version: 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/**\n * Type for an annotation Object include annotation version and privilege\n */\ntype AnnotationInfo = {\n version: string;\n policy: ANNOTATION_POLICY;\n};\n\ninterface IAnnotationChannel {\n // === below is for presenter\n acceptRequest: (approval) => undefined | Promise<void>;\n declineRequest: (approval) => undefined | Promise<void>;\n closeAnnotation: (requestData: RequestData) => undefined | Promise<void>;\n // change annotation privilege\n changeAnnotationOptions: (remoteShareUrl, annotationInfo) => undefined | Promise<void>;\n // === below is for attendee\n approveAnnotation: (requestData: RequestData) => undefined | Promise<void>;\n cancelApproveAnnotation: (requestData: RequestData, approval) => undefined | Promise<void>;\n sendStrokeData: (strokeData: StrokeData) => void;\n // =====\n approvalUrlUpdate: (approvalUrl: string) => void;\n locusUrlUpdate: (locusUrl: string) => void;\n}\n\nexport type {StrokeData, RequestData, CommandRequestBody, IAnnotationChannel, AnnotationInfo};\n"],"mappings":""}
@@ -0,0 +1,49 @@
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
+ exports.ANNOTATION_POLICY = ANNOTATION_POLICY;
26
+ (function (ANNOTATION_POLICY) {
27
+ ANNOTATION_POLICY["ANYONE_CAN_ANNOTATE"] = "AnyoneCanAnnotate";
28
+ ANNOTATION_POLICY["APPROVAL"] = "Approval";
29
+ ANNOTATION_POLICY["ANNOTATION_NOT_ALLOWED"] = "AnnotationNotAllowed";
30
+ })(ANNOTATION_POLICY || (exports.ANNOTATION_POLICY = ANNOTATION_POLICY = {}));
31
+ var ANNOTATION_REQUEST_TYPE = {
32
+ ANNOTATION_MESSAGE: 'annotation_message'
33
+ };
34
+ exports.ANNOTATION_REQUEST_TYPE = ANNOTATION_REQUEST_TYPE;
35
+ var ANNOTATION_ACTION_TYPE;
36
+ exports.ANNOTATION_ACTION_TYPE = ANNOTATION_ACTION_TYPE;
37
+ (function (ANNOTATION_ACTION_TYPE) {
38
+ ANNOTATION_ACTION_TYPE["REQUESTED"] = "REQUESTED";
39
+ ANNOTATION_ACTION_TYPE["ACCEPTED"] = "ACCEPTED";
40
+ ANNOTATION_ACTION_TYPE["DECLINED"] = "DECLINED";
41
+ ANNOTATION_ACTION_TYPE["OFFERED"] = "OFFERED";
42
+ ANNOTATION_ACTION_TYPE["CANCELED"] = "CANCELED";
43
+ ANNOTATION_ACTION_TYPE["EXPIRED"] = "EXPIRED";
44
+ ANNOTATION_ACTION_TYPE["REVOKED"] = "REVOKED";
45
+ ANNOTATION_ACTION_TYPE["CLOSED"] = "CLOSED";
46
+ })(ANNOTATION_ACTION_TYPE || (exports.ANNOTATION_ACTION_TYPE = ANNOTATION_ACTION_TYPE = {}));
47
+ var ANNOTATION = 'annotation';
48
+ exports.ANNOTATION = ANNOTATION;
49
+ //# 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","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 enum 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;AAAA,IAEUC,iBAAiB;AAAA;AAAA,WAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;AAAA,GAAjBA,iBAAiB,iCAAjBA,iBAAiB;AAMtB,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,359 @@
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), "deviceUrl", void 0);
49
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendAnnotationAction", /*#__PURE__*/function () {
50
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(actionType, requestData) {
51
+ var body;
52
+ return _regenerator.default.wrap(function _callee$(_context) {
53
+ while (1) switch (_context.prev = _context.next) {
54
+ case 0:
55
+ body = {
56
+ actionType: actionType,
57
+ resourceType: 'AnnotationOnShare',
58
+ shareInstanceId: requestData.shareInstanceId
59
+ };
60
+ if (requestData !== null && requestData !== void 0 && requestData.toUserId) {
61
+ body.receivers = [{
62
+ participantId: requestData.toUserId,
63
+ deviceUrl: requestData.toDeviceUrl
64
+ }];
65
+ }
66
+
67
+ // @ts-ignore
68
+ return _context.abrupt("return", _this.request({
69
+ method: _constants2.HTTP_VERBS.POST,
70
+ url: "".concat(_this.approvalUrl),
71
+ body: body
72
+ }));
73
+ case 3:
74
+ case "end":
75
+ return _context.stop();
76
+ }
77
+ }, _callee);
78
+ }));
79
+ return function (_x, _x2) {
80
+ return _ref.apply(this, arguments);
81
+ };
82
+ }());
83
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "decryptContent", function (encryptionKeyUrl, content) {
84
+ // @ts-ignore
85
+ return _this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then(function (res) {
86
+ return res;
87
+ });
88
+ });
89
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "encryptContent", function (encryptionKeyUrl, content) {
90
+ // @ts-ignore
91
+ return _this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then(function (res) {
92
+ return res;
93
+ });
94
+ });
95
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendStrokeData", function (strokeData) {
96
+ // @ts-ignore
97
+ if (!_this.webex.internal.llm.isConnected()) return;
98
+ _this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(function (encryptedContent) {
99
+ _this.publishEncrypted(encryptedContent, strokeData);
100
+ });
101
+ });
102
+ _this.seqNum = 1;
103
+ return _this;
104
+ }
105
+
106
+ /**
107
+ * Process Stroke Data
108
+ * @param {object} data
109
+ * @returns {void}
110
+ */
111
+ (0, _createClass2.default)(AnnotationChannel, [{
112
+ key: "processStrokeMessage",
113
+ value: function processStrokeMessage(data) {
114
+ var _this2 = this;
115
+ var request = data.request;
116
+ this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(function (decryptedContent) {
117
+ request.value.content = decryptedContent;
118
+ _triggerProxy.default.trigger(_this2, {
119
+ file: 'annotation',
120
+ function: 'processStrokeMessage'
121
+ }, _constants.EVENT_TRIGGERS.ANNOTATION_STROKE_DATA, {
122
+ payload: data
123
+ });
124
+ });
125
+ }
126
+
127
+ /** bind all events from mercury
128
+ * @param {Object} e
129
+ * @returns {undefined}
130
+ */
131
+ }, {
132
+ key: "eventCommandProcessor",
133
+ value: function eventCommandProcessor(e) {
134
+ var _e$data, _e$data2, _e$data2$approval, _e$data3, _e$data3$approval;
135
+ 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) {
136
+ _triggerProxy.default.trigger(this, {
137
+ file: 'annotation',
138
+ function: 'approval_request'
139
+ }, _constants.EVENT_TRIGGERS.ANNOTATION_COMMAND, {
140
+ type: e.data.approval.actionType,
141
+ payload: e.data.approval
142
+ });
143
+ }
144
+ }
145
+
146
+ /** bind all events from llm
147
+ * @param {Object} e
148
+ * @returns {undefined}
149
+ */
150
+ }, {
151
+ key: "eventDataProcessor",
152
+ value: function eventDataProcessor(e) {
153
+ var _e$data4;
154
+ switch (e === null || e === void 0 ? void 0 : (_e$data4 = e.data) === null || _e$data4 === void 0 ? void 0 : _e$data4.relayType) {
155
+ case _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:
156
+ this.processStrokeMessage(e.data);
157
+ break;
158
+ default:
159
+ break;
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Listen to websocket messages
165
+ * @returns {undefined}
166
+ */
167
+ }, {
168
+ key: "listenToEvents",
169
+ value: function listenToEvents() {
170
+ if (!this.hasSubscribedToEvents) {
171
+ // @ts-ignore
172
+ this.webex.internal.mercury.on('event:locus.approval_request', this.eventCommandProcessor, this);
173
+ // @ts-ignore
174
+ this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);
175
+ this.hasSubscribedToEvents = true;
176
+ }
177
+ }
178
+
179
+ /**
180
+ * set locusUrl
181
+ * @param {string} locusUrl
182
+ * @returns {void}
183
+ */
184
+ }, {
185
+ key: "locusUrlUpdate",
186
+ value: function locusUrlUpdate(locusUrl) {
187
+ this.locusUrl = locusUrl;
188
+ this.listenToEvents();
189
+ }
190
+
191
+ /**
192
+ * set approved url
193
+ * @param {string} approvalUrl
194
+ * @returns {void}
195
+ */
196
+ }, {
197
+ key: "approvalUrlUpdate",
198
+ value: function approvalUrlUpdate(approvalUrl) {
199
+ this.approvalUrl = approvalUrl;
200
+ }
201
+
202
+ /**
203
+ * accept request
204
+ * @param {object} approval
205
+ * @returns {Promise}
206
+ */
207
+ }, {
208
+ key: "acceptRequest",
209
+ value: function acceptRequest(approval) {
210
+ // @ts-ignore
211
+ return this.request({
212
+ method: _constants2.HTTP_VERBS.PUT,
213
+ url: approval.url,
214
+ body: {
215
+ resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
216
+ actionType: _constants.ANNOTATION_ACTION_TYPE.ACCEPTED
217
+ }
218
+ });
219
+ }
220
+
221
+ /**
222
+ * presenter declined request annotation
223
+ * @param {approval} approval
224
+ * @returns {Promise}
225
+ */
226
+ }, {
227
+ key: "declineRequest",
228
+ value: function declineRequest(approval) {
229
+ // @ts-ignore
230
+ return this.request({
231
+ method: _constants2.HTTP_VERBS.PUT,
232
+ url: approval.url,
233
+ body: {
234
+ resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
235
+ actionType: _constants.ANNOTATION_ACTION_TYPE.DECLINED
236
+ }
237
+ });
238
+ }
239
+
240
+ /**
241
+ * request approved annotation
242
+ * @param {RequestData} requestData
243
+ * @returns {Promise}
244
+ */
245
+ }, {
246
+ key: "approveAnnotation",
247
+ value: function approveAnnotation(requestData) {
248
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.REQUESTED, requestData);
249
+ }
250
+
251
+ /**
252
+ * cancel approved annotation
253
+ * @param {object} requestData
254
+ * @param {object} approval
255
+ * @returns {Promise}
256
+ */
257
+ }, {
258
+ key: "cancelApproveAnnotation",
259
+ value: function cancelApproveAnnotation(requestData, approval) {
260
+ var body = {
261
+ actionType: _constants.ANNOTATION_ACTION_TYPE.CANCELED,
262
+ resourceType: 'AnnotationOnShare',
263
+ shareInstanceId: requestData.shareInstanceId
264
+ };
265
+
266
+ // @ts-ignore
267
+ return this.request({
268
+ method: _constants2.HTTP_VERBS.PUT,
269
+ url: "".concat(approval.url),
270
+ body: body
271
+ });
272
+ }
273
+
274
+ /**
275
+ * close annotation
276
+ * @param {object} requestData
277
+ * @returns {Promise}
278
+ */
279
+ }, {
280
+ key: "closeAnnotation",
281
+ value: function closeAnnotation(requestData) {
282
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.CLOSED, requestData);
283
+ }
284
+
285
+ /**
286
+ * send annotation command
287
+ * @param {ANNOTATION_ACTION_TYPE} actionType
288
+ * @param {RequestData} requestData
289
+ * @returns {Promise}
290
+ */
291
+ }, {
292
+ key: "changeAnnotationOptions",
293
+ value:
294
+ /**
295
+ * Change annotation options
296
+ * @param {remoteShareUrl} remoteShareUrl
297
+ * @param {annotationInfo} annotationInfo
298
+ * @returns {Promise}
299
+ */
300
+ function changeAnnotationOptions(remoteShareUrl, annotationInfo) {
301
+ // @ts-ignore
302
+ return this.request({
303
+ method: _constants2.HTTP_VERBS.PATCH,
304
+ url: remoteShareUrl,
305
+ body: annotationInfo
306
+ });
307
+ }
308
+
309
+ /**
310
+ * private encrypted the strokes data
311
+ * @param {string} encryptedContent
312
+ * @param {StrokeData} strokeData
313
+ * @returns {void}
314
+ */
315
+ }, {
316
+ key: "publishEncrypted",
317
+ value: function publishEncrypted(encryptedContent, strokeData) {
318
+ var data = {
319
+ id: "".concat(this.seqNum),
320
+ type: 'publishRequest',
321
+ recipients: {
322
+ // @ts-ignore
323
+ route: this.webex.internal.llm.getBinding()
324
+ },
325
+ headers: {
326
+ to: strokeData.toUserId
327
+ },
328
+ data: {
329
+ eventType: 'relay.event',
330
+ relayType: _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,
331
+ request: {
332
+ value: {
333
+ type: _constants.ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,
334
+ content: encryptedContent,
335
+ deviceId: strokeData.deviceId,
336
+ seq: this.seqNum,
337
+ requesterId: strokeData.requesterId,
338
+ version: strokeData.version,
339
+ shareInstanceId: strokeData.shareInstanceId,
340
+ encryptionKeyUrl: strokeData.encryptionKeyUrl
341
+ }
342
+ }
343
+ },
344
+ trackingId: "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString()),
345
+ timestamp: new Date().getTime(),
346
+ sequenceNumber: this.seqNum,
347
+ filterMessage: false
348
+ };
349
+
350
+ // @ts-ignore
351
+ this.webex.internal.llm.socket.send(data);
352
+ this.seqNum += 1;
353
+ }
354
+ }]);
355
+ return AnnotationChannel;
356
+ }(_webexCore.WebexPlugin);
357
+ var _default = AnnotationChannel;
358
+ exports.default = _default;
359
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AnnotationChannel","args","ANNOTATION","actionType","requestData","body","resourceType","shareInstanceId","toUserId","receivers","participantId","deviceUrl","toDeviceUrl","request","method","HTTP_VERBS","POST","url","approvalUrl","encryptionKeyUrl","content","webex","internal","encryption","decryptText","then","res","encryptText","strokeData","llm","isConnected","encryptContent","encryptedContent","publishEncrypted","seqNum","data","decryptContent","value","decryptedContent","TriggerProxy","trigger","file","function","EVENT_TRIGGERS","ANNOTATION_STROKE_DATA","payload","e","eventType","approval","ANNOTATION_RESOURCE_TYPE","ANNOTATION_COMMAND","type","relayType","ANNOTATION_RELAY_TYPES","ANNOTATION_CLIENT","processStrokeMessage","hasSubscribedToEvents","mercury","on","eventCommandProcessor","eventDataProcessor","locusUrl","listenToEvents","PUT","ANNOTATION_ACTION_TYPE","ACCEPTED","DECLINED","sendAnnotationAction","REQUESTED","CANCELED","CLOSED","remoteShareUrl","annotationInfo","PATCH","id","recipients","route","getBinding","headers","to","ANNOTATION_REQUEST_TYPE","ANNOTATION_MESSAGE","deviceId","seq","requesterId","version","trackingId","config","trackingIdPrefix","uuid","v4","toString","timestamp","Date","getTime","sequenceNumber","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 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 {object} data\n * @returns {void}\n */\n private processStrokeMessage(data) {\n const {request} = data;\n this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(\n (decryptedContent) => {\n request.value.content = decryptedContent;\n TriggerProxy.trigger(\n this,\n {\n file: 'annotation',\n function: 'processStrokeMessage',\n },\n EVENT_TRIGGERS.ANNOTATION_STROKE_DATA,\n {\n payload: data,\n }\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 }\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.processStrokeMessage(e.data);\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(\n 'event:locus.approval_request',\n this.eventCommandProcessor,\n this\n );\n // @ts-ignore\n this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);\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 * @param {object} approval\n * @returns {Promise}\n */\n public cancelApproveAnnotation(requestData: RequestData, approval) {\n const body: CommandRequestBody = {\n actionType: ANNOTATION_ACTION_TYPE.CANCELED,\n resourceType: 'AnnotationOnShare',\n shareInstanceId: requestData.shareInstanceId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n url: `${approval.url}`,\n body,\n });\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 * Change annotation options\n * @param {remoteShareUrl} remoteShareUrl\n * @param {annotationInfo} annotationInfo\n * @returns {Promise}\n */\n public changeAnnotationOptions(remoteShareUrl, annotationInfo) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n url: remoteShareUrl,\n body: annotationInfo,\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 type: ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,\n content: encryptedContent,\n deviceId: strokeData.deviceId,\n seq: this.seqNum,\n requesterId: strokeData.requesterId,\n version: strokeData.version,\n shareInstanceId: strokeData.shareInstanceId,\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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"}