@webex/plugin-meetings 3.0.0-beta.41 → 3.0.0-beta.410

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 (398) hide show
  1. package/README.md +58 -8
  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 +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +94 -15
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +625 -123
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +27 -8
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/no-meeting-info.js +51 -0
  17. package/dist/common/errors/no-meeting-info.js.map +1 -0
  18. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  19. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +48 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/logs/request.js +5 -1
  25. package/dist/common/logs/request.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +6 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +247 -34
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +116 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/interceptors/index.js +15 -0
  43. package/dist/interceptors/index.js.map +1 -0
  44. package/dist/interceptors/locusRetry.js +93 -0
  45. package/dist/interceptors/locusRetry.js.map +1 -0
  46. package/dist/interpretation/collection.js +23 -0
  47. package/dist/interpretation/collection.js.map +1 -0
  48. package/dist/interpretation/index.js +380 -0
  49. package/dist/interpretation/index.js.map +1 -0
  50. package/dist/interpretation/siLanguage.js +25 -0
  51. package/dist/interpretation/siLanguage.js.map +1 -0
  52. package/dist/locus-info/controlsUtils.js +91 -2
  53. package/dist/locus-info/controlsUtils.js.map +1 -1
  54. package/dist/locus-info/index.js +386 -62
  55. package/dist/locus-info/index.js.map +1 -1
  56. package/dist/locus-info/infoUtils.js +7 -1
  57. package/dist/locus-info/infoUtils.js.map +1 -1
  58. package/dist/locus-info/mediaSharesUtils.js +71 -1
  59. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  60. package/dist/locus-info/parser.js +249 -72
  61. package/dist/locus-info/parser.js.map +1 -1
  62. package/dist/locus-info/selfUtils.js +89 -14
  63. package/dist/locus-info/selfUtils.js.map +1 -1
  64. package/dist/media/index.js +65 -102
  65. package/dist/media/index.js.map +1 -1
  66. package/dist/media/properties.js +73 -124
  67. package/dist/media/properties.js.map +1 -1
  68. package/dist/mediaQualityMetrics/config.js +135 -330
  69. package/dist/mediaQualityMetrics/config.js.map +1 -1
  70. package/dist/meeting/in-meeting-actions.js +86 -2
  71. package/dist/meeting/in-meeting-actions.js.map +1 -1
  72. package/dist/meeting/index.js +4531 -2994
  73. package/dist/meeting/index.js.map +1 -1
  74. package/dist/meeting/locusMediaRequest.js +292 -0
  75. package/dist/meeting/locusMediaRequest.js.map +1 -0
  76. package/dist/meeting/muteState.js +236 -136
  77. package/dist/meeting/muteState.js.map +1 -1
  78. package/dist/meeting/request.js +189 -155
  79. package/dist/meeting/request.js.map +1 -1
  80. package/dist/meeting/util.js +676 -417
  81. package/dist/meeting/util.js.map +1 -1
  82. package/dist/meeting/voicea-meeting.js +172 -0
  83. package/dist/meeting/voicea-meeting.js.map +1 -0
  84. package/dist/meeting-info/index.js +73 -7
  85. package/dist/meeting-info/index.js.map +1 -1
  86. package/dist/meeting-info/meeting-info-v2.js +201 -57
  87. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  88. package/dist/meeting-info/util.js +8 -7
  89. package/dist/meeting-info/util.js.map +1 -1
  90. package/dist/meeting-info/utilv2.js +44 -40
  91. package/dist/meeting-info/utilv2.js.map +1 -1
  92. package/dist/meetings/collection.js +39 -0
  93. package/dist/meetings/collection.js.map +1 -1
  94. package/dist/meetings/index.js +484 -119
  95. package/dist/meetings/index.js.map +1 -1
  96. package/dist/meetings/meetings.types.js +7 -0
  97. package/dist/meetings/meetings.types.js.map +1 -0
  98. package/dist/meetings/request.js +2 -0
  99. package/dist/meetings/request.js.map +1 -1
  100. package/dist/meetings/util.js +73 -7
  101. package/dist/meetings/util.js.map +1 -1
  102. package/dist/member/index.js +57 -0
  103. package/dist/member/index.js.map +1 -1
  104. package/dist/member/types.js +25 -0
  105. package/dist/member/types.js.map +1 -0
  106. package/dist/member/util.js +132 -25
  107. package/dist/member/util.js.map +1 -1
  108. package/dist/members/collection.js +10 -0
  109. package/dist/members/collection.js.map +1 -1
  110. package/dist/members/index.js +100 -5
  111. package/dist/members/index.js.map +1 -1
  112. package/dist/members/request.js +106 -38
  113. package/dist/members/request.js.map +1 -1
  114. package/dist/members/types.js +15 -0
  115. package/dist/members/types.js.map +1 -0
  116. package/dist/members/util.js +326 -232
  117. package/dist/members/util.js.map +1 -1
  118. package/dist/metrics/constants.js +18 -1
  119. package/dist/metrics/constants.js.map +1 -1
  120. package/dist/metrics/index.js +1 -446
  121. package/dist/metrics/index.js.map +1 -1
  122. package/dist/multistream/mediaRequestManager.js +223 -32
  123. package/dist/multistream/mediaRequestManager.js.map +1 -1
  124. package/dist/multistream/receiveSlot.js +10 -0
  125. package/dist/multistream/receiveSlot.js.map +1 -1
  126. package/dist/multistream/receiveSlotManager.js +39 -36
  127. package/dist/multistream/receiveSlotManager.js.map +1 -1
  128. package/dist/multistream/remoteMedia.js +3 -1
  129. package/dist/multistream/remoteMedia.js.map +1 -1
  130. package/dist/multistream/remoteMediaGroup.js +76 -5
  131. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  132. package/dist/multistream/remoteMediaManager.js +366 -104
  133. package/dist/multistream/remoteMediaManager.js.map +1 -1
  134. package/dist/multistream/sendSlotManager.js +255 -0
  135. package/dist/multistream/sendSlotManager.js.map +1 -0
  136. package/dist/reachability/clusterReachability.js +356 -0
  137. package/dist/reachability/clusterReachability.js.map +1 -0
  138. package/dist/reachability/index.js +263 -390
  139. package/dist/reachability/index.js.map +1 -1
  140. package/dist/reachability/request.js +6 -4
  141. package/dist/reachability/request.js.map +1 -1
  142. package/dist/reachability/util.js +29 -0
  143. package/dist/reachability/util.js.map +1 -0
  144. package/dist/reconnection-manager/index.js +266 -202
  145. package/dist/reconnection-manager/index.js.map +1 -1
  146. package/dist/recording-controller/index.js +21 -2
  147. package/dist/recording-controller/index.js.map +1 -1
  148. package/dist/recording-controller/util.js +9 -8
  149. package/dist/recording-controller/util.js.map +1 -1
  150. package/dist/roap/index.js +66 -28
  151. package/dist/roap/index.js.map +1 -1
  152. package/dist/roap/request.js +48 -64
  153. package/dist/roap/request.js.map +1 -1
  154. package/dist/roap/turnDiscovery.js +407 -79
  155. package/dist/roap/turnDiscovery.js.map +1 -1
  156. package/dist/rtcMetrics/constants.js +12 -0
  157. package/dist/rtcMetrics/constants.js.map +1 -0
  158. package/dist/rtcMetrics/index.js +179 -0
  159. package/dist/rtcMetrics/index.js.map +1 -0
  160. package/dist/statsAnalyzer/index.js +389 -304
  161. package/dist/statsAnalyzer/index.js.map +1 -1
  162. package/dist/statsAnalyzer/mqaUtil.js +296 -156
  163. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  164. package/dist/types/annotation/annotation.types.d.ts +42 -0
  165. package/dist/types/annotation/constants.d.ts +31 -0
  166. package/dist/types/annotation/index.d.ts +117 -0
  167. package/dist/types/breakouts/events.d.ts +8 -0
  168. package/dist/types/breakouts/utils.d.ts +9 -2
  169. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  170. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  171. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  172. package/dist/types/common/logs/request.d.ts +2 -0
  173. package/dist/types/common/queue.d.ts +9 -7
  174. package/dist/types/config.d.ts +2 -7
  175. package/dist/types/constants.d.ts +204 -32
  176. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  177. package/dist/types/controls-options-manager/index.d.ts +17 -1
  178. package/dist/types/controls-options-manager/types.d.ts +43 -0
  179. package/dist/types/controls-options-manager/util.d.ts +1 -7
  180. package/dist/types/index.d.ts +6 -5
  181. package/dist/types/interceptors/index.d.ts +2 -0
  182. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  183. package/dist/types/interpretation/collection.d.ts +5 -0
  184. package/dist/types/interpretation/index.d.ts +5 -0
  185. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  186. package/dist/types/locus-info/index.d.ts +57 -4
  187. package/dist/types/locus-info/parser.d.ts +66 -6
  188. package/dist/types/media/index.d.ts +2 -0
  189. package/dist/types/media/properties.d.ts +34 -49
  190. package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
  191. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  192. package/dist/types/meeting/index.d.ts +630 -505
  193. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  194. package/dist/types/meeting/muteState.d.ts +88 -26
  195. package/dist/types/meeting/request.d.ts +67 -43
  196. package/dist/types/meeting/util.d.ts +117 -1
  197. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  198. package/dist/types/meeting-info/index.d.ts +13 -1
  199. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  200. package/dist/types/meetings/collection.d.ts +17 -0
  201. package/dist/types/meetings/index.d.ts +113 -21
  202. package/dist/types/meetings/meetings.types.d.ts +4 -0
  203. package/dist/types/member/index.d.ts +14 -0
  204. package/dist/types/member/types.d.ts +32 -0
  205. package/dist/types/members/collection.d.ts +5 -0
  206. package/dist/types/members/index.d.ts +35 -2
  207. package/dist/types/members/request.d.ts +73 -9
  208. package/dist/types/members/types.d.ts +25 -0
  209. package/dist/types/members/util.d.ts +214 -1
  210. package/dist/types/metrics/constants.d.ts +17 -0
  211. package/dist/types/metrics/index.d.ts +4 -111
  212. package/dist/types/multistream/mediaRequestManager.d.ts +71 -3
  213. package/dist/types/multistream/receiveSlot.d.ts +7 -3
  214. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  215. package/dist/types/multistream/remoteMedia.d.ts +3 -31
  216. package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
  217. package/dist/types/multistream/remoteMediaManager.d.ts +61 -2
  218. package/dist/types/multistream/sendSlotManager.d.ts +69 -0
  219. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  220. package/dist/types/reachability/index.d.ts +60 -95
  221. package/dist/types/reachability/request.d.ts +3 -1
  222. package/dist/types/reachability/util.d.ts +8 -0
  223. package/dist/types/reconnection-manager/index.d.ts +19 -0
  224. package/dist/types/recording-controller/index.d.ts +15 -1
  225. package/dist/types/recording-controller/util.d.ts +5 -4
  226. package/dist/types/roap/index.d.ts +11 -2
  227. package/dist/types/roap/request.d.ts +9 -8
  228. package/dist/types/roap/turnDiscovery.d.ts +90 -9
  229. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  230. package/dist/types/rtcMetrics/index.d.ts +61 -0
  231. package/dist/types/statsAnalyzer/index.d.ts +34 -12
  232. package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
  233. package/dist/types/webinar/collection.d.ts +16 -0
  234. package/dist/types/webinar/index.d.ts +5 -0
  235. package/dist/webinar/collection.js +44 -0
  236. package/dist/webinar/collection.js.map +1 -0
  237. package/dist/webinar/index.js +69 -0
  238. package/dist/webinar/index.js.map +1 -0
  239. package/package.json +22 -19
  240. package/src/annotation/annotation.types.ts +50 -0
  241. package/src/annotation/constants.ts +36 -0
  242. package/src/annotation/index.ts +328 -0
  243. package/src/breakouts/README.md +27 -6
  244. package/src/breakouts/breakout.ts +67 -9
  245. package/src/breakouts/events.ts +56 -0
  246. package/src/breakouts/index.ts +494 -73
  247. package/src/breakouts/utils.ts +26 -8
  248. package/src/common/errors/no-meeting-info.ts +24 -0
  249. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  250. package/src/common/errors/webex-errors.ts +44 -2
  251. package/src/common/logs/logger-proxy.ts +1 -1
  252. package/src/common/logs/request.ts +5 -1
  253. package/src/common/queue.ts +22 -8
  254. package/src/config.ts +6 -13
  255. package/src/constants.ts +234 -22
  256. package/src/controls-options-manager/enums.ts +12 -0
  257. package/src/controls-options-manager/index.ts +116 -21
  258. package/src/controls-options-manager/types.ts +59 -0
  259. package/src/controls-options-manager/util.ts +294 -14
  260. package/src/index.ts +45 -0
  261. package/src/interceptors/index.ts +3 -0
  262. package/src/interceptors/locusRetry.ts +67 -0
  263. package/src/interpretation/README.md +60 -0
  264. package/src/interpretation/collection.ts +19 -0
  265. package/src/interpretation/index.ts +349 -0
  266. package/src/interpretation/siLanguage.ts +18 -0
  267. package/src/locus-info/controlsUtils.ts +108 -0
  268. package/src/locus-info/index.ts +417 -59
  269. package/src/locus-info/infoUtils.ts +10 -2
  270. package/src/locus-info/mediaSharesUtils.ts +80 -0
  271. package/src/locus-info/parser.ts +258 -47
  272. package/src/locus-info/selfUtils.ts +81 -5
  273. package/src/media/index.ts +100 -108
  274. package/src/media/properties.ts +88 -117
  275. package/src/mediaQualityMetrics/config.ts +103 -238
  276. package/src/meeting/in-meeting-actions.ts +171 -3
  277. package/src/meeting/index.ts +3929 -2622
  278. package/src/meeting/locusMediaRequest.ts +313 -0
  279. package/src/meeting/muteState.ts +237 -136
  280. package/src/meeting/request.ts +173 -122
  281. package/src/meeting/util.ts +690 -395
  282. package/src/meeting/voicea-meeting.ts +122 -0
  283. package/src/meeting-info/index.ts +81 -8
  284. package/src/meeting-info/meeting-info-v2.ts +166 -16
  285. package/src/meeting-info/util.ts +13 -10
  286. package/src/meeting-info/utilv2.ts +47 -37
  287. package/src/meetings/collection.ts +33 -0
  288. package/src/meetings/index.ts +507 -127
  289. package/src/meetings/meetings.types.ts +12 -0
  290. package/src/meetings/request.ts +2 -0
  291. package/src/meetings/util.ts +81 -12
  292. package/src/member/index.ts +57 -0
  293. package/src/member/types.ts +38 -0
  294. package/src/member/util.ts +141 -25
  295. package/src/members/collection.ts +8 -0
  296. package/src/members/index.ts +133 -7
  297. package/src/members/request.ts +97 -17
  298. package/src/members/types.ts +29 -0
  299. package/src/members/util.ts +333 -240
  300. package/src/metrics/constants.ts +17 -0
  301. package/src/metrics/index.ts +1 -469
  302. package/src/multistream/mediaRequestManager.ts +271 -56
  303. package/src/multistream/receiveSlot.ts +11 -4
  304. package/src/multistream/receiveSlotManager.ts +34 -24
  305. package/src/multistream/remoteMedia.ts +5 -3
  306. package/src/multistream/remoteMediaGroup.ts +78 -0
  307. package/src/multistream/remoteMediaManager.ts +248 -45
  308. package/src/multistream/sendSlotManager.ts +198 -0
  309. package/src/reachability/clusterReachability.ts +320 -0
  310. package/src/reachability/index.ts +229 -346
  311. package/src/reachability/request.ts +8 -4
  312. package/src/reachability/util.ts +24 -0
  313. package/src/reconnection-manager/index.ts +128 -97
  314. package/src/recording-controller/index.ts +20 -3
  315. package/src/recording-controller/util.ts +26 -9
  316. package/src/roap/index.ts +76 -25
  317. package/src/roap/request.ts +48 -67
  318. package/src/roap/turnDiscovery.ts +331 -67
  319. package/src/rtcMetrics/constants.ts +3 -0
  320. package/src/rtcMetrics/index.ts +166 -0
  321. package/src/statsAnalyzer/index.ts +496 -419
  322. package/src/statsAnalyzer/mqaUtil.ts +317 -170
  323. package/src/webinar/collection.ts +31 -0
  324. package/src/webinar/index.ts +62 -0
  325. package/test/integration/spec/converged-space-meetings.js +60 -3
  326. package/test/integration/spec/journey.js +321 -262
  327. package/test/integration/spec/space-meeting.js +76 -3
  328. package/test/unit/spec/annotation/index.ts +418 -0
  329. package/test/unit/spec/breakouts/breakout.ts +119 -28
  330. package/test/unit/spec/breakouts/events.ts +89 -0
  331. package/test/unit/spec/breakouts/index.ts +1204 -118
  332. package/test/unit/spec/breakouts/utils.js +27 -2
  333. package/test/unit/spec/common/queue.js +31 -2
  334. package/test/unit/spec/controls-options-manager/index.js +163 -0
  335. package/test/unit/spec/controls-options-manager/util.js +576 -60
  336. package/test/unit/spec/fixture/locus.js +1 -0
  337. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  338. package/test/unit/spec/interpretation/collection.ts +15 -0
  339. package/test/unit/spec/interpretation/index.ts +625 -0
  340. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  341. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  342. package/test/unit/spec/locus-info/index.js +1372 -37
  343. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  344. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  345. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  346. package/test/unit/spec/locus-info/parser.js +116 -35
  347. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  348. package/test/unit/spec/locus-info/selfUtils.js +203 -17
  349. package/test/unit/spec/media/index.ts +178 -81
  350. package/test/unit/spec/media/properties.ts +2 -2
  351. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  352. package/test/unit/spec/meeting/index.js +7835 -2501
  353. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  354. package/test/unit/spec/meeting/muteState.js +549 -207
  355. package/test/unit/spec/meeting/request.js +494 -54
  356. package/test/unit/spec/meeting/utils.js +827 -74
  357. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  358. package/test/unit/spec/meeting-info/index.js +300 -0
  359. package/test/unit/spec/meeting-info/meetinginfov2.js +535 -9
  360. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  361. package/test/unit/spec/meetings/collection.js +26 -0
  362. package/test/unit/spec/meetings/index.js +1489 -219
  363. package/test/unit/spec/meetings/utils.js +229 -2
  364. package/test/unit/spec/member/index.js +61 -6
  365. package/test/unit/spec/member/util.js +510 -34
  366. package/test/unit/spec/members/index.js +432 -1
  367. package/test/unit/spec/members/request.js +206 -27
  368. package/test/unit/spec/members/utils.js +210 -0
  369. package/test/unit/spec/metrics/index.js +2 -52
  370. package/test/unit/spec/multistream/mediaRequestManager.ts +782 -114
  371. package/test/unit/spec/multistream/receiveSlot.ts +9 -1
  372. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  373. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  374. package/test/unit/spec/multistream/remoteMediaGroup.ts +344 -0
  375. package/test/unit/spec/multistream/remoteMediaManager.ts +524 -0
  376. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  377. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  378. package/test/unit/spec/reachability/index.ts +551 -14
  379. package/test/unit/spec/reachability/request.js +3 -1
  380. package/test/unit/spec/reachability/util.ts +40 -0
  381. package/test/unit/spec/reconnection-manager/index.js +171 -11
  382. package/test/unit/spec/recording-controller/index.js +293 -218
  383. package/test/unit/spec/recording-controller/util.js +223 -96
  384. package/test/unit/spec/roap/index.ts +233 -81
  385. package/test/unit/spec/roap/request.ts +100 -62
  386. package/test/unit/spec/roap/turnDiscovery.ts +682 -108
  387. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  388. package/test/unit/spec/stats-analyzer/index.js +1431 -12
  389. package/test/unit/spec/webinar/collection.ts +13 -0
  390. package/test/unit/spec/webinar/index.ts +60 -0
  391. package/test/utils/integrationTestUtils.js +46 -0
  392. package/test/utils/testUtils.js +0 -57
  393. package/test/utils/webex-test-users.js +12 -4
  394. package/dist/metrics/config.js +0 -289
  395. package/dist/metrics/config.js.map +0 -1
  396. package/dist/types/metrics/config.d.ts +0 -169
  397. package/src/index.js +0 -18
  398. package/src/metrics/config.ts +0 -485
@@ -1,5 +1,21 @@
1
+ import { Enum } from '../constants';
1
2
  import RoapRequest from './request';
2
3
  import Meeting from '../meeting';
4
+ declare const TurnDiscoverySkipReason: {
5
+ readonly missingHttpResponse: "missing http response";
6
+ readonly reachability: "reachability";
7
+ readonly alreadyInProgress: "already in progress";
8
+ };
9
+ export type TurnDiscoverySkipReason = Enum<typeof TurnDiscoverySkipReason> | string | undefined;
10
+ export type TurnServerInfo = {
11
+ url: string;
12
+ username: string;
13
+ password: string;
14
+ };
15
+ export type TurnDiscoveryResult = {
16
+ turnServerInfo?: TurnServerInfo;
17
+ turnDiscoverySkippedReason: TurnDiscoverySkipReason;
18
+ };
3
19
  /**
4
20
  * Handles the process of finding out TURN server information from Linus.
5
21
  * This is achieved by sending a TURN_DISCOVERY_REQUEST.
@@ -24,14 +40,63 @@ export default class TurnDiscovery {
24
40
  */
25
41
  private waitForTurnDiscoveryResponse;
26
42
  /**
27
- * handles TURN_DISCOVERY_RESPONSE roap message
43
+ * Handles TURN_DISCOVERY_RESPONSE roap message. Use it if the roap message comes over the websocket,
44
+ * otherwise use handleTurnDiscoveryHttpResponse() if it comes in the http response.
28
45
  *
29
46
  * @param {Object} roapMessage
47
+ * @param {string} from string to indicate how we got the response (used just for logging)
30
48
  * @returns {void}
31
49
  * @public
32
50
  * @memberof Roap
33
51
  */
34
- handleTurnDiscoveryResponse(roapMessage: object): void;
52
+ handleTurnDiscoveryResponse(roapMessage: any, from: string): void;
53
+ /**
54
+ * Generates TURN_DISCOVERY_REQUEST roap message. When this method returns a roapMessage, it means that a TURN discovery process has started.
55
+ * It needs be ended by calling handleTurnDiscoveryHttpResponse() once you get a response from the backend. If you don't get any response
56
+ * or want to abort, you need to call abort().
57
+ *
58
+ * @param {Meeting} meeting
59
+ * @param {boolean} isForced
60
+ * @returns {Object}
61
+ */
62
+ generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{
63
+ roapMessage?: object;
64
+ turnDiscoverySkippedReason: TurnDiscoverySkipReason;
65
+ }>;
66
+ /**
67
+ * Handles any errors that occur during TURN discovery without re-throwing them.
68
+ *
69
+ * @param {Meeting} meeting
70
+ * @param {Error} error
71
+ * @returns {TurnDiscoveryResult}
72
+ */
73
+ private handleTurnDiscoveryFailure;
74
+ /**
75
+ * Handles TURN_DISCOVERY_RESPONSE roap message that came in http response. If the response is not valid,
76
+ * it returns an object with turnServerInfo set to undefined. In that case you need to call abort()
77
+ * to end the TURN discovery process.
78
+ *
79
+ * @param {Meeting} meeting
80
+ * @param {Object|undefined} httpResponse can be undefined to indicate that we didn't get the response
81
+ * @returns {Promise<TurnDiscoveryResult>}
82
+ * @memberof Roap
83
+ */
84
+ handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse?: object): Promise<TurnDiscoveryResult>;
85
+ /**
86
+ * Aborts current TURN discovery. This method needs to be called if you called generateTurnDiscoveryRequestMessage(),
87
+ * but then never got any response from the server.
88
+ * @returns {void}
89
+ */
90
+ abort(): void;
91
+ /**
92
+ * Parses the TURN_DISCOVERY_RESPONSE roap message out of the http response
93
+ * and returns it.
94
+ *
95
+ * @param {Meeting} meeting
96
+ * @param {any} httpResponse
97
+ * @returns {any}
98
+ */
99
+ private parseHttpTurnDiscoveryResponse;
35
100
  /**
36
101
  * sends the TURN_DISCOVERY_REQUEST roap request
37
102
  *
@@ -41,7 +106,7 @@ export default class TurnDiscovery {
41
106
  * @private
42
107
  * @memberof Roap
43
108
  */
44
- sendRoapTurnDiscoveryRequest(meeting: Meeting, isReconnecting: boolean): Promise<void>;
109
+ private sendRoapTurnDiscoveryRequest;
45
110
  /**
46
111
  * Sends the OK message that server expects to receive
47
112
  * after it sends us TURN_DISCOVERY_RESPONSE
@@ -49,7 +114,24 @@ export default class TurnDiscovery {
49
114
  * @param {Meeting} meeting
50
115
  * @returns {Promise}
51
116
  */
52
- sendRoapOK(meeting: Meeting): Promise<any>;
117
+ sendRoapOK(meeting: Meeting): Promise<{
118
+ mediaConnections: any;
119
+ locus: any;
120
+ }>;
121
+ /**
122
+ * Gets the reason why reachability is skipped.
123
+ *
124
+ * @param {Meeting} meeting
125
+ * @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
126
+ */
127
+ private getSkipReason;
128
+ /**
129
+ * Checks if TURN discovery is skipped.
130
+ *
131
+ * @param {Meeting} meeting
132
+ * @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
133
+ */
134
+ isSkipped(meeting: any): Promise<boolean>;
53
135
  /**
54
136
  * Retrieves TURN server information from the backend by doing
55
137
  * a roap message exchange:
@@ -63,12 +145,11 @@ export default class TurnDiscovery {
63
145
  * so it works fine no matter if TURN discovery is done or not.
64
146
  *
65
147
  * @param {Meeting} meeting
66
- * @param {Boolean} isReconnecting should be set to true if this is a new
148
+ * @param {Boolean} [isReconnecting] should be set to true if this is a new
67
149
  * media connection just after a reconnection
150
+ * @param {Boolean} [isForced]
68
151
  * @returns {Promise}
69
152
  */
70
- doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean): Promise<{
71
- turnServerInfo: any;
72
- turnDiscoverySkippedReason: any;
73
- }>;
153
+ doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
74
154
  }
155
+ export {};
@@ -0,0 +1,4 @@
1
+ declare const RTC_METRICS: {
2
+ APP_ID: string;
3
+ };
4
+ export { RTC_METRICS as default };
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Rtc Metrics
3
+ */
4
+ export default class RtcMetrics {
5
+ /**
6
+ * Array of MetricData items to be sent to the metrics service.
7
+ */
8
+ metricsQueue: any[];
9
+ intervalId: number;
10
+ webex: any;
11
+ meetingId: string;
12
+ correlationId: string;
13
+ connectionId: string;
14
+ /**
15
+ * Initialize the interval.
16
+ *
17
+ * @param {object} webex - The main `webex` object.
18
+ * @param {string} meetingId - The meeting id.
19
+ * @param {string} correlationId - The correlation id.
20
+ */
21
+ constructor(webex: any, meetingId: any, correlationId: any);
22
+ /**
23
+ * Check to see if the metrics queue has any items.
24
+ *
25
+ * @returns {void}
26
+ */
27
+ sendMetricsInQueue(): void;
28
+ /**
29
+ * Add metrics items to the metrics queue.
30
+ *
31
+ * @param {object} data - An object with a payload array of metrics items.
32
+ *
33
+ * @returns {void}
34
+ */
35
+ addMetrics(data: any): void;
36
+ /**
37
+ * Clear the metrics interval.
38
+ *
39
+ * @returns {void}
40
+ */
41
+ closeMetrics(): void;
42
+ /**
43
+ * Anonymize IP addresses.
44
+ *
45
+ * @param {array} stats - An RTCStatsReport organized into an array of strings.
46
+ * @returns {string}
47
+ */
48
+ anonymizeIp(stats: string): string;
49
+ /**
50
+ * Set a new connection id.
51
+ *
52
+ * @returns {void}
53
+ */
54
+ private setNewConnectionId;
55
+ /**
56
+ * Send metrics to the metrics service.
57
+ *
58
+ * @returns {void}
59
+ */
60
+ private sendMetrics;
61
+ }
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import EventsScope from '../common/events/events-scope';
3
+ import { ReceiveSlot } from '../multistream/receiveSlot';
3
4
  export declare const EVENTS: {
4
5
  MEDIA_QUALITY: string;
5
6
  LOCAL_MEDIA_STARTED: string;
@@ -7,6 +8,11 @@ export declare const EVENTS: {
7
8
  REMOTE_MEDIA_STARTED: string;
8
9
  REMOTE_MEDIA_STOPPED: string;
9
10
  };
11
+ type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
12
+ type MediaStatus = {
13
+ actual?: any;
14
+ expected?: any;
15
+ };
10
16
  /**
11
17
  * Stats Analyzer class that will emit events based on detected quality
12
18
  *
@@ -28,15 +34,19 @@ export declare class StatsAnalyzer extends EventsScope {
28
34
  statsInterval: NodeJS.Timeout;
29
35
  statsResults: any;
30
36
  statsStarted: any;
37
+ successfulCandidatePair: any;
38
+ localIpAddress: string;
39
+ receiveSlotCallback: ReceiveSlotCallback;
31
40
  /**
32
41
  * Creates a new instance of StatsAnalyzer
33
42
  * @constructor
34
43
  * @public
35
44
  * @param {Object} config SDK Configuration Object
45
+ * @param {Function} receiveSlotCallback Callback used to access receive slots.
36
46
  * @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
37
47
  * @param {Object} statsResults Default properties for stats
38
48
  */
39
- constructor(config: any, networkQualityMonitor?: object, statsResults?: object);
49
+ constructor(config: any, receiveSlotCallback?: ReceiveSlotCallback, networkQualityMonitor?: object, statsResults?: object);
40
50
  /**
41
51
  * Resets cumulative stats arrays.
42
52
  *
@@ -53,7 +63,7 @@ export declare class StatsAnalyzer extends EventsScope {
53
63
  * @memberof StatsAnalyzer
54
64
  * @returns {void}
55
65
  */
56
- updateMediaStatus(status: object): void;
66
+ updateMediaStatus(status: MediaStatus): void;
57
67
  /**
58
68
  * captures MQA data from media connection
59
69
  *
@@ -71,6 +81,13 @@ export declare class StatsAnalyzer extends EventsScope {
71
81
  * @returns {void}
72
82
  */
73
83
  updateMediaConnection(mediaConnection: any): void;
84
+ /**
85
+ * Returns the local IP address for diagnostics.
86
+ * this is the local IP of the interface used for the current media connection
87
+ * a host can have many local Ip Addresses
88
+ * @returns {string | undefined} The local IP address.
89
+ */
90
+ getLocalIpAddress(): string;
74
91
  /**
75
92
  * Starts the stats analyzer on interval
76
93
  *
@@ -162,6 +179,20 @@ export declare class StatsAnalyzer extends EventsScope {
162
179
  * @returns {void}
163
180
  */
164
181
  private processInboundRTPResult;
182
+ /**
183
+ * extracts the local Ip address from the statsResult object by looking at stats results candidates
184
+ * and matches that ID with the successful candidate pair. It looks at the type of local candidate it is
185
+ * and then extracts the IP address from the relatedAddress or address property based on conditions known in webrtc
186
+ * note, there are known incompatibilities and it is possible for this to set undefined, or for the IP address to be the public IP address
187
+ * for example, firefox does not set the relayProtocol, and if the user is behind a NAT it might be the public IP
188
+ * @private
189
+ * @param {string} successfulCandidatePairId - The ID of the successful candidate pair.
190
+ * @param {Object} candidates - the stats result candidates
191
+ * @returns {void}
192
+ */
193
+ extractAndSetLocalIpAddressInfoForDiagnostics: (successfulCandidatePairId: string, candidates: {
194
+ [key: string]: Record<string, unknown>;
195
+ }) => void;
165
196
  /**
166
197
  * Processes remote and local candidate result and stores
167
198
  * @private
@@ -173,16 +204,6 @@ export declare class StatsAnalyzer extends EventsScope {
173
204
  * @returns {void}
174
205
  */
175
206
  parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
176
- /**
177
- * Process Track results
178
- *
179
- * @private
180
- * @param {*} result
181
- * @param {*} mediaType
182
- * @returns {void}
183
- * @memberof StatsAnalyzer
184
- */
185
- private processTrackResult;
186
207
  /**
187
208
  *
188
209
  * @private
@@ -193,3 +214,4 @@ export declare class StatsAnalyzer extends EventsScope {
193
214
  */
194
215
  compareSentAndReceived(result: any, type: any): void;
195
216
  }
217
+ export {};
@@ -1,24 +1,48 @@
1
- export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent, mediaType }: {
1
+ export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
2
2
  audioReceiver: any;
3
3
  statsResults: any;
4
4
  lastMqaDataSent: any;
5
+ baseMediaType: any;
6
+ }) => void;
7
+ export declare const getAudioReceiverStreamMqa: ({ audioReceiverStream, statsResults, lastMqaDataSent, mediaType, }: {
8
+ audioReceiverStream: any;
9
+ statsResults: any;
10
+ lastMqaDataSent: any;
5
11
  mediaType: any;
6
12
  }) => void;
7
- export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent, mediaType }: {
13
+ export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent, baseMediaType }: {
8
14
  audioSender: any;
9
15
  statsResults: any;
10
16
  lastMqaDataSent: any;
17
+ baseMediaType: any;
18
+ }) => void;
19
+ export declare const getAudioSenderStreamMqa: ({ audioSenderStream, statsResults, lastMqaDataSent, mediaType, }: {
20
+ audioSenderStream: any;
21
+ statsResults: any;
22
+ lastMqaDataSent: any;
11
23
  mediaType: any;
12
24
  }) => void;
13
- export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, mediaType }: {
25
+ export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
14
26
  videoReceiver: any;
15
27
  statsResults: any;
16
28
  lastMqaDataSent: any;
29
+ baseMediaType: any;
30
+ }) => void;
31
+ export declare const getVideoReceiverStreamMqa: ({ videoReceiverStream, statsResults, lastMqaDataSent, mediaType, }: {
32
+ videoReceiverStream: any;
33
+ statsResults: any;
34
+ lastMqaDataSent: any;
17
35
  mediaType: any;
18
36
  }) => void;
19
- export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, mediaType }: {
37
+ export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, baseMediaType }: {
20
38
  videoSender: any;
21
39
  statsResults: any;
22
40
  lastMqaDataSent: any;
41
+ baseMediaType: any;
42
+ }) => void;
43
+ export declare const getVideoSenderStreamMqa: ({ videoSenderStream, statsResults, lastMqaDataSent, mediaType, }: {
44
+ videoSenderStream: any;
45
+ statsResults: any;
46
+ lastMqaDataSent: any;
23
47
  mediaType: any;
24
48
  }) => void;
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ declare class WebinarCollection {
5
+ webinarInfo: any;
6
+ namespace: string;
7
+ mainIndex: string;
8
+ constructor();
9
+ set(id: any, info: any): void;
10
+ /**
11
+ * @param {String} id
12
+ * @returns {Member}
13
+ */
14
+ get(id: string): any;
15
+ }
16
+ export default WebinarCollection;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @class Webinar
3
+ */
4
+ declare const Webinar: any;
5
+ export default Webinar;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
12
+ var _constants = require("../constants");
13
+ /*!
14
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
15
+ */
16
+ var WebinarCollection = /*#__PURE__*/function () {
17
+ function WebinarCollection() {
18
+ (0, _classCallCheck2.default)(this, WebinarCollection);
19
+ (0, _defineProperty2.default)(this, "webinarInfo", void 0);
20
+ (0, _defineProperty2.default)(this, "namespace", _constants.MEETINGS);
21
+ (0, _defineProperty2.default)(this, "mainIndex", 'sessionId');
22
+ this.webinarInfo = {};
23
+ }
24
+ (0, _createClass2.default)(WebinarCollection, [{
25
+ key: "set",
26
+ value: function set(id, info) {
27
+ this.webinarInfo[id] = info;
28
+ }
29
+
30
+ /**
31
+ * @param {String} id
32
+ * @returns {Member}
33
+ */
34
+ }, {
35
+ key: "get",
36
+ value: function get(id) {
37
+ return this.webinarInfo[id];
38
+ }
39
+ }]);
40
+ return WebinarCollection;
41
+ }();
42
+ var _default = WebinarCollection;
43
+ exports.default = _default;
44
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinarCollection","MEETINGS","webinarInfo","id","info"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\nclass WebinarCollection {\n webinarInfo: any;\n\n namespace = MEETINGS;\n\n mainIndex = 'sessionId';\n\n constructor() {\n this.webinarInfo = {};\n }\n\n set(id, info) {\n this.webinarInfo[id] = info;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.webinarInfo[id];\n }\n}\n\nexport default WebinarCollection;\n"],"mappings":";;;;;;;;;;;AAIA;AAJA;AACA;AACA;AAFA,IAMMA,iBAAiB;EAOrB,6BAAc;IAAA;IAAA;IAAA,iDAJFC,mBAAQ;IAAA,iDAER,WAAW;IAGrB,IAAI,CAACC,WAAW,GAAG,CAAC,CAAC;EACvB;EAAC;IAAA;IAAA,OAED,aAAIC,EAAE,EAAEC,IAAI,EAAE;MACZ,IAAI,CAACF,WAAW,CAACC,EAAE,CAAC,GAAGC,IAAI;IAC7B;;IAEA;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,aAAID,EAAU,EAAE;MACd,OAAO,IAAI,CAACD,WAAW,CAACC,EAAE,CAAC;IAC7B;EAAC;EAAA;AAAA;AAAA,eAGYH,iBAAiB;AAAA"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _webexCore = require("@webex/webex-core");
10
+ var _constants = require("../constants");
11
+ var _collection = _interopRequireDefault(require("./collection"));
12
+ /*!
13
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
14
+ */
15
+
16
+ /**
17
+ * @class Webinar
18
+ */
19
+ var Webinar = _webexCore.WebexPlugin.extend({
20
+ namespace: _constants.MEETINGS,
21
+ collections: {
22
+ webinar: _collection.default
23
+ },
24
+ props: {
25
+ locusUrl: 'string',
26
+ // appears current webinar's locus url
27
+ webcastUrl: 'string',
28
+ // current webinar's webcast url
29
+ webinarAttendeesSearchingUrl: 'string',
30
+ // current webinarAttendeesSearching url
31
+ canManageWebcast: 'boolean' // appears the ability to manage webcast
32
+ },
33
+ /**
34
+ * Update the current locus url of the webinar
35
+ * @param {string} locusUrl // locus url
36
+ * @returns {void}
37
+ */
38
+ locusUrlUpdate: function locusUrlUpdate(locusUrl) {
39
+ this.set('locusUrl', locusUrl);
40
+ },
41
+ /**
42
+ * Update the current webcast url of the meeting
43
+ * @param {string} webcastUrl // webcast url
44
+ * @returns {void}
45
+ */
46
+ webcastUrlUpdate: function webcastUrlUpdate(webcastUrl) {
47
+ this.set('webcastUrl', webcastUrl);
48
+ },
49
+ /**
50
+ * Update the current webinarAttendeesSearching url of the meeting
51
+ * @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url
52
+ * @returns {void}
53
+ */
54
+ webinarAttendeesSearchingUrlUpdate: function webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {
55
+ this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);
56
+ },
57
+ /**
58
+ * Update whether self has capability to manage start/stop webcast (only host can manage it)
59
+ * @param {boolean} canManageWebcast
60
+ * @returns {void}
61
+ */
62
+ updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
63
+ this.set('canManageWebcast', canManageWebcast);
64
+ },
65
+ version: "3.0.0-beta.410"
66
+ });
67
+ var _default = Webinar;
68
+ exports.default = _default;
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastUrl","webinarAttendeesSearchingUrl","canManageWebcast","locusUrlUpdate","set","webcastUrlUpdate","webinarAttendeesSearchingUrlUpdate","updateCanManageWebcast"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {MEETINGS} from '../constants';\n\nimport WebinarCollection from './collection';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastUrl: 'string', // current webinar's webcast url\n webinarAttendeesSearchingUrl: 'string', // current webinarAttendeesSearching url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast url of the meeting\n * @param {string} webcastUrl // webcast url\n * @returns {void}\n */\n webcastUrlUpdate(webcastUrl) {\n this.set('webcastUrl', webcastUrl);\n },\n\n /**\n * Update the current webinarAttendeesSearching url of the meeting\n * @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url\n * @returns {void}\n */\n webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {\n this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n});\n\nexport default Webinar;\n"],"mappings":";;;;;;;;AAGA;AACA;AAEA;AANA;AACA;AACA;;AAMA;AACA;AACA;AACA,IAAMA,OAAO,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACjCC,SAAS,EAAEC,mBAAQ;EACnBC,WAAW,EAAE;IACXC,OAAO,EAAEC;EACX,CAAC;EAEDC,KAAK,EAAE;IACLC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,UAAU,EAAE,QAAQ;IAAE;IACtBC,4BAA4B,EAAE,QAAQ;IAAE;IACxCC,gBAAgB,EAAE,SAAS,CAAE;EAC/B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,cAAc,0BAACJ,QAAQ,EAAE;IACvB,IAAI,CAACK,GAAG,CAAC,UAAU,EAAEL,QAAQ,CAAC;EAChC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,gBAAgB,4BAACL,UAAU,EAAE;IAC3B,IAAI,CAACI,GAAG,CAAC,YAAY,EAAEJ,UAAU,CAAC;EACpC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,kCAAkC,8CAACL,4BAA4B,EAAE;IAC/D,IAAI,CAACG,GAAG,CAAC,8BAA8B,EAAEH,4BAA4B,CAAC;EACxE,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,sBAAsB,kCAACL,gBAAgB,EAAE;IACvC,IAAI,CAACE,GAAG,CAAC,kBAAkB,EAAEF,gBAAgB,CAAC;EAChD,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYZ,OAAO;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
- "version": "3.0.0-beta.41",
3
+ "version": "3.0.0-beta.410",
4
4
  "description": "",
5
5
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
6
  "contributors": [
@@ -32,12 +32,13 @@
32
32
  "build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
33
33
  },
34
34
  "devDependencies": {
35
- "@webex/plugin-meetings": "3.0.0-beta.41",
36
- "@webex/test-helper-chai": "3.0.0-beta.41",
37
- "@webex/test-helper-mocha": "3.0.0-beta.41",
38
- "@webex/test-helper-mock-webex": "3.0.0-beta.41",
39
- "@webex/test-helper-retry": "3.0.0-beta.41",
40
- "@webex/test-helper-test-users": "3.0.0-beta.41",
35
+ "@peculiar/webcrypto": "^1.4.3",
36
+ "@webex/plugin-meetings": "3.0.0-beta.410",
37
+ "@webex/test-helper-chai": "3.0.0-beta.410",
38
+ "@webex/test-helper-mocha": "3.0.0-beta.410",
39
+ "@webex/test-helper-mock-webex": "3.0.0-beta.410",
40
+ "@webex/test-helper-retry": "3.0.0-beta.410",
41
+ "@webex/test-helper-test-users": "3.0.0-beta.410",
41
42
  "chai": "^4.3.4",
42
43
  "chai-as-promised": "^7.1.1",
43
44
  "jsdom-global": "3.0.2",
@@ -46,18 +47,19 @@
46
47
  "typescript": "^4.7.4"
47
48
  },
48
49
  "dependencies": {
49
- "@webex/common": "3.0.0-beta.41",
50
- "@webex/internal-media-core": "1.35.2",
51
- "@webex/internal-plugin-conversation": "3.0.0-beta.41",
52
- "@webex/internal-plugin-device": "3.0.0-beta.41",
53
- "@webex/internal-plugin-llm": "3.0.0-beta.41",
54
- "@webex/internal-plugin-mercury": "3.0.0-beta.41",
55
- "@webex/internal-plugin-metrics": "3.0.0-beta.41",
56
- "@webex/internal-plugin-support": "3.0.0-beta.41",
57
- "@webex/internal-plugin-user": "3.0.0-beta.41",
58
- "@webex/plugin-people": "3.0.0-beta.41",
59
- "@webex/plugin-rooms": "3.0.0-beta.41",
60
- "@webex/webex-core": "3.0.0-beta.41",
50
+ "@webex/common": "3.0.0-beta.410",
51
+ "@webex/internal-media-core": "2.3.2",
52
+ "@webex/internal-plugin-conversation": "3.0.0-beta.410",
53
+ "@webex/internal-plugin-device": "3.0.0-beta.410",
54
+ "@webex/internal-plugin-llm": "3.0.0-beta.410",
55
+ "@webex/internal-plugin-mercury": "3.0.0-beta.410",
56
+ "@webex/internal-plugin-metrics": "3.0.0-beta.410",
57
+ "@webex/internal-plugin-support": "3.0.0-beta.410",
58
+ "@webex/internal-plugin-user": "3.0.0-beta.410",
59
+ "@webex/media-helpers": "3.0.0-beta.410",
60
+ "@webex/plugin-people": "3.0.0-beta.410",
61
+ "@webex/plugin-rooms": "3.0.0-beta.410",
62
+ "@webex/webex-core": "3.0.0-beta.410",
61
63
  "ampersand-collection": "^2.0.2",
62
64
  "bowser": "^2.11.0",
63
65
  "btoa": "^1.2.1",
@@ -65,6 +67,7 @@
65
67
  "global": "^4.4.0",
66
68
  "ip-anonymize": "^0.1.0",
67
69
  "javascript-state-machine": "^3.1.0",
70
+ "jwt-decode": "3.1.2",
68
71
  "lodash": "^4.17.21",
69
72
  "sdp-transform": "^2.12.0",
70
73
  "uuid": "^3.3.2",
@@ -0,0 +1,50 @@
1
+ import {ANNOTATION_POLICY} from './constants';
2
+
3
+ /**
4
+ * Type for an StrokeData Object
5
+ */
6
+ type StrokeData = {
7
+ deviceId: string;
8
+ toUserId: string;
9
+ requesterId: string;
10
+ content: string;
11
+ shareInstanceId: string;
12
+ encryptionKeyUrl: string;
13
+ version: string;
14
+ };
15
+
16
+ type RequestData = {
17
+ toUserId: string;
18
+ toDeviceUrl: string;
19
+ shareInstanceId: string;
20
+ };
21
+
22
+ type CommandRequestBody = {
23
+ actionType: string;
24
+ resourceType: string;
25
+ shareInstanceId: string;
26
+ receivers?: any[];
27
+ };
28
+ /**
29
+ * Type for an annotation Object include annotation version and privilege
30
+ */
31
+ type AnnotationInfo = {
32
+ version: string;
33
+ policy: ANNOTATION_POLICY;
34
+ };
35
+
36
+ interface IAnnotationChannel {
37
+ // === below is for presenter
38
+ acceptRequest: (approval) => undefined | Promise<void>;
39
+ declineRequest: (approval) => undefined | Promise<void>;
40
+ closeAnnotation: (requestData: RequestData) => undefined | Promise<void>;
41
+ // === below is for attendee
42
+ approveAnnotation: (requestData: RequestData) => undefined | Promise<void>;
43
+ cancelApproveAnnotation: (requestData: RequestData, approval) => undefined | Promise<void>;
44
+ sendStrokeData: (strokeData: StrokeData) => void;
45
+ // =====
46
+ approvalUrlUpdate: (approvalUrl: string) => void;
47
+ locusUrlUpdate: (locusUrl: string) => void;
48
+ }
49
+
50
+ export type {StrokeData, RequestData, CommandRequestBody, IAnnotationChannel, AnnotationInfo};
@@ -0,0 +1,36 @@
1
+ export const EVENT_TRIGGERS = {
2
+ ANNOTATION_STROKE_DATA: 'annotation:strokeData',
3
+ ANNOTATION_COMMAND: 'annotation:command',
4
+ };
5
+ export const ANNOTATION_RESOURCE_TYPE = 'AnnotationOnShare';
6
+ export const ANNOTATION_RELAY_TYPES = {
7
+ ANNOTATION_CLIENT: 'annotation.client',
8
+ };
9
+
10
+ export const ANNOTATION_STATUS = {
11
+ NO_ANNOTATION: 'NO_ANNOTATION',
12
+ RUNNING_ANNOTATION: 'RUNNING_ANNOTATION',
13
+ };
14
+
15
+ export enum ANNOTATION_POLICY {
16
+ ANYONE_CAN_ANNOTATE = 'AnyoneCanAnnotate',
17
+ APPROVAL = 'Approval',
18
+ ANNOTATION_NOT_ALLOWED = 'AnnotationNotAllowed',
19
+ }
20
+
21
+ export const ANNOTATION_REQUEST_TYPE = {
22
+ ANNOTATION_MESSAGE: 'annotation_message',
23
+ };
24
+
25
+ export const enum ANNOTATION_ACTION_TYPE {
26
+ REQUESTED = 'REQUESTED',
27
+ ACCEPTED = 'ACCEPTED',
28
+ DECLINED = 'DECLINED',
29
+ OFFERED = 'OFFERED',
30
+ CANCELED = 'CANCELED',
31
+ EXPIRED = 'EXPIRED',
32
+ REVOKED = 'REVOKED',
33
+ CLOSED = 'CLOSED',
34
+ }
35
+
36
+ export const ANNOTATION = 'annotation';