@webex/plugin-meetings 3.0.0-beta.11 → 3.0.0-beta.111
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/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 +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +176 -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 +944 -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 +193 -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 +286 -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 +94 -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 +383 -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 +12 -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 +62 -147
- 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 +67 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2477 -2417
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +252 -113
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +296 -289
- 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 +58 -217
- 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 +278 -281
- 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 +155 -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 +675 -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 +177 -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 +162 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +58 -53
- 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 +107 -44
- 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 +3 -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 +38 -67
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +143 -134
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +149 -101
- 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 +34 -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 +984 -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 +137 -0
- package/dist/types/meeting/index.d.ts +1753 -0
- package/dist/types/meeting/muteState.d.ts +185 -0
- package/dist/types/meeting/request.d.ts +275 -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 +2 -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 +115 -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 +69 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/config.d.ts +195 -0
- package/dist/types/metrics/constants.d.ts +54 -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 +38 -0
- package/dist/types/roap/turnDiscovery.d.ts +88 -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 +41 -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 +141 -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 +835 -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 +141 -6
- 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 +274 -0
- package/src/index.ts +33 -0
- package/src/locus-info/controlsUtils.ts +145 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +326 -55
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +4 -4
- package/src/locus-info/parser.ts +46 -68
- package/src/locus-info/selfUtils.ts +187 -56
- package/src/media/index.ts +142 -172
- 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 +139 -3
- package/src/meeting/index.ts +2674 -1543
- package/src/meeting/muteState.ts +271 -68
- package/src/meeting/request.ts +231 -135
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +119 -110
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +201 -113
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +70 -55
- package/src/meetings/collection.ts +21 -1
- package/src/meetings/index.ts +749 -437
- package/src/meetings/request.ts +29 -25
- package/src/meetings/util.ts +122 -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 +281 -129
- package/src/members/request.ts +87 -14
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +140 -49
- package/src/metrics/config.ts +302 -90
- package/src/metrics/constants.ts +1 -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 +63 -51
- package/src/roap/request.ts +86 -53
- package/src/roap/turnDiscovery.ts +105 -46
- 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 +435 -0
- package/test/unit/spec/breakouts/breakout.ts +184 -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 +1542 -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 +289 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +585 -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/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 +66 -3
- package/test/unit/spec/meeting/index.js +2934 -946
- package/test/unit/spec/meeting/muteState.js +368 -70
- package/test/unit/spec/meeting/request.js +194 -44
- package/test/unit/spec/meeting/utils.js +146 -165
- package/test/unit/spec/meeting-info/meetinginfov2.js +333 -74
- 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 +1052 -329
- package/test/unit/spec/meetings/utils.js +163 -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 +402 -54
- package/test/unit/spec/members/request.js +76 -20
- package/test/unit/spec/members/utils.js +191 -4
- package/test/unit/spec/metrics/index.js +104 -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 +21 -16
- package/test/unit/spec/roap/request.ts +217 -0
- package/test/unit/spec/roap/turnDiscovery.ts +93 -49
- 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/dist/meeting/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","forEach","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","reject","ParameterError","localMedias","Media","generateLocalMedias","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","preferTranscoding","isMultistream","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","stopKeepAlive","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","leaveMeeting","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","parsedLocus","state","_LEFT_","isUserInIdleState","_IDLE_","isUserInJoinedState","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","length","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRecord","RECORDING_CONTROL_START","canUserPause","RECORDING_CONTROL_PAUSE","canUserResume","RECORDING_CONTROL_RESUME","canUserStop","RECORDING_CONTROL_STOP","startRecording","request","recordMeeting","recording","paused","PermissionError","pauseRecording","resumeRecording","stopRecording","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","canLock","lock","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\n\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport Metrics from '../metrics';\nimport {eventType, trigger} from '../metrics/config';\nimport Media from '../media';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE} from '../constants';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\n\nconst MeetingUtil: any = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n};\n\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\n\n if (isEmpty(localMedias)) {\n return Promise.reject(new ParameterError('You need a media id on the meeting to change remote audio.'));\n }\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\n\n return meeting.meetingRequest.remoteAudioVideoToggle({\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n localMedias,\n deviceUrl: meeting.deviceUrl,\n correlationId: meeting.correlationId,\n preferTranscoding: !meeting.isMultistream,\n }).then((response) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\n\n return response.body.locus;\n });\n};\n\nMeetingUtil.hasOwner = (info) => info && info.owner;\n\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\n\nMeetingUtil.isPinOrGuest = (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\n\nMeetingUtil.joinMeeting = (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: !meeting.isMultistream,\n asResourceOccupant: options.asResourceOccupant\n })\n .then((res) => {\n Metrics.postEvent({\n event: eventType.LOCUS_JOIN_RESPONSE,\n meeting,\n data: {\n trigger: trigger.LOCI_UPDATE,\n locus: res.body.locus,\n mediaConnections: res.body.mediaConnections,\n trackingId: res.headers.trackingid\n }\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n};\n\nMeetingUtil.cleanUp = (meeting) => {\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = (meeting.statsAnalyzer) ? meeting.statsAnalyzer.stopAnalyzer() : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeLocalStream())\n .then(() => meeting.closeLocalShare())\n .then(() => meeting.closeRemoteTracks())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.unsetLocalVideoTrack();\n meeting.unsetLocalShareTrack();\n meeting.unsetRemoteTracks();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => meeting.updateLLMConnection());\n};\n\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl\n };\n\n return meeting.meetingRequest\n .disconnectPhoneAudio(options)\n .then((response) => {\n if (response?.body?.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${\n meeting.id\n }, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\n// by default will leave on meeting's resourceId\n// if you explicity want it not to leave on resource id, pass\n// {resourceId: null}\n// TODO: chris, you can modify this however you want\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl\n };\n\n const leaveOptions = {...defaultOptions, ...options};\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) { // && !options.moveMeeting) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${\n meeting.id\n }, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\nMeetingUtil.declineMeeting = (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason\n });\n\nMeetingUtil.isUserInLeftState = (locusInfo) =>\n locusInfo.parsedLocus?.self?.state === _LEFT_;\n\nMeetingUtil.isUserInIdleState = (locusInfo) =>\n locusInfo.parsedLocus?.self?.state === _IDLE_;\n\nMeetingUtil.isUserInJoinedState = (locusInfo) =>\n locusInfo.parsedLocus?.self?.state === _JOINED_;\n\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\n currentMediaStatus && (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\n\n\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n Metrics.postEvent({\n event: eventType.PIN_COLLECTED,\n meeting\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n Metrics.postEvent({\n event: eventType.PIN_PROMPT,\n meeting\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n};\n\nMeetingUtil.validateOptions = (options) => {\n const {\n sendVideo, sendAudio, sendShare, localStream, localShare\n } = options;\n\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid video streams'));\n }\n\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\n return Promise.reject(new ParameterError('please pass valid audio streams'));\n }\n\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid share streams'));\n }\n\n return Promise.resolve();\n};\n\nMeetingUtil.getTrack = (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n};\n\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator;\n\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy;\n\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) => locusInfo?.parsedLocus?.info?.userDisplayHints || [];\n\nMeetingUtil.canInviteNewParticipants = (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\n\nMeetingUtil.canAdmitParticipant = (displayHints) => displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\n\nMeetingUtil.canUserLock = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) && displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\n\nMeetingUtil.canUserUnlock = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) && displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\n\nMeetingUtil.canUserRecord = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_START);\n\nMeetingUtil.canUserPause = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_PAUSE);\n\nMeetingUtil.canUserResume = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_RESUME);\n\nMeetingUtil.canUserStop = (displayHints) => displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_STOP);\n\nMeetingUtil.startRecording = (request, locusUrl, locusInfo) => {\n const displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);\n\n if (MeetingUtil.canUserRecord(displayHints)) {\n return request.recordMeeting({locusUrl, recording: true, paused: false});\n }\n\n return Promise.reject(new PermissionError('Start recording not allowed, due to moderator property.'));\n};\n\nMeetingUtil.pauseRecording = (request, locusUrl, locusInfo) => {\n const displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);\n\n if (MeetingUtil.canUserPause(displayHints)) {\n return request.recordMeeting({locusUrl, recording: true, paused: true});\n }\n\n return Promise.reject(new PermissionError('Pause recording not allowed, due to moderator property.'));\n};\n\nMeetingUtil.resumeRecording = (request, locusUrl, locusInfo) => {\n const displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);\n\n if (MeetingUtil.canUserResume(displayHints)) {\n return request.recordMeeting({locusUrl, recording: true, paused: false});\n }\n\n return Promise.reject(new PermissionError('Resume recording not allowed, due to moderator property.'));\n};\n\nMeetingUtil.stopRecording = (request, locusUrl, locusInfo) => {\n const displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);\n\n if (MeetingUtil.canUserStop(displayHints)) {\n return request.recordMeeting({locusUrl, recording: false, paused: false});\n }\n\n return Promise.reject(new PermissionError('Stop recording not allowed, due to moderator property.'));\n};\n\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\n\nMeetingUtil.canUserLowerAllHands = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\n\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\n\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) => displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) || displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\n\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n};\n\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n};\n\nMeetingUtil.handleAudioLogging = (audioTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioTrack) {\n const settings = audioTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleVideoLogging = (videoTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoTrack) {\n const settings = videoTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleDeviceLogging = (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n};\n\nMeetingUtil.endMeetingForAll = (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${\n meeting.id\n }, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\nMeetingUtil.canEnableClosedCaption = (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START);\n\nMeetingUtil.canStartTranscribing = (displayHints) => displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\n\nMeetingUtil.canStopTranscribing = (displayHints) => displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\n\nMeetingUtil.isClosedCaptionActive = (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\n\nMeetingUtil.isWebexAssistantActive = (displayHints) => displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\n\nMeetingUtil.canViewCaptionPanel = (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\n\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) => displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\n\nMeetingUtil.canSelectSpokenLanguages = (displayHints) => displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\n\nMeetingUtil.waitingForOthersToJoin = (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\n\nexport default MeetingUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","forEach","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","reject","ParameterError","localMedias","Media","generateLocalMedias","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","preferTranscoding","isMultistream","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","asResourceOccupant","breakoutsSupported","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","breakouts","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","stopKeepAlive","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","leaveMeeting","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","parsedLocus","state","_LEFT_","isUserInIdleState","_IDLE_","isUserInJoinedState","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","length","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","canManageBreakout","BREAKOUT_MANAGEMENT","isSuppressBreakoutSupport","UCF_SUPPRESS_BREAKOUTS_SUPPORT","canAdmitLobbyToBreakout","DISABLE_LOBBY_TO_BREAKOUT","isBreakoutPreassignmentsEnabled","DISABLE_BREAKOUT_PREASSIGNMENTS","canUserAskForHelp","DISABLE_ASK_FOR_HELP","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","underlyingTrack","getSettings","deviceId","log","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","isSaveTranscriptsEnabled","SAVE_TRANSCRIPTS_ENABLED","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","canSendReactions","originalValue","REACTIONS_ACTIVE","REACTIONS_INACTIVE","canUserRenameSelfAndObserved","CAN_RENAME_SELF_AND_OBSERVED","canUserRenameOthers","CAN_RENAME_OTHERS"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\nimport {LocalCameraTrack, LocalMicrophoneTrack} from '@webex/media-helpers';\n\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport Metrics from '../metrics';\nimport {eventType, trigger} from '../metrics/config';\nimport Media from '../media';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n} from '../constants';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\n\nconst MeetingUtil: any = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n};\n\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\n\n if (isEmpty(localMedias)) {\n return Promise.reject(\n new ParameterError('You need a media id on the meeting to change remote audio.')\n );\n }\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\n\n return meeting.meetingRequest\n .remoteAudioVideoToggle({\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n localMedias,\n deviceUrl: meeting.deviceUrl,\n correlationId: meeting.correlationId,\n preferTranscoding: !meeting.isMultistream,\n })\n .then((response) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\n\n return response.body.locus;\n });\n};\n\nMeetingUtil.hasOwner = (info) => info && info.owner;\n\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\n\nMeetingUtil.isPinOrGuest = (err) =>\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\n\nMeetingUtil.joinMeeting = (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: !meeting.isMultistream,\n asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n })\n .then((res) => {\n Metrics.postEvent({\n event: eventType.LOCUS_JOIN_RESPONSE,\n meeting,\n data: {\n trigger: trigger.LOCI_UPDATE,\n locus: res.body.locus,\n mediaConnections: res.body.mediaConnections,\n trackingId: res.headers.trackingid,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n};\n\nMeetingUtil.cleanUp = (meeting) => {\n meeting.breakouts.cleanUp();\n\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeLocalStream())\n .then(() => meeting.closeLocalShare())\n .then(() => meeting.closeRemoteTracks())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.unsetLocalVideoTrack();\n meeting.unsetLocalShareTrack();\n meeting.unsetRemoteTracks();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => meeting.updateLLMConnection());\n};\n\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest\n .disconnectPhoneAudio(options)\n .then((response) => {\n if (response?.body?.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\n// by default will leave on meeting's resourceId\n// if you explicity want it not to leave on resource id, pass\n// {resourceId: null}\n// TODO: chris, you can modify this however you want\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n const leaveOptions = {...defaultOptions, ...options};\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n // && !options.moveMeeting) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\nMeetingUtil.declineMeeting = (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n });\n\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\n\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\n\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\n\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\n\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n Metrics.postEvent({\n event: eventType.PIN_COLLECTED,\n meeting,\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n Metrics.postEvent({\n event: eventType.PIN_PROMPT,\n meeting,\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n};\n\nMeetingUtil.validateOptions = (options) => {\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\n\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid video streams'));\n }\n\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\n return Promise.reject(new ParameterError('please pass valid audio streams'));\n }\n\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid share streams'));\n }\n\n return Promise.resolve();\n};\n\nMeetingUtil.getTrack = (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n};\n\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator;\n\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy;\n\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\n\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\n\nMeetingUtil.canAdmitParticipant = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\n\nMeetingUtil.canUserLock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\n\nMeetingUtil.canUserUnlock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\n\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\n\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\n\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\n\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\n\nMeetingUtil.canManageBreakout = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.BREAKOUT_MANAGEMENT);\n\nMeetingUtil.isSuppressBreakoutSupport = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT);\n\nMeetingUtil.canAdmitLobbyToBreakout = (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT);\n\nMeetingUtil.isBreakoutPreassignmentsEnabled = (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS);\n\nMeetingUtil.canUserAskForHelp = (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_ASK_FOR_HELP);\n\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n};\n\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n};\n\nMeetingUtil.handleAudioLogging = (audioTrack: LocalMicrophoneTrack | null) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioTrack) {\n const settings = audioTrack.underlyingTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleVideoLogging = (videoTrack: LocalCameraTrack | null) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoTrack) {\n const settings = videoTrack.underlyingTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleDeviceLogging = (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n};\n\nMeetingUtil.endMeetingForAll = (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\n\nMeetingUtil.isSaveTranscriptsEnabled = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED);\n\nMeetingUtil.canStartTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\n\nMeetingUtil.canStopTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\n\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\n\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\n\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\n\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\n\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\n\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\n\nMeetingUtil.canSendReactions = (originalValue, displayHints) => {\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_ACTIVE)) {\n return true;\n }\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_INACTIVE)) {\n return false;\n }\n\n return originalValue;\n};\nMeetingUtil.canUserRenameSelfAndObserved = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED);\n\nMeetingUtil.canUserRenameOthers = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS);\n\nexport default MeetingUtil;\n"],"mappings":"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"}
|
|
@@ -1,49 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
-
|
|
5
4
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
-
|
|
7
5
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
-
|
|
9
6
|
_Object$defineProperty(exports, "__esModule", {
|
|
10
7
|
value: true
|
|
11
8
|
});
|
|
12
|
-
|
|
13
9
|
exports.default = void 0;
|
|
14
|
-
|
|
15
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
16
|
-
|
|
17
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
18
|
-
|
|
19
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
20
|
-
|
|
21
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
22
|
-
|
|
23
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
24
|
-
|
|
25
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
26
|
-
|
|
27
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
28
|
-
|
|
29
17
|
var _find2 = _interopRequireDefault(require("lodash/find"));
|
|
30
|
-
|
|
31
18
|
var _collection = _interopRequireDefault(require("../common/collection"));
|
|
32
|
-
|
|
33
19
|
var _constants = require("../constants");
|
|
34
|
-
|
|
35
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
36
|
-
|
|
37
21
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
38
|
-
|
|
39
22
|
/**
|
|
40
23
|
* @class MeetingInfoCollection
|
|
41
24
|
*/
|
|
42
25
|
var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
|
|
43
26
|
(0, _inherits2.default)(MeetingInfoCollection, _Collection);
|
|
44
|
-
|
|
45
27
|
var _super = _createSuper(MeetingInfoCollection);
|
|
46
|
-
|
|
47
28
|
/**
|
|
48
29
|
* @memberof MeetingInfoCollection
|
|
49
30
|
* @constructor
|
|
@@ -51,20 +32,18 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
|
|
|
51
32
|
*/
|
|
52
33
|
function MeetingInfoCollection() {
|
|
53
34
|
var _this;
|
|
54
|
-
|
|
55
35
|
(0, _classCallCheck2.default)(this, MeetingInfoCollection);
|
|
56
36
|
_this = _super.call(this, 'meetingInfos');
|
|
57
37
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
|
|
58
38
|
return _this;
|
|
59
39
|
}
|
|
40
|
+
|
|
60
41
|
/**
|
|
61
42
|
* @param {String} id ID of the meeting info you wish to retreive
|
|
62
43
|
* @returns {MeetingInfo} returns a meeting info instance
|
|
63
44
|
* @public
|
|
64
45
|
* @memberof MeetingInfoCollection
|
|
65
46
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
47
|
(0, _createClass2.default)(MeetingInfoCollection, [{
|
|
69
48
|
key: "get",
|
|
70
49
|
value: function get(id) {
|
|
@@ -73,8 +52,8 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
|
|
|
73
52
|
// @ts-ignore
|
|
74
53
|
return this.meetingInfos[id];
|
|
75
54
|
}
|
|
76
|
-
|
|
77
|
-
|
|
55
|
+
return (0, _find2.default)(
|
|
56
|
+
// @ts-ignore
|
|
78
57
|
this.meetingInfos, function (info) {
|
|
79
58
|
return info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id;
|
|
80
59
|
});
|
|
@@ -82,6 +61,5 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
|
|
|
82
61
|
}]);
|
|
83
62
|
return MeetingInfoCollection;
|
|
84
63
|
}(_collection.default);
|
|
85
|
-
|
|
86
64
|
exports.default = MeetingInfoCollection;
|
|
87
65
|
//# sourceMappingURL=collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingInfoCollection","MEETINGS","id","meetingInfos","info","sipUrl","locusId","userId","meetingLink","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\nimport {MEETINGS} from '../constants';\n\n/**\n * @class MeetingInfoCollection\n */\nexport default class MeetingInfoCollection extends Collection {\n namespace = MEETINGS;\n\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n constructor() {\n super('meetingInfos');\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n public get(id: string) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n\n return find(\n // @ts-ignore\n this.meetingInfos,\n (info)
|
|
1
|
+
{"version":3,"names":["MeetingInfoCollection","MEETINGS","id","meetingInfos","info","sipUrl","locusId","userId","meetingLink","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\nimport {MEETINGS} from '../constants';\n\n/**\n * @class MeetingInfoCollection\n */\nexport default class MeetingInfoCollection extends Collection {\n namespace = MEETINGS;\n\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n constructor() {\n super('meetingInfos');\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n public get(id: string) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n\n return find(\n // @ts-ignore\n this.meetingInfos,\n (info) =>\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA;AACA;AAAsC;AAAA;AAEtC;AACA;AACA;AAFA,IAGqBA,qBAAqB;EAAA;EAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,iCAAc;IAAA;IAAA;IACZ,0BAAM,cAAc;IAAE,wFARZC,mBAAQ;IAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,aAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO;MACL;MACA,IAAI,CAACC,YAAY,EACjB,UAACC,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKH,EAAE,IAAIE,IAAI,CAACE,OAAO,KAAKJ,EAAE,IAAIE,IAAI,CAACG,MAAM,KAAKL,EAAE,IAAIE,IAAI,CAACI,WAAW,KAAKN,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA;AAAA,EA/BgDO,mBAAU;AAAA"}
|
|
@@ -1,37 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
14
|
-
|
|
15
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
16
|
-
|
|
17
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
18
|
-
|
|
19
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
20
|
-
|
|
21
13
|
var _constants = require("../constants");
|
|
22
|
-
|
|
23
14
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
24
|
-
|
|
25
15
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
26
|
-
|
|
27
16
|
var _request = _interopRequireDefault(require("./request"));
|
|
28
|
-
|
|
29
17
|
var _util = _interopRequireDefault(require("./util"));
|
|
30
|
-
|
|
31
18
|
/*!
|
|
32
19
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
33
20
|
*/
|
|
34
|
-
|
|
35
21
|
/**
|
|
36
22
|
* @class MeetingInfo
|
|
37
23
|
*/
|
|
@@ -46,14 +32,14 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
46
32
|
(0, _defineProperty2.default)(this, "meetingInfoRequest", void 0);
|
|
47
33
|
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
48
34
|
this.webex = webex;
|
|
35
|
+
|
|
49
36
|
/**
|
|
50
37
|
* The meeting info request server interface
|
|
51
38
|
* @instance
|
|
52
39
|
* @type {Object}
|
|
53
40
|
* @private
|
|
54
41
|
* @memberof MeetingInfo
|
|
55
|
-
|
|
56
|
-
|
|
42
|
+
*/
|
|
57
43
|
this.meetingInfoRequest = new _request.default(this.webex);
|
|
58
44
|
/**
|
|
59
45
|
* The meeting information collection interface
|
|
@@ -61,23 +47,22 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
61
47
|
* @type {Object}
|
|
62
48
|
* @private
|
|
63
49
|
* @memberof MeetingInfo
|
|
64
|
-
|
|
65
|
-
|
|
50
|
+
*/
|
|
66
51
|
this.meetingInfoCollection = new _collection.default();
|
|
67
52
|
}
|
|
53
|
+
|
|
68
54
|
/**
|
|
69
55
|
* @param {string} id
|
|
70
56
|
* @returns {object}
|
|
71
57
|
* @public
|
|
72
58
|
* @memberof MeetingInfo
|
|
73
59
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
60
|
(0, _createClass2.default)(MeetingInfo, [{
|
|
77
61
|
key: "getMeetingInfo",
|
|
78
62
|
value: function getMeetingInfo(id) {
|
|
79
63
|
return this.meetingInfoCollection.get(id);
|
|
80
64
|
}
|
|
65
|
+
|
|
81
66
|
/**
|
|
82
67
|
* @param {string} id
|
|
83
68
|
* @param {object} info
|
|
@@ -85,12 +70,12 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
85
70
|
* @public
|
|
86
71
|
* @memberof MeetingInfo
|
|
87
72
|
*/
|
|
88
|
-
|
|
89
73
|
}, {
|
|
90
74
|
key: "setMeetingInfo",
|
|
91
75
|
value: function setMeetingInfo(id, info) {
|
|
92
76
|
this.meetingInfoCollection.set(id, info);
|
|
93
77
|
}
|
|
78
|
+
|
|
94
79
|
/**
|
|
95
80
|
* Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
|
|
96
81
|
* @param {Object} options
|
|
@@ -98,24 +83,21 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
98
83
|
* @private
|
|
99
84
|
* @memberof MeetingInfo
|
|
100
85
|
*/
|
|
101
|
-
|
|
102
86
|
}, {
|
|
103
87
|
key: "requestFetchInfo",
|
|
104
88
|
value: function requestFetchInfo(options) {
|
|
105
89
|
var _this = this;
|
|
106
|
-
|
|
107
90
|
return this.meetingInfoRequest.fetchMeetingInfo(options).then(function (info) {
|
|
108
91
|
if (info && info.body) {
|
|
109
92
|
_this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
|
|
110
93
|
}
|
|
111
|
-
|
|
112
94
|
return info;
|
|
113
95
|
}).catch(function (error) {
|
|
114
96
|
_loggerProxy.default.logger.error("Meeting-info:index#requestFetchInfo --> ".concat(error, " fetch meetingInfo"));
|
|
115
|
-
|
|
116
97
|
return _promise.default.reject(error);
|
|
117
98
|
});
|
|
118
99
|
}
|
|
100
|
+
|
|
119
101
|
/**
|
|
120
102
|
* Helper to generate the options for the MeetingInfo request
|
|
121
103
|
* @param {String} destination
|
|
@@ -124,7 +106,6 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
124
106
|
* @private
|
|
125
107
|
* @memberof MeetingInfo
|
|
126
108
|
*/
|
|
127
|
-
|
|
128
109
|
}, {
|
|
129
110
|
key: "fetchInfoOptions",
|
|
130
111
|
value: function fetchInfoOptions(destination, type) {
|
|
@@ -134,6 +115,7 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
134
115
|
webex: this.webex
|
|
135
116
|
});
|
|
136
117
|
}
|
|
118
|
+
|
|
137
119
|
/**
|
|
138
120
|
* Fetches meeting info from the server
|
|
139
121
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
@@ -142,27 +124,23 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
142
124
|
* @public
|
|
143
125
|
* @memberof MeetingInfo
|
|
144
126
|
*/
|
|
145
|
-
|
|
146
127
|
}, {
|
|
147
128
|
key: "fetchMeetingInfo",
|
|
148
129
|
value: function fetchMeetingInfo(destination) {
|
|
149
130
|
var _this2 = this;
|
|
150
|
-
|
|
151
131
|
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
152
|
-
|
|
153
132
|
if (type === _constants._PERSONAL_ROOM_ && !destination) {
|
|
154
133
|
destination = this.webex.internal.device.userId;
|
|
155
134
|
}
|
|
156
|
-
|
|
157
135
|
return this.fetchInfoOptions(_util.default.extractDestination(destination, type), type).then(function (options) {
|
|
158
|
-
return (
|
|
136
|
+
return (
|
|
137
|
+
// fetch meeting info
|
|
159
138
|
_this2.requestFetchInfo(options).catch(function (error) {
|
|
160
139
|
// if it failed the first time as meeting link
|
|
161
140
|
if (options.type === _constants._MEETING_LINK_) {
|
|
162
141
|
// convert the meeting link to sip URI and retry
|
|
163
142
|
return _this2.requestFetchInfo(_this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants._SIP_URI_));
|
|
164
143
|
}
|
|
165
|
-
|
|
166
144
|
return _promise.default.reject(error);
|
|
167
145
|
})
|
|
168
146
|
);
|
|
@@ -171,6 +149,5 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
171
149
|
}]);
|
|
172
150
|
return MeetingInfo;
|
|
173
151
|
}();
|
|
174
|
-
|
|
175
152
|
exports.default = MeetingInfo;
|
|
176
153
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingInfo","webex","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","id","get","info","set","options","fetchMeetingInfo","then","body","setMeetingInfo","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","reject","destination","type","MeetingInfoUtil","generateOptions","_PERSONAL_ROOM_","internal","device","userId","fetchInfoOptions","extractDestination","requestFetchInfo","_MEETING_LINK_","convertLinkToSip","_SIP_URI_"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {
|
|
1
|
+
{"version":3,"names":["MeetingInfo","webex","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","id","get","info","set","options","fetchMeetingInfo","then","body","setMeetingInfo","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","reject","destination","type","MeetingInfoUtil","generateOptions","_PERSONAL_ROOM_","internal","device","userId","fetchInfoOptions","extractDestination","requestFetchInfo","_MEETING_LINK_","convertLinkToSip","_SIP_URI_"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {_MEETING_LINK_, _SIP_URI_, _PERSONAL_ROOM_} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: object) {\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(destination: string, type: string = null) {\n if (type === _PERSONAL_ROOM_ && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (options) =>\n // fetch meeting info\n this.requestFetchInfo(options).catch((error) => {\n // if it failed the first time as meeting link\n if (options.type === _MEETING_LINK_) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo(\n this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_)\n );\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":"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"}
|