@webex/plugin-meetings 2.36.1 → 2.37.1
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/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -26
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -25
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -26
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +7 -46
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +1 -5
- package/dist/config.js.map +1 -1
- package/dist/constants.js +46 -42
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +10 -28
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +101 -193
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -37
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +87 -123
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +16 -81
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +74 -137
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +64 -110
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +3 -17
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +10 -12
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +120 -192
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +0 -13
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +812 -1487
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +31 -78
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +157 -227
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +25 -169
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +179 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +3 -21
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +451 -570
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +7 -30
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +94 -148
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -89
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +17 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +2 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +68 -184
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -56
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +0 -2
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +48 -136
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +28 -57
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.js +60 -190
- package/dist/peer-connection-manager/index.js.map +1 -1
- package/dist/peer-connection-manager/util.js +10 -24
- package/dist/peer-connection-manager/util.js.map +1 -1
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +100 -166
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +2 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.js +0 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +0 -5
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +294 -468
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/collection.js +1 -12
- package/dist/roap/collection.js.map +1 -1
- package/dist/roap/handler.js +15 -85
- package/dist/roap/handler.js.map +1 -1
- package/dist/roap/index.js +42 -94
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +81 -148
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.js +2 -39
- package/dist/roap/state.js.map +1 -1
- package/dist/roap/turnDiscovery.js +8 -52
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.js +0 -26
- package/dist/roap/util.js.map +1 -1
- package/dist/statsAnalyzer/global.js +0 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +68 -168
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +54 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +17 -17
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +11 -11
- package/src/constants.ts +138 -119
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +34 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +25 -34
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +4 -4
- package/src/locus-info/parser.ts +45 -68
- package/src/locus-info/selfUtils.ts +106 -57
- package/src/media/index.ts +118 -109
- package/src/media/properties.ts +26 -20
- package/src/media/util.ts +2 -2
- package/src/mediaQualityMetrics/config.ts +46 -46
- package/src/meeting/effectsState.ts +35 -35
- package/src/meeting/in-meeting-actions.ts +7 -3
- package/src/meeting/index.ts +1435 -1210
- package/src/meeting/muteState.ts +62 -31
- package/src/meeting/request.ts +160 -113
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +131 -90
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +106 -108
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +59 -53
- package/src/meetings/collection.ts +1 -1
- package/src/meetings/index.ts +513 -441
- package/src/meetings/request.ts +26 -24
- package/src/meetings/util.ts +26 -23
- package/src/member/index.ts +55 -49
- package/src/member/util.ts +26 -13
- package/src/members/collection.ts +0 -1
- package/src/members/index.ts +172 -121
- package/src/members/request.ts +46 -14
- package/src/members/util.ts +44 -42
- package/src/metrics/config.ts +254 -81
- package/src/metrics/constants.ts +0 -2
- package/src/metrics/index.ts +84 -71
- package/src/networkQualityMonitor/index.ts +20 -23
- package/src/peer-connection-manager/index.ts +321 -241
- package/src/peer-connection-manager/util.ts +4 -2
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +61 -59
- package/src/reachability/request.ts +36 -32
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +2 -3
- package/src/reconnection-manager/index.ts +159 -98
- package/src/roap/collection.ts +2 -4
- package/src/roap/handler.ts +63 -32
- package/src/roap/index.ts +78 -58
- package/src/roap/request.ts +69 -54
- package/src/roap/state.ts +17 -11
- package/src/roap/turnDiscovery.ts +60 -31
- package/src/roap/util.ts +39 -31
- package/src/statsAnalyzer/global.ts +30 -33
- package/src/statsAnalyzer/index.ts +397 -169
- package/src/statsAnalyzer/mqaUtil.ts +178 -72
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/journey.js +666 -462
- package/test/integration/spec/space-meeting.js +318 -203
- package/test/integration/spec/transcription.js +6 -7
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +5 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1 -2
- package/test/unit/spec/locus-info/infoUtils.js +24 -31
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +72 -103
- package/test/unit/spec/locus-info/selfUtils.js +21 -12
- package/test/unit/spec/meeting/effectsState.js +33 -45
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
- package/test/unit/spec/meeting/index.js +1141 -649
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +56 -45
- package/test/unit/spec/meeting/utils.js +66 -49
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +438 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +5 -6
- package/test/unit/spec/members/index.js +84 -35
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/networkQualityMonitor/index.js +21 -15
- package/test/unit/spec/peerconnection-manager/index.js +88 -58
- package/test/unit/spec/peerconnection-manager/utils.js +5 -4
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +7 -8
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +9 -11
- package/test/unit/spec/reconnection-manager/index.js +14 -17
- package/test/unit/spec/roap/index.ts +18 -8
- package/test/unit/spec/roap/turnDiscovery.ts +22 -19
- package/test/unit/spec/roap/util.js +3 -3
- package/test/unit/spec/stats-analyzer/index.js +29 -24
- package/test/utils/cmr.js +44 -42
- package/test/utils/testUtils.js +83 -74
- package/test/utils/webex-config.js +18 -18
- package/test/utils/webex-test-users.js +53 -50
package/src/members/index.ts
CHANGED
|
@@ -16,46 +16,46 @@ import MembersRequest from './request';
|
|
|
16
16
|
import MembersUtil from './util';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
* Members Update Event
|
|
20
|
+
* Emitted when something in the roster list needs to be updated
|
|
21
|
+
* @event members:update
|
|
22
|
+
* @instance
|
|
23
|
+
* @property {Object} delta the changes to the members list
|
|
24
|
+
* @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
|
|
25
|
+
* @property {Array} delta.added array added members to the meeting
|
|
26
|
+
* @property {Array} full array the full members collection
|
|
27
|
+
* @memberof Members
|
|
28
|
+
*/
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
* Members Content Update Event
|
|
32
|
+
* Emitted when who is sharing changes
|
|
33
|
+
* @event members:content:update
|
|
34
|
+
* @instance
|
|
35
|
+
* @property {String} activeContentSharingId
|
|
36
|
+
* @property {String} endedContentSharingId
|
|
37
|
+
* @memberof Members
|
|
38
|
+
*/
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
* Members Host Update Event
|
|
42
|
+
* Emitted when who is the host changes
|
|
43
|
+
* @event members:host:update
|
|
44
|
+
* @instance
|
|
45
|
+
* @property {String} activeHostId
|
|
46
|
+
* @property {String} endedHostId
|
|
47
|
+
* @memberof Members
|
|
48
|
+
*/
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
* Members Self Update Event
|
|
52
|
+
* Emitted when who is the self changes
|
|
53
|
+
* @event members:self:update
|
|
54
|
+
* @instance
|
|
55
|
+
* @property {String} activeSelfId
|
|
56
|
+
* @property {String} endedSelfId
|
|
57
|
+
* @memberof Members
|
|
58
|
+
*/
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* @class Members
|
|
@@ -87,8 +87,8 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
87
87
|
* @type {MembersRequest}
|
|
88
88
|
* @private
|
|
89
89
|
* @memberof Members
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
*/
|
|
91
|
+
// @ts-ignore
|
|
92
92
|
this.membersRequest = new MembersRequest({}, options);
|
|
93
93
|
/**
|
|
94
94
|
* The Members Collection cache
|
|
@@ -96,7 +96,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
96
96
|
* @type {MembersCollection}
|
|
97
97
|
* @private
|
|
98
98
|
* @memberof Members
|
|
99
|
-
|
|
99
|
+
*/
|
|
100
100
|
this.membersCollection = new MembersCollection();
|
|
101
101
|
/**
|
|
102
102
|
* The current locus url for the active meeting
|
|
@@ -104,7 +104,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
104
104
|
* @type {String}
|
|
105
105
|
* @private
|
|
106
106
|
* @memberof Members
|
|
107
|
-
|
|
107
|
+
*/
|
|
108
108
|
this.locusUrl = attrs.locusUrl || null;
|
|
109
109
|
/**
|
|
110
110
|
* The current hostId for the meeting
|
|
@@ -112,7 +112,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
112
112
|
* @type {String}
|
|
113
113
|
* @private
|
|
114
114
|
* @memberof Members
|
|
115
|
-
|
|
115
|
+
*/
|
|
116
116
|
this.hostId = null;
|
|
117
117
|
/**
|
|
118
118
|
* The current type for the meeting, could be MEETING or CALL
|
|
@@ -120,7 +120,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
120
120
|
* @type {String}
|
|
121
121
|
* @private
|
|
122
122
|
* @memberof Members
|
|
123
|
-
|
|
123
|
+
*/
|
|
124
124
|
this.type = null;
|
|
125
125
|
/**
|
|
126
126
|
* Locus has a self object, sent individually to the client
|
|
@@ -134,7 +134,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
134
134
|
* @type {String}
|
|
135
135
|
* @private
|
|
136
136
|
* @memberof Members
|
|
137
|
-
|
|
137
|
+
*/
|
|
138
138
|
this.selfId = null;
|
|
139
139
|
/**
|
|
140
140
|
* The current mediaShareContentId for the meeting
|
|
@@ -142,7 +142,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
142
142
|
* @type {String}
|
|
143
143
|
* @private
|
|
144
144
|
* @memberof Members
|
|
145
|
-
|
|
145
|
+
*/
|
|
146
146
|
this.mediaShareContentId = null;
|
|
147
147
|
/**
|
|
148
148
|
* The current mediaShareWhiteboardId for the meeting
|
|
@@ -150,7 +150,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
150
150
|
* @type {String}
|
|
151
151
|
* @private
|
|
152
152
|
* @memberof Members
|
|
153
|
-
|
|
153
|
+
*/
|
|
154
154
|
this.mediaShareWhiteboardId = null;
|
|
155
155
|
/**
|
|
156
156
|
* The current recordingId for the meeting, if it exists
|
|
@@ -158,7 +158,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
158
158
|
* @type {String}
|
|
159
159
|
* @private
|
|
160
160
|
* @memberof Members
|
|
161
|
-
|
|
161
|
+
*/
|
|
162
162
|
this.recordingId = null;
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -171,7 +171,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
171
171
|
* @private
|
|
172
172
|
* @memberof Members
|
|
173
173
|
*/
|
|
174
|
-
locusSelfUpdate(payload: {
|
|
174
|
+
locusSelfUpdate(payload: {newSelf: any; oldSelf: any}) {
|
|
175
175
|
let newSelfId = null;
|
|
176
176
|
let oldSelfId = null;
|
|
177
177
|
|
|
@@ -202,12 +202,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
202
202
|
this,
|
|
203
203
|
{
|
|
204
204
|
file: 'members',
|
|
205
|
-
function: 'locusSelfUpdate'
|
|
205
|
+
function: 'locusSelfUpdate',
|
|
206
206
|
},
|
|
207
207
|
EVENT_TRIGGERS.MEMBERS_SELF_UPDATE,
|
|
208
208
|
{
|
|
209
209
|
activeSelfId: newSelfId,
|
|
210
|
-
endedSelfId: oldSelfId
|
|
210
|
+
endedSelfId: oldSelfId,
|
|
211
211
|
}
|
|
212
212
|
);
|
|
213
213
|
}
|
|
@@ -221,7 +221,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
221
221
|
* @private
|
|
222
222
|
* @memberof Members
|
|
223
223
|
*/
|
|
224
|
-
locusHostUpdate(payload: {
|
|
224
|
+
locusHostUpdate(payload: {newHost: any; oldHost: any}) {
|
|
225
225
|
let newHostId = null;
|
|
226
226
|
let oldHostId = null;
|
|
227
227
|
|
|
@@ -252,12 +252,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
252
252
|
this,
|
|
253
253
|
{
|
|
254
254
|
file: 'members',
|
|
255
|
-
function: 'locusHostUpdate'
|
|
255
|
+
function: 'locusHostUpdate',
|
|
256
256
|
},
|
|
257
257
|
EVENT_TRIGGERS.MEMBERS_HOST_UPDATE,
|
|
258
258
|
{
|
|
259
259
|
activeHostId: newHostId,
|
|
260
|
-
endedHostId: oldHostId
|
|
260
|
+
endedHostId: oldHostId,
|
|
261
261
|
}
|
|
262
262
|
);
|
|
263
263
|
}
|
|
@@ -271,7 +271,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
271
271
|
* @private
|
|
272
272
|
* @memberof Members
|
|
273
273
|
*/
|
|
274
|
-
locusParticipantsUpdate(payload: {
|
|
274
|
+
locusParticipantsUpdate(payload: {participants: object}) {
|
|
275
275
|
if (payload) {
|
|
276
276
|
const delta = this.handleLocusInfoUpdatedParticipants(payload);
|
|
277
277
|
const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
|
|
@@ -280,12 +280,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
280
280
|
this,
|
|
281
281
|
{
|
|
282
282
|
file: 'members',
|
|
283
|
-
function: 'locusParticipantsUpdate'
|
|
283
|
+
function: 'locusParticipantsUpdate',
|
|
284
284
|
},
|
|
285
285
|
EVENT_TRIGGERS.MEMBERS_UPDATE,
|
|
286
286
|
{
|
|
287
287
|
delta,
|
|
288
|
-
full
|
|
288
|
+
full,
|
|
289
289
|
}
|
|
290
290
|
);
|
|
291
291
|
}
|
|
@@ -300,7 +300,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
300
300
|
* @private
|
|
301
301
|
* @memberof Members
|
|
302
302
|
*/
|
|
303
|
-
locusMediaSharesUpdate(payload: {
|
|
303
|
+
locusMediaSharesUpdate(payload: {current: any; previous: any}) {
|
|
304
304
|
const currentContent = payload.current?.content;
|
|
305
305
|
const previousContent = payload.previous?.content;
|
|
306
306
|
const currentWhiteboard = payload.current?.whiteboard;
|
|
@@ -319,8 +319,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
319
319
|
if (currentContent.disposition === FLOOR_ACTION.RELEASED) {
|
|
320
320
|
whoStopped = currentContent.beneficiaryId;
|
|
321
321
|
this.mediaShareContentId = null;
|
|
322
|
-
}
|
|
323
|
-
|
|
322
|
+
} else if (
|
|
323
|
+
currentContent.disposition === FLOOR_ACTION.GRANTED &&
|
|
324
|
+
currentContent.beneficiaryId !== previousContent.beneficiaryId
|
|
325
|
+
) {
|
|
324
326
|
whoStopped = previousContent.beneficiaryId;
|
|
325
327
|
}
|
|
326
328
|
}
|
|
@@ -337,8 +339,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
337
339
|
if (currentWhiteboard.disposition === FLOOR_ACTION.RELEASED) {
|
|
338
340
|
whoStopped = currentWhiteboard.beneficiaryId;
|
|
339
341
|
this.mediaShareWhiteboardId = null;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
+
} else if (
|
|
343
|
+
currentWhiteboard.disposition === FLOOR_ACTION.GRANTED &&
|
|
344
|
+
currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId
|
|
345
|
+
) {
|
|
342
346
|
whoStopped = previousWhiteboard.beneficiaryId;
|
|
343
347
|
}
|
|
344
348
|
}
|
|
@@ -363,17 +367,16 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
363
367
|
this,
|
|
364
368
|
{
|
|
365
369
|
file: 'members',
|
|
366
|
-
function: 'locusMediaSharesUpdate'
|
|
370
|
+
function: 'locusMediaSharesUpdate',
|
|
367
371
|
},
|
|
368
372
|
EVENT_TRIGGERS.MEMBERS_CONTENT_UPDATE,
|
|
369
373
|
{
|
|
370
374
|
activeSharingId: whoSharing,
|
|
371
|
-
endedSharingId: whoStopped
|
|
375
|
+
endedSharingId: whoStopped,
|
|
372
376
|
}
|
|
373
377
|
);
|
|
374
378
|
}
|
|
375
379
|
|
|
376
|
-
|
|
377
380
|
/**
|
|
378
381
|
* Internal update the locus url value
|
|
379
382
|
* @param {Object} payload
|
|
@@ -396,7 +399,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
396
399
|
* @private
|
|
397
400
|
* @memberof Members
|
|
398
401
|
*/
|
|
399
|
-
locusFullStateTypeUpdate(payload: {
|
|
402
|
+
locusFullStateTypeUpdate(payload: {type: string}) {
|
|
400
403
|
// TODO: at some point there could be a timing issue here, for updating each member
|
|
401
404
|
// ie., if the type changes AND there is no locus update, then each member will not know the type of call
|
|
402
405
|
// which means they cannot determine isMutable && isRemovable
|
|
@@ -453,7 +456,9 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
453
456
|
this.selfId = payload.selfId || this.selfId;
|
|
454
457
|
this.recordingId = payload.recordingId;
|
|
455
458
|
if (!payload.participants) {
|
|
456
|
-
LoggerProxy.logger.warn(
|
|
459
|
+
LoggerProxy.logger.warn(
|
|
460
|
+
'Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.'
|
|
461
|
+
);
|
|
457
462
|
}
|
|
458
463
|
const memberUpdate = this.update(payload.participants);
|
|
459
464
|
|
|
@@ -472,12 +477,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
472
477
|
public setLocusUrl(locus: any, locusUrl: string = null) {
|
|
473
478
|
if (locusUrl) {
|
|
474
479
|
this.locusUrl = locusUrl;
|
|
475
|
-
}
|
|
476
|
-
else if (locus && (locus.locusUrl || locus.url)) {
|
|
480
|
+
} else if (locus && (locus.locusUrl || locus.url)) {
|
|
477
481
|
this.locusUrl = locus.locusUrl || locus.url;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
|
|
482
|
+
} else {
|
|
483
|
+
throw new ParameterError(
|
|
484
|
+
'Setting locusUrl for the Members module should be done with a locus object or locusUrl'
|
|
485
|
+
);
|
|
481
486
|
}
|
|
482
487
|
}
|
|
483
488
|
|
|
@@ -493,12 +498,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
493
498
|
public setHostId(locus: any, hostId: string = null) {
|
|
494
499
|
if (hostId) {
|
|
495
500
|
this.hostId = hostId;
|
|
496
|
-
}
|
|
497
|
-
else if (locus) {
|
|
501
|
+
} else if (locus) {
|
|
498
502
|
this.hostId = locus && locus.owner && locus.owner.info ? locus.owner.info : null;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
|
|
503
|
+
} else {
|
|
504
|
+
throw new ParameterError(
|
|
505
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
506
|
+
);
|
|
502
507
|
}
|
|
503
508
|
}
|
|
504
509
|
|
|
@@ -514,12 +519,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
514
519
|
public setType(fullState: any, type: string = null) {
|
|
515
520
|
if (type) {
|
|
516
521
|
this.type = type;
|
|
517
|
-
}
|
|
518
|
-
else if (fullState) {
|
|
522
|
+
} else if (fullState) {
|
|
519
523
|
this.type = (fullState && fullState.type) || null;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
|
|
524
|
+
} else {
|
|
525
|
+
throw new ParameterError(
|
|
526
|
+
'Setting type for the Members module should be done with a fullstate object or type string'
|
|
527
|
+
);
|
|
523
528
|
}
|
|
524
529
|
}
|
|
525
530
|
|
|
@@ -534,12 +539,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
534
539
|
setSelfId(locus: any, selfId: string = null) {
|
|
535
540
|
if (selfId) {
|
|
536
541
|
this.selfId = selfId;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
542
|
+
} else if (locus) {
|
|
543
|
+
this.selfId =
|
|
544
|
+
locus && locus.self && locus.self.person && locus.self.person.id
|
|
545
|
+
? locus.self.person.id
|
|
546
|
+
: null;
|
|
547
|
+
} else {
|
|
548
|
+
throw new ParameterError(
|
|
549
|
+
'Setting selfid for the Members module should be done with a locus object or selfId'
|
|
550
|
+
);
|
|
543
551
|
}
|
|
544
552
|
}
|
|
545
553
|
|
|
@@ -554,8 +562,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
554
562
|
setMediaShareContentId(locus: any, contentId?: string) {
|
|
555
563
|
if (contentId) {
|
|
556
564
|
this.mediaShareContentId = contentId;
|
|
557
|
-
}
|
|
558
|
-
else if (locus) {
|
|
565
|
+
} else if (locus) {
|
|
559
566
|
const contentMediaShare =
|
|
560
567
|
locus.mediaShares &&
|
|
561
568
|
locus.mediaShares.length &&
|
|
@@ -567,9 +574,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
567
574
|
contentMediaShare.floor.beneficiary &&
|
|
568
575
|
contentMediaShare.floor.beneficiary.id) ||
|
|
569
576
|
null;
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
|
|
577
|
+
} else {
|
|
578
|
+
throw new ParameterError(
|
|
579
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
580
|
+
);
|
|
573
581
|
}
|
|
574
582
|
}
|
|
575
583
|
|
|
@@ -584,8 +592,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
584
592
|
setMediaShareWhiteboardId(locus: any, whiteboardId?: string) {
|
|
585
593
|
if (whiteboardId) {
|
|
586
594
|
this.mediaShareWhiteboardId = whiteboardId;
|
|
587
|
-
}
|
|
588
|
-
else if (locus) {
|
|
595
|
+
} else if (locus) {
|
|
589
596
|
const whiteboardMediaShare =
|
|
590
597
|
locus.mediaShares &&
|
|
591
598
|
locus.mediaShares.length &&
|
|
@@ -597,9 +604,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
597
604
|
whiteboardMediaShare.floor.beneficiary &&
|
|
598
605
|
whiteboardMediaShare.floor.beneficiary.id) ||
|
|
599
606
|
null;
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
|
|
607
|
+
} else {
|
|
608
|
+
throw new ParameterError(
|
|
609
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
610
|
+
);
|
|
603
611
|
}
|
|
604
612
|
}
|
|
605
613
|
|
|
@@ -632,11 +640,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
632
640
|
hostId: this.hostId,
|
|
633
641
|
contentSharingId: this.mediaShareContentId,
|
|
634
642
|
whiteboardSharingId: this.mediaShareWhiteboardId,
|
|
635
|
-
type: this.type
|
|
643
|
+
type: this.type,
|
|
636
644
|
})
|
|
637
645
|
);
|
|
638
|
-
}
|
|
639
|
-
else {
|
|
646
|
+
} else {
|
|
640
647
|
membersUpdate.added.push(
|
|
641
648
|
new Member(participant, {
|
|
642
649
|
recordingId: this.recordingId,
|
|
@@ -644,7 +651,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
644
651
|
hostId: this.hostId,
|
|
645
652
|
contentSharingId: this.mediaShareContentId,
|
|
646
653
|
whiteboardSharingId: this.mediaShareWhiteboardId,
|
|
647
|
-
type: this.type
|
|
654
|
+
type: this.type,
|
|
648
655
|
})
|
|
649
656
|
);
|
|
650
657
|
}
|
|
@@ -663,11 +670,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
663
670
|
*/
|
|
664
671
|
addMember(invitee: any, alertIfActive?: boolean) {
|
|
665
672
|
if (!this.locusUrl) {
|
|
666
|
-
return Promise.reject(
|
|
673
|
+
return Promise.reject(
|
|
674
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
675
|
+
);
|
|
667
676
|
}
|
|
668
677
|
if (MembersUtil.isInvalidInvitee(invitee)) {
|
|
669
678
|
return Promise.reject(
|
|
670
|
-
new ParameterError(
|
|
679
|
+
new ParameterError(
|
|
680
|
+
'The invitee must be defined with either a valid email, emailAddress or phoneNumber property.'
|
|
681
|
+
)
|
|
671
682
|
);
|
|
672
683
|
}
|
|
673
684
|
const options = MembersUtil.generateAddMemberOptions(invitee, this.locusUrl, alertIfActive);
|
|
@@ -683,7 +694,9 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
683
694
|
*/
|
|
684
695
|
cancelPhoneInvite(invitee: any) {
|
|
685
696
|
if (!this.locusUrl) {
|
|
686
|
-
return Promise.reject(
|
|
697
|
+
return Promise.reject(
|
|
698
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
699
|
+
);
|
|
687
700
|
}
|
|
688
701
|
if (MembersUtil.isInvalidInvitee(invitee)) {
|
|
689
702
|
return Promise.reject(
|
|
@@ -692,7 +705,6 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
692
705
|
}
|
|
693
706
|
const options = MembersUtil.cancelPhoneInviteOptions(invitee, this.locusUrl);
|
|
694
707
|
|
|
695
|
-
|
|
696
708
|
return this.membersRequest.cancelPhoneInvite(options);
|
|
697
709
|
}
|
|
698
710
|
|
|
@@ -721,10 +733,14 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
721
733
|
*/
|
|
722
734
|
public removeMember(memberId: string) {
|
|
723
735
|
if (!this.locusUrl) {
|
|
724
|
-
return Promise.reject(
|
|
736
|
+
return Promise.reject(
|
|
737
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
738
|
+
);
|
|
725
739
|
}
|
|
726
740
|
if (!memberId) {
|
|
727
|
-
return Promise.reject(
|
|
741
|
+
return Promise.reject(
|
|
742
|
+
new ParameterError('The member id must be defined to remove the member.')
|
|
743
|
+
);
|
|
728
744
|
}
|
|
729
745
|
const options = MembersUtil.generateRemoveMemberOptions(memberId, this.locusUrl);
|
|
730
746
|
|
|
@@ -739,12 +755,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
739
755
|
* @public
|
|
740
756
|
* @memberof Members
|
|
741
757
|
*/
|
|
742
|
-
public muteMember(memberId: string, mute
|
|
758
|
+
public muteMember(memberId: string, mute = true) {
|
|
743
759
|
if (!this.locusUrl) {
|
|
744
|
-
return Promise.reject(
|
|
760
|
+
return Promise.reject(
|
|
761
|
+
new ParameterError(
|
|
762
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
763
|
+
)
|
|
764
|
+
);
|
|
745
765
|
}
|
|
746
766
|
if (!memberId) {
|
|
747
|
-
return Promise.reject(
|
|
767
|
+
return Promise.reject(
|
|
768
|
+
new ParameterError('The member id must be defined to mute the member.')
|
|
769
|
+
);
|
|
748
770
|
}
|
|
749
771
|
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
|
|
750
772
|
|
|
@@ -759,12 +781,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
759
781
|
* @public
|
|
760
782
|
* @memberof Members
|
|
761
783
|
*/
|
|
762
|
-
public raiseOrLowerHand(memberId: string, raise
|
|
784
|
+
public raiseOrLowerHand(memberId: string, raise = true) {
|
|
763
785
|
if (!this.locusUrl) {
|
|
764
|
-
return Promise.reject(
|
|
786
|
+
return Promise.reject(
|
|
787
|
+
new ParameterError(
|
|
788
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
789
|
+
)
|
|
790
|
+
);
|
|
765
791
|
}
|
|
766
792
|
if (!memberId) {
|
|
767
|
-
return Promise.reject(
|
|
793
|
+
return Promise.reject(
|
|
794
|
+
new ParameterError('The member id must be defined to raise/lower the hand of the member.')
|
|
795
|
+
);
|
|
768
796
|
}
|
|
769
797
|
const options = MembersUtil.generateRaiseHandMemberOptions(memberId, raise, this.locusUrl);
|
|
770
798
|
|
|
@@ -780,17 +808,27 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
780
808
|
*/
|
|
781
809
|
public lowerAllHands(requestingMemberId: string) {
|
|
782
810
|
if (!this.locusUrl) {
|
|
783
|
-
return Promise.reject(
|
|
811
|
+
return Promise.reject(
|
|
812
|
+
new ParameterError(
|
|
813
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
814
|
+
)
|
|
815
|
+
);
|
|
784
816
|
}
|
|
785
817
|
if (!requestingMemberId) {
|
|
786
|
-
return Promise.reject(
|
|
818
|
+
return Promise.reject(
|
|
819
|
+
new ParameterError(
|
|
820
|
+
'The requestingMemberId must be defined to lower all hands in a meeting.'
|
|
821
|
+
)
|
|
822
|
+
);
|
|
787
823
|
}
|
|
788
|
-
const options = MembersUtil.generateLowerAllHandsMemberOptions(
|
|
824
|
+
const options = MembersUtil.generateLowerAllHandsMemberOptions(
|
|
825
|
+
requestingMemberId,
|
|
826
|
+
this.locusUrl
|
|
827
|
+
);
|
|
789
828
|
|
|
790
829
|
return this.membersRequest.lowerAllHandsMember(options);
|
|
791
830
|
}
|
|
792
831
|
|
|
793
|
-
|
|
794
832
|
/**
|
|
795
833
|
* Transfers the host to another member
|
|
796
834
|
* @param {String} memberId
|
|
@@ -799,19 +837,28 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
799
837
|
* @public
|
|
800
838
|
* @memberof Members
|
|
801
839
|
*/
|
|
802
|
-
public transferHostToMember(memberId: string, moderator
|
|
840
|
+
public transferHostToMember(memberId: string, moderator = true) {
|
|
803
841
|
if (!this.locusUrl) {
|
|
804
|
-
return Promise.reject(
|
|
842
|
+
return Promise.reject(
|
|
843
|
+
new ParameterError(
|
|
844
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
845
|
+
)
|
|
846
|
+
);
|
|
805
847
|
}
|
|
806
848
|
if (!memberId) {
|
|
807
|
-
return Promise.reject(
|
|
849
|
+
return Promise.reject(
|
|
850
|
+
new ParameterError('The member id must be defined to transfer host to the member.')
|
|
851
|
+
);
|
|
808
852
|
}
|
|
809
|
-
const options = MembersUtil.generateTransferHostMemberOptions(
|
|
853
|
+
const options = MembersUtil.generateTransferHostMemberOptions(
|
|
854
|
+
memberId,
|
|
855
|
+
moderator,
|
|
856
|
+
this.locusUrl
|
|
857
|
+
);
|
|
810
858
|
|
|
811
859
|
return this.membersRequest.transferHostToMember(options);
|
|
812
860
|
}
|
|
813
861
|
|
|
814
|
-
|
|
815
862
|
/**
|
|
816
863
|
* Sends DTMF tones for the PSTN member of a meeting
|
|
817
864
|
* @param {String} tones a string of one or more DTMF tones to send
|
|
@@ -820,7 +867,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
820
867
|
* @public
|
|
821
868
|
* @memberof Members
|
|
822
869
|
*/
|
|
823
|
-
public sendDialPadKey(tones
|
|
870
|
+
public sendDialPadKey(tones = '', memberId = '') {
|
|
824
871
|
// @ts-ignore
|
|
825
872
|
if (!tones && tones !== 0) {
|
|
826
873
|
return Promise.reject(new ParameterError('DMTF tones must be passed in'));
|
|
@@ -844,6 +891,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
844
891
|
return this.membersRequest.sendDialPadKey(options);
|
|
845
892
|
}
|
|
846
893
|
|
|
847
|
-
return Promise.reject(
|
|
894
|
+
return Promise.reject(
|
|
895
|
+
new Error(
|
|
896
|
+
'Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'
|
|
897
|
+
)
|
|
898
|
+
);
|
|
848
899
|
}
|
|
849
900
|
}
|