@webex/plugin-meetings 3.0.0-beta.29 → 3.0.0-beta.290
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/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +709 -35
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/webex-errors.js +28 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +206 -29
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +383 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +61 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3576 -2946
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +256 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +402 -98
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +71 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +86 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +12 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +40 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +199 -154
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +23 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +96 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +84 -73
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +11 -10
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -6
- package/dist/types/constants.d.ts +162 -21
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
- package/dist/types/meeting/index.d.ts +413 -508
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +8 -0
- package/dist/types/meetings/index.d.ts +90 -12
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +11 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +18 -1
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- package/src/breakouts/utils.ts +42 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +27 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -9
- package/src/constants.ts +185 -18
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +2858 -2462
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +172 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +434 -108
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +79 -4
- package/src/member/index.ts +58 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +106 -7
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +11 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +47 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +81 -54
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +23 -30
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +103 -87
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +118 -28
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1395 -69
- package/test/unit/spec/breakouts/utils.js +52 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +4721 -1930
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +440 -45
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +295 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +521 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +1011 -177
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +319 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +43 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +84 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +31 -51
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +48 -13
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +112 -2
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
package/src/members/index.ts
CHANGED
|
@@ -16,6 +16,7 @@ import MembersRequest from './request';
|
|
|
16
16
|
import MembersUtil from './util';
|
|
17
17
|
import {ReceiveSlotManager} from '../multistream/receiveSlotManager';
|
|
18
18
|
import {MediaRequestManager} from '../multistream/mediaRequestManager';
|
|
19
|
+
import {ServerRoleShape} from './types';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Members Update Event
|
|
@@ -96,8 +97,14 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
96
97
|
* @private
|
|
97
98
|
* @memberof Members
|
|
98
99
|
*/
|
|
100
|
+
|
|
99
101
|
// @ts-ignore
|
|
100
|
-
this.membersRequest = new MembersRequest(
|
|
102
|
+
this.membersRequest = new MembersRequest(
|
|
103
|
+
{
|
|
104
|
+
meeting: attrs.meeting,
|
|
105
|
+
},
|
|
106
|
+
options
|
|
107
|
+
);
|
|
101
108
|
/**
|
|
102
109
|
* The Members Collection cache
|
|
103
110
|
* @instance
|
|
@@ -282,6 +289,25 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
282
289
|
);
|
|
283
290
|
}
|
|
284
291
|
|
|
292
|
+
/**
|
|
293
|
+
* clear member collection
|
|
294
|
+
* @returns {void}
|
|
295
|
+
* @private
|
|
296
|
+
* @memberof Members
|
|
297
|
+
*/
|
|
298
|
+
clearMembers() {
|
|
299
|
+
this.membersCollection.reset();
|
|
300
|
+
Trigger.trigger(
|
|
301
|
+
this,
|
|
302
|
+
{
|
|
303
|
+
file: 'members',
|
|
304
|
+
function: 'clearMembers',
|
|
305
|
+
},
|
|
306
|
+
EVENT_TRIGGERS.MEMBERS_CLEAR,
|
|
307
|
+
{}
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
|
|
285
311
|
/**
|
|
286
312
|
* when new participant updates come in, both delta and full participants, update them in members collection
|
|
287
313
|
* delta object in the event will have {updated, added} and full will be the full membersCollection
|
|
@@ -291,12 +317,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
291
317
|
* @private
|
|
292
318
|
* @memberof Members
|
|
293
319
|
*/
|
|
294
|
-
locusParticipantsUpdate(payload: {participants: object}) {
|
|
320
|
+
locusParticipantsUpdate(payload: {participants: object; isReplace?: boolean}) {
|
|
295
321
|
if (payload) {
|
|
322
|
+
if (payload.isReplace) {
|
|
323
|
+
this.clearMembers();
|
|
324
|
+
}
|
|
296
325
|
const delta = this.handleLocusInfoUpdatedParticipants(payload);
|
|
297
326
|
const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
|
|
298
327
|
|
|
299
|
-
this.receiveSlotManager
|
|
328
|
+
this.receiveSlotManager?.updateMemberIds();
|
|
300
329
|
|
|
301
330
|
Trigger.trigger(
|
|
302
331
|
this,
|
|
@@ -308,6 +337,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
308
337
|
{
|
|
309
338
|
delta,
|
|
310
339
|
full,
|
|
340
|
+
isReplace: !!payload.isReplace,
|
|
311
341
|
}
|
|
312
342
|
);
|
|
313
343
|
}
|
|
@@ -733,15 +763,22 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
733
763
|
/**
|
|
734
764
|
* Admits waiting members (invited guests to meeting)
|
|
735
765
|
* @param {Array} memberIds
|
|
766
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
736
767
|
* @returns {Promise}
|
|
737
768
|
* @public
|
|
738
769
|
* @memberof Members
|
|
739
770
|
*/
|
|
740
|
-
public admitMembers(
|
|
771
|
+
public admitMembers(
|
|
772
|
+
memberIds: Array<any>,
|
|
773
|
+
sessionLocusUrls?: {authorizingLocusUrl: string; mainLocusUrl: string}
|
|
774
|
+
) {
|
|
741
775
|
if (isEmpty(memberIds)) {
|
|
742
776
|
return Promise.reject(new ParameterError('No member ids provided to admit.'));
|
|
743
777
|
}
|
|
744
|
-
const options =
|
|
778
|
+
const options = {
|
|
779
|
+
sessionLocusUrls,
|
|
780
|
+
...MembersUtil.generateAdmitMemberOptions(memberIds, this.locusUrl),
|
|
781
|
+
};
|
|
745
782
|
|
|
746
783
|
return this.membersRequest.admitMember(options);
|
|
747
784
|
}
|
|
@@ -773,11 +810,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
773
810
|
* Audio mutes another member in a meeting
|
|
774
811
|
* @param {String} memberId
|
|
775
812
|
* @param {boolean} [mute] default true
|
|
813
|
+
* @param {boolean} [isAudio] default true
|
|
776
814
|
* @returns {Promise}
|
|
777
815
|
* @public
|
|
778
816
|
* @memberof Members
|
|
779
817
|
*/
|
|
780
|
-
public muteMember(memberId: string, mute = true) {
|
|
818
|
+
public muteMember(memberId: string, mute = true, isAudio = true) {
|
|
781
819
|
if (!this.locusUrl) {
|
|
782
820
|
return Promise.reject(
|
|
783
821
|
new ParameterError(
|
|
@@ -790,11 +828,37 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
790
828
|
new ParameterError('The member id must be defined to mute the member.')
|
|
791
829
|
);
|
|
792
830
|
}
|
|
793
|
-
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
|
|
831
|
+
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl, isAudio);
|
|
794
832
|
|
|
795
833
|
return this.membersRequest.muteMember(options);
|
|
796
834
|
}
|
|
797
835
|
|
|
836
|
+
/**
|
|
837
|
+
* Assign role(s) to a member in the meeting
|
|
838
|
+
* @param {String} memberId
|
|
839
|
+
* @param {[ServerRoleShape]} roles - to assign an array of roles
|
|
840
|
+
* @returns {Promise}
|
|
841
|
+
* @public
|
|
842
|
+
* @memberof Members
|
|
843
|
+
*/
|
|
844
|
+
public assignRoles(memberId: string, roles: Array<ServerRoleShape>) {
|
|
845
|
+
if (!this.locusUrl) {
|
|
846
|
+
return Promise.reject(
|
|
847
|
+
new ParameterError(
|
|
848
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
849
|
+
)
|
|
850
|
+
);
|
|
851
|
+
}
|
|
852
|
+
if (!memberId) {
|
|
853
|
+
return Promise.reject(
|
|
854
|
+
new ParameterError('The member id must be defined to assign the roles to a member.')
|
|
855
|
+
);
|
|
856
|
+
}
|
|
857
|
+
const options = MembersUtil.generateRoleAssignmentMemberOptions(memberId, roles, this.locusUrl);
|
|
858
|
+
|
|
859
|
+
return this.membersRequest.assignRolesMember(options);
|
|
860
|
+
}
|
|
861
|
+
|
|
798
862
|
/**
|
|
799
863
|
* Raise or lower the hand of a member in a meeting
|
|
800
864
|
* @param {String} memberId
|
|
@@ -960,4 +1024,39 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
960
1024
|
|
|
961
1025
|
return csis;
|
|
962
1026
|
}
|
|
1027
|
+
|
|
1028
|
+
/**
|
|
1029
|
+
* Edit display name of participants in a meeting
|
|
1030
|
+
* @param {string} memberId - id of the participant who is receiving request
|
|
1031
|
+
* @param {string} requestingParticipantId - id of the participant who is sending request (optional)
|
|
1032
|
+
* @param {string} [alias] - alias name
|
|
1033
|
+
* @returns {Promise}
|
|
1034
|
+
* @public
|
|
1035
|
+
* @memberof Members
|
|
1036
|
+
*/
|
|
1037
|
+
public editDisplayName(memberId: string, requestingParticipantId: string, alias: string) {
|
|
1038
|
+
if (!this.locusUrl) {
|
|
1039
|
+
return Promise.reject(
|
|
1040
|
+
new ParameterError(
|
|
1041
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
1042
|
+
)
|
|
1043
|
+
);
|
|
1044
|
+
}
|
|
1045
|
+
if (!memberId) {
|
|
1046
|
+
return Promise.reject(
|
|
1047
|
+
new ParameterError('The member id must be defined to edit display name of the member.')
|
|
1048
|
+
);
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
const {locusUrl} = this;
|
|
1052
|
+
|
|
1053
|
+
const options = MembersUtil.generateEditDisplayNameMemberOptions(
|
|
1054
|
+
memberId,
|
|
1055
|
+
requestingParticipantId,
|
|
1056
|
+
alias,
|
|
1057
|
+
locusUrl
|
|
1058
|
+
);
|
|
1059
|
+
|
|
1060
|
+
return this.membersRequest.editDisplayNameMember(options);
|
|
1061
|
+
}
|
|
963
1062
|
}
|
package/src/members/request.ts
CHANGED
|
@@ -5,12 +5,26 @@ import {MEETINGS} from '../constants';
|
|
|
5
5
|
import ParameterError from '../common/errors/parameter';
|
|
6
6
|
|
|
7
7
|
import MembersUtil from './util';
|
|
8
|
+
import MeetingUtil from '../meeting/util';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* @class MembersRequest
|
|
11
12
|
*/
|
|
12
13
|
export default class MembersRequest extends StatelessWebexPlugin {
|
|
13
14
|
namespace = MEETINGS;
|
|
15
|
+
locusDeltaRequest: (options: object) => Promise<any>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Constructor
|
|
19
|
+
* @param {Object} attrs
|
|
20
|
+
* @param {Object} options
|
|
21
|
+
*/
|
|
22
|
+
constructor(attrs: {meeting: any}, options: object) {
|
|
23
|
+
const {meeting, ...otherAttrs} = attrs;
|
|
24
|
+
super(otherAttrs, options);
|
|
25
|
+
|
|
26
|
+
this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
|
|
27
|
+
}
|
|
14
28
|
|
|
15
29
|
/**
|
|
16
30
|
*
|
|
@@ -36,8 +50,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
36
50
|
}
|
|
37
51
|
const requestParams = MembersUtil.getAddMemberRequestParams(options);
|
|
38
52
|
|
|
39
|
-
|
|
40
|
-
return this.request(requestParams);
|
|
53
|
+
return this.locusDeltaRequest(requestParams);
|
|
41
54
|
}
|
|
42
55
|
|
|
43
56
|
/**
|
|
@@ -55,10 +68,16 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
55
68
|
}
|
|
56
69
|
const requestParams = MembersUtil.getAdmitMemberRequestParams(options);
|
|
57
70
|
|
|
58
|
-
|
|
59
|
-
return this.request(requestParams);
|
|
71
|
+
return this.locusDeltaRequest(requestParams);
|
|
60
72
|
}
|
|
61
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Sends a request to remove a member
|
|
76
|
+
* @param {Object} options
|
|
77
|
+
* @param {String} options.locusUrl
|
|
78
|
+
* @param {String} options.memberId ID of member
|
|
79
|
+
* @returns {Promise}
|
|
80
|
+
*/
|
|
62
81
|
removeMember(options) {
|
|
63
82
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
64
83
|
throw new ParameterError(
|
|
@@ -68,10 +87,16 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
68
87
|
|
|
69
88
|
const requestParams = MembersUtil.getRemoveMemberRequestParams(options);
|
|
70
89
|
|
|
71
|
-
|
|
72
|
-
return this.request(requestParams);
|
|
90
|
+
return this.locusDeltaRequest(requestParams);
|
|
73
91
|
}
|
|
74
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Sends a request to mute a member
|
|
95
|
+
* @param {Object} options
|
|
96
|
+
* @param {String} options.locusUrl
|
|
97
|
+
* @param {String} options.memberId ID of member
|
|
98
|
+
* @returns {Promise}
|
|
99
|
+
*/
|
|
75
100
|
muteMember(options) {
|
|
76
101
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
77
102
|
throw new ParameterError(
|
|
@@ -82,9 +107,35 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
82
107
|
const requestParams = MembersUtil.getMuteMemberRequestParams(options);
|
|
83
108
|
|
|
84
109
|
// @ts-ignore
|
|
85
|
-
return this.
|
|
110
|
+
return this.locusDeltaRequest(requestParams);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Sends a request to the DTMF endpoint to send tones
|
|
115
|
+
* @param {Object} options
|
|
116
|
+
* @param {String} options.locusUrl
|
|
117
|
+
* @param {String} options.memberId ID of PSTN user
|
|
118
|
+
* @returns {Promise}
|
|
119
|
+
*/
|
|
120
|
+
assignRolesMember(options: any) {
|
|
121
|
+
if (!options || !options.locusUrl || !options.memberId) {
|
|
122
|
+
throw new ParameterError(
|
|
123
|
+
'memberId must be defined, and the associated locus url for this meeting object must be defined.'
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const requestParams = MembersUtil.getRoleAssignmentMemberRequestParams(options);
|
|
128
|
+
|
|
129
|
+
return this.locusDeltaRequest(requestParams);
|
|
86
130
|
}
|
|
87
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Sends a request to raise or lower a member's hand
|
|
134
|
+
* @param {Object} options
|
|
135
|
+
* @param {String} options.locusUrl
|
|
136
|
+
* @param {String} options.memberId ID of member
|
|
137
|
+
* @returns {Promise}
|
|
138
|
+
*/
|
|
88
139
|
raiseOrLowerHandMember(options) {
|
|
89
140
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
90
141
|
throw new ParameterError(
|
|
@@ -94,10 +145,16 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
94
145
|
|
|
95
146
|
const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);
|
|
96
147
|
|
|
97
|
-
|
|
98
|
-
return this.request(requestParams);
|
|
148
|
+
return this.locusDeltaRequest(requestParams);
|
|
99
149
|
}
|
|
100
150
|
|
|
151
|
+
/**
|
|
152
|
+
* Sends a request to lower all hands
|
|
153
|
+
* @param {Object} options
|
|
154
|
+
* @param {String} options.locusUrl
|
|
155
|
+
* @param {String} options.requestingParticipantId ID of requesting participant
|
|
156
|
+
* @returns {Promise}
|
|
157
|
+
*/
|
|
101
158
|
lowerAllHandsMember(options) {
|
|
102
159
|
if (!options || !options.locusUrl || !options.requestingParticipantId) {
|
|
103
160
|
throw new ParameterError(
|
|
@@ -107,10 +164,36 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
107
164
|
|
|
108
165
|
const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);
|
|
109
166
|
|
|
110
|
-
|
|
111
|
-
|
|
167
|
+
return this.locusDeltaRequest(requestParams);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
* @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
|
|
173
|
+
* @returns {Promise}
|
|
174
|
+
* @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl
|
|
175
|
+
* @memberof MembersRequest
|
|
176
|
+
*/
|
|
177
|
+
editDisplayNameMember(options: {locusUrl: string; requestingParticipantId: string}) {
|
|
178
|
+
if (!options || !options.locusUrl || !options.requestingParticipantId) {
|
|
179
|
+
throw new ParameterError(
|
|
180
|
+
'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const requestParams = MembersUtil.editDisplayNameMemberRequestParams(options);
|
|
185
|
+
|
|
186
|
+
return this.locusDeltaRequest(requestParams);
|
|
112
187
|
}
|
|
113
188
|
|
|
189
|
+
/**
|
|
190
|
+
* Sends a request to raise or lower a member's hand
|
|
191
|
+
* @param {Object} options
|
|
192
|
+
* @param {String} options.locusUrl
|
|
193
|
+
* @param {String} options.memberId ID of member
|
|
194
|
+
* @param {String} options.moderator ID of moderator
|
|
195
|
+
* @returns {Promise}
|
|
196
|
+
*/
|
|
114
197
|
transferHostToMember(options) {
|
|
115
198
|
if (!options || !options.locusUrl || !options.memberId || !options.moderator) {
|
|
116
199
|
throw new ParameterError(
|
|
@@ -120,8 +203,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
120
203
|
|
|
121
204
|
const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);
|
|
122
205
|
|
|
123
|
-
|
|
124
|
-
return this.request(requestParams);
|
|
206
|
+
return this.locusDeltaRequest(requestParams);
|
|
125
207
|
}
|
|
126
208
|
|
|
127
209
|
/**
|
|
@@ -150,8 +232,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
150
232
|
|
|
151
233
|
const requestParams = MembersUtil.generateSendDTMFRequestParams(options);
|
|
152
234
|
|
|
153
|
-
|
|
154
|
-
return this.request(requestParams);
|
|
235
|
+
return this.locusDeltaRequest(requestParams);
|
|
155
236
|
}
|
|
156
237
|
|
|
157
238
|
/**
|
|
@@ -169,7 +250,6 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
169
250
|
|
|
170
251
|
const requestParams = MembersUtil.generateCancelInviteRequestParams(options);
|
|
171
252
|
|
|
172
|
-
|
|
173
|
-
return this.request(requestParams);
|
|
253
|
+
return this.locusDeltaRequest(requestParams);
|
|
174
254
|
}
|
|
175
255
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export enum ServerRoles {
|
|
2
|
+
Cohost = 'COHOST',
|
|
3
|
+
Moderator = 'MODERATOR',
|
|
4
|
+
Presenter = 'PRESENTER',
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export type ServerRoleShape = {
|
|
8
|
+
type: ServerRoles;
|
|
9
|
+
hasRole: boolean;
|
|
10
|
+
hostKey?: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type RoleAssignmentOptions = {
|
|
14
|
+
roles: Array<ServerRoleShape>;
|
|
15
|
+
locusUrl: string;
|
|
16
|
+
memberId: string;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type RoleAssignmentBody = {
|
|
20
|
+
role: {
|
|
21
|
+
roles: Array<ServerRoleShape>;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type RoleAssignmentRequest = {
|
|
26
|
+
method: string;
|
|
27
|
+
uri: string;
|
|
28
|
+
body: RoleAssignmentBody;
|
|
29
|
+
};
|