@webex/plugin-meetings 3.7.0 → 3.8.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 (351) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/annotation/index.js +17 -0
  5. package/dist/annotation/index.js.map +1 -1
  6. package/dist/breakouts/breakout.d.ts +8 -0
  7. package/dist/breakouts/breakout.js +1 -1
  8. package/dist/breakouts/collection.d.ts +5 -0
  9. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  10. package/dist/breakouts/events.d.ts +8 -0
  11. package/dist/breakouts/index.d.ts +5 -0
  12. package/dist/breakouts/index.js +1 -1
  13. package/dist/breakouts/request.d.ts +22 -0
  14. package/dist/breakouts/utils.d.ts +15 -0
  15. package/dist/common/browser-detection.d.ts +9 -0
  16. package/dist/common/collection.d.ts +48 -0
  17. package/dist/common/config.d.ts +2 -0
  18. package/dist/common/errors/captcha-error.d.ts +15 -0
  19. package/dist/common/errors/intent-to-join.d.ts +16 -0
  20. package/dist/common/errors/join-forbidden-error.js +52 -0
  21. package/dist/common/errors/join-forbidden-error.js.map +1 -0
  22. package/dist/common/errors/join-meeting.d.ts +17 -0
  23. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  24. package/dist/common/errors/join-webinar-error.js.map +1 -0
  25. package/dist/common/errors/media.d.ts +15 -0
  26. package/dist/common/errors/multistream-not-supported-error.js +53 -0
  27. package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
  28. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  29. package/dist/common/errors/parameter.d.ts +15 -0
  30. package/dist/common/errors/password-error.d.ts +15 -0
  31. package/dist/common/errors/permission.d.ts +14 -0
  32. package/dist/common/errors/reclaim-host-role-error.js +149 -0
  33. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  34. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  36. package/dist/common/errors/reconnection-in-progress.js +33 -0
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -0
  38. package/dist/common/errors/reconnection.d.ts +15 -0
  39. package/dist/common/errors/stats.d.ts +15 -0
  40. package/dist/common/errors/webex-errors.d.ts +93 -0
  41. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  42. package/dist/common/events/events-scope.d.ts +17 -0
  43. package/dist/common/events/events.d.ts +12 -0
  44. package/dist/common/events/trigger-proxy.d.ts +2 -0
  45. package/dist/common/events/util.d.ts +2 -0
  46. package/dist/common/logs/logger-config.d.ts +2 -0
  47. package/dist/common/logs/logger-proxy.d.ts +2 -0
  48. package/dist/common/logs/request.d.ts +36 -0
  49. package/dist/common/queue.d.ts +34 -0
  50. package/dist/config.d.ts +72 -0
  51. package/dist/config.js +2 -1
  52. package/dist/config.js.map +1 -1
  53. package/dist/constants.d.ts +1088 -0
  54. package/dist/constants.js +68 -6
  55. package/dist/constants.js.map +1 -1
  56. package/dist/controls-options-manager/constants.d.ts +4 -0
  57. package/dist/controls-options-manager/enums.d.ts +15 -0
  58. package/dist/controls-options-manager/index.d.ts +136 -0
  59. package/dist/controls-options-manager/types.d.ts +43 -0
  60. package/dist/controls-options-manager/util.d.ts +1 -0
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.js +16 -11
  63. package/dist/index.js.map +1 -1
  64. package/dist/interceptors/index.d.ts +2 -0
  65. package/dist/interceptors/locusRetry.d.ts +27 -0
  66. package/dist/interpretation/collection.d.ts +5 -0
  67. package/dist/interpretation/index.d.ts +5 -0
  68. package/dist/interpretation/index.js +1 -1
  69. package/dist/interpretation/siLanguage.d.ts +5 -0
  70. package/dist/interpretation/siLanguage.js +1 -1
  71. package/dist/locus-info/controlsUtils.d.ts +2 -0
  72. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  73. package/dist/locus-info/fullState.d.ts +2 -0
  74. package/dist/locus-info/hostUtils.d.ts +2 -0
  75. package/dist/locus-info/index.d.ts +322 -0
  76. package/dist/locus-info/index.js +14 -3
  77. package/dist/locus-info/index.js.map +1 -1
  78. package/dist/locus-info/infoUtils.d.ts +2 -0
  79. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  80. package/dist/locus-info/parser.d.ts +272 -0
  81. package/dist/locus-info/selfUtils.d.ts +2 -0
  82. package/dist/locus-info/selfUtils.js +35 -17
  83. package/dist/locus-info/selfUtils.js.map +1 -1
  84. package/dist/media/MediaConnectionAwaiter.js +1 -0
  85. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  86. package/dist/media/index.d.ts +34 -0
  87. package/dist/media/properties.d.ts +93 -0
  88. package/dist/media/properties.js +30 -16
  89. package/dist/media/properties.js.map +1 -1
  90. package/dist/media/util.d.ts +2 -0
  91. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  92. package/dist/mediaQualityMetrics/config.js +502 -0
  93. package/dist/mediaQualityMetrics/config.js.map +1 -0
  94. package/dist/meeting/brbState.js +167 -0
  95. package/dist/meeting/brbState.js.map +1 -0
  96. package/dist/meeting/effectsState.js +260 -0
  97. package/dist/meeting/effectsState.js.map +1 -0
  98. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  99. package/dist/meeting/in-meeting-actions.js +13 -1
  100. package/dist/meeting/in-meeting-actions.js.map +1 -1
  101. package/dist/meeting/index.d.ts +1825 -0
  102. package/dist/meeting/index.js +1331 -1051
  103. package/dist/meeting/index.js.map +1 -1
  104. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  105. package/dist/meeting/locusMediaRequest.js +11 -6
  106. package/dist/meeting/locusMediaRequest.js.map +1 -1
  107. package/dist/meeting/muteState.d.ts +178 -0
  108. package/dist/meeting/muteState.js +1 -6
  109. package/dist/meeting/muteState.js.map +1 -1
  110. package/dist/meeting/request.d.ts +295 -0
  111. package/dist/meeting/request.js +51 -29
  112. package/dist/meeting/request.js.map +1 -1
  113. package/dist/meeting/request.type.d.ts +11 -0
  114. package/dist/meeting/request.type.js.map +1 -1
  115. package/dist/meeting/state.d.ts +9 -0
  116. package/dist/meeting/util.d.ts +119 -0
  117. package/dist/meeting/util.js +103 -67
  118. package/dist/meeting/util.js.map +1 -1
  119. package/dist/meeting/voicea-meeting.d.ts +16 -0
  120. package/dist/meeting-info/collection.d.ts +20 -0
  121. package/dist/meeting-info/index.d.ts +69 -0
  122. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  123. package/dist/meeting-info/meeting-info-v2.js +115 -45
  124. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  125. package/dist/meeting-info/request.d.ts +22 -0
  126. package/dist/meeting-info/util.d.ts +2 -0
  127. package/dist/meeting-info/utilv2.d.ts +2 -0
  128. package/dist/meeting-info/utilv2.js +6 -2
  129. package/dist/meeting-info/utilv2.js.map +1 -1
  130. package/dist/meetings/collection.d.ts +40 -0
  131. package/dist/meetings/index.d.ts +390 -0
  132. package/dist/meetings/index.js +107 -55
  133. package/dist/meetings/index.js.map +1 -1
  134. package/dist/meetings/meetings.types.d.ts +4 -0
  135. package/dist/meetings/meetings.types.js +2 -0
  136. package/dist/meetings/meetings.types.js.map +1 -1
  137. package/dist/meetings/request.d.ts +27 -0
  138. package/dist/meetings/util.d.ts +18 -0
  139. package/dist/meetings/util.js +1 -1
  140. package/dist/meetings/util.js.map +1 -1
  141. package/dist/member/index.d.ts +160 -0
  142. package/dist/member/index.js +9 -0
  143. package/dist/member/index.js.map +1 -1
  144. package/dist/member/member.types.js +17 -0
  145. package/dist/member/member.types.js.map +1 -0
  146. package/dist/member/types.d.ts +32 -0
  147. package/dist/member/types.js.map +1 -1
  148. package/dist/member/util.d.ts +2 -0
  149. package/dist/member/util.js +39 -28
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.d.ts +29 -0
  152. package/dist/members/index.d.ts +353 -0
  153. package/dist/members/request.d.ts +114 -0
  154. package/dist/members/types.d.ts +25 -0
  155. package/dist/members/util.d.ts +215 -0
  156. package/dist/members/util.js +4 -2
  157. package/dist/members/util.js.map +1 -1
  158. package/dist/metrics/config.js +276 -0
  159. package/dist/metrics/config.js.map +1 -0
  160. package/dist/metrics/constants.d.ts +70 -0
  161. package/dist/metrics/constants.js +6 -1
  162. package/dist/metrics/constants.js.map +1 -1
  163. package/dist/metrics/index.d.ts +45 -0
  164. package/dist/multistream/mediaRequestManager.d.ts +119 -0
  165. package/dist/multistream/receiveSlot.d.ts +68 -0
  166. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  167. package/dist/multistream/remoteMedia.d.ts +72 -0
  168. package/dist/multistream/remoteMedia.js +30 -15
  169. package/dist/multistream/remoteMedia.js.map +1 -1
  170. package/dist/multistream/remoteMediaGroup.d.ts +49 -0
  171. package/dist/multistream/remoteMediaManager.d.ts +300 -0
  172. package/dist/multistream/sendSlotManager.d.ts +69 -0
  173. package/dist/multistream/sendSlotManager.js +24 -0
  174. package/dist/multistream/sendSlotManager.js.map +1 -1
  175. package/dist/networkQualityMonitor/index.d.ts +70 -0
  176. package/dist/networkQualityMonitor/index.js +13 -19
  177. package/dist/networkQualityMonitor/index.js.map +1 -1
  178. package/dist/peer-connection-manager/index.js +671 -0
  179. package/dist/peer-connection-manager/index.js.map +1 -0
  180. package/dist/peer-connection-manager/util.js +109 -0
  181. package/dist/peer-connection-manager/util.js.map +1 -0
  182. package/dist/personal-meeting-room/index.d.ts +47 -0
  183. package/dist/personal-meeting-room/request.d.ts +14 -0
  184. package/dist/personal-meeting-room/util.d.ts +2 -0
  185. package/dist/reachability/clusterReachability.d.ts +109 -0
  186. package/dist/reachability/clusterReachability.js +12 -15
  187. package/dist/reachability/clusterReachability.js.map +1 -1
  188. package/dist/reachability/index.d.ts +105 -0
  189. package/dist/reachability/index.js +461 -136
  190. package/dist/reachability/index.js.map +1 -1
  191. package/dist/reachability/reachability.types.js +7 -0
  192. package/dist/reachability/reachability.types.js.map +1 -0
  193. package/dist/reachability/request.d.ts +39 -0
  194. package/dist/reachability/request.js +21 -8
  195. package/dist/reachability/request.js.map +1 -1
  196. package/dist/reachability/util.d.ts +8 -0
  197. package/dist/reactions/constants.d.ts +3 -0
  198. package/dist/reactions/reactions.d.ts +4 -0
  199. package/dist/reactions/reactions.type.d.ts +52 -0
  200. package/dist/reconnection-manager/index.d.ts +136 -0
  201. package/dist/recording-controller/enums.d.ts +7 -0
  202. package/dist/recording-controller/enums.js +8 -4
  203. package/dist/recording-controller/enums.js.map +1 -1
  204. package/dist/recording-controller/index.d.ts +207 -0
  205. package/dist/recording-controller/index.js +18 -9
  206. package/dist/recording-controller/index.js.map +1 -1
  207. package/dist/recording-controller/util.d.ts +14 -0
  208. package/dist/recording-controller/util.js +13 -9
  209. package/dist/recording-controller/util.js.map +1 -1
  210. package/dist/roap/collection.js +62 -0
  211. package/dist/roap/collection.js.map +1 -0
  212. package/dist/roap/handler.js +275 -0
  213. package/dist/roap/handler.js.map +1 -0
  214. package/dist/roap/index.d.ts +86 -0
  215. package/dist/roap/index.js +15 -15
  216. package/dist/roap/index.js.map +1 -1
  217. package/dist/roap/request.d.ts +39 -0
  218. package/dist/roap/request.js +45 -79
  219. package/dist/roap/request.js.map +1 -1
  220. package/dist/roap/state.js +126 -0
  221. package/dist/roap/state.js.map +1 -0
  222. package/dist/roap/turnDiscovery.d.ts +155 -0
  223. package/dist/roap/turnDiscovery.js +3 -6
  224. package/dist/roap/turnDiscovery.js.map +1 -1
  225. package/dist/roap/util.js +75 -0
  226. package/dist/roap/util.js.map +1 -0
  227. package/dist/rtcMetrics/constants.d.ts +4 -0
  228. package/dist/rtcMetrics/index.d.ts +61 -0
  229. package/dist/statsAnalyzer/global.d.ts +36 -0
  230. package/dist/statsAnalyzer/global.js +126 -0
  231. package/dist/statsAnalyzer/global.js.map +1 -0
  232. package/dist/statsAnalyzer/index.d.ts +217 -0
  233. package/dist/statsAnalyzer/index.js +1013 -0
  234. package/dist/statsAnalyzer/index.js.map +1 -0
  235. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  236. package/dist/statsAnalyzer/mqaUtil.js +179 -0
  237. package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
  238. package/dist/transcription/index.d.ts +64 -0
  239. package/dist/types/annotation/index.d.ts +5 -0
  240. package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
  241. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  242. package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
  243. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  244. package/dist/types/config.d.ts +1 -0
  245. package/dist/types/constants.d.ts +53 -1
  246. package/dist/types/index.d.ts +3 -3
  247. package/dist/types/locus-info/index.d.ts +2 -1
  248. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  249. package/dist/types/meeting/brbState.d.ts +54 -0
  250. package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
  251. package/dist/types/meeting/index.d.ts +64 -14
  252. package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
  253. package/dist/types/meeting/request.d.ts +14 -3
  254. package/dist/types/meeting/request.type.d.ts +6 -0
  255. package/dist/types/meeting/util.d.ts +3 -3
  256. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
  257. package/dist/types/meetings/index.d.ts +20 -2
  258. package/dist/types/meetings/meetings.types.d.ts +8 -0
  259. package/dist/types/member/index.d.ts +1 -0
  260. package/dist/types/member/types.d.ts +7 -0
  261. package/dist/types/members/util.d.ts +2 -0
  262. package/dist/types/metrics/constants.d.ts +6 -1
  263. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  264. package/dist/types/reachability/clusterReachability.d.ts +1 -10
  265. package/dist/types/reachability/index.d.ts +83 -36
  266. package/dist/types/reachability/reachability.types.d.ts +64 -0
  267. package/dist/types/reachability/request.d.ts +5 -1
  268. package/dist/types/recording-controller/enums.d.ts +5 -2
  269. package/dist/types/recording-controller/index.d.ts +1 -0
  270. package/dist/types/recording-controller/util.d.ts +2 -1
  271. package/dist/types/roap/request.d.ts +1 -13
  272. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  273. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  274. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  275. package/dist/webinar/collection.d.ts +16 -0
  276. package/dist/webinar/index.d.ts +5 -0
  277. package/dist/webinar/index.js +390 -7
  278. package/dist/webinar/index.js.map +1 -1
  279. package/package.json +23 -22
  280. package/src/annotation/index.ts +16 -0
  281. package/src/common/errors/join-forbidden-error.ts +26 -0
  282. package/src/common/errors/join-webinar-error.ts +24 -0
  283. package/src/common/errors/multistream-not-supported-error.ts +30 -0
  284. package/src/config.ts +1 -0
  285. package/src/constants.ts +61 -3
  286. package/src/index.ts +5 -3
  287. package/src/locus-info/index.ts +20 -3
  288. package/src/locus-info/selfUtils.ts +24 -6
  289. package/src/media/MediaConnectionAwaiter.ts +2 -0
  290. package/src/media/properties.ts +34 -13
  291. package/src/meeting/brbState.ts +169 -0
  292. package/src/meeting/in-meeting-actions.ts +25 -0
  293. package/src/meeting/index.ts +443 -87
  294. package/src/meeting/locusMediaRequest.ts +11 -8
  295. package/src/meeting/muteState.ts +1 -6
  296. package/src/meeting/request.ts +30 -12
  297. package/src/meeting/request.type.ts +7 -0
  298. package/src/meeting/util.ts +32 -13
  299. package/src/meeting-info/meeting-info-v2.ts +83 -12
  300. package/src/meeting-info/utilv2.ts +17 -3
  301. package/src/meetings/index.ts +79 -20
  302. package/src/meetings/meetings.types.ts +10 -0
  303. package/src/meetings/util.ts +2 -1
  304. package/src/member/index.ts +9 -0
  305. package/src/member/types.ts +8 -0
  306. package/src/member/util.ts +34 -24
  307. package/src/members/util.ts +1 -0
  308. package/src/metrics/constants.ts +6 -1
  309. package/src/multistream/remoteMedia.ts +28 -15
  310. package/src/multistream/sendSlotManager.ts +31 -0
  311. package/src/reachability/clusterReachability.ts +5 -15
  312. package/src/reachability/index.ts +311 -75
  313. package/src/reachability/reachability.types.ts +85 -0
  314. package/src/reachability/request.ts +55 -31
  315. package/src/recording-controller/enums.ts +5 -2
  316. package/src/recording-controller/index.ts +17 -4
  317. package/src/recording-controller/util.ts +20 -5
  318. package/src/roap/index.ts +14 -13
  319. package/src/roap/request.ts +30 -44
  320. package/src/roap/turnDiscovery.ts +2 -4
  321. package/src/webinar/index.ts +235 -9
  322. package/test/unit/spec/annotation/index.ts +46 -1
  323. package/test/unit/spec/locus-info/index.js +292 -60
  324. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  325. package/test/unit/spec/locus-info/selfUtils.js +101 -1
  326. package/test/unit/spec/media/properties.ts +15 -0
  327. package/test/unit/spec/meeting/brbState.ts +114 -0
  328. package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
  329. package/test/unit/spec/meeting/index.js +851 -107
  330. package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
  331. package/test/unit/spec/meeting/muteState.js +0 -24
  332. package/test/unit/spec/meeting/request.js +3 -26
  333. package/test/unit/spec/meeting/utils.js +73 -28
  334. package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
  335. package/test/unit/spec/meeting-info/utilv2.js +26 -0
  336. package/test/unit/spec/meetings/index.js +159 -18
  337. package/test/unit/spec/meetings/utils.js +10 -0
  338. package/test/unit/spec/member/util.js +52 -11
  339. package/test/unit/spec/members/utils.js +95 -0
  340. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  341. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  342. package/test/unit/spec/reachability/index.ts +383 -9
  343. package/test/unit/spec/reachability/request.js +48 -12
  344. package/test/unit/spec/recording-controller/index.js +61 -5
  345. package/test/unit/spec/recording-controller/util.js +39 -3
  346. package/test/unit/spec/roap/index.ts +48 -1
  347. package/test/unit/spec/roap/request.ts +51 -109
  348. package/test/unit/spec/roap/turnDiscovery.ts +202 -147
  349. package/test/unit/spec/webinar/index.ts +504 -0
  350. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  351. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -2,6 +2,7 @@ import {assert, expect} from '@webex/test-helper-chai';
2
2
  import LoggerProxy from '@webex/plugin-meetings/src/common/logs/logger-proxy';
3
3
  import Webinar from '@webex/plugin-meetings/src/webinar';
4
4
  import MockWebex from '@webex/test-helper-mock-webex';
5
+ import uuid from 'uuid';
5
6
  import sinon from 'sinon';
6
7
 
7
8
  describe('plugin-meetings', () => {
@@ -9,16 +10,27 @@ describe('plugin-meetings', () => {
9
10
 
10
11
  let webex;
11
12
  let webinar;
13
+ let uuidStub;
14
+ let getUserTokenStub;
12
15
 
13
16
  beforeEach(() => {
14
17
  // @ts-ignore
18
+ getUserTokenStub = sinon.stub().resolves('test-token');
19
+ uuidStub = sinon.stub(uuid,'v4').returns('test-uuid');
15
20
  webex = new MockWebex({});
16
21
  webex.internal.mercury.on = sinon.stub();
17
22
  webinar = new Webinar({}, {parent: webex});
18
23
  webinar.locusUrl = 'locusUrl';
24
+ webinar.webcastInstanceUrl = 'webcastInstanceUrl';
19
25
  webex.request = sinon.stub().returns(Promise.resolve('REQUEST_RETURN_VALUE'));
20
26
  webex.meetings = {};
27
+ webex.credentials.getUserToken = getUserTokenStub;
21
28
  webex.meetings.getMeetingByType = sinon.stub();
29
+
30
+ });
31
+
32
+ afterEach(() => {
33
+ sinon.restore();
22
34
  });
23
35
 
24
36
  describe('#locusUrlUpdate', () => {
@@ -91,6 +103,21 @@ describe('plugin-meetings', () => {
91
103
  assert.equal(result.isDemoted, true, 'should indicate demotion');
92
104
  });
93
105
 
106
+ it('updates roles when attendee just join meeting', () => {
107
+ const payload = {
108
+ oldRoles: [''],
109
+ newRoles: ['ATTENDEE']
110
+ };
111
+
112
+ const result = webinar.updateRoleChanged(payload);
113
+
114
+ assert.equal(webinar.selfIsPanelist, false, 'self should not be a panelist');
115
+ assert.equal(webinar.selfIsAttendee, true, 'self should be an attendee');
116
+ assert.equal(webinar.canManageWebcast, false, 'self should not have manage webcast capability');
117
+ assert.equal(result.isPromoted, false, 'should not indicate promotion');
118
+ assert.equal(result.isDemoted, true, 'should indicate demotion');
119
+ });
120
+
94
121
  it('updates roles when promoted to moderator', () => {
95
122
  const payload = {
96
123
  oldRoles: ['PANELIST'],
@@ -122,5 +149,482 @@ describe('plugin-meetings', () => {
122
149
  });
123
150
  });
124
151
 
152
+ describe('#updateStatusByRole', () => {
153
+ let updateLLMConnection;
154
+ let updateMediaShares;
155
+ beforeEach(() => {
156
+ // @ts-ignore
157
+ updateLLMConnection = sinon.stub();
158
+ updateMediaShares = sinon.stub()
159
+ webinar.webex.meetings = {
160
+ getMeetingByType: sinon.stub().returns({
161
+ id: 'meeting-id',
162
+ updateLLMConnection: updateLLMConnection,
163
+ shareStatus: 'whiteboard_share_active',
164
+ locusInfo: {
165
+ mediaShares: 'mediaShares',
166
+ updateMediaShares: updateMediaShares
167
+ }
168
+ })
169
+ };
170
+ });
171
+
172
+ afterEach(() => {
173
+ sinon.restore();
174
+ });
175
+
176
+ it('trigger updateLLMConnection if PS started', () => {
177
+
178
+ webinar.practiceSessionEnabled = true;
179
+ const roleChange = {isPromoted: true, isDemoted: false};
180
+
181
+ const result = webinar.updateStatusByRole(roleChange);
182
+
183
+ assert.calledOnce(updateLLMConnection);
184
+ });
185
+
186
+ it('Not trigger updateLLMConnection if PS not started', () => {
187
+
188
+ webinar.practiceSessionEnabled = false;
189
+ const roleChange = {isPromoted: true, isDemoted: false};
190
+
191
+ const result = webinar.updateStatusByRole(roleChange);
192
+
193
+ assert.notCalled(updateLLMConnection);
194
+ });
195
+
196
+ it('trigger updateMediaShares if promoted', () => {
197
+
198
+ const roleChange = {isPromoted: true, isDemoted: false};
199
+
200
+ const result = webinar.updateStatusByRole(roleChange);
201
+
202
+ assert.calledOnce(updateMediaShares);
203
+ });
204
+
205
+ it('Not trigger updateMediaShares if no role change', () => {
206
+
207
+ const roleChange = {isPromoted: false, isDemoted: false};
208
+
209
+ const result = webinar.updateStatusByRole(roleChange);
210
+
211
+ assert.notCalled(updateMediaShares);
212
+ });
213
+ it('trigger updateMediaShares if is promoted', () => {
214
+
215
+ const roleChange = {isPromoted: true, isDemoted: false};
216
+
217
+ const result = webinar.updateStatusByRole(roleChange);
218
+
219
+ assert.calledOnce(updateMediaShares);
220
+ });
221
+
222
+ it('trigger updateMediaShares if is attendee with whiteboard share', () => {
223
+
224
+ const roleChange = {isPromoted: false, isDemoted: true};
225
+
226
+ const result = webinar.updateStatusByRole(roleChange);
227
+
228
+ assert.calledOnce(updateMediaShares);
229
+ });
230
+
231
+ it('Not trigger updateMediaShares if is attendee with screen share', () => {
232
+
233
+ webinar.webex.meetings = {
234
+ getMeetingByType: sinon.stub().returns({
235
+ id: 'meeting-id',
236
+ updateLLMConnection: updateLLMConnection,
237
+ shareStatus: 'remote_share_active',
238
+ locusInfo: {
239
+ mediaShares: 'mediaShares',
240
+ updateMediaShares: updateMediaShares
241
+ }
242
+ })
243
+ };
244
+
245
+ const roleChange = {isPromoted: false, isDemoted: true};
246
+
247
+ const result = webinar.updateStatusByRole(roleChange);
248
+
249
+ assert.notCalled(updateMediaShares);
250
+ });
251
+ });
252
+
253
+ describe("#setPracticeSessionState", () => {
254
+ [true, false].forEach((enabled) => {
255
+ it(`sends a PATCH request to ${enabled ? "enable" : "disable"} the practice session`, async () => {
256
+ const result = await webinar.setPracticeSessionState(enabled);
257
+ assert.calledOnce(webex.request);
258
+ assert.calledWith(webex.request, {
259
+ method: "PATCH",
260
+ uri: `${webinar.locusUrl}/controls`,
261
+ body: {
262
+ practiceSession: { enabled }
263
+ }
264
+ });
265
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
266
+ });
267
+ });
268
+
269
+ it('handles API call failures gracefully', async () => {
270
+ webex.request.rejects(new Error('API_ERROR'));
271
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
272
+
273
+ try {
274
+ await webinar.setPracticeSessionState(true);
275
+ assert.fail('setPracticeSessionState should throw an error');
276
+ } catch (error) {
277
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
278
+ assert.calledOnce(errorLogger);
279
+ assert.calledWith(errorLogger, 'Meeting:webinar#setPracticeSessionState failed', sinon.match.instanceOf(Error));
280
+ }
281
+
282
+ errorLogger.restore();
283
+ });
284
+ });
285
+
286
+ describe('#isJoinPracticeSessionDataChannel', () => {
287
+ it('check whether should join PS data channel', () => {
288
+ webinar.selfIsPanelist = true;
289
+ webinar.practiceSessionEnabled = false;
290
+
291
+ assert.equal(webinar.isJoinPracticeSessionDataChannel(), false);
292
+
293
+ webinar.selfIsPanelist = true;
294
+ webinar.practiceSessionEnabled = true;
295
+
296
+ assert.equal(webinar.isJoinPracticeSessionDataChannel(), true);
297
+
298
+ webinar.selfIsPanelist = false;
299
+ webinar.practiceSessionEnabled = false;
300
+
301
+ assert.equal(webinar.isJoinPracticeSessionDataChannel(), false);
302
+
303
+ webinar.selfIsPanelist = false;
304
+ webinar.practiceSessionEnabled = true;
305
+
306
+ assert.equal(webinar.isJoinPracticeSessionDataChannel(), false);
307
+ });
308
+ });
309
+
310
+ describe('#updatePracticeSessionStatus', () => {
311
+ it('sets PS state true', () => {
312
+ webinar.updatePracticeSessionStatus({enabled: true});
313
+
314
+ assert.equal(webinar.practiceSessionEnabled, true);
315
+ });
316
+ it('sets PS state true', () => {
317
+ webinar.updatePracticeSessionStatus({enabled: false});
318
+
319
+ assert.equal(webinar.practiceSessionEnabled, false);
320
+ });
321
+ });
322
+
323
+ describe("#startWebcast", () => {
324
+ const meeting = {
325
+ locusId: 'locusId',
326
+ correlationId: 'correlationId',
327
+ }
328
+ const layout = {
329
+ videoLayout: 'Prominent',
330
+ contentLayout: 'Prominent',
331
+ syncStageLayout: false,
332
+ syncStageInMeeting: false,
333
+ }
334
+ it(`sends a PUT request to start the webcast`, async () => {
335
+ const result = await webinar.startWebcast(meeting, layout);
336
+ assert.calledOnce(webex.request);
337
+ assert.calledWith(webex.request, {
338
+ method: "PUT",
339
+ uri: `${webinar.webcastInstanceUrl}/streaming`,
340
+ headers: {
341
+ authorization: 'test-token',
342
+ trackingId: 'webex-js-sdk_test-uuid',
343
+ 'Content-Type': 'application/json'
344
+ },
345
+ body: {
346
+ action: 'start',
347
+ meetingInfo: {
348
+ locusId: meeting.locusId,
349
+ correlationId: meeting.correlationId,
350
+ },
351
+ layout,
352
+ }
353
+ });
354
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
355
+ });
356
+
357
+ it('should handle undefined meeting parameter', async () => {
358
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
359
+
360
+ try {
361
+ await webinar.startWebcast(undefined, layout);
362
+ assert.fail('startWebcast should throw an error');
363
+ } catch (error) {
364
+ assert.equal(error.message, 'Meeting parameter does not meet expectations', 'should throw the correct error');
365
+ assert.calledOnce(errorLogger);
366
+ assert.calledWith(errorLogger, `Meeting:webinar#startWebcast failed --> meeting parameter : ${undefined}`);
367
+ } finally {
368
+ errorLogger.restore();
369
+ }
370
+ });
371
+
372
+ it('handles API call failures gracefully', async () => {
373
+ webex.request.rejects(new Error('API_ERROR'));
374
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
375
+
376
+ try {
377
+ await webinar.startWebcast(meeting, layout);
378
+ assert.fail('startWebcast should throw an error');
379
+ } catch (error) {
380
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
381
+ assert.calledOnce(errorLogger);
382
+ assert.calledWith(errorLogger, 'Meeting:webinar#startWebcast failed', sinon.match.instanceOf(Error));
383
+ } finally {
384
+ errorLogger.restore();
385
+ }
386
+ });
387
+ });
388
+
389
+ describe("#stopWebcast", () => {
390
+ it(`sends a PUT request to stop the webcast`, async () => {
391
+ const result = await webinar.stopWebcast();
392
+ assert.calledOnce(webex.request);
393
+ assert.calledWith(webex.request, {
394
+ method: "PUT",
395
+ uri: `${webinar.webcastInstanceUrl}/streaming`,
396
+ headers: {
397
+ authorization: 'test-token',
398
+ trackingId: 'webex-js-sdk_test-uuid',
399
+ 'Content-Type': 'application/json'
400
+ },
401
+ body: {
402
+ action: 'stop',
403
+ }
404
+ });
405
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
406
+ });
407
+
408
+ it('handles API call failures gracefully', async () => {
409
+ webex.request.rejects(new Error('API_ERROR'));
410
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
411
+
412
+ try {
413
+ await webinar.stopWebcast();
414
+ assert.fail('stopWebcast should throw an error');
415
+ } catch (error) {
416
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
417
+ assert.calledOnce(errorLogger);
418
+ assert.calledWith(errorLogger, 'Meeting:webinar#stopWebcast failed', sinon.match.instanceOf(Error));
419
+ } finally {
420
+ errorLogger.restore();
421
+ }
422
+ });
423
+ });
424
+
425
+
426
+ describe("#queryWebcastLayout", () => {
427
+ it(`sends a GET request to query the webcast layout`, async () => {
428
+ const result = await webinar.queryWebcastLayout();
429
+ assert.calledOnce(webex.request);
430
+ assert.calledWith(webex.request, {
431
+ method: "GET",
432
+ uri: `${webinar.webcastInstanceUrl}/layout`,
433
+ headers: {
434
+ authorization: 'test-token',
435
+ trackingId: 'webex-js-sdk_test-uuid',
436
+ },
437
+ });
438
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
439
+ });
440
+
441
+ it('handles API call failures gracefully', async () => {
442
+ webex.request.rejects(new Error('API_ERROR'));
443
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
444
+
445
+ try {
446
+ await webinar.queryWebcastLayout();
447
+ assert.fail('queryWebcastLayout should throw an error');
448
+ } catch (error) {
449
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
450
+ assert.calledOnce(errorLogger);
451
+ assert.calledWith(errorLogger, 'Meeting:webinar#queryWebcastLayout failed', sinon.match.instanceOf(Error));
452
+ } finally {
453
+ errorLogger.restore();
454
+ }
455
+ });
456
+ });
457
+
458
+ describe("#updateWebcastLayout", () => {
459
+ const layout = {
460
+ videoLayout: 'Prominent',
461
+ contentLayout: 'Prominent',
462
+ syncStageLayout: false,
463
+ syncStageInMeeting: false,
464
+ }
465
+ it(`sends a PUT request to update the webcast layout`, async () => {
466
+ const result = await webinar.updateWebcastLayout(layout);
467
+ assert.calledOnce(webex.request);
468
+ assert.calledWith(webex.request, {
469
+ method: "PUT",
470
+ uri: `${webinar.webcastInstanceUrl}/layout`,
471
+ headers: {
472
+ authorization: 'test-token',
473
+ trackingId: 'webex-js-sdk_test-uuid',
474
+ 'Content-Type': 'application/json'
475
+ },
476
+ body: {
477
+ ...layout
478
+ }
479
+ });
480
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
481
+ });
482
+
483
+ it('handles API call failures gracefully', async () => {
484
+ webex.request.rejects(new Error('API_ERROR'));
485
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
486
+
487
+ try {
488
+ await webinar.updateWebcastLayout(layout);
489
+ assert.fail('updateWebcastLayout should throw an error');
490
+ } catch (error) {
491
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
492
+ assert.calledOnce(errorLogger);
493
+ assert.calledWith(errorLogger, 'Meeting:webinar#updateWebcastLayout failed', sinon.match.instanceOf(Error));
494
+ } finally {
495
+ errorLogger.restore();
496
+ }
497
+ });
498
+ });
499
+
500
+ describe("#searchWebcastAttendees", () => {
501
+ const queryString = 'queryString';
502
+ const specialCharsQuery = 'query@string!';
503
+ const emptyQuery = '';
504
+
505
+ it("sends a GET request to search the webcast attendees", async () => {
506
+ const result = await webinar.searchWebcastAttendees(queryString);
507
+ assert.calledOnce(webex.request);
508
+ assert.calledWith(webex.request, {
509
+ method: "GET",
510
+ uri: `${webinar.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(queryString)}`,
511
+ headers: {
512
+ authorization: 'test-token',
513
+ trackingId: 'webex-js-sdk_test-uuid',
514
+ },
515
+ });
516
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
517
+ });
518
+
519
+ it('handles API call failures gracefully', async () => {
520
+ webex.request.rejects(new Error('API_ERROR'));
521
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
522
+
523
+ try {
524
+ await webinar.searchWebcastAttendees(queryString);
525
+ assert.fail('searchWebcastAttendees should throw an error');
526
+ } catch (error) {
527
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
528
+ assert.calledOnce(errorLogger);
529
+ assert.calledWith(errorLogger, 'Meeting:webinar#searchWebcastAttendees failed', sinon.match.instanceOf(Error));
530
+ } finally {
531
+ errorLogger.restore();
532
+ }
533
+ });
534
+
535
+ it("should handle empty query string", async () => {
536
+ const result = await webinar.searchWebcastAttendees(emptyQuery);
537
+ assert.calledOnce(webex.request);
538
+ assert.calledWith(webex.request, {
539
+ method: "GET",
540
+ uri: `${webinar.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(emptyQuery)}`,
541
+ headers: {
542
+ authorization: 'test-token',
543
+ trackingId: 'webex-js-sdk_test-uuid',
544
+ },
545
+ });
546
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
547
+ });
548
+
549
+ it("should handle query string with special characters", async () => {
550
+ const result = await webinar.searchWebcastAttendees(specialCharsQuery);
551
+ assert.calledOnce(webex.request);
552
+ assert.calledWith(webex.request, {
553
+ method: "GET",
554
+ uri: `${webinar.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(specialCharsQuery)}`,
555
+ headers: {
556
+ authorization: 'test-token',
557
+ trackingId: 'webex-js-sdk_test-uuid',
558
+ },
559
+ });
560
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
561
+ });
562
+ });
563
+
564
+
565
+ describe("#viewAllWebcastAttendees", () => {
566
+ it(`sends a GET request to view all the webcast attendees`, async () => {
567
+ const result = await webinar.viewAllWebcastAttendees();
568
+ assert.calledOnce(webex.request);
569
+ assert.calledWith(webex.request, {
570
+ method: "GET",
571
+ uri: `${webinar.webcastInstanceUrl}/attendees`,
572
+ headers: {
573
+ authorization: 'test-token',
574
+ trackingId: 'webex-js-sdk_test-uuid',
575
+ },
576
+ });
577
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
578
+ });
579
+
580
+ it('handles API call failures gracefully', async () => {
581
+ webex.request.rejects(new Error('API_ERROR'));
582
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
583
+
584
+ try {
585
+ await webinar.viewAllWebcastAttendees();
586
+ assert.fail('viewAllWebcastAttendees should throw an error');
587
+ } catch (error) {
588
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
589
+ assert.calledOnce(errorLogger);
590
+ assert.calledWith(errorLogger, 'Meeting:webinar#viewAllWebcastAttendees failed', sinon.match.instanceOf(Error));
591
+ } finally {
592
+ errorLogger.restore();
593
+ }
594
+ });
595
+ });
596
+
597
+ describe("#expelWebcastAttendee", () => {
598
+ const participantId = 'participantId'
599
+ it(`sends a DELETE request to expel the webcast attendee`, async () => {
600
+ const result = await webinar.expelWebcastAttendee(participantId);
601
+ assert.calledOnce(webex.request);
602
+ assert.calledWith(webex.request, {
603
+ method: "DELETE",
604
+ uri: `${webinar.webcastInstanceUrl}/attendees/${participantId}`,
605
+ headers: {
606
+ authorization: 'test-token',
607
+ trackingId: 'webex-js-sdk_test-uuid',
608
+ },
609
+ });
610
+ assert.equal(result, "REQUEST_RETURN_VALUE", "should return the resolved value from the request");
611
+ });
612
+
613
+ it('handles API call failures gracefully', async () => {
614
+ webex.request.rejects(new Error('API_ERROR'));
615
+ const errorLogger = sinon.stub(LoggerProxy.logger, 'error');
616
+
617
+ try {
618
+ await webinar.expelWebcastAttendee(participantId);
619
+ assert.fail('expelWebcastAttendee should throw an error');
620
+ } catch (error) {
621
+ assert.equal(error.message, 'API_ERROR', 'should throw the correct error');
622
+ assert.calledOnce(errorLogger);
623
+ assert.calledWith(errorLogger, 'Meeting:webinar#expelWebcastAttendee failed', sinon.match.instanceOf(Error));
624
+ } finally {
625
+ errorLogger.restore();
626
+ }
627
+ });
628
+ });
125
629
  })
126
630
  })
@@ -1 +0,0 @@
1
- {"version":3,"names":["_constants","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","WebinarRegistrationError","exports","_Error","_inherits2","_super","_this","message","length","undefined","ERROR_DICTIONARY","MESSAGE","error","_classCallCheck2","_defineProperty2","_assertThisInitialized2","name","NAME","sdkMessage","stack","Error","code","CODE","_createClass2","_wrapNativeSuper2"],"sources":["webinar-registration-error.ts"],"sourcesContent":["import {ERROR_DICTIONARY} from '../../constants';\n\n/**\n * Error occurred while the webinar required registration\n */\nexport default class WebinarRegistrationError extends Error {\n code: number;\n error: any;\n sdkMessage: string;\n\n /**\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n constructor(\n message: string = ERROR_DICTIONARY.WebinarRegistrationError.MESSAGE,\n error: any = null\n ) {\n super(message);\n this.name = ERROR_DICTIONARY.WebinarRegistrationError.NAME;\n this.sdkMessage = ERROR_DICTIONARY.WebinarRegistrationError.MESSAGE;\n this.error = error;\n this.stack = error ? error.stack : new Error().stack;\n this.code = ERROR_DICTIONARY.WebinarRegistrationError.CODE;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAiD,SAAAC,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;AAEjD;AACA;AACA;AAFA,IAGqBC,wBAAwB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,MAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,wBAAA,EAAAE,MAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,wBAAA;EAK3C;AACF;AACA;AACA;AACA;EACE,SAAAA,yBAAA,EAGE;IAAA,IAAAK,KAAA;IAAA,IAFAC,OAAe,GAAAjB,SAAA,CAAAkB,MAAA,QAAAlB,SAAA,QAAAmB,SAAA,GAAAnB,SAAA,MAAGoB,2BAAgB,CAACT,wBAAwB,CAACU,OAAO;IAAA,IACnEC,KAAU,GAAAtB,SAAA,CAAAkB,MAAA,QAAAlB,SAAA,QAAAmB,SAAA,GAAAnB,SAAA,MAAG,IAAI;IAAA,IAAAuB,gBAAA,CAAA5B,OAAA,QAAAgB,wBAAA;IAEjBK,KAAA,GAAAD,MAAA,CAAAN,IAAA,OAAMQ,OAAO;IAAE,IAAAO,gBAAA,CAAA7B,OAAA,MAAA8B,uBAAA,CAAA9B,OAAA,EAAAqB,KAAA;IAAA,IAAAQ,gBAAA,CAAA7B,OAAA,MAAA8B,uBAAA,CAAA9B,OAAA,EAAAqB,KAAA;IAAA,IAAAQ,gBAAA,CAAA7B,OAAA,MAAA8B,uBAAA,CAAA9B,OAAA,EAAAqB,KAAA;IACfA,KAAA,CAAKU,IAAI,GAAGN,2BAAgB,CAACT,wBAAwB,CAACgB,IAAI;IAC1DX,KAAA,CAAKY,UAAU,GAAGR,2BAAgB,CAACT,wBAAwB,CAACU,OAAO;IACnEL,KAAA,CAAKM,KAAK,GAAGA,KAAK;IAClBN,KAAA,CAAKa,KAAK,GAAGP,KAAK,GAAGA,KAAK,CAACO,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IACpDb,KAAA,CAAKe,IAAI,GAAGX,2BAAgB,CAACT,wBAAwB,CAACqB,IAAI;IAAC,OAAAhB,KAAA;EAC7D;EAAC,WAAAiB,aAAA,CAAAtC,OAAA,EAAAgB,wBAAA;AAAA,oBAAAuB,iBAAA,CAAAvC,OAAA,EApBmDmC,KAAK"}
@@ -1,27 +0,0 @@
1
- import {ERROR_DICTIONARY} from '../../constants';
2
-
3
- /**
4
- * Error occurred while the webinar required registration
5
- */
6
- export default class WebinarRegistrationError extends Error {
7
- code: number;
8
- error: any;
9
- sdkMessage: string;
10
-
11
- /**
12
- * @constructor
13
- * @param {String} [message]
14
- * @param {Object} [error]
15
- */
16
- constructor(
17
- message: string = ERROR_DICTIONARY.WebinarRegistrationError.MESSAGE,
18
- error: any = null
19
- ) {
20
- super(message);
21
- this.name = ERROR_DICTIONARY.WebinarRegistrationError.NAME;
22
- this.sdkMessage = ERROR_DICTIONARY.WebinarRegistrationError.MESSAGE;
23
- this.error = error;
24
- this.stack = error ? error.stack : new Error().stack;
25
- this.code = ERROR_DICTIONARY.WebinarRegistrationError.CODE;
26
- }
27
- }