@webex/plugin-meetings 3.0.0-beta.35 → 3.0.0-beta.37
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/breakouts/breakout.js +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/index.js +86 -2
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +12 -1
- package/dist/constants.js.map +1 -1
- package/dist/media/index.js +4 -18
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +3 -3
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/index.js +194 -306
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +7 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +2 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/metrics/constants.js +0 -4
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reconnection-manager/index.js +1 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +8 -4
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/constants.d.ts +11 -0
- package/dist/types/media/properties.d.ts +7 -6
- package/dist/types/meeting/index.d.ts +11 -36
- package/dist/types/metrics/constants.d.ts +0 -4
- package/package.json +19 -19
- package/src/breakouts/README.md +8 -2
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/index.ts +73 -0
- package/src/constants.ts +11 -0
- package/src/media/index.ts +14 -24
- package/src/media/properties.ts +16 -10
- package/src/meeting/index.ts +122 -204
- package/src/meeting/muteState.ts +5 -5
- package/src/meeting/util.ts +5 -4
- package/src/metrics/constants.ts +0 -4
- package/src/reconnection-manager/index.ts +1 -1
- package/src/statsAnalyzer/index.ts +4 -4
- package/test/integration/spec/converged-space-meetings.js +3 -3
- package/test/integration/spec/journey.js +3 -3
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/index.ts +92 -1
- package/test/unit/spec/media/index.ts +8 -6
- package/test/unit/spec/meeting/index.js +87 -114
- package/test/unit/spec/meeting/muteState.js +21 -22
- package/test/unit/spec/meeting/utils.js +3 -1
- package/test/utils/testUtils.js +30 -25
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/src/meeting/effectsState.ts +0 -211
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
12
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
16
|
+
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/wrapNativeSuper"));
|
|
17
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
18
|
+
var _constants = require("../constants");
|
|
19
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
20
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
21
|
+
/**
|
|
22
|
+
* Extended Error object to signify breakout related errors
|
|
23
|
+
*/
|
|
24
|
+
var BreakoutEditLockedError = /*#__PURE__*/function (_Error) {
|
|
25
|
+
(0, _inherits2.default)(BreakoutEditLockedError, _Error);
|
|
26
|
+
var _super = _createSuper(BreakoutEditLockedError);
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @constructor
|
|
30
|
+
* @param {String} [message]
|
|
31
|
+
* @param {Object} [error]
|
|
32
|
+
*/
|
|
33
|
+
function BreakoutEditLockedError() {
|
|
34
|
+
var _this;
|
|
35
|
+
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.MESSAGE;
|
|
36
|
+
var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
37
|
+
(0, _classCallCheck2.default)(this, BreakoutEditLockedError);
|
|
38
|
+
_this = _super.call(this, message);
|
|
39
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "code", void 0);
|
|
40
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "error", void 0);
|
|
41
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sdkMessage", void 0);
|
|
42
|
+
_this.name = _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.NAME;
|
|
43
|
+
_this.sdkMessage = _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.MESSAGE;
|
|
44
|
+
_this.error = error;
|
|
45
|
+
_this.stack = error ? error.stack : new Error().stack;
|
|
46
|
+
_this.code = _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.CODE;
|
|
47
|
+
return _this;
|
|
48
|
+
}
|
|
49
|
+
return (0, _createClass2.default)(BreakoutEditLockedError);
|
|
50
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
51
|
+
exports.default = BreakoutEditLockedError;
|
|
52
|
+
//# sourceMappingURL=edit-lock-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BreakoutEditLockedError","message","ERROR_DICTIONARY","BREAKOUT_EDIT","MESSAGE","error","name","NAME","sdkMessage","stack","Error","code","CODE"],"sources":["edit-lock-error.ts"],"sourcesContent":["import {ERROR_DICTIONARY} from '../constants';\n\n/**\n * Extended Error object to signify breakout related errors\n */\nexport default class BreakoutEditLockedError extends Error {\n code: any;\n error: any;\n sdkMessage: any;\n\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n constructor(message: string = ERROR_DICTIONARY.BREAKOUT_EDIT.MESSAGE, error: any = null) {\n super(message);\n this.name = ERROR_DICTIONARY.BREAKOUT_EDIT.NAME;\n this.sdkMessage = ERROR_DICTIONARY.BREAKOUT_EDIT.MESSAGE;\n this.error = error;\n this.stack = error ? error.stack : new Error().stack;\n this.code = ERROR_DICTIONARY.BREAKOUT_EDIT.CODE;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAA8C;AAAA;AAE9C;AACA;AACA;AAFA,IAGqBA,uBAAuB;EAAA;EAAA;EAK1C;AACF;AACA;AACA;AACA;AACA;EACE,mCAAyF;IAAA;IAAA,IAA7EC,OAAe,uEAAGC,2BAAgB,CAACC,aAAa,CAACC,OAAO;IAAA,IAAEC,KAAU,uEAAG,IAAI;IAAA;IACrF,0BAAMJ,OAAO;IAAE;IAAA;IAAA;IACf,MAAKK,IAAI,GAAGJ,2BAAgB,CAACC,aAAa,CAACI,IAAI;IAC/C,MAAKC,UAAU,GAAGN,2BAAgB,CAACC,aAAa,CAACC,OAAO;IACxD,MAAKC,KAAK,GAAGA,KAAK;IAClB,MAAKI,KAAK,GAAGJ,KAAK,GAAGA,KAAK,CAACI,KAAK,GAAG,IAAIC,KAAK,EAAE,CAACD,KAAK;IACpD,MAAKE,IAAI,GAAGT,2BAAgB,CAACC,aAAa,CAACS,IAAI;IAAC;EAClD;EAAC;AAAA,+CAlBkDF,KAAK;AAAA"}
|
package/dist/breakouts/index.js
CHANGED
|
@@ -19,6 +19,7 @@ var _constants = require("../constants");
|
|
|
19
19
|
var _breakout = _interopRequireDefault(require("./breakout"));
|
|
20
20
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
21
21
|
var _request = _interopRequireDefault(require("./request"));
|
|
22
|
+
var _editLockError = _interopRequireDefault(require("./edit-lock-error"));
|
|
22
23
|
/*!
|
|
23
24
|
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
24
25
|
*/
|
|
@@ -55,7 +56,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
55
56
|
// appears from the moment you enable breakouts
|
|
56
57
|
locusUrl: 'string',
|
|
57
58
|
// the current locus url
|
|
58
|
-
breakoutServiceUrl: 'string'
|
|
59
|
+
breakoutServiceUrl: 'string',
|
|
60
|
+
// the current breakout resouce url
|
|
61
|
+
groups: 'array' // appears when create breakouts
|
|
59
62
|
},
|
|
60
63
|
|
|
61
64
|
children: {
|
|
@@ -367,7 +370,88 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
367
370
|
}
|
|
368
371
|
});
|
|
369
372
|
},
|
|
370
|
-
|
|
373
|
+
/**
|
|
374
|
+
* Create new breakout sessions
|
|
375
|
+
* @param {object} sessions -- breakout session group
|
|
376
|
+
* @returns {Promise}
|
|
377
|
+
*/
|
|
378
|
+
create: function create(sessions) {
|
|
379
|
+
var _this7 = this;
|
|
380
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
381
|
+
var breakInfo;
|
|
382
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
383
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
384
|
+
case 0:
|
|
385
|
+
_context2.next = 2;
|
|
386
|
+
return _this7.webex.request({
|
|
387
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
388
|
+
uri: _this7.url,
|
|
389
|
+
body: {
|
|
390
|
+
groups: [{
|
|
391
|
+
sessions: sessions
|
|
392
|
+
}]
|
|
393
|
+
}
|
|
394
|
+
}).catch(function (error) {
|
|
395
|
+
if (error.body && error.body.errorCode === _constants.BREAKOUTS.ERROR_CODE.EDIT_LOCK_TOKEN_MISMATCH) {
|
|
396
|
+
_loggerProxy.default.logger.info("Breakouts#create --> Edit lock token mismatch");
|
|
397
|
+
return _promise.default.reject(new _editLockError.default('Edit lock token mismatch', error));
|
|
398
|
+
}
|
|
399
|
+
return _promise.default.reject(error);
|
|
400
|
+
});
|
|
401
|
+
case 2:
|
|
402
|
+
breakInfo = _context2.sent;
|
|
403
|
+
if (breakInfo.body && breakInfo.body.groups && breakInfo.body.groups) {
|
|
404
|
+
_this7.set('groups', breakInfo.body.groups);
|
|
405
|
+
}
|
|
406
|
+
return _context2.abrupt("return", _promise.default.resolve(breakInfo));
|
|
407
|
+
case 5:
|
|
408
|
+
case "end":
|
|
409
|
+
return _context2.stop();
|
|
410
|
+
}
|
|
411
|
+
}, _callee2);
|
|
412
|
+
}))();
|
|
413
|
+
},
|
|
414
|
+
/**
|
|
415
|
+
* Delete all breakout sessions
|
|
416
|
+
* @returns {Promise}
|
|
417
|
+
*/
|
|
418
|
+
clearSessions: function clearSessions() {
|
|
419
|
+
var _this8 = this;
|
|
420
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
421
|
+
var breakInfo;
|
|
422
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
423
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
424
|
+
case 0:
|
|
425
|
+
_context3.next = 2;
|
|
426
|
+
return _this8.webex.request({
|
|
427
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
428
|
+
uri: _this8.url,
|
|
429
|
+
body: {
|
|
430
|
+
groups: [{
|
|
431
|
+
action: _constants.BREAKOUTS.ACTION_TYPES.DELETE
|
|
432
|
+
}]
|
|
433
|
+
}
|
|
434
|
+
}).catch(function (error) {
|
|
435
|
+
if (error.body && error.body.errorCode === _constants.BREAKOUTS.ERROR_CODE.EDIT_LOCK_TOKEN_MISMATCH) {
|
|
436
|
+
_loggerProxy.default.logger.info("Breakouts#clearSessions --> Edit lock token mismatch");
|
|
437
|
+
return _promise.default.reject(new _editLockError.default('Edit lock token mismatch', error));
|
|
438
|
+
}
|
|
439
|
+
return _promise.default.reject(error);
|
|
440
|
+
});
|
|
441
|
+
case 2:
|
|
442
|
+
breakInfo = _context3.sent;
|
|
443
|
+
if (breakInfo.body && breakInfo.body.groups && breakInfo.body.groups) {
|
|
444
|
+
_this8.set('groups', breakInfo.body.groups);
|
|
445
|
+
}
|
|
446
|
+
return _context3.abrupt("return", _promise.default.resolve(breakInfo));
|
|
447
|
+
case 5:
|
|
448
|
+
case "end":
|
|
449
|
+
return _context3.stop();
|
|
450
|
+
}
|
|
451
|
+
}, _callee3);
|
|
452
|
+
}))();
|
|
453
|
+
},
|
|
454
|
+
version: "3.0.0-beta.37"
|
|
371
455
|
});
|
|
372
456
|
var _default = Breakouts;
|
|
373
457
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","children","currentBreakoutSession","Breakout","derived","isInMainSession","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","initialize","listenTo","STATUS","CLOSING","trigger","EVENTS","BREAKOUTS_CLOSING","debouncedQueryRosters","queryRosters","leading","trailing","listenToBroadcastMessages","listenToBreakoutRosters","webex","cleanUp","stopListening","locusUrlUpdate","set","breakoutServiceUrlUpdate","request","uri","qs","btoa","then","result","rosters","body","forEach","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","controls","breakout","session","get","parseRoster","internal","llm","event","data","senderUserId","sentTime","message","MESSAGE","mercury","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED_CURRENT","REQUESTED","updateBreakoutSessions","payload","breakoutSessions","state","ASSIGNED","getMainSession","mainSession","filter","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","breakoutGroupId","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","PUT"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, HTTP_VERBS, MEETINGS} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resouce url\n },\n\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:status', () => {\n if (this.status === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', () => {\n this.debouncedQueryRosters();\n });\n this.listenToBroadcastMessages();\n this.listenToBreakoutRosters();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current breakout resouce url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n this.set('enableBreakoutSession', params.enableBreakoutSession);\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n });\n });\n }\n\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const breakoutGroupId = this.isInMainSession\n ? this.breakouts.filter((breakout) => !breakout.isMain)[0]?.groupId\n : this.groupId;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enbale or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n if (!enable) {\n // if enable is false, updateBreakout set the param then set enableBreakoutSession as false\n this.updateBreakout(info.body);\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n enableBreakoutSession: enable,\n },\n });\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","groups","children","currentBreakoutSession","Breakout","derived","isInMainSession","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","initialize","listenTo","STATUS","CLOSING","trigger","EVENTS","BREAKOUTS_CLOSING","debouncedQueryRosters","queryRosters","leading","trailing","listenToBroadcastMessages","listenToBreakoutRosters","webex","cleanUp","stopListening","locusUrlUpdate","set","breakoutServiceUrlUpdate","request","uri","qs","btoa","then","result","rosters","body","forEach","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","controls","breakout","session","get","parseRoster","internal","llm","event","data","senderUserId","sentTime","message","MESSAGE","mercury","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED_CURRENT","REQUESTED","updateBreakoutSessions","payload","breakoutSessions","state","ASSIGNED","getMainSession","mainSession","filter","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","breakoutGroupId","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","PUT","create","sessions","errorCode","ERROR_CODE","EDIT_LOCK_TOKEN_MISMATCH","BreakoutEditLockedError","breakInfo","resolve","clearSessions","action","ACTION_TYPES","DELETE"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, HTTP_VERBS, MEETINGS} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport BreakoutEditLockedError from './edit-lock-error';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resouce url\n groups: 'array', // appears when create breakouts\n },\n\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:status', () => {\n if (this.status === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', () => {\n this.debouncedQueryRosters();\n });\n this.listenToBroadcastMessages();\n this.listenToBreakoutRosters();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current breakout resouce url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n this.set('enableBreakoutSession', params.enableBreakoutSession);\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n });\n });\n }\n\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const breakoutGroupId = this.isInMainSession\n ? this.breakouts.filter((breakout) => !breakout.isMain)[0]?.groupId\n : this.groupId;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enbale or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n if (!enable) {\n // if enable is false, updateBreakout set the param then set enableBreakoutSession as false\n this.updateBreakout(info.body);\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n enableBreakoutSession: enable,\n },\n });\n },\n\n /**\n * Create new breakout sessions\n * @param {object} sessions -- breakout session group\n * @returns {Promise}\n */\n async create(sessions) {\n // @ts-ignore\n const breakInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [\n {\n sessions,\n },\n ],\n },\n })\n .catch((error) => {\n if (error.body && error.body.errorCode === BREAKOUTS.ERROR_CODE.EDIT_LOCK_TOKEN_MISMATCH) {\n LoggerProxy.logger.info(`Breakouts#create --> Edit lock token mismatch`);\n\n return Promise.reject(new BreakoutEditLockedError('Edit lock token mismatch', error));\n }\n\n return Promise.reject(error);\n });\n\n if (breakInfo.body && breakInfo.body.groups && breakInfo.body.groups) {\n this.set('groups', breakInfo.body.groups);\n }\n\n return Promise.resolve(breakInfo);\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n // @ts-ignore\n const breakInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [\n {\n action: BREAKOUTS.ACTION_TYPES.DELETE,\n },\n ],\n },\n })\n .catch((error) => {\n if (error.body && error.body.errorCode === BREAKOUTS.ERROR_CODE.EDIT_LOCK_TOKEN_MISMATCH) {\n LoggerProxy.logger.info(`Breakouts#clearSessions --> Edit lock token mismatch`);\n\n return Promise.reject(new BreakoutEditLockedError('Edit lock token mismatch', error));\n }\n\n return Promise.reject(error);\n });\n\n if (breakInfo.body && breakInfo.body.groups && breakInfo.body.groups) {\n this.set('groups', breakInfo.body.groups);\n }\n\n return Promise.resolve(breakInfo);\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -530,6 +530,11 @@ var ERROR_DICTIONARY = {
|
|
|
530
530
|
NAME: 'CaptchaError',
|
|
531
531
|
MESSAGE: 'Captcha is required.',
|
|
532
532
|
CODE: 8
|
|
533
|
+
},
|
|
534
|
+
BREAKOUT_EDIT: {
|
|
535
|
+
NAME: 'BreakoutEditLockedError',
|
|
536
|
+
MESSAGE: 'Edit lock token mismatch',
|
|
537
|
+
CODE: 9
|
|
533
538
|
}
|
|
534
539
|
};
|
|
535
540
|
exports.ERROR_DICTIONARY = ERROR_DICTIONARY;
|
|
@@ -618,7 +623,13 @@ var BREAKOUTS = {
|
|
|
618
623
|
ASSIGNED_CURRENT: 'assignedCurrent',
|
|
619
624
|
REQUESTED: 'requested'
|
|
620
625
|
},
|
|
621
|
-
BREAKOUTS_SUPPORTED: 'BREAKOUTS_SUPPORTED'
|
|
626
|
+
BREAKOUTS_SUPPORTED: 'BREAKOUTS_SUPPORTED',
|
|
627
|
+
ACTION_TYPES: {
|
|
628
|
+
DELETE: 'DELETE'
|
|
629
|
+
},
|
|
630
|
+
ERROR_CODE: {
|
|
631
|
+
EDIT_LOCK_TOKEN_MISMATCH: 201409024
|
|
632
|
+
}
|
|
622
633
|
};
|
|
623
634
|
exports.BREAKOUTS = BREAKOUTS;
|
|
624
635
|
var LOCUSINFO = {
|