@webex/plugin-meetings 3.0.0-beta.377 → 3.0.0-beta.378
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +4 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/index.js +11 -3
- package/dist/meeting/index.js.map +1 -1
- package/dist/types/constants.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +19 -19
- package/src/constants.ts +1 -0
- package/src/locus-info/index.ts +4 -1
- package/src/meeting/index.ts +13 -1
- package/test/unit/spec/locus-info/index.js +13 -6
- package/test/unit/spec/meeting/index.js +30 -1
|
@@ -238,6 +238,7 @@ export declare const EVENT_TRIGGERS: {
|
|
|
238
238
|
MEETING_UNLOCKED: string;
|
|
239
239
|
MEETING_LOCKED: string;
|
|
240
240
|
MEETING_INFO_AVAILABLE: string;
|
|
241
|
+
MEETING_INFO_UPDATED: string;
|
|
241
242
|
MEETING_LOG_UPLOAD_SUCCESS: string;
|
|
242
243
|
MEETING_LOG_UPLOAD_FAILURE: string;
|
|
243
244
|
MEETING_ACTIONS_UPDATE: string;
|
package/dist/webinar/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
63
|
this.set('canManageWebcast', canManageWebcast);
|
|
64
64
|
},
|
|
65
|
-
version: "3.0.0-beta.
|
|
65
|
+
version: "3.0.0-beta.378"
|
|
66
66
|
});
|
|
67
67
|
var _default = Webinar;
|
|
68
68
|
exports.default = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.378",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@peculiar/webcrypto": "^1.4.3",
|
|
36
|
-
"@webex/plugin-meetings": "3.0.0-beta.
|
|
37
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
38
|
-
"@webex/test-helper-mocha": "3.0.0-beta.
|
|
39
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
40
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
41
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
36
|
+
"@webex/plugin-meetings": "3.0.0-beta.378",
|
|
37
|
+
"@webex/test-helper-chai": "3.0.0-beta.378",
|
|
38
|
+
"@webex/test-helper-mocha": "3.0.0-beta.378",
|
|
39
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.378",
|
|
40
|
+
"@webex/test-helper-retry": "3.0.0-beta.378",
|
|
41
|
+
"@webex/test-helper-test-users": "3.0.0-beta.378",
|
|
42
42
|
"chai": "^4.3.4",
|
|
43
43
|
"chai-as-promised": "^7.1.1",
|
|
44
44
|
"jsdom-global": "3.0.2",
|
|
@@ -47,19 +47,19 @@
|
|
|
47
47
|
"typescript": "^4.7.4"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@webex/common": "3.0.0-beta.
|
|
50
|
+
"@webex/common": "3.0.0-beta.378",
|
|
51
51
|
"@webex/internal-media-core": "2.2.7",
|
|
52
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
53
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
54
|
-
"@webex/internal-plugin-llm": "3.0.0-beta.
|
|
55
|
-
"@webex/internal-plugin-mercury": "3.0.0-beta.
|
|
56
|
-
"@webex/internal-plugin-metrics": "3.0.0-beta.
|
|
57
|
-
"@webex/internal-plugin-support": "3.0.0-beta.
|
|
58
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
59
|
-
"@webex/media-helpers": "3.0.0-beta.
|
|
60
|
-
"@webex/plugin-people": "3.0.0-beta.
|
|
61
|
-
"@webex/plugin-rooms": "3.0.0-beta.
|
|
62
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
52
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.378",
|
|
53
|
+
"@webex/internal-plugin-device": "3.0.0-beta.378",
|
|
54
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.378",
|
|
55
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.378",
|
|
56
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.378",
|
|
57
|
+
"@webex/internal-plugin-support": "3.0.0-beta.378",
|
|
58
|
+
"@webex/internal-plugin-user": "3.0.0-beta.378",
|
|
59
|
+
"@webex/media-helpers": "3.0.0-beta.378",
|
|
60
|
+
"@webex/plugin-people": "3.0.0-beta.378",
|
|
61
|
+
"@webex/plugin-rooms": "3.0.0-beta.378",
|
|
62
|
+
"@webex/webex-core": "3.0.0-beta.378",
|
|
63
63
|
"ampersand-collection": "^2.0.2",
|
|
64
64
|
"bowser": "^2.11.0",
|
|
65
65
|
"btoa": "^1.2.1",
|
package/src/constants.ts
CHANGED
|
@@ -341,6 +341,7 @@ export const EVENT_TRIGGERS = {
|
|
|
341
341
|
MEETING_UNLOCKED: 'meeting:unlocked',
|
|
342
342
|
MEETING_LOCKED: 'meeting:locked',
|
|
343
343
|
MEETING_INFO_AVAILABLE: 'meeting:meetingInfoAvailable',
|
|
344
|
+
MEETING_INFO_UPDATED: 'meeting:meetingInfoUpdated',
|
|
344
345
|
MEETING_LOG_UPLOAD_SUCCESS: 'meeting:logUpload:success',
|
|
345
346
|
MEETING_LOG_UPLOAD_FAILURE: 'meeting:logUpload:failure',
|
|
346
347
|
MEETING_ACTIONS_UPDATE: 'meeting:actionsUpdate',
|
package/src/locus-info/index.ts
CHANGED
|
@@ -1169,7 +1169,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
1169
1169
|
file: 'locus-info',
|
|
1170
1170
|
function: 'updateMeetingInfo',
|
|
1171
1171
|
},
|
|
1172
|
-
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED
|
|
1172
|
+
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED,
|
|
1173
|
+
{
|
|
1174
|
+
isInitializing: !self, // if self is undefined, then the update is caused by locus init
|
|
1175
|
+
}
|
|
1173
1176
|
);
|
|
1174
1177
|
}
|
|
1175
1178
|
this.roles = roles;
|
package/src/meeting/index.ts
CHANGED
|
@@ -2758,12 +2758,24 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
2758
2758
|
);
|
|
2759
2759
|
}
|
|
2760
2760
|
});
|
|
2761
|
-
this.locusInfo.on(LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, () => {
|
|
2761
|
+
this.locusInfo.on(LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, ({isInitializing}) => {
|
|
2762
2762
|
this.updateMeetingActions();
|
|
2763
2763
|
this.recordingController.setDisplayHints(this.userDisplayHints);
|
|
2764
2764
|
this.recordingController.setUserPolicy(this.selfUserPolicies);
|
|
2765
2765
|
this.controlsOptionsManager.setDisplayHints(this.userDisplayHints);
|
|
2766
2766
|
this.handleDataChannelUrlChange(this.datachannelUrl);
|
|
2767
|
+
|
|
2768
|
+
if (!isInitializing) {
|
|
2769
|
+
// send updated trigger only if locus is not initializing the meeting
|
|
2770
|
+
Trigger.trigger(
|
|
2771
|
+
this,
|
|
2772
|
+
{
|
|
2773
|
+
file: 'meetings',
|
|
2774
|
+
function: 'setUpLocusInfoMeetingInfoListener',
|
|
2775
|
+
},
|
|
2776
|
+
EVENT_TRIGGERS.MEETING_INFO_UPDATED
|
|
2777
|
+
);
|
|
2778
|
+
}
|
|
2767
2779
|
});
|
|
2768
2780
|
}
|
|
2769
2781
|
|
|
@@ -1377,7 +1377,7 @@ describe('plugin-meetings', () => {
|
|
|
1377
1377
|
);
|
|
1378
1378
|
});
|
|
1379
1379
|
|
|
1380
|
-
const checkMeetingInfoUpdatedCalled = (expected) => {
|
|
1380
|
+
const checkMeetingInfoUpdatedCalled = (expected, payload) => {
|
|
1381
1381
|
const expectedArgs = [
|
|
1382
1382
|
locusInfo.emitScoped,
|
|
1383
1383
|
{
|
|
@@ -1385,6 +1385,7 @@ describe('plugin-meetings', () => {
|
|
|
1385
1385
|
function: 'updateMeetingInfo',
|
|
1386
1386
|
},
|
|
1387
1387
|
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED,
|
|
1388
|
+
payload
|
|
1388
1389
|
];
|
|
1389
1390
|
|
|
1390
1391
|
if (expected) {
|
|
@@ -1395,7 +1396,7 @@ describe('plugin-meetings', () => {
|
|
|
1395
1396
|
locusInfo.emitScoped.resetHistory();
|
|
1396
1397
|
};
|
|
1397
1398
|
|
|
1398
|
-
const checkMeetingInfoUpdatedCalledForRoles = (expected) => {
|
|
1399
|
+
const checkMeetingInfoUpdatedCalledForRoles = (expected, payload) => {
|
|
1399
1400
|
const expectedArgs = [
|
|
1400
1401
|
locusInfo.emitScoped,
|
|
1401
1402
|
{
|
|
@@ -1403,6 +1404,7 @@ describe('plugin-meetings', () => {
|
|
|
1403
1404
|
function: 'updateMeetingInfo',
|
|
1404
1405
|
},
|
|
1405
1406
|
LOCUSINFO.EVENTS.MEETING_INFO_UPDATED,
|
|
1407
|
+
payload
|
|
1406
1408
|
];
|
|
1407
1409
|
|
|
1408
1410
|
if (expected) {
|
|
@@ -1447,7 +1449,7 @@ describe('plugin-meetings', () => {
|
|
|
1447
1449
|
|
|
1448
1450
|
// since it was initially undefined, this should trigger the event
|
|
1449
1451
|
|
|
1450
|
-
checkMeetingInfoUpdatedCalled(true);
|
|
1452
|
+
checkMeetingInfoUpdatedCalled(true, {isInitializing: false});
|
|
1451
1453
|
|
|
1452
1454
|
const newInfo = cloneDeep(meetingInfo);
|
|
1453
1455
|
|
|
@@ -1472,7 +1474,7 @@ describe('plugin-meetings', () => {
|
|
|
1472
1474
|
};
|
|
1473
1475
|
locusInfo.updateMeetingInfo(newInfo, self);
|
|
1474
1476
|
|
|
1475
|
-
checkMeetingInfoUpdatedCalled(true);
|
|
1477
|
+
checkMeetingInfoUpdatedCalled(true, {isInitializing: false});
|
|
1476
1478
|
|
|
1477
1479
|
// update it with the same info
|
|
1478
1480
|
expectedMeeting = {
|
|
@@ -1494,7 +1496,7 @@ describe('plugin-meetings', () => {
|
|
|
1494
1496
|
locusInfo.updateMeetingInfo(newInfo, self);
|
|
1495
1497
|
|
|
1496
1498
|
// since the info is the same it should not call trigger the event
|
|
1497
|
-
checkMeetingInfoUpdatedCalled(false);
|
|
1499
|
+
checkMeetingInfoUpdatedCalled(false, {isInitializing: false});
|
|
1498
1500
|
|
|
1499
1501
|
// update it with the same info, but roles changed
|
|
1500
1502
|
const updateSelf = cloneDeep(self);
|
|
@@ -1525,7 +1527,7 @@ describe('plugin-meetings', () => {
|
|
|
1525
1527
|
};
|
|
1526
1528
|
locusInfo.updateMeetingInfo(newInfo, updateSelf);
|
|
1527
1529
|
// since the info is the same but roles changed, it should call trigger the event
|
|
1528
|
-
checkMeetingInfoUpdatedCalledForRoles(true);
|
|
1530
|
+
checkMeetingInfoUpdatedCalledForRoles(true, {isInitializing: false});
|
|
1529
1531
|
});
|
|
1530
1532
|
|
|
1531
1533
|
it('gets roles from self if available', () => {
|
|
@@ -1546,12 +1548,17 @@ describe('plugin-meetings', () => {
|
|
|
1546
1548
|
roles: ['MODERATOR', 'COHOST'],
|
|
1547
1549
|
};
|
|
1548
1550
|
|
|
1551
|
+
sinon.stub(locusInfo, 'emitScoped');
|
|
1552
|
+
|
|
1549
1553
|
const parsedLocusInfo = cloneDeep(locusInfo.parsedLocus.info);
|
|
1550
1554
|
|
|
1551
1555
|
locusInfo.updateMeetingInfo(initialInfo);
|
|
1552
1556
|
assert.calledWith(isJoinedSpy, locusInfo.parsedLocus.self);
|
|
1553
1557
|
assert.neverCalledWith(getRolesSpy, self);
|
|
1554
1558
|
assert.calledWith(getInfosSpy, parsedLocusInfo, initialInfo, ['MODERATOR', 'COHOST']);
|
|
1559
|
+
|
|
1560
|
+
// since self is not passed to updateMeetingInfo, MEETING_INFO_UPDATED should be triggered with isIntializing: true
|
|
1561
|
+
checkMeetingInfoUpdatedCalledForRoles(true, {isInitializing: true});
|
|
1555
1562
|
});
|
|
1556
1563
|
});
|
|
1557
1564
|
|
|
@@ -2512,6 +2512,7 @@ describe('plugin-meetings', () => {
|
|
|
2512
2512
|
clientErrorCode: ICE_FAILED_WITH_TURN_TLS_CLIENT_CODE,
|
|
2513
2513
|
expectedErrorPayload: {
|
|
2514
2514
|
errorDescription: ERROR_DESCRIPTIONS.ICE_FAILED_WITH_TURN_TLS,
|
|
2515
|
+
category: 'network',
|
|
2515
2516
|
},
|
|
2516
2517
|
},
|
|
2517
2518
|
].forEach(({clientErrorCode, expectedErrorPayload}) => {
|
|
@@ -8155,13 +8156,41 @@ describe('plugin-meetings', () => {
|
|
|
8155
8156
|
assert.equal(locusInfoOnSpy.thirdCall.args[0], 'MEETING_INFO_UPDATED');
|
|
8156
8157
|
const callback = locusInfoOnSpy.thirdCall.args[1];
|
|
8157
8158
|
|
|
8158
|
-
callback();
|
|
8159
|
+
callback({isInitializing: true});
|
|
8159
8160
|
|
|
8160
8161
|
assert.calledWith(updateMeetingActionsSpy);
|
|
8161
8162
|
assert.calledWith(setRecordingDisplayHintsSpy, userDisplayHints);
|
|
8162
8163
|
assert.calledWith(setUserPolicySpy, userDisplayPolicy);
|
|
8163
8164
|
assert.calledWith(setControlsDisplayHintsSpy, userDisplayHints);
|
|
8164
8165
|
assert.calledWith(handleDataChannelUrlChangeSpy, datachannelUrl);
|
|
8166
|
+
|
|
8167
|
+
assert.neverCalledWith(
|
|
8168
|
+
TriggerProxy.trigger,
|
|
8169
|
+
meeting,
|
|
8170
|
+
{
|
|
8171
|
+
file: 'meetings',
|
|
8172
|
+
function: 'setUpLocusInfoMeetingInfoListener',
|
|
8173
|
+
},
|
|
8174
|
+
'meeting:meetingInfoUpdated'
|
|
8175
|
+
)
|
|
8176
|
+
|
|
8177
|
+
callback({isIntialized: false});
|
|
8178
|
+
|
|
8179
|
+
assert.calledWith(updateMeetingActionsSpy);
|
|
8180
|
+
assert.calledWith(setRecordingDisplayHintsSpy, userDisplayHints);
|
|
8181
|
+
assert.calledWith(setUserPolicySpy, userDisplayPolicy);
|
|
8182
|
+
assert.calledWith(setControlsDisplayHintsSpy, userDisplayHints);
|
|
8183
|
+
assert.calledWith(handleDataChannelUrlChangeSpy, datachannelUrl);
|
|
8184
|
+
|
|
8185
|
+
assert.calledWith(
|
|
8186
|
+
TriggerProxy.trigger,
|
|
8187
|
+
meeting,
|
|
8188
|
+
{
|
|
8189
|
+
file: 'meetings',
|
|
8190
|
+
function: 'setUpLocusInfoMeetingInfoListener',
|
|
8191
|
+
},
|
|
8192
|
+
'meeting:meetingInfoUpdated'
|
|
8193
|
+
)
|
|
8165
8194
|
});
|
|
8166
8195
|
});
|
|
8167
8196
|
|