@webex/plugin-meetings 2.60.0 → 2.60.1-next.2
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.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +20 -8
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +6 -7
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +217 -97
- package/dist/constants.js +416 -441
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -0
- 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.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4732 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +93 -21
- package/dist/meetings/index.js +490 -127
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +13 -1
- package/dist/member/index.js +45 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +120 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +56 -11
- package/dist/members/index.js +174 -47
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +67 -11
- package/dist/members/request.js +102 -54
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -284
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +61 -95
- package/dist/reachability/index.js +300 -393
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +50 -30
- package/dist/statsAnalyzer/index.js +435 -510
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +120 -83
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +38 -26
- 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 +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +36 -12
- 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 +6 -7
- package/src/constants.ts +244 -97
- 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 +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -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 +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3944 -2489
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +487 -126
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +43 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +125 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +187 -52
- package/src/members/request.ts +87 -27
- package/src/members/util.ts +332 -291
- package/src/metrics/constants.ts +15 -6
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +243 -347
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +477 -643
- package/src/statsAnalyzer/mqaUtil.ts +115 -114
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- 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 +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- 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/interceptors/locusRetry.ts +131 -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 +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -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/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8187 -2769
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1313 -243
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +32 -9
- package/test/unit/spec/member/util.js +499 -61
- package/test/unit/spec/members/index.js +394 -5
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +173 -38
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +531 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +162 -24
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -76
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +261 -167
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
- /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
package/src/members/index.ts
CHANGED
|
@@ -17,17 +17,19 @@ import Trigger from '../common/events/trigger-proxy';
|
|
|
17
17
|
import Member from '../member';
|
|
18
18
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
19
19
|
import ParameterError from '../common/errors/parameter';
|
|
20
|
-
|
|
21
|
-
import MembersCollection from './collection';
|
|
22
|
-
import MembersRequest from './request';
|
|
23
|
-
import MembersUtil from './util';
|
|
24
|
-
import {ServerRoleShape} from './types';
|
|
25
20
|
import {
|
|
26
21
|
ReclaimHostEmptyWrongKeyError,
|
|
27
22
|
ReclaimHostIsHostAlreadyError,
|
|
28
23
|
ReclaimHostNotAllowedError,
|
|
29
24
|
ReclaimHostNotSupportedError,
|
|
30
|
-
} from '../common/errors/reclaim-host-role-
|
|
25
|
+
} from '../common/errors/reclaim-host-role-errors';
|
|
26
|
+
|
|
27
|
+
import MembersCollection from './collection';
|
|
28
|
+
import MembersRequest from './request';
|
|
29
|
+
import MembersUtil from './util';
|
|
30
|
+
import {ReceiveSlotManager} from '../multistream/receiveSlotManager';
|
|
31
|
+
import {MediaRequestManager} from '../multistream/mediaRequestManager';
|
|
32
|
+
import {ServerRoleShape} from './types';
|
|
31
33
|
|
|
32
34
|
/**
|
|
33
35
|
* Members Update Event
|
|
@@ -81,6 +83,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
81
83
|
mediaShareWhiteboardId: any;
|
|
82
84
|
membersCollection: any;
|
|
83
85
|
membersRequest: any;
|
|
86
|
+
receiveSlotManager: ReceiveSlotManager;
|
|
87
|
+
mediaRequestManagers: {
|
|
88
|
+
audio: MediaRequestManager;
|
|
89
|
+
video: MediaRequestManager;
|
|
90
|
+
};
|
|
91
|
+
|
|
84
92
|
recordingId: any;
|
|
85
93
|
selfId: any;
|
|
86
94
|
type: any;
|
|
@@ -102,8 +110,14 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
102
110
|
* @private
|
|
103
111
|
* @memberof Members
|
|
104
112
|
*/
|
|
113
|
+
|
|
105
114
|
// @ts-ignore
|
|
106
|
-
this.membersRequest = new MembersRequest(
|
|
115
|
+
this.membersRequest = new MembersRequest(
|
|
116
|
+
{
|
|
117
|
+
meeting: attrs.meeting,
|
|
118
|
+
},
|
|
119
|
+
options
|
|
120
|
+
);
|
|
107
121
|
/**
|
|
108
122
|
* The Members Collection cache
|
|
109
123
|
* @instance
|
|
@@ -174,6 +188,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
174
188
|
* @memberof Members
|
|
175
189
|
*/
|
|
176
190
|
this.recordingId = null;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* reference to a ReceiveSlotManager instance (for multistream)
|
|
194
|
+
* @private
|
|
195
|
+
*/
|
|
196
|
+
this.receiveSlotManager = attrs.receiveSlotManager;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* reference to a MediaRequestManager instance that manages main video requests (for multistream)
|
|
200
|
+
* @private
|
|
201
|
+
*/
|
|
202
|
+
this.mediaRequestManagers = attrs.mediaRequestManagers;
|
|
177
203
|
}
|
|
178
204
|
|
|
179
205
|
/**
|
|
@@ -276,6 +302,25 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
276
302
|
);
|
|
277
303
|
}
|
|
278
304
|
|
|
305
|
+
/**
|
|
306
|
+
* clear member collection
|
|
307
|
+
* @returns {void}
|
|
308
|
+
* @private
|
|
309
|
+
* @memberof Members
|
|
310
|
+
*/
|
|
311
|
+
clearMembers() {
|
|
312
|
+
this.membersCollection.reset();
|
|
313
|
+
Trigger.trigger(
|
|
314
|
+
this,
|
|
315
|
+
{
|
|
316
|
+
file: 'members',
|
|
317
|
+
function: 'clearMembers',
|
|
318
|
+
},
|
|
319
|
+
EVENT_TRIGGERS.MEMBERS_CLEAR,
|
|
320
|
+
{}
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
|
|
279
324
|
/**
|
|
280
325
|
* when new participant updates come in, both delta and full participants, update them in members collection
|
|
281
326
|
* delta object in the event will have {updated, added} and full will be the full membersCollection
|
|
@@ -285,11 +330,16 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
285
330
|
* @private
|
|
286
331
|
* @memberof Members
|
|
287
332
|
*/
|
|
288
|
-
locusParticipantsUpdate(payload: {participants: object}) {
|
|
333
|
+
locusParticipantsUpdate(payload: {participants: object; isReplace?: boolean}) {
|
|
289
334
|
if (payload) {
|
|
335
|
+
if (payload.isReplace) {
|
|
336
|
+
this.clearMembers();
|
|
337
|
+
}
|
|
290
338
|
const delta = this.handleLocusInfoUpdatedParticipants(payload);
|
|
291
339
|
const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
|
|
292
340
|
|
|
341
|
+
this.receiveSlotManager?.updateMemberIds();
|
|
342
|
+
|
|
293
343
|
Trigger.trigger(
|
|
294
344
|
this,
|
|
295
345
|
{
|
|
@@ -300,6 +350,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
300
350
|
{
|
|
301
351
|
delta,
|
|
302
352
|
full,
|
|
353
|
+
isReplace: !!payload.isReplace,
|
|
303
354
|
}
|
|
304
355
|
);
|
|
305
356
|
}
|
|
@@ -700,46 +751,6 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
700
751
|
return this.membersRequest.addMembers(options);
|
|
701
752
|
}
|
|
702
753
|
|
|
703
|
-
/**
|
|
704
|
-
* Assign role(s) to a member in the meeting
|
|
705
|
-
* @param {String} memberId
|
|
706
|
-
* @param {[ServerRoleShape]} roles - to assign an array of roles
|
|
707
|
-
* @returns {Promise}
|
|
708
|
-
* @public
|
|
709
|
-
* @memberof Members
|
|
710
|
-
*/
|
|
711
|
-
public assignRoles(memberId: string, roles: Array<ServerRoleShape>) {
|
|
712
|
-
if (!this.locusUrl) {
|
|
713
|
-
return Promise.reject(
|
|
714
|
-
new ParameterError(
|
|
715
|
-
'The associated locus url for this meetings members object must be defined.'
|
|
716
|
-
)
|
|
717
|
-
);
|
|
718
|
-
}
|
|
719
|
-
if (!memberId) {
|
|
720
|
-
return Promise.reject(
|
|
721
|
-
new ParameterError('The member id must be defined to assign the roles to a member.')
|
|
722
|
-
);
|
|
723
|
-
}
|
|
724
|
-
const options = MembersUtil.generateRoleAssignmentMemberOptions(memberId, roles, this.locusUrl);
|
|
725
|
-
|
|
726
|
-
return this.membersRequest.assignRolesMember(options).catch((error: any) => {
|
|
727
|
-
const errorCode = error.body?.errorCode;
|
|
728
|
-
switch (errorCode) {
|
|
729
|
-
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotSupportedErrorCode:
|
|
730
|
-
return Promise.reject(new ReclaimHostNotSupportedError());
|
|
731
|
-
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotAllowedErrorCode:
|
|
732
|
-
return Promise.reject(new ReclaimHostNotAllowedError());
|
|
733
|
-
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostEmptyWrongKeyErrorCode:
|
|
734
|
-
return Promise.reject(new ReclaimHostEmptyWrongKeyError());
|
|
735
|
-
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostIsHostAlreadyErrorCode:
|
|
736
|
-
return Promise.reject(new ReclaimHostIsHostAlreadyError());
|
|
737
|
-
default:
|
|
738
|
-
return Promise.reject(error);
|
|
739
|
-
}
|
|
740
|
-
});
|
|
741
|
-
}
|
|
742
|
-
|
|
743
754
|
/**
|
|
744
755
|
* Cancels an outgoing PSTN call to the associated meeting
|
|
745
756
|
* @param {String} invitee
|
|
@@ -765,15 +776,22 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
765
776
|
/**
|
|
766
777
|
* Admits waiting members (invited guests to meeting)
|
|
767
778
|
* @param {Array} memberIds
|
|
779
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
768
780
|
* @returns {Promise}
|
|
769
781
|
* @public
|
|
770
782
|
* @memberof Members
|
|
771
783
|
*/
|
|
772
|
-
public admitMembers(
|
|
784
|
+
public admitMembers(
|
|
785
|
+
memberIds: Array<any>,
|
|
786
|
+
sessionLocusUrls?: {authorizingLocusUrl: string; mainLocusUrl: string}
|
|
787
|
+
) {
|
|
773
788
|
if (isEmpty(memberIds)) {
|
|
774
789
|
return Promise.reject(new ParameterError('No member ids provided to admit.'));
|
|
775
790
|
}
|
|
776
|
-
const options =
|
|
791
|
+
const options = {
|
|
792
|
+
sessionLocusUrls,
|
|
793
|
+
...MembersUtil.generateAdmitMemberOptions(memberIds, this.locusUrl),
|
|
794
|
+
};
|
|
777
795
|
|
|
778
796
|
return this.membersRequest.admitMember(options);
|
|
779
797
|
}
|
|
@@ -805,11 +823,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
805
823
|
* Audio mutes another member in a meeting
|
|
806
824
|
* @param {String} memberId
|
|
807
825
|
* @param {boolean} [mute] default true
|
|
826
|
+
* @param {boolean} [isAudio] default true
|
|
808
827
|
* @returns {Promise}
|
|
809
828
|
* @public
|
|
810
829
|
* @memberof Members
|
|
811
830
|
*/
|
|
812
|
-
public muteMember(memberId: string, mute = true) {
|
|
831
|
+
public muteMember(memberId: string, mute = true, isAudio = true) {
|
|
813
832
|
if (!this.locusUrl) {
|
|
814
833
|
return Promise.reject(
|
|
815
834
|
new ParameterError(
|
|
@@ -822,11 +841,51 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
822
841
|
new ParameterError('The member id must be defined to mute the member.')
|
|
823
842
|
);
|
|
824
843
|
}
|
|
825
|
-
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
|
|
844
|
+
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl, isAudio);
|
|
826
845
|
|
|
827
846
|
return this.membersRequest.muteMember(options);
|
|
828
847
|
}
|
|
829
848
|
|
|
849
|
+
/**
|
|
850
|
+
* Assign role(s) to a member in the meeting
|
|
851
|
+
* @param {String} memberId
|
|
852
|
+
* @param {[ServerRoleShape]} roles - to assign an array of roles
|
|
853
|
+
* @returns {Promise}
|
|
854
|
+
* @public
|
|
855
|
+
* @memberof Members
|
|
856
|
+
*/
|
|
857
|
+
public assignRoles(memberId: string, roles: Array<ServerRoleShape>) {
|
|
858
|
+
if (!this.locusUrl) {
|
|
859
|
+
return Promise.reject(
|
|
860
|
+
new ParameterError(
|
|
861
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
862
|
+
)
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
if (!memberId) {
|
|
866
|
+
return Promise.reject(
|
|
867
|
+
new ParameterError('The member id must be defined to assign the roles to a member.')
|
|
868
|
+
);
|
|
869
|
+
}
|
|
870
|
+
const options = MembersUtil.generateRoleAssignmentMemberOptions(memberId, roles, this.locusUrl);
|
|
871
|
+
|
|
872
|
+
return this.membersRequest.assignRolesMember(options).catch((error: any) => {
|
|
873
|
+
const errorCode = error.body?.errorCode;
|
|
874
|
+
switch (errorCode) {
|
|
875
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotSupportedErrorCode:
|
|
876
|
+
return Promise.reject(new ReclaimHostNotSupportedError());
|
|
877
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotAllowedErrorCode:
|
|
878
|
+
return Promise.reject(new ReclaimHostNotAllowedError());
|
|
879
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostEmptyWrongKeyErrorCode:
|
|
880
|
+
return Promise.reject(new ReclaimHostEmptyWrongKeyError());
|
|
881
|
+
case ASSIGN_ROLES_ERROR_CODES.ReclaimHostIsHostAlreadyErrorCode:
|
|
882
|
+
return Promise.reject(new ReclaimHostIsHostAlreadyError());
|
|
883
|
+
default:
|
|
884
|
+
return Promise.reject(error);
|
|
885
|
+
}
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
|
|
830
889
|
/**
|
|
831
890
|
* Raise or lower the hand of a member in a meeting
|
|
832
891
|
* @param {String} memberId
|
|
@@ -951,4 +1010,80 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
951
1010
|
)
|
|
952
1011
|
);
|
|
953
1012
|
}
|
|
1013
|
+
|
|
1014
|
+
/** Finds a member that has any device with a csi matching provided value
|
|
1015
|
+
*
|
|
1016
|
+
* @param {number} csi
|
|
1017
|
+
* @returns {Member}
|
|
1018
|
+
*/
|
|
1019
|
+
findMemberByCsi(csi) {
|
|
1020
|
+
return Object.values(this.membersCollection.getAll()).find((member) =>
|
|
1021
|
+
// @ts-ignore
|
|
1022
|
+
member.participant?.devices?.find((device) =>
|
|
1023
|
+
device.csis?.find((memberCsi) => memberCsi === csi)
|
|
1024
|
+
)
|
|
1025
|
+
);
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
/**
|
|
1029
|
+
* Returns an array of a member's CSIs matching the mediaType and mediaContent
|
|
1030
|
+
*
|
|
1031
|
+
* @param {string} memberId
|
|
1032
|
+
* @param {string} mediaType 'audio' or 'video'
|
|
1033
|
+
* @param {string} mediaContent 'main' or 'slides'
|
|
1034
|
+
* @returns {Member}
|
|
1035
|
+
*/
|
|
1036
|
+
getCsisForMember(memberId, mediaType = 'video', mediaContent = 'main') {
|
|
1037
|
+
const csis = [];
|
|
1038
|
+
|
|
1039
|
+
this.membersCollection.get(memberId)?.participant?.devices?.forEach((device) => {
|
|
1040
|
+
if (device.mediaSessions) {
|
|
1041
|
+
const deviceCsis = device.mediaSessions
|
|
1042
|
+
?.filter(
|
|
1043
|
+
(mediaSession) =>
|
|
1044
|
+
mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent
|
|
1045
|
+
)
|
|
1046
|
+
.map((mediaSession) => mediaSession.csi);
|
|
1047
|
+
|
|
1048
|
+
csis.push(...deviceCsis);
|
|
1049
|
+
}
|
|
1050
|
+
});
|
|
1051
|
+
|
|
1052
|
+
return csis;
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
/**
|
|
1056
|
+
* Edit display name of participants in a meeting
|
|
1057
|
+
* @param {string} memberId - id of the participant who is receiving request
|
|
1058
|
+
* @param {string} requestingParticipantId - id of the participant who is sending request (optional)
|
|
1059
|
+
* @param {string} [alias] - alias name
|
|
1060
|
+
* @returns {Promise}
|
|
1061
|
+
* @public
|
|
1062
|
+
* @memberof Members
|
|
1063
|
+
*/
|
|
1064
|
+
public editDisplayName(memberId: string, requestingParticipantId: string, alias: string) {
|
|
1065
|
+
if (!this.locusUrl) {
|
|
1066
|
+
return Promise.reject(
|
|
1067
|
+
new ParameterError(
|
|
1068
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
1069
|
+
)
|
|
1070
|
+
);
|
|
1071
|
+
}
|
|
1072
|
+
if (!memberId) {
|
|
1073
|
+
return Promise.reject(
|
|
1074
|
+
new ParameterError('The member id must be defined to edit display name of the member.')
|
|
1075
|
+
);
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
const {locusUrl} = this;
|
|
1079
|
+
|
|
1080
|
+
const options = MembersUtil.generateEditDisplayNameMemberOptions(
|
|
1081
|
+
memberId,
|
|
1082
|
+
requestingParticipantId,
|
|
1083
|
+
alias,
|
|
1084
|
+
locusUrl
|
|
1085
|
+
);
|
|
1086
|
+
|
|
1087
|
+
return this.membersRequest.editDisplayNameMember(options);
|
|
1088
|
+
}
|
|
954
1089
|
}
|
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,56 +68,74 @@ 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
|
|
|
62
74
|
/**
|
|
63
|
-
* Sends a request to
|
|
75
|
+
* Sends a request to remove a member
|
|
64
76
|
* @param {Object} options
|
|
65
77
|
* @param {String} options.locusUrl
|
|
66
|
-
* @param {String} options.memberId ID of
|
|
78
|
+
* @param {String} options.memberId ID of member
|
|
67
79
|
* @returns {Promise}
|
|
68
80
|
*/
|
|
69
|
-
|
|
81
|
+
removeMember(options) {
|
|
70
82
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
71
83
|
throw new ParameterError(
|
|
72
84
|
'memberId must be defined, and the associated locus url for this meeting object must be defined.'
|
|
73
85
|
);
|
|
74
86
|
}
|
|
75
87
|
|
|
76
|
-
const requestParams = MembersUtil.
|
|
88
|
+
const requestParams = MembersUtil.getRemoveMemberRequestParams(options);
|
|
77
89
|
|
|
78
|
-
|
|
79
|
-
return this.request(requestParams);
|
|
90
|
+
return this.locusDeltaRequest(requestParams);
|
|
80
91
|
}
|
|
81
92
|
|
|
82
|
-
|
|
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
|
+
*/
|
|
100
|
+
muteMember(options) {
|
|
83
101
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
84
102
|
throw new ParameterError(
|
|
85
103
|
'memberId must be defined, and the associated locus url for this meeting object must be defined.'
|
|
86
104
|
);
|
|
87
105
|
}
|
|
88
106
|
|
|
89
|
-
const requestParams = MembersUtil.
|
|
107
|
+
const requestParams = MembersUtil.getMuteMemberRequestParams(options);
|
|
90
108
|
|
|
91
109
|
// @ts-ignore
|
|
92
|
-
return this.
|
|
110
|
+
return this.locusDeltaRequest(requestParams);
|
|
93
111
|
}
|
|
94
112
|
|
|
95
|
-
|
|
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) {
|
|
96
121
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
97
122
|
throw new ParameterError(
|
|
98
123
|
'memberId must be defined, and the associated locus url for this meeting object must be defined.'
|
|
99
124
|
);
|
|
100
125
|
}
|
|
101
126
|
|
|
102
|
-
const requestParams = MembersUtil.
|
|
127
|
+
const requestParams = MembersUtil.getRoleAssignmentMemberRequestParams(options);
|
|
103
128
|
|
|
104
|
-
|
|
105
|
-
return this.request(requestParams);
|
|
129
|
+
return this.locusDeltaRequest(requestParams);
|
|
106
130
|
}
|
|
107
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
|
+
*/
|
|
108
139
|
raiseOrLowerHandMember(options) {
|
|
109
140
|
if (!options || !options.locusUrl || !options.memberId) {
|
|
110
141
|
throw new ParameterError(
|
|
@@ -114,10 +145,16 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
114
145
|
|
|
115
146
|
const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);
|
|
116
147
|
|
|
117
|
-
|
|
118
|
-
return this.request(requestParams);
|
|
148
|
+
return this.locusDeltaRequest(requestParams);
|
|
119
149
|
}
|
|
120
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
|
+
*/
|
|
121
158
|
lowerAllHandsMember(options) {
|
|
122
159
|
if (!options || !options.locusUrl || !options.requestingParticipantId) {
|
|
123
160
|
throw new ParameterError(
|
|
@@ -127,10 +164,36 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
127
164
|
|
|
128
165
|
const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);
|
|
129
166
|
|
|
130
|
-
|
|
131
|
-
|
|
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);
|
|
132
187
|
}
|
|
133
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
|
+
*/
|
|
134
197
|
transferHostToMember(options) {
|
|
135
198
|
if (!options || !options.locusUrl || !options.memberId || !options.moderator) {
|
|
136
199
|
throw new ParameterError(
|
|
@@ -140,8 +203,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
140
203
|
|
|
141
204
|
const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);
|
|
142
205
|
|
|
143
|
-
|
|
144
|
-
return this.request(requestParams);
|
|
206
|
+
return this.locusDeltaRequest(requestParams);
|
|
145
207
|
}
|
|
146
208
|
|
|
147
209
|
/**
|
|
@@ -170,8 +232,7 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
170
232
|
|
|
171
233
|
const requestParams = MembersUtil.generateSendDTMFRequestParams(options);
|
|
172
234
|
|
|
173
|
-
|
|
174
|
-
return this.request(requestParams);
|
|
235
|
+
return this.locusDeltaRequest(requestParams);
|
|
175
236
|
}
|
|
176
237
|
|
|
177
238
|
/**
|
|
@@ -189,7 +250,6 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
189
250
|
|
|
190
251
|
const requestParams = MembersUtil.generateCancelInviteRequestParams(options);
|
|
191
252
|
|
|
192
|
-
|
|
193
|
-
return this.request(requestParams);
|
|
253
|
+
return this.locusDeltaRequest(requestParams);
|
|
194
254
|
}
|
|
195
255
|
}
|