@webex/plugin-meetings 3.0.0-beta.43 → 3.0.0-beta.45
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/index.js +12 -3
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +15 -3
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +6 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +35 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +28 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +9 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +43 -4
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +45 -20
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +15 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/members/index.js +15 -3
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +33 -12
- package/dist/members/util.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +112 -55
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/types/constants.d.ts +11 -0
- package/dist/types/locus-info/index.d.ts +7 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +8 -0
- package/dist/types/meeting/index.d.ts +12 -2
- package/dist/types/meeting/muteState.d.ts +16 -0
- package/dist/types/members/index.d.ts +7 -2
- package/dist/types/multistream/remoteMediaManager.d.ts +20 -2
- package/package.json +18 -18
- package/src/breakouts/index.ts +8 -1
- package/src/constants.ts +13 -0
- package/src/locus-info/controlsUtils.ts +8 -0
- package/src/locus-info/index.ts +42 -1
- package/src/locus-info/selfUtils.ts +34 -0
- package/src/meeting/in-meeting-actions.ts +16 -0
- package/src/meeting/index.ts +53 -4
- package/src/meeting/muteState.ts +49 -30
- package/src/meeting/util.ts +15 -0
- package/src/members/index.ts +12 -4
- package/src/members/util.ts +21 -8
- package/src/multistream/remoteMediaManager.ts +57 -26
- package/test/unit/spec/breakouts/index.ts +2 -2
- package/test/unit/spec/locus-info/controlsUtils.js +104 -46
- package/test/unit/spec/locus-info/index.js +131 -16
- package/test/unit/spec/locus-info/selfConstant.js +9 -5
- package/test/unit/spec/locus-info/selfUtils.js +39 -16
- package/test/unit/spec/meeting/in-meeting-actions.ts +9 -1
- package/test/unit/spec/meeting/index.js +208 -79
- package/test/unit/spec/meeting/muteState.js +72 -6
- package/test/unit/spec/meeting/utils.js +35 -0
- package/test/unit/spec/members/index.js +75 -0
- package/test/unit/spec/members/utils.js +112 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +127 -0
package/dist/breakouts/index.js
CHANGED
|
@@ -61,6 +61,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
61
61
|
// the current locus url
|
|
62
62
|
breakoutServiceUrl: 'string',
|
|
63
63
|
// the current breakout resouce url
|
|
64
|
+
mainLocusUrl: 'string',
|
|
65
|
+
// the locus url of the main session
|
|
64
66
|
groups: 'array' // appears when create breakouts
|
|
65
67
|
},
|
|
66
68
|
|
|
@@ -132,6 +134,11 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
132
134
|
*/
|
|
133
135
|
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
134
136
|
this.set('locusUrl', locusUrl);
|
|
137
|
+
var isInMainSession = this.isInMainSession,
|
|
138
|
+
mainLocusUrl = this.mainLocusUrl;
|
|
139
|
+
if (isInMainSession || !mainLocusUrl) {
|
|
140
|
+
this.set('mainLocusUrl', locusUrl);
|
|
141
|
+
}
|
|
135
142
|
},
|
|
136
143
|
/**
|
|
137
144
|
* Update the current breakout resouce url
|
|
@@ -155,7 +162,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
155
162
|
}
|
|
156
163
|
}).then(function (result) {
|
|
157
164
|
var rosters = result.body.rosters;
|
|
158
|
-
rosters.forEach(function (_ref) {
|
|
165
|
+
rosters === null || rosters === void 0 ? void 0 : rosters.forEach(function (_ref) {
|
|
159
166
|
var locus = _ref.locus;
|
|
160
167
|
_this2.handleRosterUpdate(locus);
|
|
161
168
|
});
|
|
@@ -219,6 +226,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
219
226
|
updateBreakout: function updateBreakout(params) {
|
|
220
227
|
var _this$set;
|
|
221
228
|
this.set(params);
|
|
229
|
+
this.set('groups', params.groups);
|
|
222
230
|
this.set('currentBreakoutSession', (_this$set = {
|
|
223
231
|
sessionId: params.sessionId,
|
|
224
232
|
groupId: params.groupId,
|
|
@@ -471,7 +479,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
471
479
|
id: this.breakoutGroupId,
|
|
472
480
|
action: action,
|
|
473
481
|
allowBackToMain: false,
|
|
474
|
-
allowToJoinLater: false
|
|
482
|
+
allowToJoinLater: false,
|
|
483
|
+
duration: _constants.BREAKOUTS.DEFAULT_DURATION
|
|
475
484
|
}, params);
|
|
476
485
|
return this.request({
|
|
477
486
|
method: _constants.HTTP_VERBS.PUT,
|
|
@@ -539,7 +548,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
539
548
|
}, _callee4);
|
|
540
549
|
}))();
|
|
541
550
|
},
|
|
542
|
-
version: "3.0.0-beta.
|
|
551
|
+
version: "3.0.0-beta.45"
|
|
543
552
|
});
|
|
544
553
|
var _default = Breakouts;
|
|
545
554
|
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","groups","children","currentBreakoutSession","Breakout","derived","isInMainSession","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","breakoutGroupId","length","id","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","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","PUT","create","sessions","boServiceErrorHandler","breakInfo","resolve","clearSessions","action","ACTION","DELETE","start","START","allowToJoinLater","end","CLOSE","getBreakout","editlock","GET"],"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, MEETINGS, HTTP_VERBS} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport {boServiceErrorHandler} from './utils';\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 breakoutGroupId: {\n deps: ['groups'],\n /**\n * Returns the actived group id\n * @returns {boolean}\n */\n fn() {\n if (this.groups?.length) {\n return this.groups[0].id;\n }\n\n return '';\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;\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 return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#create --> Edit lock token mismatch')\n );\n });\n\n if (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.DELETE,\n },\n ],\n },\n })\n .catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#clearSessions --> Edit lock token mismatch')\n );\n });\n\n if (breakInfo.body?.groups) {\n this.set('groups', breakInfo.body.groups);\n }\n\n return Promise.resolve(breakInfo);\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [payload],\n },\n }).catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#start --> Edit lock token mismatch')\n );\n });\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [payload],\n },\n }).catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#end --> Edit lock token mismatch')\n );\n });\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n if (breakout.body?.groups) {\n this.set('groups', breakout.body.groups);\n }\n\n return breakout;\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","mainLocusUrl","groups","children","currentBreakoutSession","Breakout","derived","isInMainSession","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","breakoutGroupId","length","id","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","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","PUT","create","sessions","boServiceErrorHandler","breakInfo","resolve","clearSessions","action","ACTION","DELETE","start","START","allowToJoinLater","duration","DEFAULT_DURATION","end","CLOSE","getBreakout","editlock","GET"],"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, MEETINGS, HTTP_VERBS} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport {boServiceErrorHandler} from './utils';\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 mainLocusUrl: 'string', // the locus url of the main session\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 breakoutGroupId: {\n deps: ['groups'],\n /**\n * Returns the actived group id\n * @returns {boolean}\n */\n fn() {\n if (this.groups?.length) {\n return this.groups[0].id;\n }\n\n return '';\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 const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\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 this.set('groups', params.groups);\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;\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 return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#create --> Edit lock token mismatch')\n );\n });\n\n if (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.DELETE,\n },\n ],\n },\n })\n .catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#clearSessions --> Edit lock token mismatch')\n );\n });\n\n if (breakInfo.body?.groups) {\n this.set('groups', breakInfo.body.groups);\n }\n\n return Promise.resolve(breakInfo);\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n duration: BREAKOUTS.DEFAULT_DURATION,\n ...params,\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [payload],\n },\n }).catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#start --> Edit lock token mismatch')\n );\n });\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [payload],\n },\n }).catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#end --> Edit lock token mismatch')\n );\n });\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n if (breakout.body?.groups) {\n this.set('groups', breakout.body.groups);\n }\n\n return breakout;\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -370,6 +370,8 @@ var EVENT_TRIGGERS = {
|
|
|
370
370
|
MEETING_RINGING_STOP: 'meeting:ringingStop',
|
|
371
371
|
MEETING_SELF_LOBBY_WAITING: 'meeting:self:lobbyWaiting',
|
|
372
372
|
MEETING_SELF_GUEST_ADMITTED: 'meeting:self:guestAdmitted',
|
|
373
|
+
MEETING_SELF_VIDEO_MUTED_BY_OTHERS: 'meeting:self:videoMutedByOthers',
|
|
374
|
+
MEETING_SELF_VIDEO_UNMUTED_BY_OTHERS: 'meeting:self:videoUnmutedByOthers',
|
|
373
375
|
MEETING_SELF_MUTED_BY_OTHERS: 'meeting:self:mutedByOthers',
|
|
374
376
|
MEETING_SELF_UNMUTED_BY_OTHERS: 'meeting:self:unmutedByOthers',
|
|
375
377
|
MEETING_SELF_REQUESTED_TO_UNMUTE: 'meeting:self:requestedToUnmute',
|
|
@@ -617,7 +619,8 @@ var BREAKOUTS = {
|
|
|
617
619
|
MEMBERS_UPDATE: 'MEMBERS_UPDATE'
|
|
618
620
|
},
|
|
619
621
|
SESSION_TYPES: {
|
|
620
|
-
MAIN: 'MAIN'
|
|
622
|
+
MAIN: 'MAIN',
|
|
623
|
+
BREAKOUT: 'BREAKOUT'
|
|
621
624
|
},
|
|
622
625
|
SESSION_STATES: {
|
|
623
626
|
ACTIVE: 'active',
|
|
@@ -634,7 +637,8 @@ var BREAKOUTS = {
|
|
|
634
637
|
},
|
|
635
638
|
ERROR_CODE: {
|
|
636
639
|
EDIT_LOCK_TOKEN_MISMATCH: 201409024
|
|
637
|
-
}
|
|
640
|
+
},
|
|
641
|
+
DEFAULT_DURATION: 60000
|
|
638
642
|
};
|
|
639
643
|
exports.BREAKOUTS = BREAKOUTS;
|
|
640
644
|
var LOCUSINFO = {
|
|
@@ -645,8 +649,10 @@ var LOCUSINFO = {
|
|
|
645
649
|
CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',
|
|
646
650
|
CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
|
|
647
651
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
|
|
652
|
+
CONTROLS_VIDEO_ENABLED_UPDATED: 'CONTROLS_VIDEO_ENABLED_UPDATED',
|
|
648
653
|
SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
|
|
649
654
|
SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
|
|
655
|
+
SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',
|
|
650
656
|
SELF_REMOTE_MUTE_STATUS_UPDATED: 'SELF_REMOTE_MUTE_STATUS_UPDATED',
|
|
651
657
|
LOCAL_UNMUTE_REQUESTED: 'LOCAL_UNMUTE_REQUESTED',
|
|
652
658
|
LOCAL_UNMUTE_REQUIRED: 'LOCAL_UNMUTE_REQUIRED',
|
|
@@ -843,7 +849,13 @@ var DISPLAY_HINTS = {
|
|
|
843
849
|
ENABLE_HARD_MUTE: 'ENABLE_HARD_MUTE',
|
|
844
850
|
DISABLE_HARD_MUTE: 'DISABLE_HARD_MUTE',
|
|
845
851
|
MUTE_ALL: 'MUTE_ALL',
|
|
846
|
-
UNMUTE_ALL: 'UNMUTE_ALL'
|
|
852
|
+
UNMUTE_ALL: 'UNMUTE_ALL',
|
|
853
|
+
// breakout session
|
|
854
|
+
BREAKOUT_MANAGEMENT: 'BREAKOUT_MANAGEMENT',
|
|
855
|
+
UCF_SUPPRESS_BREAKOUTS_SUPPORT: 'UCF_SUPPRESS_BREAKOUTS_SUPPORT',
|
|
856
|
+
DISABLE_ASK_FOR_HELP: 'DISABLE_ASK_FOR_HELP',
|
|
857
|
+
DISABLE_BREAKOUT_PREASSIGNMENTS: 'DISABLE_BREAKOUT_PREASSIGNMENTS',
|
|
858
|
+
DISABLE_LOBBY_TO_BREAKOUT: 'DISABLE_LOBBY_TO_BREAKOUT'
|
|
847
859
|
};
|
|
848
860
|
exports.DISPLAY_HINTS = DISPLAY_HINTS;
|
|
849
861
|
var SELF_ROLES = {
|