@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.170
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -1
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +359 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +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/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/config.js +6 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.js +194 -28
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +300 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +214 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +92 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +350 -41
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +2 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +39 -134
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +19 -97
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +76 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2640 -2436
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +229 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +191 -167
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +477 -466
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +172 -50
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +20 -5
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +377 -82
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +16 -12
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +43 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +97 -3
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +94 -11
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +109 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +265 -36
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +52 -19
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +53 -33
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +322 -103
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +117 -60
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +12 -5
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +2 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +18 -18
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +217 -162
- 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 +363 -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 +21 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +135 -94
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +135 -53
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +329 -314
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +103 -54
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +43 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +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/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1007 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +315 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +86 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
- package/dist/types/meeting/index.d.ts +1430 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +270 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +77 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +62 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +365 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +158 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +208 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/package.json +29 -21
- package/src/annotation/annotation.types.ts +52 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +343 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/config.ts +5 -7
- package/src/constants.ts +183 -22
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +286 -0
- package/src/index.ts +37 -0
- package/src/interpretation/README.md +51 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +182 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +374 -38
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +2 -1
- package/src/locus-info/selfUtils.ts +86 -2
- package/src/media/index.ts +70 -142
- package/src/media/properties.ts +41 -104
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +151 -3
- package/src/meeting/index.ts +2029 -2033
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +228 -132
- package/src/meeting/request.ts +100 -91
- package/src/meeting/request.type.ts +2 -0
- package/src/meeting/util.ts +450 -439
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +150 -14
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +396 -89
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +3 -1
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +42 -0
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +95 -1
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +108 -6
- package/src/members/request.ts +98 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +337 -63
- package/src/multistream/receiveSlot.ts +68 -26
- package/src/multistream/receiveSlotManager.ts +61 -38
- package/src/multistream/remoteMedia.ts +29 -3
- package/src/multistream/remoteMediaGroup.ts +61 -2
- package/src/multistream/remoteMediaManager.ts +260 -66
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +75 -25
- package/src/reachability/request.ts +10 -5
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +28 -3
- package/src/reconnection-manager/index.ts +80 -49
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +333 -0
- package/src/recording-controller/util.ts +75 -0
- package/src/roap/index.ts +21 -30
- package/src/roap/request.ts +72 -61
- package/src/roap/turnDiscovery.ts +51 -27
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +380 -390
- package/src/statsAnalyzer/mqaUtil.ts +106 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +331 -254
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +436 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +518 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +329 -0
- package/test/unit/spec/interpretation/siLanguage.ts +26 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +792 -4
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +118 -22
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +75 -3
- package/test/unit/spec/meeting/index.js +2742 -1441
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +370 -208
- package/test/unit/spec/meeting/request.js +354 -42
- package/test/unit/spec/meeting/utils.js +384 -170
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +847 -121
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +31 -0
- package/test/unit/spec/member/util.js +408 -32
- package/test/unit/spec/members/index.js +320 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +176 -25
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +95 -13
- package/test/unit/spec/recording-controller/index.js +307 -0
- package/test/unit/spec/recording-controller/util.js +229 -0
- package/test/unit/spec/roap/index.ts +28 -52
- package/test/unit/spec/roap/request.ts +225 -0
- package/test/unit/spec/roap/turnDiscovery.ts +73 -34
- package/test/unit/spec/stats-analyzer/index.js +94 -43
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -18
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -106
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/src/multistream/multistreamMedia.ts +0 -93
- package/test/unit/spec/meeting/effectsState.js +0 -281
package/dist/meetings/index.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
3
4
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
5
|
+
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
6
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
9
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
4
10
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
11
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
5
12
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
13
|
_Object$defineProperty(exports, "__esModule", {
|
|
7
14
|
value: true
|
|
8
15
|
});
|
|
9
16
|
exports.default = void 0;
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
11
17
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
12
18
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
13
19
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
14
20
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
21
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
22
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
15
23
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
16
24
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
17
25
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
@@ -22,13 +30,14 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
22
30
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
23
31
|
require("@webex/internal-plugin-mercury");
|
|
24
32
|
require("@webex/internal-plugin-conversation");
|
|
33
|
+
require("@webex/internal-plugin-metrics");
|
|
25
34
|
var _webexCore = require("@webex/webex-core");
|
|
26
35
|
var _internalMediaCore = require("@webex/internal-media-core");
|
|
36
|
+
var mediaHelpersModule = _interopRequireWildcard(require("@webex/media-helpers"));
|
|
27
37
|
require("webrtc-adapter");
|
|
28
38
|
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
29
|
-
var _config = require("../metrics/config");
|
|
30
39
|
var _loggerConfig = _interopRequireDefault(require("../common/logs/logger-config"));
|
|
31
|
-
var
|
|
40
|
+
var _config = _interopRequireDefault(require("../common/config"));
|
|
32
41
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
33
42
|
var _request = _interopRequireDefault(require("../common/logs/request"));
|
|
34
43
|
var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
|
|
@@ -46,6 +55,11 @@ var _passwordError = _interopRequireDefault(require("../common/errors/password-e
|
|
|
46
55
|
var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
|
|
47
56
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
48
57
|
var _util2 = _interopRequireDefault(require("./util"));
|
|
58
|
+
var _permission = _interopRequireDefault(require("../common/errors/permission"));
|
|
59
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
60
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
61
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
62
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
63
|
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); }; }
|
|
50
64
|
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; } }
|
|
51
65
|
var mediaLogger;
|
|
@@ -157,13 +171,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
157
171
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
158
172
|
|
|
159
173
|
/**
|
|
160
|
-
* The
|
|
174
|
+
* The webrtc-core media helpers. This is a temporary solution required for the SDK sample app
|
|
175
|
+
* to be able to call media helper functions.
|
|
176
|
+
*
|
|
161
177
|
* @instance
|
|
162
178
|
* @type {Object}
|
|
163
179
|
* @private
|
|
164
180
|
* @memberof Meetings
|
|
165
181
|
*/
|
|
166
|
-
// @ts-ignore
|
|
167
182
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loggerRequest", void 0);
|
|
168
183
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "media", void 0);
|
|
169
184
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingCollection", void 0);
|
|
@@ -174,7 +189,61 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
174
189
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "request", void 0);
|
|
175
190
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "geoHintInfo", void 0);
|
|
176
191
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfo", void 0);
|
|
192
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaHelpers", void 0);
|
|
193
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "breakoutLocusForHandleLater", void 0);
|
|
177
194
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
|
|
195
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createNoiseReductionEffect", /*#__PURE__*/function () {
|
|
196
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
|
|
197
|
+
var authToken;
|
|
198
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
199
|
+
while (1) switch (_context.prev = _context.next) {
|
|
200
|
+
case 0:
|
|
201
|
+
// @ts-ignore
|
|
202
|
+
authToken = _this.webex.credentials.supertoken.access_token;
|
|
203
|
+
return _context.abrupt("return", new mediaHelpersModule.NoiseReductionEffect(_objectSpread({
|
|
204
|
+
authToken: authToken
|
|
205
|
+
}, options)));
|
|
206
|
+
case 2:
|
|
207
|
+
case "end":
|
|
208
|
+
return _context.stop();
|
|
209
|
+
}
|
|
210
|
+
}, _callee);
|
|
211
|
+
}));
|
|
212
|
+
return function (_x) {
|
|
213
|
+
return _ref.apply(this, arguments);
|
|
214
|
+
};
|
|
215
|
+
}());
|
|
216
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createVirtualBackgroundEffect", /*#__PURE__*/function () {
|
|
217
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
|
|
218
|
+
var authToken;
|
|
219
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
220
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
221
|
+
case 0:
|
|
222
|
+
// @ts-ignore
|
|
223
|
+
authToken = _this.webex.credentials.supertoken.access_token;
|
|
224
|
+
return _context2.abrupt("return", new mediaHelpersModule.VirtualBackgroundEffect(_objectSpread({
|
|
225
|
+
authToken: authToken
|
|
226
|
+
}, options)));
|
|
227
|
+
case 2:
|
|
228
|
+
case "end":
|
|
229
|
+
return _context2.stop();
|
|
230
|
+
}
|
|
231
|
+
}, _callee2);
|
|
232
|
+
}));
|
|
233
|
+
return function (_x2) {
|
|
234
|
+
return _ref2.apply(this, arguments);
|
|
235
|
+
};
|
|
236
|
+
}());
|
|
237
|
+
_this.mediaHelpers = mediaHelpersModule;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* The Meetings request to interact with server
|
|
241
|
+
* @instance
|
|
242
|
+
* @type {Object}
|
|
243
|
+
* @private
|
|
244
|
+
* @memberof Meetings
|
|
245
|
+
*/
|
|
246
|
+
// @ts-ignore
|
|
178
247
|
_this.request = new _request2.default({}, {
|
|
179
248
|
parent: _this.webex
|
|
180
249
|
});
|
|
@@ -235,48 +304,152 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
235
304
|
* @memberof Meetings
|
|
236
305
|
*/
|
|
237
306
|
_this.media = {
|
|
238
|
-
getUserMedia: _media.default.getUserMedia
|
|
239
|
-
getSupportedDevice: _media.default.getSupportedDevice
|
|
307
|
+
getUserMedia: _media.default.getUserMedia
|
|
240
308
|
};
|
|
241
309
|
_this.onReady();
|
|
242
310
|
return _this;
|
|
243
311
|
}
|
|
244
312
|
|
|
245
313
|
/**
|
|
246
|
-
*
|
|
247
|
-
* @param {Object}
|
|
248
|
-
* @param {
|
|
249
|
-
* @
|
|
250
|
-
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
251
|
-
* @param {String} data.eventType
|
|
252
|
-
* @returns {undefined}
|
|
314
|
+
* check whether you need to handle this main session's locus data or not
|
|
315
|
+
* @param {Object} meeting current meeting data
|
|
316
|
+
* @param {Object} newLocus new locus data
|
|
317
|
+
* @returns {boolean}
|
|
253
318
|
* @private
|
|
254
319
|
* @memberof Meetings
|
|
255
320
|
*/
|
|
256
321
|
(0, _createClass2.default)(Meetings, [{
|
|
257
|
-
key: "
|
|
258
|
-
value: function
|
|
259
|
-
var
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
var
|
|
264
|
-
|
|
322
|
+
key: "isNeedHandleMainLocus",
|
|
323
|
+
value: function isNeedHandleMainLocus(meeting, newLocus) {
|
|
324
|
+
var _newLocus$controls, _newLocus$controls$br, _newLocus$self, _newLocus$self2, _newLocus$self3, _breakoutLocus$joined, _newLocus$self4;
|
|
325
|
+
var breakoutUrl = (_newLocus$controls = newLocus.controls) === null || _newLocus$controls === void 0 ? void 0 : (_newLocus$controls$br = _newLocus$controls.breakout) === null || _newLocus$controls$br === void 0 ? void 0 : _newLocus$controls$br.url;
|
|
326
|
+
var breakoutLocus = this.meetingCollection.getActiveBreakoutLocus(breakoutUrl);
|
|
327
|
+
var isSelfJoined = (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self = newLocus.self) === null || _newLocus$self === void 0 ? void 0 : _newLocus$self.state) === _constants._JOINED_;
|
|
328
|
+
var isSelfMoved = (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self2 = newLocus.self) === null || _newLocus$self2 === void 0 ? void 0 : _newLocus$self2.state) === _constants._LEFT_ && (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self3 = newLocus.self) === null || _newLocus$self3 === void 0 ? void 0 : _newLocus$self3.reason) === _constants._MOVED_;
|
|
329
|
+
// @ts-ignore
|
|
330
|
+
var deviceFromNewLocus = _util2.default.getThisDevice(newLocus, this.webex.internal.device.url);
|
|
331
|
+
var isResourceMovedOnThisDevice = (deviceFromNewLocus === null || deviceFromNewLocus === void 0 ? void 0 : deviceFromNewLocus.state) === _constants._LEFT_ && (deviceFromNewLocus === null || deviceFromNewLocus === void 0 ? void 0 : deviceFromNewLocus.reason) === _constants._MOVED_;
|
|
332
|
+
var isNewLocusJoinThisDevice = _util2.default.joinedOnThisDevice(meeting, newLocus,
|
|
333
|
+
// @ts-ignore
|
|
334
|
+
this.webex.internal.device.url);
|
|
335
|
+
var isBreakoutLocusJoinThisDevice = (breakoutLocus === null || breakoutLocus === void 0 ? void 0 : (_breakoutLocus$joined = breakoutLocus.joinedWith) === null || _breakoutLocus$joined === void 0 ? void 0 : _breakoutLocus$joined.correlationId) && breakoutLocus.joinedWith.correlationId === (meeting === null || meeting === void 0 ? void 0 : meeting.correlationId);
|
|
336
|
+
if (isSelfJoined && isNewLocusJoinThisDevice) {
|
|
337
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> self this device shown as JOINED in the main session');
|
|
338
|
+
if (breakoutLocus !== null && breakoutLocus !== void 0 && breakoutLocus.joinedWith && deviceFromNewLocus) {
|
|
339
|
+
var _breakoutLocus$joined2, _deviceFromNewLocus$r;
|
|
340
|
+
var breakoutReplaceAt = ((_breakoutLocus$joined2 = breakoutLocus.joinedWith.replaces) === null || _breakoutLocus$joined2 === void 0 ? void 0 : _breakoutLocus$joined2.length) > 0 ? breakoutLocus.joinedWith.replaces[0].replaceAt : '';
|
|
341
|
+
var newLocusReplaceAt = ((_deviceFromNewLocus$r = deviceFromNewLocus.replaces) === null || _deviceFromNewLocus$r === void 0 ? void 0 : _deviceFromNewLocus$r.length) > 0 ? deviceFromNewLocus.replaces[0].replaceAt : '';
|
|
342
|
+
if (breakoutReplaceAt && newLocusReplaceAt && breakoutReplaceAt > newLocusReplaceAt) {
|
|
343
|
+
_loggerProxy.default.logger.log("Meetings:index#isNeedHandleMainLocus --> this is expired main joined status locus_dto replacedAt ".concat(newLocusReplaceAt, " bo replacedAt ").concat(breakoutReplaceAt));
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
if (isBreakoutLocusJoinThisDevice) {
|
|
350
|
+
_loggerProxy.default.logger.log("Meetings:index#isNeedHandleMainLocus --> there is active breakout session and joined on this device, and don't need to handle main session: ".concat(breakoutUrl));
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
if (isSelfMoved && (newLocus !== null && newLocus !== void 0 && (_newLocus$self4 = newLocus.self) !== null && _newLocus$self4 !== void 0 && _newLocus$self4.removed || isResourceMovedOnThisDevice)) {
|
|
354
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> self moved main locus with self removed status or with device resource moved, not need to handle');
|
|
355
|
+
return false;
|
|
356
|
+
}
|
|
357
|
+
if (isSelfJoined && isResourceMovedOnThisDevice) {
|
|
358
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> self device left&moved in main locus with self joined status, not need to handle');
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
_loggerProxy.default.logger.log('Meetings:index#isNeedHandleMainLocus --> this is a normal main session locusDTO update case');
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* check whether you need to handle this locus data or not
|
|
367
|
+
* @param {Object} meeting old locus data
|
|
368
|
+
* @param {Object} newLocus new locus data
|
|
369
|
+
* @returns {boolean}
|
|
370
|
+
* @private
|
|
371
|
+
* @memberof Meetings
|
|
372
|
+
*/
|
|
373
|
+
}, {
|
|
374
|
+
key: "isNeedHandleLocusDTO",
|
|
375
|
+
value: function isNeedHandleLocusDTO(meeting, newLocus) {
|
|
376
|
+
if (newLocus) {
|
|
377
|
+
var _newLocus$self5, _newLocus$self6;
|
|
378
|
+
var isNewLocusAsBreakout = _util2.default.isBreakoutLocusDTO(newLocus);
|
|
379
|
+
var isSelfMoved = (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self5 = newLocus.self) === null || _newLocus$self5 === void 0 ? void 0 : _newLocus$self5.state) === _constants._LEFT_ && (newLocus === null || newLocus === void 0 ? void 0 : (_newLocus$self6 = newLocus.self) === null || _newLocus$self6 === void 0 ? void 0 : _newLocus$self6.reason) === _constants._MOVED_;
|
|
380
|
+
if (!meeting) {
|
|
381
|
+
if (isNewLocusAsBreakout) {
|
|
382
|
+
var _newLocus$fullState, _newLocus$self7;
|
|
383
|
+
_loggerProxy.default.logger.log("Meetings:index#isNeedHandleLocusDTO --> the first breakout session locusDTO active status: ".concat((_newLocus$fullState = newLocus.fullState) === null || _newLocus$fullState === void 0 ? void 0 : _newLocus$fullState.active));
|
|
384
|
+
return ((_newLocus$self7 = newLocus.self) === null || _newLocus$self7 === void 0 ? void 0 : _newLocus$self7.state) === _constants._JOINED_;
|
|
385
|
+
}
|
|
386
|
+
return this.isNeedHandleMainLocus(meeting, newLocus);
|
|
387
|
+
}
|
|
388
|
+
if (!isNewLocusAsBreakout) {
|
|
389
|
+
return this.isNeedHandleMainLocus(meeting, newLocus);
|
|
390
|
+
}
|
|
391
|
+
return !isSelfMoved;
|
|
392
|
+
}
|
|
393
|
+
return true;
|
|
394
|
+
}
|
|
265
395
|
|
|
396
|
+
/**
|
|
397
|
+
* get corresponding meeting object by locus data
|
|
398
|
+
* @param {Object} data a locus event
|
|
399
|
+
* @param {String} data.locusUrl
|
|
400
|
+
* @param {Object} data.locus
|
|
401
|
+
* @returns {Object}
|
|
402
|
+
* @private
|
|
403
|
+
* @memberof Meetings
|
|
404
|
+
*/
|
|
405
|
+
}, {
|
|
406
|
+
key: "getCorrespondingMeetingByLocus",
|
|
407
|
+
value: function getCorrespondingMeetingByLocus(data) {
|
|
408
|
+
var _data$locus$info, _data$locus, _data$locus$info2;
|
|
266
409
|
// getting meeting by correlationId. This will happen for the new event
|
|
267
410
|
// Either the locus
|
|
268
411
|
// TODO : Add check for the callBack Address
|
|
269
|
-
|
|
412
|
+
return this.meetingCollection.getByKey(_constants.LOCUS_URL, data.locusUrl) ||
|
|
413
|
+
// @ts-ignore
|
|
414
|
+
this.meetingCollection.getByKey(_constants.CORRELATION_ID,
|
|
270
415
|
// @ts-ignore
|
|
271
|
-
|
|
416
|
+
_util2.default.checkForCorrelationId(this.webex.internal.device.url, data.locus)) || this.meetingCollection.getByKey(_constants.SIP_URI, data.locus.self && data.locus.self.callbackInfo && data.locus.self.callbackInfo.callbackAddress) || ((_data$locus$info = data.locus.info) !== null && _data$locus$info !== void 0 && _data$locus$info.isUnifiedSpaceMeeting ? undefined : this.meetingCollection.getByKey(_constants.CONVERSATION_URL, data.locus.conversationUrl)) || this.meetingCollection.getByKey(_constants.MEETINGNUMBER, (_data$locus = data.locus) === null || _data$locus === void 0 ? void 0 : (_data$locus$info2 = _data$locus.info) === null || _data$locus$info2 === void 0 ? void 0 : _data$locus$info2.webExMeetingId);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* handle locus events and takes meeting actions with them as they come in
|
|
421
|
+
* @param {Object} data a locus event
|
|
422
|
+
* @param {String} data.locusUrl
|
|
423
|
+
* @param {Object} data.locus
|
|
424
|
+
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
425
|
+
* @param {String} data.eventType
|
|
426
|
+
* @returns {undefined}
|
|
427
|
+
* @private
|
|
428
|
+
* @memberof Meetings
|
|
429
|
+
*/
|
|
430
|
+
}, {
|
|
431
|
+
key: "handleLocusEvent",
|
|
432
|
+
value: function handleLocusEvent(data) {
|
|
433
|
+
var _data$locus2,
|
|
434
|
+
_data$locus2$replaces,
|
|
435
|
+
_this2 = this;
|
|
436
|
+
var useRandomDelayForInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
437
|
+
var meeting = this.getCorrespondingMeetingByLocus(data);
|
|
272
438
|
|
|
273
439
|
// Special case when locus has got replaced, This only happend once if a replace locus exists
|
|
274
440
|
// https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-changing-mid-call
|
|
275
441
|
|
|
276
|
-
if (!meeting && ((_data$
|
|
442
|
+
if (!meeting && ((_data$locus2 = data.locus) === null || _data$locus2 === void 0 ? void 0 : (_data$locus2$replaces = _data$locus2.replaces) === null || _data$locus2$replaces === void 0 ? void 0 : _data$locus2$replaces.length) > 0) {
|
|
277
443
|
// Always the last element in the replace is the active one
|
|
278
444
|
meeting = this.meetingCollection.getByKey(_constants.LOCUS_URL, data.locus.replaces[data.locus.replaces.length - 1].locusUrl);
|
|
279
445
|
}
|
|
446
|
+
if (meeting && !_util2.default.isBreakoutLocusDTO(data.locus)) {
|
|
447
|
+
meeting.locusInfo.updateMainSessionLocusCache(data.locus);
|
|
448
|
+
}
|
|
449
|
+
if (!this.isNeedHandleLocusDTO(meeting, data.locus)) {
|
|
450
|
+
_loggerProxy.default.logger.log("Meetings:index#handleLocusEvent --> doesn't need to process locus event");
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
280
453
|
if (!meeting) {
|
|
281
454
|
// TODO: create meeting when we get a meeting object
|
|
282
455
|
// const checkForEnded = (locus) => {
|
|
@@ -316,6 +489,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
316
489
|
|
|
317
490
|
// It's a new meeting so initialize the locus data
|
|
318
491
|
meeting.locusInfo.initialSetup(data.locus);
|
|
492
|
+
_this2.checkHandleBreakoutLocus(data.locus);
|
|
319
493
|
}).catch(function (e) {
|
|
320
494
|
_loggerProxy.default.logger.error(e);
|
|
321
495
|
}).finally(function () {
|
|
@@ -323,11 +497,14 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
323
497
|
// because the other user left so before sending 'added' event make sure it exists in the collection
|
|
324
498
|
|
|
325
499
|
if (_this2.getMeetingByType(_constants._ID_, meeting.id)) {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
trigger:
|
|
500
|
+
// @ts-ignore
|
|
501
|
+
_this2.webex.internal.newMetrics.submitClientEvent({
|
|
502
|
+
name: 'client.call.remote-started',
|
|
503
|
+
payload: {
|
|
504
|
+
trigger: 'mercury-event'
|
|
505
|
+
},
|
|
506
|
+
options: {
|
|
507
|
+
meetingId: meeting.id
|
|
331
508
|
}
|
|
332
509
|
});
|
|
333
510
|
_triggerProxy.default.trigger(_this2, {
|
|
@@ -441,13 +618,13 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
441
618
|
// @ts-ignore
|
|
442
619
|
this.webex.once(_constants.READY, function () {
|
|
443
620
|
// @ts-ignore
|
|
444
|
-
|
|
621
|
+
_config.default.set(_this4.config);
|
|
445
622
|
// @ts-ignore
|
|
446
623
|
_loggerConfig.default.set(_this4.config.logging);
|
|
447
624
|
// @ts-ignore
|
|
448
625
|
_loggerProxy.default.set(_this4.webex.logger);
|
|
449
626
|
mediaLogger = new MediaLogger();
|
|
450
|
-
_internalMediaCore.
|
|
627
|
+
(0, _internalMediaCore.setLogger)(mediaLogger);
|
|
451
628
|
|
|
452
629
|
/**
|
|
453
630
|
* The MeetingInfo object to interact with server
|
|
@@ -457,11 +634,17 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
457
634
|
* @memberof Meetings
|
|
458
635
|
*/
|
|
459
636
|
// @ts-ignore
|
|
460
|
-
_this4.meetingInfo = _this4.config.experimental.enableUnifiedMeetings ?
|
|
637
|
+
_this4.meetingInfo = _this4.config.experimental.enableUnifiedMeetings ?
|
|
638
|
+
// @ts-ignore
|
|
639
|
+
new _meetingInfoV.default(_this4.webex) :
|
|
640
|
+
// @ts-ignore
|
|
641
|
+
new _meetingInfo.default(_this4.webex);
|
|
461
642
|
// @ts-ignore
|
|
462
643
|
_this4.personalMeetingRoom = new _personalMeetingRoom.default({
|
|
463
644
|
meetingInfo: _this4.meetingInfo
|
|
464
|
-
},
|
|
645
|
+
},
|
|
646
|
+
// @ts-ignore
|
|
647
|
+
{
|
|
465
648
|
parent: _this4.webex
|
|
466
649
|
});
|
|
467
650
|
_triggerProxy.default.trigger(_this4, {
|
|
@@ -472,7 +655,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
472
655
|
disableNotifications: true
|
|
473
656
|
});
|
|
474
657
|
// @ts-ignore
|
|
475
|
-
_metrics.default.initialSetup(_this4.
|
|
658
|
+
_metrics.default.initialSetup(_this4.webex);
|
|
476
659
|
});
|
|
477
660
|
}
|
|
478
661
|
|
|
@@ -565,7 +748,8 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
565
748
|
this.webex.internal.device.register()
|
|
566
749
|
// @ts-ignore
|
|
567
750
|
.then(function () {
|
|
568
|
-
return _loggerProxy.default.logger.info(
|
|
751
|
+
return _loggerProxy.default.logger.info( // @ts-ignore
|
|
752
|
+
"Meetings:index#register --> INFO, Device registered ".concat(_this5.webex.internal.device.url));
|
|
569
753
|
})
|
|
570
754
|
// @ts-ignore
|
|
571
755
|
.then(function () {
|
|
@@ -605,21 +789,33 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
605
789
|
return _promise.default.resolve();
|
|
606
790
|
}
|
|
607
791
|
this.stopListeningForEvents();
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
792
|
+
return (
|
|
793
|
+
// @ts-ignore
|
|
794
|
+
this.webex.internal.mercury.disconnect()
|
|
795
|
+
// @ts-ignore
|
|
796
|
+
.then(function () {
|
|
797
|
+
return _this6.webex.internal.device.unregister();
|
|
798
|
+
}).then(function () {
|
|
799
|
+
_triggerProxy.default.trigger(_this6, {
|
|
800
|
+
file: 'meetings',
|
|
801
|
+
function: 'unregister'
|
|
802
|
+
}, _constants.EVENT_TRIGGERS.MEETINGS_UNREGISTERED);
|
|
803
|
+
_this6.registered = false;
|
|
804
|
+
})
|
|
805
|
+
);
|
|
621
806
|
}
|
|
622
807
|
|
|
808
|
+
/**
|
|
809
|
+
* Creates a noise reduction effect
|
|
810
|
+
*
|
|
811
|
+
* @param {INoiseReductionEffect} options optional custom effect options
|
|
812
|
+
* @returns {Promise<effect>} noise reduction effect.
|
|
813
|
+
* @public
|
|
814
|
+
* @memberof Meetings
|
|
815
|
+
*/
|
|
816
|
+
}, {
|
|
817
|
+
key: "uploadLogs",
|
|
818
|
+
value:
|
|
623
819
|
/**
|
|
624
820
|
* Uploads logs to the webex services for tracking
|
|
625
821
|
* @param {Object} [options={}]
|
|
@@ -632,9 +828,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
632
828
|
* @param {String} [options.orgId] org id
|
|
633
829
|
* @returns {String} feedback ID logs were submitted under
|
|
634
830
|
*/
|
|
635
|
-
|
|
636
|
-
key: "uploadLogs",
|
|
637
|
-
value: function uploadLogs() {
|
|
831
|
+
function uploadLogs() {
|
|
638
832
|
var _this7 = this;
|
|
639
833
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
640
834
|
_loggerProxy.default.logger.info('Meetings:index#uploadLogs --> uploading logs');
|
|
@@ -737,6 +931,23 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
737
931
|
if (res) {
|
|
738
932
|
_this9.preferredWebexSite = _util2.default.parseDefaultSiteFromMeetingPreferences(res);
|
|
739
933
|
}
|
|
934
|
+
|
|
935
|
+
// fall back to getting the preferred site from the user information
|
|
936
|
+
if (!_this9.preferredWebexSite) {
|
|
937
|
+
// @ts-ignore
|
|
938
|
+
return _this9.webex.internal.user.get().then(function (user) {
|
|
939
|
+
var _user$userPreferences, _user$userPreferences2;
|
|
940
|
+
var preferredWebexSite = user === null || user === void 0 ? void 0 : (_user$userPreferences = user.userPreferences) === null || _user$userPreferences === void 0 ? void 0 : (_user$userPreferences2 = _user$userPreferences.userPreferencesItems) === null || _user$userPreferences2 === void 0 ? void 0 : _user$userPreferences2.preferredWebExSite;
|
|
941
|
+
if (preferredWebexSite) {
|
|
942
|
+
_this9.preferredWebexSite = preferredWebexSite;
|
|
943
|
+
} else {
|
|
944
|
+
throw new Error('site not found');
|
|
945
|
+
}
|
|
946
|
+
}).catch(function () {
|
|
947
|
+
_loggerProxy.default.logger.error('Failed to fetch preferred site from user - no site will be set');
|
|
948
|
+
});
|
|
949
|
+
}
|
|
950
|
+
return _promise.default.resolve();
|
|
740
951
|
});
|
|
741
952
|
}
|
|
742
953
|
|
|
@@ -779,6 +990,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
779
990
|
* @param {string} destination - sipURL, spaceId, phonenumber, or locus object}
|
|
780
991
|
* @param {string} [type] - the optional specified type, such as locusId
|
|
781
992
|
* @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
|
|
993
|
+
* @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
|
|
782
994
|
* @returns {Promise<Meeting>} A new Meeting.
|
|
783
995
|
* @public
|
|
784
996
|
* @memberof Meetings
|
|
@@ -789,6 +1001,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
789
1001
|
var _this10 = this;
|
|
790
1002
|
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
791
1003
|
var useRandomDelayForInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1004
|
+
var infoExtraParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
792
1005
|
// TODO: type should be from a dictionary
|
|
793
1006
|
|
|
794
1007
|
// Validate meeting information based on the provided destination and
|
|
@@ -827,7 +1040,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
827
1040
|
// Validate if a meeting was found.
|
|
828
1041
|
if (!meeting) {
|
|
829
1042
|
// Create a meeting based on the normalized destination and type.
|
|
830
|
-
return _this10.createMeeting(targetDest, type, useRandomDelayForInfo).then(function (createdMeeting) {
|
|
1043
|
+
return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams).then(function (createdMeeting) {
|
|
831
1044
|
// If the meeting was successfully created.
|
|
832
1045
|
if (createdMeeting && createdMeeting.on) {
|
|
833
1046
|
// Create a destruction event for the meeting.
|
|
@@ -879,6 +1092,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
879
1092
|
* @param {String} destination see create()
|
|
880
1093
|
* @param {String} type see create()
|
|
881
1094
|
* @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
|
|
1095
|
+
* @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
|
|
882
1096
|
* @returns {Promise} a new meeting instance complete with meeting info and destination
|
|
883
1097
|
* @private
|
|
884
1098
|
* @memberof Meetings
|
|
@@ -886,9 +1100,10 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
886
1100
|
}, {
|
|
887
1101
|
key: "createMeeting",
|
|
888
1102
|
value: function () {
|
|
889
|
-
var _createMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
1103
|
+
var _createMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(destination) {
|
|
890
1104
|
var type,
|
|
891
1105
|
useRandomDelayForInfo,
|
|
1106
|
+
infoExtraParams,
|
|
892
1107
|
meeting,
|
|
893
1108
|
_destination$fullStat,
|
|
894
1109
|
waitingTime,
|
|
@@ -900,12 +1115,13 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
900
1115
|
isMeetingActive,
|
|
901
1116
|
enableUnifiedMeetings,
|
|
902
1117
|
meetingAddedType,
|
|
903
|
-
|
|
904
|
-
return _regenerator.default.wrap(function
|
|
905
|
-
while (1) switch (
|
|
1118
|
+
_args3 = arguments;
|
|
1119
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
1120
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
906
1121
|
case 0:
|
|
907
|
-
type =
|
|
908
|
-
useRandomDelayForInfo =
|
|
1122
|
+
type = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : null;
|
|
1123
|
+
useRandomDelayForInfo = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
|
|
1124
|
+
infoExtraParams = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};
|
|
909
1125
|
meeting = new _meeting.default({
|
|
910
1126
|
// @ts-ignore
|
|
911
1127
|
userId: this.webex.internal.device.userId,
|
|
@@ -923,7 +1139,7 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
923
1139
|
parent: this.webex
|
|
924
1140
|
});
|
|
925
1141
|
this.meetingCollection.set(meeting);
|
|
926
|
-
|
|
1142
|
+
_context3.prev = 5;
|
|
927
1143
|
// if no participant has joined the scheduled meeting (meaning meeting is not active) and we get a locusEvent,
|
|
928
1144
|
// it means the meeting will start in 5-6 min. In that case, we want to fetchMeetingInfo
|
|
929
1145
|
// between 5 and 2 min (random between 3 minutes) before the meeting starts
|
|
@@ -940,32 +1156,36 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
940
1156
|
isMeetingActive = !!((_destination$fullStat = destination.fullState) !== null && _destination$fullStat !== void 0 && _destination$fullStat.active); // @ts-ignore
|
|
941
1157
|
enableUnifiedMeetings = this.config.experimental.enableUnifiedMeetings;
|
|
942
1158
|
if (!(enableUnifiedMeetings && !isMeetingActive && useRandomDelayForInfo && waitingTime > 0)) {
|
|
943
|
-
|
|
1159
|
+
_context3.next = 15;
|
|
944
1160
|
break;
|
|
945
1161
|
}
|
|
946
1162
|
meeting.fetchMeetingInfoTimeoutId = setTimeout(function () {
|
|
947
|
-
return meeting.fetchMeetingInfo({
|
|
1163
|
+
return meeting.fetchMeetingInfo({
|
|
1164
|
+
extraParams: infoExtraParams
|
|
1165
|
+
});
|
|
948
1166
|
}, waitingTime);
|
|
949
1167
|
meeting.parseMeetingInfo(undefined, destination);
|
|
950
|
-
|
|
1168
|
+
_context3.next = 17;
|
|
951
1169
|
break;
|
|
952
|
-
case
|
|
953
|
-
|
|
954
|
-
return meeting.fetchMeetingInfo({
|
|
955
|
-
|
|
956
|
-
|
|
1170
|
+
case 15:
|
|
1171
|
+
_context3.next = 17;
|
|
1172
|
+
return meeting.fetchMeetingInfo({
|
|
1173
|
+
extraParams: infoExtraParams
|
|
1174
|
+
});
|
|
1175
|
+
case 17:
|
|
1176
|
+
_context3.next = 23;
|
|
957
1177
|
break;
|
|
958
|
-
case
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
if (!(
|
|
1178
|
+
case 19:
|
|
1179
|
+
_context3.prev = 19;
|
|
1180
|
+
_context3.t0 = _context3["catch"](5);
|
|
1181
|
+
if (!(_context3.t0 instanceof _captchaError.default) && !(_context3.t0 instanceof _passwordError.default) && !(_context3.t0 instanceof _permission.default)) {
|
|
962
1182
|
// if there is no meeting info we assume its a 1:1 call or wireless share
|
|
963
1183
|
_loggerProxy.default.logger.info("Meetings:index#createMeeting --> Info Unable to fetch meeting info for ".concat(destination, "."));
|
|
964
1184
|
_loggerProxy.default.logger.info('Meetings:index#createMeeting --> Info assuming this destination is a 1:1 or wireless share');
|
|
965
1185
|
}
|
|
966
|
-
_loggerProxy.default.logger.debug("Meetings:index#createMeeting --> Debug ".concat(
|
|
967
|
-
case
|
|
968
|
-
|
|
1186
|
+
_loggerProxy.default.logger.debug("Meetings:index#createMeeting --> Debug ".concat(_context3.t0, " fetching /meetingInfo for creation."));
|
|
1187
|
+
case 23:
|
|
1188
|
+
_context3.prev = 23;
|
|
969
1189
|
// For type LOCUS_ID we need to parse the locus object to get the information
|
|
970
1190
|
// about the caller and callee
|
|
971
1191
|
// Meeting Added event will be created in `handleLocusEvent`
|
|
@@ -985,16 +1205,16 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
985
1205
|
type: meetingAddedType
|
|
986
1206
|
});
|
|
987
1207
|
}
|
|
988
|
-
return
|
|
989
|
-
case 25:
|
|
990
|
-
return _context.abrupt("return", meeting);
|
|
1208
|
+
return _context3.finish(23);
|
|
991
1209
|
case 26:
|
|
1210
|
+
return _context3.abrupt("return", meeting);
|
|
1211
|
+
case 27:
|
|
992
1212
|
case "end":
|
|
993
|
-
return
|
|
1213
|
+
return _context3.stop();
|
|
994
1214
|
}
|
|
995
|
-
},
|
|
1215
|
+
}, _callee3, this, [[5, 19, 23, 26]]);
|
|
996
1216
|
}));
|
|
997
|
-
function createMeeting(
|
|
1217
|
+
function createMeeting(_x3) {
|
|
998
1218
|
return _createMeeting.apply(this, arguments);
|
|
999
1219
|
}
|
|
1000
1220
|
return createMeeting;
|
|
@@ -1044,7 +1264,8 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1044
1264
|
return this.request.getActiveMeetings().then(function (locusArray) {
|
|
1045
1265
|
var activeLocusUrl = [];
|
|
1046
1266
|
if (locusArray !== null && locusArray !== void 0 && locusArray.loci && locusArray.loci.length > 0) {
|
|
1047
|
-
locusArray.loci
|
|
1267
|
+
var lociToUpdate = _this11.sortLocusArrayToUpdate(locusArray.loci);
|
|
1268
|
+
lociToUpdate.forEach(function (locus) {
|
|
1048
1269
|
activeLocusUrl.push(locus.url);
|
|
1049
1270
|
_this11.handleLocusEvent({
|
|
1050
1271
|
locus: locus,
|
|
@@ -1066,7 +1287,81 @@ var Meetings = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
1066
1287
|
}
|
|
1067
1288
|
}
|
|
1068
1289
|
}
|
|
1290
|
+
}).catch(function (error) {
|
|
1291
|
+
_loggerProxy.default.logger.error("Meetings:index#syncMeetings --> failed to sync meetings, ".concat(error));
|
|
1292
|
+
throw new Error(error);
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
/**
|
|
1297
|
+
* sort out locus array for initial creating
|
|
1298
|
+
* @param {Array} loci original locus array
|
|
1299
|
+
* @returns {undefined}
|
|
1300
|
+
* @public
|
|
1301
|
+
* @memberof Meetings
|
|
1302
|
+
*/
|
|
1303
|
+
}, {
|
|
1304
|
+
key: "sortLocusArrayToUpdate",
|
|
1305
|
+
value: function sortLocusArrayToUpdate(loci) {
|
|
1306
|
+
var _this12 = this;
|
|
1307
|
+
var mainLoci = loci.filter(function (locus) {
|
|
1308
|
+
return !_util2.default.isBreakoutLocusDTO(locus);
|
|
1309
|
+
});
|
|
1310
|
+
var breakoutLoci = loci.filter(function (locus) {
|
|
1311
|
+
return _util2.default.isValidBreakoutLocus(locus);
|
|
1312
|
+
});
|
|
1313
|
+
this.breakoutLocusForHandleLater = [];
|
|
1314
|
+
var lociToUpdate = (0, _toConsumableArray2.default)(mainLoci);
|
|
1315
|
+
breakoutLoci.forEach(function (breakoutLocus) {
|
|
1316
|
+
var associateMainLocus = mainLoci.find(function (mainLocus) {
|
|
1317
|
+
var _mainLocus$controls, _mainLocus$controls$b, _breakoutLocus$contro, _breakoutLocus$contro2;
|
|
1318
|
+
return ((_mainLocus$controls = mainLocus.controls) === null || _mainLocus$controls === void 0 ? void 0 : (_mainLocus$controls$b = _mainLocus$controls.breakout) === null || _mainLocus$controls$b === void 0 ? void 0 : _mainLocus$controls$b.url) === ((_breakoutLocus$contro = breakoutLocus.controls) === null || _breakoutLocus$contro === void 0 ? void 0 : (_breakoutLocus$contro2 = _breakoutLocus$contro.breakout) === null || _breakoutLocus$contro2 === void 0 ? void 0 : _breakoutLocus$contro2.url);
|
|
1319
|
+
});
|
|
1320
|
+
var existCorrespondingMeeting = _this12.getCorrespondingMeetingByLocus({
|
|
1321
|
+
locus: breakoutLocus,
|
|
1322
|
+
locusUrl: breakoutLocus.url
|
|
1323
|
+
});
|
|
1324
|
+
if (associateMainLocus && !existCorrespondingMeeting) {
|
|
1325
|
+
// if exists both main session and breakout session locus of the same non-exist meeting, handle main locus first,
|
|
1326
|
+
// after meeting create with main locus, then handle the associate breakout locus.
|
|
1327
|
+
// if only handle breakout locus, will miss some date
|
|
1328
|
+
_this12.breakoutLocusForHandleLater.push(breakoutLocus);
|
|
1329
|
+
} else {
|
|
1330
|
+
lociToUpdate.push(breakoutLocus);
|
|
1331
|
+
}
|
|
1332
|
+
});
|
|
1333
|
+
return lociToUpdate;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
/**
|
|
1337
|
+
* check breakout locus which waiting for main locus's meeting to be created, then handle the breakout locus
|
|
1338
|
+
* @param {Object} newCreatedLocus the locus which just create meeting object of it
|
|
1339
|
+
* @returns {undefined}
|
|
1340
|
+
* @public
|
|
1341
|
+
* @memberof Meetings
|
|
1342
|
+
*/
|
|
1343
|
+
}, {
|
|
1344
|
+
key: "checkHandleBreakoutLocus",
|
|
1345
|
+
value: function checkHandleBreakoutLocus(newCreatedLocus) {
|
|
1346
|
+
if (!newCreatedLocus || !this.breakoutLocusForHandleLater || !this.breakoutLocusForHandleLater.length) {
|
|
1347
|
+
return;
|
|
1348
|
+
}
|
|
1349
|
+
if (_util2.default.isBreakoutLocusDTO(newCreatedLocus)) {
|
|
1350
|
+
return;
|
|
1351
|
+
}
|
|
1352
|
+
var existIndex = this.breakoutLocusForHandleLater.findIndex(function (breakoutLocus) {
|
|
1353
|
+
var _breakoutLocus$contro3, _breakoutLocus$contro4, _newCreatedLocus$cont, _newCreatedLocus$cont2;
|
|
1354
|
+
return ((_breakoutLocus$contro3 = breakoutLocus.controls) === null || _breakoutLocus$contro3 === void 0 ? void 0 : (_breakoutLocus$contro4 = _breakoutLocus$contro3.breakout) === null || _breakoutLocus$contro4 === void 0 ? void 0 : _breakoutLocus$contro4.url) === ((_newCreatedLocus$cont = newCreatedLocus.controls) === null || _newCreatedLocus$cont === void 0 ? void 0 : (_newCreatedLocus$cont2 = _newCreatedLocus$cont.breakout) === null || _newCreatedLocus$cont2 === void 0 ? void 0 : _newCreatedLocus$cont2.url);
|
|
1355
|
+
});
|
|
1356
|
+
if (existIndex < 0) {
|
|
1357
|
+
return;
|
|
1358
|
+
}
|
|
1359
|
+
var associateBreakoutLocus = this.breakoutLocusForHandleLater[existIndex];
|
|
1360
|
+
this.handleLocusEvent({
|
|
1361
|
+
locus: associateBreakoutLocus,
|
|
1362
|
+
locusUrl: associateBreakoutLocus.url
|
|
1069
1363
|
});
|
|
1364
|
+
this.breakoutLocusForHandleLater.splice(existIndex, 1);
|
|
1070
1365
|
}
|
|
1071
1366
|
|
|
1072
1367
|
/**
|