@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.18
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 +116 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/index.js +226 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +38 -5
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +2 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +48 -0
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +1 -0
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +19 -11
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +3 -3
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +4 -4
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/index.js +651 -460
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +25 -44
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +4 -57
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +2 -0
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +28 -18
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +14 -12
- package/dist/meetings/request.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +14 -1
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +8 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -1
- package/dist/members/request.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +46 -6
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +4 -0
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +3 -3
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +8 -6
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +168 -63
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reachability/index.js +63 -51
- package/dist/reachability/index.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +25 -12
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/request.js +88 -68
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +72 -47
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/index.js +3 -3
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +18 -6
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/package.json +24 -19
- package/src/breakouts/README.md +190 -0
- package/src/breakouts/breakout.ts +110 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/index.ts +225 -0
- package/src/config.ts +4 -1
- package/src/constants.ts +35 -1
- package/src/locus-info/controlsUtils.ts +2 -0
- package/src/locus-info/index.ts +59 -1
- package/src/locus-info/parser.ts +1 -0
- package/src/locus-info/selfUtils.ts +8 -0
- package/src/media/index.ts +1 -2
- package/src/media/properties.ts +6 -9
- package/src/meeting/index.ts +352 -111
- package/src/meeting/request.ts +9 -31
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +3 -60
- package/src/meeting-info/meeting-info-v2.ts +2 -0
- package/src/meetings/index.ts +10 -5
- package/src/meetings/request.ts +1 -1
- package/src/member/index.ts +9 -0
- package/src/member/util.ts +14 -1
- package/src/members/index.ts +1 -0
- package/src/members/request.ts +1 -0
- package/src/multistream/mediaRequestManager.ts +79 -15
- package/src/multistream/multistreamMedia.ts +4 -0
- package/src/multistream/receiveSlot.ts +17 -12
- package/src/multistream/receiveSlotManager.ts +22 -21
- package/src/multistream/remoteMedia.ts +1 -1
- package/src/multistream/remoteMediaGroup.ts +2 -2
- package/src/multistream/remoteMediaManager.ts +150 -37
- package/src/reachability/index.ts +16 -13
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.type.ts +25 -0
- package/src/reconnection-manager/index.ts +18 -9
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/request.ts +78 -73
- package/src/roap/turnDiscovery.ts +8 -6
- package/src/statsAnalyzer/index.ts +4 -4
- package/src/statsAnalyzer/mqaUtil.ts +6 -0
- package/test/unit/spec/breakouts/breakout.ts +119 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/index.ts +293 -0
- package/test/unit/spec/locus-info/controlsUtils.js +20 -0
- package/test/unit/spec/locus-info/index.js +103 -0
- package/test/unit/spec/locus-info/selfConstant.js +25 -0
- package/test/unit/spec/locus-info/selfUtils.js +84 -0
- package/test/unit/spec/media/index.ts +1 -1
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/effectsState.js +5 -1
- package/test/unit/spec/meeting/index.js +235 -50
- package/test/unit/spec/meeting/request.js +17 -0
- package/test/unit/spec/meeting/utils.js +20 -129
- package/test/unit/spec/meetings/index.js +1 -0
- package/test/unit/spec/member/util.js +26 -1
- package/test/unit/spec/multistream/mediaRequestManager.ts +312 -50
- package/test/unit/spec/multistream/receiveSlot.ts +6 -6
- package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
- package/test/unit/spec/multistream/remoteMedia.ts +2 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +354 -65
- package/test/unit/spec/reachability/index.ts +58 -24
- package/test/unit/spec/reconnection-manager/index.js +42 -13
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +2 -1
- package/test/unit/spec/roap/request.ts +114 -0
- package/test/unit/spec/roap/turnDiscovery.ts +45 -29
- package/test/unit/spec/stats-analyzer/index.js +2 -2
- package/test/utils/webex-test-users.js +1 -0
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -18
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/src/media/internal-media-core-wrapper.ts +0 -9
|
@@ -33,6 +33,24 @@ describe('plugin-meetings', () => {
|
|
|
33
33
|
assert.calledWith(getRolesSpy, self);
|
|
34
34
|
|
|
35
35
|
assert.deepEqual(parsedSelf.roles, ['PRESENTER']);
|
|
36
|
+
assert.deepEqual(parsedSelf.breakoutSessions, {
|
|
37
|
+
active: [
|
|
38
|
+
{
|
|
39
|
+
name: 'Breakout session 2',
|
|
40
|
+
groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
|
|
41
|
+
sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
|
|
42
|
+
sessionType: 'BREAKOUT'
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
allowed: [
|
|
46
|
+
{
|
|
47
|
+
name: 'Breakout session 2',
|
|
48
|
+
groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
|
|
49
|
+
sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
|
|
50
|
+
sessionType: 'BREAKOUT'
|
|
51
|
+
},
|
|
52
|
+
]
|
|
53
|
+
});
|
|
36
54
|
});
|
|
37
55
|
|
|
38
56
|
it('calls getLayout and returns the resulting layout', () => {
|
|
@@ -58,6 +76,72 @@ describe('plugin-meetings', () => {
|
|
|
58
76
|
});
|
|
59
77
|
});
|
|
60
78
|
|
|
79
|
+
describe('getBreakouts', () => {
|
|
80
|
+
it('should return breakout sessions', () => {
|
|
81
|
+
assert.deepEqual(SelfUtils.getBreakouts({controls: {breakout: {sessions: 'SESSIONS'}}}), 'SESSIONS');
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
describe('breakoutsChanged', () => {
|
|
86
|
+
it('should return true if breakouts have changed', () => {
|
|
87
|
+
const current = {
|
|
88
|
+
breakoutSessions: {
|
|
89
|
+
allowed: [
|
|
90
|
+
{
|
|
91
|
+
name: 'Breakout session 2',
|
|
92
|
+
groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
|
|
93
|
+
sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
|
|
94
|
+
sessionType: 'BREAKOUT'
|
|
95
|
+
},
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const previous = {
|
|
100
|
+
breakoutSessions: {
|
|
101
|
+
active: [
|
|
102
|
+
{
|
|
103
|
+
name: 'Breakout session 2',
|
|
104
|
+
groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
|
|
105
|
+
sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
|
|
106
|
+
sessionType: 'BREAKOUT'
|
|
107
|
+
},
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
assert.isTrue(SelfUtils.breakoutsChanged(previous, current));
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('should return false if breakouts have not changed', () => {
|
|
116
|
+
const current = {
|
|
117
|
+
breakoutSessions: {
|
|
118
|
+
active: [
|
|
119
|
+
{
|
|
120
|
+
name: 'Breakout session 2',
|
|
121
|
+
groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
|
|
122
|
+
sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
|
|
123
|
+
sessionType: 'BREAKOUT'
|
|
124
|
+
},
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const previous = {
|
|
129
|
+
breakoutSessions: {
|
|
130
|
+
active: [
|
|
131
|
+
{
|
|
132
|
+
name: 'Breakout session 2',
|
|
133
|
+
groupId: '0e73abb8-5584-49d8-be8d-806d2a8247ca',
|
|
134
|
+
sessionId: '1cf41ab1-2e57-4d95-b7e9-5613acddfb0f',
|
|
135
|
+
sessionType: 'BREAKOUT'
|
|
136
|
+
},
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
assert.isFalse(SelfUtils.breakoutsChanged(previous, current));
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
|
|
61
145
|
describe('canNotViewTheParticipantList', () => {
|
|
62
146
|
it('should return the correct value', () => {
|
|
63
147
|
assert.equal(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as internalMediaModule from '@webex/
|
|
1
|
+
import * as internalMediaModule from '@webex/internal-media-core';
|
|
2
2
|
import Media from '@webex/plugin-meetings/src/media/index';
|
|
3
3
|
import {assert} from '@webex/test-helper-chai';
|
|
4
4
|
import sinon from 'sinon';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {assert} from '@webex/test-helper-chai';
|
|
2
2
|
import sinon from 'sinon';
|
|
3
|
-
import {
|
|
3
|
+
import {ConnectionState, Event} from '@webex/internal-media-core';
|
|
4
4
|
import MediaProperties from '@webex/plugin-meetings/src/media/properties';
|
|
5
5
|
import MediaUtil from '@webex/plugin-meetings/src/media/util';
|
|
6
6
|
import testUtils from '../../../utils/testUtils';
|
|
@@ -19,7 +19,7 @@ describe('MediaProperties', () => {
|
|
|
19
19
|
getStats: sinon.stub().resolves([]),
|
|
20
20
|
on: sinon.stub(),
|
|
21
21
|
off: sinon.stub(),
|
|
22
|
-
getConnectionState: sinon.stub().returns(
|
|
22
|
+
getConnectionState: sinon.stub().returns(ConnectionState.Connected),
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
mediaProperties = new MediaProperties();
|
|
@@ -35,7 +35,7 @@ describe('MediaProperties', () => {
|
|
|
35
35
|
await mediaProperties.waitForMediaConnectionConnected();
|
|
36
36
|
});
|
|
37
37
|
it('rejects after timeout if ice state does not reach connected/completed', async () => {
|
|
38
|
-
mockMC.getConnectionState.returns(
|
|
38
|
+
mockMC.getConnectionState.returns(ConnectionState.Connecting);
|
|
39
39
|
|
|
40
40
|
let promiseResolved = false;
|
|
41
41
|
let promiseRejected = false;
|
|
@@ -60,15 +60,15 @@ describe('MediaProperties', () => {
|
|
|
60
60
|
|
|
61
61
|
// check that listener was registered and removed
|
|
62
62
|
assert.calledOnce(mockMC.on);
|
|
63
|
-
assert.equal(mockMC.on.getCall(0).args[0],
|
|
63
|
+
assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
|
|
64
64
|
const listener = mockMC.on.getCall(0).args[1];
|
|
65
65
|
|
|
66
66
|
assert.calledOnce(mockMC.off);
|
|
67
|
-
assert.calledWith(mockMC.off,
|
|
67
|
+
assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
it(`resolves when media connection reaches "connected" state`, async () => {
|
|
71
|
-
mockMC.getConnectionState.returns(
|
|
71
|
+
mockMC.getConnectionState.returns(ConnectionState.Connecting);
|
|
72
72
|
|
|
73
73
|
const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
|
|
74
74
|
|
|
@@ -89,11 +89,11 @@ describe('MediaProperties', () => {
|
|
|
89
89
|
|
|
90
90
|
// check the right listener was registered
|
|
91
91
|
assert.calledOnce(mockMC.on);
|
|
92
|
-
assert.equal(mockMC.on.getCall(0).args[0],
|
|
92
|
+
assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
|
|
93
93
|
const listener = mockMC.on.getCall(0).args[1];
|
|
94
94
|
|
|
95
95
|
// call the listener and pretend we are now connected
|
|
96
|
-
mockMC.getConnectionState.returns(
|
|
96
|
+
mockMC.getConnectionState.returns(ConnectionState.Connected);
|
|
97
97
|
listener();
|
|
98
98
|
await testUtils.flushPromises();
|
|
99
99
|
|
|
@@ -102,7 +102,7 @@ describe('MediaProperties', () => {
|
|
|
102
102
|
|
|
103
103
|
// check that listener was removed
|
|
104
104
|
assert.calledOnce(mockMC.off);
|
|
105
|
-
assert.calledWith(mockMC.off,
|
|
105
|
+
assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
|
|
106
106
|
|
|
107
107
|
assert.calledOnce(clearTimeoutSpy);
|
|
108
108
|
});
|
|
@@ -12,6 +12,8 @@ import MeetingUtil from '@webex/plugin-meetings/src/meeting/util';
|
|
|
12
12
|
import createEffectsState from '@webex/plugin-meetings/src/meeting/effectsState';
|
|
13
13
|
import LoggerProxy from '@webex/plugin-meetings/src/common/logs/logger-proxy';
|
|
14
14
|
import LoggerConfig from '@webex/plugin-meetings/src/common/logs/logger-config';
|
|
15
|
+
import LLM from '@webex/internal-plugin-llm';
|
|
16
|
+
import Mercury from '@webex/internal-plugin-mercury';
|
|
15
17
|
|
|
16
18
|
describe('plugin-meetings', () => {
|
|
17
19
|
const logger = {
|
|
@@ -158,7 +160,9 @@ describe('plugin-meetings', () => {
|
|
|
158
160
|
webex = new MockWebex({
|
|
159
161
|
children: {
|
|
160
162
|
meetings: Meetings,
|
|
161
|
-
|
|
163
|
+
llm: LLM,
|
|
164
|
+
mercury: Mercury,
|
|
165
|
+
}
|
|
162
166
|
});
|
|
163
167
|
meeting = new Meeting(
|
|
164
168
|
{
|