@webex/plugin-meetings 3.0.0-beta.16 → 3.0.0-beta.161
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/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +359 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +212 -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 +1046 -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/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/config.js +6 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.js +175 -26
- 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 +300 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +214 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +92 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +317 -24
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +2 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +39 -134
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +19 -97
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +79 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2349 -2178
- 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 +229 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +191 -167
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +444 -443
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +157 -49
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +20 -5
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +365 -73
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +16 -12
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +43 -0
- 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 +97 -3
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +94 -11
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +109 -39
- 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 +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +50 -14
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +3 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +48 -29
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +265 -36
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +52 -19
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +53 -33
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +322 -103
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +117 -60
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +12 -5
- 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 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +18 -18
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +190 -145
- 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 +21 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +127 -92
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +135 -53
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +329 -314
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +103 -54
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +43 -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 +72 -0
- package/dist/types/constants.d.ts +987 -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/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/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 +86 -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 +149 -0
- package/dist/types/meeting/index.d.ts +1524 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +270 -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 +75 -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 +364 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -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 +158 -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 +118 -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 +277 -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/package.json +28 -21
- package/src/annotation/annotation.types.ts +52 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +343 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +180 -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 +921 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/config.ts +5 -7
- package/src/constants.ts +165 -20
- 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 +286 -0
- package/src/index.ts +34 -0
- package/src/interpretation/README.md +51 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +182 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +339 -21
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +2 -1
- package/src/locus-info/selfUtils.ts +86 -2
- package/src/media/index.ts +70 -142
- package/src/media/properties.ts +41 -104
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +156 -0
- package/src/meeting/index.ts +1779 -1741
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +228 -132
- package/src/meeting/request.ts +100 -91
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +422 -421
- package/src/meeting-info/meeting-info-v2.ts +134 -13
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +385 -83
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +3 -1
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +42 -0
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +95 -1
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +108 -6
- package/src/members/request.ts +98 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/config.ts +49 -10
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +43 -27
- package/src/multistream/mediaRequestManager.ts +337 -63
- package/src/multistream/receiveSlot.ts +68 -26
- package/src/multistream/receiveSlotManager.ts +61 -38
- package/src/multistream/remoteMedia.ts +29 -3
- package/src/multistream/remoteMediaGroup.ts +61 -2
- package/src/multistream/remoteMediaManager.ts +260 -66
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +75 -25
- package/src/reachability/request.ts +10 -5
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +28 -3
- package/src/reconnection-manager/index.ts +53 -32
- 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 +21 -30
- package/src/roap/request.ts +51 -52
- package/src/roap/turnDiscovery.ts +51 -27
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +380 -390
- package/src/statsAnalyzer/mqaUtil.ts +106 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +331 -254
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +436 -0
- package/test/unit/spec/breakouts/breakout.ts +233 -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 +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +518 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +329 -0
- package/test/unit/spec/interpretation/siLanguage.ts +26 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +680 -4
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +118 -22
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
- package/test/unit/spec/meeting/index.js +2695 -1513
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +370 -208
- package/test/unit/spec/meeting/request.js +354 -42
- package/test/unit/spec/meeting/utils.js +270 -156
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +866 -120
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +31 -0
- package/test/unit/spec/member/util.js +408 -32
- package/test/unit/spec/members/index.js +320 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +98 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- 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 +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +176 -25
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +46 -13
- 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 +21 -51
- package/test/unit/spec/roap/request.ts +187 -0
- package/test/unit/spec/roap/turnDiscovery.ts +73 -34
- package/test/unit/spec/stats-analyzer/index.js +94 -43
- 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/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -18
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -106
- 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 -93
- package/test/unit/spec/meeting/effectsState.js +0 -281
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import lodash from 'lodash';
|
|
2
|
+
import {
|
|
3
|
+
HTTP_VERBS,
|
|
4
|
+
_CONVERSATION_URL_,
|
|
5
|
+
WBXAPPAPI_SERVICE,
|
|
6
|
+
DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
7
|
+
} from '../constants';
|
|
2
8
|
import Metrics from '../metrics';
|
|
9
|
+
import {eventType} from '../metrics/config';
|
|
3
10
|
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
4
11
|
|
|
5
12
|
import MeetingInfoUtil from './utilv2';
|
|
@@ -11,6 +18,7 @@ const CAPTCHA_ERROR_DEFAULT_MESSAGE =
|
|
|
11
18
|
const ADHOC_MEETING_DEFAULT_ERROR =
|
|
12
19
|
'Failed starting the adhoc meeting, Please contact support team ';
|
|
13
20
|
const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
|
|
21
|
+
const POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
|
|
14
22
|
|
|
15
23
|
/**
|
|
16
24
|
* Error to indicate that wbxappapi requires a password
|
|
@@ -19,6 +27,7 @@ export class MeetingInfoV2PasswordError extends Error {
|
|
|
19
27
|
meetingInfo: any;
|
|
20
28
|
sdkMessage: any;
|
|
21
29
|
wbxAppApiCode: any;
|
|
30
|
+
body: any;
|
|
22
31
|
|
|
23
32
|
/**
|
|
24
33
|
*
|
|
@@ -62,6 +71,30 @@ export class MeetingInfoV2AdhocMeetingError extends Error {
|
|
|
62
71
|
}
|
|
63
72
|
}
|
|
64
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Error preventing join because of a meeting policy
|
|
76
|
+
*/
|
|
77
|
+
export class MeetingInfoV2PolicyError extends Error {
|
|
78
|
+
meetingInfo: object;
|
|
79
|
+
sdkMessage: string;
|
|
80
|
+
wbxAppApiCode: number;
|
|
81
|
+
/**
|
|
82
|
+
*
|
|
83
|
+
* @constructor
|
|
84
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
85
|
+
* @param {Object} [meetingInfo]
|
|
86
|
+
* @param {String} [message]
|
|
87
|
+
*/
|
|
88
|
+
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {
|
|
89
|
+
super(`${message}, code=${wbxAppApiErrorCode}`);
|
|
90
|
+
this.name = 'MeetingInfoV2AdhocMeetingError';
|
|
91
|
+
this.sdkMessage = message;
|
|
92
|
+
this.stack = new Error().stack;
|
|
93
|
+
this.wbxAppApiCode = wbxAppApiErrorCode;
|
|
94
|
+
this.meetingInfo = meetingInfo;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
65
98
|
/**
|
|
66
99
|
* Error to indicate that preferred webex site not present to start adhoc meeting
|
|
67
100
|
*/
|
|
@@ -70,6 +103,7 @@ export class MeetingInfoV2CaptchaError extends Error {
|
|
|
70
103
|
isPasswordRequired: any;
|
|
71
104
|
sdkMessage: any;
|
|
72
105
|
wbxAppApiCode: any;
|
|
106
|
+
body: any;
|
|
73
107
|
/**
|
|
74
108
|
*
|
|
75
109
|
* @constructor
|
|
@@ -122,14 +156,38 @@ export default class MeetingInfoV2 {
|
|
|
122
156
|
});
|
|
123
157
|
}
|
|
124
158
|
|
|
159
|
+
/**
|
|
160
|
+
* Raises a MeetingInfoV2PolicyError for policy error codes
|
|
161
|
+
* @param {any} err the error from the request
|
|
162
|
+
* @returns {void}
|
|
163
|
+
*/
|
|
164
|
+
handlePolicyError = (err) => {
|
|
165
|
+
if (!err.body) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (POLICY_ERROR_CODES.includes(err.body?.code)) {
|
|
170
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {
|
|
171
|
+
code: err.body?.code,
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
throw new MeetingInfoV2PolicyError(
|
|
175
|
+
err.body?.code,
|
|
176
|
+
err.body?.data?.meetingInfo,
|
|
177
|
+
err.body?.message
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
125
182
|
/**
|
|
126
183
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
127
184
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
185
|
+
* @param {String} installedOrgID org ID of user's machine
|
|
128
186
|
* @returns {Promise} returns a meeting info object
|
|
129
187
|
* @public
|
|
130
188
|
* @memberof MeetingInfo
|
|
131
189
|
*/
|
|
132
|
-
async createAdhocSpaceMeeting(conversationUrl: string) {
|
|
190
|
+
async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {
|
|
133
191
|
if (!this.webex.meetings.preferredWebexSite) {
|
|
134
192
|
throw Error('No preferred webex site found');
|
|
135
193
|
}
|
|
@@ -151,7 +209,14 @@ export default class MeetingInfoV2 {
|
|
|
151
209
|
return this.webex.internal.conversation
|
|
152
210
|
.get({url: conversationUrl}, {includeParticipants: true, disableTransform: true})
|
|
153
211
|
.then((conversation) => {
|
|
154
|
-
const body
|
|
212
|
+
const body: {
|
|
213
|
+
title: string;
|
|
214
|
+
spaceUrl: string;
|
|
215
|
+
keyUrl: string;
|
|
216
|
+
kroUrl: string;
|
|
217
|
+
invitees: any[];
|
|
218
|
+
installedOrgID?: string;
|
|
219
|
+
} = {
|
|
155
220
|
title: conversation.displayName,
|
|
156
221
|
spaceUrl: conversation.url,
|
|
157
222
|
keyUrl: conversation.encryptionKeyUrl,
|
|
@@ -159,19 +224,28 @@ export default class MeetingInfoV2 {
|
|
|
159
224
|
invitees: getInvitees(conversation.participants?.items),
|
|
160
225
|
};
|
|
161
226
|
|
|
227
|
+
if (installedOrgID) {
|
|
228
|
+
body.installedOrgID = installedOrgID;
|
|
229
|
+
}
|
|
230
|
+
|
|
162
231
|
const uri = this.webex.meetings.preferredWebexSite
|
|
163
232
|
? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`
|
|
164
233
|
: '';
|
|
165
234
|
|
|
166
|
-
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
|
|
167
|
-
|
|
168
235
|
return this.webex.request({
|
|
169
236
|
method: HTTP_VERBS.POST,
|
|
170
237
|
uri,
|
|
171
238
|
body,
|
|
172
239
|
});
|
|
173
240
|
})
|
|
241
|
+
.then((requestResult) => {
|
|
242
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
|
|
243
|
+
|
|
244
|
+
return requestResult;
|
|
245
|
+
})
|
|
174
246
|
.catch((err) => {
|
|
247
|
+
this.handlePolicyError(err);
|
|
248
|
+
|
|
175
249
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {
|
|
176
250
|
reason: err.message,
|
|
177
251
|
stack: err.stack,
|
|
@@ -188,6 +262,10 @@ export default class MeetingInfoV2 {
|
|
|
188
262
|
* @param {Object} captchaInfo
|
|
189
263
|
* @param {String} captchaInfo.code
|
|
190
264
|
* @param {String} captchaInfo.id
|
|
265
|
+
* @param {String} installedOrgID org ID of user's machine
|
|
266
|
+
* @param {String} locusId
|
|
267
|
+
* @param {Object} extraParams
|
|
268
|
+
* @param {Object} options
|
|
191
269
|
* @returns {Promise} returns a meeting info object
|
|
192
270
|
* @public
|
|
193
271
|
* @memberof MeetingInfo
|
|
@@ -199,8 +277,14 @@ export default class MeetingInfoV2 {
|
|
|
199
277
|
captchaInfo: {
|
|
200
278
|
code: string;
|
|
201
279
|
id: string;
|
|
202
|
-
} = null
|
|
280
|
+
} = null,
|
|
281
|
+
installedOrgID = null,
|
|
282
|
+
locusId = null,
|
|
283
|
+
extraParams: object = {},
|
|
284
|
+
options: {meetingId?: string} = {}
|
|
203
285
|
) {
|
|
286
|
+
const {meetingId} = options;
|
|
287
|
+
|
|
204
288
|
const destinationType = await MeetingInfoUtil.getDestinationType({
|
|
205
289
|
destination,
|
|
206
290
|
type,
|
|
@@ -212,12 +296,35 @@ export default class MeetingInfoV2 {
|
|
|
212
296
|
this.webex.config.meetings.experimental.enableAdhocMeetings &&
|
|
213
297
|
this.webex.meetings.preferredWebexSite
|
|
214
298
|
) {
|
|
215
|
-
return this.createAdhocSpaceMeeting(destinationType.destination);
|
|
299
|
+
return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);
|
|
216
300
|
}
|
|
217
301
|
|
|
218
|
-
const body = await MeetingInfoUtil.getRequestBody({
|
|
302
|
+
const body = await MeetingInfoUtil.getRequestBody({
|
|
303
|
+
...destinationType,
|
|
304
|
+
password,
|
|
305
|
+
captchaInfo,
|
|
306
|
+
installedOrgID,
|
|
307
|
+
locusId,
|
|
308
|
+
extraParams,
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
// If the body only contains the default properties, we don't have enough to
|
|
312
|
+
// fetch the meeting info so don't bother trying.
|
|
313
|
+
if (
|
|
314
|
+
!lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length
|
|
315
|
+
) {
|
|
316
|
+
const err = new Error('Not enough information to fetch meeting info');
|
|
317
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {
|
|
318
|
+
reason: err.message,
|
|
319
|
+
destinationType: destinationType?.type,
|
|
320
|
+
webExMeetingId: destinationType?.info?.webExMeetingId,
|
|
321
|
+
sipUri: destinationType?.info?.sipUri,
|
|
322
|
+
});
|
|
219
323
|
|
|
220
|
-
|
|
324
|
+
throw err;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const requestOptions: any = {
|
|
221
328
|
method: HTTP_VERBS.POST,
|
|
222
329
|
body,
|
|
223
330
|
};
|
|
@@ -225,21 +332,35 @@ export default class MeetingInfoV2 {
|
|
|
225
332
|
const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
|
|
226
333
|
|
|
227
334
|
if (directURI) {
|
|
228
|
-
|
|
335
|
+
requestOptions.uri = directURI;
|
|
229
336
|
} else {
|
|
230
|
-
|
|
231
|
-
|
|
337
|
+
requestOptions.service = WBXAPPAPI_SERVICE;
|
|
338
|
+
requestOptions.resource = 'meetingInfo';
|
|
232
339
|
}
|
|
233
340
|
|
|
234
341
|
return this.webex
|
|
235
|
-
.request(
|
|
342
|
+
.request(requestOptions)
|
|
236
343
|
.then((response) => {
|
|
237
344
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);
|
|
238
345
|
|
|
239
346
|
return response;
|
|
240
347
|
})
|
|
241
348
|
.catch((err) => {
|
|
349
|
+
if (meetingId) {
|
|
350
|
+
const parsedError = Metrics.parseWebexApiError(err, true);
|
|
351
|
+
Metrics.postEvent({
|
|
352
|
+
event: eventType.MEETING_INFO_RESPONSE,
|
|
353
|
+
meetingId,
|
|
354
|
+
data: {
|
|
355
|
+
errors: parsedError ? [parsedError] : undefined,
|
|
356
|
+
meetingLookupUrl: err?.url,
|
|
357
|
+
},
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
|
|
242
361
|
if (err?.statusCode === 403) {
|
|
362
|
+
this.handlePolicyError(err);
|
|
363
|
+
|
|
243
364
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {
|
|
244
365
|
reason: err.message,
|
|
245
366
|
stack: err.stack,
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
HTTPS_PROTOCOL,
|
|
25
25
|
UUID_REG,
|
|
26
26
|
VALID_EMAIL_ADDRESS,
|
|
27
|
+
DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
27
28
|
} from '../constants';
|
|
28
29
|
import ParameterError from '../common/errors/parameter';
|
|
29
30
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
@@ -220,14 +221,15 @@ MeetingInfoUtil.getDestinationType = async (from) => {
|
|
|
220
221
|
* Helper function to build up a correct locus url depending on the value passed
|
|
221
222
|
* @param {Object} options type and value to fetch meeting info
|
|
222
223
|
* @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
224
|
+
* @param {String} options.installedOrgID org ID of user's machine
|
|
223
225
|
* @param {Object} options.destination ?? value.value
|
|
224
226
|
* @returns {Object} returns an object with {resource, method}
|
|
225
227
|
*/
|
|
226
228
|
MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {
|
|
227
|
-
const {type, destination, password, captchaInfo} = options;
|
|
229
|
+
const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = options;
|
|
228
230
|
const body: any = {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
...DEFAULT_MEETING_INFO_REQUEST_BODY,
|
|
232
|
+
...extraParams,
|
|
231
233
|
};
|
|
232
234
|
|
|
233
235
|
switch (type) {
|
|
@@ -271,6 +273,14 @@ MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} |
|
|
|
271
273
|
body.captchaVerifyCode = captchaInfo.code;
|
|
272
274
|
}
|
|
273
275
|
|
|
276
|
+
if (installedOrgID) {
|
|
277
|
+
body.installedOrgID = installedOrgID;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (locusId) {
|
|
281
|
+
body.locusId = locusId;
|
|
282
|
+
}
|
|
283
|
+
|
|
274
284
|
return body;
|
|
275
285
|
};
|
|
276
286
|
|
|
@@ -40,4 +40,24 @@ export default class MeetingCollection extends Collection {
|
|
|
40
40
|
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* get a specific meeting searching for key
|
|
46
|
+
* @param {String} breakoutUrl
|
|
47
|
+
* @returns {Meeting} if found, else returns null
|
|
48
|
+
* @public
|
|
49
|
+
* @memberof MeetingCollection
|
|
50
|
+
*/
|
|
51
|
+
public getActiveBreakoutLocus(breakoutUrl: string) {
|
|
52
|
+
if (breakoutUrl) {
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
return find(
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
this.meetings,
|
|
57
|
+
(meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
43
63
|
}
|