@webex/plugin-meetings 3.7.0 → 3.8.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 (198) hide show
  1. package/dist/annotation/index.js +17 -0
  2. package/dist/annotation/index.js.map +1 -1
  3. package/dist/breakouts/breakout.js +1 -1
  4. package/dist/breakouts/index.js +1 -1
  5. package/dist/common/errors/join-forbidden-error.js +52 -0
  6. package/dist/common/errors/join-forbidden-error.js.map +1 -0
  7. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  8. package/dist/common/errors/join-webinar-error.js.map +1 -0
  9. package/dist/common/errors/multistream-not-supported-error.js +53 -0
  10. package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
  11. package/dist/config.js +2 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/constants.js +68 -6
  14. package/dist/constants.js.map +1 -1
  15. package/dist/index.js +16 -11
  16. package/dist/index.js.map +1 -1
  17. package/dist/interpretation/index.js +1 -1
  18. package/dist/interpretation/siLanguage.js +1 -1
  19. package/dist/locus-info/index.js +14 -3
  20. package/dist/locus-info/index.js.map +1 -1
  21. package/dist/locus-info/selfUtils.js +35 -17
  22. package/dist/locus-info/selfUtils.js.map +1 -1
  23. package/dist/media/MediaConnectionAwaiter.js +1 -0
  24. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  25. package/dist/media/properties.js +30 -16
  26. package/dist/media/properties.js.map +1 -1
  27. package/dist/meeting/brbState.js +167 -0
  28. package/dist/meeting/brbState.js.map +1 -0
  29. package/dist/meeting/in-meeting-actions.js +13 -1
  30. package/dist/meeting/in-meeting-actions.js.map +1 -1
  31. package/dist/meeting/index.js +1335 -1052
  32. package/dist/meeting/index.js.map +1 -1
  33. package/dist/meeting/locusMediaRequest.js +11 -6
  34. package/dist/meeting/locusMediaRequest.js.map +1 -1
  35. package/dist/meeting/muteState.js +1 -6
  36. package/dist/meeting/muteState.js.map +1 -1
  37. package/dist/meeting/request.js +51 -29
  38. package/dist/meeting/request.js.map +1 -1
  39. package/dist/meeting/request.type.js.map +1 -1
  40. package/dist/meeting/util.js +103 -67
  41. package/dist/meeting/util.js.map +1 -1
  42. package/dist/meeting-info/meeting-info-v2.js +115 -45
  43. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  44. package/dist/meeting-info/utilv2.js +6 -2
  45. package/dist/meeting-info/utilv2.js.map +1 -1
  46. package/dist/meetings/index.js +107 -55
  47. package/dist/meetings/index.js.map +1 -1
  48. package/dist/meetings/meetings.types.js +2 -0
  49. package/dist/meetings/meetings.types.js.map +1 -1
  50. package/dist/meetings/util.js +1 -1
  51. package/dist/meetings/util.js.map +1 -1
  52. package/dist/member/index.js +9 -0
  53. package/dist/member/index.js.map +1 -1
  54. package/dist/member/types.js.map +1 -1
  55. package/dist/member/util.js +39 -28
  56. package/dist/member/util.js.map +1 -1
  57. package/dist/members/util.js +4 -2
  58. package/dist/members/util.js.map +1 -1
  59. package/dist/metrics/constants.js +6 -1
  60. package/dist/metrics/constants.js.map +1 -1
  61. package/dist/multistream/remoteMedia.js +30 -15
  62. package/dist/multistream/remoteMedia.js.map +1 -1
  63. package/dist/multistream/sendSlotManager.js +24 -0
  64. package/dist/multistream/sendSlotManager.js.map +1 -1
  65. package/dist/reachability/clusterReachability.js +12 -15
  66. package/dist/reachability/clusterReachability.js.map +1 -1
  67. package/dist/reachability/index.js +461 -136
  68. package/dist/reachability/index.js.map +1 -1
  69. package/dist/{rtcMetrics/constants.js → reachability/reachability.types.js} +1 -5
  70. package/dist/reachability/reachability.types.js.map +1 -0
  71. package/dist/reachability/request.js +21 -8
  72. package/dist/reachability/request.js.map +1 -1
  73. package/dist/recording-controller/enums.js +8 -4
  74. package/dist/recording-controller/enums.js.map +1 -1
  75. package/dist/recording-controller/index.js +18 -9
  76. package/dist/recording-controller/index.js.map +1 -1
  77. package/dist/recording-controller/util.js +13 -9
  78. package/dist/recording-controller/util.js.map +1 -1
  79. package/dist/roap/index.js +15 -15
  80. package/dist/roap/index.js.map +1 -1
  81. package/dist/roap/request.js +45 -79
  82. package/dist/roap/request.js.map +1 -1
  83. package/dist/roap/turnDiscovery.js +3 -6
  84. package/dist/roap/turnDiscovery.js.map +1 -1
  85. package/dist/types/annotation/index.d.ts +5 -0
  86. package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
  87. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  88. package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
  89. package/dist/types/config.d.ts +1 -0
  90. package/dist/types/constants.d.ts +53 -1
  91. package/dist/types/index.d.ts +3 -3
  92. package/dist/types/locus-info/index.d.ts +2 -1
  93. package/dist/types/meeting/brbState.d.ts +54 -0
  94. package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
  95. package/dist/types/meeting/index.d.ts +64 -14
  96. package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
  97. package/dist/types/meeting/request.d.ts +14 -3
  98. package/dist/types/meeting/request.type.d.ts +6 -0
  99. package/dist/types/meeting/util.d.ts +3 -3
  100. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
  101. package/dist/types/meetings/index.d.ts +20 -2
  102. package/dist/types/meetings/meetings.types.d.ts +8 -0
  103. package/dist/types/member/index.d.ts +1 -0
  104. package/dist/types/member/types.d.ts +7 -0
  105. package/dist/types/members/util.d.ts +2 -0
  106. package/dist/types/metrics/constants.d.ts +6 -1
  107. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  108. package/dist/types/reachability/clusterReachability.d.ts +1 -10
  109. package/dist/types/reachability/index.d.ts +83 -36
  110. package/dist/types/reachability/reachability.types.d.ts +64 -0
  111. package/dist/types/reachability/request.d.ts +5 -1
  112. package/dist/types/recording-controller/enums.d.ts +5 -2
  113. package/dist/types/recording-controller/index.d.ts +1 -0
  114. package/dist/types/recording-controller/util.d.ts +2 -1
  115. package/dist/types/roap/request.d.ts +1 -13
  116. package/dist/webinar/index.js +390 -7
  117. package/dist/webinar/index.js.map +1 -1
  118. package/package.json +23 -22
  119. package/src/annotation/index.ts +16 -0
  120. package/src/common/errors/join-forbidden-error.ts +26 -0
  121. package/src/common/errors/join-webinar-error.ts +24 -0
  122. package/src/common/errors/multistream-not-supported-error.ts +30 -0
  123. package/src/config.ts +1 -0
  124. package/src/constants.ts +61 -3
  125. package/src/index.ts +5 -3
  126. package/src/locus-info/index.ts +20 -3
  127. package/src/locus-info/selfUtils.ts +24 -6
  128. package/src/media/MediaConnectionAwaiter.ts +2 -0
  129. package/src/media/properties.ts +34 -13
  130. package/src/meeting/brbState.ts +169 -0
  131. package/src/meeting/in-meeting-actions.ts +25 -0
  132. package/src/meeting/index.ts +451 -88
  133. package/src/meeting/locusMediaRequest.ts +11 -8
  134. package/src/meeting/muteState.ts +1 -6
  135. package/src/meeting/request.ts +30 -12
  136. package/src/meeting/request.type.ts +7 -0
  137. package/src/meeting/util.ts +32 -13
  138. package/src/meeting-info/meeting-info-v2.ts +83 -12
  139. package/src/meeting-info/utilv2.ts +17 -3
  140. package/src/meetings/index.ts +79 -20
  141. package/src/meetings/meetings.types.ts +10 -0
  142. package/src/meetings/util.ts +2 -1
  143. package/src/member/index.ts +9 -0
  144. package/src/member/types.ts +8 -0
  145. package/src/member/util.ts +34 -24
  146. package/src/members/util.ts +1 -0
  147. package/src/metrics/constants.ts +6 -1
  148. package/src/multistream/remoteMedia.ts +28 -15
  149. package/src/multistream/sendSlotManager.ts +31 -0
  150. package/src/reachability/clusterReachability.ts +5 -15
  151. package/src/reachability/index.ts +311 -75
  152. package/src/reachability/reachability.types.ts +85 -0
  153. package/src/reachability/request.ts +55 -31
  154. package/src/recording-controller/enums.ts +5 -2
  155. package/src/recording-controller/index.ts +17 -4
  156. package/src/recording-controller/util.ts +20 -5
  157. package/src/roap/index.ts +14 -13
  158. package/src/roap/request.ts +30 -44
  159. package/src/roap/turnDiscovery.ts +2 -4
  160. package/src/webinar/index.ts +235 -9
  161. package/test/unit/spec/annotation/index.ts +46 -1
  162. package/test/unit/spec/locus-info/index.js +292 -60
  163. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  164. package/test/unit/spec/locus-info/selfUtils.js +101 -1
  165. package/test/unit/spec/media/properties.ts +15 -0
  166. package/test/unit/spec/meeting/brbState.ts +114 -0
  167. package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
  168. package/test/unit/spec/meeting/index.js +860 -110
  169. package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
  170. package/test/unit/spec/meeting/muteState.js +0 -24
  171. package/test/unit/spec/meeting/request.js +3 -26
  172. package/test/unit/spec/meeting/utils.js +73 -28
  173. package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
  174. package/test/unit/spec/meeting-info/utilv2.js +26 -0
  175. package/test/unit/spec/meetings/index.js +159 -18
  176. package/test/unit/spec/meetings/utils.js +10 -0
  177. package/test/unit/spec/member/util.js +52 -11
  178. package/test/unit/spec/members/utils.js +95 -0
  179. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  180. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  181. package/test/unit/spec/reachability/index.ts +383 -9
  182. package/test/unit/spec/reachability/request.js +48 -12
  183. package/test/unit/spec/recording-controller/index.js +61 -5
  184. package/test/unit/spec/recording-controller/util.js +39 -3
  185. package/test/unit/spec/roap/index.ts +48 -1
  186. package/test/unit/spec/roap/request.ts +51 -109
  187. package/test/unit/spec/roap/turnDiscovery.ts +202 -147
  188. package/test/unit/spec/webinar/index.ts +509 -0
  189. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  190. package/dist/networkQualityMonitor/index.js +0 -227
  191. package/dist/networkQualityMonitor/index.js.map +0 -1
  192. package/dist/rtcMetrics/constants.js.map +0 -1
  193. package/dist/rtcMetrics/index.js +0 -197
  194. package/dist/rtcMetrics/index.js.map +0 -1
  195. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  196. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  197. package/dist/types/rtcMetrics/index.d.ts +0 -71
  198. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -6,10 +6,15 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
9
12
  var _webexCore = require("@webex/webex-core");
13
+ var _uuid = _interopRequireDefault(require("uuid"));
10
14
  var _lodash = require("lodash");
11
15
  var _constants = require("../constants");
12
16
  var _collection = _interopRequireDefault(require("./collection"));
17
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
13
18
  /*!
14
19
  * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
15
20
  */
@@ -31,7 +36,11 @@ var Webinar = _webexCore.WebexPlugin.extend({
31
36
  // appears the ability to manage webcast
32
37
  selfIsPanelist: 'boolean',
33
38
  // self is panelist
34
- selfIsAttendee: 'boolean' // self is attendee
39
+ selfIsAttendee: 'boolean',
40
+ // self is attendee
41
+ practiceSessionEnabled: 'boolean',
42
+ // practice session enabled
43
+ meetingId: 'string'
35
44
  },
36
45
  /**
37
46
  * Update the current locus url of the webinar
@@ -65,17 +74,391 @@ var Webinar = _webexCore.WebexPlugin.extend({
65
74
  * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states
66
75
  */
67
76
  updateRoleChanged: function updateRoleChanged(payload) {
68
- var isPromoted = (0, _lodash.get)(payload, 'oldRoles', []).includes(_constants.SELF_ROLES.ATTENDEE) && (0, _lodash.get)(payload, 'newRoles', []).includes(_constants.SELF_ROLES.PANELIST);
69
- var isDemoted = (0, _lodash.get)(payload, 'oldRoles', []).includes(_constants.SELF_ROLES.PANELIST) && (0, _lodash.get)(payload, 'newRoles', []).includes(_constants.SELF_ROLES.ATTENDEE);
70
- this.set('selfIsPanelist', (0, _lodash.get)(payload, 'newRoles', []).includes(_constants.SELF_ROLES.PANELIST));
71
- this.set('selfIsAttendee', (0, _lodash.get)(payload, 'newRoles', []).includes(_constants.SELF_ROLES.ATTENDEE));
72
- this.updateCanManageWebcast((0, _lodash.get)(payload, 'newRoles', []).includes(_constants.SELF_ROLES.MODERATOR));
77
+ var oldRoles = (0, _lodash.get)(payload, 'oldRoles', []);
78
+ var newRoles = (0, _lodash.get)(payload, 'newRoles', []);
79
+ var isPromoted = oldRoles.includes(_constants.SELF_ROLES.ATTENDEE) && newRoles.includes(_constants.SELF_ROLES.PANELIST);
80
+ var isDemoted = oldRoles.includes(_constants.SELF_ROLES.PANELIST) && newRoles.includes(_constants.SELF_ROLES.ATTENDEE) || !oldRoles.includes(_constants.SELF_ROLES.ATTENDEE) && newRoles.includes(_constants.SELF_ROLES.ATTENDEE); // for attendee just join meeting case
81
+ this.set('selfIsPanelist', newRoles.includes(_constants.SELF_ROLES.PANELIST));
82
+ this.set('selfIsAttendee', newRoles.includes(_constants.SELF_ROLES.ATTENDEE));
83
+ this.updateCanManageWebcast(newRoles.includes(_constants.SELF_ROLES.MODERATOR));
84
+ this.updateStatusByRole({
85
+ isPromoted: isPromoted,
86
+ isDemoted: isDemoted
87
+ });
73
88
  return {
74
89
  isPromoted: isPromoted,
75
90
  isDemoted: isDemoted
76
91
  };
77
92
  },
78
- version: "3.7.0"
93
+ /**
94
+ * should join practice session data channel or not
95
+ * @param {Object} {isPromoted: boolean, isDemoted: boolean}} Role transition states
96
+ * @returns {void}
97
+ */
98
+ updateStatusByRole: function updateStatusByRole(_ref) {
99
+ var isPromoted = _ref.isPromoted,
100
+ isDemoted = _ref.isDemoted;
101
+ var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, this.meetingId);
102
+ if (isDemoted && (meeting === null || meeting === void 0 ? void 0 : meeting.shareStatus) === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE || isPromoted) {
103
+ var _meeting$locusInfo, _meeting$locusInfo2;
104
+ // attendees in webinar should subscribe streaming for whiteboard sharing
105
+ // while panelist still need subscribe native mode so trigger force update here
106
+ meeting === null || meeting === void 0 ? void 0 : (_meeting$locusInfo = meeting.locusInfo) === null || _meeting$locusInfo === void 0 ? void 0 : _meeting$locusInfo.updateMediaShares(meeting === null || meeting === void 0 ? void 0 : (_meeting$locusInfo2 = meeting.locusInfo) === null || _meeting$locusInfo2 === void 0 ? void 0 : _meeting$locusInfo2.mediaShares, true);
107
+ }
108
+ if (this.practiceSessionEnabled) {
109
+ // may need change data channel in practice session
110
+ meeting === null || meeting === void 0 ? void 0 : meeting.updateLLMConnection();
111
+ }
112
+ },
113
+ /**
114
+ * should join practice session data channel or not
115
+ * @returns {boolean}
116
+ */
117
+ isJoinPracticeSessionDataChannel: function isJoinPracticeSessionDataChannel() {
118
+ return this.selfIsPanelist && this.practiceSessionEnabled;
119
+ },
120
+ /**
121
+ * start or stop practice session for webinar
122
+ * @param {boolean} enabled
123
+ * @returns {Promise}
124
+ */
125
+ setPracticeSessionState: function setPracticeSessionState(enabled) {
126
+ return this.request({
127
+ method: _constants.HTTP_VERBS.PATCH,
128
+ uri: "".concat(this.locusUrl, "/controls"),
129
+ body: {
130
+ practiceSession: {
131
+ enabled: enabled
132
+ }
133
+ }
134
+ }).catch(function (error) {
135
+ _loggerProxy.default.logger.error('Meeting:webinar#setPracticeSessionState failed', error);
136
+ throw error;
137
+ });
138
+ },
139
+ /**
140
+ * update practice session status
141
+ * @param {object} payload
142
+ * @returns {void}
143
+ */
144
+ updatePracticeSessionStatus: function updatePracticeSessionStatus(payload) {
145
+ this.set('practiceSessionEnabled', !!(payload !== null && payload !== void 0 && payload.enabled));
146
+ },
147
+ /**
148
+ * start webcast mode for webinar
149
+ * @param {object} meeting
150
+ * @param {object} layout
151
+ * @returns {Promise}
152
+ */
153
+ startWebcast: function startWebcast(meeting, layout) {
154
+ var _this = this;
155
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
156
+ return _regenerator.default.wrap(function _callee$(_context) {
157
+ while (1) switch (_context.prev = _context.next) {
158
+ case 0:
159
+ if (meeting) {
160
+ _context.next = 3;
161
+ break;
162
+ }
163
+ _loggerProxy.default.logger.error("Meeting:webinar#startWebcast failed --> meeting parameter : ".concat(meeting));
164
+ throw new Error('Meeting parameter does not meet expectations');
165
+ case 3:
166
+ _context.t0 = _this;
167
+ _context.t1 = _constants.HTTP_VERBS.PUT;
168
+ _context.t2 = "".concat(_this.webcastInstanceUrl, "/streaming");
169
+ _context.t3 = _defineProperty2.default;
170
+ _context.next = 9;
171
+ return _this.webex.credentials.getUserToken();
172
+ case 9:
173
+ _context.t4 = _context.sent;
174
+ _context.t5 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
175
+ _context.t6 = {
176
+ authorization: _context.t4,
177
+ trackingId: _context.t5
178
+ };
179
+ _context.t7 = _constants.HEADERS.CONTENT_TYPE;
180
+ _context.t8 = _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON;
181
+ _context.t9 = (0, _context.t3)(_context.t6, _context.t7, _context.t8);
182
+ _context.t10 = {
183
+ action: 'start',
184
+ meetingInfo: {
185
+ locusId: meeting.locusId,
186
+ correlationId: meeting.correlationId
187
+ },
188
+ layout: layout
189
+ };
190
+ _context.t11 = {
191
+ method: _context.t1,
192
+ uri: _context.t2,
193
+ headers: _context.t9,
194
+ body: _context.t10
195
+ };
196
+ return _context.abrupt("return", _context.t0.request.call(_context.t0, _context.t11).catch(function (error) {
197
+ _loggerProxy.default.logger.error('Meeting:webinar#startWebcast failed', error);
198
+ throw error;
199
+ }));
200
+ case 18:
201
+ case "end":
202
+ return _context.stop();
203
+ }
204
+ }, _callee);
205
+ }))();
206
+ },
207
+ /**
208
+ * stop webcast mode for webinar
209
+ * @returns {Promise}
210
+ */
211
+ stopWebcast: function stopWebcast() {
212
+ var _this2 = this;
213
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
214
+ return _regenerator.default.wrap(function _callee2$(_context2) {
215
+ while (1) switch (_context2.prev = _context2.next) {
216
+ case 0:
217
+ _context2.t0 = _this2;
218
+ _context2.t1 = _constants.HTTP_VERBS.PUT;
219
+ _context2.t2 = "".concat(_this2.webcastInstanceUrl, "/streaming");
220
+ _context2.t3 = _defineProperty2.default;
221
+ _context2.next = 6;
222
+ return _this2.webex.credentials.getUserToken();
223
+ case 6:
224
+ _context2.t4 = _context2.sent;
225
+ _context2.t5 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
226
+ _context2.t6 = {
227
+ authorization: _context2.t4,
228
+ trackingId: _context2.t5
229
+ };
230
+ _context2.t7 = _constants.HEADERS.CONTENT_TYPE;
231
+ _context2.t8 = _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON;
232
+ _context2.t9 = (0, _context2.t3)(_context2.t6, _context2.t7, _context2.t8);
233
+ _context2.t10 = {
234
+ action: 'stop'
235
+ };
236
+ _context2.t11 = {
237
+ method: _context2.t1,
238
+ uri: _context2.t2,
239
+ headers: _context2.t9,
240
+ body: _context2.t10
241
+ };
242
+ return _context2.abrupt("return", _context2.t0.request.call(_context2.t0, _context2.t11).catch(function (error) {
243
+ _loggerProxy.default.logger.error('Meeting:webinar#stopWebcast failed', error);
244
+ throw error;
245
+ }));
246
+ case 15:
247
+ case "end":
248
+ return _context2.stop();
249
+ }
250
+ }, _callee2);
251
+ }))();
252
+ },
253
+ /**
254
+ * query webcast layout for webinar
255
+ * @returns {Promise}
256
+ */
257
+ queryWebcastLayout: function queryWebcastLayout() {
258
+ var _this3 = this;
259
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
260
+ return _regenerator.default.wrap(function _callee3$(_context3) {
261
+ while (1) switch (_context3.prev = _context3.next) {
262
+ case 0:
263
+ _context3.t0 = _this3;
264
+ _context3.t1 = _constants.HTTP_VERBS.GET;
265
+ _context3.t2 = "".concat(_this3.webcastInstanceUrl, "/layout");
266
+ _context3.next = 5;
267
+ return _this3.webex.credentials.getUserToken();
268
+ case 5:
269
+ _context3.t3 = _context3.sent;
270
+ _context3.t4 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
271
+ _context3.t5 = {
272
+ authorization: _context3.t3,
273
+ trackingId: _context3.t4
274
+ };
275
+ _context3.t6 = {
276
+ method: _context3.t1,
277
+ uri: _context3.t2,
278
+ headers: _context3.t5
279
+ };
280
+ return _context3.abrupt("return", _context3.t0.request.call(_context3.t0, _context3.t6).catch(function (error) {
281
+ _loggerProxy.default.logger.error('Meeting:webinar#queryWebcastLayout failed', error);
282
+ throw error;
283
+ }));
284
+ case 10:
285
+ case "end":
286
+ return _context3.stop();
287
+ }
288
+ }, _callee3);
289
+ }))();
290
+ },
291
+ /**
292
+ * update webcast layout for webinar
293
+ * @param {object} layout
294
+ * @returns {Promise}
295
+ */
296
+ updateWebcastLayout: function updateWebcastLayout(layout) {
297
+ var _this4 = this;
298
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
299
+ return _regenerator.default.wrap(function _callee4$(_context4) {
300
+ while (1) switch (_context4.prev = _context4.next) {
301
+ case 0:
302
+ _context4.t0 = _this4;
303
+ _context4.t1 = _constants.HTTP_VERBS.PUT;
304
+ _context4.t2 = "".concat(_this4.webcastInstanceUrl, "/layout");
305
+ _context4.t3 = _defineProperty2.default;
306
+ _context4.next = 6;
307
+ return _this4.webex.credentials.getUserToken();
308
+ case 6:
309
+ _context4.t4 = _context4.sent;
310
+ _context4.t5 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
311
+ _context4.t6 = {
312
+ authorization: _context4.t4,
313
+ trackingId: _context4.t5
314
+ };
315
+ _context4.t7 = _constants.HEADERS.CONTENT_TYPE;
316
+ _context4.t8 = _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON;
317
+ _context4.t9 = (0, _context4.t3)(_context4.t6, _context4.t7, _context4.t8);
318
+ _context4.t10 = {
319
+ videoLayout: layout.videoLayout,
320
+ contentLayout: layout.contentLayout,
321
+ syncStageLayout: layout.syncStageLayout,
322
+ syncStageInMeeting: layout.syncStageInMeeting
323
+ };
324
+ _context4.t11 = {
325
+ method: _context4.t1,
326
+ uri: _context4.t2,
327
+ headers: _context4.t9,
328
+ body: _context4.t10
329
+ };
330
+ return _context4.abrupt("return", _context4.t0.request.call(_context4.t0, _context4.t11).catch(function (error) {
331
+ _loggerProxy.default.logger.error('Meeting:webinar#updateWebcastLayout failed', error);
332
+ throw error;
333
+ }));
334
+ case 15:
335
+ case "end":
336
+ return _context4.stop();
337
+ }
338
+ }, _callee4);
339
+ }))();
340
+ },
341
+ /**
342
+ * view all webcast attendees
343
+ * @param {string} queryString
344
+ * @returns {Promise}
345
+ */
346
+ viewAllWebcastAttendees: function viewAllWebcastAttendees() {
347
+ var _this5 = this;
348
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
349
+ return _regenerator.default.wrap(function _callee5$(_context5) {
350
+ while (1) switch (_context5.prev = _context5.next) {
351
+ case 0:
352
+ _context5.t0 = _this5;
353
+ _context5.t1 = _constants.HTTP_VERBS.GET;
354
+ _context5.t2 = "".concat(_this5.webcastInstanceUrl, "/attendees");
355
+ _context5.next = 5;
356
+ return _this5.webex.credentials.getUserToken();
357
+ case 5:
358
+ _context5.t3 = _context5.sent;
359
+ _context5.t4 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
360
+ _context5.t5 = {
361
+ authorization: _context5.t3,
362
+ trackingId: _context5.t4
363
+ };
364
+ _context5.t6 = {
365
+ method: _context5.t1,
366
+ uri: _context5.t2,
367
+ headers: _context5.t5
368
+ };
369
+ return _context5.abrupt("return", _context5.t0.request.call(_context5.t0, _context5.t6).catch(function (error) {
370
+ _loggerProxy.default.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);
371
+ throw error;
372
+ }));
373
+ case 10:
374
+ case "end":
375
+ return _context5.stop();
376
+ }
377
+ }, _callee5);
378
+ }))();
379
+ },
380
+ /**
381
+ * search webcast attendees by query string
382
+ * @param {string} queryString
383
+ * @returns {Promise}
384
+ */
385
+ searchWebcastAttendees: function searchWebcastAttendees() {
386
+ var _arguments = arguments,
387
+ _this6 = this;
388
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
389
+ var queryString;
390
+ return _regenerator.default.wrap(function _callee6$(_context6) {
391
+ while (1) switch (_context6.prev = _context6.next) {
392
+ case 0:
393
+ queryString = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : '';
394
+ _context6.t0 = _this6;
395
+ _context6.t1 = _constants.HTTP_VERBS.GET;
396
+ _context6.t2 = "".concat(_this6.webcastInstanceUrl, "/attendees?keyword=").concat(encodeURIComponent(queryString));
397
+ _context6.next = 6;
398
+ return _this6.webex.credentials.getUserToken();
399
+ case 6:
400
+ _context6.t3 = _context6.sent;
401
+ _context6.t4 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
402
+ _context6.t5 = {
403
+ authorization: _context6.t3,
404
+ trackingId: _context6.t4
405
+ };
406
+ _context6.t6 = {
407
+ method: _context6.t1,
408
+ uri: _context6.t2,
409
+ headers: _context6.t5
410
+ };
411
+ return _context6.abrupt("return", _context6.t0.request.call(_context6.t0, _context6.t6).catch(function (error) {
412
+ _loggerProxy.default.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);
413
+ throw error;
414
+ }));
415
+ case 11:
416
+ case "end":
417
+ return _context6.stop();
418
+ }
419
+ }, _callee6);
420
+ }))();
421
+ },
422
+ /**
423
+ * expel webcast attendee by participantId
424
+ * @param {string} participantId
425
+ * @returns {Promise}
426
+ */
427
+ expelWebcastAttendee: function expelWebcastAttendee(participantId) {
428
+ var _this7 = this;
429
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
430
+ return _regenerator.default.wrap(function _callee7$(_context7) {
431
+ while (1) switch (_context7.prev = _context7.next) {
432
+ case 0:
433
+ _context7.t0 = _this7;
434
+ _context7.t1 = _constants.HTTP_VERBS.DELETE;
435
+ _context7.t2 = "".concat(_this7.webcastInstanceUrl, "/attendees/").concat(participantId);
436
+ _context7.next = 5;
437
+ return _this7.webex.credentials.getUserToken();
438
+ case 5:
439
+ _context7.t3 = _context7.sent;
440
+ _context7.t4 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
441
+ _context7.t5 = {
442
+ authorization: _context7.t3,
443
+ trackingId: _context7.t4
444
+ };
445
+ _context7.t6 = {
446
+ method: _context7.t1,
447
+ uri: _context7.t2,
448
+ headers: _context7.t5
449
+ };
450
+ return _context7.abrupt("return", _context7.t0.request.call(_context7.t0, _context7.t6).catch(function (error) {
451
+ _loggerProxy.default.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);
452
+ throw error;
453
+ }));
454
+ case 10:
455
+ case "end":
456
+ return _context7.stop();
457
+ }
458
+ }, _callee7);
459
+ }))();
460
+ },
461
+ version: "3.8.0-next.2"
79
462
  });
80
463
  var _default = exports.default = Webinar;
81
464
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_lodash","_constants","_collection","_interopRequireDefault","Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastInstanceUrl","canManageWebcast","selfIsPanelist","selfIsAttendee","locusUrlUpdate","set","updateWebcastUrl","payload","get","updateCanManageWebcast","updateRoleChanged","isPromoted","includes","SELF_ROLES","ATTENDEE","PANELIST","isDemoted","MODERATOR","version","_default","exports","default"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {get} from 'lodash';\nimport {MEETINGS, SELF_ROLES} from '../constants';\n\nimport WebinarCollection from './collection';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastInstanceUrl: 'string', // current webinar's webcast instance url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n selfIsPanelist: 'boolean', // self is panelist\n selfIsAttendee: 'boolean', // self is attendee\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast instance url of the meeting\n * @param {object} payload\n * @returns {void}\n */\n updateWebcastUrl(payload) {\n this.set('webcastInstanceUrl', get(payload, 'resources.webcastInstance.url'));\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n\n /**\n * Updates user roles and manages associated state transitions\n * @param {object} payload\n * @param {string[]} payload.oldRoles - Previous roles of the user\n * @param {string[]} payload.newRoles - New roles of the user\n * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states\n */\n updateRoleChanged(payload) {\n const isPromoted =\n get(payload, 'oldRoles', []).includes(SELF_ROLES.ATTENDEE) &&\n get(payload, 'newRoles', []).includes(SELF_ROLES.PANELIST);\n const isDemoted =\n get(payload, 'oldRoles', []).includes(SELF_ROLES.PANELIST) &&\n get(payload, 'newRoles', []).includes(SELF_ROLES.ATTENDEE);\n this.set('selfIsPanelist', get(payload, 'newRoles', []).includes(SELF_ROLES.PANELIST));\n this.set('selfIsAttendee', get(payload, 'newRoles', []).includes(SELF_ROLES.ATTENDEE));\n this.updateCanManageWebcast(get(payload, 'newRoles', []).includes(SELF_ROLES.MODERATOR));\n\n return {isPromoted, isDemoted};\n },\n});\n\nexport default Webinar;\n"],"mappings":";;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAPA;AACA;AACA;;AAOA;AACA;AACA;AACA,IAAMK,OAAO,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACjCC,SAAS,EAAEC,mBAAQ;EACnBC,WAAW,EAAE;IACXC,OAAO,EAAEC;EACX,CAAC;EAEDC,KAAK,EAAE;IACLC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,kBAAkB,EAAE,QAAQ;IAAE;IAC9BC,gBAAgB,EAAE,SAAS;IAAE;IAC7BC,cAAc,EAAE,SAAS;IAAE;IAC3BC,cAAc,EAAE,SAAS,CAAE;EAC7B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,cAAc,WAAAA,eAACL,QAAQ,EAAE;IACvB,IAAI,CAACM,GAAG,CAAC,UAAU,EAAEN,QAAQ,CAAC;EAChC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEO,gBAAgB,WAAAA,iBAACC,OAAO,EAAE;IACxB,IAAI,CAACF,GAAG,CAAC,oBAAoB,EAAE,IAAAG,WAAG,EAACD,OAAO,EAAE,+BAA+B,CAAC,CAAC;EAC/E,CAAC;EAED;AACF;AACA;AACA;AACA;EACEE,sBAAsB,WAAAA,uBAACR,gBAAgB,EAAE;IACvC,IAAI,CAACI,GAAG,CAAC,kBAAkB,EAAEJ,gBAAgB,CAAC;EAChD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACES,iBAAiB,WAAAA,kBAACH,OAAO,EAAE;IACzB,IAAMI,UAAU,GACd,IAAAH,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACC,QAAQ,CAAC,IAC1D,IAAAN,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACE,QAAQ,CAAC;IAC5D,IAAMC,SAAS,GACb,IAAAR,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACE,QAAQ,CAAC,IAC1D,IAAAP,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACC,QAAQ,CAAC;IAC5D,IAAI,CAACT,GAAG,CAAC,gBAAgB,EAAE,IAAAG,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACE,QAAQ,CAAC,CAAC;IACtF,IAAI,CAACV,GAAG,CAAC,gBAAgB,EAAE,IAAAG,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACC,QAAQ,CAAC,CAAC;IACtF,IAAI,CAACL,sBAAsB,CAAC,IAAAD,WAAG,EAACD,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAACK,QAAQ,CAACC,qBAAU,CAACI,SAAS,CAAC,CAAC;IAExF,OAAO;MAACN,UAAU,EAAVA,UAAU;MAAEK,SAAS,EAATA;IAAS,CAAC;EAChC,CAAC;EAAAE,OAAA;AACH,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEY/B,OAAO"}
1
+ {"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_lodash","_constants","_collection","_loggerProxy","Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastInstanceUrl","canManageWebcast","selfIsPanelist","selfIsAttendee","practiceSessionEnabled","meetingId","locusUrlUpdate","set","updateWebcastUrl","payload","get","updateCanManageWebcast","updateRoleChanged","oldRoles","newRoles","isPromoted","includes","SELF_ROLES","ATTENDEE","PANELIST","isDemoted","MODERATOR","updateStatusByRole","_ref","meeting","webex","meetings","getMeetingByType","_ID_","shareStatus","SHARE_STATUS","WHITEBOARD_SHARE_ACTIVE","_meeting$locusInfo","_meeting$locusInfo2","locusInfo","updateMediaShares","mediaShares","updateLLMConnection","isJoinPracticeSessionDataChannel","setPracticeSessionState","enabled","request","method","HTTP_VERBS","PATCH","uri","concat","body","practiceSession","catch","error","LoggerProxy","logger","updatePracticeSessionStatus","startWebcast","layout","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","t0","t1","PUT","t2","t3","_defineProperty2","credentials","getUserToken","t4","sent","t5","config","trackingIdPrefix","uuid","v4","toString","t6","authorization","trackingId","t7","HEADERS","CONTENT_TYPE","t8","CONTENT_TYPE_VALUE","APPLICATION_JSON","t9","t10","action","meetingInfo","locusId","correlationId","t11","headers","abrupt","call","stop","stopWebcast","_this2","_callee2","_callee2$","_context2","queryWebcastLayout","_this3","_callee3","_callee3$","_context3","GET","updateWebcastLayout","_this4","_callee4","_callee4$","_context4","videoLayout","contentLayout","syncStageLayout","syncStageInMeeting","viewAllWebcastAttendees","_this5","_callee5","_callee5$","_context5","searchWebcastAttendees","_arguments","arguments","_this6","_callee6","queryString","_callee6$","_context6","length","undefined","encodeURIComponent","expelWebcastAttendee","participantId","_this7","_callee7","_callee7$","_context7","DELETE","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport uuid from 'uuid';\nimport {get} from 'lodash';\nimport {_ID_, HEADERS, HTTP_VERBS, MEETINGS, SELF_ROLES, SHARE_STATUS} from '../constants';\n\nimport WebinarCollection from './collection';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastInstanceUrl: 'string', // current webinar's webcast instance url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n selfIsPanelist: 'boolean', // self is panelist\n selfIsAttendee: 'boolean', // self is attendee\n practiceSessionEnabled: 'boolean', // practice session enabled\n meetingId: 'string',\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast instance url of the meeting\n * @param {object} payload\n * @returns {void}\n */\n updateWebcastUrl(payload) {\n this.set('webcastInstanceUrl', get(payload, 'resources.webcastInstance.url'));\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n\n /**\n * Updates user roles and manages associated state transitions\n * @param {object} payload\n * @param {string[]} payload.oldRoles - Previous roles of the user\n * @param {string[]} payload.newRoles - New roles of the user\n * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states\n */\n updateRoleChanged(payload) {\n const oldRoles = get(payload, 'oldRoles', []);\n const newRoles = get(payload, 'newRoles', []);\n\n const isPromoted =\n oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.PANELIST);\n const isDemoted =\n (oldRoles.includes(SELF_ROLES.PANELIST) && newRoles.includes(SELF_ROLES.ATTENDEE)) ||\n (!oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.ATTENDEE)); // for attendee just join meeting case\n this.set('selfIsPanelist', newRoles.includes(SELF_ROLES.PANELIST));\n this.set('selfIsAttendee', newRoles.includes(SELF_ROLES.ATTENDEE));\n this.updateCanManageWebcast(newRoles.includes(SELF_ROLES.MODERATOR));\n this.updateStatusByRole({isPromoted, isDemoted});\n\n return {isPromoted, isDemoted};\n },\n\n /**\n * should join practice session data channel or not\n * @param {Object} {isPromoted: boolean, isDemoted: boolean}} Role transition states\n * @returns {void}\n */\n updateStatusByRole({isPromoted, isDemoted}) {\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n\n if (\n (isDemoted && meeting?.shareStatus === SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) ||\n isPromoted\n ) {\n // attendees in webinar should subscribe streaming for whiteboard sharing\n // while panelist still need subscribe native mode so trigger force update here\n meeting?.locusInfo?.updateMediaShares(meeting?.locusInfo?.mediaShares, true);\n }\n\n if (this.practiceSessionEnabled) {\n // may need change data channel in practice session\n meeting?.updateLLMConnection();\n }\n },\n\n /**\n * should join practice session data channel or not\n * @returns {boolean}\n */\n isJoinPracticeSessionDataChannel() {\n return this.selfIsPanelist && this.practiceSessionEnabled;\n },\n\n /**\n * start or stop practice session for webinar\n * @param {boolean} enabled\n * @returns {Promise}\n */\n setPracticeSessionState(enabled) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n practiceSession: {\n enabled,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#setPracticeSessionState failed', error);\n throw error;\n });\n },\n\n /**\n * update practice session status\n * @param {object} payload\n * @returns {void}\n */\n updatePracticeSessionStatus(payload) {\n this.set('practiceSessionEnabled', !!payload?.enabled);\n },\n\n /**\n * start webcast mode for webinar\n * @param {object} meeting\n * @param {object} layout\n * @returns {Promise}\n */\n async startWebcast(meeting, layout) {\n if (!meeting) {\n LoggerProxy.logger.error(\n `Meeting:webinar#startWebcast failed --> meeting parameter : ${meeting}`\n );\n throw new Error('Meeting parameter does not meet expectations');\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'start',\n meetingInfo: {\n locusId: meeting.locusId,\n correlationId: meeting.correlationId,\n },\n layout,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#startWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * stop webcast mode for webinar\n * @returns {Promise}\n */\n async stopWebcast() {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'stop',\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#stopWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * query webcast layout for webinar\n * @returns {Promise}\n */\n async queryWebcastLayout() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#queryWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * update webcast layout for webinar\n * @param {object} layout\n * @returns {Promise}\n */\n async updateWebcastLayout(layout) {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n videoLayout: layout.videoLayout,\n contentLayout: layout.contentLayout,\n syncStageLayout: layout.syncStageLayout,\n syncStageInMeeting: layout.syncStageInMeeting,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#updateWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * view all webcast attendees\n * @param {string} queryString\n * @returns {Promise}\n */\n async viewAllWebcastAttendees() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * search webcast attendees by query string\n * @param {string} queryString\n * @returns {Promise}\n */\n async searchWebcastAttendees(queryString = '') {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(queryString)}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * expel webcast attendee by participantId\n * @param {string} participantId\n * @returns {Promise}\n */\n async expelWebcastAttendee(participantId) {\n return this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.webcastInstanceUrl}/attendees/${participantId}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);\n throw error;\n });\n },\n});\n\nexport default Webinar;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -43,13 +43,13 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.7.0",
47
- "@webex/plugin-rooms": "3.7.0",
48
- "@webex/test-helper-chai": "3.7.0",
49
- "@webex/test-helper-mocha": "3.7.0",
50
- "@webex/test-helper-mock-webex": "3.7.0",
51
- "@webex/test-helper-retry": "3.7.0",
52
- "@webex/test-helper-test-users": "3.7.0",
46
+ "@webex/plugin-meetings": "3.8.0-next.2",
47
+ "@webex/plugin-rooms": "3.7.0-next.25",
48
+ "@webex/test-helper-chai": "3.7.0-next.18",
49
+ "@webex/test-helper-mocha": "3.7.0-next.18",
50
+ "@webex/test-helper-mock-webex": "3.7.0-next.18",
51
+ "@webex/test-helper-retry": "3.7.0-next.18",
52
+ "@webex/test-helper-test-users": "3.7.0-next.18",
53
53
  "chai": "^4.3.4",
54
54
  "chai-as-promised": "^7.1.1",
55
55
  "eslint": "^8.24.0",
@@ -61,21 +61,22 @@
61
61
  "typescript": "^4.7.4"
62
62
  },
63
63
  "dependencies": {
64
- "@webex/common": "3.7.0",
65
- "@webex/internal-media-core": "2.12.2",
66
- "@webex/internal-plugin-conversation": "3.7.0",
67
- "@webex/internal-plugin-device": "3.7.0",
68
- "@webex/internal-plugin-llm": "3.7.0",
69
- "@webex/internal-plugin-mercury": "3.7.0",
70
- "@webex/internal-plugin-metrics": "3.7.0",
71
- "@webex/internal-plugin-support": "3.7.0",
72
- "@webex/internal-plugin-user": "3.7.0",
73
- "@webex/internal-plugin-voicea": "3.7.0",
74
- "@webex/media-helpers": "3.7.0",
75
- "@webex/plugin-people": "3.7.0",
76
- "@webex/plugin-rooms": "3.7.0",
64
+ "@webex/common": "3.7.0-next.18",
65
+ "@webex/event-dictionary-ts": "^1.0.1688",
66
+ "@webex/internal-media-core": "2.14.4",
67
+ "@webex/internal-plugin-conversation": "3.7.0-next.25",
68
+ "@webex/internal-plugin-device": "3.7.0-next.18",
69
+ "@webex/internal-plugin-llm": "3.8.0-next.1",
70
+ "@webex/internal-plugin-mercury": "3.7.0-next.23",
71
+ "@webex/internal-plugin-metrics": "3.7.0-next.18",
72
+ "@webex/internal-plugin-support": "3.7.0-next.26",
73
+ "@webex/internal-plugin-user": "3.7.0-next.18",
74
+ "@webex/internal-plugin-voicea": "3.8.0-next.2",
75
+ "@webex/media-helpers": "3.7.0-next.25",
76
+ "@webex/plugin-people": "3.7.0-next.23",
77
+ "@webex/plugin-rooms": "3.7.0-next.25",
77
78
  "@webex/web-capabilities": "^1.4.0",
78
- "@webex/webex-core": "3.7.0",
79
+ "@webex/webex-core": "3.7.0-next.18",
79
80
  "ampersand-collection": "^2.0.2",
80
81
  "bowser": "^2.11.0",
81
82
  "btoa": "^1.2.1",
@@ -91,5 +92,5 @@
91
92
  "//": [
92
93
  "TODO: upgrade jwt-decode when moving to node 18"
93
94
  ],
94
- "version": "3.7.0"
95
+ "version": "3.8.0-next.2"
95
96
  }
@@ -120,6 +120,22 @@ class AnnotationChannel extends WebexPlugin implements IAnnotationChannel {
120
120
  }
121
121
  }
122
122
 
123
+ /**
124
+ * Remove event listeners
125
+ * @returns {undefined}
126
+ */
127
+ public deregisterEvents() {
128
+ if (this.hasSubscribedToEvents) {
129
+ // @ts-ignore
130
+ this.webex.internal.mercury.off('event:locus.approval_request', this.eventCommandProcessor);
131
+
132
+ // @ts-ignore
133
+ this.webex.internal.llm.off('event:relay.event', this.eventDataProcessor);
134
+
135
+ this.hasSubscribedToEvents = false;
136
+ }
137
+ }
138
+
123
139
  /**
124
140
  * set locusUrl
125
141
  * @param {string} locusUrl
@@ -0,0 +1,26 @@
1
+ import {ERROR_DICTIONARY} from '../../constants';
2
+
3
+ /**
4
+ * Error occurred while join the meeting
5
+ */
6
+ export default class JoinForbiddenError extends Error {
7
+ code: number;
8
+ error: any;
9
+ sdkMessage: string;
10
+ wbxAppApiCode: number;
11
+
12
+ /**
13
+ * @constructor
14
+ * @param {String} [message]
15
+ * @param {Object} [error]
16
+ */
17
+ constructor(message: string = ERROR_DICTIONARY.JoinForbiddenError.MESSAGE, error: any = null) {
18
+ super(message);
19
+ this.name = ERROR_DICTIONARY.JoinForbiddenError.NAME;
20
+ this.sdkMessage = message;
21
+ this.error = error;
22
+ this.stack = error ? error.stack : new Error().stack;
23
+ this.code = ERROR_DICTIONARY.JoinForbiddenError.CODE;
24
+ this.wbxAppApiCode = error?.wbxAppApiCode;
25
+ }
26
+ }
@@ -0,0 +1,24 @@
1
+ import {ERROR_DICTIONARY} from '../../constants';
2
+
3
+ /**
4
+ * Error occurred while join the webinar
5
+ */
6
+ export default class JoinWebinarError 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(message: string = ERROR_DICTIONARY.JoinWebinarError.MESSAGE, error: any = null) {
17
+ super(message);
18
+ this.name = ERROR_DICTIONARY.JoinWebinarError.NAME;
19
+ this.sdkMessage = ERROR_DICTIONARY.JoinWebinarError.MESSAGE;
20
+ this.error = error;
21
+ this.stack = error ? error.stack : new Error().stack;
22
+ this.code = ERROR_DICTIONARY.JoinWebinarError.CODE;
23
+ }
24
+ }