@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.11
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/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +7 -0
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +8 -0
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +8 -0
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +7 -0
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +7 -0
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +7 -0
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +7 -0
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +7 -0
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +5 -29
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +3 -0
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +15 -74
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +43 -5
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +4 -0
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +12 -3
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +71 -210
- package/dist/media/index.js.map +1 -1
- package/dist/media/internal-media-core-wrapper.js +22 -0
- package/dist/media/internal-media-core-wrapper.js.map +1 -0
- package/dist/media/properties.js +32 -25
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +0 -27
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +8 -1
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/index.js +1146 -602
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +6 -0
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +83 -24
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +5 -44
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +4 -1
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +5 -0
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +14 -2
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -0
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +4 -1
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +136 -25
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +4 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +24 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +30 -7
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +2 -1
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +1 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +82 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +19 -9
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +8 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +133 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/multistreamMedia.js +116 -0
- package/dist/multistream/multistreamMedia.js.map +1 -0
- package/dist/multistream/receiveSlot.js +209 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.js +195 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.js +289 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.js +243 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.js +1113 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +10 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +11 -0
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -1
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +17 -7
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +1 -0
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.js +111 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +40 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +130 -132
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +58 -231
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +7 -116
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +20 -6
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +2 -0
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +58 -37
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +9 -3
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +10 -3
- package/dist/transcription/index.js.map +1 -1
- package/package.json +21 -20
- package/src/common/{browser-detection.js → browser-detection.ts} +1 -1
- package/src/common/collection.ts +6 -6
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +5 -1
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +6 -1
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +6 -1
- package/src/common/errors/{media.js → media.ts} +5 -1
- package/src/common/errors/parameter.ts +3 -2
- package/src/common/errors/{password-error.js → password-error.ts} +5 -1
- package/src/common/errors/{permission.js → permission.ts} +5 -1
- package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
- package/src/common/errors/{reconnection.js → reconnection.ts} +5 -1
- package/src/common/errors/{stats.js → stats.ts} +5 -1
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +1 -20
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +3 -1
- package/src/common/events/{events-scope.js → events-scope.ts} +1 -1
- package/src/common/events/{events.js → events.ts} +0 -0
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +1 -2
- package/src/common/events/{util.js → util.ts} +1 -1
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/{logger-proxy.js → logger-proxy.ts} +1 -1
- package/src/common/logs/{request.js → request.ts} +12 -2
- package/src/common/queue.ts +1 -2
- package/src/{config.js → config.ts} +2 -0
- package/src/constants.ts +139 -179
- package/src/locus-info/{controlsUtils.js → controlsUtils.ts} +4 -4
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +1 -1
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +5 -5
- package/src/locus-info/{index.js → index.ts} +67 -32
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +7 -4
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +13 -13
- package/src/locus-info/{parser.js → parser.ts} +22 -12
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +17 -19
- package/src/media/{index.js → index.ts} +130 -205
- package/src/media/internal-media-core-wrapper.ts +9 -0
- package/src/media/{properties.js → properties.ts} +35 -29
- package/src/media/util.ts +16 -0
- package/src/mediaQualityMetrics/{config.js → config.ts} +1 -1
- package/src/meeting/{effectsState.js → effectsState.ts} +12 -6
- package/src/meeting/{index.js → index.ts} +993 -474
- package/src/meeting/{muteState.js → muteState.ts} +16 -11
- package/src/meeting/{request.js → request.ts} +148 -36
- package/src/meeting/{state.js → state.ts} +6 -6
- package/src/meeting/{util.js → util.ts} +9 -51
- package/src/meeting-info/{collection.js → collection.ts} +4 -1
- package/src/meeting-info/{index.js → index.ts} +10 -6
- package/src/meeting-info/{meeting-info-v2.js → meeting-info-v2.ts} +28 -10
- package/src/meeting-info/{request.js → request.ts} +6 -2
- package/src/meeting-info/{util.js → util.ts} +6 -5
- package/src/meeting-info/{utilv2.js → utilv2.ts} +8 -7
- package/src/meetings/{collection.js → collection.ts} +5 -2
- package/src/meetings/{index.js → index.ts} +118 -22
- package/src/meetings/{request.js → request.ts} +6 -1
- package/src/meetings/{util.js → util.ts} +28 -5
- package/src/member/{index.js → index.ts} +46 -15
- package/src/member/{util.js → util.ts} +17 -16
- package/src/members/{collection.js → collection.ts} +2 -1
- package/src/members/{index.js → index.ts} +94 -26
- package/src/members/{request.js → request.ts} +16 -5
- package/src/members/{util.js → util.ts} +7 -7
- package/src/metrics/{config.js → config.ts} +0 -2
- package/src/metrics/{constants.js → constants.ts} +0 -0
- package/src/metrics/{index.js → index.ts} +27 -8
- package/src/multistream/mediaRequestManager.ts +166 -0
- package/src/multistream/multistreamMedia.ts +92 -0
- package/src/multistream/receiveSlot.ts +141 -0
- package/src/multistream/receiveSlotManager.ts +142 -0
- package/src/multistream/remoteMedia.ts +228 -0
- package/src/multistream/remoteMediaGroup.ts +224 -0
- package/src/multistream/remoteMediaManager.ts +911 -0
- package/src/networkQualityMonitor/{index.js → index.ts} +18 -3
- package/src/personal-meeting-room/{index.js → index.ts} +17 -4
- package/src/personal-meeting-room/{request.js → request.ts} +3 -1
- package/src/personal-meeting-room/{util.js → util.ts} +1 -1
- package/src/reachability/{index.js → index.ts} +28 -17
- package/src/reachability/request.ts +4 -2
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +36 -0
- package/src/reconnection-manager/{index.js → index.ts} +81 -65
- package/src/roap/index.ts +229 -0
- package/src/roap/{request.js → request.ts} +15 -74
- package/src/roap/turnDiscovery.ts +26 -11
- package/src/statsAnalyzer/{global.js → global.ts} +2 -0
- package/src/statsAnalyzer/{index.js → index.ts} +66 -61
- package/src/statsAnalyzer/{mqaUtil.js → mqaUtil.ts} +6 -1
- package/src/transcription/{index.js → index.ts} +16 -11
- package/test/integration/spec/journey.js +1 -1
- package/test/integration/spec/space-meeting.js +1 -2
- package/test/unit/spec/locus-info/infoUtils.js +17 -1
- package/test/unit/spec/media/index.ts +207 -0
- package/test/unit/spec/media/properties.ts +73 -82
- package/test/unit/spec/meeting/effectsState.js +1 -3
- package/test/unit/spec/meeting/index.js +672 -245
- package/test/unit/spec/meeting/muteState.js +7 -0
- package/test/unit/spec/meeting/request.js +25 -1
- package/test/unit/spec/meeting/utils.js +63 -2
- package/test/unit/spec/meetings/index.js +0 -4
- package/test/unit/spec/members/index.js +164 -2
- package/test/unit/spec/multistream/mediaRequestManager.ts +515 -0
- package/test/unit/spec/multistream/receiveSlot.ts +104 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +173 -0
- package/test/unit/spec/multistream/remoteMedia.ts +225 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1309 -0
- package/test/unit/spec/reconnection-manager/index.js +68 -2
- package/test/unit/spec/roap/index.ts +63 -35
- package/test/unit/spec/stats-analyzer/index.js +19 -22
- package/dist/peer-connection-manager/index.js +0 -794
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.js +0 -73
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -337
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.js +0 -164
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.js +0 -102
- package/dist/roap/util.js.map +0 -1
- package/src/media/util.js +0 -38
- package/src/peer-connection-manager/index.js +0 -723
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/collection.js +0 -63
- package/src/roap/handler.js +0 -252
- package/src/roap/index.js +0 -380
- package/src/roap/state.js +0 -149
- package/src/roap/util.js +0 -93
- package/test/unit/spec/peerconnection-manager/index.js +0 -188
- package/test/unit/spec/peerconnection-manager/utils.js +0 -48
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- package/test/unit/spec/roap/util.js +0 -30
|
@@ -17,13 +17,13 @@ import {
|
|
|
17
17
|
} from '../constants';
|
|
18
18
|
import ParameterError from '../common/errors/parameter';
|
|
19
19
|
|
|
20
|
-
const MemberUtil = {};
|
|
20
|
+
const MemberUtil: any = {};
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* @param {Object} participant the locus participant
|
|
24
24
|
* @returns {Boolean}
|
|
25
25
|
*/
|
|
26
|
-
MemberUtil.isUser = (participant) => participant && participant.type === _USER_;
|
|
26
|
+
MemberUtil.isUser = (participant: any) => participant && participant.type === _USER_;
|
|
27
27
|
|
|
28
28
|
MemberUtil.isModerator = (participant) => participant && participant.moderator;
|
|
29
29
|
|
|
@@ -31,13 +31,13 @@ MemberUtil.isModerator = (participant) => participant && participant.moderator;
|
|
|
31
31
|
* @param {Object} participant the locus participant
|
|
32
32
|
* @returns {Boolean}
|
|
33
33
|
*/
|
|
34
|
-
MemberUtil.isGuest = (participant) => participant && participant.guest;
|
|
34
|
+
MemberUtil.isGuest = (participant: any) => participant && participant.guest;
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* @param {Object} participant the locus participant
|
|
38
38
|
* @returns {Boolean}
|
|
39
39
|
*/
|
|
40
|
-
MemberUtil.isDevice = (participant) => participant && participant.type === _RESOURCE_ROOM_;
|
|
40
|
+
MemberUtil.isDevice = (participant: any) => participant && participant.type === _RESOURCE_ROOM_;
|
|
41
41
|
|
|
42
42
|
MemberUtil.isModeratorAssignmentProhibited = (participant) => participant && participant.moderatorAssignmentNotAllowed;
|
|
43
43
|
|
|
@@ -48,7 +48,7 @@ MemberUtil.isModeratorAssignmentProhibited = (participant) => participant && par
|
|
|
48
48
|
* @param {String} id
|
|
49
49
|
* @returns {Boolean}
|
|
50
50
|
*/
|
|
51
|
-
MemberUtil.isSame = (participant, id) => participant &&
|
|
51
|
+
MemberUtil.isSame = (participant: any, id: string) => participant &&
|
|
52
52
|
(participant.id === id || participant.person && participant.person.id === id);
|
|
53
53
|
|
|
54
54
|
/**
|
|
@@ -58,7 +58,7 @@ MemberUtil.isSame = (participant, id) => participant &&
|
|
|
58
58
|
* @param {String} id
|
|
59
59
|
* @returns {Boolean}
|
|
60
60
|
*/
|
|
61
|
-
MemberUtil.isAssociatedSame = (participant, id) => participant &&
|
|
61
|
+
MemberUtil.isAssociatedSame = (participant: any, id: string) => participant &&
|
|
62
62
|
participant.associatedUsers &&
|
|
63
63
|
participant.associatedUsers.some((user) => (user.id === id || user.person && user.person.id === id));
|
|
64
64
|
|
|
@@ -68,16 +68,17 @@ participant.associatedUsers.some((user) => (user.id === id || user.person && use
|
|
|
68
68
|
* @param {String} status
|
|
69
69
|
* @returns {Boolean}
|
|
70
70
|
*/
|
|
71
|
-
MemberUtil.isNotAdmitted = (participant, isGuest, status) => participant &&
|
|
71
|
+
MemberUtil.isNotAdmitted = (participant: any, isGuest: boolean, status: string) => participant &&
|
|
72
72
|
participant.guest && ((participant.devices && participant.devices[0] &&
|
|
73
73
|
participant.devices[0].intent && participant.devices[0].intent.type === _WAIT_ &&
|
|
74
|
+
// @ts-ignore
|
|
74
75
|
isGuest && status === _IN_LOBBY_) || !status === _IN_MEETING_);
|
|
75
76
|
|
|
76
77
|
/**
|
|
77
78
|
* @param {Object} participant the locus participant
|
|
78
79
|
* @returns {Boolean}
|
|
79
80
|
*/
|
|
80
|
-
MemberUtil.isAudioMuted = (participant) => {
|
|
81
|
+
MemberUtil.isAudioMuted = (participant: any) => {
|
|
81
82
|
if (!participant) {
|
|
82
83
|
throw new ParameterError('Audio could not be processed, participant is undefined.');
|
|
83
84
|
}
|
|
@@ -99,7 +100,7 @@ MemberUtil.isAudioMuted = (participant) => {
|
|
|
99
100
|
* @param {Object} participant the locus participant
|
|
100
101
|
* @returns {Boolean}
|
|
101
102
|
*/
|
|
102
|
-
MemberUtil.isVideoMuted = (participant) => {
|
|
103
|
+
MemberUtil.isVideoMuted = (participant: any) => {
|
|
103
104
|
if (!participant) {
|
|
104
105
|
throw new ParameterError('Video could not be processed, participant is undefined.');
|
|
105
106
|
}
|
|
@@ -111,7 +112,7 @@ MemberUtil.isVideoMuted = (participant) => {
|
|
|
111
112
|
* @param {Object} participant the locus participant
|
|
112
113
|
* @returns {Boolean}
|
|
113
114
|
*/
|
|
114
|
-
MemberUtil.isHandRaised = (participant) => {
|
|
115
|
+
MemberUtil.isHandRaised = (participant: any) => {
|
|
115
116
|
if (!participant) {
|
|
116
117
|
throw new ParameterError('Raise hand could not be processed, participant is undefined.');
|
|
117
118
|
}
|
|
@@ -125,7 +126,7 @@ MemberUtil.isHandRaised = (participant) => {
|
|
|
125
126
|
* @param {String} accessor
|
|
126
127
|
* @returns {Boolean}
|
|
127
128
|
*/
|
|
128
|
-
MemberUtil.isMuted = (status, accessor) => {
|
|
129
|
+
MemberUtil.isMuted = (status: string, accessor: string) => {
|
|
129
130
|
if (status) {
|
|
130
131
|
if (status[accessor] === _RECEIVE_ONLY_) {
|
|
131
132
|
return true;
|
|
@@ -143,7 +144,7 @@ MemberUtil.isMuted = (status, accessor) => {
|
|
|
143
144
|
* @param {Object} controls
|
|
144
145
|
* @returns {String|null}
|
|
145
146
|
*/
|
|
146
|
-
MemberUtil.getRecordingMember = (controls) => {
|
|
147
|
+
MemberUtil.getRecordingMember = (controls: any) => {
|
|
147
148
|
if (!controls) {
|
|
148
149
|
return null;
|
|
149
150
|
}
|
|
@@ -158,7 +159,7 @@ MemberUtil.getRecordingMember = (controls) => {
|
|
|
158
159
|
* @param {Object} participant the locus participant
|
|
159
160
|
* @returns {Boolean}
|
|
160
161
|
*/
|
|
161
|
-
MemberUtil.isRecording = (participant) => {
|
|
162
|
+
MemberUtil.isRecording = (participant: any) => {
|
|
162
163
|
if (!participant) {
|
|
163
164
|
throw new ParameterError('Recording could not be processed, participant is undefined.');
|
|
164
165
|
}
|
|
@@ -204,7 +205,7 @@ MemberUtil.isMutable = (isSelf, isDevice, isInMeeting, isMuted, type) => {
|
|
|
204
205
|
* @param {Object} participant the locus participant
|
|
205
206
|
* @returns {String}
|
|
206
207
|
*/
|
|
207
|
-
MemberUtil.extractStatus = (participant) => {
|
|
208
|
+
MemberUtil.extractStatus = (participant: any) => {
|
|
208
209
|
if (!(participant && participant.devices && participant.devices.length)) {
|
|
209
210
|
return _NOT_IN_MEETING_;
|
|
210
211
|
}
|
|
@@ -231,7 +232,7 @@ MemberUtil.extractStatus = (participant) => {
|
|
|
231
232
|
* @param {Object} participant the locus participant
|
|
232
233
|
* @returns {String}
|
|
233
234
|
*/
|
|
234
|
-
MemberUtil.extractId = (participant) => {
|
|
235
|
+
MemberUtil.extractId = (participant: any) => {
|
|
235
236
|
if (participant) {
|
|
236
237
|
return participant.id;
|
|
237
238
|
}
|
|
@@ -243,7 +244,7 @@ MemberUtil.extractId = (participant) => {
|
|
|
243
244
|
* @param {Object} participant the locus participant
|
|
244
245
|
* @returns {String}
|
|
245
246
|
*/
|
|
246
|
-
MemberUtil.extractName = (participant) => {
|
|
247
|
+
MemberUtil.extractName = (participant: any) => {
|
|
247
248
|
if (participant && participant.person) {
|
|
248
249
|
return participant.person.name;
|
|
249
250
|
}
|
|
@@ -4,6 +4,7 @@ import {MEETINGS} from '../constants';
|
|
|
4
4
|
* @class MembersCollection
|
|
5
5
|
*/
|
|
6
6
|
export default class MembersCollection {
|
|
7
|
+
members: any;
|
|
7
8
|
namespace = MEETINGS;
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -26,7 +27,7 @@ export default class MembersCollection {
|
|
|
26
27
|
* @param {String} id
|
|
27
28
|
* @returns {Member}
|
|
28
29
|
*/
|
|
29
|
-
get(id) {
|
|
30
|
+
get(id: string) {
|
|
30
31
|
return this.members[id];
|
|
31
32
|
}
|
|
32
33
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
4
|
import {isEmpty} from 'lodash';
|
|
5
|
+
// @ts-ignore
|
|
5
6
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
6
7
|
|
|
7
8
|
import {MEETINGS, EVENT_TRIGGERS, FLOOR_ACTION, CONTENT, WHITEBOARD} from '../constants';
|
|
@@ -13,6 +14,8 @@ import ParameterError from '../common/errors/parameter';
|
|
|
13
14
|
import MembersCollection from './collection';
|
|
14
15
|
import MembersRequest from './request';
|
|
15
16
|
import MembersUtil from './util';
|
|
17
|
+
import {ReceiveSlotManager} from '../multistream/receiveSlotManager';
|
|
18
|
+
import {MediaRequestManager} from '../multistream/mediaRequestManager';
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* Members Update Event
|
|
@@ -60,6 +63,21 @@ import MembersUtil from './util';
|
|
|
60
63
|
* @class Members
|
|
61
64
|
*/
|
|
62
65
|
export default class Members extends StatelessWebexPlugin {
|
|
66
|
+
hostId: any;
|
|
67
|
+
locusUrl: any;
|
|
68
|
+
mediaShareContentId: any;
|
|
69
|
+
mediaShareWhiteboardId: any;
|
|
70
|
+
membersCollection: any;
|
|
71
|
+
membersRequest: any;
|
|
72
|
+
receiveSlotManager: ReceiveSlotManager;
|
|
73
|
+
mediaRequestManagers: {
|
|
74
|
+
audio: MediaRequestManager;
|
|
75
|
+
video: MediaRequestManager;
|
|
76
|
+
};
|
|
77
|
+
recordingId: any;
|
|
78
|
+
selfId: any;
|
|
79
|
+
type: any;
|
|
80
|
+
|
|
63
81
|
namespace = MEETINGS;
|
|
64
82
|
|
|
65
83
|
/**
|
|
@@ -68,7 +86,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
68
86
|
* @param {Object} options
|
|
69
87
|
* @memberof Members
|
|
70
88
|
*/
|
|
71
|
-
constructor(attrs, options) {
|
|
89
|
+
constructor(attrs: any, options: object) {
|
|
72
90
|
super({}, options);
|
|
73
91
|
/**
|
|
74
92
|
* The Members Request object to interact with server
|
|
@@ -77,6 +95,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
77
95
|
* @private
|
|
78
96
|
* @memberof Members
|
|
79
97
|
*/
|
|
98
|
+
// @ts-ignore
|
|
80
99
|
this.membersRequest = new MembersRequest({}, options);
|
|
81
100
|
/**
|
|
82
101
|
* The Members Collection cache
|
|
@@ -148,6 +167,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
148
167
|
* @memberof Members
|
|
149
168
|
*/
|
|
150
169
|
this.recordingId = null;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* reference to a ReceiveSlotManager instance (for multistream)
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
this.receiveSlotManager = attrs.receiveSlotManager;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* reference to a MediaRequestManager instance that manages main video requests (for multistream)
|
|
179
|
+
* @private
|
|
180
|
+
*/
|
|
181
|
+
this.mediaRequestManagers = attrs.mediaRequestManagers;
|
|
151
182
|
}
|
|
152
183
|
|
|
153
184
|
/**
|
|
@@ -159,7 +190,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
159
190
|
* @private
|
|
160
191
|
* @memberof Members
|
|
161
192
|
*/
|
|
162
|
-
locusSelfUpdate(payload) {
|
|
193
|
+
locusSelfUpdate(payload: { newSelf: any; oldSelf: any }) {
|
|
163
194
|
let newSelfId = null;
|
|
164
195
|
let oldSelfId = null;
|
|
165
196
|
|
|
@@ -209,7 +240,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
209
240
|
* @private
|
|
210
241
|
* @memberof Members
|
|
211
242
|
*/
|
|
212
|
-
locusHostUpdate(payload) {
|
|
243
|
+
locusHostUpdate(payload: { newHost: any; oldHost: any }) {
|
|
213
244
|
let newHostId = null;
|
|
214
245
|
let oldHostId = null;
|
|
215
246
|
|
|
@@ -259,7 +290,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
259
290
|
* @private
|
|
260
291
|
* @memberof Members
|
|
261
292
|
*/
|
|
262
|
-
locusParticipantsUpdate(payload) {
|
|
293
|
+
locusParticipantsUpdate(payload: { participants: object }) {
|
|
263
294
|
if (payload) {
|
|
264
295
|
const delta = this.handleLocusInfoUpdatedParticipants(payload);
|
|
265
296
|
const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
|
|
@@ -288,7 +319,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
288
319
|
* @private
|
|
289
320
|
* @memberof Members
|
|
290
321
|
*/
|
|
291
|
-
locusMediaSharesUpdate(payload) {
|
|
322
|
+
locusMediaSharesUpdate(payload: { current: any; previous: any }) {
|
|
292
323
|
const currentContent = payload.current?.content;
|
|
293
324
|
const previousContent = payload.previous?.content;
|
|
294
325
|
const currentWhiteboard = payload.current?.whiteboard;
|
|
@@ -370,7 +401,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
370
401
|
* @private
|
|
371
402
|
* @memberof Members
|
|
372
403
|
*/
|
|
373
|
-
locusUrlUpdate(payload) {
|
|
404
|
+
locusUrlUpdate(payload: any) {
|
|
374
405
|
if (payload) {
|
|
375
406
|
this.setLocusUrl(null, payload);
|
|
376
407
|
}
|
|
@@ -384,7 +415,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
384
415
|
* @private
|
|
385
416
|
* @memberof Members
|
|
386
417
|
*/
|
|
387
|
-
locusFullStateTypeUpdate(payload) {
|
|
418
|
+
locusFullStateTypeUpdate(payload: { type: string }) {
|
|
388
419
|
// TODO: at some point there could be a timing issue here, for updating each member
|
|
389
420
|
// ie., if the type changes AND there is no locus update, then each member will not know the type of call
|
|
390
421
|
// which means they cannot determine isMutable && isRemovable
|
|
@@ -403,7 +434,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
403
434
|
* @private
|
|
404
435
|
* @memberof Members
|
|
405
436
|
*/
|
|
406
|
-
handleMembersUpdate(membersUpdate) {
|
|
437
|
+
private handleMembersUpdate(membersUpdate: any) {
|
|
407
438
|
if (membersUpdate) {
|
|
408
439
|
if (membersUpdate.updated) {
|
|
409
440
|
this.constructMembers(membersUpdate.updated);
|
|
@@ -423,7 +454,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
423
454
|
* @private
|
|
424
455
|
* @memberof Members
|
|
425
456
|
*/
|
|
426
|
-
constructMembers(list) {
|
|
457
|
+
private constructMembers(list: Array<any>) {
|
|
427
458
|
list.forEach((member) => {
|
|
428
459
|
this.membersCollection.set(member.id, member);
|
|
429
460
|
});
|
|
@@ -436,7 +467,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
436
467
|
* @private
|
|
437
468
|
* @memberof Members
|
|
438
469
|
*/
|
|
439
|
-
handleLocusInfoUpdatedParticipants(payload) {
|
|
470
|
+
private handleLocusInfoUpdatedParticipants(payload: any) {
|
|
440
471
|
this.hostId = payload.hostId || this.hostId;
|
|
441
472
|
this.selfId = payload.selfId || this.selfId;
|
|
442
473
|
this.recordingId = payload.recordingId;
|
|
@@ -457,7 +488,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
457
488
|
* @public
|
|
458
489
|
* @memberof Members
|
|
459
490
|
*/
|
|
460
|
-
setLocusUrl(locus, locusUrl = null) {
|
|
491
|
+
public setLocusUrl(locus: any, locusUrl: string = null) {
|
|
461
492
|
if (locusUrl) {
|
|
462
493
|
this.locusUrl = locusUrl;
|
|
463
494
|
}
|
|
@@ -478,7 +509,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
478
509
|
* @public
|
|
479
510
|
* @memberof Members
|
|
480
511
|
*/
|
|
481
|
-
setHostId(locus, hostId = null) {
|
|
512
|
+
public setHostId(locus: any, hostId: string = null) {
|
|
482
513
|
if (hostId) {
|
|
483
514
|
this.hostId = hostId;
|
|
484
515
|
}
|
|
@@ -499,7 +530,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
499
530
|
* @public
|
|
500
531
|
* @memberof Members
|
|
501
532
|
*/
|
|
502
|
-
setType(fullState, type = null) {
|
|
533
|
+
public setType(fullState: any, type: string = null) {
|
|
503
534
|
if (type) {
|
|
504
535
|
this.type = type;
|
|
505
536
|
}
|
|
@@ -519,7 +550,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
519
550
|
* @returns {undefined}
|
|
520
551
|
* @memberof Members
|
|
521
552
|
*/
|
|
522
|
-
setSelfId(locus, selfId = null) {
|
|
553
|
+
setSelfId(locus: any, selfId: string = null) {
|
|
523
554
|
if (selfId) {
|
|
524
555
|
this.selfId = selfId;
|
|
525
556
|
}
|
|
@@ -539,7 +570,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
539
570
|
* @returns {undefined}
|
|
540
571
|
* @memberof Members
|
|
541
572
|
*/
|
|
542
|
-
setMediaShareContentId(locus, contentId) {
|
|
573
|
+
setMediaShareContentId(locus: any, contentId?: string) {
|
|
543
574
|
if (contentId) {
|
|
544
575
|
this.mediaShareContentId = contentId;
|
|
545
576
|
}
|
|
@@ -569,7 +600,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
569
600
|
* @returns {undefined}
|
|
570
601
|
* @memberof Members
|
|
571
602
|
*/
|
|
572
|
-
setMediaShareWhiteboardId(locus, whiteboardId) {
|
|
603
|
+
setMediaShareWhiteboardId(locus: any, whiteboardId?: string) {
|
|
573
604
|
if (whiteboardId) {
|
|
574
605
|
this.mediaShareWhiteboardId = whiteboardId;
|
|
575
606
|
}
|
|
@@ -600,7 +631,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
600
631
|
* @private
|
|
601
632
|
* @memberof Members
|
|
602
633
|
*/
|
|
603
|
-
update(participants) {
|
|
634
|
+
private update(participants: Array<any>) {
|
|
604
635
|
const membersUpdate = {added: [], updated: []};
|
|
605
636
|
|
|
606
637
|
if (participants) {
|
|
@@ -649,7 +680,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
649
680
|
* @returns {Promise}
|
|
650
681
|
* @memberof Members
|
|
651
682
|
*/
|
|
652
|
-
addMember(invitee, alertIfActive) {
|
|
683
|
+
addMember(invitee: any, alertIfActive?: boolean) {
|
|
653
684
|
if (!this.locusUrl) {
|
|
654
685
|
return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
|
|
655
686
|
}
|
|
@@ -669,7 +700,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
669
700
|
* @returns {Promise}
|
|
670
701
|
* @memberof Members
|
|
671
702
|
*/
|
|
672
|
-
cancelPhoneInvite(invitee) {
|
|
703
|
+
cancelPhoneInvite(invitee: any) {
|
|
673
704
|
if (!this.locusUrl) {
|
|
674
705
|
return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
|
|
675
706
|
}
|
|
@@ -691,7 +722,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
691
722
|
* @public
|
|
692
723
|
* @memberof Members
|
|
693
724
|
*/
|
|
694
|
-
admitMembers(memberIds) {
|
|
725
|
+
public admitMembers(memberIds: Array<any>) {
|
|
695
726
|
if (isEmpty(memberIds)) {
|
|
696
727
|
return Promise.reject(new ParameterError('No member ids provided to admit.'));
|
|
697
728
|
}
|
|
@@ -707,7 +738,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
707
738
|
* @public
|
|
708
739
|
* @memberof Members
|
|
709
740
|
*/
|
|
710
|
-
removeMember(memberId) {
|
|
741
|
+
public removeMember(memberId: string) {
|
|
711
742
|
if (!this.locusUrl) {
|
|
712
743
|
return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
|
|
713
744
|
}
|
|
@@ -727,7 +758,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
727
758
|
* @public
|
|
728
759
|
* @memberof Members
|
|
729
760
|
*/
|
|
730
|
-
muteMember(memberId, mute = true) {
|
|
761
|
+
public muteMember(memberId: string, mute: boolean = true) {
|
|
731
762
|
if (!this.locusUrl) {
|
|
732
763
|
return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
|
|
733
764
|
}
|
|
@@ -747,7 +778,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
747
778
|
* @public
|
|
748
779
|
* @memberof Members
|
|
749
780
|
*/
|
|
750
|
-
raiseOrLowerHand(memberId, raise = true) {
|
|
781
|
+
public raiseOrLowerHand(memberId: string, raise: boolean = true) {
|
|
751
782
|
if (!this.locusUrl) {
|
|
752
783
|
return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
|
|
753
784
|
}
|
|
@@ -766,7 +797,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
766
797
|
* @public
|
|
767
798
|
* @memberof Members
|
|
768
799
|
*/
|
|
769
|
-
lowerAllHands(requestingMemberId) {
|
|
800
|
+
public lowerAllHands(requestingMemberId: string) {
|
|
770
801
|
if (!this.locusUrl) {
|
|
771
802
|
return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
|
|
772
803
|
}
|
|
@@ -787,7 +818,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
787
818
|
* @public
|
|
788
819
|
* @memberof Members
|
|
789
820
|
*/
|
|
790
|
-
transferHostToMember(memberId, moderator = true) {
|
|
821
|
+
public transferHostToMember(memberId: string, moderator: boolean = true) {
|
|
791
822
|
if (!this.locusUrl) {
|
|
792
823
|
return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
|
|
793
824
|
}
|
|
@@ -808,7 +839,8 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
808
839
|
* @public
|
|
809
840
|
* @memberof Members
|
|
810
841
|
*/
|
|
811
|
-
sendDialPadKey(tones = '', memberId = '') {
|
|
842
|
+
public sendDialPadKey(tones: string = '', memberId: string = '') {
|
|
843
|
+
// @ts-ignore
|
|
812
844
|
if (!tones && tones !== 0) {
|
|
813
845
|
return Promise.reject(new ParameterError('DMTF tones must be passed in'));
|
|
814
846
|
}
|
|
@@ -833,4 +865,40 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
833
865
|
|
|
834
866
|
return Promise.reject(new Error('Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'));
|
|
835
867
|
}
|
|
868
|
+
|
|
869
|
+
/** Finds a member that has any device with a csi matching provided value
|
|
870
|
+
*
|
|
871
|
+
* @param {number} csi
|
|
872
|
+
* @returns {Member}
|
|
873
|
+
*/
|
|
874
|
+
findMemberByCsi(csi) {
|
|
875
|
+
return Object.values(this.membersCollection.getAll())
|
|
876
|
+
.find((member) => (
|
|
877
|
+
member.participant?.devices?.find((device) => (
|
|
878
|
+
device.csis?.find((memberCsi) => memberCsi === csi)))));
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
/**
|
|
882
|
+
* Returns an array of a member's CSIs matching the mediaType and mediaContent
|
|
883
|
+
*
|
|
884
|
+
* @param {string} memberId
|
|
885
|
+
* @param {string} mediaType 'audio' or 'video'
|
|
886
|
+
* @param {string} mediaContent 'main' or 'slides'
|
|
887
|
+
* @returns {Member}
|
|
888
|
+
*/
|
|
889
|
+
getCsisForMember(memberId, mediaType = 'video', mediaContent = 'main') {
|
|
890
|
+
const csis = [];
|
|
891
|
+
|
|
892
|
+
this.membersCollection.get(memberId)?.participant?.devices?.forEach((device) => {
|
|
893
|
+
if (device.mediaSessions) {
|
|
894
|
+
const deviceCsis = device.mediaSessions
|
|
895
|
+
?.filter((mediaSession) => mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent)
|
|
896
|
+
.map((mediaSession) => mediaSession.csi);
|
|
897
|
+
|
|
898
|
+
csis.push(...deviceCsis);
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
|
|
902
|
+
return csis;
|
|
903
|
+
}
|
|
836
904
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import {StatelessWebexPlugin} from '@webex/webex-core';
|
|
2
3
|
|
|
3
4
|
import {MEETINGS} from '../constants';
|
|
@@ -9,7 +10,7 @@ import MembersUtil from './util';
|
|
|
9
10
|
/**
|
|
10
11
|
* @class MembersRequest
|
|
11
12
|
*/
|
|
12
|
-
export default class MembersRequest extends StatelessWebexPlugin {
|
|
13
|
+
export default class MembersRequest extends StatelessWebexPlugin {
|
|
13
14
|
namespace = MEETINGS;
|
|
14
15
|
|
|
15
16
|
/**
|
|
@@ -19,12 +20,13 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
19
20
|
* @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
|
|
20
21
|
* @memberof MembersRequest
|
|
21
22
|
*/
|
|
22
|
-
addMembers(options) {
|
|
23
|
+
addMembers(options: any) {
|
|
23
24
|
if (!(!options || !options.invitee || (!options.invitee.emailAddress || !options.invitee.email || !options.invitee.phoneNumber) || !options.locusUrl)) {
|
|
24
25
|
throw new ParameterError('invitee must be passed and the associated locus url for this meeting object must be defined.');
|
|
25
26
|
}
|
|
26
27
|
const requestParams = MembersUtil.getAddMemberRequestParams(options);
|
|
27
28
|
|
|
29
|
+
// @ts-ignore
|
|
28
30
|
return this.request(requestParams);
|
|
29
31
|
}
|
|
30
32
|
|
|
@@ -35,12 +37,13 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
35
37
|
* @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl
|
|
36
38
|
* @memberof MembersRequest
|
|
37
39
|
*/
|
|
38
|
-
admitMember(options) {
|
|
40
|
+
admitMember(options: any) {
|
|
39
41
|
if (!options || !options.locusUrl || !options.memberIds) {
|
|
40
42
|
throw new ParameterError('memberIds must be an array passed and the associated locus url for this meeting object must be defined.');
|
|
41
43
|
}
|
|
42
44
|
const requestParams = MembersUtil.getAdmitMemberRequestParams(options);
|
|
43
45
|
|
|
46
|
+
// @ts-ignore
|
|
44
47
|
return this.request(requestParams);
|
|
45
48
|
}
|
|
46
49
|
|
|
@@ -51,6 +54,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
51
54
|
|
|
52
55
|
const requestParams = MembersUtil.getRemoveMemberRequestParams(options);
|
|
53
56
|
|
|
57
|
+
// @ts-ignore
|
|
54
58
|
return this.request(requestParams);
|
|
55
59
|
}
|
|
56
60
|
|
|
@@ -61,6 +65,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
61
65
|
|
|
62
66
|
const requestParams = MembersUtil.getMuteMemberRequestParams(options);
|
|
63
67
|
|
|
68
|
+
// @ts-ignore
|
|
64
69
|
return this.request(requestParams);
|
|
65
70
|
}
|
|
66
71
|
|
|
@@ -71,6 +76,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
71
76
|
|
|
72
77
|
const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);
|
|
73
78
|
|
|
79
|
+
// @ts-ignore
|
|
74
80
|
return this.request(requestParams);
|
|
75
81
|
}
|
|
76
82
|
|
|
@@ -81,6 +87,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
81
87
|
|
|
82
88
|
const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);
|
|
83
89
|
|
|
90
|
+
// @ts-ignore
|
|
84
91
|
return this.request(requestParams);
|
|
85
92
|
}
|
|
86
93
|
|
|
@@ -91,6 +98,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
91
98
|
|
|
92
99
|
const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);
|
|
93
100
|
|
|
101
|
+
// @ts-ignore
|
|
94
102
|
return this.request(requestParams);
|
|
95
103
|
}
|
|
96
104
|
|
|
@@ -103,13 +111,15 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
103
111
|
* @param {String} options.memberId ID of PSTN user
|
|
104
112
|
* @returns {Promise}
|
|
105
113
|
*/
|
|
106
|
-
sendDialPadKey(options) {
|
|
114
|
+
sendDialPadKey(options: { locusUrl: string; url: string; tones: string; memberId: string }) {
|
|
115
|
+
// @ts-ignore
|
|
107
116
|
if (!options || !options.locusUrl || !options.memberId || !options.url || !options.tones && options.tones !== 0) {
|
|
108
117
|
throw new ParameterError('memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.');
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
const requestParams = MembersUtil.generateSendDTMFRequestParams(options);
|
|
112
121
|
|
|
122
|
+
// @ts-ignore
|
|
113
123
|
return this.request(requestParams);
|
|
114
124
|
}
|
|
115
125
|
|
|
@@ -119,13 +129,14 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
119
129
|
* @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
|
|
120
130
|
* @memberof MembersRequest
|
|
121
131
|
*/
|
|
122
|
-
cancelPhoneInvite(options) {
|
|
132
|
+
cancelPhoneInvite(options: any) {
|
|
123
133
|
if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {
|
|
124
134
|
throw new ParameterError('invitee must be passed and the associated locus url for this meeting object must be defined.');
|
|
125
135
|
}
|
|
126
136
|
|
|
127
137
|
const requestParams = MembersUtil.generateCancelInviteRequestParams(options);
|
|
128
138
|
|
|
139
|
+
// @ts-ignore
|
|
129
140
|
return this.request(requestParams);
|
|
130
141
|
}
|
|
131
142
|
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
_REMOVE_
|
|
13
13
|
} from '../constants';
|
|
14
14
|
|
|
15
|
-
const MembersUtil = {};
|
|
15
|
+
const MembersUtil: any = {};
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @param {Object} invitee with emailAddress, email or phoneNumber
|
|
@@ -20,7 +20,7 @@ const MembersUtil = {};
|
|
|
20
20
|
* @param {Boolean} alertIfActive
|
|
21
21
|
* @returns {Object} the format object
|
|
22
22
|
*/
|
|
23
|
-
MembersUtil.generateAddMemberOptions = (invitee, locusUrl, alertIfActive) => ({
|
|
23
|
+
MembersUtil.generateAddMemberOptions = (invitee: object, locusUrl: string, alertIfActive: boolean) => ({
|
|
24
24
|
invitee,
|
|
25
25
|
locusUrl,
|
|
26
26
|
alertIfActive
|
|
@@ -31,7 +31,7 @@ MembersUtil.generateAddMemberOptions = (invitee, locusUrl, alertIfActive) => ({
|
|
|
31
31
|
* @param {String} locusUrl
|
|
32
32
|
* @returns {Object} the format object
|
|
33
33
|
*/
|
|
34
|
-
MembersUtil.generateAdmitMemberOptions = (memberIds
|
|
34
|
+
MembersUtil.generateAdmitMemberOptions = (memberIds: Array<any>, locusUrl: string) => ({
|
|
35
35
|
locusUrl,
|
|
36
36
|
memberIds
|
|
37
37
|
});
|
|
@@ -40,7 +40,7 @@ MembersUtil.generateAdmitMemberOptions = (memberIds, locusUrl) => ({
|
|
|
40
40
|
* @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}
|
|
41
41
|
* @returns {Object} with {invitees: [{address}], alertIfActive}
|
|
42
42
|
*/
|
|
43
|
-
MembersUtil.getAddMemberBody = (options) => ({
|
|
43
|
+
MembersUtil.getAddMemberBody = (options: any) => ({
|
|
44
44
|
invitees: [
|
|
45
45
|
{
|
|
46
46
|
address: options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber
|
|
@@ -53,7 +53,7 @@ MembersUtil.getAddMemberBody = (options) => ({
|
|
|
53
53
|
* @param {Object} options with {memberIds}
|
|
54
54
|
* @returns {Object} admit with {memberIds}
|
|
55
55
|
*/
|
|
56
|
-
MembersUtil.getAdmitMemberRequestBody = (options) => ({
|
|
56
|
+
MembersUtil.getAdmitMemberRequestBody = (options: any) => ({
|
|
57
57
|
admit: {participantIds: options.memberIds}
|
|
58
58
|
});
|
|
59
59
|
|
|
@@ -61,7 +61,7 @@ MembersUtil.getAdmitMemberRequestBody = (options) => ({
|
|
|
61
61
|
* @param {Object} format with {memberIds, locusUrl}
|
|
62
62
|
* @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request
|
|
63
63
|
*/
|
|
64
|
-
MembersUtil.getAdmitMemberRequestParams = (format) => {
|
|
64
|
+
MembersUtil.getAdmitMemberRequestParams = (format: any) => {
|
|
65
65
|
const body = MembersUtil.getAdmitMemberRequestBody(format);
|
|
66
66
|
const uri = `${format.locusUrl}/${CONTROLS}`;
|
|
67
67
|
|
|
@@ -76,7 +76,7 @@ MembersUtil.getAdmitMemberRequestParams = (format) => {
|
|
|
76
76
|
* @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}
|
|
77
77
|
* @returns {Object} the request parameters (method, uri, body) needed to make a addMember request
|
|
78
78
|
*/
|
|
79
|
-
MembersUtil.getAddMemberRequestParams = (format) => {
|
|
79
|
+
MembersUtil.getAddMemberRequestParams = (format: any) => {
|
|
80
80
|
const body = MembersUtil.getAddMemberBody(format);
|
|
81
81
|
const requestParams = {
|
|
82
82
|
method: HTTP_VERBS.PUT,
|
|
File without changes
|