@webex/plugin-meetings 3.12.0-next.9 → 3.12.0-next.90
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/AGENTS.md +9 -0
- package/dist/aiEnableRequest/index.js +15 -2
- package/dist/aiEnableRequest/index.js.map +1 -1
- package/dist/breakouts/breakout.js +8 -3
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/index.js +26 -2
- package/dist/breakouts/index.js.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/constants.js +35 -9
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +11 -1
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/index.js +67 -29
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.js +91 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/hashTree/constants.js +13 -1
- package/dist/hashTree/constants.js.map +1 -1
- package/dist/hashTree/hashTreeParser.js +880 -382
- package/dist/hashTree/hashTreeParser.js.map +1 -1
- package/dist/hashTree/utils.js +42 -0
- package/dist/hashTree/utils.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/interceptors/dataChannelAuthToken.js +75 -15
- package/dist/interceptors/dataChannelAuthToken.js.map +1 -1
- package/dist/interceptors/locusRetry.js +23 -8
- package/dist/interceptors/locusRetry.js.map +1 -1
- package/dist/interpretation/index.js +10 -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/locus-info/controlsUtils.js +4 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +303 -88
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +36 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/types.js +19 -0
- package/dist/locus-info/types.js.map +1 -1
- package/dist/media/index.js +3 -1
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +1 -0
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +5 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1233 -793
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +229 -82
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +10 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +5 -2
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +35 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +2 -2
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +231 -118
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +6 -1
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/request.js +39 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +79 -5
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +30 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +101 -43
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +8 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +5 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/codec/constants.js +63 -0
- package/dist/multistream/codec/constants.js.map +1 -0
- package/dist/multistream/mediaRequestManager.js +62 -15
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +9 -0
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/reachability/index.js +10 -13
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +2 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/util.js +45 -0
- package/dist/reachability/util.js.map +1 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/recording-controller/index.js +1 -3
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/types/config.d.ts +2 -2
- package/dist/types/constants.d.ts +12 -1
- package/dist/types/controls-options-manager/constants.d.ts +6 -1
- package/dist/types/controls-options-manager/index.d.ts +16 -0
- package/dist/types/hashTree/constants.d.ts +2 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +146 -17
- package/dist/types/hashTree/utils.d.ts +18 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/interceptors/locusRetry.d.ts +4 -4
- package/dist/types/interpretation/interpretation.types.d.ts +10 -0
- package/dist/types/locus-info/index.d.ts +50 -6
- package/dist/types/locus-info/infoUtils.d.ts +8 -0
- package/dist/types/locus-info/types.d.ts +21 -1
- package/dist/types/media/properties.d.ts +1 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
- package/dist/types/meeting/index.d.ts +94 -7
- package/dist/types/meeting/locusMediaRequest.d.ts +12 -0
- package/dist/types/meeting/request.d.ts +1 -0
- package/dist/types/meeting/util.d.ts +9 -0
- package/dist/types/meetings/index.d.ts +30 -18
- package/dist/types/meetings/meetings.types.d.ts +15 -0
- package/dist/types/meetings/request.d.ts +14 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/member/util.d.ts +9 -0
- package/dist/types/members/index.d.ts +15 -2
- package/dist/types/members/util.d.ts +1 -5
- package/dist/types/metrics/constants.d.ts +4 -0
- package/dist/types/multistream/codec/constants.d.ts +7 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +22 -5
- package/dist/types/reachability/index.d.ts +1 -1
- package/dist/types/reachability/reachability.types.d.ts +7 -0
- package/dist/types/reachability/util.d.ts +17 -0
- package/dist/types/reactions/reactions.type.d.ts +3 -0
- package/dist/webinar/index.js +305 -159
- package/dist/webinar/index.js.map +1 -1
- package/package.json +22 -22
- package/src/aiEnableRequest/index.ts +16 -0
- package/src/breakouts/breakout.ts +3 -1
- package/src/breakouts/index.ts +31 -0
- package/src/config.ts +2 -2
- package/src/constants.ts +20 -3
- package/src/controls-options-manager/constants.ts +14 -1
- package/src/controls-options-manager/index.ts +87 -28
- package/src/controls-options-manager/util.ts +81 -1
- package/src/hashTree/constants.ts +16 -0
- package/src/hashTree/hashTreeParser.ts +580 -196
- package/src/hashTree/utils.ts +36 -0
- package/src/index.ts +6 -0
- package/src/interceptors/dataChannelAuthToken.ts +88 -12
- package/src/interceptors/locusRetry.ts +25 -4
- package/src/interpretation/index.ts +27 -9
- package/src/interpretation/interpretation.types.ts +11 -0
- package/src/locus-info/controlsUtils.ts +3 -1
- package/src/locus-info/index.ts +304 -100
- package/src/locus-info/infoUtils.ts +41 -6
- package/src/locus-info/types.ts +25 -1
- package/src/media/index.ts +3 -0
- package/src/media/properties.ts +1 -0
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +494 -67
- package/src/meeting/locusMediaRequest.ts +106 -6
- package/src/meeting/muteState.ts +10 -1
- package/src/meeting/request.ts +11 -0
- package/src/meeting/util.ts +47 -5
- package/src/meeting-info/meeting-info-v2.ts +4 -2
- package/src/meetings/index.ts +133 -78
- package/src/meetings/meetings.types.ts +19 -0
- package/src/meetings/request.ts +43 -0
- package/src/meetings/util.ts +97 -1
- package/src/member/index.ts +10 -0
- package/src/member/types.ts +1 -0
- package/src/member/util.ts +29 -0
- package/src/members/index.ts +70 -7
- package/src/members/util.ts +12 -4
- package/src/metrics/constants.ts +4 -0
- package/src/multistream/codec/constants.ts +58 -0
- package/src/multistream/mediaRequestManager.ts +119 -28
- package/src/multistream/receiveSlot.ts +18 -0
- package/src/reachability/index.ts +19 -15
- package/src/reachability/reachability.types.ts +11 -0
- package/src/reachability/util.ts +36 -0
- package/src/reactions/reactions.type.ts +3 -0
- package/src/recording-controller/index.ts +1 -2
- package/src/webinar/index.ts +214 -36
- package/test/unit/spec/aiEnableRequest/index.ts +86 -0
- package/test/unit/spec/breakouts/breakout.ts +9 -3
- package/test/unit/spec/breakouts/index.ts +49 -0
- package/test/unit/spec/controls-options-manager/index.js +244 -29
- package/test/unit/spec/controls-options-manager/util.js +165 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +1838 -180
- package/test/unit/spec/hashTree/utils.ts +125 -1
- package/test/unit/spec/interceptors/dataChannelAuthToken.ts +196 -0
- package/test/unit/spec/interceptors/locusRetry.ts +205 -4
- package/test/unit/spec/interpretation/index.ts +26 -4
- package/test/unit/spec/locus-info/controlsUtils.js +172 -57
- package/test/unit/spec/locus-info/index.js +499 -81
- package/test/unit/spec/locus-info/infoUtils.js +184 -1
- package/test/unit/spec/media/index.ts +31 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +1615 -42
- package/test/unit/spec/meeting/locusMediaRequest.ts +302 -4
- package/test/unit/spec/meeting/muteState.js +81 -0
- package/test/unit/spec/meeting/request.js +12 -0
- package/test/unit/spec/meeting/utils.js +157 -1
- package/test/unit/spec/meeting-info/meetinginfov2.js +19 -10
- package/test/unit/spec/meetings/index.js +363 -36
- package/test/unit/spec/meetings/request.js +141 -0
- package/test/unit/spec/meetings/utils.js +189 -0
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +89 -0
- package/test/unit/spec/members/index.js +216 -0
- package/test/unit/spec/members/request.js +37 -1
- package/test/unit/spec/members/utils.js +63 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +501 -37
- package/test/unit/spec/reachability/index.ts +59 -46
- package/test/unit/spec/reachability/util.ts +31 -0
- package/test/unit/spec/recording-controller/index.js +9 -8
- package/test/unit/spec/webinar/index.ts +329 -28
package/AGENTS.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Unit tests
|
|
2
|
+
Plugin-meetings unit tests are slow, so always run only the tests you care about.
|
|
3
|
+
To run a single test or a set of tests for plugin-meetings, always temporarily add `.only` in the test code, for example:
|
|
4
|
+
```javascript
|
|
5
|
+
it.only('should do something', () => {
|
|
6
|
+
// test code
|
|
7
|
+
});
|
|
8
|
+
```
|
|
9
|
+
and always remove '.only' once you finish running the tests.
|
|
@@ -17,6 +17,7 @@ var _constants = require("../constants");
|
|
|
17
17
|
var AIEnableRequest = _webexCore.WebexPlugin.extend({
|
|
18
18
|
namespace: _constants.MEETINGS,
|
|
19
19
|
props: {
|
|
20
|
+
locusUrl: 'string',
|
|
20
21
|
approvalUrl: 'string',
|
|
21
22
|
selfParticipantId: 'string',
|
|
22
23
|
hasSubscribedToEvents: 'boolean'
|
|
@@ -41,6 +42,14 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
|
|
|
41
42
|
this.set('hasSubscribedToEvents', true);
|
|
42
43
|
}
|
|
43
44
|
},
|
|
45
|
+
/**
|
|
46
|
+
* Update the locus url
|
|
47
|
+
* @param {string} locusUrl
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
51
|
+
this.locusUrl = locusUrl;
|
|
52
|
+
},
|
|
44
53
|
/**
|
|
45
54
|
* Listen to locus approval request events and trigger a new event with necessary details when an AI enablement approval request is received
|
|
46
55
|
* @returns {void}
|
|
@@ -50,7 +59,11 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
|
|
|
50
59
|
this.listenTo(this.webex.internal.mercury, "event:".concat(_constants.LOCUSEVENT.APPROVAL_REQUEST), function (event) {
|
|
51
60
|
var _event$data, _event$data$approval;
|
|
52
61
|
if ((event === null || event === void 0 ? void 0 : (_event$data = event.data) === null || _event$data === void 0 ? void 0 : (_event$data$approval = _event$data.approval) === null || _event$data$approval === void 0 ? void 0 : _event$data$approval.resourceType) === _constants.AI_ENABLE_REQUEST.RESOURCE_TYPE) {
|
|
53
|
-
var _receivers$;
|
|
62
|
+
var _event$data2, _receivers$;
|
|
63
|
+
if ((event === null || event === void 0 ? void 0 : (_event$data2 = event.data) === null || _event$data2 === void 0 ? void 0 : _event$data2.locusUrl) !== _this.locusUrl) {
|
|
64
|
+
_this.webex.logger.info('AIEnableRequest: Ignoring approval request for different locus');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
54
67
|
var _event$data$approval2 = event.data.approval,
|
|
55
68
|
receivers = _event$data$approval2.receivers,
|
|
56
69
|
initiator = _event$data$approval2.initiator,
|
|
@@ -178,7 +191,7 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
|
|
|
178
191
|
method: _constants.HTTP_VERBS.PUT
|
|
179
192
|
});
|
|
180
193
|
},
|
|
181
|
-
version: "3.12.0-next.
|
|
194
|
+
version: "3.12.0-next.90"
|
|
182
195
|
});
|
|
183
196
|
var _default = exports.default = AIEnableRequest;
|
|
184
197
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_constants","AIEnableRequest","WebexPlugin","extend","namespace","MEETINGS","props","approvalUrl","selfParticipantId","hasSubscribedToEvents","approvalUrlUpdate","set","selfParticipantIdUpdate","listenToApprovalRequests","_this","listenTo","webex","internal","mercury","concat","LOCUSEVENT","APPROVAL_REQUEST","event","_event$data","_event$data$approval","data","approval","resourceType","AI_ENABLE_REQUEST","RESOURCE_TYPE","_receivers$","_event$data$approval2","receivers","initiator","actionType","url","approverId","participantId","isApprover","initiatorId","isInitiator","ACTION_TYPE","DECLINED_ALL","trigger","EVENTS","APPROVAL_REQUEST_ARRIVED","sendApprovalRequest","_ref","method","request","uri","body","approver","requestEnableAIAssistant","_ref2","REQUESTED","HTTP_VERBS","POST","acceptEnableAIAssistantRequest","_ref3","ACCEPTED","PUT","declineEnableAIAssistantRequest","_ref4","DECLINED","declineAllEnableAIAssistantRequests","_ref5","version","_default","exports","default"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {AI_ENABLE_REQUEST, HTTP_VERBS, LOCUSEVENT, MEETINGS} from '../constants';\n\n/**\n * @class AIEnableRequest\n */\nconst AIEnableRequest = WebexPlugin.extend({\n namespace: MEETINGS,\n\n props: {\n approvalUrl: 'string',\n selfParticipantId: 'string',\n hasSubscribedToEvents: 'boolean',\n },\n\n /**\n * Update the approval url for handoff\n * @param {string} approvalUrl\n * @returns {void}\n */\n approvalUrlUpdate(approvalUrl) {\n this.set('approvalUrl', approvalUrl);\n },\n\n /**\n * Update the self participant id\n * @param {string} selfParticipantId\n * @returns {void}\n */\n selfParticipantIdUpdate(selfParticipantId) {\n this.set('selfParticipantId', selfParticipantId);\n\n if (!this.hasSubscribedToEvents) {\n this.listenToApprovalRequests();\n this.set('hasSubscribedToEvents', true);\n }\n },\n\n /**\n * Listen to locus approval request events and trigger a new event with necessary details when an AI enablement approval request is received\n * @returns {void}\n */\n listenToApprovalRequests() {\n this.listenTo(this.webex.internal.mercury, `event:${LOCUSEVENT.APPROVAL_REQUEST}`, (event) => {\n if (event?.data?.approval?.resourceType === AI_ENABLE_REQUEST.RESOURCE_TYPE) {\n const {receivers, initiator, actionType, url} = event.data.approval;\n const approverId = receivers?.[0]?.participantId;\n const isApprover = !!approverId && approverId === this.selfParticipantId;\n const initiatorId = initiator?.participantId;\n const isInitiator = !!initiatorId && initiatorId === this.selfParticipantId;\n if (\n !isApprover &&\n !isInitiator &&\n // Not just the initiator needs to know about declined all because\n // all future requests will be rejected if the meeting is in the declined all state\n actionType !== AI_ENABLE_REQUEST.ACTION_TYPE.DECLINED_ALL\n ) {\n return;\n }\n this.trigger(AI_ENABLE_REQUEST.EVENTS.APPROVAL_REQUEST_ARRIVED, {\n actionType,\n isApprover,\n isInitiator,\n initiatorId,\n approverId,\n url,\n });\n }\n });\n },\n\n /**\n * Helper method to send AI assistant request\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.actionType the type of action (REQUESTED, ACCEPTED, DECLINED, DECLINED_ALL)\n * @param {string} params.initiatorId\n * @param {string} params.approverId\n * @param {string} params.method HTTP method to use for the request\n * @returns {Promise}\n */\n sendApprovalRequest({url, actionType, initiatorId, approverId, method}) {\n return this.request({\n method,\n uri: url,\n body: {\n actionType,\n resourceType: AI_ENABLE_REQUEST.RESOURCE_TYPE,\n initiator: {\n participantId: initiatorId,\n },\n approver: {\n participantId: approverId,\n },\n },\n });\n },\n\n /**\n * Sends a request to enable the AI assistant\n * @param {Object} params\n * @param {string} params.approverId\n * @returns {Promise}\n */\n requestEnableAIAssistant({approverId}) {\n return this.sendApprovalRequest({\n url: this.approvalUrl,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.REQUESTED,\n initiatorId: this.selfParticipantId,\n approverId,\n method: HTTP_VERBS.POST,\n });\n },\n\n /**\n * Sends a request to accept the AI assistant enablement\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.initiatorId\n * @returns {Promise}\n */\n acceptEnableAIAssistantRequest({url, initiatorId}) {\n return this.sendApprovalRequest({\n url,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.ACCEPTED,\n initiatorId,\n approverId: this.selfParticipantId,\n method: HTTP_VERBS.PUT,\n });\n },\n\n /**\n * Sends a request to decline the AI assistant enablement\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.initiatorId\n * @returns {Promise}\n */\n declineEnableAIAssistantRequest({url, initiatorId}) {\n return this.sendApprovalRequest({\n url,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.DECLINED,\n initiatorId,\n approverId: this.selfParticipantId,\n method: HTTP_VERBS.PUT,\n });\n },\n\n /**\n * Sends a request to decline all AI assistant enablement requests\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.initiatorId\n * @returns {Promise}\n */\n declineAllEnableAIAssistantRequests({url, initiatorId}) {\n return this.sendApprovalRequest({\n url,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.DECLINED_ALL,\n initiatorId,\n approverId: this.selfParticipantId,\n method: HTTP_VERBS.PUT,\n });\n },\n});\n\nexport default AIEnableRequest;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_constants","AIEnableRequest","WebexPlugin","extend","namespace","MEETINGS","props","locusUrl","approvalUrl","selfParticipantId","hasSubscribedToEvents","approvalUrlUpdate","set","selfParticipantIdUpdate","listenToApprovalRequests","locusUrlUpdate","_this","listenTo","webex","internal","mercury","concat","LOCUSEVENT","APPROVAL_REQUEST","event","_event$data","_event$data$approval","data","approval","resourceType","AI_ENABLE_REQUEST","RESOURCE_TYPE","_event$data2","_receivers$","logger","info","_event$data$approval2","receivers","initiator","actionType","url","approverId","participantId","isApprover","initiatorId","isInitiator","ACTION_TYPE","DECLINED_ALL","trigger","EVENTS","APPROVAL_REQUEST_ARRIVED","sendApprovalRequest","_ref","method","request","uri","body","approver","requestEnableAIAssistant","_ref2","REQUESTED","HTTP_VERBS","POST","acceptEnableAIAssistantRequest","_ref3","ACCEPTED","PUT","declineEnableAIAssistantRequest","_ref4","DECLINED","declineAllEnableAIAssistantRequests","_ref5","version","_default","exports","default"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {AI_ENABLE_REQUEST, HTTP_VERBS, LOCUSEVENT, MEETINGS} from '../constants';\n\n/**\n * @class AIEnableRequest\n */\nconst AIEnableRequest = WebexPlugin.extend({\n namespace: MEETINGS,\n\n props: {\n locusUrl: 'string',\n approvalUrl: 'string',\n selfParticipantId: 'string',\n hasSubscribedToEvents: 'boolean',\n },\n\n /**\n * Update the approval url for handoff\n * @param {string} approvalUrl\n * @returns {void}\n */\n approvalUrlUpdate(approvalUrl) {\n this.set('approvalUrl', approvalUrl);\n },\n\n /**\n * Update the self participant id\n * @param {string} selfParticipantId\n * @returns {void}\n */\n selfParticipantIdUpdate(selfParticipantId) {\n this.set('selfParticipantId', selfParticipantId);\n\n if (!this.hasSubscribedToEvents) {\n this.listenToApprovalRequests();\n this.set('hasSubscribedToEvents', true);\n }\n },\n\n /**\n * Update the locus url\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl: string) {\n this.locusUrl = locusUrl;\n },\n\n /**\n * Listen to locus approval request events and trigger a new event with necessary details when an AI enablement approval request is received\n * @returns {void}\n */\n listenToApprovalRequests() {\n this.listenTo(this.webex.internal.mercury, `event:${LOCUSEVENT.APPROVAL_REQUEST}`, (event) => {\n if (event?.data?.approval?.resourceType === AI_ENABLE_REQUEST.RESOURCE_TYPE) {\n if (event?.data?.locusUrl !== this.locusUrl) {\n this.webex.logger.info('AIEnableRequest: Ignoring approval request for different locus');\n\n return;\n }\n\n const {receivers, initiator, actionType, url} = event.data.approval;\n const approverId = receivers?.[0]?.participantId;\n const isApprover = !!approverId && approverId === this.selfParticipantId;\n const initiatorId = initiator?.participantId;\n const isInitiator = !!initiatorId && initiatorId === this.selfParticipantId;\n if (\n !isApprover &&\n !isInitiator &&\n // Not just the initiator needs to know about declined all because\n // all future requests will be rejected if the meeting is in the declined all state\n actionType !== AI_ENABLE_REQUEST.ACTION_TYPE.DECLINED_ALL\n ) {\n return;\n }\n this.trigger(AI_ENABLE_REQUEST.EVENTS.APPROVAL_REQUEST_ARRIVED, {\n actionType,\n isApprover,\n isInitiator,\n initiatorId,\n approverId,\n url,\n });\n }\n });\n },\n\n /**\n * Helper method to send AI assistant request\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.actionType the type of action (REQUESTED, ACCEPTED, DECLINED, DECLINED_ALL)\n * @param {string} params.initiatorId\n * @param {string} params.approverId\n * @param {string} params.method HTTP method to use for the request\n * @returns {Promise}\n */\n sendApprovalRequest({url, actionType, initiatorId, approverId, method}) {\n return this.request({\n method,\n uri: url,\n body: {\n actionType,\n resourceType: AI_ENABLE_REQUEST.RESOURCE_TYPE,\n initiator: {\n participantId: initiatorId,\n },\n approver: {\n participantId: approverId,\n },\n },\n });\n },\n\n /**\n * Sends a request to enable the AI assistant\n * @param {Object} params\n * @param {string} params.approverId\n * @returns {Promise}\n */\n requestEnableAIAssistant({approverId}) {\n return this.sendApprovalRequest({\n url: this.approvalUrl,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.REQUESTED,\n initiatorId: this.selfParticipantId,\n approverId,\n method: HTTP_VERBS.POST,\n });\n },\n\n /**\n * Sends a request to accept the AI assistant enablement\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.initiatorId\n * @returns {Promise}\n */\n acceptEnableAIAssistantRequest({url, initiatorId}) {\n return this.sendApprovalRequest({\n url,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.ACCEPTED,\n initiatorId,\n approverId: this.selfParticipantId,\n method: HTTP_VERBS.PUT,\n });\n },\n\n /**\n * Sends a request to decline the AI assistant enablement\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.initiatorId\n * @returns {Promise}\n */\n declineEnableAIAssistantRequest({url, initiatorId}) {\n return this.sendApprovalRequest({\n url,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.DECLINED,\n initiatorId,\n approverId: this.selfParticipantId,\n method: HTTP_VERBS.PUT,\n });\n },\n\n /**\n * Sends a request to decline all AI assistant enablement requests\n * @param {Object} params\n * @param {string} params.url approval url\n * @param {string} params.initiatorId\n * @returns {Promise}\n */\n declineAllEnableAIAssistantRequests({url, initiatorId}) {\n return this.sendApprovalRequest({\n url,\n actionType: AI_ENABLE_REQUEST.ACTION_TYPE.DECLINED_ALL,\n initiatorId,\n approverId: this.selfParticipantId,\n method: HTTP_VERBS.PUT,\n });\n },\n});\n\nexport default AIEnableRequest;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,7 +44,8 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
44
44
|
groupId: 'string',
|
|
45
45
|
url: 'string',
|
|
46
46
|
// where to send requests to
|
|
47
|
-
requestedLastModifiedTime: 'string'
|
|
47
|
+
requestedLastModifiedTime: 'string',
|
|
48
|
+
resourceLink: 'string' // the resource link for this breakout session, used for telemetry and logging
|
|
48
49
|
},
|
|
49
50
|
derived: {
|
|
50
51
|
isMain: {
|
|
@@ -192,7 +193,11 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
192
193
|
return;
|
|
193
194
|
}
|
|
194
195
|
this.breakoutRosterLocus = locus;
|
|
195
|
-
|
|
196
|
+
// The roster via breakout roster event is full roster, use replace strategy to update the members
|
|
197
|
+
this.members.locusParticipantsUpdate({
|
|
198
|
+
participants: locus.participants,
|
|
199
|
+
isReplace: true
|
|
200
|
+
});
|
|
196
201
|
},
|
|
197
202
|
/**
|
|
198
203
|
* Broadcast message to this breakout session's participants
|
|
@@ -209,7 +214,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
209
214
|
sessionId: this.sessionId
|
|
210
215
|
});
|
|
211
216
|
},
|
|
212
|
-
version: "3.12.0-next.
|
|
217
|
+
version: "3.12.0-next.90"
|
|
213
218
|
});
|
|
214
219
|
var _default = exports.default = Breakout;
|
|
215
220
|
//# sourceMappingURL=breakout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_constants","_members","_request","_events","Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","derived","isMain","cache","deps","fn","initialize","webex","breakoutRosterLocus","join","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","breakoutMoveId","deviceUrl","meetingId","meeting","result","wrap","_context","prev","next","uuid","v4","internal","device","collection","parent","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","newMetrics","submitClientEvent","bind","request","method","HTTP_VERBS","POST","uri","concat","body","sent","onBreakoutMoveResponse","abrupt","stop","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","initMembers","members","Members","isNeedHandleRoster","locus","_this$breakoutRosterL","_this$breakoutRosterL2","_this$breakoutRosterL3","_locus$sequence","_locus$sequence$entri","sequence","entries","length","prevSequence","currentSequence","parseRoster","locusParticipantsUpdate","broadcast","message","options","version","_default","exports"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n requestedLastModifiedTime: 'string',\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n /**\n * initializer for the Breakout class\n * @returns {void}\n */\n initialize() {\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n this.breakoutRosterLocus = null;\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest(\n {currentSession: this, meeting, breakoutMoveId},\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse(\n {currentSession: this, meeting, breakoutMoveId},\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * inits the members object\n * @returns {void}\n */\n initMembers() {\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n this.members = new Members(\n {\n meeting,\n },\n {parent: this.webex}\n );\n },\n\n /**\n * check sequence and determine whether to update the new roster or not\n * @param {Object} locus Locus object\n * @returns {Boolean}\n */\n isNeedHandleRoster(locus: any) {\n if (!this.breakoutRosterLocus?.sequence?.entries?.length || !locus?.sequence?.entries?.length) {\n return true;\n }\n const prevSequence = this.breakoutRosterLocus.sequence.entries[0];\n const currentSequence = locus.sequence.entries[0];\n\n return currentSequence > prevSequence;\n },\n /**\n * Parses the participants from the locus object\n * @param {Object} locus Locus object\n * @returns {void}\n */\n parseRoster(locus) {\n if (!this.members) {\n this.initMembers();\n }\n if (!this.isNeedHandleRoster(locus)) {\n return;\n }\n this.breakoutRosterLocus = locus;\n this.members.locusParticipantsUpdate(locus);\n },\n\n /**\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_constants","_members","_request","_events","Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","resourceLink","derived","isMain","cache","deps","fn","initialize","webex","breakoutRosterLocus","join","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","breakoutMoveId","deviceUrl","meetingId","meeting","result","wrap","_context","prev","next","uuid","v4","internal","device","collection","parent","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","newMetrics","submitClientEvent","bind","request","method","HTTP_VERBS","POST","uri","concat","body","sent","onBreakoutMoveResponse","abrupt","stop","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","initMembers","members","Members","isNeedHandleRoster","locus","_this$breakoutRosterL","_this$breakoutRosterL2","_this$breakoutRosterL3","_locus$sequence","_locus$sequence$entri","sequence","entries","length","prevSequence","currentSequence","parseRoster","locusParticipantsUpdate","participants","isReplace","broadcast","message","options","version","_default","exports"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n requestedLastModifiedTime: 'string',\n resourceLink: 'string', // the resource link for this breakout session, used for telemetry and logging\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n /**\n * initializer for the Breakout class\n * @returns {void}\n */\n initialize() {\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n this.breakoutRosterLocus = null;\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest(\n {currentSession: this, meeting, breakoutMoveId},\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse(\n {currentSession: this, meeting, breakoutMoveId},\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * inits the members object\n * @returns {void}\n */\n initMembers() {\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n this.members = new Members(\n {\n meeting,\n },\n {parent: this.webex}\n );\n },\n\n /**\n * check sequence and determine whether to update the new roster or not\n * @param {Object} locus Locus object\n * @returns {Boolean}\n */\n isNeedHandleRoster(locus: any) {\n if (!this.breakoutRosterLocus?.sequence?.entries?.length || !locus?.sequence?.entries?.length) {\n return true;\n }\n const prevSequence = this.breakoutRosterLocus.sequence.entries[0];\n const currentSequence = locus.sequence.entries[0];\n\n return currentSequence > prevSequence;\n },\n /**\n * Parses the participants from the locus object\n * @param {Object} locus Locus object\n * @returns {void}\n */\n parseRoster(locus) {\n if (!this.members) {\n this.initMembers();\n }\n if (!this.isNeedHandleRoster(locus)) {\n return;\n }\n this.breakoutRosterLocus = locus;\n // The roster via breakout roster event is full roster, use replace strategy to update the members\n this.members.locusParticipantsUpdate({participants: locus.participants, isReplace: true});\n },\n\n /**\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/breakouts/index.js
CHANGED
|
@@ -358,7 +358,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
358
358
|
name: params.name,
|
|
359
359
|
current: true,
|
|
360
360
|
sessionType: params.sessionType,
|
|
361
|
-
url: params.url
|
|
361
|
+
url: params.url,
|
|
362
|
+
resourceLink: params.resourceLink
|
|
362
363
|
}, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), _constants.BREAKOUTS.SESSION_STATES.ASSIGNED, false), _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false));
|
|
363
364
|
if (!this.isBreakoutInProgress()) {
|
|
364
365
|
this.clearBreakouts();
|
|
@@ -1099,6 +1100,29 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1099
1100
|
body: body
|
|
1100
1101
|
});
|
|
1101
1102
|
},
|
|
1103
|
+
/**
|
|
1104
|
+
* Remove participants from their current breakout session back to the main session
|
|
1105
|
+
* @param {string[]} participants - participant IDs to remove from breakout
|
|
1106
|
+
* @returns {Promise}
|
|
1107
|
+
*/
|
|
1108
|
+
removeFromBreakout: function removeFromBreakout(participants) {
|
|
1109
|
+
if (!this.mainGroupId || !this.mainSessionId) {
|
|
1110
|
+
throw new Error('Main group ID and session ID must be available to remove participants from breakout');
|
|
1111
|
+
}
|
|
1112
|
+
return this.request({
|
|
1113
|
+
method: _constants.HTTP_VERBS.POST,
|
|
1114
|
+
uri: "".concat(this.url, "/move"),
|
|
1115
|
+
body: {
|
|
1116
|
+
groups: [{
|
|
1117
|
+
id: this.mainGroupId,
|
|
1118
|
+
sessions: [{
|
|
1119
|
+
id: this.mainSessionId,
|
|
1120
|
+
participants: participants
|
|
1121
|
+
}]
|
|
1122
|
+
}]
|
|
1123
|
+
}
|
|
1124
|
+
});
|
|
1125
|
+
},
|
|
1102
1126
|
/**
|
|
1103
1127
|
* trigger ASK_RETURN_TO_MAIN event when main session requested
|
|
1104
1128
|
* @param {Object} breakout
|
|
@@ -1109,7 +1133,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1109
1133
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1110
1134
|
}
|
|
1111
1135
|
},
|
|
1112
|
-
version: "3.12.0-next.
|
|
1136
|
+
version: "3.12.0-next.90"
|
|
1113
1137
|
});
|
|
1114
1138
|
var _default = exports.default = Breakouts;
|
|
1115
1139
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this0","_callee3","_context3","action","ACTION","DELETE","start","_arguments","_this1","_callee4","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this10","_callee5","_context5","CLOSE","update","unlockEdit","_this11","_callee6","_this11$editLock","_context6","getBreakout","_this12","_callee7","_breakout$body","_breakout$body$editlo","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this13","_callee8","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this14","_callee9","_breakout$body2","_context9","_this15","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this16","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this17","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this18","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"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, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} 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 hasBreakoutPreAssignments: '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 resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\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 isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\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 this.hasSubscribedToMessage = undefined;\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 this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource 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 *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\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 this.hasSubscribedToMessage = true;\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 * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\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 // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\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.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\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 if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\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 if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\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 * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\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 enable 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 // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\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 const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async 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 const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async 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 const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\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 this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","resourceLink","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this0","_callee3","_context3","action","ACTION","DELETE","start","_arguments","_this1","_callee4","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this10","_callee5","_context5","CLOSE","update","unlockEdit","_this11","_callee6","_this11$editLock","_context6","getBreakout","_this12","_callee7","_breakout$body","_breakout$body$editlo","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this13","_callee8","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this14","_callee9","_breakout$body2","_context9","_this15","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this16","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this17","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this18","removeFromBreakout","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"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, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} 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 hasBreakoutPreAssignments: '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 resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\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 isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\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 this.hasSubscribedToMessage = undefined;\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 this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource 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 *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\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 this.hasSubscribedToMessage = true;\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 * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\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 // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\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 resourceLink: params.resourceLink,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\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 if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\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 if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\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 * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\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 enable 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 // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\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 const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async 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 const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async 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 const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\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 this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Remove participants from their current breakout session back to the main session\n * @param {string[]} participants - participant IDs to remove from breakout\n * @returns {Promise}\n */\n removeFromBreakout(participants: string[]) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to remove participants from breakout'\n );\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n groups: [\n {\n id: this.mainGroupId,\n sessions: [\n {\n id: this.mainSessionId,\n participants,\n },\n ],\n },\n ],\n },\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/config.js
CHANGED
|
@@ -90,17 +90,17 @@ var _default = exports.default = {
|
|
|
90
90
|
enableExtmap: false,
|
|
91
91
|
enableAutomaticLLM: false,
|
|
92
92
|
installedOrgID: undefined,
|
|
93
|
+
multipartSitePrefixList: ['.my.', '.mydmz.', '.mybts.', '.mydev.', '.myats2.', '.myats.'],
|
|
93
94
|
experimental: {
|
|
94
95
|
enableMediaNegotiatedEvent: false,
|
|
95
96
|
enableUnifiedMeetings: true,
|
|
96
97
|
enableAdhocMeetings: true,
|
|
97
|
-
enableTcpReachability: false,
|
|
98
|
-
enableTlsReachability: false,
|
|
99
98
|
storeLocusHashTreeEventsForDebugging: false
|
|
100
99
|
},
|
|
101
100
|
degradationPreferences: {
|
|
102
101
|
maxMacroblocksLimit: 8192
|
|
103
102
|
},
|
|
103
|
+
enableAv1SlidesSupport: false,
|
|
104
104
|
// This only applies to non-multistream meetings
|
|
105
105
|
iceCandidatesGatheringTimeout: undefined,
|
|
106
106
|
backendIpv6NativeSupport: false,
|