@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.400
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 +58 -8
- 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 +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +216 -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 +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1048 -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 +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- 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 +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +54 -48
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- 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 +41 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +28 -23
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +11 -15
- package/dist/config.js.map +1 -1
- package/dist/constants.js +347 -74
- 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 +319 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +125 -18
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +380 -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 +101 -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 +564 -246
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +10 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +82 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +314 -163
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +110 -92
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +107 -231
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +137 -222
- 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 +316 -501
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +97 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +5311 -3871
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +260 -183
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +421 -347
- 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 +672 -585
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.js +172 -0
- package/dist/meeting/voicea-meeting.js.map +1 -0
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +87 -39
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +352 -283
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +99 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +147 -234
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +43 -19
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +895 -600
- 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 +26 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +184 -157
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +134 -85
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +158 -88
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +13 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +194 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +113 -68
- 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 +324 -259
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +19 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +11 -558
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +263 -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 +76 -95
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +62 -76
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +82 -45
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +657 -448
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +255 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +40 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- 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/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +297 -460
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +20 -26
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +413 -483
- 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 +362 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +64 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +102 -86
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +131 -135
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +437 -116
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +179 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +557 -583
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +326 -130
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/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 +8 -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/no-meeting-info.d.ts +14 -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/reclaim-host-role-errors.d.ts +60 -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 +93 -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 +36 -0
- package/dist/types/common/queue.d.ts +34 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1088 -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/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -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 +322 -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 +272 -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 +93 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +167 -0
- package/dist/types/meeting/index.d.ts +1824 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +178 -0
- package/dist/types/meeting/request.d.ts +293 -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 +118 -0
- package/dist/types/meeting/voicea-meeting.d.ts +16 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +69 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -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 +40 -0
- package/dist/types/meetings/index.d.ts +389 -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 +160 -0
- package/dist/types/member/types.d.ts +32 -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 +25 -0
- package/dist/types/members/util.d.ts +215 -0
- package/dist/types/metrics/constants.d.ts +70 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +120 -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 +49 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +301 -0
- package/dist/types/multistream/sendSlotManager.d.ts +70 -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/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +105 -0
- package/dist/types/reachability/request.d.ts +39 -0
- package/dist/types/reachability/util.d.ts +8 -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 +136 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +207 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +86 -0
- package/dist/types/roap/request.d.ts +39 -0
- package/dist/types/roap/turnDiscovery.d.ts +155 -0
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +61 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +217 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/internal-README.md +7 -6
- package/package.json +30 -21
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +26 -9
- package/src/common/queue.ts +22 -9
- package/src/{config.js → config.ts} +19 -21
- package/src/constants.ts +296 -27
- 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 +300 -0
- package/src/index.ts +45 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +349 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +222 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +561 -119
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +97 -17
- package/src/locus-info/{parser.js → parser.ts} +303 -104
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
- package/src/media/index.ts +460 -0
- package/src/media/properties.ts +283 -0
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/config.ts +249 -0
- package/src/meeting/in-meeting-actions.ts +199 -3
- package/src/meeting/index.ts +8494 -0
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +465 -0
- package/src/meeting/request.ts +912 -0
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/util.ts +799 -0
- package/src/meeting/voicea-meeting.ts +122 -0
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/index.ts +210 -0
- package/src/meeting-info/meeting-info-v2.ts +423 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +70 -58
- package/src/meeting-info/{utilv2.js → utilv2.ts} +99 -82
- package/src/meetings/collection.ts +76 -0
- package/src/meetings/index.ts +1539 -0
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/{request.js → request.ts} +34 -25
- package/src/meetings/{util.js → util.ts} +133 -38
- package/src/member/{index.js → index.ts} +159 -56
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +397 -0
- package/src/members/{collection.js → collection.ts} +10 -2
- package/src/members/{index.js → index.ts} +351 -146
- package/src/members/request.ts +255 -0
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +353 -0
- package/src/metrics/{constants.js → constants.ts} +17 -6
- package/src/metrics/index.ts +73 -0
- package/src/multistream/mediaRequestManager.ts +341 -64
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +66 -42
- package/src/multistream/remoteMedia.ts +40 -5
- package/src/multistream/remoteMediaGroup.ts +82 -3
- package/src/multistream/remoteMediaManager.ts +401 -81
- package/src/multistream/sendSlotManager.ts +199 -0
- package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +371 -0
- package/src/reachability/request.ts +50 -35
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/index.ts +643 -0
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +332 -0
- package/src/recording-controller/util.ts +75 -0
- package/src/roap/index.ts +288 -0
- package/src/roap/request.ts +153 -0
- package/src/roap/turnDiscovery.ts +374 -70
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +166 -0
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1275 -0
- package/src/statsAnalyzer/mqaUtil.ts +440 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +791 -531
- package/test/integration/spec/space-meeting.js +391 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +238 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1793 -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/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +582 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +625 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +325 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1458 -21
- package/test/unit/spec/locus-info/infoUtils.js +71 -40
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
- package/test/unit/spec/locus-info/parser.js +119 -44
- package/test/unit/spec/locus-info/selfConstant.js +120 -103
- package/test/unit/spec/locus-info/selfUtils.js +291 -12
- package/test/unit/spec/media/index.ts +194 -111
- package/test/unit/spec/media/properties.ts +11 -11
- package/test/unit/spec/meeting/in-meeting-actions.ts +96 -3
- package/test/unit/spec/meeting/index.js +8616 -1921
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +568 -207
- package/test/unit/spec/meeting/request.js +602 -82
- package/test/unit/spec/meeting/utils.js +867 -179
- package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +631 -78
- 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 +27 -1
- package/test/unit/spec/meetings/index.js +1826 -374
- package/test/unit/spec/meetings/utils.js +243 -14
- package/test/unit/spec/member/index.js +61 -7
- package/test/unit/spec/member/util.js +526 -26
- package/test/unit/spec/members/index.js +536 -55
- package/test/unit/spec/members/request.js +228 -40
- package/test/unit/spec/members/utils.js +217 -4
- package/test/unit/spec/metrics/index.js +13 -68
- package/test/unit/spec/multistream/mediaRequestManager.ts +1032 -110
- 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 +40 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +350 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +937 -65
- package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
- 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/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +606 -26
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +222 -34
- package/test/unit/spec/recording-controller/index.js +306 -0
- package/test/unit/spec/recording-controller/util.js +229 -0
- package/test/unit/spec/roap/index.ts +238 -82
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +707 -110
- package/test/unit/spec/rtcMetrics/index.ts +122 -0
- package/test/unit/spec/stats-analyzer/index.js +1331 -62
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +63 -99
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +65 -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 -327
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -301
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/index.js +0 -15
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/index.js +0 -459
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/media/properties.js +0 -289
- package/src/mediaQualityMetrics/config.js +0 -382
- package/src/meeting/effectsState.js +0 -205
- package/src/meeting/index.js +0 -6284
- package/src/meeting/muteState.js +0 -318
- package/src/meeting/request.js +0 -684
- package/src/meeting/util.js +0 -506
- package/src/meeting-info/index.js +0 -131
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/collection.js +0 -40
- package/src/meetings/index.js +0 -1015
- package/src/member/util.js +0 -254
- package/src/members/request.js +0 -131
- package/src/members/util.js +0 -258
- package/src/metrics/config.js +0 -324
- package/src/metrics/index.js +0 -530
- package/src/multistream/multistreamMedia.ts +0 -92
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/reachability/index.js +0 -464
- package/src/reconnection-manager/index.js +0 -519
- package/src/roap/index.js +0 -220
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/global.js +0 -133
- package/src/statsAnalyzer/index.js +0 -1006
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/meeting/effectsState.js +0 -291
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
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","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.js"],"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 = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed = {};\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};\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 = {}) => {\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 = {}) => {\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","meeting","audioMuted","videoMuted","webex","getWebexObject","reject","ParameterError","locusMediaRequest","internal","newMetrics","submitClientEvent","name","options","meetingId","send","type","selfUrl","sequence","locusInfo","muteOptions","then","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","errorCode","INTENT_TO_JOIN","includes","getIpVersion","device","ipNetworkDetector","supportsIpV4","supportsIpV6","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","reachability","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","config","enableAutomaticLLM","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","leaveOptions","moveMeeting","declineMeeting","reason","parsedLocus","state","_LEFT_","isUserInIdleState","_IDLE_","isUserInJoinedState","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","setLocus","IntentToJoinError","JoinMeetingError","buildLeaveFetchRequestOptions","buildLeaveMeetingRequestOptions","getTrack","stream","audioTrack","videoTrack","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","canBroadcastMessageToBreakout","policies","BROADCAST_MESSAGE_TO_BREAKOUT","SELF_POLICY","SUPPORT_BROADCAST_MESSAGE","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","audioStream","LOG_HEADER","settings","getSettings","deviceId","log","handleVideoLogging","videoStream","handleDeviceLogging","devices","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","canShareWhiteBoard","SHARE_WHITEBOARD","addSequence","requestBody","updateLocusWithDelta","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","lanuagesInfo","siLanguages","language","updateInterpretation","Trigger","file","function","EVENT_TRIGGERS","MEETING_INTERPRETATION_UPDATE","getChangeMeetingFloorErrorPayload","errorPayload","errorDescription","shownToUser","LOCAL_SHARE_ERRORS","UNDEFINED","fatal","category","DEVICE_NOT_JOINED","NO_MEDIA_FOR_DEVICE","NO_CONFLUENCE_ID","CONTENT_SHARING_DISABLED","LOCUS_PARTICIPANT_DNE","CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD"],"sources":["util.ts"],"sourcesContent":["import {LocalCameraStream, LocalMicrophoneStream} from '@webex/media-helpers';\n\nimport {cloneDeep} from 'lodash';\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\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 SELF_POLICY,\n EVENT_TRIGGERS,\n LOCAL_SHARE_ERRORS,\n IP_VERSION,\n} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\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';\nimport Trigger from '../common/events/trigger-proxy';\n\nconst MeetingUtil = {\n 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\n remoteUpdateAudioVideo: (meeting, audioMuted?: boolean, videoMuted?: boolean) => {\n const webex = meeting.getWebexObject();\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n if (!meeting.locusMediaRequest) {\n return Promise.reject(\n new ParameterError(\n 'You need a meeting with a media connection, call Meeting.addMedia() first.'\n )\n );\n }\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {meetingId: meeting.id},\n });\n\n return meeting.locusMediaRequest\n .send({\n type: 'LocalMute',\n selfUrl: meeting.selfUrl,\n mediaId: meeting.mediaId,\n sequence: meeting.locusInfo.sequence,\n muteOptions: {\n audioMuted,\n videoMuted,\n },\n })\n .then((response) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {meetingId: meeting.id},\n });\n\n return response?.body?.locus;\n });\n },\n\n hasOwner: (info) => info && info.owner,\n\n isOwnerSelf: (owner, selfId) => owner === selfId,\n\n isPinOrGuest: (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode),\n\n /**\n * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.\n * The return value matches the possible values of \"ipver\" parameter used by the backend APIs.\n *\n * @param {Object} webex webex instance\n * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend\n */\n getIpVersion(webex: any): IP_VERSION | undefined {\n const {supportsIpV4, supportsIpV6} = webex.internal.device.ipNetworkDetector;\n\n if (BrowserDetection().isBrowser('firefox')) {\n // our ipv6 solution relies on FQDN ICE candidates, but Firefox doesn't support them,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1713128\n // so for Firefox we don't want the backend to activate the \"ipv6 feature\"\n return undefined;\n }\n\n if (supportsIpV4 && supportsIpV6) {\n return IP_VERSION.ipv4_and_ipv6;\n }\n\n if (supportsIpV4) {\n return IP_VERSION.only_ipv4;\n }\n\n if (supportsIpV6) {\n return IP_VERSION.only_ipv6;\n }\n\n return IP_VERSION.unknown;\n },\n\n joinMeeting: (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const webex = meeting.getWebexObject();\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.request',\n options: {meetingId: meeting.id},\n });\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 locusClusterUrl: meeting.meetingInfo?.locusClusterUrl,\n correlationId: meeting.correlationId,\n reachability: options.reachability,\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 locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject()),\n })\n .then((res) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.response',\n payload: {\n trigger: 'loci-update',\n identifiers: {\n trackingId: res.headers.trackingid,\n },\n },\n options: {\n meetingId: meeting.id,\n mediaConnections: res.body.mediaConnections,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n },\n\n cleanUp: (meeting) => {\n meeting.breakouts.cleanUp();\n meeting.simultaneousInterpretation.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.closeRemoteStreams())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.cleanupLocalStreams();\n meeting.unsetRemoteStreams();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => {\n if (meeting.config?.enableAutomaticLLM) {\n meeting.updateLLMConnection();\n }\n });\n },\n\n 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.disconnectPhoneAudio(options).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 /**\n * Returns options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} leave options\n */\n prepareLeaveMeetingOptions: (meeting, options: any = {}) => {\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 return {...defaultOptions, ...options};\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\n 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 leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\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 },\n declineMeeting: (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n }),\n\n isUserInLeftState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_,\n\n isUserInIdleState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_,\n\n isUserInJoinedState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_,\n\n isMediaEstablished: (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share),\n\n joinMeetingOptions: (meeting, options: any = {}) => {\n const webex = meeting.getWebexObject();\n\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.collected',\n options: {\n meetingId: meeting.id,\n },\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.prompt',\n options: {\n meetingId: meeting.id,\n },\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(\n 'Meeting:util#joinMeetingOptions --> Error joining the call, ',\n err\n );\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n },\n\n /**\n * Returns request options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} request options\n */\n buildLeaveFetchRequestOptions: (meeting, options: any = {}) => {\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest.buildLeaveMeetingRequestOptions(leaveOptions);\n },\n\n 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\n getModeratorFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator,\n\n getPolicyFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy,\n\n getUserDisplayHintsFromLocusInfo: (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [],\n\n canInviteNewParticipants: (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST),\n\n canAdmitParticipant: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN),\n\n canUserLock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED),\n\n canUserUnlock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED),\n\n canUserRaiseHand: (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND),\n\n canUserLowerAllHands: (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS),\n\n canUserLowerSomeoneElsesHand: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND),\n\n bothLeaveAndEndMeetingAvailable: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING),\n\n canManageBreakout: (displayHints) => displayHints.includes(DISPLAY_HINTS.BREAKOUT_MANAGEMENT),\n canBroadcastMessageToBreakout: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.BROADCAST_MESSAGE_TO_BREAKOUT) &&\n !!policies[SELF_POLICY.SUPPORT_BROADCAST_MESSAGE],\n\n isSuppressBreakoutSupport: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT),\n\n canAdmitLobbyToBreakout: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT),\n\n isBreakoutPreassignmentsEnabled: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS),\n\n canUserAskForHelp: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_ASK_FOR_HELP),\n\n 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\n 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\n handleAudioLogging: (audioStream?: LocalMicrophoneStream) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioStream) {\n const settings = audioStream.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\n handleVideoLogging: (videoStream?: LocalCameraStream) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoStream) {\n const settings = videoStream.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\n 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\n 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(() => 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\n canEnableClosedCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START),\n\n isSaveTranscriptsEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED),\n\n canStartTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START),\n\n canStopTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP),\n\n isClosedCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE),\n\n isWebexAssistantActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE),\n\n canViewCaptionPanel: (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL),\n\n isRealTimeTranslationEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION),\n\n canSelectSpokenLanguages: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR),\n\n waitingForOthersToJoin: (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS),\n\n 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 },\n canUserRenameSelfAndObserved: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n canShareWhiteBoard: (displayHints) => displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD),\n\n /**\n * Adds the current locus sequence information to a request body\n * @param {Object} meeting The meeting object\n * @param {Object} requestBody The body of a request to locus\n * @returns {void}\n */\n addSequence: (meeting, requestBody) => {\n const sequence = meeting?.locusInfo?.sequence;\n\n if (!sequence) {\n return;\n }\n\n requestBody.sequence = sequence;\n },\n\n /**\n * Updates the locus info for the meeting with the delta locus\n * returned from requests that include the sequence information\n * Returns the original response object\n * @param {Object} meeting The meeting object\n * @param {Object} response The response of the http request\n * @returns {Object}\n */\n updateLocusWithDelta: (meeting, response) => {\n if (!meeting) {\n return response;\n }\n\n const locus = response?.body?.locus;\n\n if (locus) {\n meeting.locusInfo.handleLocusDelta(locus, meeting);\n }\n\n return response;\n },\n\n generateBuildLocusDeltaRequestOptions: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return originalOptions;\n }\n\n const options = cloneDeep(originalOptions);\n\n if (!options.body) {\n options.body = {};\n }\n\n MeetingUtil.addSequence(meeting, options.body);\n\n return options;\n };\n\n return buildLocusDeltaRequestOptions;\n },\n\n generateLocusDeltaRequest: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions =\n MeetingUtil.generateBuildLocusDeltaRequestOptions(originalMeeting);\n\n const locusDeltaRequest = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return Promise.resolve();\n }\n\n const options = buildLocusDeltaRequestOptions(originalOptions);\n\n return meeting\n .request(options)\n .then((response) => MeetingUtil.updateLocusWithDelta(meeting, response));\n };\n\n return locusDeltaRequest;\n },\n\n selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => {\n if (!userPolicies) {\n return true;\n }\n\n return userPolicies[feature];\n },\n\n parseInterpretationInfo: (meeting, meetingInfo) => {\n if (!meeting || !meetingInfo) {\n return;\n }\n const siInfo = meetingInfo.simultaneousInterpretation;\n meeting.simultaneousInterpretation.updateMeetingSIEnabled(\n !!meetingInfo.turnOnSimultaneousInterpretation,\n !!siInfo?.currentSIInterpreter\n );\n const hostSIEnabled = !!(\n meetingInfo.turnOnSimultaneousInterpretation &&\n meetingInfo?.meetingSiteSetting?.enableHostInterpreterControlSI\n );\n meeting.simultaneousInterpretation.updateHostSIEnabled(hostSIEnabled);\n\n function renameKey(obj, oldKey, newKey) {\n if (oldKey in obj) {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n }\n }\n if (siInfo) {\n const lanuagesInfo = cloneDeep(siInfo.siLanguages);\n for (const language of lanuagesInfo) {\n renameKey(language, 'languageCode', 'languageName');\n renameKey(language, 'languageGroupId', 'languageCode');\n }\n if (!meeting.simultaneousInterpretation?.siLanguages?.length) {\n meeting.simultaneousInterpretation.updateInterpretation({siLanguages: lanuagesInfo});\n }\n }\n Trigger.trigger(\n meeting,\n {\n file: 'meeting/util',\n function: 'parseInterpretationInfo',\n },\n EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE\n );\n },\n\n /**\n * Returns a CA-recognized error payload for the specified raw error message/reason.\n *\n * New errors can be added to this function for handling in the future\n *\n * @param {String} reason the raw error message\n * @returns {Array<object>} an array of payload objects\n */\n getChangeMeetingFloorErrorPayload: (reason: string) => {\n const errorPayload = {\n errorDescription: reason,\n name: 'locus.response',\n shownToUser: false,\n };\n if (reason.includes(LOCAL_SHARE_ERRORS.UNDEFINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4050,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'media',\n errorCode: 2048,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4064,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4065,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4066,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4067,\n },\n ];\n }\n\n // return unknown error\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n },\n};\n\nexport default MeetingUtil;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
|
|
4
|
+
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
|
|
5
|
+
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
|
|
6
|
+
var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
|
|
7
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
8
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
9
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
exports.processNewCaptions = exports.getSpeakerFromProxyOrStore = exports.getSpeaker = void 0;
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
14
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
15
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
16
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
17
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
|
+
var getSpeaker = function getSpeaker(members) {
|
|
20
|
+
var csis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
21
|
+
return (0, _values.default)(members).find(function (member) {
|
|
22
|
+
var _member$participant$s;
|
|
23
|
+
var memberCSIs = (_member$participant$s = member.participant.status.csis) !== null && _member$participant$s !== void 0 ? _member$participant$s : [];
|
|
24
|
+
return csis.some(function (csi) {
|
|
25
|
+
return memberCSIs.includes(csi);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.getSpeaker = getSpeaker;
|
|
30
|
+
var getSpeakerFromProxyOrStore = function getSpeakerFromProxyOrStore(_ref) {
|
|
31
|
+
var _meetingMember$partic, _meetingMember$partic2;
|
|
32
|
+
var csisKey = _ref.csisKey,
|
|
33
|
+
meetingMembers = _ref.meetingMembers,
|
|
34
|
+
transcriptData = _ref.transcriptData;
|
|
35
|
+
var speaker = {
|
|
36
|
+
speakerId: '',
|
|
37
|
+
name: ''
|
|
38
|
+
};
|
|
39
|
+
var needsCaching = false;
|
|
40
|
+
if (csisKey && transcriptData.speakerProxy[csisKey]) {
|
|
41
|
+
speaker = transcriptData.speakerProxy[csisKey];
|
|
42
|
+
return {
|
|
43
|
+
speaker: speaker,
|
|
44
|
+
needsCaching: needsCaching
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
var meetingMember = getSpeaker(meetingMembers, [csisKey]);
|
|
48
|
+
speaker = {
|
|
49
|
+
speakerId: (_meetingMember$partic = meetingMember === null || meetingMember === void 0 ? void 0 : meetingMember.participant.person.id) !== null && _meetingMember$partic !== void 0 ? _meetingMember$partic : '',
|
|
50
|
+
name: (_meetingMember$partic2 = meetingMember === null || meetingMember === void 0 ? void 0 : meetingMember.participant.person.name) !== null && _meetingMember$partic2 !== void 0 ? _meetingMember$partic2 : ''
|
|
51
|
+
};
|
|
52
|
+
needsCaching = true;
|
|
53
|
+
return {
|
|
54
|
+
speaker: speaker,
|
|
55
|
+
needsCaching: needsCaching
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
exports.getSpeakerFromProxyOrStore = getSpeakerFromProxyOrStore;
|
|
59
|
+
var processNewCaptions = function processNewCaptions(_ref2) {
|
|
60
|
+
var data = _ref2.data,
|
|
61
|
+
meeting = _ref2.meeting;
|
|
62
|
+
var transcriptId = data.transcriptId;
|
|
63
|
+
var transcriptData = meeting.transcription;
|
|
64
|
+
if (data.isFinal) {
|
|
65
|
+
var _data$transcript, _data$transcript2, _data$transcript3;
|
|
66
|
+
transcriptData.interimCaptions[transcriptId].forEach(function (interimId) {
|
|
67
|
+
var interimTranscriptIndex = transcriptData.captions.findIndex(function (transcript) {
|
|
68
|
+
return transcript.id === interimId;
|
|
69
|
+
});
|
|
70
|
+
if (interimTranscriptIndex !== -1) {
|
|
71
|
+
transcriptData.captions.splice(interimTranscriptIndex, 1);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
delete transcriptData.interimCaptions[transcriptId];
|
|
75
|
+
var csisKey = (_data$transcript = data.transcript) === null || _data$transcript === void 0 ? void 0 : _data$transcript.csis[0];
|
|
76
|
+
var _getSpeakerFromProxyO = getSpeakerFromProxyOrStore({
|
|
77
|
+
meetingMembers: meeting.members.membersCollection.members,
|
|
78
|
+
transcriptData: transcriptData,
|
|
79
|
+
csisKey: csisKey
|
|
80
|
+
}),
|
|
81
|
+
needsCaching = _getSpeakerFromProxyO.needsCaching,
|
|
82
|
+
speaker = _getSpeakerFromProxyO.speaker;
|
|
83
|
+
if (needsCaching) {
|
|
84
|
+
transcriptData.speakerProxy[csisKey] = speaker;
|
|
85
|
+
}
|
|
86
|
+
var captionData = {
|
|
87
|
+
id: transcriptId,
|
|
88
|
+
isFinal: data.isFinal,
|
|
89
|
+
translations: data.translations,
|
|
90
|
+
text: (_data$transcript2 = data.transcript) === null || _data$transcript2 === void 0 ? void 0 : _data$transcript2.text,
|
|
91
|
+
currentSpokenLanguage: (_data$transcript3 = data.transcript) === null || _data$transcript3 === void 0 ? void 0 : _data$transcript3.transcript_language_code,
|
|
92
|
+
timestamp: data.timestamp,
|
|
93
|
+
speaker: speaker
|
|
94
|
+
};
|
|
95
|
+
transcriptData.captions.push(captionData);
|
|
96
|
+
}
|
|
97
|
+
var _data$transcripts = data.transcripts,
|
|
98
|
+
transcripts = _data$transcripts === void 0 ? [] : _data$transcripts;
|
|
99
|
+
var transcriptsPerCsis = new _map.default();
|
|
100
|
+
var _iterator = _createForOfIteratorHelper(transcripts),
|
|
101
|
+
_step;
|
|
102
|
+
try {
|
|
103
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
104
|
+
var _transcriptsPerCsis$g, _transcriptsPerCsis$g2;
|
|
105
|
+
var transcript = _step.value;
|
|
106
|
+
var text = transcript.text,
|
|
107
|
+
currentSpokenLanguage = transcript.transcript_language_code,
|
|
108
|
+
_transcript$csis = (0, _slicedToArray2.default)(transcript.csis, 1),
|
|
109
|
+
csisMember = _transcript$csis[0];
|
|
110
|
+
var newCaption = "".concat((_transcriptsPerCsis$g = (_transcriptsPerCsis$g2 = transcriptsPerCsis.get(csisMember)) === null || _transcriptsPerCsis$g2 === void 0 ? void 0 : _transcriptsPerCsis$g2.text) !== null && _transcriptsPerCsis$g !== void 0 ? _transcriptsPerCsis$g : '', " ").concat(text).trim();
|
|
111
|
+
|
|
112
|
+
// eslint-disable-next-line camelcase
|
|
113
|
+
transcriptsPerCsis.set(csisMember, {
|
|
114
|
+
text: newCaption,
|
|
115
|
+
currentSpokenLanguage: currentSpokenLanguage
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
} catch (err) {
|
|
119
|
+
_iterator.e(err);
|
|
120
|
+
} finally {
|
|
121
|
+
_iterator.f();
|
|
122
|
+
}
|
|
123
|
+
var interimTranscriptionIds = [];
|
|
124
|
+
var _iterator2 = _createForOfIteratorHelper(transcriptsPerCsis),
|
|
125
|
+
_step2;
|
|
126
|
+
try {
|
|
127
|
+
var _loop = function _loop() {
|
|
128
|
+
var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
|
|
129
|
+
key = _step2$value[0],
|
|
130
|
+
value = _step2$value[1];
|
|
131
|
+
var _getSpeakerFromProxyO2 = getSpeakerFromProxyOrStore({
|
|
132
|
+
meetingMembers: meeting.members.membersCollection.members,
|
|
133
|
+
transcriptData: transcriptData,
|
|
134
|
+
csisKey: key
|
|
135
|
+
}),
|
|
136
|
+
needsCaching = _getSpeakerFromProxyO2.needsCaching,
|
|
137
|
+
speaker = _getSpeakerFromProxyO2.speaker;
|
|
138
|
+
if (needsCaching) {
|
|
139
|
+
transcriptData.speakerProxy[key] = speaker;
|
|
140
|
+
}
|
|
141
|
+
var speakerId = speaker.speakerId;
|
|
142
|
+
var interimId = "".concat(transcriptId, "_").concat(speakerId);
|
|
143
|
+
var captionData = {
|
|
144
|
+
id: interimId,
|
|
145
|
+
isFinal: data.isFinal,
|
|
146
|
+
translations: value.translations,
|
|
147
|
+
text: value.text,
|
|
148
|
+
currentCaptionLanguage: value.currentSpokenLanguage,
|
|
149
|
+
timestamp: value === null || value === void 0 ? void 0 : value.timestamp,
|
|
150
|
+
speaker: speaker
|
|
151
|
+
};
|
|
152
|
+
var interimTranscriptIndex = transcriptData.captions.findIndex(function (transcript) {
|
|
153
|
+
return transcript.id === interimId;
|
|
154
|
+
});
|
|
155
|
+
if (interimTranscriptIndex !== -1) {
|
|
156
|
+
transcriptData.captions.splice(interimTranscriptIndex, 1);
|
|
157
|
+
}
|
|
158
|
+
interimTranscriptionIds.push(interimId);
|
|
159
|
+
transcriptData.captions.push(captionData);
|
|
160
|
+
};
|
|
161
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
162
|
+
_loop();
|
|
163
|
+
}
|
|
164
|
+
} catch (err) {
|
|
165
|
+
_iterator2.e(err);
|
|
166
|
+
} finally {
|
|
167
|
+
_iterator2.f();
|
|
168
|
+
}
|
|
169
|
+
transcriptData.interimCaptions[transcriptId] = interimTranscriptionIds;
|
|
170
|
+
};
|
|
171
|
+
exports.processNewCaptions = processNewCaptions;
|
|
172
|
+
//# sourceMappingURL=voicea-meeting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getSpeaker","members","csis","find","member","memberCSIs","participant","status","some","csi","includes","getSpeakerFromProxyOrStore","csisKey","meetingMembers","transcriptData","speaker","speakerId","name","needsCaching","speakerProxy","meetingMember","person","id","processNewCaptions","data","meeting","transcriptId","transcription","isFinal","interimCaptions","forEach","interimId","interimTranscriptIndex","captions","findIndex","transcript","splice","membersCollection","captionData","translations","text","currentSpokenLanguage","transcript_language_code","timestamp","push","transcripts","transcriptsPerCsis","csisMember","newCaption","get","trim","set","interimTranscriptionIds","key","value","currentCaptionLanguage"],"sources":["voicea-meeting.ts"],"sourcesContent":["export const getSpeaker = (members, csis = []) =>\n Object.values(members).find((member: any) => {\n const memberCSIs = member.participant.status.csis ?? [];\n\n return csis.some((csi) => memberCSIs.includes(csi));\n });\n\nexport const getSpeakerFromProxyOrStore = ({csisKey, meetingMembers, transcriptData}) => {\n let speaker = {\n speakerId: '',\n name: '',\n };\n\n let needsCaching = false;\n\n if (csisKey && transcriptData.speakerProxy[csisKey]) {\n speaker = transcriptData.speakerProxy[csisKey];\n\n return {speaker, needsCaching};\n }\n\n const meetingMember: any = getSpeaker(meetingMembers, [csisKey]);\n\n speaker = {\n speakerId: meetingMember?.participant.person.id ?? '',\n name: meetingMember?.participant.person.name ?? '',\n };\n\n needsCaching = true;\n\n return {speaker, needsCaching};\n};\n\nexport const processNewCaptions = ({data, meeting}) => {\n const {transcriptId} = data;\n const transcriptData = meeting.transcription;\n\n if (data.isFinal) {\n transcriptData.interimCaptions[transcriptId].forEach((interimId) => {\n const interimTranscriptIndex = transcriptData.captions.findIndex(\n (transcript) => transcript.id === interimId\n );\n\n if (interimTranscriptIndex !== -1) {\n transcriptData.captions.splice(interimTranscriptIndex, 1);\n }\n });\n delete transcriptData.interimCaptions[transcriptId];\n const csisKey = data.transcript?.csis[0];\n\n const {needsCaching, speaker} = getSpeakerFromProxyOrStore({\n meetingMembers: meeting.members.membersCollection.members,\n transcriptData,\n csisKey,\n });\n\n if (needsCaching) {\n transcriptData.speakerProxy[csisKey] = speaker;\n }\n const captionData = {\n id: transcriptId,\n isFinal: data.isFinal,\n translations: data.translations,\n text: data.transcript?.text,\n currentSpokenLanguage: data.transcript?.transcript_language_code,\n timestamp: data.timestamp,\n speaker,\n };\n transcriptData.captions.push(captionData);\n }\n const {transcripts = []} = data;\n const transcriptsPerCsis = new Map();\n\n for (const transcript of transcripts) {\n const {\n text,\n transcript_language_code: currentSpokenLanguage,\n csis: [csisMember],\n } = transcript;\n\n const newCaption = `${transcriptsPerCsis.get(csisMember)?.text ?? ''} ${text}`.trim();\n\n // eslint-disable-next-line camelcase\n transcriptsPerCsis.set(csisMember, {text: newCaption, currentSpokenLanguage});\n }\n const interimTranscriptionIds = [];\n\n for (const [key, value] of transcriptsPerCsis) {\n const {needsCaching, speaker} = getSpeakerFromProxyOrStore({\n meetingMembers: meeting.members.membersCollection.members,\n transcriptData,\n csisKey: key,\n });\n\n if (needsCaching) {\n transcriptData.speakerProxy[key] = speaker;\n }\n const {speakerId} = speaker;\n const interimId = `${transcriptId}_${speakerId}`;\n const captionData = {\n id: interimId,\n isFinal: data.isFinal,\n translations: value.translations,\n text: value.text,\n currentCaptionLanguage: value.currentSpokenLanguage,\n timestamp: value?.timestamp,\n speaker,\n };\n\n const interimTranscriptIndex = transcriptData.captions.findIndex(\n (transcript) => transcript.id === interimId\n );\n\n if (interimTranscriptIndex !== -1) {\n transcriptData.captions.splice(interimTranscriptIndex, 1);\n }\n\n interimTranscriptionIds.push(interimId);\n transcriptData.captions.push(captionData);\n }\n transcriptData.interimCaptions[transcriptId] = interimTranscriptionIds;\n};\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,34 +32,34 @@ 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) {
|
|
50
|
+
// @ts-ignore
|
|
71
51
|
if (this.meetingInfos[id]) {
|
|
52
|
+
// @ts-ignore
|
|
72
53
|
return this.meetingInfos[id];
|
|
73
54
|
}
|
|
74
|
-
|
|
75
|
-
|
|
55
|
+
return (0, _find2.default)(
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
this.meetingInfos, function (info) {
|
|
76
58
|
return info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id;
|
|
77
59
|
});
|
|
78
60
|
}
|
|
79
61
|
}]);
|
|
80
62
|
return MeetingInfoCollection;
|
|
81
63
|
}(_collection.default);
|
|
82
|
-
|
|
83
64
|
exports.default = MeetingInfoCollection;
|
|
84
65
|
//# sourceMappingURL=collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingInfoCollection","MEETINGS","id","meetingInfos","info","sipUrl","locusId","userId","meetingLink","Collection"],"sources":["collection.
|
|
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"}
|