@webex/plugin-meetings 3.11.0-webex-services-ready.1 → 3.12.0-mobius-socket.1
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.
- package/dist/aiEnableRequest/index.js +184 -0
- package/dist/aiEnableRequest/index.js.map +1 -0
- package/dist/aiEnableRequest/utils.js +36 -0
- package/dist/aiEnableRequest/utils.js.map +1 -0
- package/dist/annotation/index.js +14 -5
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +7 -2
- package/dist/config.js.map +1 -1
- package/dist/constants.js +28 -6
- package/dist/constants.js.map +1 -1
- package/dist/hashTree/constants.js +3 -1
- package/dist/hashTree/constants.js.map +1 -1
- package/dist/hashTree/hashTree.js +18 -0
- package/dist/hashTree/hashTree.js.map +1 -1
- package/dist/hashTree/hashTreeParser.js +868 -419
- package/dist/hashTree/hashTreeParser.js.map +1 -1
- package/dist/hashTree/types.js +4 -2
- package/dist/hashTree/types.js.map +1 -1
- package/dist/hashTree/utils.js +10 -0
- package/dist/hashTree/utils.js.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/constant.js +12 -0
- package/dist/interceptors/constant.js.map +1 -0
- package/dist/interceptors/dataChannelAuthToken.js +290 -0
- package/dist/interceptors/dataChannelAuthToken.js.map +1 -0
- package/dist/interceptors/index.js +7 -0
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/utils.js +27 -0
- package/dist/interceptors/utils.js.map +1 -0
- package/dist/interpretation/index.js +2 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +5 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +522 -131
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +1 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/locus-info/types.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +57 -1
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/properties.js +4 -2
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +7 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1293 -929
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +50 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +133 -3
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +117 -48
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +10 -0
- package/dist/member/util.js.map +1 -1
- package/dist/metrics/constants.js +6 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +9 -60
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +11 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +116 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +0 -1
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/types/aiEnableRequest/index.d.ts +5 -0
- package/dist/types/aiEnableRequest/utils.d.ts +2 -0
- package/dist/types/config.d.ts +4 -0
- package/dist/types/constants.d.ts +23 -1
- package/dist/types/hashTree/constants.d.ts +1 -0
- package/dist/types/hashTree/hashTree.d.ts +7 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +122 -14
- package/dist/types/hashTree/types.d.ts +3 -0
- package/dist/types/hashTree/utils.d.ts +6 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interceptors/constant.d.ts +5 -0
- package/dist/types/interceptors/dataChannelAuthToken.d.ts +43 -0
- package/dist/types/interceptors/index.d.ts +2 -1
- package/dist/types/interceptors/utils.d.ts +1 -0
- package/dist/types/locus-info/index.d.ts +60 -8
- package/dist/types/locus-info/types.d.ts +7 -0
- package/dist/types/media/MediaConnectionAwaiter.d.ts +10 -1
- package/dist/types/media/properties.d.ts +2 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +72 -7
- package/dist/types/meeting/request.d.ts +16 -1
- package/dist/types/meeting/request.type.d.ts +5 -0
- package/dist/types/meeting/util.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +4 -2
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +5 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +0 -23
- package/dist/types/multistream/sendSlotManager.d.ts +23 -1
- package/dist/types/reactions/reactions.type.d.ts +1 -0
- package/dist/types/webinar/utils.d.ts +6 -0
- package/dist/webinar/index.js +438 -163
- package/dist/webinar/index.js.map +1 -1
- package/dist/webinar/utils.js +25 -0
- package/dist/webinar/utils.js.map +1 -0
- package/package.json +24 -23
- package/src/aiEnableRequest/README.md +84 -0
- package/src/aiEnableRequest/index.ts +170 -0
- package/src/aiEnableRequest/utils.ts +25 -0
- package/src/annotation/index.ts +27 -7
- package/src/config.ts +4 -0
- package/src/constants.ts +29 -1
- package/src/hashTree/constants.ts +1 -0
- package/src/hashTree/hashTree.ts +17 -0
- package/src/hashTree/hashTreeParser.ts +761 -260
- package/src/hashTree/types.ts +4 -0
- package/src/hashTree/utils.ts +9 -0
- package/src/index.ts +8 -1
- package/src/interceptors/constant.ts +6 -0
- package/src/interceptors/dataChannelAuthToken.ts +170 -0
- package/src/interceptors/index.ts +2 -1
- package/src/interceptors/utils.ts +16 -0
- package/src/interpretation/index.ts +2 -2
- package/src/locus-info/controlsUtils.ts +11 -0
- package/src/locus-info/index.ts +579 -113
- package/src/locus-info/selfUtils.ts +1 -0
- package/src/locus-info/types.ts +8 -0
- package/src/media/MediaConnectionAwaiter.ts +41 -1
- package/src/media/properties.ts +3 -1
- package/src/meeting/in-meeting-actions.ts +12 -0
- package/src/meeting/index.ts +372 -86
- package/src/meeting/request.ts +42 -0
- package/src/meeting/request.type.ts +6 -0
- package/src/meeting/util.ts +160 -2
- package/src/meetings/index.ts +157 -44
- package/src/member/index.ts +10 -0
- package/src/member/util.ts +12 -0
- package/src/metrics/constants.ts +6 -0
- package/src/multistream/mediaRequestManager.ts +4 -54
- package/src/multistream/remoteMediaManager.ts +13 -0
- package/src/multistream/sendSlotManager.ts +97 -3
- package/src/reactions/reactions.type.ts +1 -0
- package/src/reconnection-manager/index.ts +0 -1
- package/src/webinar/index.ts +265 -6
- package/src/webinar/utils.ts +16 -0
- package/test/unit/spec/aiEnableRequest/index.ts +981 -0
- package/test/unit/spec/aiEnableRequest/utils.ts +130 -0
- package/test/unit/spec/annotation/index.ts +69 -7
- package/test/unit/spec/hashTree/hashTree.ts +66 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +2321 -175
- package/test/unit/spec/interceptors/dataChannelAuthToken.ts +210 -0
- package/test/unit/spec/interceptors/utils.ts +75 -0
- package/test/unit/spec/locus-info/controlsUtils.js +29 -0
- package/test/unit/spec/locus-info/index.js +1134 -55
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +41 -1
- package/test/unit/spec/media/properties.ts +12 -3
- package/test/unit/spec/meeting/in-meeting-actions.ts +8 -2
- package/test/unit/spec/meeting/index.js +829 -121
- package/test/unit/spec/meeting/request.js +70 -0
- package/test/unit/spec/meeting/utils.js +438 -26
- package/test/unit/spec/meetings/index.js +653 -32
- package/test/unit/spec/member/index.js +28 -4
- package/test/unit/spec/member/util.js +65 -27
- package/test/unit/spec/multistream/mediaRequestManager.ts +2 -85
- package/test/unit/spec/multistream/remoteMediaManager.ts +30 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +135 -36
- package/test/unit/spec/reconnection-manager/index.js +4 -8
- package/test/unit/spec/webinar/index.ts +534 -37
- package/test/unit/spec/webinar/utils.ts +39 -0
package/dist/webinar/index.js
CHANGED
|
@@ -6,15 +6,18 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
9
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
10
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
11
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
12
13
|
var _webexCore = require("@webex/webex-core");
|
|
13
14
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
14
15
|
var _lodash = require("lodash");
|
|
16
|
+
var _internalPluginLlm = require("@webex/internal-plugin-llm");
|
|
15
17
|
var _constants = require("../constants");
|
|
16
18
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
17
19
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
20
|
+
var _utils = require("./utils");
|
|
18
21
|
/*!
|
|
19
22
|
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
20
23
|
*/
|
|
@@ -42,6 +45,13 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
42
45
|
// practice session enabled
|
|
43
46
|
meetingId: 'string'
|
|
44
47
|
},
|
|
48
|
+
/**
|
|
49
|
+
* Calls this to clean up listeners
|
|
50
|
+
* @returns {void}
|
|
51
|
+
*/
|
|
52
|
+
cleanUp: function cleanUp() {
|
|
53
|
+
this.cleanupPSDataChannel();
|
|
54
|
+
},
|
|
45
55
|
/**
|
|
46
56
|
* Update the current locus url of the webinar
|
|
47
57
|
* @param {string} locusUrl
|
|
@@ -105,10 +115,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
105
115
|
// while panelist still need subscribe native mode so trigger force update here
|
|
106
116
|
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
117
|
}
|
|
108
|
-
|
|
109
|
-
// may need change data channel in practice session
|
|
110
|
-
meeting === null || meeting === void 0 ? void 0 : meeting.updateLLMConnection();
|
|
111
|
-
}
|
|
118
|
+
this.updatePSDataChannel();
|
|
112
119
|
},
|
|
113
120
|
/**
|
|
114
121
|
* should join practice session data channel or not
|
|
@@ -117,6 +124,217 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
117
124
|
isJoinPracticeSessionDataChannel: function isJoinPracticeSessionDataChannel() {
|
|
118
125
|
return this.selfIsPanelist && this.practiceSessionEnabled;
|
|
119
126
|
},
|
|
127
|
+
/**
|
|
128
|
+
* Disconnects the practice session data channel and removes its relay listener.
|
|
129
|
+
* @returns {Promise<void>}
|
|
130
|
+
*/
|
|
131
|
+
cleanupPSDataChannel: function cleanupPSDataChannel() {
|
|
132
|
+
var _this = this;
|
|
133
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
134
|
+
var meeting;
|
|
135
|
+
return _regenerator.default.wrap(function (_context) {
|
|
136
|
+
while (1) switch (_context.prev = _context.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
if (_this._pendingOnlineListener) {
|
|
139
|
+
// @ts-ignore - Fix type
|
|
140
|
+
_this.webex.internal.llm.off('online', _this._pendingOnlineListener);
|
|
141
|
+
_this._pendingOnlineListener = null;
|
|
142
|
+
}
|
|
143
|
+
meeting = _this.webex.meetings.getMeetingByType(_constants._ID_, _this.meetingId); // @ts-ignore - Fix type
|
|
144
|
+
_context.next = 1;
|
|
145
|
+
return _this.webex.internal.llm.disconnectLLM({
|
|
146
|
+
code: 3050,
|
|
147
|
+
reason: 'done (permanent)'
|
|
148
|
+
}, _constants.LLM_PRACTICE_SESSION);
|
|
149
|
+
case 1:
|
|
150
|
+
// @ts-ignore - Fix type
|
|
151
|
+
_this.webex.internal.llm.off("event:relay.event:".concat(_constants.LLM_PRACTICE_SESSION), meeting === null || meeting === void 0 ? void 0 : meeting.processRelayEvent);
|
|
152
|
+
case 2:
|
|
153
|
+
case "end":
|
|
154
|
+
return _context.stop();
|
|
155
|
+
}
|
|
156
|
+
}, _callee);
|
|
157
|
+
}))();
|
|
158
|
+
},
|
|
159
|
+
/**
|
|
160
|
+
* Ensures practice-session token exists before registering the practice LLM channel.
|
|
161
|
+
* @param {object} meeting
|
|
162
|
+
* @returns {Promise<string|undefined>}
|
|
163
|
+
*/
|
|
164
|
+
ensurePracticeSessionDatachannelToken: function ensurePracticeSessionDatachannelToken(meeting) {
|
|
165
|
+
var _this2 = this;
|
|
166
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
167
|
+
var isDataChannelTokenEnabled, cachedToken, _refreshResponse$body, refreshResponse, _ref2, datachannelToken, dataChannelTokenType, _t;
|
|
168
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
169
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
170
|
+
case 0:
|
|
171
|
+
_context2.next = 1;
|
|
172
|
+
return _this2.webex.internal.llm.isDataChannelTokenEnabled();
|
|
173
|
+
case 1:
|
|
174
|
+
isDataChannelTokenEnabled = _context2.sent;
|
|
175
|
+
if (isDataChannelTokenEnabled) {
|
|
176
|
+
_context2.next = 2;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
return _context2.abrupt("return", undefined);
|
|
180
|
+
case 2:
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
cachedToken = _this2.webex.internal.llm.getDatachannelToken(_internalPluginLlm.DataChannelTokenType.PracticeSession);
|
|
183
|
+
if (!cachedToken) {
|
|
184
|
+
_context2.next = 3;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
return _context2.abrupt("return", cachedToken);
|
|
188
|
+
case 3:
|
|
189
|
+
_context2.prev = 3;
|
|
190
|
+
_context2.next = 4;
|
|
191
|
+
return meeting.refreshDataChannelToken();
|
|
192
|
+
case 4:
|
|
193
|
+
refreshResponse = _context2.sent;
|
|
194
|
+
_ref2 = (_refreshResponse$body = refreshResponse === null || refreshResponse === void 0 ? void 0 : refreshResponse.body) !== null && _refreshResponse$body !== void 0 ? _refreshResponse$body : {}, datachannelToken = _ref2.datachannelToken, dataChannelTokenType = _ref2.dataChannelTokenType;
|
|
195
|
+
if (datachannelToken) {
|
|
196
|
+
_context2.next = 5;
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
return _context2.abrupt("return", undefined);
|
|
200
|
+
case 5:
|
|
201
|
+
// @ts-ignore
|
|
202
|
+
_this2.webex.internal.llm.setDatachannelToken(datachannelToken, dataChannelTokenType || _internalPluginLlm.DataChannelTokenType.PracticeSession);
|
|
203
|
+
return _context2.abrupt("return", datachannelToken);
|
|
204
|
+
case 6:
|
|
205
|
+
_context2.prev = 6;
|
|
206
|
+
_t = _context2["catch"](3);
|
|
207
|
+
_loggerProxy.default.logger.warn("Webinar:index#ensurePracticeSessionDatachannelToken --> failed to proactively refresh practice-session token: ".concat((_t === null || _t === void 0 ? void 0 : _t.message) || String(_t)));
|
|
208
|
+
return _context2.abrupt("return", undefined);
|
|
209
|
+
case 7:
|
|
210
|
+
case "end":
|
|
211
|
+
return _context2.stop();
|
|
212
|
+
}
|
|
213
|
+
}, _callee2, null, [[3, 6]]);
|
|
214
|
+
}))();
|
|
215
|
+
},
|
|
216
|
+
/**
|
|
217
|
+
* Connects to low latency mercury and reconnects if the address has changed
|
|
218
|
+
* It will also disconnect if called when the meeting has ended
|
|
219
|
+
* @returns {Promise}
|
|
220
|
+
*/
|
|
221
|
+
updatePSDataChannel: function updatePSDataChannel() {
|
|
222
|
+
var _this3 = this;
|
|
223
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
224
|
+
var invocationSequence, meeting, isPracticeSession, _ref3, _ref3$url, url, _ref3$info, _ref3$info2, _ref3$info2$practiceS, practiceSessionDatachannelUrl, practiceSessionDatachannelToken, isCaptionBoxOn, _onDefaultSessionConnected, refreshedPracticeSessionToken, latestPracticeSessionDatachannelUrl, isStillPracticeSession;
|
|
225
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
226
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
227
|
+
case 0:
|
|
228
|
+
_this3._updatePSDataChannelSequence = (_this3._updatePSDataChannelSequence || 0) + 1;
|
|
229
|
+
invocationSequence = _this3._updatePSDataChannelSequence;
|
|
230
|
+
meeting = _this3.webex.meetings.getMeetingByType(_constants._ID_, _this3.meetingId);
|
|
231
|
+
isPracticeSession = (meeting === null || meeting === void 0 ? void 0 : meeting.isJoined()) && _this3.isJoinPracticeSessionDataChannel();
|
|
232
|
+
if (isPracticeSession) {
|
|
233
|
+
_context3.next = 2;
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
_context3.next = 1;
|
|
237
|
+
return _this3.cleanupPSDataChannel();
|
|
238
|
+
case 1:
|
|
239
|
+
return _context3.abrupt("return", undefined);
|
|
240
|
+
case 2:
|
|
241
|
+
// @ts-ignore - Fix type
|
|
242
|
+
_ref3 = (meeting === null || meeting === void 0 ? void 0 : meeting.locusInfo) || {}, _ref3$url = _ref3.url, url = _ref3$url === void 0 ? undefined : _ref3$url, _ref3$info = _ref3.info, _ref3$info2 = _ref3$info === void 0 ? {} : _ref3$info, _ref3$info2$practiceS = _ref3$info2.practiceSessionDatachannelUrl, practiceSessionDatachannelUrl = _ref3$info2$practiceS === void 0 ? undefined : _ref3$info2$practiceS; // @ts-ignore
|
|
243
|
+
practiceSessionDatachannelToken = _this3.webex.internal.llm.getDatachannelToken(_internalPluginLlm.DataChannelTokenType.PracticeSession);
|
|
244
|
+
isCaptionBoxOn = _this3.webex.internal.voicea.getIsCaptionBoxOn();
|
|
245
|
+
if (practiceSessionDatachannelUrl) {
|
|
246
|
+
_context3.next = 3;
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
return _context3.abrupt("return", undefined);
|
|
250
|
+
case 3:
|
|
251
|
+
if (!_this3.webex.internal.llm.isConnected(_constants.LLM_PRACTICE_SESSION)) {
|
|
252
|
+
_context3.next = 5;
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
if (!(
|
|
256
|
+
// @ts-ignore - Fix type
|
|
257
|
+
url === _this3.webex.internal.llm.getLocusUrl(_constants.LLM_PRACTICE_SESSION) &&
|
|
258
|
+
// @ts-ignore - Fix type
|
|
259
|
+
practiceSessionDatachannelUrl === _this3.webex.internal.llm.getDatachannelUrl(_constants.LLM_PRACTICE_SESSION))) {
|
|
260
|
+
_context3.next = 4;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
return _context3.abrupt("return", undefined);
|
|
264
|
+
case 4:
|
|
265
|
+
_context3.next = 5;
|
|
266
|
+
return _this3.cleanupPSDataChannel();
|
|
267
|
+
case 5:
|
|
268
|
+
// Ensure the default session data channel is connected before connecting the practice session.
|
|
269
|
+
// Subscribe before checking isConnected() to avoid a race where the 'online' event fires
|
|
270
|
+
// between the check and the subscription — Mercury does not replay missed events.
|
|
271
|
+
if (!_this3._pendingOnlineListener) {
|
|
272
|
+
_onDefaultSessionConnected = function onDefaultSessionConnected() {
|
|
273
|
+
_this3._pendingOnlineListener = null;
|
|
274
|
+
// @ts-ignore - Fix type
|
|
275
|
+
_this3.webex.internal.llm.off('online', _onDefaultSessionConnected);
|
|
276
|
+
_this3.updatePSDataChannel();
|
|
277
|
+
};
|
|
278
|
+
_this3._pendingOnlineListener = _onDefaultSessionConnected;
|
|
279
|
+
// @ts-ignore - Fix type
|
|
280
|
+
_this3.webex.internal.llm.on('online', _onDefaultSessionConnected);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// @ts-ignore - Fix type
|
|
284
|
+
if (_this3.webex.internal.llm.isConnected()) {
|
|
285
|
+
_context3.next = 6;
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
_loggerProxy.default.logger.info('Webinar:index#updatePSDataChannel --> default session not yet connected, deferring practice session connect.');
|
|
289
|
+
return _context3.abrupt("return", undefined);
|
|
290
|
+
case 6:
|
|
291
|
+
// Default session is already connected — cancel the pending listener and proceed
|
|
292
|
+
if (_this3._pendingOnlineListener) {
|
|
293
|
+
// @ts-ignore - Fix type
|
|
294
|
+
_this3.webex.internal.llm.off('online', _this3._pendingOnlineListener);
|
|
295
|
+
_this3._pendingOnlineListener = null;
|
|
296
|
+
}
|
|
297
|
+
_context3.next = 7;
|
|
298
|
+
return _this3.ensurePracticeSessionDatachannelToken(meeting);
|
|
299
|
+
case 7:
|
|
300
|
+
refreshedPracticeSessionToken = _context3.sent;
|
|
301
|
+
latestPracticeSessionDatachannelUrl = (0, _lodash.get)(meeting, 'locusInfo.info.practiceSessionDatachannelUrl');
|
|
302
|
+
isStillPracticeSession = (meeting === null || meeting === void 0 ? void 0 : meeting.isJoined()) && _this3.isJoinPracticeSessionDataChannel(); // Skip stale invocations after async refresh to avoid reconnecting a session
|
|
303
|
+
// that was already updated/cleaned by a newer state transition.
|
|
304
|
+
if (!(invocationSequence !== _this3._updatePSDataChannelSequence || !isStillPracticeSession || !latestPracticeSessionDatachannelUrl || latestPracticeSessionDatachannelUrl !== practiceSessionDatachannelUrl)) {
|
|
305
|
+
_context3.next = 8;
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
return _context3.abrupt("return", undefined);
|
|
309
|
+
case 8:
|
|
310
|
+
if (refreshedPracticeSessionToken) {
|
|
311
|
+
practiceSessionDatachannelToken = refreshedPracticeSessionToken;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// @ts-ignore - Fix type
|
|
315
|
+
return _context3.abrupt("return", _this3.webex.internal.llm.registerAndConnect(url, practiceSessionDatachannelUrl, practiceSessionDatachannelToken, _constants.LLM_PRACTICE_SESSION).then(function (registerAndConnectResult) {
|
|
316
|
+
var _this3$webex$internal, _this3$webex$internal2;
|
|
317
|
+
// @ts-ignore - Fix type
|
|
318
|
+
_this3.webex.internal.llm.off("event:relay.event:".concat(_constants.LLM_PRACTICE_SESSION), meeting === null || meeting === void 0 ? void 0 : meeting.processRelayEvent);
|
|
319
|
+
// @ts-ignore - Fix type
|
|
320
|
+
_this3.webex.internal.llm.on("event:relay.event:".concat(_constants.LLM_PRACTICE_SESSION), meeting === null || meeting === void 0 ? void 0 : meeting.processRelayEvent);
|
|
321
|
+
// @ts-ignore - Fix type
|
|
322
|
+
(_this3$webex$internal = _this3.webex.internal.voicea) === null || _this3$webex$internal === void 0 ? void 0 : (_this3$webex$internal2 = _this3$webex$internal.announce) === null || _this3$webex$internal2 === void 0 ? void 0 : _this3$webex$internal2.call(_this3$webex$internal);
|
|
323
|
+
if (isCaptionBoxOn) {
|
|
324
|
+
_this3.webex.internal.voicea.updateSubchannelSubscriptions({
|
|
325
|
+
subscribe: ['transcription']
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
_loggerProxy.default.logger.info("Webinar:index#updatePSDataChannel --> enabled to receive relay events for default session for ".concat(_constants.LLM_PRACTICE_SESSION, "!"));
|
|
329
|
+
return _promise.default.resolve(registerAndConnectResult);
|
|
330
|
+
}));
|
|
331
|
+
case 9:
|
|
332
|
+
case "end":
|
|
333
|
+
return _context3.stop();
|
|
334
|
+
}
|
|
335
|
+
}, _callee3);
|
|
336
|
+
}))();
|
|
337
|
+
},
|
|
120
338
|
/**
|
|
121
339
|
* start or stop practice session for webinar
|
|
122
340
|
* @param {boolean} enabled
|
|
@@ -143,6 +361,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
143
361
|
*/
|
|
144
362
|
updatePracticeSessionStatus: function updatePracticeSessionStatus(payload) {
|
|
145
363
|
this.set('practiceSessionEnabled', !!(payload !== null && payload !== void 0 && payload.enabled));
|
|
364
|
+
this.updatePSDataChannel().then(function () {});
|
|
146
365
|
},
|
|
147
366
|
/**
|
|
148
367
|
* start webcast mode for webinar
|
|
@@ -151,33 +370,33 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
151
370
|
* @returns {Promise}
|
|
152
371
|
*/
|
|
153
372
|
startWebcast: function startWebcast(meeting, layout) {
|
|
154
|
-
var
|
|
155
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
156
|
-
var
|
|
157
|
-
return _regenerator.default.wrap(function (
|
|
158
|
-
while (1) switch (
|
|
373
|
+
var _this4 = this;
|
|
374
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
375
|
+
var _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
376
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
377
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
159
378
|
case 0:
|
|
160
379
|
if (meeting) {
|
|
161
|
-
|
|
380
|
+
_context4.next = 1;
|
|
162
381
|
break;
|
|
163
382
|
}
|
|
164
383
|
_loggerProxy.default.logger.error("Meeting:webinar#startWebcast failed --> meeting parameter : ".concat(meeting));
|
|
165
384
|
throw new Error('Meeting parameter does not meet expectations');
|
|
166
385
|
case 1:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
return
|
|
386
|
+
_t2 = _this4;
|
|
387
|
+
_t3 = _constants.HTTP_VERBS.PUT;
|
|
388
|
+
_t4 = "".concat(_this4.webcastInstanceUrl, "/streaming");
|
|
389
|
+
_t5 = _defineProperty2.default;
|
|
390
|
+
_context4.next = 2;
|
|
391
|
+
return _this4.webex.credentials.getUserToken();
|
|
173
392
|
case 2:
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
authorization:
|
|
178
|
-
trackingId:
|
|
393
|
+
_t6 = _context4.sent;
|
|
394
|
+
_t7 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
395
|
+
_t8 = _t5({
|
|
396
|
+
authorization: _t6,
|
|
397
|
+
trackingId: _t7
|
|
179
398
|
}, _constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON);
|
|
180
|
-
|
|
399
|
+
_t9 = {
|
|
181
400
|
action: 'start',
|
|
182
401
|
meetingInfo: {
|
|
183
402
|
locusId: meeting.locusId,
|
|
@@ -185,20 +404,20 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
185
404
|
},
|
|
186
405
|
layout: layout
|
|
187
406
|
};
|
|
188
|
-
return
|
|
189
|
-
method:
|
|
190
|
-
uri:
|
|
191
|
-
headers:
|
|
192
|
-
body:
|
|
407
|
+
return _context4.abrupt("return", _t2.request.call(_t2, {
|
|
408
|
+
method: _t3,
|
|
409
|
+
uri: _t4,
|
|
410
|
+
headers: _t8,
|
|
411
|
+
body: _t9
|
|
193
412
|
}).catch(function (error) {
|
|
194
413
|
_loggerProxy.default.logger.error('Meeting:webinar#startWebcast failed', error);
|
|
195
414
|
throw error;
|
|
196
415
|
}));
|
|
197
416
|
case 3:
|
|
198
417
|
case "end":
|
|
199
|
-
return
|
|
418
|
+
return _context4.stop();
|
|
200
419
|
}
|
|
201
|
-
},
|
|
420
|
+
}, _callee4);
|
|
202
421
|
}))();
|
|
203
422
|
},
|
|
204
423
|
/**
|
|
@@ -206,42 +425,42 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
206
425
|
* @returns {Promise}
|
|
207
426
|
*/
|
|
208
427
|
stopWebcast: function stopWebcast() {
|
|
209
|
-
var
|
|
210
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
211
|
-
var
|
|
212
|
-
return _regenerator.default.wrap(function (
|
|
213
|
-
while (1) switch (
|
|
428
|
+
var _this5 = this;
|
|
429
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
430
|
+
var _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
431
|
+
return _regenerator.default.wrap(function (_context5) {
|
|
432
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
214
433
|
case 0:
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
return
|
|
434
|
+
_t0 = _this5;
|
|
435
|
+
_t1 = _constants.HTTP_VERBS.PUT;
|
|
436
|
+
_t10 = "".concat(_this5.webcastInstanceUrl, "/streaming");
|
|
437
|
+
_t11 = _defineProperty2.default;
|
|
438
|
+
_context5.next = 1;
|
|
439
|
+
return _this5.webex.credentials.getUserToken();
|
|
221
440
|
case 1:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
authorization:
|
|
226
|
-
trackingId:
|
|
441
|
+
_t12 = _context5.sent;
|
|
442
|
+
_t13 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
443
|
+
_t14 = _t11({
|
|
444
|
+
authorization: _t12,
|
|
445
|
+
trackingId: _t13
|
|
227
446
|
}, _constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON);
|
|
228
|
-
|
|
447
|
+
_t15 = {
|
|
229
448
|
action: 'stop'
|
|
230
449
|
};
|
|
231
|
-
return
|
|
232
|
-
method:
|
|
233
|
-
uri:
|
|
234
|
-
headers:
|
|
235
|
-
body:
|
|
450
|
+
return _context5.abrupt("return", _t0.request.call(_t0, {
|
|
451
|
+
method: _t1,
|
|
452
|
+
uri: _t10,
|
|
453
|
+
headers: _t14,
|
|
454
|
+
body: _t15
|
|
236
455
|
}).catch(function (error) {
|
|
237
456
|
_loggerProxy.default.logger.error('Meeting:webinar#stopWebcast failed', error);
|
|
238
457
|
throw error;
|
|
239
458
|
}));
|
|
240
459
|
case 2:
|
|
241
460
|
case "end":
|
|
242
|
-
return
|
|
461
|
+
return _context5.stop();
|
|
243
462
|
}
|
|
244
|
-
},
|
|
463
|
+
}, _callee5);
|
|
245
464
|
}))();
|
|
246
465
|
},
|
|
247
466
|
/**
|
|
@@ -249,37 +468,37 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
249
468
|
* @returns {Promise}
|
|
250
469
|
*/
|
|
251
470
|
queryWebcastLayout: function queryWebcastLayout() {
|
|
252
|
-
var
|
|
253
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
254
|
-
var
|
|
255
|
-
return _regenerator.default.wrap(function (
|
|
256
|
-
while (1) switch (
|
|
471
|
+
var _this6 = this;
|
|
472
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
473
|
+
var _t16, _t17, _t18, _t19, _t20, _t21;
|
|
474
|
+
return _regenerator.default.wrap(function (_context6) {
|
|
475
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
257
476
|
case 0:
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return
|
|
477
|
+
_t16 = _this6;
|
|
478
|
+
_t17 = _constants.HTTP_VERBS.GET;
|
|
479
|
+
_t18 = "".concat(_this6.webcastInstanceUrl, "/layout");
|
|
480
|
+
_context6.next = 1;
|
|
481
|
+
return _this6.webex.credentials.getUserToken();
|
|
263
482
|
case 1:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
authorization:
|
|
268
|
-
trackingId:
|
|
483
|
+
_t19 = _context6.sent;
|
|
484
|
+
_t20 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
485
|
+
_t21 = {
|
|
486
|
+
authorization: _t19,
|
|
487
|
+
trackingId: _t20
|
|
269
488
|
};
|
|
270
|
-
return
|
|
271
|
-
method:
|
|
272
|
-
uri:
|
|
273
|
-
headers:
|
|
489
|
+
return _context6.abrupt("return", _t16.request.call(_t16, {
|
|
490
|
+
method: _t17,
|
|
491
|
+
uri: _t18,
|
|
492
|
+
headers: _t21
|
|
274
493
|
}).catch(function (error) {
|
|
275
494
|
_loggerProxy.default.logger.error('Meeting:webinar#queryWebcastLayout failed', error);
|
|
276
495
|
throw error;
|
|
277
496
|
}));
|
|
278
497
|
case 2:
|
|
279
498
|
case "end":
|
|
280
|
-
return
|
|
499
|
+
return _context6.stop();
|
|
281
500
|
}
|
|
282
|
-
},
|
|
501
|
+
}, _callee6);
|
|
283
502
|
}))();
|
|
284
503
|
},
|
|
285
504
|
/**
|
|
@@ -288,84 +507,83 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
288
507
|
* @returns {Promise}
|
|
289
508
|
*/
|
|
290
509
|
updateWebcastLayout: function updateWebcastLayout(layout) {
|
|
291
|
-
var
|
|
292
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
293
|
-
var
|
|
294
|
-
return _regenerator.default.wrap(function (
|
|
295
|
-
while (1) switch (
|
|
510
|
+
var _this7 = this;
|
|
511
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
512
|
+
var _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29;
|
|
513
|
+
return _regenerator.default.wrap(function (_context7) {
|
|
514
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
296
515
|
case 0:
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
return
|
|
516
|
+
_t22 = _this7;
|
|
517
|
+
_t23 = _constants.HTTP_VERBS.PUT;
|
|
518
|
+
_t24 = "".concat(_this7.webcastInstanceUrl, "/layout");
|
|
519
|
+
_t25 = _defineProperty2.default;
|
|
520
|
+
_context7.next = 1;
|
|
521
|
+
return _this7.webex.credentials.getUserToken();
|
|
303
522
|
case 1:
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
authorization:
|
|
308
|
-
trackingId:
|
|
523
|
+
_t26 = _context7.sent;
|
|
524
|
+
_t27 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
525
|
+
_t28 = _t25({
|
|
526
|
+
authorization: _t26,
|
|
527
|
+
trackingId: _t27
|
|
309
528
|
}, _constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON);
|
|
310
|
-
|
|
529
|
+
_t29 = {
|
|
311
530
|
videoLayout: layout.videoLayout,
|
|
312
531
|
contentLayout: layout.contentLayout,
|
|
313
532
|
syncStageLayout: layout.syncStageLayout,
|
|
314
533
|
syncStageInMeeting: layout.syncStageInMeeting
|
|
315
534
|
};
|
|
316
|
-
return
|
|
317
|
-
method:
|
|
318
|
-
uri:
|
|
319
|
-
headers:
|
|
320
|
-
body:
|
|
535
|
+
return _context7.abrupt("return", _t22.request.call(_t22, {
|
|
536
|
+
method: _t23,
|
|
537
|
+
uri: _t24,
|
|
538
|
+
headers: _t28,
|
|
539
|
+
body: _t29
|
|
321
540
|
}).catch(function (error) {
|
|
322
541
|
_loggerProxy.default.logger.error('Meeting:webinar#updateWebcastLayout failed', error);
|
|
323
542
|
throw error;
|
|
324
543
|
}));
|
|
325
544
|
case 2:
|
|
326
545
|
case "end":
|
|
327
|
-
return
|
|
546
|
+
return _context7.stop();
|
|
328
547
|
}
|
|
329
|
-
},
|
|
548
|
+
}, _callee7);
|
|
330
549
|
}))();
|
|
331
550
|
},
|
|
332
551
|
/**
|
|
333
552
|
* view all webcast attendees
|
|
334
|
-
* @param {string} queryString
|
|
335
553
|
* @returns {Promise}
|
|
336
554
|
*/
|
|
337
555
|
viewAllWebcastAttendees: function viewAllWebcastAttendees() {
|
|
338
|
-
var
|
|
339
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
340
|
-
var
|
|
341
|
-
return _regenerator.default.wrap(function (
|
|
342
|
-
while (1) switch (
|
|
556
|
+
var _this8 = this;
|
|
557
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
558
|
+
var _t30, _t31, _t32, _t33, _t34, _t35;
|
|
559
|
+
return _regenerator.default.wrap(function (_context8) {
|
|
560
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
343
561
|
case 0:
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
return
|
|
562
|
+
_t30 = _this8;
|
|
563
|
+
_t31 = _constants.HTTP_VERBS.GET;
|
|
564
|
+
_t32 = "".concat(_this8.webcastInstanceUrl, "/attendees");
|
|
565
|
+
_context8.next = 1;
|
|
566
|
+
return _this8.webex.credentials.getUserToken();
|
|
349
567
|
case 1:
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
authorization:
|
|
354
|
-
trackingId:
|
|
568
|
+
_t33 = _context8.sent;
|
|
569
|
+
_t34 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
570
|
+
_t35 = {
|
|
571
|
+
authorization: _t33,
|
|
572
|
+
trackingId: _t34
|
|
355
573
|
};
|
|
356
|
-
return
|
|
357
|
-
method:
|
|
358
|
-
uri:
|
|
359
|
-
headers:
|
|
574
|
+
return _context8.abrupt("return", _t30.request.call(_t30, {
|
|
575
|
+
method: _t31,
|
|
576
|
+
uri: _t32,
|
|
577
|
+
headers: _t35
|
|
360
578
|
}).catch(function (error) {
|
|
361
579
|
_loggerProxy.default.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);
|
|
362
580
|
throw error;
|
|
363
581
|
}));
|
|
364
582
|
case 2:
|
|
365
583
|
case "end":
|
|
366
|
-
return
|
|
584
|
+
return _context8.stop();
|
|
367
585
|
}
|
|
368
|
-
},
|
|
586
|
+
}, _callee8);
|
|
369
587
|
}))();
|
|
370
588
|
},
|
|
371
589
|
/**
|
|
@@ -375,38 +593,38 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
375
593
|
*/
|
|
376
594
|
searchWebcastAttendees: function searchWebcastAttendees() {
|
|
377
595
|
var _arguments = arguments,
|
|
378
|
-
|
|
379
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
380
|
-
var queryString,
|
|
381
|
-
return _regenerator.default.wrap(function (
|
|
382
|
-
while (1) switch (
|
|
596
|
+
_this9 = this;
|
|
597
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
598
|
+
var queryString, _t36, _t37, _t38, _t39, _t40, _t41;
|
|
599
|
+
return _regenerator.default.wrap(function (_context9) {
|
|
600
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
383
601
|
case 0:
|
|
384
602
|
queryString = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : '';
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
return
|
|
603
|
+
_t36 = _this9;
|
|
604
|
+
_t37 = _constants.HTTP_VERBS.GET;
|
|
605
|
+
_t38 = "".concat(_this9.webcastInstanceUrl, "/attendees?keyword=").concat(encodeURIComponent(queryString));
|
|
606
|
+
_context9.next = 1;
|
|
607
|
+
return _this9.webex.credentials.getUserToken();
|
|
390
608
|
case 1:
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
authorization:
|
|
395
|
-
trackingId:
|
|
609
|
+
_t39 = _context9.sent;
|
|
610
|
+
_t40 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
611
|
+
_t41 = {
|
|
612
|
+
authorization: _t39,
|
|
613
|
+
trackingId: _t40
|
|
396
614
|
};
|
|
397
|
-
return
|
|
398
|
-
method:
|
|
399
|
-
uri:
|
|
400
|
-
headers:
|
|
615
|
+
return _context9.abrupt("return", _t36.request.call(_t36, {
|
|
616
|
+
method: _t37,
|
|
617
|
+
uri: _t38,
|
|
618
|
+
headers: _t41
|
|
401
619
|
}).catch(function (error) {
|
|
402
620
|
_loggerProxy.default.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);
|
|
403
621
|
throw error;
|
|
404
622
|
}));
|
|
405
623
|
case 2:
|
|
406
624
|
case "end":
|
|
407
|
-
return
|
|
625
|
+
return _context9.stop();
|
|
408
626
|
}
|
|
409
|
-
},
|
|
627
|
+
}, _callee9);
|
|
410
628
|
}))();
|
|
411
629
|
},
|
|
412
630
|
/**
|
|
@@ -415,40 +633,97 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
415
633
|
* @returns {Promise}
|
|
416
634
|
*/
|
|
417
635
|
expelWebcastAttendee: function expelWebcastAttendee(participantId) {
|
|
418
|
-
var
|
|
419
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
420
|
-
var
|
|
421
|
-
return _regenerator.default.wrap(function (
|
|
422
|
-
while (1) switch (
|
|
636
|
+
var _this0 = this;
|
|
637
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
|
|
638
|
+
var _t42, _t43, _t44, _t45, _t46, _t47;
|
|
639
|
+
return _regenerator.default.wrap(function (_context0) {
|
|
640
|
+
while (1) switch (_context0.prev = _context0.next) {
|
|
423
641
|
case 0:
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
return
|
|
642
|
+
_t42 = _this0;
|
|
643
|
+
_t43 = _constants.HTTP_VERBS.DELETE;
|
|
644
|
+
_t44 = "".concat(_this0.webcastInstanceUrl, "/attendees/").concat(participantId);
|
|
645
|
+
_context0.next = 1;
|
|
646
|
+
return _this0.webex.credentials.getUserToken();
|
|
429
647
|
case 1:
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
authorization:
|
|
434
|
-
trackingId:
|
|
648
|
+
_t45 = _context0.sent;
|
|
649
|
+
_t46 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
650
|
+
_t47 = {
|
|
651
|
+
authorization: _t45,
|
|
652
|
+
trackingId: _t46
|
|
435
653
|
};
|
|
436
|
-
return
|
|
437
|
-
method:
|
|
438
|
-
uri:
|
|
439
|
-
headers:
|
|
654
|
+
return _context0.abrupt("return", _t42.request.call(_t42, {
|
|
655
|
+
method: _t43,
|
|
656
|
+
uri: _t44,
|
|
657
|
+
headers: _t47
|
|
440
658
|
}).catch(function (error) {
|
|
441
659
|
_loggerProxy.default.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);
|
|
442
660
|
throw error;
|
|
443
661
|
}));
|
|
444
662
|
case 2:
|
|
445
663
|
case "end":
|
|
446
|
-
return
|
|
664
|
+
return _context0.stop();
|
|
447
665
|
}
|
|
448
|
-
},
|
|
666
|
+
}, _callee0);
|
|
667
|
+
}))();
|
|
668
|
+
},
|
|
669
|
+
/**
|
|
670
|
+
* search large scale webinar attendees
|
|
671
|
+
* @param {object} payload
|
|
672
|
+
* @param {string} payload.queryString
|
|
673
|
+
* @param {number} payload.limit
|
|
674
|
+
* @param {string} payload.next
|
|
675
|
+
* @returns {Promise}
|
|
676
|
+
*/
|
|
677
|
+
searchLargeScaleWebinarAttendees: function searchLargeScaleWebinarAttendees(payload) {
|
|
678
|
+
var _this1 = this;
|
|
679
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
|
|
680
|
+
var _payload$limit, _meeting$locusInfo3, _meeting$locusInfo3$l, _meeting$locusInfo3$l2, _meeting$locusInfo3$l3;
|
|
681
|
+
var meeting, rawParams, attendeeSearchUrl, _t48, _t49, _t50, _t51, _t52, _t53;
|
|
682
|
+
return _regenerator.default.wrap(function (_context1) {
|
|
683
|
+
while (1) switch (_context1.prev = _context1.next) {
|
|
684
|
+
case 0:
|
|
685
|
+
meeting = _this1.webex.meetings.getMeetingByType(_constants._ID_, _this1.meetingId);
|
|
686
|
+
rawParams = {
|
|
687
|
+
search_text: payload === null || payload === void 0 ? void 0 : payload.queryString,
|
|
688
|
+
limit: (_payload$limit = payload === null || payload === void 0 ? void 0 : payload.limit) !== null && _payload$limit !== void 0 ? _payload$limit : _constants.DEFAULT_LARGE_SCALE_WEBINAR_ATTENDEE_SEARCH_LIMIT,
|
|
689
|
+
next: payload === null || payload === void 0 ? void 0 : payload.next
|
|
690
|
+
};
|
|
691
|
+
attendeeSearchUrl = meeting === null || meeting === void 0 ? void 0 : (_meeting$locusInfo3 = meeting.locusInfo) === null || _meeting$locusInfo3 === void 0 ? void 0 : (_meeting$locusInfo3$l = _meeting$locusInfo3.links) === null || _meeting$locusInfo3$l === void 0 ? void 0 : (_meeting$locusInfo3$l2 = _meeting$locusInfo3$l.resources) === null || _meeting$locusInfo3$l2 === void 0 ? void 0 : (_meeting$locusInfo3$l3 = _meeting$locusInfo3$l2.attendeeSearch) === null || _meeting$locusInfo3$l3 === void 0 ? void 0 : _meeting$locusInfo3$l3.url;
|
|
692
|
+
if (attendeeSearchUrl) {
|
|
693
|
+
_context1.next = 1;
|
|
694
|
+
break;
|
|
695
|
+
}
|
|
696
|
+
_loggerProxy.default.logger.error("Meeting:webinar5k#searchLargeScaleWebinarAttendees failed");
|
|
697
|
+
throw new Error('Meeting:webinar5k#Attendee search url is not available');
|
|
698
|
+
case 1:
|
|
699
|
+
_t48 = _this1;
|
|
700
|
+
_t49 = _constants.HTTP_VERBS.GET;
|
|
701
|
+
_t50 = "".concat(attendeeSearchUrl, "?").concat(new URLSearchParams((0, _utils.sanitizeParams)(rawParams)).toString());
|
|
702
|
+
_context1.next = 2;
|
|
703
|
+
return _this1.webex.credentials.getUserToken();
|
|
704
|
+
case 2:
|
|
705
|
+
_t51 = _context1.sent;
|
|
706
|
+
_t52 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
707
|
+
_t53 = {
|
|
708
|
+
authorization: _t51,
|
|
709
|
+
trackingId: _t52
|
|
710
|
+
};
|
|
711
|
+
return _context1.abrupt("return", _t48.request.call(_t48, {
|
|
712
|
+
method: _t49,
|
|
713
|
+
uri: _t50,
|
|
714
|
+
headers: _t53
|
|
715
|
+
}).catch(function (error) {
|
|
716
|
+
_loggerProxy.default.logger.error('Meeting:webinar5k#searchLargeScaleWebinarAttendees failed', error);
|
|
717
|
+
throw error;
|
|
718
|
+
}));
|
|
719
|
+
case 3:
|
|
720
|
+
case "end":
|
|
721
|
+
return _context1.stop();
|
|
722
|
+
}
|
|
723
|
+
}, _callee1);
|
|
449
724
|
}))();
|
|
450
725
|
},
|
|
451
|
-
version: "3.
|
|
726
|
+
version: "3.12.0-mobius-socket.1"
|
|
452
727
|
});
|
|
453
728
|
var _default = exports.default = Webinar;
|
|
454
729
|
//# sourceMappingURL=index.js.map
|