@webex/plugin-meetings 3.0.0-beta.350 → 3.0.0-beta.351
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 +3 -2
- 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 +8 -8
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/index.js +20 -30
- package/dist/meeting/index.js.map +1 -1
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/locus-info/index.d.ts +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +19 -19
- package/src/constants.ts +2 -1
- package/src/locus-info/index.ts +13 -12
- package/src/meeting/index.ts +0 -10
- package/test/unit/spec/locus-info/index.js +53 -5
- package/test/unit/spec/meeting/index.js +0 -35
|
@@ -441,6 +441,8 @@ export declare const LOCUS: {
|
|
|
441
441
|
INACTIVE: string;
|
|
442
442
|
ENDED: string;
|
|
443
443
|
INITIALIZING: string;
|
|
444
|
+
ACTIVE: string;
|
|
445
|
+
TERMINATING: string;
|
|
444
446
|
};
|
|
445
447
|
SEQUENCE: {
|
|
446
448
|
UN_DEF: string;
|
|
@@ -521,7 +523,6 @@ export declare const LOCUSINFO: {
|
|
|
521
523
|
CONTROLS_MEETING_CONTAINER_UPDATED: string;
|
|
522
524
|
CONTROLS_MEETING_INTERPRETATION_UPDATED: string;
|
|
523
525
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: string;
|
|
524
|
-
CONTROLS_JOIN_BREAKOUT_FROM_MAIN: string;
|
|
525
526
|
CONTROLS_MUTE_ON_ENTRY_CHANGED: string;
|
|
526
527
|
CONTROLS_SHARE_CONTROL_CHANGED: string;
|
|
527
528
|
CONTROLS_DISALLOW_UNMUTE_CHANGED: string;
|
|
@@ -292,7 +292,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
292
292
|
updateLocusCache(locus: any): void;
|
|
293
293
|
/**
|
|
294
294
|
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
295
|
-
* if join breakout from main session,
|
|
295
|
+
* if join breakout from main session, main session is not active for the attendee and remove main session locus cache
|
|
296
296
|
* @param {Object} newLocus
|
|
297
297
|
* @returns {Object}
|
|
298
298
|
* @memberof LocusInfo
|
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.351"
|
|
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.351",
|
|
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.351",
|
|
37
|
+
"@webex/test-helper-chai": "3.0.0-beta.351",
|
|
38
|
+
"@webex/test-helper-mocha": "3.0.0-beta.351",
|
|
39
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.351",
|
|
40
|
+
"@webex/test-helper-retry": "3.0.0-beta.351",
|
|
41
|
+
"@webex/test-helper-test-users": "3.0.0-beta.351",
|
|
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.351",
|
|
51
51
|
"@webex/internal-media-core": "2.2.6",
|
|
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.351",
|
|
53
|
+
"@webex/internal-plugin-device": "3.0.0-beta.351",
|
|
54
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.351",
|
|
55
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.351",
|
|
56
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.351",
|
|
57
|
+
"@webex/internal-plugin-support": "3.0.0-beta.351",
|
|
58
|
+
"@webex/internal-plugin-user": "3.0.0-beta.351",
|
|
59
|
+
"@webex/media-helpers": "3.0.0-beta.351",
|
|
60
|
+
"@webex/plugin-people": "3.0.0-beta.351",
|
|
61
|
+
"@webex/plugin-rooms": "3.0.0-beta.351",
|
|
62
|
+
"@webex/webex-core": "3.0.0-beta.351",
|
|
63
63
|
"ampersand-collection": "^2.0.2",
|
|
64
64
|
"bowser": "^2.11.0",
|
|
65
65
|
"btoa": "^1.2.1",
|
package/src/constants.ts
CHANGED
|
@@ -580,6 +580,8 @@ export const LOCUS = {
|
|
|
580
580
|
INACTIVE: 'INACTIVE',
|
|
581
581
|
ENDED: 'ENDED',
|
|
582
582
|
INITIALIZING: 'INITIALIZING',
|
|
583
|
+
ACTIVE: 'ACTIVE',
|
|
584
|
+
TERMINATING: 'TERMINATING',
|
|
583
585
|
},
|
|
584
586
|
SEQUENCE: {
|
|
585
587
|
UN_DEF: 'undef',
|
|
@@ -663,7 +665,6 @@ export const LOCUSINFO = {
|
|
|
663
665
|
CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
|
|
664
666
|
CONTROLS_MEETING_INTERPRETATION_UPDATED: 'CONTROLS_MEETING_INTERPRETATION_UPDATED',
|
|
665
667
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
|
|
666
|
-
CONTROLS_JOIN_BREAKOUT_FROM_MAIN: 'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
|
|
667
668
|
CONTROLS_MUTE_ON_ENTRY_CHANGED: 'CONTROLS_MUTE_ON_ENTRY_CHANGED',
|
|
668
669
|
CONTROLS_SHARE_CONTROL_CHANGED: 'CONTROLS_SHARE_CONTROL_CHANGED',
|
|
669
670
|
CONTROLS_DISALLOW_UNMUTE_CHANGED: 'CONTROLS_DISALLOW_UNMUTE_CHANGED',
|
package/src/locus-info/index.ts
CHANGED
|
@@ -1604,7 +1604,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1604
1604
|
|
|
1605
1605
|
/**
|
|
1606
1606
|
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
1607
|
-
* if join breakout from main session,
|
|
1607
|
+
* if join breakout from main session, main session is not active for the attendee and remove main session locus cache
|
|
1608
1608
|
* @param {Object} newLocus
|
|
1609
1609
|
* @returns {Object}
|
|
1610
1610
|
* @memberof LocusInfo
|
|
@@ -1614,17 +1614,18 @@ export default class LocusInfo extends EventsScope {
|
|
|
1614
1614
|
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
|
1615
1615
|
return cloneDeep(this.mainSessionLocusCache);
|
|
1616
1616
|
}
|
|
1617
|
-
|
|
1618
|
-
this.
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1617
|
+
const isMainSessionDTO =
|
|
1618
|
+
this.mainSessionLocusCache && ControlsUtils.isMainSessionDTO(this.mainSessionLocusCache);
|
|
1619
|
+
|
|
1620
|
+
if (isMainSessionDTO) {
|
|
1621
|
+
const isActive =
|
|
1622
|
+
[LOCUS.STATE.ACTIVE, LOCUS.STATE.INITIALIZING, LOCUS.STATE.TERMINATING].includes(
|
|
1623
|
+
this.fullState?.state
|
|
1624
|
+
) && !this.mainSessionLocusCache?.self?.removed;
|
|
1625
|
+
|
|
1626
|
+
if (!isActive) {
|
|
1627
|
+
this.clearMainSessionLocusCache();
|
|
1628
|
+
}
|
|
1628
1629
|
}
|
|
1629
1630
|
|
|
1630
1631
|
return newLocus;
|
package/src/meeting/index.ts
CHANGED
|
@@ -2230,16 +2230,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
2230
2230
|
}
|
|
2231
2231
|
);
|
|
2232
2232
|
|
|
2233
|
-
this.locusInfo.on(LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN, ({mainLocusUrl}) => {
|
|
2234
|
-
this.meetingRequest.getLocusStatusByUrl(mainLocusUrl).catch((error) => {
|
|
2235
|
-
// clear main session cache when attendee join into breakout and forbidden to get locus from main locus url,
|
|
2236
|
-
// which means main session is not active for the attendee
|
|
2237
|
-
if (error?.statusCode === 403) {
|
|
2238
|
-
this.locusInfo.clearMainSessionLocusCache();
|
|
2239
|
-
}
|
|
2240
|
-
});
|
|
2241
|
-
});
|
|
2242
|
-
|
|
2243
2233
|
this.locusInfo.on(LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, ({entryExitTone}) => {
|
|
2244
2234
|
Trigger.trigger(
|
|
2245
2235
|
this,
|
|
@@ -2058,7 +2058,7 @@ describe('plugin-meetings', () => {
|
|
|
2058
2058
|
});
|
|
2059
2059
|
|
|
2060
2060
|
describe('#getTheLocusToUpdate', () => {
|
|
2061
|
-
it('return the cache locus if return to main session', () => {
|
|
2061
|
+
it('return the cache locus if return to main session and do not clear main session cache', () => {
|
|
2062
2062
|
locusInfo.mainSessionLocusCache = {url: 'url'};
|
|
2063
2063
|
locusInfo.controls = {
|
|
2064
2064
|
breakout: {
|
|
@@ -2074,9 +2074,13 @@ describe('plugin-meetings', () => {
|
|
|
2074
2074
|
};
|
|
2075
2075
|
|
|
2076
2076
|
assert.deepEqual(locusInfo.getTheLocusToUpdate(newLocus), {url: 'url'});
|
|
2077
|
+
|
|
2078
|
+
locusInfo.clearMainSessionLocusCache = sinon.stub();
|
|
2079
|
+
locusInfo.getTheLocusToUpdate(newLocus);
|
|
2080
|
+
assert.notCalled(locusInfo.clearMainSessionLocusCache)
|
|
2077
2081
|
});
|
|
2078
2082
|
|
|
2079
|
-
it('return the new locus if return to main session but no cache', () => {
|
|
2083
|
+
it('return the new locus if return to main session but no cache and do not clear main session cache', () => {
|
|
2080
2084
|
locusInfo.mainSessionLocusCache = null;
|
|
2081
2085
|
locusInfo.controls = {
|
|
2082
2086
|
breakout: {
|
|
@@ -2092,10 +2096,22 @@ describe('plugin-meetings', () => {
|
|
|
2092
2096
|
};
|
|
2093
2097
|
|
|
2094
2098
|
assert.deepEqual(locusInfo.getTheLocusToUpdate(newLocus), newLocus);
|
|
2099
|
+
|
|
2100
|
+
locusInfo.clearMainSessionLocusCache = sinon.stub();
|
|
2101
|
+
locusInfo.getTheLocusToUpdate(newLocus);
|
|
2102
|
+
assert.notCalled(locusInfo.clearMainSessionLocusCache)
|
|
2095
2103
|
});
|
|
2096
2104
|
|
|
2097
|
-
it('return the new locus if not return to main session', () => {
|
|
2098
|
-
locusInfo.mainSessionLocusCache = {
|
|
2105
|
+
it('return the new locus if not return to main session and clear main session cache', () => {
|
|
2106
|
+
locusInfo.mainSessionLocusCache = {
|
|
2107
|
+
controls: {
|
|
2108
|
+
breakout: {
|
|
2109
|
+
sessionType: 'MAIN',
|
|
2110
|
+
},
|
|
2111
|
+
},
|
|
2112
|
+
self: {removed: true}
|
|
2113
|
+
};
|
|
2114
|
+
locusInfo.fullState = {state: 'ACTIVE'}
|
|
2099
2115
|
locusInfo.controls = {
|
|
2100
2116
|
breakout: {
|
|
2101
2117
|
sessionType: 'MAIN',
|
|
@@ -2109,7 +2125,39 @@ describe('plugin-meetings', () => {
|
|
|
2109
2125
|
},
|
|
2110
2126
|
};
|
|
2111
2127
|
|
|
2112
|
-
|
|
2128
|
+
locusInfo.clearMainSessionLocusCache = sinon.stub();
|
|
2129
|
+
const result = locusInfo.getTheLocusToUpdate(newLocus);
|
|
2130
|
+
assert.calledOnce(locusInfo.clearMainSessionLocusCache)
|
|
2131
|
+
|
|
2132
|
+
assert.deepEqual(result, newLocus);
|
|
2133
|
+
});
|
|
2134
|
+
|
|
2135
|
+
it('do not clear main session cache when "mainSessionLocusCache?.self?.removed" is not true', () => {
|
|
2136
|
+
locusInfo.mainSessionLocusCache = {
|
|
2137
|
+
controls: {
|
|
2138
|
+
breakout: {
|
|
2139
|
+
sessionType: 'MAIN',
|
|
2140
|
+
},
|
|
2141
|
+
},
|
|
2142
|
+
self: {removed: undefined}
|
|
2143
|
+
};
|
|
2144
|
+
locusInfo.fullState = {state: 'ACTIVE'}
|
|
2145
|
+
locusInfo.controls = {
|
|
2146
|
+
breakout: {
|
|
2147
|
+
sessionType: 'MAIN',
|
|
2148
|
+
},
|
|
2149
|
+
};
|
|
2150
|
+
const newLocus = {
|
|
2151
|
+
controls: {
|
|
2152
|
+
breakout: {
|
|
2153
|
+
sessionType: 'BREAKOUT',
|
|
2154
|
+
},
|
|
2155
|
+
},
|
|
2156
|
+
};
|
|
2157
|
+
|
|
2158
|
+
locusInfo.clearMainSessionLocusCache = sinon.stub();
|
|
2159
|
+
locusInfo.getTheLocusToUpdate(newLocus);
|
|
2160
|
+
assert.notCalled(locusInfo.clearMainSessionLocusCache)
|
|
2113
2161
|
});
|
|
2114
2162
|
});
|
|
2115
2163
|
|
|
@@ -6994,41 +6994,6 @@ describe('plugin-meetings', () => {
|
|
|
6994
6994
|
);
|
|
6995
6995
|
});
|
|
6996
6996
|
|
|
6997
|
-
it('listens to the timing that user joined into breakout', async () => {
|
|
6998
|
-
const mainLocusUrl = 'mainLocusUrl123';
|
|
6999
|
-
|
|
7000
|
-
meeting.meetingRequest.getLocusStatusByUrl = sinon.stub().returns(Promise.resolve());
|
|
7001
|
-
|
|
7002
|
-
await meeting.locusInfo.emit(
|
|
7003
|
-
{function: 'test', file: 'test'},
|
|
7004
|
-
'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
|
|
7005
|
-
{mainLocusUrl}
|
|
7006
|
-
);
|
|
7007
|
-
|
|
7008
|
-
assert.calledOnceWithExactly(meeting.meetingRequest.getLocusStatusByUrl, mainLocusUrl);
|
|
7009
|
-
const error = {statusCode: 403};
|
|
7010
|
-
meeting.meetingRequest.getLocusStatusByUrl.rejects(error);
|
|
7011
|
-
meeting.locusInfo.clearMainSessionLocusCache = sinon.stub();
|
|
7012
|
-
await meeting.locusInfo.emit(
|
|
7013
|
-
{function: 'test', file: 'test'},
|
|
7014
|
-
'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
|
|
7015
|
-
{mainLocusUrl}
|
|
7016
|
-
);
|
|
7017
|
-
|
|
7018
|
-
assert.calledOnce(meeting.locusInfo.clearMainSessionLocusCache);
|
|
7019
|
-
|
|
7020
|
-
const otherError = new Error('something wrong');
|
|
7021
|
-
meeting.meetingRequest.getLocusStatusByUrl.rejects(otherError);
|
|
7022
|
-
meeting.locusInfo.clearMainSessionLocusCache = sinon.stub();
|
|
7023
|
-
await meeting.locusInfo.emit(
|
|
7024
|
-
{function: 'test', file: 'test'},
|
|
7025
|
-
'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
|
|
7026
|
-
{mainLocusUrl}
|
|
7027
|
-
);
|
|
7028
|
-
|
|
7029
|
-
assert.notCalled(meeting.locusInfo.clearMainSessionLocusCache);
|
|
7030
|
-
});
|
|
7031
|
-
|
|
7032
6997
|
it('listens to the locus interpretation update event', () => {
|
|
7033
6998
|
const interpretation = {
|
|
7034
6999
|
siLanguages: [{languageCode: 20, languageName: 'en'}],
|