@webex/plugin-meetings 3.0.0-stream-classes.5 → 3.0.0

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 (465) hide show
  1. package/.eslintrc.js +6 -0
  2. package/README.md +12 -0
  3. package/babel.config.js +3 -0
  4. package/dist/annotation/constants.js +12 -20
  5. package/dist/annotation/constants.js.map +1 -1
  6. package/dist/annotation/index.js +25 -10
  7. package/dist/annotation/index.js.map +1 -1
  8. package/dist/breakouts/breakout.js +2 -3
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/collection.js +1 -2
  11. package/dist/breakouts/collection.js.map +1 -1
  12. package/dist/breakouts/edit-lock-error.js +1 -2
  13. package/dist/breakouts/edit-lock-error.js.map +1 -1
  14. package/dist/breakouts/events.js +1 -2
  15. package/dist/breakouts/events.js.map +1 -1
  16. package/dist/breakouts/index.js +13 -14
  17. package/dist/breakouts/index.js.map +1 -1
  18. package/dist/breakouts/request.js +1 -2
  19. package/dist/breakouts/request.js.map +1 -1
  20. package/dist/breakouts/utils.js +3 -6
  21. package/dist/breakouts/utils.js.map +1 -1
  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.d.ts +14 -0
  37. package/dist/common/errors/no-meeting-info.js +50 -0
  38. package/dist/common/errors/no-meeting-info.js.map +1 -0
  39. package/dist/common/errors/parameter.js +3 -4
  40. package/dist/common/errors/parameter.js.map +1 -1
  41. package/dist/common/errors/password-error.js +1 -2
  42. package/dist/common/errors/password-error.js.map +1 -1
  43. package/dist/common/errors/permission.js +1 -2
  44. package/dist/common/errors/permission.js.map +1 -1
  45. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  46. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +1 -2
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +1 -2
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +1 -2
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/{types/common → common}/errors/webex-errors.d.ts +13 -1
  55. package/dist/common/errors/webex-errors.js +35 -16
  56. package/dist/common/errors/webex-errors.js.map +1 -1
  57. package/dist/common/errors/webex-meetings-error.js +1 -2
  58. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  59. package/dist/common/events/events-scope.js +1 -2
  60. package/dist/common/events/events-scope.js.map +1 -1
  61. package/dist/common/events/events.js +1 -2
  62. package/dist/common/events/events.js.map +1 -1
  63. package/dist/common/events/trigger-proxy.js +1 -2
  64. package/dist/common/events/trigger-proxy.js.map +1 -1
  65. package/dist/common/events/util.js +1 -2
  66. package/dist/common/events/util.js.map +1 -1
  67. package/dist/common/logs/logger-config.js +1 -2
  68. package/dist/common/logs/logger-config.js.map +1 -1
  69. package/dist/common/logs/logger-proxy.js +1 -2
  70. package/dist/common/logs/logger-proxy.js.map +1 -1
  71. package/dist/{types/common → common}/logs/request.d.ts +3 -1
  72. package/dist/common/logs/request.js +8 -5
  73. package/dist/common/logs/request.js.map +1 -1
  74. package/dist/common/queue.js +2 -4
  75. package/dist/common/queue.js.map +1 -1
  76. package/dist/{types/config.d.ts → config.d.ts} +1 -1
  77. package/dist/config.js +3 -3
  78. package/dist/config.js.map +1 -1
  79. package/dist/{types/constants.d.ts → constants.d.ts} +71 -15
  80. package/dist/constants.js +252 -371
  81. package/dist/constants.js.map +1 -1
  82. package/dist/controls-options-manager/constants.js +3 -6
  83. package/dist/controls-options-manager/constants.js.map +1 -1
  84. package/dist/controls-options-manager/enums.js +7 -10
  85. package/dist/controls-options-manager/enums.js.map +1 -1
  86. package/dist/controls-options-manager/index.js +27 -32
  87. package/dist/controls-options-manager/index.js.map +1 -1
  88. package/dist/controls-options-manager/util.js +1 -2
  89. package/dist/controls-options-manager/util.js.map +1 -1
  90. package/dist/index.js +8 -5
  91. package/dist/index.js.map +1 -1
  92. package/dist/interceptors/index.d.ts +2 -0
  93. package/dist/interceptors/index.js +15 -0
  94. package/dist/interceptors/index.js.map +1 -0
  95. package/dist/interceptors/locusRetry.d.ts +27 -0
  96. package/dist/interceptors/locusRetry.js +94 -0
  97. package/dist/interceptors/locusRetry.js.map +1 -0
  98. package/dist/interpretation/collection.js +1 -2
  99. package/dist/interpretation/collection.js.map +1 -1
  100. package/dist/interpretation/index.js +2 -3
  101. package/dist/interpretation/index.js.map +1 -1
  102. package/dist/interpretation/siLanguage.js +2 -3
  103. package/dist/interpretation/siLanguage.js.map +1 -1
  104. package/dist/locus-info/controlsUtils.js +12 -13
  105. package/dist/locus-info/controlsUtils.js.map +1 -1
  106. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  107. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  108. package/dist/locus-info/fullState.js +1 -2
  109. package/dist/locus-info/fullState.js.map +1 -1
  110. package/dist/locus-info/hostUtils.js +1 -2
  111. package/dist/locus-info/hostUtils.js.map +1 -1
  112. package/dist/{types/locus-info → locus-info}/index.d.ts +1 -1
  113. package/dist/locus-info/index.js +38 -37
  114. package/dist/locus-info/index.js.map +1 -1
  115. package/dist/locus-info/infoUtils.js +3 -4
  116. package/dist/locus-info/infoUtils.js.map +1 -1
  117. package/dist/locus-info/mediaSharesUtils.js +16 -3
  118. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  119. package/dist/{types/locus-info → locus-info}/parser.d.ts +3 -2
  120. package/dist/locus-info/parser.js +43 -31
  121. package/dist/locus-info/parser.js.map +1 -1
  122. package/dist/locus-info/selfUtils.js +7 -6
  123. package/dist/locus-info/selfUtils.js.map +1 -1
  124. package/dist/media/index.js +15 -10
  125. package/dist/media/index.js.map +1 -1
  126. package/dist/media/properties.js +16 -7
  127. package/dist/media/properties.js.map +1 -1
  128. package/dist/media/util.js +1 -2
  129. package/dist/media/util.js.map +1 -1
  130. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  131. package/dist/mediaQualityMetrics/config.js +135 -339
  132. package/dist/mediaQualityMetrics/config.js.map +1 -1
  133. package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +4 -0
  134. package/dist/meeting/in-meeting-actions.js +18 -2
  135. package/dist/meeting/in-meeting-actions.js.map +1 -1
  136. package/dist/{types/meeting → meeting}/index.d.ts +318 -45
  137. package/dist/meeting/index.js +2620 -1405
  138. package/dist/meeting/index.js.map +1 -1
  139. package/dist/meeting/locusMediaRequest.js +4 -5
  140. package/dist/meeting/locusMediaRequest.js.map +1 -1
  141. package/dist/meeting/muteState.js +2 -4
  142. package/dist/meeting/muteState.js.map +1 -1
  143. package/dist/{types/meeting → meeting}/request.d.ts +2 -0
  144. package/dist/meeting/request.js +46 -31
  145. package/dist/meeting/request.js.map +1 -1
  146. package/dist/meeting/state.js +1 -2
  147. package/dist/meeting/state.js.map +1 -1
  148. package/dist/{types/meeting → meeting}/util.d.ts +17 -0
  149. package/dist/meeting/util.js +83 -10
  150. package/dist/meeting/util.js.map +1 -1
  151. package/dist/meeting/voicea-meeting.d.ts +16 -0
  152. package/dist/meeting/voicea-meeting.js +169 -0
  153. package/dist/meeting/voicea-meeting.js.map +1 -0
  154. package/dist/meeting-info/collection.js +3 -4
  155. package/dist/meeting-info/collection.js.map +1 -1
  156. package/dist/{types/meeting-info → meeting-info}/index.d.ts +7 -0
  157. package/dist/meeting-info/index.js +53 -27
  158. package/dist/meeting-info/index.js.map +1 -1
  159. package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +1 -0
  160. package/dist/meeting-info/meeting-info-v2.js +52 -33
  161. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  162. package/dist/meeting-info/request.js +1 -2
  163. package/dist/meeting-info/request.js.map +1 -1
  164. package/dist/meeting-info/util.js +8 -8
  165. package/dist/meeting-info/util.js.map +1 -1
  166. package/dist/meeting-info/utilv2.js +12 -9
  167. package/dist/meeting-info/utilv2.js.map +1 -1
  168. package/dist/{types/meetings → meetings}/collection.d.ts +9 -0
  169. package/dist/meetings/collection.js +21 -5
  170. package/dist/meetings/collection.js.map +1 -1
  171. package/dist/{types/meetings → meetings}/index.d.ts +45 -16
  172. package/dist/meetings/index.js +166 -74
  173. package/dist/meetings/index.js.map +1 -1
  174. package/dist/meetings/request.js +2 -3
  175. package/dist/meetings/request.js.map +1 -1
  176. package/dist/meetings/util.js +3 -10
  177. package/dist/meetings/util.js.map +1 -1
  178. package/dist/{types/member → member}/index.d.ts +1 -0
  179. package/dist/member/index.js +10 -3
  180. package/dist/member/index.js.map +1 -1
  181. package/dist/member/member.types.d.ts +11 -0
  182. package/dist/member/member.types.js +17 -0
  183. package/dist/member/member.types.js.map +1 -0
  184. package/dist/member/types.js +6 -8
  185. package/dist/member/types.js.map +1 -1
  186. package/dist/member/util.js +12 -2
  187. package/dist/member/util.js.map +1 -1
  188. package/dist/members/collection.js +1 -2
  189. package/dist/members/collection.js.map +1 -1
  190. package/dist/members/index.js +25 -8
  191. package/dist/members/index.js.map +1 -1
  192. package/dist/members/request.js +2 -3
  193. package/dist/members/request.js.map +1 -1
  194. package/dist/{types/members → members}/types.d.ts +1 -0
  195. package/dist/members/types.js +3 -4
  196. package/dist/members/types.js.map +1 -1
  197. package/dist/{types/members → members}/util.d.ts +6 -1
  198. package/dist/members/util.js +18 -8
  199. package/dist/members/util.js.map +1 -1
  200. package/dist/{types/metrics → metrics}/constants.d.ts +12 -0
  201. package/dist/metrics/constants.js +14 -3
  202. package/dist/metrics/constants.js.map +1 -1
  203. package/dist/metrics/index.js +3 -2
  204. package/dist/metrics/index.js.map +1 -1
  205. package/dist/multistream/mediaRequestManager.js +9 -11
  206. package/dist/multistream/mediaRequestManager.js.map +1 -1
  207. package/dist/multistream/receiveSlot.js +3 -5
  208. package/dist/multistream/receiveSlot.js.map +1 -1
  209. package/dist/multistream/receiveSlotManager.js +7 -9
  210. package/dist/multistream/receiveSlotManager.js.map +1 -1
  211. package/dist/multistream/remoteMedia.js +3 -5
  212. package/dist/multistream/remoteMedia.js.map +1 -1
  213. package/dist/multistream/remoteMediaGroup.js +7 -6
  214. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  215. package/dist/multistream/remoteMediaManager.js +28 -27
  216. package/dist/multistream/remoteMediaManager.js.map +1 -1
  217. package/dist/multistream/sendSlotManager.js +9 -6
  218. package/dist/multistream/sendSlotManager.js.map +1 -1
  219. package/dist/networkQualityMonitor/index.js +1 -2
  220. package/dist/networkQualityMonitor/index.js.map +1 -1
  221. package/dist/personal-meeting-room/index.js +2 -3
  222. package/dist/personal-meeting-room/index.js.map +1 -1
  223. package/dist/personal-meeting-room/request.js +2 -3
  224. package/dist/personal-meeting-room/request.js.map +1 -1
  225. package/dist/personal-meeting-room/util.js +1 -2
  226. package/dist/personal-meeting-room/util.js.map +1 -1
  227. package/dist/reachability/clusterReachability.d.ts +109 -0
  228. package/dist/reachability/clusterReachability.js +357 -0
  229. package/dist/reachability/clusterReachability.js.map +1 -0
  230. package/dist/reachability/index.d.ts +105 -0
  231. package/dist/reachability/index.js +279 -436
  232. package/dist/reachability/index.js.map +1 -1
  233. package/dist/reachability/request.js +14 -11
  234. package/dist/reachability/request.js.map +1 -1
  235. package/dist/reachability/util.d.ts +8 -0
  236. package/dist/reachability/util.js +29 -0
  237. package/dist/reachability/util.js.map +1 -0
  238. package/dist/reactions/constants.js +1 -2
  239. package/dist/reactions/constants.js.map +1 -1
  240. package/dist/reactions/reactions.js +2 -4
  241. package/dist/reactions/reactions.js.map +1 -1
  242. package/dist/reactions/reactions.type.js +6 -8
  243. package/dist/reactions/reactions.type.js.map +1 -1
  244. package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +10 -0
  245. package/dist/reconnection-manager/index.js +129 -106
  246. package/dist/reconnection-manager/index.js.map +1 -1
  247. package/dist/recording-controller/enums.js +4 -5
  248. package/dist/recording-controller/enums.js.map +1 -1
  249. package/dist/recording-controller/index.js +43 -51
  250. package/dist/recording-controller/index.js.map +1 -1
  251. package/dist/recording-controller/util.js +1 -2
  252. package/dist/recording-controller/util.js.map +1 -1
  253. package/dist/{types/roap → roap}/index.d.ts +2 -1
  254. package/dist/roap/index.js +59 -28
  255. package/dist/roap/index.js.map +1 -1
  256. package/dist/roap/request.js +14 -22
  257. package/dist/roap/request.js.map +1 -1
  258. package/dist/{types/roap → roap}/turnDiscovery.d.ts +21 -4
  259. package/dist/roap/turnDiscovery.js +182 -89
  260. package/dist/roap/turnDiscovery.js.map +1 -1
  261. package/dist/rtcMetrics/constants.js +1 -2
  262. package/dist/rtcMetrics/constants.js.map +1 -1
  263. package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +15 -1
  264. package/dist/rtcMetrics/index.js +72 -12
  265. package/dist/rtcMetrics/index.js.map +1 -1
  266. package/dist/statsAnalyzer/global.js +1 -2
  267. package/dist/statsAnalyzer/global.js.map +1 -1
  268. package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +28 -11
  269. package/dist/statsAnalyzer/index.js +371 -318
  270. package/dist/statsAnalyzer/index.js.map +1 -1
  271. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  272. package/dist/statsAnalyzer/mqaUtil.js +295 -162
  273. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  274. package/dist/transcription/index.js +1 -2
  275. package/dist/transcription/index.js.map +1 -1
  276. package/dist/webinar/collection.d.ts +16 -0
  277. package/dist/webinar/collection.js +43 -0
  278. package/dist/webinar/collection.js.map +1 -0
  279. package/dist/webinar/index.d.ts +5 -0
  280. package/dist/webinar/index.js +68 -0
  281. package/dist/webinar/index.js.map +1 -0
  282. package/jest.config.js +3 -0
  283. package/package.json +44 -24
  284. package/process +1 -0
  285. package/src/common/errors/no-meeting-info.ts +24 -0
  286. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  287. package/src/common/errors/webex-errors.ts +19 -2
  288. package/src/common/logs/request.ts +5 -1
  289. package/src/config.ts +3 -5
  290. package/src/constants.ts +77 -8
  291. package/src/index.ts +4 -0
  292. package/src/interceptors/index.ts +3 -0
  293. package/src/interceptors/locusRetry.ts +67 -0
  294. package/src/locus-info/index.ts +19 -14
  295. package/src/locus-info/mediaSharesUtils.ts +16 -0
  296. package/src/locus-info/parser.ts +40 -21
  297. package/src/media/index.ts +8 -6
  298. package/src/media/properties.ts +17 -2
  299. package/src/mediaQualityMetrics/config.ts +103 -238
  300. package/src/meeting/in-meeting-actions.ts +8 -0
  301. package/src/meeting/index.ts +1664 -642
  302. package/src/meeting/request.ts +18 -0
  303. package/src/meeting/util.ts +102 -1
  304. package/src/meeting/voicea-meeting.ts +122 -0
  305. package/src/meeting-info/index.ts +47 -20
  306. package/src/meeting-info/meeting-info-v2.ts +32 -16
  307. package/src/meeting-info/util.ts +12 -9
  308. package/src/meeting-info/utilv2.ts +25 -15
  309. package/src/meetings/collection.ts +13 -0
  310. package/src/meetings/index.ts +112 -31
  311. package/src/meetings/util.ts +2 -8
  312. package/src/member/index.ts +9 -1
  313. package/src/member/member.types.ts +13 -0
  314. package/src/member/util.ts +14 -0
  315. package/src/members/index.ts +29 -2
  316. package/src/members/types.ts +1 -0
  317. package/src/members/util.ts +15 -1
  318. package/src/metrics/constants.ts +12 -0
  319. package/src/reachability/clusterReachability.ts +320 -0
  320. package/src/reachability/index.ts +221 -382
  321. package/src/reachability/request.ts +1 -1
  322. package/src/reachability/util.ts +24 -0
  323. package/src/reconnection-manager/index.ts +87 -83
  324. package/src/roap/index.ts +60 -24
  325. package/src/roap/request.ts +4 -17
  326. package/src/roap/turnDiscovery.ts +112 -39
  327. package/src/rtcMetrics/index.ts +71 -5
  328. package/src/statsAnalyzer/index.ts +430 -427
  329. package/src/statsAnalyzer/mqaUtil.ts +317 -168
  330. package/src/webinar/collection.ts +31 -0
  331. package/src/webinar/index.ts +62 -0
  332. package/test/integration/spec/journey.js +12 -12
  333. package/test/integration/spec/space-meeting.js +1 -1
  334. package/test/unit/spec/breakouts/breakout.ts +2 -1
  335. package/test/unit/spec/breakouts/index.ts +7 -4
  336. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  337. package/test/unit/spec/locus-info/index.js +88 -12
  338. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  339. package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
  340. package/test/unit/spec/locus-info/parser.js +54 -13
  341. package/test/unit/spec/locus-info/selfUtils.js +1 -1
  342. package/test/unit/spec/media/index.ts +25 -4
  343. package/test/unit/spec/media/properties.ts +2 -2
  344. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  345. package/test/unit/spec/meeting/index.js +4388 -1382
  346. package/test/unit/spec/meeting/request.js +63 -12
  347. package/test/unit/spec/meeting/utils.js +145 -10
  348. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  349. package/test/unit/spec/meeting-info/index.js +180 -61
  350. package/test/unit/spec/meeting-info/meetinginfov2.js +216 -68
  351. package/test/unit/spec/meetings/collection.js +12 -0
  352. package/test/unit/spec/meetings/index.js +674 -193
  353. package/test/unit/spec/meetings/utils.js +35 -12
  354. package/test/unit/spec/member/index.js +8 -7
  355. package/test/unit/spec/member/util.js +32 -0
  356. package/test/unit/spec/members/index.js +130 -17
  357. package/test/unit/spec/members/utils.js +26 -0
  358. package/test/unit/spec/metrics/index.js +1 -2
  359. package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
  360. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  361. package/test/unit/spec/reachability/index.ts +505 -135
  362. package/test/unit/spec/reachability/util.ts +40 -0
  363. package/test/unit/spec/reconnection-manager/index.js +74 -17
  364. package/test/unit/spec/recording-controller/index.js +0 -1
  365. package/test/unit/spec/roap/index.ts +181 -61
  366. package/test/unit/spec/roap/request.ts +27 -3
  367. package/test/unit/spec/roap/turnDiscovery.ts +363 -102
  368. package/test/unit/spec/rtcMetrics/index.ts +57 -3
  369. package/test/unit/spec/stats-analyzer/index.js +1225 -12
  370. package/test/unit/spec/webinar/collection.ts +13 -0
  371. package/test/unit/spec/webinar/index.ts +60 -0
  372. package/test/utils/webex-test-users.js +12 -4
  373. package/dist/types/mediaQualityMetrics/config.d.ts +0 -365
  374. package/dist/types/reachability/index.d.ts +0 -152
  375. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -24
  376. /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
  377. /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
  378. /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
  379. /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
  380. /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
  381. /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
  382. /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
  383. /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
  384. /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
  385. /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
  386. /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
  387. /package/dist/{types/common → common}/collection.d.ts +0 -0
  388. /package/dist/{types/common → common}/config.d.ts +0 -0
  389. /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
  390. /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
  391. /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
  392. /package/dist/{types/common → common}/errors/media.d.ts +0 -0
  393. /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
  394. /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
  395. /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
  396. /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
  397. /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
  398. /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
  399. /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
  400. /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
  401. /package/dist/{types/common → common}/events/events.d.ts +0 -0
  402. /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
  403. /package/dist/{types/common → common}/events/util.d.ts +0 -0
  404. /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
  405. /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
  406. /package/dist/{types/common → common}/queue.d.ts +0 -0
  407. /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
  408. /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
  409. /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
  410. /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
  411. /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
  412. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  413. /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
  414. /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
  415. /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
  416. /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
  417. /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
  418. /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
  419. /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
  420. /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
  421. /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
  422. /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
  423. /package/dist/{types/media → media}/index.d.ts +0 -0
  424. /package/dist/{types/media → media}/properties.d.ts +0 -0
  425. /package/dist/{types/media → media}/util.d.ts +0 -0
  426. /package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +0 -0
  427. /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
  428. /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
  429. /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
  430. /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
  431. /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
  432. /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
  433. /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
  434. /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
  435. /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
  436. /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
  437. /package/dist/{types/member → member}/types.d.ts +0 -0
  438. /package/dist/{types/member → member}/util.d.ts +0 -0
  439. /package/dist/{types/members → members}/collection.d.ts +0 -0
  440. /package/dist/{types/members → members}/index.d.ts +0 -0
  441. /package/dist/{types/members → members}/request.d.ts +0 -0
  442. /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
  443. /package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +0 -0
  444. /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
  445. /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
  446. /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
  447. /package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +0 -0
  448. /package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +0 -0
  449. /package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +0 -0
  450. /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
  451. /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
  452. /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
  453. /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
  454. /package/dist/{types/reachability → reachability}/request.d.ts +0 -0
  455. /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
  456. /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
  457. /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
  458. /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
  459. /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
  460. /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
  461. /package/dist/{types/roap → roap}/request.d.ts +0 -0
  462. /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
  463. /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
  464. /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
  465. /package/test/unit/spec/locus-info/{selfConstant.js → lib/selfConstant.js} +0 -0
@@ -4,31 +4,40 @@ import MockWebex from '@webex/test-helper-mock-webex';
4
4
  import Meetings from '@webex/plugin-meetings';
5
5
  import MeetingRequest from '@webex/plugin-meetings/src/meeting/request';
6
6
  import uuid from 'uuid';
7
- import { merge } from 'lodash';
7
+ import {merge} from 'lodash';
8
8
  import {IP_VERSION} from '@webex/plugin-meetings/src/constants';
9
-
9
+ import {CallDiagnosticUtils} from '@webex/internal-plugin-metrics';
10
10
 
11
11
  describe('plugin-meetings', () => {
12
12
  let meetingsRequest;
13
13
  let locusDeltaRequestSpy;
14
+ let webex;
15
+ const geoHintInfoDefaults = {
16
+ countryCode: 'US',
17
+ regionCode: 'WEST-COAST',
18
+ clientAddress: '127.0.0.1',
19
+ };
20
+ let anonymizeIpSpy;
14
21
 
15
22
  beforeEach(() => {
16
- const webex = new MockWebex({
23
+ webex = new MockWebex({
17
24
  children: {
18
25
  meetings: Meetings,
19
26
  },
20
27
  });
21
28
 
22
- webex.meetings.geoHintInfo = {
23
- countryCode: 'US',
24
- regionCode: 'WEST-COAST',
25
- };
29
+ webex.meetings.geoHintInfo = {...geoHintInfoDefaults};
26
30
 
27
31
  webex.internal = {
28
32
  services: {
29
33
  get: sinon.mock().returns('locusUrl'),
30
34
  waitForCatalog: sinon.mock().returns(Promise.resolve({})),
31
35
  },
36
+ device: {
37
+ config: {
38
+ installationId: 'installationId',
39
+ },
40
+ },
32
41
  };
33
42
 
34
43
  webex.boundedStorage.get = sinon
@@ -53,6 +62,11 @@ describe('plugin-meetings', () => {
53
62
 
54
63
  meetingsRequest.request = request;
55
64
  locusDeltaRequestSpy = sinon.spy(meetingsRequest, 'locusDeltaRequest');
65
+ anonymizeIpSpy = sinon.spy(CallDiagnosticUtils, 'anonymizeIPAddress');
66
+ });
67
+
68
+ afterEach(() => {
69
+ anonymizeIpSpy.restore();
56
70
  });
57
71
 
58
72
  const checkRequest = (expectedParams) => {
@@ -173,12 +187,13 @@ describe('plugin-meetings', () => {
173
187
  });
174
188
 
175
189
  describe('#joinMeeting', () => {
176
- it('sends /call requets for join', async () => {
190
+ it('sends /call request for join', async () => {
177
191
  const locusUrl = 'locusURL';
178
192
  const deviceUrl = 'deviceUrl';
179
193
  const correlationId = 'random-uuid';
180
194
  const roapMessage = 'roap-message';
181
195
  const permissionToken = 'permission-token';
196
+ const installationId = 'installationId';
182
197
 
183
198
  await meetingsRequest.joinMeeting({
184
199
  locusUrl,
@@ -192,9 +207,43 @@ describe('plugin-meetings', () => {
192
207
  assert.equal(requestParams.method, 'POST');
193
208
  assert.equal(requestParams.uri, `${locusUrl}/participant?alternateRedirect=true`);
194
209
  assert.equal(requestParams.body.device.url, deviceUrl);
210
+ assert.equal(requestParams.body.device.installationId, installationId);
195
211
  assert.equal(requestParams.body.device.countryCode, 'US');
196
212
  assert.equal(requestParams.body.permissionToken, 'permission-token');
197
213
  assert.equal(requestParams.body.device.regionCode, 'WEST-COAST');
214
+ assert.include(requestParams.body.device.localIp, '127.0.0');
215
+
216
+ assert.calledOnceWithExactly(anonymizeIpSpy, '127.0.0.1');
217
+ });
218
+
219
+ describe('clientAddress geoHintInfo undefined', () => {
220
+ beforeEach(() => {
221
+ webex.meetings.geoHintInfo = {};
222
+ });
223
+
224
+ // reset
225
+ afterEach(() => {
226
+ webex.meetings.geoHintInfo = {...geoHintInfoDefaults};
227
+ });
228
+
229
+ it('doesnt send the clientAddress if not available as localIp', async () => {
230
+ const locusUrl = 'locusURL';
231
+ const deviceUrl = 'deviceUrl';
232
+ const correlationId = 'random-uuid';
233
+ const roapMessage = 'roap-message';
234
+ const permissionToken = 'permission-token';
235
+
236
+ await meetingsRequest.joinMeeting({
237
+ locusUrl,
238
+ deviceUrl,
239
+ correlationId,
240
+ roapMessage,
241
+ permissionToken,
242
+ });
243
+ const requestParams = meetingsRequest.request.getCall(0).args[0];
244
+
245
+ assert.equal(requestParams.body.device.localIp, undefined);
246
+ });
198
247
  });
199
248
 
200
249
  it('sends /call with meetingNumber if inviteeAddress does not exist', async () => {
@@ -329,16 +378,16 @@ describe('plugin-meetings', () => {
329
378
  correlationId,
330
379
  roapMessage,
331
380
  permissionToken,
332
- ipVersion: IP_VERSION.ipv4_and_ipv6
381
+ ipVersion: IP_VERSION.ipv4_and_ipv6,
333
382
  });
334
383
  const requestParams = meetingsRequest.request.getCall(0).args[0];
335
384
 
336
385
  assert.equal(requestParams.method, 'POST');
337
386
  assert.equal(requestParams.uri, `${locusUrl}/participant?alternateRedirect=true`);
338
387
  assert.deepEqual(requestParams.body.clientMediaPreferences, {
339
- "joinCookie": {anycastEntryPoint: "aws-eu-west-1"},
340
- "preferTranscoding": true,
341
- "ipver": 1
388
+ joinCookie: {anycastEntryPoint: 'aws-eu-west-1'},
389
+ preferTranscoding: true,
390
+ ipver: 1,
342
391
  });
343
392
  });
344
393
  });
@@ -706,6 +755,7 @@ describe('plugin-meetings', () => {
706
755
  deviceUrl: 'deviceUrl',
707
756
  resourceId: 'resourceId',
708
757
  resourceUrl: 'resourceUrl',
758
+ shareInstanceId: '12345',
709
759
  uri: 'optionsUrl',
710
760
  annotationInfo: {
711
761
  version: '1',
@@ -719,6 +769,7 @@ describe('plugin-meetings', () => {
719
769
  version: '1',
720
770
  },
721
771
  floor: {
772
+ shareInstanceId: '12345',
722
773
  beneficiary: {
723
774
  devices: [
724
775
  {
@@ -2,6 +2,7 @@ import sinon from 'sinon';
2
2
  import {assert} from '@webex/test-helper-chai';
3
3
  import Meetings from '@webex/plugin-meetings';
4
4
  import MeetingUtil from '@webex/plugin-meetings/src/meeting/util';
5
+ import {LOCAL_SHARE_ERRORS} from '@webex/plugin-meetings/src/constants';
5
6
  import LoggerProxy from '@webex/plugin-meetings/src/common/logs/logger-proxy';
6
7
  import LoggerConfig from '@webex/plugin-meetings/src/common/logs/logger-config';
7
8
  import {SELF_POLICY, IP_VERSION} from '@webex/plugin-meetings/src/constants';
@@ -56,7 +57,8 @@ describe('plugin-meetings', () => {
56
57
  });
57
58
 
58
59
  describe('#cleanup', () => {
59
- it('do clean up on meeting object', async () => {
60
+ it('do clean up on meeting object with LLM enabled', async () => {
61
+ meeting.config = {enableAutomaticLLM : true};
60
62
  await MeetingUtil.cleanUp(meeting);
61
63
  assert.calledOnce(meeting.cleanupLocalStreams);
62
64
  assert.calledOnce(meeting.closeRemoteStreams);
@@ -70,6 +72,37 @@ describe('plugin-meetings', () => {
70
72
  assert.calledOnce(meeting.breakouts.cleanUp);
71
73
  assert.calledOnce(meeting.simultaneousInterpretation.cleanUp);
72
74
  });
75
+
76
+ it('do clean up on meeting object with LLM disabled', async () => {
77
+ meeting.config = {enableAutomaticLLM : false};
78
+ await MeetingUtil.cleanUp(meeting);
79
+ assert.calledOnce(meeting.cleanupLocalStreams);
80
+ assert.calledOnce(meeting.closeRemoteStreams);
81
+ assert.calledOnce(meeting.closePeerConnections);
82
+
83
+ assert.calledOnce(meeting.unsetRemoteStreams);
84
+ assert.calledOnce(meeting.unsetPeerConnections);
85
+ assert.calledOnce(meeting.reconnectionManager.cleanUp);
86
+ assert.calledOnce(meeting.stopKeepAlive);
87
+ assert.notCalled(meeting.updateLLMConnection);
88
+ assert.calledOnce(meeting.breakouts.cleanUp);
89
+ assert.calledOnce(meeting.simultaneousInterpretation.cleanUp);
90
+ });
91
+
92
+ it('do clean up on meeting object with no config', async () => {
93
+ await MeetingUtil.cleanUp(meeting);
94
+ assert.calledOnce(meeting.cleanupLocalStreams);
95
+ assert.calledOnce(meeting.closeRemoteStreams);
96
+ assert.calledOnce(meeting.closePeerConnections);
97
+
98
+ assert.calledOnce(meeting.unsetRemoteStreams);
99
+ assert.calledOnce(meeting.unsetPeerConnections);
100
+ assert.calledOnce(meeting.reconnectionManager.cleanUp);
101
+ assert.calledOnce(meeting.stopKeepAlive);
102
+ assert.notCalled(meeting.updateLLMConnection);
103
+ assert.calledOnce(meeting.breakouts.cleanUp);
104
+ assert.calledOnce(meeting.simultaneousInterpretation.cleanUp);
105
+ });
73
106
  });
74
107
 
75
108
  describe('logging', () => {
@@ -368,7 +401,7 @@ describe('plugin-meetings', () => {
368
401
  getWebexObject: sinon.stub().returns(webex),
369
402
  };
370
403
 
371
- MeetingUtil.parseLocusJoin = sinon.stub();
404
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
372
405
  await MeetingUtil.joinMeeting(meeting, {});
373
406
 
374
407
  assert.calledOnce(meeting.meetingRequest.joinMeeting);
@@ -395,6 +428,7 @@ describe('plugin-meetings', () => {
395
428
  mediaConnections: 'mediaConnections',
396
429
  },
397
430
  });
431
+ parseLocusJoinSpy.restore();
398
432
  });
399
433
 
400
434
  it('#Should call meetingRequest.joinMeeting with breakoutsSupported=true when passed in as true', async () => {
@@ -405,7 +439,7 @@ describe('plugin-meetings', () => {
405
439
  getWebexObject: sinon.stub().returns(webex),
406
440
  };
407
441
 
408
- MeetingUtil.parseLocusJoin = sinon.stub();
442
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
409
443
  await MeetingUtil.joinMeeting(meeting, {
410
444
  breakoutsSupported: true,
411
445
  });
@@ -414,6 +448,7 @@ describe('plugin-meetings', () => {
414
448
  const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
415
449
 
416
450
  assert.equal(parameter.breakoutsSupported, true);
451
+ parseLocusJoinSpy.restore();
417
452
  });
418
453
 
419
454
  it('#Should call meetingRequest.joinMeeting with liveAnnotationSupported=true when passed in as true', async () => {
@@ -424,7 +459,7 @@ describe('plugin-meetings', () => {
424
459
  getWebexObject: sinon.stub().returns(webex),
425
460
  };
426
461
 
427
- MeetingUtil.parseLocusJoin = sinon.stub();
462
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
428
463
  await MeetingUtil.joinMeeting(meeting, {
429
464
  liveAnnotationSupported: true,
430
465
  });
@@ -433,6 +468,7 @@ describe('plugin-meetings', () => {
433
468
  const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
434
469
 
435
470
  assert.equal(parameter.liveAnnotationSupported, true);
471
+ parseLocusJoinSpy.restore();
436
472
  });
437
473
 
438
474
  it('#Should call meetingRequest.joinMeeting with locale=en_UK, deviceCapabilities=["TEST"] when they are passed in as those values', async () => {
@@ -443,7 +479,7 @@ describe('plugin-meetings', () => {
443
479
  getWebexObject: sinon.stub().returns(webex),
444
480
  };
445
481
 
446
- MeetingUtil.parseLocusJoin = sinon.stub();
482
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
447
483
  await MeetingUtil.joinMeeting(meeting, {
448
484
  locale: 'en_UK',
449
485
  deviceCapabilities: ['TEST'],
@@ -454,6 +490,7 @@ describe('plugin-meetings', () => {
454
490
 
455
491
  assert.equal(parameter.locale, 'en_UK');
456
492
  assert.deepEqual(parameter.deviceCapabilities, ['TEST']);
493
+ parseLocusJoinSpy.restore();
457
494
  });
458
495
 
459
496
  it('#Should call meetingRequest.joinMeeting with preferTranscoding=false when multistream is enabled', async () => {
@@ -467,7 +504,7 @@ describe('plugin-meetings', () => {
467
504
  getWebexObject: sinon.stub().returns(webex),
468
505
  };
469
506
 
470
- MeetingUtil.parseLocusJoin = sinon.stub();
507
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
471
508
  await MeetingUtil.joinMeeting(meeting, {});
472
509
 
473
510
  assert.calledOnce(meeting.meetingRequest.joinMeeting);
@@ -475,6 +512,7 @@ describe('plugin-meetings', () => {
475
512
 
476
513
  assert.equal(parameter.inviteeAddress, 'meetingJoinUrl');
477
514
  assert.equal(parameter.preferTranscoding, false);
515
+ parseLocusJoinSpy.restore();
478
516
  });
479
517
 
480
518
  it('#Should fallback sipUrl if meetingJoinUrl does not exists', async () => {
@@ -487,13 +525,14 @@ describe('plugin-meetings', () => {
487
525
  getWebexObject: sinon.stub().returns(webex),
488
526
  };
489
527
 
490
- MeetingUtil.parseLocusJoin = sinon.stub();
528
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
491
529
  await MeetingUtil.joinMeeting(meeting, {});
492
530
 
493
531
  assert.calledOnce(meeting.meetingRequest.joinMeeting);
494
532
  const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
495
533
 
496
534
  assert.equal(parameter.inviteeAddress, 'sipUri');
535
+ parseLocusJoinSpy.restore();
497
536
  });
498
537
 
499
538
  it('#Should fallback to meetingNumber if meetingJoinUrl/sipUrl does not exists', async () => {
@@ -506,7 +545,7 @@ describe('plugin-meetings', () => {
506
545
  getWebexObject: sinon.stub().returns(webex),
507
546
  };
508
547
 
509
- MeetingUtil.parseLocusJoin = sinon.stub();
548
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
510
549
  await MeetingUtil.joinMeeting(meeting, {});
511
550
 
512
551
  assert.calledOnce(meeting.meetingRequest.joinMeeting);
@@ -514,6 +553,7 @@ describe('plugin-meetings', () => {
514
553
 
515
554
  assert.isUndefined(parameter.inviteeAddress);
516
555
  assert.equal(parameter.meetingNumber, 'meetingNumber');
556
+ parseLocusJoinSpy.restore();
517
557
  });
518
558
 
519
559
  it('should pass in the locusClusterUrl from meetingInfo', async () => {
@@ -527,19 +567,20 @@ describe('plugin-meetings', () => {
527
567
  getWebexObject: sinon.stub().returns(webex),
528
568
  };
529
569
 
530
- MeetingUtil.parseLocusJoin = sinon.stub();
570
+ const parseLocusJoinSpy = sinon.stub(MeetingUtil, 'parseLocusJoin');
531
571
  await MeetingUtil.joinMeeting(meeting, {});
532
572
 
533
573
  assert.calledOnce(meeting.meetingRequest.joinMeeting);
534
574
  const parameter = meeting.meetingRequest.joinMeeting.getCall(0).args[0];
535
575
 
536
576
  assert.equal(parameter.locusClusterUrl, 'locusClusterUrl');
577
+ parseLocusJoinSpy.restore();
537
578
  });
538
579
  });
539
580
 
540
581
  describe('joinMeetingOptions', () => {
541
582
  it('sends client events correctly', async () => {
542
- MeetingUtil.joinMeeting = sinon.stub().rejects({});
583
+ const joinMeetingSpy = sinon.stub(MeetingUtil, 'joinMeeting').rejects({});
543
584
  MeetingUtil.isPinOrGuest = sinon.stub().returns(true);
544
585
  const meeting = {
545
586
  id: 'meeting-id',
@@ -570,6 +611,8 @@ describe('plugin-meetings', () => {
570
611
  meetingId: meeting.id,
571
612
  },
572
613
  });
614
+ } finally {
615
+ joinMeetingSpy.restore();
573
616
  }
574
617
  });
575
618
  });
@@ -1032,5 +1075,97 @@ describe('plugin-meetings', () => {
1032
1075
  });
1033
1076
  });
1034
1077
  });
1078
+
1079
+ describe('getChangeMeetingFloorErrorPayload', () => {
1080
+ [
1081
+ {
1082
+ reason: LOCAL_SHARE_ERRORS.UNDEFINED,
1083
+ expected: {
1084
+ category: 'signaling',
1085
+ errorCode: 1100,
1086
+ },
1087
+ },
1088
+ {
1089
+ reason: LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED,
1090
+ expected: {
1091
+ category: 'signaling',
1092
+ errorCode: 4050,
1093
+ },
1094
+ },
1095
+ {
1096
+ reason: LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE,
1097
+ expected: {
1098
+ category: 'media',
1099
+ errorCode: 2048,
1100
+ },
1101
+ },
1102
+ {
1103
+ reason: LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID,
1104
+ expected: {
1105
+ category: 'signaling',
1106
+ errorCode: 4064,
1107
+ },
1108
+ },
1109
+ {
1110
+ reason: LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED,
1111
+ expected: {
1112
+ category: 'expected',
1113
+ errorCode: 4065,
1114
+ },
1115
+ },
1116
+ {
1117
+ reason: LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE,
1118
+ expected: {
1119
+ category: 'signaling',
1120
+ errorCode: 4066,
1121
+ },
1122
+ },
1123
+ {
1124
+ reason: LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD,
1125
+ expected: {
1126
+ category: 'expected',
1127
+ errorCode: 4067,
1128
+ },
1129
+ },
1130
+ {
1131
+ reason: 'some unknown reason',
1132
+ expected: {
1133
+ category: 'signaling',
1134
+ errorCode: 1100,
1135
+ },
1136
+ },
1137
+ ].forEach(({reason, expected}) => {
1138
+ const expectedFull = {
1139
+ errorDescription: reason,
1140
+ name: 'locus.response',
1141
+ shownToUser: false,
1142
+ fatal: true,
1143
+ ...expected,
1144
+ };
1145
+ it(`returns expected when reason="${reason}"`, () => {
1146
+ const result = MeetingUtil.getChangeMeetingFloorErrorPayload(reason);
1147
+ assert.equal(result.length, 1);
1148
+
1149
+ const error = result[0];
1150
+ assert.deepEqual(error, expectedFull);
1151
+ });
1152
+ });
1153
+
1154
+ it('properly handles "includes"', () => {
1155
+ const reason = '>>> ' + LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED + ' <<<';
1156
+ const result = MeetingUtil.getChangeMeetingFloorErrorPayload(reason);
1157
+ assert.equal(result.length, 1);
1158
+
1159
+ const error = result[0];
1160
+ assert.deepEqual(error, {
1161
+ category: 'signaling',
1162
+ errorCode: 4050,
1163
+ errorDescription: reason,
1164
+ name: 'locus.response',
1165
+ shownToUser: false,
1166
+ fatal: true,
1167
+ });
1168
+ });
1169
+ });
1035
1170
  });
1036
1171
  });