@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.130
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 +45 -1
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +48 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +355 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +193 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +43 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +994 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -26
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -25
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -26
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +201 -53
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -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.js +294 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +72 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +100 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +392 -212
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +54 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +88 -123
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +99 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +55 -165
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +71 -117
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +77 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2597 -2464
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +292 -138
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +315 -336
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +463 -583
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +305 -286
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +156 -232
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +24 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +692 -593
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +23 -42
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +186 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +89 -88
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +101 -69
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +12 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +166 -205
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +120 -85
- 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 +314 -260
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +50 -16
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +4 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +93 -162
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +167 -50
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +74 -93
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +55 -74
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +466 -442
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +32 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +190 -199
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +14 -23
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +2 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +19 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +326 -465
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +31 -75
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +129 -136
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +143 -103
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +369 -461
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +144 -94
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +35 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +2 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +78 -0
- package/dist/types/constants.d.ts +991 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +315 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +108 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +147 -0
- package/dist/types/meeting/index.d.ts +1762 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +186 -0
- package/dist/types/meeting/request.d.ts +269 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +76 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +345 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +157 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/config.d.ts +195 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +169 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/internal-README.md +7 -6
- package/package.json +28 -21
- package/src/annotation/annotation.types.ts +42 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +339 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +163 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +37 -0
- package/src/breakouts/index.ts +860 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +16 -12
- package/src/constants.ts +151 -7
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +281 -0
- package/src/index.ts +33 -0
- package/src/locus-info/controlsUtils.ts +142 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +335 -55
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +52 -4
- package/src/locus-info/parser.ts +46 -68
- package/src/locus-info/selfUtils.ts +187 -56
- package/src/media/index.ts +139 -196
- package/src/media/properties.ts +43 -36
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +380 -378
- package/src/meeting/in-meeting-actions.ts +159 -3
- package/src/meeting/index.ts +2789 -1584
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +290 -72
- package/src/meeting/request.ts +247 -178
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +445 -395
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +235 -116
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +71 -55
- package/src/meetings/collection.ts +21 -1
- package/src/meetings/index.ts +772 -437
- package/src/meetings/request.ts +29 -25
- package/src/meetings/util.ts +132 -33
- package/src/member/index.ts +95 -49
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +106 -13
- package/src/members/collection.ts +8 -1
- package/src/members/index.ts +288 -130
- package/src/members/request.ts +144 -31
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +316 -235
- package/src/metrics/config.ts +302 -90
- package/src/metrics/constants.ts +2 -6
- package/src/metrics/index.ts +124 -95
- package/src/multistream/mediaRequestManager.ts +203 -45
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +62 -38
- package/src/multistream/remoteMedia.ts +30 -4
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +230 -66
- package/src/networkQualityMonitor/index.ts +24 -27
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +131 -79
- package/src/reachability/request.ts +43 -34
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +8 -8
- package/src/reactions/reactions.type.ts +31 -5
- package/src/reconnection-manager/index.ts +193 -111
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/index.ts +53 -53
- package/src/roap/request.ts +77 -64
- package/src/roap/turnDiscovery.ts +101 -48
- package/src/statsAnalyzer/global.ts +8 -104
- package/src/statsAnalyzer/index.ts +624 -376
- package/src/statsAnalyzer/mqaUtil.ts +203 -90
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/converged-space-meetings.js +177 -0
- package/test/integration/spec/journey.js +670 -466
- package/test/integration/spec/space-meeting.js +320 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +433 -0
- package/test/unit/spec/breakouts/breakout.ts +203 -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 +77 -0
- package/test/unit/spec/breakouts/index.ts +1609 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +504 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/locus-info/controlsUtils.js +305 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +598 -5
- package/test/unit/spec/locus-info/infoUtils.js +26 -33
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +110 -103
- package/test/unit/spec/locus-info/selfUtils.js +236 -12
- package/test/unit/spec/media/index.ts +104 -8
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +76 -3
- package/test/unit/spec/meeting/index.js +3094 -921
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +421 -94
- package/test/unit/spec/meeting/request.js +421 -79
- package/test/unit/spec/meeting/utils.js +326 -189
- package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +131 -74
- package/test/unit/spec/meetings/collection.js +15 -1
- package/test/unit/spec/meetings/index.js +1126 -328
- package/test/unit/spec/meetings/utils.js +220 -14
- package/test/unit/spec/member/index.js +24 -1
- package/test/unit/spec/member/util.js +383 -32
- package/test/unit/spec/members/index.js +424 -55
- package/test/unit/spec/members/request.js +228 -40
- package/test/unit/spec/members/utils.js +191 -4
- package/test/unit/spec/metrics/index.js +113 -20
- package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
- package/test/unit/spec/multistream/receiveSlot.ts +76 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +176 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +62 -31
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +19 -49
- package/test/unit/spec/roap/request.ts +187 -0
- package/test/unit/spec/roap/turnDiscovery.ts +92 -50
- package/test/unit/spec/stats-analyzer/index.js +116 -60
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +64 -0
- package/test/utils/testUtils.js +63 -99
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -334
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/multistream/multistreamMedia.ts +0 -92
- package/test/unit/spec/meeting/effectsState.js +0 -291
package/src/members/index.ts
CHANGED
|
@@ -16,48 +16,49 @@ 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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
* Members Update Event
|
|
23
|
+
* Emitted when something in the roster list needs to be updated
|
|
24
|
+
* @event members:update
|
|
25
|
+
* @instance
|
|
26
|
+
* @property {Object} delta the changes to the members list
|
|
27
|
+
* @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
|
|
28
|
+
* @property {Array} delta.added array added members to the meeting
|
|
29
|
+
* @property {Array} full array the full members collection
|
|
30
|
+
* @memberof Members
|
|
31
|
+
*/
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
* Members Content Update Event
|
|
35
|
+
* Emitted when who is sharing changes
|
|
36
|
+
* @event members:content:update
|
|
37
|
+
* @instance
|
|
38
|
+
* @property {String} activeContentSharingId
|
|
39
|
+
* @property {String} endedContentSharingId
|
|
40
|
+
* @memberof Members
|
|
41
|
+
*/
|
|
41
42
|
|
|
42
43
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
* Members Host Update Event
|
|
45
|
+
* Emitted when who is the host changes
|
|
46
|
+
* @event members:host:update
|
|
47
|
+
* @instance
|
|
48
|
+
* @property {String} activeHostId
|
|
49
|
+
* @property {String} endedHostId
|
|
50
|
+
* @memberof Members
|
|
51
|
+
*/
|
|
51
52
|
|
|
52
53
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
* Members Self Update Event
|
|
55
|
+
* Emitted when who is the self changes
|
|
56
|
+
* @event members:self:update
|
|
57
|
+
* @instance
|
|
58
|
+
* @property {String} activeSelfId
|
|
59
|
+
* @property {String} endedSelfId
|
|
60
|
+
* @memberof Members
|
|
61
|
+
*/
|
|
61
62
|
|
|
62
63
|
/**
|
|
63
64
|
* @class Members
|
|
@@ -74,6 +75,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
74
75
|
audio: MediaRequestManager;
|
|
75
76
|
video: MediaRequestManager;
|
|
76
77
|
};
|
|
78
|
+
|
|
77
79
|
recordingId: any;
|
|
78
80
|
selfId: any;
|
|
79
81
|
type: any;
|
|
@@ -94,16 +96,22 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
94
96
|
* @type {MembersRequest}
|
|
95
97
|
* @private
|
|
96
98
|
* @memberof Members
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
// @ts-ignore
|
|
102
|
+
this.membersRequest = new MembersRequest(
|
|
103
|
+
{
|
|
104
|
+
meeting: attrs.meeting,
|
|
105
|
+
},
|
|
106
|
+
options
|
|
107
|
+
);
|
|
100
108
|
/**
|
|
101
109
|
* The Members Collection cache
|
|
102
110
|
* @instance
|
|
103
111
|
* @type {MembersCollection}
|
|
104
112
|
* @private
|
|
105
113
|
* @memberof Members
|
|
106
|
-
|
|
114
|
+
*/
|
|
107
115
|
this.membersCollection = new MembersCollection();
|
|
108
116
|
/**
|
|
109
117
|
* The current locus url for the active meeting
|
|
@@ -111,7 +119,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
111
119
|
* @type {String}
|
|
112
120
|
* @private
|
|
113
121
|
* @memberof Members
|
|
114
|
-
|
|
122
|
+
*/
|
|
115
123
|
this.locusUrl = attrs.locusUrl || null;
|
|
116
124
|
/**
|
|
117
125
|
* The current hostId for the meeting
|
|
@@ -119,7 +127,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
119
127
|
* @type {String}
|
|
120
128
|
* @private
|
|
121
129
|
* @memberof Members
|
|
122
|
-
|
|
130
|
+
*/
|
|
123
131
|
this.hostId = null;
|
|
124
132
|
/**
|
|
125
133
|
* The current type for the meeting, could be MEETING or CALL
|
|
@@ -127,7 +135,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
127
135
|
* @type {String}
|
|
128
136
|
* @private
|
|
129
137
|
* @memberof Members
|
|
130
|
-
|
|
138
|
+
*/
|
|
131
139
|
this.type = null;
|
|
132
140
|
/**
|
|
133
141
|
* Locus has a self object, sent individually to the client
|
|
@@ -141,7 +149,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
141
149
|
* @type {String}
|
|
142
150
|
* @private
|
|
143
151
|
* @memberof Members
|
|
144
|
-
|
|
152
|
+
*/
|
|
145
153
|
this.selfId = null;
|
|
146
154
|
/**
|
|
147
155
|
* The current mediaShareContentId for the meeting
|
|
@@ -149,7 +157,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
149
157
|
* @type {String}
|
|
150
158
|
* @private
|
|
151
159
|
* @memberof Members
|
|
152
|
-
|
|
160
|
+
*/
|
|
153
161
|
this.mediaShareContentId = null;
|
|
154
162
|
/**
|
|
155
163
|
* The current mediaShareWhiteboardId for the meeting
|
|
@@ -157,7 +165,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
157
165
|
* @type {String}
|
|
158
166
|
* @private
|
|
159
167
|
* @memberof Members
|
|
160
|
-
|
|
168
|
+
*/
|
|
161
169
|
this.mediaShareWhiteboardId = null;
|
|
162
170
|
/**
|
|
163
171
|
* The current recordingId for the meeting, if it exists
|
|
@@ -165,7 +173,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
165
173
|
* @type {String}
|
|
166
174
|
* @private
|
|
167
175
|
* @memberof Members
|
|
168
|
-
|
|
176
|
+
*/
|
|
169
177
|
this.recordingId = null;
|
|
170
178
|
|
|
171
179
|
/**
|
|
@@ -190,7 +198,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
190
198
|
* @private
|
|
191
199
|
* @memberof Members
|
|
192
200
|
*/
|
|
193
|
-
locusSelfUpdate(payload: {
|
|
201
|
+
locusSelfUpdate(payload: {newSelf: any; oldSelf: any}) {
|
|
194
202
|
let newSelfId = null;
|
|
195
203
|
let oldSelfId = null;
|
|
196
204
|
|
|
@@ -221,12 +229,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
221
229
|
this,
|
|
222
230
|
{
|
|
223
231
|
file: 'members',
|
|
224
|
-
function: 'locusSelfUpdate'
|
|
232
|
+
function: 'locusSelfUpdate',
|
|
225
233
|
},
|
|
226
234
|
EVENT_TRIGGERS.MEMBERS_SELF_UPDATE,
|
|
227
235
|
{
|
|
228
236
|
activeSelfId: newSelfId,
|
|
229
|
-
endedSelfId: oldSelfId
|
|
237
|
+
endedSelfId: oldSelfId,
|
|
230
238
|
}
|
|
231
239
|
);
|
|
232
240
|
}
|
|
@@ -240,7 +248,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
240
248
|
* @private
|
|
241
249
|
* @memberof Members
|
|
242
250
|
*/
|
|
243
|
-
locusHostUpdate(payload: {
|
|
251
|
+
locusHostUpdate(payload: {newHost: any; oldHost: any}) {
|
|
244
252
|
let newHostId = null;
|
|
245
253
|
let oldHostId = null;
|
|
246
254
|
|
|
@@ -271,16 +279,35 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
271
279
|
this,
|
|
272
280
|
{
|
|
273
281
|
file: 'members',
|
|
274
|
-
function: 'locusHostUpdate'
|
|
282
|
+
function: 'locusHostUpdate',
|
|
275
283
|
},
|
|
276
284
|
EVENT_TRIGGERS.MEMBERS_HOST_UPDATE,
|
|
277
285
|
{
|
|
278
286
|
activeHostId: newHostId,
|
|
279
|
-
endedHostId: oldHostId
|
|
287
|
+
endedHostId: oldHostId,
|
|
280
288
|
}
|
|
281
289
|
);
|
|
282
290
|
}
|
|
283
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
|
+
|
|
284
311
|
/**
|
|
285
312
|
* when new participant updates come in, both delta and full participants, update them in members collection
|
|
286
313
|
* delta object in the event will have {updated, added} and full will be the full membersCollection
|
|
@@ -290,21 +317,27 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
290
317
|
* @private
|
|
291
318
|
* @memberof Members
|
|
292
319
|
*/
|
|
293
|
-
locusParticipantsUpdate(payload: {
|
|
320
|
+
locusParticipantsUpdate(payload: {participants: object; isReplace?: boolean}) {
|
|
294
321
|
if (payload) {
|
|
322
|
+
if (payload.isReplace) {
|
|
323
|
+
this.clearMembers();
|
|
324
|
+
}
|
|
295
325
|
const delta = this.handleLocusInfoUpdatedParticipants(payload);
|
|
296
326
|
const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
|
|
297
327
|
|
|
328
|
+
this.receiveSlotManager?.updateMemberIds();
|
|
329
|
+
|
|
298
330
|
Trigger.trigger(
|
|
299
331
|
this,
|
|
300
332
|
{
|
|
301
333
|
file: 'members',
|
|
302
|
-
function: 'locusParticipantsUpdate'
|
|
334
|
+
function: 'locusParticipantsUpdate',
|
|
303
335
|
},
|
|
304
336
|
EVENT_TRIGGERS.MEMBERS_UPDATE,
|
|
305
337
|
{
|
|
306
338
|
delta,
|
|
307
|
-
full
|
|
339
|
+
full,
|
|
340
|
+
isReplace: !!payload.isReplace,
|
|
308
341
|
}
|
|
309
342
|
);
|
|
310
343
|
}
|
|
@@ -319,7 +352,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
319
352
|
* @private
|
|
320
353
|
* @memberof Members
|
|
321
354
|
*/
|
|
322
|
-
locusMediaSharesUpdate(payload: {
|
|
355
|
+
locusMediaSharesUpdate(payload: {current: any; previous: any}) {
|
|
323
356
|
const currentContent = payload.current?.content;
|
|
324
357
|
const previousContent = payload.previous?.content;
|
|
325
358
|
const currentWhiteboard = payload.current?.whiteboard;
|
|
@@ -338,8 +371,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
338
371
|
if (currentContent.disposition === FLOOR_ACTION.RELEASED) {
|
|
339
372
|
whoStopped = currentContent.beneficiaryId;
|
|
340
373
|
this.mediaShareContentId = null;
|
|
341
|
-
}
|
|
342
|
-
|
|
374
|
+
} else if (
|
|
375
|
+
currentContent.disposition === FLOOR_ACTION.GRANTED &&
|
|
376
|
+
currentContent.beneficiaryId !== previousContent.beneficiaryId
|
|
377
|
+
) {
|
|
343
378
|
whoStopped = previousContent.beneficiaryId;
|
|
344
379
|
}
|
|
345
380
|
}
|
|
@@ -356,8 +391,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
356
391
|
if (currentWhiteboard.disposition === FLOOR_ACTION.RELEASED) {
|
|
357
392
|
whoStopped = currentWhiteboard.beneficiaryId;
|
|
358
393
|
this.mediaShareWhiteboardId = null;
|
|
359
|
-
}
|
|
360
|
-
|
|
394
|
+
} else if (
|
|
395
|
+
currentWhiteboard.disposition === FLOOR_ACTION.GRANTED &&
|
|
396
|
+
currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId
|
|
397
|
+
) {
|
|
361
398
|
whoStopped = previousWhiteboard.beneficiaryId;
|
|
362
399
|
}
|
|
363
400
|
}
|
|
@@ -382,17 +419,16 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
382
419
|
this,
|
|
383
420
|
{
|
|
384
421
|
file: 'members',
|
|
385
|
-
function: 'locusMediaSharesUpdate'
|
|
422
|
+
function: 'locusMediaSharesUpdate',
|
|
386
423
|
},
|
|
387
424
|
EVENT_TRIGGERS.MEMBERS_CONTENT_UPDATE,
|
|
388
425
|
{
|
|
389
426
|
activeSharingId: whoSharing,
|
|
390
|
-
endedSharingId: whoStopped
|
|
427
|
+
endedSharingId: whoStopped,
|
|
391
428
|
}
|
|
392
429
|
);
|
|
393
430
|
}
|
|
394
431
|
|
|
395
|
-
|
|
396
432
|
/**
|
|
397
433
|
* Internal update the locus url value
|
|
398
434
|
* @param {Object} payload
|
|
@@ -415,7 +451,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
415
451
|
* @private
|
|
416
452
|
* @memberof Members
|
|
417
453
|
*/
|
|
418
|
-
locusFullStateTypeUpdate(payload: {
|
|
454
|
+
locusFullStateTypeUpdate(payload: {type: string}) {
|
|
419
455
|
// TODO: at some point there could be a timing issue here, for updating each member
|
|
420
456
|
// ie., if the type changes AND there is no locus update, then each member will not know the type of call
|
|
421
457
|
// which means they cannot determine isMutable && isRemovable
|
|
@@ -472,7 +508,9 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
472
508
|
this.selfId = payload.selfId || this.selfId;
|
|
473
509
|
this.recordingId = payload.recordingId;
|
|
474
510
|
if (!payload.participants) {
|
|
475
|
-
LoggerProxy.logger.warn(
|
|
511
|
+
LoggerProxy.logger.warn(
|
|
512
|
+
'Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.'
|
|
513
|
+
);
|
|
476
514
|
}
|
|
477
515
|
const memberUpdate = this.update(payload.participants);
|
|
478
516
|
|
|
@@ -491,12 +529,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
491
529
|
public setLocusUrl(locus: any, locusUrl: string = null) {
|
|
492
530
|
if (locusUrl) {
|
|
493
531
|
this.locusUrl = locusUrl;
|
|
494
|
-
}
|
|
495
|
-
else if (locus && (locus.locusUrl || locus.url)) {
|
|
532
|
+
} else if (locus && (locus.locusUrl || locus.url)) {
|
|
496
533
|
this.locusUrl = locus.locusUrl || locus.url;
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
|
|
534
|
+
} else {
|
|
535
|
+
throw new ParameterError(
|
|
536
|
+
'Setting locusUrl for the Members module should be done with a locus object or locusUrl'
|
|
537
|
+
);
|
|
500
538
|
}
|
|
501
539
|
}
|
|
502
540
|
|
|
@@ -512,12 +550,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
512
550
|
public setHostId(locus: any, hostId: string = null) {
|
|
513
551
|
if (hostId) {
|
|
514
552
|
this.hostId = hostId;
|
|
515
|
-
}
|
|
516
|
-
else if (locus) {
|
|
553
|
+
} else if (locus) {
|
|
517
554
|
this.hostId = locus && locus.owner && locus.owner.info ? locus.owner.info : null;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
|
|
555
|
+
} else {
|
|
556
|
+
throw new ParameterError(
|
|
557
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
558
|
+
);
|
|
521
559
|
}
|
|
522
560
|
}
|
|
523
561
|
|
|
@@ -533,12 +571,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
533
571
|
public setType(fullState: any, type: string = null) {
|
|
534
572
|
if (type) {
|
|
535
573
|
this.type = type;
|
|
536
|
-
}
|
|
537
|
-
else if (fullState) {
|
|
574
|
+
} else if (fullState) {
|
|
538
575
|
this.type = (fullState && fullState.type) || null;
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
|
|
576
|
+
} else {
|
|
577
|
+
throw new ParameterError(
|
|
578
|
+
'Setting type for the Members module should be done with a fullstate object or type string'
|
|
579
|
+
);
|
|
542
580
|
}
|
|
543
581
|
}
|
|
544
582
|
|
|
@@ -553,12 +591,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
553
591
|
setSelfId(locus: any, selfId: string = null) {
|
|
554
592
|
if (selfId) {
|
|
555
593
|
this.selfId = selfId;
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
594
|
+
} else if (locus) {
|
|
595
|
+
this.selfId =
|
|
596
|
+
locus && locus.self && locus.self.person && locus.self.person.id
|
|
597
|
+
? locus.self.person.id
|
|
598
|
+
: null;
|
|
599
|
+
} else {
|
|
600
|
+
throw new ParameterError(
|
|
601
|
+
'Setting selfid for the Members module should be done with a locus object or selfId'
|
|
602
|
+
);
|
|
562
603
|
}
|
|
563
604
|
}
|
|
564
605
|
|
|
@@ -573,8 +614,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
573
614
|
setMediaShareContentId(locus: any, contentId?: string) {
|
|
574
615
|
if (contentId) {
|
|
575
616
|
this.mediaShareContentId = contentId;
|
|
576
|
-
}
|
|
577
|
-
else if (locus) {
|
|
617
|
+
} else if (locus) {
|
|
578
618
|
const contentMediaShare =
|
|
579
619
|
locus.mediaShares &&
|
|
580
620
|
locus.mediaShares.length &&
|
|
@@ -586,9 +626,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
586
626
|
contentMediaShare.floor.beneficiary &&
|
|
587
627
|
contentMediaShare.floor.beneficiary.id) ||
|
|
588
628
|
null;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
|
|
629
|
+
} else {
|
|
630
|
+
throw new ParameterError(
|
|
631
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
632
|
+
);
|
|
592
633
|
}
|
|
593
634
|
}
|
|
594
635
|
|
|
@@ -603,8 +644,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
603
644
|
setMediaShareWhiteboardId(locus: any, whiteboardId?: string) {
|
|
604
645
|
if (whiteboardId) {
|
|
605
646
|
this.mediaShareWhiteboardId = whiteboardId;
|
|
606
|
-
}
|
|
607
|
-
else if (locus) {
|
|
647
|
+
} else if (locus) {
|
|
608
648
|
const whiteboardMediaShare =
|
|
609
649
|
locus.mediaShares &&
|
|
610
650
|
locus.mediaShares.length &&
|
|
@@ -616,9 +656,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
616
656
|
whiteboardMediaShare.floor.beneficiary &&
|
|
617
657
|
whiteboardMediaShare.floor.beneficiary.id) ||
|
|
618
658
|
null;
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
|
|
659
|
+
} else {
|
|
660
|
+
throw new ParameterError(
|
|
661
|
+
'Setting hostid for the Members module should be done with a locus object or hostId'
|
|
662
|
+
);
|
|
622
663
|
}
|
|
623
664
|
}
|
|
624
665
|
|
|
@@ -651,11 +692,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
651
692
|
hostId: this.hostId,
|
|
652
693
|
contentSharingId: this.mediaShareContentId,
|
|
653
694
|
whiteboardSharingId: this.mediaShareWhiteboardId,
|
|
654
|
-
type: this.type
|
|
695
|
+
type: this.type,
|
|
655
696
|
})
|
|
656
697
|
);
|
|
657
|
-
}
|
|
658
|
-
else {
|
|
698
|
+
} else {
|
|
659
699
|
membersUpdate.added.push(
|
|
660
700
|
new Member(participant, {
|
|
661
701
|
recordingId: this.recordingId,
|
|
@@ -663,7 +703,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
663
703
|
hostId: this.hostId,
|
|
664
704
|
contentSharingId: this.mediaShareContentId,
|
|
665
705
|
whiteboardSharingId: this.mediaShareWhiteboardId,
|
|
666
|
-
type: this.type
|
|
706
|
+
type: this.type,
|
|
667
707
|
})
|
|
668
708
|
);
|
|
669
709
|
}
|
|
@@ -682,11 +722,15 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
682
722
|
*/
|
|
683
723
|
addMember(invitee: any, alertIfActive?: boolean) {
|
|
684
724
|
if (!this.locusUrl) {
|
|
685
|
-
return Promise.reject(
|
|
725
|
+
return Promise.reject(
|
|
726
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
727
|
+
);
|
|
686
728
|
}
|
|
687
729
|
if (MembersUtil.isInvalidInvitee(invitee)) {
|
|
688
730
|
return Promise.reject(
|
|
689
|
-
new ParameterError(
|
|
731
|
+
new ParameterError(
|
|
732
|
+
'The invitee must be defined with either a valid email, emailAddress or phoneNumber property.'
|
|
733
|
+
)
|
|
690
734
|
);
|
|
691
735
|
}
|
|
692
736
|
const options = MembersUtil.generateAddMemberOptions(invitee, this.locusUrl, alertIfActive);
|
|
@@ -702,7 +746,9 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
702
746
|
*/
|
|
703
747
|
cancelPhoneInvite(invitee: any) {
|
|
704
748
|
if (!this.locusUrl) {
|
|
705
|
-
return Promise.reject(
|
|
749
|
+
return Promise.reject(
|
|
750
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
751
|
+
);
|
|
706
752
|
}
|
|
707
753
|
if (MembersUtil.isInvalidInvitee(invitee)) {
|
|
708
754
|
return Promise.reject(
|
|
@@ -711,22 +757,28 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
711
757
|
}
|
|
712
758
|
const options = MembersUtil.cancelPhoneInviteOptions(invitee, this.locusUrl);
|
|
713
759
|
|
|
714
|
-
|
|
715
760
|
return this.membersRequest.cancelPhoneInvite(options);
|
|
716
761
|
}
|
|
717
762
|
|
|
718
763
|
/**
|
|
719
764
|
* Admits waiting members (invited guests to meeting)
|
|
720
765
|
* @param {Array} memberIds
|
|
766
|
+
* @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
|
|
721
767
|
* @returns {Promise}
|
|
722
768
|
* @public
|
|
723
769
|
* @memberof Members
|
|
724
770
|
*/
|
|
725
|
-
public admitMembers(
|
|
771
|
+
public admitMembers(
|
|
772
|
+
memberIds: Array<any>,
|
|
773
|
+
sessionLocusUrls?: {authorizingLocusUrl: string; mainLocusUrl: string}
|
|
774
|
+
) {
|
|
726
775
|
if (isEmpty(memberIds)) {
|
|
727
776
|
return Promise.reject(new ParameterError('No member ids provided to admit.'));
|
|
728
777
|
}
|
|
729
|
-
const options =
|
|
778
|
+
const options = {
|
|
779
|
+
sessionLocusUrls,
|
|
780
|
+
...MembersUtil.generateAdmitMemberOptions(memberIds, this.locusUrl),
|
|
781
|
+
};
|
|
730
782
|
|
|
731
783
|
return this.membersRequest.admitMember(options);
|
|
732
784
|
}
|
|
@@ -740,10 +792,14 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
740
792
|
*/
|
|
741
793
|
public removeMember(memberId: string) {
|
|
742
794
|
if (!this.locusUrl) {
|
|
743
|
-
return Promise.reject(
|
|
795
|
+
return Promise.reject(
|
|
796
|
+
new ParameterError('The associated locus url for this meeting object must be defined.')
|
|
797
|
+
);
|
|
744
798
|
}
|
|
745
799
|
if (!memberId) {
|
|
746
|
-
return Promise.reject(
|
|
800
|
+
return Promise.reject(
|
|
801
|
+
new ParameterError('The member id must be defined to remove the member.')
|
|
802
|
+
);
|
|
747
803
|
}
|
|
748
804
|
const options = MembersUtil.generateRemoveMemberOptions(memberId, this.locusUrl);
|
|
749
805
|
|
|
@@ -754,22 +810,55 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
754
810
|
* Audio mutes another member in a meeting
|
|
755
811
|
* @param {String} memberId
|
|
756
812
|
* @param {boolean} [mute] default true
|
|
813
|
+
* @param {boolean} [isAudio] default true
|
|
757
814
|
* @returns {Promise}
|
|
758
815
|
* @public
|
|
759
816
|
* @memberof Members
|
|
760
817
|
*/
|
|
761
|
-
public muteMember(memberId: string, mute
|
|
818
|
+
public muteMember(memberId: string, mute = true, isAudio = true) {
|
|
762
819
|
if (!this.locusUrl) {
|
|
763
|
-
return Promise.reject(
|
|
820
|
+
return Promise.reject(
|
|
821
|
+
new ParameterError(
|
|
822
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
823
|
+
)
|
|
824
|
+
);
|
|
764
825
|
}
|
|
765
826
|
if (!memberId) {
|
|
766
|
-
return Promise.reject(
|
|
827
|
+
return Promise.reject(
|
|
828
|
+
new ParameterError('The member id must be defined to mute the member.')
|
|
829
|
+
);
|
|
767
830
|
}
|
|
768
|
-
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
|
|
831
|
+
const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl, isAudio);
|
|
769
832
|
|
|
770
833
|
return this.membersRequest.muteMember(options);
|
|
771
834
|
}
|
|
772
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
|
+
|
|
773
862
|
/**
|
|
774
863
|
* Raise or lower the hand of a member in a meeting
|
|
775
864
|
* @param {String} memberId
|
|
@@ -778,12 +867,18 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
778
867
|
* @public
|
|
779
868
|
* @memberof Members
|
|
780
869
|
*/
|
|
781
|
-
public raiseOrLowerHand(memberId: string, raise
|
|
870
|
+
public raiseOrLowerHand(memberId: string, raise = true) {
|
|
782
871
|
if (!this.locusUrl) {
|
|
783
|
-
return Promise.reject(
|
|
872
|
+
return Promise.reject(
|
|
873
|
+
new ParameterError(
|
|
874
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
875
|
+
)
|
|
876
|
+
);
|
|
784
877
|
}
|
|
785
878
|
if (!memberId) {
|
|
786
|
-
return Promise.reject(
|
|
879
|
+
return Promise.reject(
|
|
880
|
+
new ParameterError('The member id must be defined to raise/lower the hand of the member.')
|
|
881
|
+
);
|
|
787
882
|
}
|
|
788
883
|
const options = MembersUtil.generateRaiseHandMemberOptions(memberId, raise, this.locusUrl);
|
|
789
884
|
|
|
@@ -799,17 +894,27 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
799
894
|
*/
|
|
800
895
|
public lowerAllHands(requestingMemberId: string) {
|
|
801
896
|
if (!this.locusUrl) {
|
|
802
|
-
return Promise.reject(
|
|
897
|
+
return Promise.reject(
|
|
898
|
+
new ParameterError(
|
|
899
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
900
|
+
)
|
|
901
|
+
);
|
|
803
902
|
}
|
|
804
903
|
if (!requestingMemberId) {
|
|
805
|
-
return Promise.reject(
|
|
904
|
+
return Promise.reject(
|
|
905
|
+
new ParameterError(
|
|
906
|
+
'The requestingMemberId must be defined to lower all hands in a meeting.'
|
|
907
|
+
)
|
|
908
|
+
);
|
|
806
909
|
}
|
|
807
|
-
const options = MembersUtil.generateLowerAllHandsMemberOptions(
|
|
910
|
+
const options = MembersUtil.generateLowerAllHandsMemberOptions(
|
|
911
|
+
requestingMemberId,
|
|
912
|
+
this.locusUrl
|
|
913
|
+
);
|
|
808
914
|
|
|
809
915
|
return this.membersRequest.lowerAllHandsMember(options);
|
|
810
916
|
}
|
|
811
917
|
|
|
812
|
-
|
|
813
918
|
/**
|
|
814
919
|
* Transfers the host to another member
|
|
815
920
|
* @param {String} memberId
|
|
@@ -818,19 +923,28 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
818
923
|
* @public
|
|
819
924
|
* @memberof Members
|
|
820
925
|
*/
|
|
821
|
-
public transferHostToMember(memberId: string, moderator
|
|
926
|
+
public transferHostToMember(memberId: string, moderator = true) {
|
|
822
927
|
if (!this.locusUrl) {
|
|
823
|
-
return Promise.reject(
|
|
928
|
+
return Promise.reject(
|
|
929
|
+
new ParameterError(
|
|
930
|
+
'The associated locus url for this meetings members object must be defined.'
|
|
931
|
+
)
|
|
932
|
+
);
|
|
824
933
|
}
|
|
825
934
|
if (!memberId) {
|
|
826
|
-
return Promise.reject(
|
|
935
|
+
return Promise.reject(
|
|
936
|
+
new ParameterError('The member id must be defined to transfer host to the member.')
|
|
937
|
+
);
|
|
827
938
|
}
|
|
828
|
-
const options = MembersUtil.generateTransferHostMemberOptions(
|
|
939
|
+
const options = MembersUtil.generateTransferHostMemberOptions(
|
|
940
|
+
memberId,
|
|
941
|
+
moderator,
|
|
942
|
+
this.locusUrl
|
|
943
|
+
);
|
|
829
944
|
|
|
830
945
|
return this.membersRequest.transferHostToMember(options);
|
|
831
946
|
}
|
|
832
947
|
|
|
833
|
-
|
|
834
948
|
/**
|
|
835
949
|
* Sends DTMF tones for the PSTN member of a meeting
|
|
836
950
|
* @param {String} tones a string of one or more DTMF tones to send
|
|
@@ -839,7 +953,7 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
839
953
|
* @public
|
|
840
954
|
* @memberof Members
|
|
841
955
|
*/
|
|
842
|
-
public sendDialPadKey(tones
|
|
956
|
+
public sendDialPadKey(tones = '', memberId = '') {
|
|
843
957
|
// @ts-ignore
|
|
844
958
|
if (!tones && tones !== 0) {
|
|
845
959
|
return Promise.reject(new ParameterError('DMTF tones must be passed in'));
|
|
@@ -863,7 +977,11 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
863
977
|
return this.membersRequest.sendDialPadKey(options);
|
|
864
978
|
}
|
|
865
979
|
|
|
866
|
-
return Promise.reject(
|
|
980
|
+
return Promise.reject(
|
|
981
|
+
new Error(
|
|
982
|
+
'Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'
|
|
983
|
+
)
|
|
984
|
+
);
|
|
867
985
|
}
|
|
868
986
|
|
|
869
987
|
/** Finds a member that has any device with a csi matching provided value
|
|
@@ -872,10 +990,12 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
872
990
|
* @returns {Member}
|
|
873
991
|
*/
|
|
874
992
|
findMemberByCsi(csi) {
|
|
875
|
-
return Object.values(this.membersCollection.getAll())
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
993
|
+
return Object.values(this.membersCollection.getAll()).find((member) =>
|
|
994
|
+
// @ts-ignore
|
|
995
|
+
member.participant?.devices?.find((device) =>
|
|
996
|
+
device.csis?.find((memberCsi) => memberCsi === csi)
|
|
997
|
+
)
|
|
998
|
+
);
|
|
879
999
|
}
|
|
880
1000
|
|
|
881
1001
|
/**
|
|
@@ -892,7 +1012,10 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
892
1012
|
this.membersCollection.get(memberId)?.participant?.devices?.forEach((device) => {
|
|
893
1013
|
if (device.mediaSessions) {
|
|
894
1014
|
const deviceCsis = device.mediaSessions
|
|
895
|
-
?.filter(
|
|
1015
|
+
?.filter(
|
|
1016
|
+
(mediaSession) =>
|
|
1017
|
+
mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent
|
|
1018
|
+
)
|
|
896
1019
|
.map((mediaSession) => mediaSession.csi);
|
|
897
1020
|
|
|
898
1021
|
csis.push(...deviceCsis);
|
|
@@ -901,4 +1024,39 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
901
1024
|
|
|
902
1025
|
return csis;
|
|
903
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
|
+
}
|
|
904
1062
|
}
|