@webex/plugin-meetings 2.59.8 → 2.60.0-next.2

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 (528) hide show
  1. package/README.md +46 -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 +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +15 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +92 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4628 -2971
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +200 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +39 -41
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +42 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +477 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +15 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +281 -229
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +140 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +402 -424
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +117 -83
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -25
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +271 -93
  262. package/src/controls-options-manager/enums.ts +12 -0
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +172 -0
  282. package/src/meeting/index.ts +3861 -2504
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +163 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +28 -28
  292. package/src/meetings/collection.ts +33 -0
  293. package/src/meetings/index.ts +477 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +13 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +167 -154
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +124 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +470 -522
  330. package/src/statsAnalyzer/mqaUtil.ts +117 -112
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +84 -0
  362. package/test/unit/spec/meeting/index.js +8269 -3145
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +409 -213
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +26 -0
  371. package/test/unit/spec/meetings/index.js +1201 -210
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +499 -29
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +145 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  396. package/test/unit/spec/stats-analyzer/index.js +188 -174
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
package/README.md CHANGED
@@ -117,7 +117,7 @@ webex.meetings.getMeetingByType('SIP_URI', sipUri);
117
117
 
118
118
  ```js
119
119
  webex.meetings.personalMeetingRoom; // the personal meeting room instance
120
- webex.meetings.reachability; // the reachability instance, not initialized until after setReachability is called
120
+ webex.meetings.reachability; // the reachability instance
121
121
  webex.meetings.meetingCollection; // the collection of meetings instance
122
122
  webex.meetings.meetingInfo; // the meeting info instance
123
123
  ```
@@ -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
 
@@ -956,9 +1000,6 @@ meeting.on('media:ready', (media) => {
956
1000
  if (media.type === 'remoteShare') {
957
1001
  document.getElementById('sharevideo').srcObject = media.stream;
958
1002
  }
959
- if (media.type === 'localShare') {
960
- document.getElementById('localshare').srcObject = media.stream;
961
- }
962
1003
  });
963
1004
  ```
964
1005
 
@@ -979,9 +1020,6 @@ meeting.on('media:stopped', (media) => {
979
1020
  if (media.type === 'remoteAudio') {
980
1021
  document.getElementById('remoteaudio').srcObject = null;
981
1022
  }
982
- if (media.type === 'localShare') {
983
- document.getElementById('localshare').srcObject = null;
984
- }
985
1023
  if (media.type === 'remoteShare') {
986
1024
  document.getElementById('sharevideo').srcObject = null;
987
1025
  }
@@ -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 // === 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,41 @@
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 = exports.EVENT_TRIGGERS = {
9
+ ANNOTATION_STROKE_DATA: 'annotation:strokeData',
10
+ ANNOTATION_COMMAND: 'annotation:command'
11
+ };
12
+ var ANNOTATION_RESOURCE_TYPE = exports.ANNOTATION_RESOURCE_TYPE = 'AnnotationOnShare';
13
+ var ANNOTATION_RELAY_TYPES = exports.ANNOTATION_RELAY_TYPES = {
14
+ ANNOTATION_CLIENT: 'annotation.client'
15
+ };
16
+ var ANNOTATION_STATUS = exports.ANNOTATION_STATUS = {
17
+ NO_ANNOTATION: 'NO_ANNOTATION',
18
+ RUNNING_ANNOTATION: 'RUNNING_ANNOTATION'
19
+ };
20
+ var ANNOTATION_POLICY = exports.ANNOTATION_POLICY = /*#__PURE__*/function (ANNOTATION_POLICY) {
21
+ ANNOTATION_POLICY["ANYONE_CAN_ANNOTATE"] = "AnyoneCanAnnotate";
22
+ ANNOTATION_POLICY["APPROVAL"] = "Approval";
23
+ ANNOTATION_POLICY["ANNOTATION_NOT_ALLOWED"] = "AnnotationNotAllowed";
24
+ return ANNOTATION_POLICY;
25
+ }({});
26
+ var ANNOTATION_REQUEST_TYPE = exports.ANNOTATION_REQUEST_TYPE = {
27
+ ANNOTATION_MESSAGE: 'annotation_message'
28
+ };
29
+ var ANNOTATION_ACTION_TYPE = exports.ANNOTATION_ACTION_TYPE = /*#__PURE__*/function (ANNOTATION_ACTION_TYPE) {
30
+ ANNOTATION_ACTION_TYPE["REQUESTED"] = "REQUESTED";
31
+ ANNOTATION_ACTION_TYPE["ACCEPTED"] = "ACCEPTED";
32
+ ANNOTATION_ACTION_TYPE["DECLINED"] = "DECLINED";
33
+ ANNOTATION_ACTION_TYPE["OFFERED"] = "OFFERED";
34
+ ANNOTATION_ACTION_TYPE["CANCELED"] = "CANCELED";
35
+ ANNOTATION_ACTION_TYPE["EXPIRED"] = "EXPIRED";
36
+ ANNOTATION_ACTION_TYPE["REVOKED"] = "REVOKED";
37
+ ANNOTATION_ACTION_TYPE["CLOSED"] = "CLOSED";
38
+ return ANNOTATION_ACTION_TYPE;
39
+ }({});
40
+ var ANNOTATION = exports.ANNOTATION = 'annotation';
41
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EVENT_TRIGGERS","exports","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,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,sBAAsB,EAAE,uBAAuB;EAC/CC,kBAAkB,EAAE;AACtB,CAAC;AACM,IAAMC,wBAAwB,GAAAH,OAAA,CAAAG,wBAAA,GAAG,mBAAmB;AACpD,IAAMC,sBAAsB,GAAAJ,OAAA,CAAAI,sBAAA,GAAG;EACpCC,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAMC,iBAAiB,GAAAN,OAAA,CAAAM,iBAAA,GAAG;EAC/BC,aAAa,EAAE,eAAe;EAC9BC,kBAAkB,EAAE;AACtB,CAAC;AAAC,IAEUC,iBAAiB,GAAAT,OAAA,CAAAS,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAMtB,IAAMC,uBAAuB,GAAAV,OAAA,CAAAU,uBAAA,GAAG;EACrCC,kBAAkB,EAAE;AACtB,CAAC;AAAC,IAEgBC,sBAAsB,GAAAZ,OAAA,CAAAY,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAWjC,IAAMC,UAAU,GAAAb,OAAA,CAAAa,UAAA,GAAG,YAAY"}
@@ -0,0 +1,357 @@
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; } } // eslint-disable-next-line import/no-extraneous-dependencies
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
+ /**
50
+ * send annotation command
51
+ * @param {ANNOTATION_ACTION_TYPE} actionType
52
+ * @param {RequestData} requestData
53
+ * @returns {Promise}
54
+ */
55
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendAnnotationAction", /*#__PURE__*/function () {
56
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(actionType, requestData) {
57
+ var body;
58
+ return _regenerator.default.wrap(function _callee$(_context) {
59
+ while (1) switch (_context.prev = _context.next) {
60
+ case 0:
61
+ body = {
62
+ actionType: actionType,
63
+ resourceType: 'AnnotationOnShare',
64
+ shareInstanceId: requestData.shareInstanceId
65
+ };
66
+ if (requestData !== null && requestData !== void 0 && requestData.toUserId) {
67
+ body.receivers = [{
68
+ participantId: requestData.toUserId,
69
+ deviceUrl: requestData.toDeviceUrl
70
+ }];
71
+ }
72
+
73
+ // @ts-ignore
74
+ return _context.abrupt("return", _this.request({
75
+ method: _constants2.HTTP_VERBS.POST,
76
+ url: "".concat(_this.approvalUrl),
77
+ body: body
78
+ }));
79
+ case 3:
80
+ case "end":
81
+ return _context.stop();
82
+ }
83
+ }, _callee);
84
+ }));
85
+ return function (_x, _x2) {
86
+ return _ref.apply(this, arguments);
87
+ };
88
+ }());
89
+ /**
90
+ * decrypt data
91
+ * @param {string} encryptionKeyUrl
92
+ * @param {string} content encrypted content
93
+ * @returns {string} decrypted content
94
+ */
95
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "decryptContent", function (encryptionKeyUrl, content) {
96
+ // @ts-ignore
97
+ return _this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then(function (res) {
98
+ return res;
99
+ });
100
+ });
101
+ /**
102
+ * encrypt data
103
+ * @param {string} encryptionKeyUrl
104
+ * @param {string} content original content
105
+ * @returns {string} encrypted content
106
+ */
107
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "encryptContent", function (encryptionKeyUrl, content) {
108
+ // @ts-ignore
109
+ return _this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then(function (res) {
110
+ return res;
111
+ });
112
+ });
113
+ /**
114
+ * Sends stroke data to presenter
115
+ * @param {StrokeData} strokeData
116
+ * @returns {void}
117
+ */
118
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendStrokeData", function (strokeData) {
119
+ // @ts-ignore
120
+ if (!_this.webex.internal.llm.isConnected()) return;
121
+ _this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(function (encryptedContent) {
122
+ _this.publishEncrypted(encryptedContent, strokeData);
123
+ });
124
+ });
125
+ _this.seqNum = 1;
126
+ return _this;
127
+ }
128
+
129
+ /**
130
+ * Process Stroke Data
131
+ * @param {object} data
132
+ * @returns {void}
133
+ */
134
+ (0, _createClass2.default)(AnnotationChannel, [{
135
+ key: "processStrokeMessage",
136
+ value: function processStrokeMessage(data) {
137
+ var _this2 = this;
138
+ var request = data.request;
139
+ this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(function (decryptedContent) {
140
+ request.value.content = decryptedContent;
141
+ _triggerProxy.default.trigger(_this2, {
142
+ file: 'annotation',
143
+ function: 'processStrokeMessage'
144
+ }, _constants.EVENT_TRIGGERS.ANNOTATION_STROKE_DATA, {
145
+ payload: data
146
+ });
147
+ });
148
+ }
149
+
150
+ /** bind all events from mercury
151
+ * @param {Object} e
152
+ * @returns {undefined}
153
+ */
154
+ }, {
155
+ key: "eventCommandProcessor",
156
+ value: function eventCommandProcessor(e) {
157
+ var _e$data, _e$data2, _e$data2$approval, _e$data3, _e$data3$approval;
158
+ 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) {
159
+ _triggerProxy.default.trigger(this, {
160
+ file: 'annotation',
161
+ function: 'approval_request'
162
+ }, _constants.EVENT_TRIGGERS.ANNOTATION_COMMAND, {
163
+ type: e.data.approval.actionType,
164
+ payload: e.data.approval
165
+ });
166
+ }
167
+ }
168
+
169
+ /** bind all events from llm
170
+ * @param {Object} e
171
+ * @returns {undefined}
172
+ */
173
+ }, {
174
+ key: "eventDataProcessor",
175
+ value: function eventDataProcessor(e) {
176
+ var _e$data4;
177
+ switch (e === null || e === void 0 ? void 0 : (_e$data4 = e.data) === null || _e$data4 === void 0 ? void 0 : _e$data4.relayType) {
178
+ case _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:
179
+ this.processStrokeMessage(e.data);
180
+ break;
181
+ default:
182
+ break;
183
+ }
184
+ }
185
+
186
+ /**
187
+ * Listen to websocket messages
188
+ * @returns {undefined}
189
+ */
190
+ }, {
191
+ key: "listenToEvents",
192
+ value: function listenToEvents() {
193
+ if (!this.hasSubscribedToEvents) {
194
+ // @ts-ignore
195
+ this.webex.internal.mercury.on('event:locus.approval_request', this.eventCommandProcessor, this);
196
+ // @ts-ignore
197
+ this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);
198
+ this.hasSubscribedToEvents = true;
199
+ }
200
+ }
201
+
202
+ /**
203
+ * set locusUrl
204
+ * @param {string} locusUrl
205
+ * @returns {void}
206
+ */
207
+ }, {
208
+ key: "locusUrlUpdate",
209
+ value: function locusUrlUpdate(locusUrl) {
210
+ this.locusUrl = locusUrl;
211
+ this.listenToEvents();
212
+ }
213
+
214
+ /**
215
+ * set approved url
216
+ * @param {string} approvalUrl
217
+ * @returns {void}
218
+ */
219
+ }, {
220
+ key: "approvalUrlUpdate",
221
+ value: function approvalUrlUpdate(approvalUrl) {
222
+ this.approvalUrl = approvalUrl;
223
+ }
224
+
225
+ /**
226
+ * accept request
227
+ * @param {object} approval
228
+ * @returns {Promise}
229
+ */
230
+ }, {
231
+ key: "acceptRequest",
232
+ value: function acceptRequest(approval) {
233
+ // @ts-ignore
234
+ return this.request({
235
+ method: _constants2.HTTP_VERBS.PUT,
236
+ url: approval.url,
237
+ body: {
238
+ resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
239
+ actionType: _constants.ANNOTATION_ACTION_TYPE.ACCEPTED
240
+ }
241
+ });
242
+ }
243
+
244
+ /**
245
+ * presenter declined request annotation
246
+ * @param {approval} approval
247
+ * @returns {Promise}
248
+ */
249
+ }, {
250
+ key: "declineRequest",
251
+ value: function declineRequest(approval) {
252
+ // @ts-ignore
253
+ return this.request({
254
+ method: _constants2.HTTP_VERBS.PUT,
255
+ url: approval.url,
256
+ body: {
257
+ resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
258
+ actionType: _constants.ANNOTATION_ACTION_TYPE.DECLINED
259
+ }
260
+ });
261
+ }
262
+
263
+ /**
264
+ * request approved annotation
265
+ * @param {RequestData} requestData
266
+ * @returns {Promise}
267
+ */
268
+ }, {
269
+ key: "approveAnnotation",
270
+ value: function approveAnnotation(requestData) {
271
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.REQUESTED, requestData);
272
+ }
273
+
274
+ /**
275
+ * cancel approved annotation
276
+ * @param {object} requestData
277
+ * @param {object} approval
278
+ * @returns {Promise}
279
+ */
280
+ }, {
281
+ key: "cancelApproveAnnotation",
282
+ value: function cancelApproveAnnotation(requestData, approval) {
283
+ var body = {
284
+ actionType: _constants.ANNOTATION_ACTION_TYPE.CANCELED,
285
+ resourceType: 'AnnotationOnShare',
286
+ shareInstanceId: requestData.shareInstanceId
287
+ };
288
+
289
+ // @ts-ignore
290
+ return this.request({
291
+ method: _constants2.HTTP_VERBS.PUT,
292
+ url: "".concat(approval.url),
293
+ body: body
294
+ });
295
+ }
296
+
297
+ /**
298
+ * close annotation
299
+ * @param {object} requestData
300
+ * @returns {Promise}
301
+ */
302
+ }, {
303
+ key: "closeAnnotation",
304
+ value: function closeAnnotation(requestData) {
305
+ return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.CLOSED, requestData);
306
+ }
307
+ }, {
308
+ key: "publishEncrypted",
309
+ value:
310
+ /**
311
+ * private encrypted the strokes data
312
+ * @param {string} encryptedContent
313
+ * @param {StrokeData} strokeData
314
+ * @returns {void}
315
+ */
316
+ function publishEncrypted(encryptedContent, strokeData) {
317
+ var data = {
318
+ id: "".concat(this.seqNum),
319
+ type: 'publishRequest',
320
+ recipients: {
321
+ // @ts-ignore
322
+ route: this.webex.internal.llm.getBinding()
323
+ },
324
+ headers: {
325
+ to: strokeData.toUserId
326
+ },
327
+ data: {
328
+ eventType: 'relay.event',
329
+ relayType: _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,
330
+ request: {
331
+ value: {
332
+ type: _constants.ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,
333
+ content: encryptedContent,
334
+ deviceId: strokeData.deviceId,
335
+ seq: this.seqNum,
336
+ requesterId: strokeData.requesterId,
337
+ version: strokeData.version,
338
+ shareInstanceId: strokeData.shareInstanceId,
339
+ encryptionKeyUrl: strokeData.encryptionKeyUrl
340
+ }
341
+ }
342
+ },
343
+ trackingId: "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString()),
344
+ timestamp: new Date().getTime(),
345
+ sequenceNumber: this.seqNum,
346
+ filterMessage: false
347
+ };
348
+
349
+ // @ts-ignore
350
+ this.webex.internal.llm.socket.send(data);
351
+ this.seqNum += 1;
352
+ }
353
+ }]);
354
+ return AnnotationChannel;
355
+ }(_webexCore.WebexPlugin);
356
+ var _default = exports.default = AnnotationChannel;
357
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_triggerProxy","_constants","_constants2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","AnnotationChannel","_WebexPlugin","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","ANNOTATION","_ref","_asyncToGenerator2","_regenerator","mark","_callee","actionType","requestData","body","wrap","_callee$","_context","prev","next","resourceType","shareInstanceId","toUserId","receivers","participantId","deviceUrl","toDeviceUrl","abrupt","request","method","HTTP_VERBS","POST","url","approvalUrl","stop","_x","_x2","encryptionKeyUrl","content","webex","internal","encryption","decryptText","then","res","encryptText","strokeData","llm","isConnected","encryptContent","encryptedContent","publishEncrypted","seqNum","_createClass2","key","value","processStrokeMessage","data","_this2","decryptContent","decryptedContent","TriggerProxy","trigger","file","function","EVENT_TRIGGERS","ANNOTATION_STROKE_DATA","payload","eventCommandProcessor","_e$data","_e$data2","_e$data2$approval","_e$data3","_e$data3$approval","eventType","approval","ANNOTATION_RESOURCE_TYPE","ANNOTATION_COMMAND","type","eventDataProcessor","_e$data4","relayType","ANNOTATION_RELAY_TYPES","ANNOTATION_CLIENT","listenToEvents","hasSubscribedToEvents","mercury","on","locusUrlUpdate","locusUrl","approvalUrlUpdate","acceptRequest","PUT","ANNOTATION_ACTION_TYPE","ACCEPTED","declineRequest","DECLINED","approveAnnotation","sendAnnotationAction","REQUESTED","cancelApproveAnnotation","CANCELED","closeAnnotation","CLOSED","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","_default","exports"],"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 * 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":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAUA,IAAAI,WAAA,GAAAJ,OAAA;AAAwC,SAAAK,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA,sBAdxC;AAgBA;AACA;AACA;AACA;AAHA,IAIMC,iBAAiB,0BAAAC,YAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,iBAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,iBAAA;EAWrB;AACF;AACA;EACE,SAAAA,kBAAA,EAAqB;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,iBAAA;IAAA,SAAAM,IAAA,GAAAjB,SAAA,CAAAkB,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAH,IAAA,GAAAI,IAAA,MAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAArB,SAAA,CAAAqB,IAAA;IAAA;IACjBN,KAAA,GAAAD,MAAA,CAAAL,IAAA,CAAAR,KAAA,CAAAa,MAAA,SAAAQ,MAAA,CAASH,IAAI;IAAE,IAAAI,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA,gBAdLU,qBAAU;IAAA,IAAAF,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA;IAAA,IAAAQ,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA;IAAA,IAAAQ,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA;IAAA,IAAAQ,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA;IAAA,IAAAQ,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA;IAgMtB;AACF;AACA;AACA;AACA;AACA;IALE,IAAAQ,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA;MAAA,IAAAW,IAAA,OAAAC,kBAAA,CAAAhC,OAAA,gBAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAM+B,SAAAC,QAC7BC,UAAkC,EAClCC,WAAwB;QAAA,IAAAC,IAAA;QAAA,OAAAL,YAAA,CAAAjC,OAAA,CAAAuC,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAElBL,IAAwB,GAAG;gBAC/BF,UAAU,EAAVA,UAAU;gBACVQ,YAAY,EAAE,mBAAmB;gBACjCC,eAAe,EAAER,WAAW,CAACQ;cAC/B,CAAC;cACD,IAAIR,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAES,QAAQ,EAAE;gBACzBR,IAAI,CAACS,SAAS,GAAG,CAAC;kBAACC,aAAa,EAAEX,WAAW,CAACS,QAAQ;kBAAEG,SAAS,EAAEZ,WAAW,CAACa;gBAAW,CAAC,CAAC;cAC9F;;cAEA;cAAA,OAAAT,QAAA,CAAAU,MAAA,WACO/B,KAAA,CAAKgC,OAAO,CAAC;gBAClBC,MAAM,EAAEC,sBAAU,CAACC,IAAI;gBACvBC,GAAG,KAAA7B,MAAA,CAAKP,KAAA,CAAKqC,WAAW,CAAE;gBAC1BnB,IAAI,EAAJA;cACF,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAAiB,IAAA;UAAA;QAAA,GAAAvB,OAAA;MAAA,CACH;MAAA,iBAAAwB,EAAA,EAAAC,GAAA;QAAA,OAAA7B,IAAA,CAAAzB,KAAA,OAAAD,SAAA;MAAA;IAAA;IAED;AACF;AACA;AACA;AACA;AACA;IALE,IAAAuB,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA,qBAMyB,UAACyC,gBAAwB,EAAEC,OAAe,EAAmB;MACpF;MACA,OAAO1C,KAAA,CAAK2C,KAAK,CAACC,QAAQ,CAACC,UAAU,CAACC,WAAW,CAACL,gBAAgB,EAAEC,OAAO,CAAC,CAACK,IAAI,CAAC,UAACC,GAAG,EAAK;QACzF,OAAOA,GAAG;MACZ,CAAC,CAAC;IACJ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALE,IAAAxC,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA,qBAMyB,UAACyC,gBAAwB,EAAEC,OAAe,EAAmB;MACpF;MACA,OAAO1C,KAAA,CAAK2C,KAAK,CAACC,QAAQ,CAACC,UAAU,CAACI,WAAW,CAACR,gBAAgB,EAAEC,OAAO,CAAC,CAACK,IAAI,CAAC,UAACC,GAAG,EAAK;QACzF,OAAOA,GAAG;MACZ,CAAC,CAAC;IACJ,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE,IAAAxC,gBAAA,CAAA5B,OAAA,MAAA6B,uBAAA,CAAA7B,OAAA,EAAAoB,KAAA,qBAKwB,UAACkD,UAAsB,EAAW;MACxD;MACA,IAAI,CAAClD,KAAA,CAAK2C,KAAK,CAACC,QAAQ,CAACO,GAAG,CAACC,WAAW,CAAC,CAAC,EAAE;MAC5CpD,KAAA,CAAKqD,cAAc,CAACH,UAAU,CAACT,gBAAgB,EAAES,UAAU,CAACR,OAAO,CAAC,CAACK,IAAI,CACvE,UAACO,gBAAgB,EAAK;QACpBtD,KAAA,CAAKuD,gBAAgB,CAACD,gBAAgB,EAAEJ,UAAU,CAAC;MACrD,CACF,CAAC;IACH,CAAC;IAnPClD,KAAA,CAAKwD,MAAM,GAAG,CAAC;IAAC,OAAAxD,KAAA;EAClB;;EAEA;AACF;AACA;AACA;AACA;EAJE,IAAAyD,aAAA,CAAA7E,OAAA,EAAAgB,iBAAA;IAAA8D,GAAA;IAAAC,KAAA,EAKA,SAAAC,qBAA6BC,IAAI,EAAE;MAAA,IAAAC,MAAA;MACjC,IAAO9B,OAAO,GAAI6B,IAAI,CAAf7B,OAAO;MACd,IAAI,CAAC+B,cAAc,CAAC/B,OAAO,CAAC2B,KAAK,CAAClB,gBAAgB,EAAET,OAAO,CAAC2B,KAAK,CAACjB,OAAO,CAAC,CAACK,IAAI,CAC7E,UAACiB,gBAAgB,EAAK;QACpBhC,OAAO,CAAC2B,KAAK,CAACjB,OAAO,GAAGsB,gBAAgB;QACxCC,qBAAY,CAACC,OAAO,CAClBJ,MAAI,EACJ;UACEK,IAAI,EAAE,YAAY;UAClBC,QAAQ,EAAE;QACZ,CAAC,EACDC,yBAAc,CAACC,sBAAsB,EACrC;UACEC,OAAO,EAAEV;QACX,CACF,CAAC;MACH,CACF,CAAC;IACH;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAa,sBAA8B7E,CAAC,EAAE;MAAA,IAAA8E,OAAA,EAAAC,QAAA,EAAAC,iBAAA,EAAAC,QAAA,EAAAC,iBAAA;MAC/B,IACE,CAAAlF,CAAC,aAADA,CAAC,wBAAA8E,OAAA,GAAD9E,CAAC,CAAEkE,IAAI,cAAAY,OAAA,uBAAPA,OAAA,CAASK,SAAS,MAAK,wBAAwB,IAC/C,CAAAnF,CAAC,aAADA,CAAC,wBAAA+E,QAAA,GAAD/E,CAAC,CAAEkE,IAAI,cAAAa,QAAA,wBAAAC,iBAAA,GAAPD,QAAA,CAASK,QAAQ,cAAAJ,iBAAA,uBAAjBA,iBAAA,CAAmBnD,YAAY,MAAKwD,mCAAwB,IAC5DrF,CAAC,aAADA,CAAC,gBAAAiF,QAAA,GAADjF,CAAC,CAAEkE,IAAI,cAAAe,QAAA,gBAAAC,iBAAA,GAAPD,QAAA,CAASG,QAAQ,cAAAF,iBAAA,eAAjBA,iBAAA,CAAmB7D,UAAU,EAC7B;QACAiD,qBAAY,CAACC,OAAO,CAClB,IAAI,EACJ;UACEC,IAAI,EAAE,YAAY;UAClBC,QAAQ,EAAE;QACZ,CAAC,EACDC,yBAAc,CAACY,kBAAkB,EACjC;UACEC,IAAI,EAAEvF,CAAC,CAACkE,IAAI,CAACkB,QAAQ,CAAC/D,UAAU;UAChCuD,OAAO,EAAE5E,CAAC,CAACkE,IAAI,CAACkB;QAClB,CACF,CAAC;MACH;IACF;;IAEA;AACF;AACA;AACA;EAHE;IAAArB,GAAA;IAAAC,KAAA,EAIA,SAAAwB,mBAA2BxF,CAAC,EAAE;MAAA,IAAAyF,QAAA;MAC5B,QAAQzF,CAAC,aAADA,CAAC,wBAAAyF,QAAA,GAADzF,CAAC,CAAEkE,IAAI,cAAAuB,QAAA,uBAAPA,QAAA,CAASC,SAAS;QACxB,KAAKC,iCAAsB,CAACC,iBAAiB;UAC3C,IAAI,CAAC3B,oBAAoB,CAACjE,CAAC,CAACkE,IAAI,CAAC;UACjC;QACF;UACE;MACJ;IACF;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAA6B,eAAA,EAAyB;MACvB,IAAI,CAAC,IAAI,CAACC,qBAAqB,EAAE;QAC/B;QACA,IAAI,CAAC9C,KAAK,CAACC,QAAQ,CAAC8C,OAAO,CAACC,EAAE,CAC5B,8BAA8B,EAC9B,IAAI,CAACnB,qBAAqB,EAC1B,IACF,CAAC;QACD;QACA,IAAI,CAAC7B,KAAK,CAACC,QAAQ,CAACO,GAAG,CAACwC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAACR,kBAAkB,EAAE,IAAI,CAAC;QAC9E,IAAI,CAACM,qBAAqB,GAAG,IAAI;MACnC;IACF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA/B,GAAA;IAAAC,KAAA,EAKA,SAAAiC,eAAsBC,QAAgB,EAAE;MACtC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAACL,cAAc,CAAC,CAAC;IACvB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA9B,GAAA;IAAAC,KAAA,EAKA,SAAAmC,kBAAyBzD,WAAmB,EAAE;MAC5C,IAAI,CAACA,WAAW,GAAGA,WAAW;IAChC;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAqB,GAAA;IAAAC,KAAA,EAKA,SAAAoC,cAAqBhB,QAAQ,EAAE;MAC7B;MACA,OAAO,IAAI,CAAC/C,OAAO,CAAC;QAClBC,MAAM,EAAEC,sBAAU,CAAC8D,GAAG;QACtB5D,GAAG,EAAE2C,QAAQ,CAAC3C,GAAG;QACjBlB,IAAI,EAAE;UACJM,YAAY,EAAEwD,mCAAwB;UACtChE,UAAU,EAAEiF,iCAAsB,CAACC;QACrC;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAxC,GAAA;IAAAC,KAAA,EAKA,SAAAwC,eAAsBpB,QAAQ,EAAE;MAC9B;MACA,OAAO,IAAI,CAAC/C,OAAO,CAAC;QAClBC,MAAM,EAAEC,sBAAU,CAAC8D,GAAG;QACtB5D,GAAG,EAAE2C,QAAQ,CAAC3C,GAAG;QACjBlB,IAAI,EAAE;UACJM,YAAY,EAAEwD,mCAAwB;UACtChE,UAAU,EAAEiF,iCAAsB,CAACG;QACrC;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA1C,GAAA;IAAAC,KAAA,EAKA,SAAA0C,kBAAyBpF,WAAwB,EAAE;MACjD,OAAO,IAAI,CAACqF,oBAAoB,CAACL,iCAAsB,CAACM,SAAS,EAAEtF,WAAW,CAAC;IACjF;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAyC,GAAA;IAAAC,KAAA,EAMA,SAAA6C,wBAA+BvF,WAAwB,EAAE8D,QAAQ,EAAE;MACjE,IAAM7D,IAAwB,GAAG;QAC/BF,UAAU,EAAEiF,iCAAsB,CAACQ,QAAQ;QAC3CjF,YAAY,EAAE,mBAAmB;QACjCC,eAAe,EAAER,WAAW,CAACQ;MAC/B,CAAC;;MAED;MACA,OAAO,IAAI,CAACO,OAAO,CAAC;QAClBC,MAAM,EAAEC,sBAAU,CAAC8D,GAAG;QACtB5D,GAAG,KAAA7B,MAAA,CAAKwE,QAAQ,CAAC3C,GAAG,CAAE;QACtBlB,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAwC,GAAA;IAAAC,KAAA,EAKA,SAAA+C,gBAAuBzF,WAAwB,EAAE;MAC/C,OAAO,IAAI,CAACqF,oBAAoB,CAACL,iCAAsB,CAACU,MAAM,EAAE1F,WAAW,CAAC;IAC9E;EAAC;IAAAyC,GAAA;IAAAC,KAAA;IAsED;AACF;AACA;AACA;AACA;AACA;IACE,SAAAJ,iBAAyBD,gBAAwB,EAAEJ,UAAsB,EAAE;MACzE,IAAMW,IAAI,GAAG;QACX+C,EAAE,KAAArG,MAAA,CAAK,IAAI,CAACiD,MAAM,CAAE;QACpB0B,IAAI,EAAE,gBAAgB;QACtB2B,UAAU,EAAE;UACV;UACAC,KAAK,EAAE,IAAI,CAACnE,KAAK,CAACC,QAAQ,CAACO,GAAG,CAAC4D,UAAU,CAAC;QAC5C,CAAC;QACDC,OAAO,EAAE;UACPC,EAAE,EAAE/D,UAAU,CAACxB;QACjB,CAAC;QACDmC,IAAI,EAAE;UACJiB,SAAS,EAAE,aAAa;UACxBO,SAAS,EAAEC,iCAAsB,CAACC,iBAAiB;UACnDvD,OAAO,EAAE;YACP2B,KAAK,EAAE;cACLuB,IAAI,EAAEgC,kCAAuB,CAACC,kBAAkB;cAChDzE,OAAO,EAAEY,gBAAgB;cACzB8D,QAAQ,EAAElE,UAAU,CAACkE,QAAQ;cAC7BC,GAAG,EAAE,IAAI,CAAC7D,MAAM;cAChB8D,WAAW,EAAEpE,UAAU,CAACoE,WAAW;cACnCC,OAAO,EAAErE,UAAU,CAACqE,OAAO;cAC3B9F,eAAe,EAAEyB,UAAU,CAACzB,eAAe;cAC3CgB,gBAAgB,EAAES,UAAU,CAACT;YAC/B;UACF;QACF,CAAC;QACD+E,UAAU,KAAAjH,MAAA,CAAKkH,iBAAM,CAACC,gBAAgB,OAAAnH,MAAA,CAAIoH,aAAI,CAACC,EAAE,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAE;QAChEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;QAC/BC,cAAc,EAAE,IAAI,CAACzE,MAAM;QAC3B0E,aAAa,EAAE;MACjB,CAAC;;MAED;MACA,IAAI,CAACvF,KAAK,CAACC,QAAQ,CAACO,GAAG,CAACgF,MAAM,CAACC,IAAI,CAACvE,IAAI,CAAC;MACzC,IAAI,CAACL,MAAM,IAAI,CAAC;IAClB;EAAC;EAAA,OAAA5D,iBAAA;AAAA,EA/S6ByI,sBAAW;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAA3J,OAAA,GAkT5BgB,iBAAiB"}