@webex/plugin-meetings 3.12.0-next.65 → 3.12.0-next.67
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 +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +24 -4
- package/dist/constants.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/dataChannelAuthToken.js +75 -15
- package/dist/interceptors/dataChannelAuthToken.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/interpretation.types.js +7 -0
- package/dist/interpretation/interpretation.types.js.map +1 -0
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +738 -679
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +5 -2
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +1 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/types/constants.d.ts +7 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interpretation/interpretation.types.d.ts +10 -0
- package/dist/types/meeting/index.d.ts +2 -2
- package/dist/types/meeting/request.d.ts +1 -0
- package/dist/webinar/index.js +219 -146
- package/dist/webinar/index.js.map +1 -1
- package/package.json +3 -3
- package/src/constants.ts +8 -1
- package/src/index.ts +1 -0
- package/src/interceptors/dataChannelAuthToken.ts +88 -12
- package/src/interpretation/index.ts +2 -1
- package/src/interpretation/interpretation.types.ts +11 -0
- package/src/meeting/index.ts +111 -49
- package/src/meeting/request.ts +11 -0
- package/src/meeting/util.ts +1 -0
- package/src/webinar/index.ts +114 -16
- package/test/unit/spec/interceptors/dataChannelAuthToken.ts +196 -0
- package/test/unit/spec/meeting/index.js +139 -23
- package/test/unit/spec/meeting/request.js +12 -0
- package/test/unit/spec/webinar/index.ts +197 -14
package/dist/webinar/index.js
CHANGED
|
@@ -13,7 +13,6 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/
|
|
|
13
13
|
var _webexCore = require("@webex/webex-core");
|
|
14
14
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
15
15
|
var _lodash = require("lodash");
|
|
16
|
-
var _internalPluginLlm = require("@webex/internal-plugin-llm");
|
|
17
16
|
var _constants = require("../constants");
|
|
18
17
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
19
18
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
@@ -170,24 +169,47 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
170
169
|
cleanupPSDataChannel: function cleanupPSDataChannel() {
|
|
171
170
|
var _this = this;
|
|
172
171
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
173
|
-
var _i, _PS_LLM_EVENTS, _PS_LLM_EVENTS$_i, event, listenerKey;
|
|
172
|
+
var _this$webex$internal$, isOwner, disconnected, _this$webex$internal$2, _this$webex$internal$3, _i, _PS_LLM_EVENTS, _PS_LLM_EVENTS$_i, event, listenerKey, _t;
|
|
174
173
|
return _regenerator.default.wrap(function (_context) {
|
|
175
174
|
while (1) switch (_context.prev = _context.next) {
|
|
176
175
|
case 0:
|
|
176
|
+
_this$webex$internal$ = _this.webex.internal.llm.resolveSessionOwnership(_this.meetingId, _constants.LLM_PRACTICE_SESSION), isOwner = _this$webex$internal$.isOwner;
|
|
177
177
|
_this.llmListeners = _this.llmListeners || {};
|
|
178
178
|
if (_this._pendingOnlineListener) {
|
|
179
179
|
// @ts-ignore - Fix type
|
|
180
180
|
_this.webex.internal.llm.off('online', _this._pendingOnlineListener);
|
|
181
181
|
_this._pendingOnlineListener = null;
|
|
182
182
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
_context.next = 1;
|
|
183
|
+
_context.prev = 1;
|
|
184
|
+
_context.next = 2;
|
|
186
185
|
return _this.webex.internal.llm.disconnectLLM({
|
|
187
186
|
code: 3050,
|
|
188
187
|
reason: 'done (permanent)'
|
|
189
|
-
}, _constants.LLM_PRACTICE_SESSION);
|
|
190
|
-
case
|
|
188
|
+
}, _constants.LLM_PRACTICE_SESSION, _this.meetingId);
|
|
189
|
+
case 2:
|
|
190
|
+
disconnected = _context.sent;
|
|
191
|
+
if (!disconnected) {
|
|
192
|
+
_loggerProxy.default.logger.info("Webinar:index#cleanupPSDataChannel --> skipping disconnect; practice-session LLM is not owned by meeting ".concat(_this.meetingId));
|
|
193
|
+
}
|
|
194
|
+
_context.next = 4;
|
|
195
|
+
break;
|
|
196
|
+
case 3:
|
|
197
|
+
_context.prev = 3;
|
|
198
|
+
_t = _context["catch"](1);
|
|
199
|
+
// disconnectLLM clears ownership only on success; release a stale owner
|
|
200
|
+
// tag here so other meeting instances can reclaim practice-session LLM.
|
|
201
|
+
if (isOwner) {
|
|
202
|
+
// @ts-ignore - Fix type
|
|
203
|
+
(_this$webex$internal$2 = (_this$webex$internal$3 = _this.webex.internal.llm).setOwnerMeetingId) === null || _this$webex$internal$2 === void 0 ? void 0 : _this$webex$internal$2.call(_this$webex$internal$3, undefined, _constants.LLM_PRACTICE_SESSION);
|
|
204
|
+
}
|
|
205
|
+
throw _t;
|
|
206
|
+
case 4:
|
|
207
|
+
_context.prev = 4;
|
|
208
|
+
if (_this._practiceSessionRelayListener) {
|
|
209
|
+
// @ts-ignore - Fix type
|
|
210
|
+
_this.webex.internal.llm.off("event:relay.event:".concat(_constants.LLM_PRACTICE_SESSION), _this._practiceSessionRelayListener);
|
|
211
|
+
}
|
|
212
|
+
_this._practiceSessionRelayListener = null;
|
|
191
213
|
for (_i = 0, _PS_LLM_EVENTS = PS_LLM_EVENTS; _i < _PS_LLM_EVENTS.length; _i++) {
|
|
192
214
|
_PS_LLM_EVENTS$_i = _PS_LLM_EVENTS[_i], event = _PS_LLM_EVENTS$_i.event, listenerKey = _PS_LLM_EVENTS$_i.listenerKey;
|
|
193
215
|
if (_this.llmListeners[listenerKey]) {
|
|
@@ -196,11 +218,12 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
196
218
|
_this.llmListeners[listenerKey] = null;
|
|
197
219
|
}
|
|
198
220
|
}
|
|
199
|
-
|
|
221
|
+
return _context.finish(4);
|
|
222
|
+
case 5:
|
|
200
223
|
case "end":
|
|
201
224
|
return _context.stop();
|
|
202
225
|
}
|
|
203
|
-
}, _callee);
|
|
226
|
+
}, _callee, null, [[1, 3, 4, 5]]);
|
|
204
227
|
}))();
|
|
205
228
|
},
|
|
206
229
|
/**
|
|
@@ -213,7 +236,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
213
236
|
ensurePracticeSessionDatachannelToken: function ensurePracticeSessionDatachannelToken(meeting) {
|
|
214
237
|
var _this2 = this;
|
|
215
238
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
216
|
-
var isDataChannelTokenEnabled, cachedToken, _refreshResponse$body, refreshResponse, _ref2, datachannelToken, dataChannelTokenType,
|
|
239
|
+
var isDataChannelTokenEnabled, cachedToken, _refreshResponse$body, refreshResponse, _ref2, datachannelToken, dataChannelTokenType, _t2;
|
|
217
240
|
return _regenerator.default.wrap(function (_context2) {
|
|
218
241
|
while (1) switch (_context2.prev = _context2.next) {
|
|
219
242
|
case 0:
|
|
@@ -228,7 +251,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
228
251
|
return _context2.abrupt("return", undefined);
|
|
229
252
|
case 2:
|
|
230
253
|
// @ts-ignore
|
|
231
|
-
cachedToken = _this2.webex.internal.llm.getDatachannelToken(
|
|
254
|
+
cachedToken = _this2.webex.internal.llm.getDatachannelToken(_constants.LLM_PRACTICE_SESSION, _this2.meetingId);
|
|
232
255
|
if (!cachedToken) {
|
|
233
256
|
_context2.next = 3;
|
|
234
257
|
break;
|
|
@@ -248,12 +271,12 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
248
271
|
return _context2.abrupt("return", undefined);
|
|
249
272
|
case 5:
|
|
250
273
|
// @ts-ignore
|
|
251
|
-
_this2.webex.internal.llm.setDatachannelToken(datachannelToken, dataChannelTokenType ||
|
|
274
|
+
_this2.webex.internal.llm.setDatachannelToken(datachannelToken, dataChannelTokenType || _constants.LLM_PRACTICE_SESSION, _this2.meetingId);
|
|
252
275
|
return _context2.abrupt("return", datachannelToken);
|
|
253
276
|
case 6:
|
|
254
277
|
_context2.prev = 6;
|
|
255
|
-
|
|
256
|
-
_loggerProxy.default.logger.warn("Webinar:index#ensurePracticeSessionDatachannelToken --> failed to proactively refresh practice-session token: ".concat((
|
|
278
|
+
_t2 = _context2["catch"](3);
|
|
279
|
+
_loggerProxy.default.logger.warn("Webinar:index#ensurePracticeSessionDatachannelToken --> failed to proactively refresh practice-session token: ".concat((_t2 === null || _t2 === void 0 ? void 0 : _t2.message) || String(_t2)));
|
|
257
280
|
return _context2.abrupt("return", undefined);
|
|
258
281
|
case 7:
|
|
259
282
|
case "end":
|
|
@@ -270,7 +293,8 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
270
293
|
updatePSDataChannel: function updatePSDataChannel() {
|
|
271
294
|
var _this3 = this;
|
|
272
295
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
273
|
-
var
|
|
296
|
+
var _this3$webex$internal3, _this3$webex$internal4;
|
|
297
|
+
var invocationSequence, meeting, isPracticeSession, _this3$webex$internal, currentOwner, isOwner, _ref3, _ref3$url, url, _ref3$info, _ref3$info2, _ref3$info2$practiceS, practiceSessionDatachannelUrl, practiceSessionDatachannelToken, isCaptionBoxOn, _onDefaultSessionConnected, refreshedPracticeSessionToken, latestPracticeSessionDatachannelUrl, isStillPracticeSession, _this3$webex$internal2, currentOwnerBeforeConnect, isOwnerBeforeConnect;
|
|
274
298
|
return _regenerator.default.wrap(function (_context3) {
|
|
275
299
|
while (1) switch (_context3.prev = _context3.next) {
|
|
276
300
|
case 0:
|
|
@@ -279,6 +303,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
279
303
|
invocationSequence = _this3._updatePSDataChannelSequence;
|
|
280
304
|
meeting = _this3.getValidatedWebinarMeeting();
|
|
281
305
|
isPracticeSession = (meeting === null || meeting === void 0 ? void 0 : meeting.isJoined()) && _this3.isJoinPracticeSessionDataChannel();
|
|
306
|
+
_this3$webex$internal = _this3.webex.internal.llm.resolveSessionOwnership(_this3.meetingId, _constants.LLM_PRACTICE_SESSION), currentOwner = _this3$webex$internal.currentOwner, isOwner = _this3$webex$internal.isOwner;
|
|
282
307
|
if (isPracticeSession) {
|
|
283
308
|
_context3.next = 2;
|
|
284
309
|
break;
|
|
@@ -288,18 +313,25 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
288
313
|
case 1:
|
|
289
314
|
return _context3.abrupt("return", undefined);
|
|
290
315
|
case 2:
|
|
316
|
+
if (isOwner) {
|
|
317
|
+
_context3.next = 3;
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
_loggerProxy.default.logger.info("Webinar:index#updatePSDataChannel --> skipping; practice-session LLM owned by meeting ".concat(currentOwner, ", not ").concat(_this3.meetingId));
|
|
321
|
+
return _context3.abrupt("return", undefined);
|
|
322
|
+
case 3:
|
|
291
323
|
// @ts-ignore - Fix type
|
|
292
324
|
_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
|
|
293
|
-
practiceSessionDatachannelToken = _this3.webex.internal.llm.getDatachannelToken(
|
|
325
|
+
practiceSessionDatachannelToken = _this3.webex.internal.llm.getDatachannelToken(_constants.LLM_PRACTICE_SESSION, _this3.meetingId);
|
|
294
326
|
isCaptionBoxOn = _this3.webex.internal.voicea.getIsCaptionBoxOn();
|
|
295
327
|
if (practiceSessionDatachannelUrl) {
|
|
296
|
-
_context3.next =
|
|
328
|
+
_context3.next = 4;
|
|
297
329
|
break;
|
|
298
330
|
}
|
|
299
331
|
return _context3.abrupt("return", undefined);
|
|
300
|
-
case
|
|
332
|
+
case 4:
|
|
301
333
|
if (!_this3.webex.internal.llm.isConnected(_constants.LLM_PRACTICE_SESSION)) {
|
|
302
|
-
_context3.next =
|
|
334
|
+
_context3.next = 6;
|
|
303
335
|
break;
|
|
304
336
|
}
|
|
305
337
|
if (!(
|
|
@@ -307,14 +339,14 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
307
339
|
url === _this3.webex.internal.llm.getLocusUrl(_constants.LLM_PRACTICE_SESSION) &&
|
|
308
340
|
// @ts-ignore - Fix type
|
|
309
341
|
practiceSessionDatachannelUrl === _this3.webex.internal.llm.getDatachannelUrl(_constants.LLM_PRACTICE_SESSION))) {
|
|
310
|
-
_context3.next =
|
|
342
|
+
_context3.next = 5;
|
|
311
343
|
break;
|
|
312
344
|
}
|
|
313
345
|
return _context3.abrupt("return", undefined);
|
|
314
|
-
case 4:
|
|
315
|
-
_context3.next = 5;
|
|
316
|
-
return _this3.cleanupPSDataChannel();
|
|
317
346
|
case 5:
|
|
347
|
+
_context3.next = 6;
|
|
348
|
+
return _this3.cleanupPSDataChannel();
|
|
349
|
+
case 6:
|
|
318
350
|
// Ensure the default session data channel is connected before connecting the practice session.
|
|
319
351
|
// Subscribe before checking isConnected() to avoid a race where the 'online' event fires
|
|
320
352
|
// between the check and the subscription — Mercury does not replay missed events.
|
|
@@ -332,38 +364,67 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
332
364
|
|
|
333
365
|
// @ts-ignore - Fix type
|
|
334
366
|
if (_this3.webex.internal.llm.isConnected()) {
|
|
335
|
-
_context3.next =
|
|
367
|
+
_context3.next = 7;
|
|
336
368
|
break;
|
|
337
369
|
}
|
|
338
370
|
_loggerProxy.default.logger.info('Webinar:index#updatePSDataChannel --> default session not yet connected, deferring practice session connect.');
|
|
339
371
|
return _context3.abrupt("return", undefined);
|
|
340
|
-
case
|
|
372
|
+
case 7:
|
|
341
373
|
// Default session is already connected — cancel the pending listener and proceed
|
|
342
374
|
if (_this3._pendingOnlineListener) {
|
|
343
375
|
// @ts-ignore - Fix type
|
|
344
376
|
_this3.webex.internal.llm.off('online', _this3._pendingOnlineListener);
|
|
345
377
|
_this3._pendingOnlineListener = null;
|
|
346
378
|
}
|
|
347
|
-
_context3.next =
|
|
379
|
+
_context3.next = 8;
|
|
348
380
|
return _this3.ensurePracticeSessionDatachannelToken(meeting);
|
|
349
|
-
case
|
|
381
|
+
case 8:
|
|
350
382
|
refreshedPracticeSessionToken = _context3.sent;
|
|
351
383
|
latestPracticeSessionDatachannelUrl = (0, _lodash.get)(meeting, 'locusInfo.info.practiceSessionDatachannelUrl');
|
|
352
384
|
isStillPracticeSession = (meeting === null || meeting === void 0 ? void 0 : meeting.isJoined()) && _this3.isJoinPracticeSessionDataChannel(); // Skip stale invocations after async refresh to avoid reconnecting a session
|
|
353
385
|
// that was already updated/cleaned by a newer state transition.
|
|
354
386
|
if (!(invocationSequence !== _this3._updatePSDataChannelSequence || !isStillPracticeSession || !latestPracticeSessionDatachannelUrl || latestPracticeSessionDatachannelUrl !== practiceSessionDatachannelUrl)) {
|
|
355
|
-
_context3.next =
|
|
387
|
+
_context3.next = 9;
|
|
356
388
|
break;
|
|
357
389
|
}
|
|
358
390
|
return _context3.abrupt("return", undefined);
|
|
359
|
-
case
|
|
391
|
+
case 9:
|
|
360
392
|
if (refreshedPracticeSessionToken) {
|
|
361
393
|
practiceSessionDatachannelToken = refreshedPracticeSessionToken;
|
|
362
394
|
}
|
|
395
|
+
_this3$webex$internal2 = _this3.webex.internal.llm.resolveSessionOwnership(_this3.meetingId, _constants.LLM_PRACTICE_SESSION), currentOwnerBeforeConnect = _this3$webex$internal2.currentOwner, isOwnerBeforeConnect = _this3$webex$internal2.isOwner;
|
|
396
|
+
if (isOwnerBeforeConnect) {
|
|
397
|
+
_context3.next = 10;
|
|
398
|
+
break;
|
|
399
|
+
}
|
|
400
|
+
_loggerProxy.default.logger.info("Webinar:index#updatePSDataChannel --> skipping pre-connect owner write; practice-session LLM owned by meeting ".concat(currentOwnerBeforeConnect, ", not ").concat(_this3.meetingId));
|
|
401
|
+
return _context3.abrupt("return", undefined);
|
|
402
|
+
case 10:
|
|
403
|
+
// Ensure refresh for practice datachannel requests is routed to this
|
|
404
|
+
// meeting only when we are actually about to connect the practice session.
|
|
405
|
+
// This avoids claiming ownership in flows that return early (e.g. missing
|
|
406
|
+
// practiceSessionDatachannelUrl or waiting for default session online).
|
|
407
|
+
// @ts-ignore - Fix type
|
|
408
|
+
_this3.webex.internal.llm.setRefreshHandler(function () {
|
|
409
|
+
return meeting.refreshDataChannelToken();
|
|
410
|
+
}, _constants.LLM_PRACTICE_SESSION, _this3.meetingId);
|
|
411
|
+
// @ts-ignore - Fix type
|
|
412
|
+
(_this3$webex$internal3 = (_this3$webex$internal4 = _this3.webex.internal.llm).setOwnerMeetingId) === null || _this3$webex$internal3 === void 0 ? void 0 : _this3$webex$internal3.call(_this3$webex$internal4, _this3.meetingId, _constants.LLM_PRACTICE_SESSION);
|
|
363
413
|
|
|
364
414
|
// @ts-ignore - Fix type
|
|
365
415
|
return _context3.abrupt("return", _this3.webex.internal.llm.registerAndConnect(url, practiceSessionDatachannelUrl, practiceSessionDatachannelToken, _constants.LLM_PRACTICE_SESSION).then(function (registerAndConnectResult) {
|
|
366
|
-
var _this3$webex$
|
|
416
|
+
var _this3$webex$internal8, _this3$webex$internal9;
|
|
417
|
+
var _this3$webex$internal5 = _this3.webex.internal.llm.resolveSessionOwnership(_this3.meetingId, _constants.LLM_PRACTICE_SESSION),
|
|
418
|
+
currentOwnerAfterConnect = _this3$webex$internal5.currentOwner,
|
|
419
|
+
isOwnerAfterConnect = _this3$webex$internal5.isOwner;
|
|
420
|
+
if (_this3.meetingId && isOwnerAfterConnect) {
|
|
421
|
+
var _this3$webex$internal6, _this3$webex$internal7;
|
|
422
|
+
// @ts-ignore - Fix type
|
|
423
|
+
(_this3$webex$internal6 = (_this3$webex$internal7 = _this3.webex.internal.llm).setOwnerMeetingId) === null || _this3$webex$internal6 === void 0 ? void 0 : _this3$webex$internal6.call(_this3$webex$internal7, _this3.meetingId, _constants.LLM_PRACTICE_SESSION);
|
|
424
|
+
} else {
|
|
425
|
+
_loggerProxy.default.logger.info("Webinar:index#updatePSDataChannel --> skipping post-connect owner write; practice-session LLM owned by meeting ".concat(currentOwnerAfterConnect, ", not ").concat(_this3.meetingId));
|
|
426
|
+
}
|
|
427
|
+
|
|
367
428
|
// Track the exact listener references so cleanupPSDataChannel can
|
|
368
429
|
// unsubscribe deterministically, even if the meeting can no longer
|
|
369
430
|
// be resolved at cleanup time.
|
|
@@ -381,7 +442,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
381
442
|
_this3.webex.internal.llm.on(event, _this3.llmListeners[listenerKey]);
|
|
382
443
|
}
|
|
383
444
|
// @ts-ignore - Fix type
|
|
384
|
-
(_this3$webex$
|
|
445
|
+
(_this3$webex$internal8 = _this3.webex.internal.voicea) === null || _this3$webex$internal8 === void 0 ? void 0 : (_this3$webex$internal9 = _this3$webex$internal8.announce) === null || _this3$webex$internal9 === void 0 ? void 0 : _this3$webex$internal9.call(_this3$webex$internal8);
|
|
385
446
|
if (isCaptionBoxOn) {
|
|
386
447
|
_this3.webex.internal.voicea.updateSubchannelSubscriptions({
|
|
387
448
|
subscribe: ['transcription']
|
|
@@ -389,8 +450,20 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
389
450
|
}
|
|
390
451
|
_loggerProxy.default.logger.info("Webinar:index#updatePSDataChannel --> enabled to receive relay events for default session for ".concat(_constants.LLM_PRACTICE_SESSION, "!"));
|
|
391
452
|
return _promise.default.resolve(registerAndConnectResult);
|
|
453
|
+
}).catch(function (error) {
|
|
454
|
+
var _this3$webex$internal0 = _this3.webex.internal.llm.resolveSessionOwnership(_this3.meetingId, _constants.LLM_PRACTICE_SESSION),
|
|
455
|
+
currentOwnerAfterRegisterFailure = _this3$webex$internal0.currentOwner,
|
|
456
|
+
isOwnerAfterRegisterFailure = _this3$webex$internal0.isOwner;
|
|
457
|
+
if (isOwnerAfterRegisterFailure) {
|
|
458
|
+
var _this3$webex$internal1, _this3$webex$internal10;
|
|
459
|
+
// @ts-ignore - Fix type
|
|
460
|
+
(_this3$webex$internal1 = (_this3$webex$internal10 = _this3.webex.internal.llm).setOwnerMeetingId) === null || _this3$webex$internal1 === void 0 ? void 0 : _this3$webex$internal1.call(_this3$webex$internal10, undefined, _constants.LLM_PRACTICE_SESSION);
|
|
461
|
+
} else {
|
|
462
|
+
_loggerProxy.default.logger.info("Webinar:index#updatePSDataChannel --> skipping failure owner release; practice-session LLM owned by meeting ".concat(currentOwnerAfterRegisterFailure, ", not ").concat(_this3.meetingId));
|
|
463
|
+
}
|
|
464
|
+
throw error;
|
|
392
465
|
}));
|
|
393
|
-
case
|
|
466
|
+
case 11:
|
|
394
467
|
case "end":
|
|
395
468
|
return _context3.stop();
|
|
396
469
|
}
|
|
@@ -438,7 +511,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
438
511
|
startWebcast: function startWebcast(meeting, layout) {
|
|
439
512
|
var _this4 = this;
|
|
440
513
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
441
|
-
var
|
|
514
|
+
var _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
|
|
442
515
|
return _regenerator.default.wrap(function (_context4) {
|
|
443
516
|
while (1) switch (_context4.prev = _context4.next) {
|
|
444
517
|
case 0:
|
|
@@ -449,20 +522,20 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
449
522
|
_loggerProxy.default.logger.error("Meeting:webinar#startWebcast failed --> meeting parameter : ".concat(meeting));
|
|
450
523
|
throw new Error('Meeting parameter does not meet expectations');
|
|
451
524
|
case 1:
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
525
|
+
_t3 = _this4;
|
|
526
|
+
_t4 = _constants.HTTP_VERBS.PUT;
|
|
527
|
+
_t5 = "".concat(_this4.webcastInstanceUrl, "/streaming");
|
|
528
|
+
_t6 = _defineProperty2.default;
|
|
456
529
|
_context4.next = 2;
|
|
457
530
|
return _this4.webex.credentials.getUserToken();
|
|
458
531
|
case 2:
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
authorization:
|
|
463
|
-
trackingId:
|
|
532
|
+
_t7 = _context4.sent;
|
|
533
|
+
_t8 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
534
|
+
_t9 = _t6({
|
|
535
|
+
authorization: _t7,
|
|
536
|
+
trackingId: _t8
|
|
464
537
|
}, _constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON);
|
|
465
|
-
|
|
538
|
+
_t0 = {
|
|
466
539
|
action: 'start',
|
|
467
540
|
meetingInfo: {
|
|
468
541
|
locusId: meeting.locusId,
|
|
@@ -470,11 +543,11 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
470
543
|
},
|
|
471
544
|
layout: layout
|
|
472
545
|
};
|
|
473
|
-
return _context4.abrupt("return",
|
|
474
|
-
method:
|
|
475
|
-
uri:
|
|
476
|
-
headers:
|
|
477
|
-
body:
|
|
546
|
+
return _context4.abrupt("return", _t3.request.call(_t3, {
|
|
547
|
+
method: _t4,
|
|
548
|
+
uri: _t5,
|
|
549
|
+
headers: _t9,
|
|
550
|
+
body: _t0
|
|
478
551
|
}).catch(function (error) {
|
|
479
552
|
_loggerProxy.default.logger.error('Meeting:webinar#startWebcast failed', error);
|
|
480
553
|
throw error;
|
|
@@ -493,31 +566,31 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
493
566
|
stopWebcast: function stopWebcast() {
|
|
494
567
|
var _this5 = this;
|
|
495
568
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
496
|
-
var
|
|
569
|
+
var _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
497
570
|
return _regenerator.default.wrap(function (_context5) {
|
|
498
571
|
while (1) switch (_context5.prev = _context5.next) {
|
|
499
572
|
case 0:
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
573
|
+
_t1 = _this5;
|
|
574
|
+
_t10 = _constants.HTTP_VERBS.PUT;
|
|
575
|
+
_t11 = "".concat(_this5.webcastInstanceUrl, "/streaming");
|
|
576
|
+
_t12 = _defineProperty2.default;
|
|
504
577
|
_context5.next = 1;
|
|
505
578
|
return _this5.webex.credentials.getUserToken();
|
|
506
579
|
case 1:
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
authorization:
|
|
511
|
-
trackingId:
|
|
580
|
+
_t13 = _context5.sent;
|
|
581
|
+
_t14 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
582
|
+
_t15 = _t12({
|
|
583
|
+
authorization: _t13,
|
|
584
|
+
trackingId: _t14
|
|
512
585
|
}, _constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON);
|
|
513
|
-
|
|
586
|
+
_t16 = {
|
|
514
587
|
action: 'stop'
|
|
515
588
|
};
|
|
516
|
-
return _context5.abrupt("return",
|
|
517
|
-
method:
|
|
518
|
-
uri:
|
|
519
|
-
headers:
|
|
520
|
-
body:
|
|
589
|
+
return _context5.abrupt("return", _t1.request.call(_t1, {
|
|
590
|
+
method: _t10,
|
|
591
|
+
uri: _t11,
|
|
592
|
+
headers: _t15,
|
|
593
|
+
body: _t16
|
|
521
594
|
}).catch(function (error) {
|
|
522
595
|
_loggerProxy.default.logger.error('Meeting:webinar#stopWebcast failed', error);
|
|
523
596
|
throw error;
|
|
@@ -536,26 +609,26 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
536
609
|
queryWebcastLayout: function queryWebcastLayout() {
|
|
537
610
|
var _this6 = this;
|
|
538
611
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
539
|
-
var
|
|
612
|
+
var _t17, _t18, _t19, _t20, _t21, _t22;
|
|
540
613
|
return _regenerator.default.wrap(function (_context6) {
|
|
541
614
|
while (1) switch (_context6.prev = _context6.next) {
|
|
542
615
|
case 0:
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
616
|
+
_t17 = _this6;
|
|
617
|
+
_t18 = _constants.HTTP_VERBS.GET;
|
|
618
|
+
_t19 = "".concat(_this6.webcastInstanceUrl, "/layout");
|
|
546
619
|
_context6.next = 1;
|
|
547
620
|
return _this6.webex.credentials.getUserToken();
|
|
548
621
|
case 1:
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
authorization:
|
|
553
|
-
trackingId:
|
|
622
|
+
_t20 = _context6.sent;
|
|
623
|
+
_t21 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
624
|
+
_t22 = {
|
|
625
|
+
authorization: _t20,
|
|
626
|
+
trackingId: _t21
|
|
554
627
|
};
|
|
555
|
-
return _context6.abrupt("return",
|
|
556
|
-
method:
|
|
557
|
-
uri:
|
|
558
|
-
headers:
|
|
628
|
+
return _context6.abrupt("return", _t17.request.call(_t17, {
|
|
629
|
+
method: _t18,
|
|
630
|
+
uri: _t19,
|
|
631
|
+
headers: _t22
|
|
559
632
|
}).catch(function (error) {
|
|
560
633
|
_loggerProxy.default.logger.error('Meeting:webinar#queryWebcastLayout failed', error);
|
|
561
634
|
throw error;
|
|
@@ -575,34 +648,34 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
575
648
|
updateWebcastLayout: function updateWebcastLayout(layout) {
|
|
576
649
|
var _this7 = this;
|
|
577
650
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
578
|
-
var
|
|
651
|
+
var _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30;
|
|
579
652
|
return _regenerator.default.wrap(function (_context7) {
|
|
580
653
|
while (1) switch (_context7.prev = _context7.next) {
|
|
581
654
|
case 0:
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
655
|
+
_t23 = _this7;
|
|
656
|
+
_t24 = _constants.HTTP_VERBS.PUT;
|
|
657
|
+
_t25 = "".concat(_this7.webcastInstanceUrl, "/layout");
|
|
658
|
+
_t26 = _defineProperty2.default;
|
|
586
659
|
_context7.next = 1;
|
|
587
660
|
return _this7.webex.credentials.getUserToken();
|
|
588
661
|
case 1:
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
authorization:
|
|
593
|
-
trackingId:
|
|
662
|
+
_t27 = _context7.sent;
|
|
663
|
+
_t28 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
664
|
+
_t29 = _t26({
|
|
665
|
+
authorization: _t27,
|
|
666
|
+
trackingId: _t28
|
|
594
667
|
}, _constants.HEADERS.CONTENT_TYPE, _constants.HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON);
|
|
595
|
-
|
|
668
|
+
_t30 = {
|
|
596
669
|
videoLayout: layout.videoLayout,
|
|
597
670
|
contentLayout: layout.contentLayout,
|
|
598
671
|
syncStageLayout: layout.syncStageLayout,
|
|
599
672
|
syncStageInMeeting: layout.syncStageInMeeting
|
|
600
673
|
};
|
|
601
|
-
return _context7.abrupt("return",
|
|
602
|
-
method:
|
|
603
|
-
uri:
|
|
604
|
-
headers:
|
|
605
|
-
body:
|
|
674
|
+
return _context7.abrupt("return", _t23.request.call(_t23, {
|
|
675
|
+
method: _t24,
|
|
676
|
+
uri: _t25,
|
|
677
|
+
headers: _t29,
|
|
678
|
+
body: _t30
|
|
606
679
|
}).catch(function (error) {
|
|
607
680
|
_loggerProxy.default.logger.error('Meeting:webinar#updateWebcastLayout failed', error);
|
|
608
681
|
throw error;
|
|
@@ -621,26 +694,26 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
621
694
|
viewAllWebcastAttendees: function viewAllWebcastAttendees() {
|
|
622
695
|
var _this8 = this;
|
|
623
696
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
624
|
-
var
|
|
697
|
+
var _t31, _t32, _t33, _t34, _t35, _t36;
|
|
625
698
|
return _regenerator.default.wrap(function (_context8) {
|
|
626
699
|
while (1) switch (_context8.prev = _context8.next) {
|
|
627
700
|
case 0:
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
701
|
+
_t31 = _this8;
|
|
702
|
+
_t32 = _constants.HTTP_VERBS.GET;
|
|
703
|
+
_t33 = "".concat(_this8.webcastInstanceUrl, "/attendees");
|
|
631
704
|
_context8.next = 1;
|
|
632
705
|
return _this8.webex.credentials.getUserToken();
|
|
633
706
|
case 1:
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
authorization:
|
|
638
|
-
trackingId:
|
|
707
|
+
_t34 = _context8.sent;
|
|
708
|
+
_t35 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
709
|
+
_t36 = {
|
|
710
|
+
authorization: _t34,
|
|
711
|
+
trackingId: _t35
|
|
639
712
|
};
|
|
640
|
-
return _context8.abrupt("return",
|
|
641
|
-
method:
|
|
642
|
-
uri:
|
|
643
|
-
headers:
|
|
713
|
+
return _context8.abrupt("return", _t31.request.call(_t31, {
|
|
714
|
+
method: _t32,
|
|
715
|
+
uri: _t33,
|
|
716
|
+
headers: _t36
|
|
644
717
|
}).catch(function (error) {
|
|
645
718
|
_loggerProxy.default.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);
|
|
646
719
|
throw error;
|
|
@@ -661,27 +734,27 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
661
734
|
var _arguments = arguments,
|
|
662
735
|
_this9 = this;
|
|
663
736
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
664
|
-
var queryString,
|
|
737
|
+
var queryString, _t37, _t38, _t39, _t40, _t41, _t42;
|
|
665
738
|
return _regenerator.default.wrap(function (_context9) {
|
|
666
739
|
while (1) switch (_context9.prev = _context9.next) {
|
|
667
740
|
case 0:
|
|
668
741
|
queryString = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : '';
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
742
|
+
_t37 = _this9;
|
|
743
|
+
_t38 = _constants.HTTP_VERBS.GET;
|
|
744
|
+
_t39 = "".concat(_this9.webcastInstanceUrl, "/attendees?keyword=").concat(encodeURIComponent(queryString));
|
|
672
745
|
_context9.next = 1;
|
|
673
746
|
return _this9.webex.credentials.getUserToken();
|
|
674
747
|
case 1:
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
authorization:
|
|
679
|
-
trackingId:
|
|
748
|
+
_t40 = _context9.sent;
|
|
749
|
+
_t41 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
750
|
+
_t42 = {
|
|
751
|
+
authorization: _t40,
|
|
752
|
+
trackingId: _t41
|
|
680
753
|
};
|
|
681
|
-
return _context9.abrupt("return",
|
|
682
|
-
method:
|
|
683
|
-
uri:
|
|
684
|
-
headers:
|
|
754
|
+
return _context9.abrupt("return", _t37.request.call(_t37, {
|
|
755
|
+
method: _t38,
|
|
756
|
+
uri: _t39,
|
|
757
|
+
headers: _t42
|
|
685
758
|
}).catch(function (error) {
|
|
686
759
|
_loggerProxy.default.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);
|
|
687
760
|
throw error;
|
|
@@ -701,26 +774,26 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
701
774
|
expelWebcastAttendee: function expelWebcastAttendee(participantId) {
|
|
702
775
|
var _this0 = this;
|
|
703
776
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
|
|
704
|
-
var
|
|
777
|
+
var _t43, _t44, _t45, _t46, _t47, _t48;
|
|
705
778
|
return _regenerator.default.wrap(function (_context0) {
|
|
706
779
|
while (1) switch (_context0.prev = _context0.next) {
|
|
707
780
|
case 0:
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
781
|
+
_t43 = _this0;
|
|
782
|
+
_t44 = _constants.HTTP_VERBS.DELETE;
|
|
783
|
+
_t45 = "".concat(_this0.webcastInstanceUrl, "/attendees/").concat(participantId);
|
|
711
784
|
_context0.next = 1;
|
|
712
785
|
return _this0.webex.credentials.getUserToken();
|
|
713
786
|
case 1:
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
authorization:
|
|
718
|
-
trackingId:
|
|
787
|
+
_t46 = _context0.sent;
|
|
788
|
+
_t47 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
789
|
+
_t48 = {
|
|
790
|
+
authorization: _t46,
|
|
791
|
+
trackingId: _t47
|
|
719
792
|
};
|
|
720
|
-
return _context0.abrupt("return",
|
|
721
|
-
method:
|
|
722
|
-
uri:
|
|
723
|
-
headers:
|
|
793
|
+
return _context0.abrupt("return", _t43.request.call(_t43, {
|
|
794
|
+
method: _t44,
|
|
795
|
+
uri: _t45,
|
|
796
|
+
headers: _t48
|
|
724
797
|
}).catch(function (error) {
|
|
725
798
|
_loggerProxy.default.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);
|
|
726
799
|
throw error;
|
|
@@ -744,7 +817,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
744
817
|
var _this1 = this;
|
|
745
818
|
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
|
|
746
819
|
var _payload$limit, _meeting$locusInfo3, _meeting$locusInfo3$l, _meeting$locusInfo3$l2, _meeting$locusInfo3$l3;
|
|
747
|
-
var meeting, rawParams, attendeeSearchUrl,
|
|
820
|
+
var meeting, rawParams, attendeeSearchUrl, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
748
821
|
return _regenerator.default.wrap(function (_context1) {
|
|
749
822
|
while (1) switch (_context1.prev = _context1.next) {
|
|
750
823
|
case 0:
|
|
@@ -769,22 +842,22 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
769
842
|
_loggerProxy.default.logger.error('Meeting:webinar5k#searchLargeScaleWebinarAttendees failed --> attendee search url unavailable');
|
|
770
843
|
throw new Error('Meeting:webinar5k#Attendee search url is not available');
|
|
771
844
|
case 2:
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
845
|
+
_t49 = _this1;
|
|
846
|
+
_t50 = _constants.HTTP_VERBS.GET;
|
|
847
|
+
_t51 = "".concat(attendeeSearchUrl, "?").concat(new URLSearchParams((0, _utils.sanitizeParams)(rawParams)).toString());
|
|
775
848
|
_context1.next = 3;
|
|
776
849
|
return _this1.webex.credentials.getUserToken();
|
|
777
850
|
case 3:
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
authorization:
|
|
782
|
-
trackingId:
|
|
851
|
+
_t52 = _context1.sent;
|
|
852
|
+
_t53 = "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString());
|
|
853
|
+
_t54 = {
|
|
854
|
+
authorization: _t52,
|
|
855
|
+
trackingId: _t53
|
|
783
856
|
};
|
|
784
|
-
return _context1.abrupt("return",
|
|
785
|
-
method:
|
|
786
|
-
uri:
|
|
787
|
-
headers:
|
|
857
|
+
return _context1.abrupt("return", _t49.request.call(_t49, {
|
|
858
|
+
method: _t50,
|
|
859
|
+
uri: _t51,
|
|
860
|
+
headers: _t54
|
|
788
861
|
}).catch(function (error) {
|
|
789
862
|
_loggerProxy.default.logger.error('Meeting:webinar5k#searchLargeScaleWebinarAttendees failed', error);
|
|
790
863
|
throw error;
|
|
@@ -796,7 +869,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
796
869
|
}, _callee1);
|
|
797
870
|
}))();
|
|
798
871
|
},
|
|
799
|
-
version: "3.12.0-next.
|
|
872
|
+
version: "3.12.0-next.67"
|
|
800
873
|
});
|
|
801
874
|
var _default = exports.default = Webinar;
|
|
802
875
|
//# sourceMappingURL=index.js.map
|