@webex/plugin-meetings 3.0.0-beta.15 → 3.0.0-beta.151
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 +193 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +43 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1046 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -21
- 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 +0 -21
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +0 -21
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +0 -21
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +0 -21
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +0 -28
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +0 -21
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +0 -21
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +0 -21
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +0 -21
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +9 -43
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +7 -13
- package/dist/config.js.map +1 -1
- package/dist/constants.js +208 -64
- 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 +78 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +100 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +387 -208
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +54 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +90 -126
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +93 -92
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +70 -219
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +74 -198
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -8
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +79 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2685 -3324
- 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 +243 -185
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +296 -342
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +0 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.js +16 -26
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +446 -585
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +8 -31
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +261 -242
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +156 -232
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +24 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +526 -372
- 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 +21 -40
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +172 -141
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -57
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +101 -69
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +12 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +123 -162
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +120 -85
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +314 -260
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +50 -16
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +4 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +75 -147
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +170 -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 +73 -94
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +55 -74
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +66 -43
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +502 -442
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +24 -51
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +3 -38
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +190 -199
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +14 -23
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +2 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +18 -24
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +356 -476
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +32 -75
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +129 -136
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +143 -103
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +369 -462
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +144 -94
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +9 -44
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +43 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +2 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +32 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +978 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +315 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +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 +1509 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +270 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +75 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +364 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +157 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/config.d.ts +195 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +169 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +104 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/package.json +28 -21
- package/src/annotation/annotation.types.ts +52 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +343 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +163 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +37 -0
- package/src/breakouts/index.ts +921 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/config.ts +5 -7
- package/src/constants.ts +155 -20
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +286 -0
- package/src/index.ts +34 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +310 -21
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +2 -1
- package/src/locus-info/selfUtils.ts +71 -1
- package/src/media/index.ts +70 -142
- package/src/media/properties.ts +41 -104
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +156 -0
- package/src/meeting/index.ts +1730 -1768
- 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 +421 -421
- package/src/meeting-info/meeting-info-v2.ts +134 -13
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +375 -83
- package/src/meetings/meetings.types.ts +9 -0
- package/src/meetings/request.ts +3 -1
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +40 -0
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +81 -1
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +108 -6
- package/src/members/request.ts +98 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/config.ts +49 -10
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +43 -27
- package/src/multistream/mediaRequestManager.ts +210 -45
- package/src/multistream/receiveSlot.ts +68 -26
- package/src/multistream/receiveSlotManager.ts +61 -38
- package/src/multistream/remoteMedia.ts +29 -3
- package/src/multistream/remoteMediaGroup.ts +61 -2
- package/src/multistream/remoteMediaManager.ts +260 -66
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +75 -25
- package/src/reachability/request.ts +10 -5
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +28 -3
- package/src/reconnection-manager/index.ts +53 -32
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/index.ts +21 -30
- package/src/roap/request.ts +51 -52
- package/src/roap/turnDiscovery.ts +51 -27
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +380 -390
- package/src/statsAnalyzer/mqaUtil.ts +106 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +332 -255
- package/test/integration/spec/space-meeting.js +78 -5
- package/test/integration/spec/transcription.js +1 -1
- package/test/unit/spec/annotation/index.ts +436 -0
- package/test/unit/spec/breakouts/breakout.ts +203 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +77 -0
- package/test/unit/spec/breakouts/index.ts +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/locus-info/controlsUtils.js +303 -30
- package/test/unit/spec/locus-info/index.js +615 -4
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/selfConstant.js +38 -0
- package/test/unit/spec/locus-info/selfUtils.js +200 -0
- package/test/unit/spec/media/index.ts +118 -22
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
- package/test/unit/spec/meeting/index.js +2394 -1381
- 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 +268 -156
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +842 -128
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +24 -0
- package/test/unit/spec/member/util.js +384 -32
- package/test/unit/spec/members/index.js +320 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +98 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +676 -105
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +176 -25
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +46 -13
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +21 -51
- package/test/unit/spec/roap/request.ts +187 -0
- package/test/unit/spec/roap/turnDiscovery.ts +73 -34
- package/test/unit/spec/stats-analyzer/index.js +94 -43
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -334
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -117
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -15
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/meeting/effectsState.ts +0 -211
- package/src/multistream/multistreamMedia.ts +0 -93
- package/test/unit/spec/meeting/effectsState.js +0 -281
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingInfoUtil","getParsedUrl","link","parsedUrl","url","parse","protocol","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","value","hostNameBool","hostname","includes","WEBEX_DOT_COM","pathNameBool","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","destination","deconstructHydraId","type","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","ParameterError","catch","err","getDestinationType","from","_PERSONAL_ROOM_","userId","device","orgId","options","VALID_EMAIL_ADDRESS","email","list","items","hydraId","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","resolve","waitForCatalog","conversationUrl","conversation","getUrlFromClusterId","getRequestBody","password","captchaInfo","body","supportHostKey","supportCountryList","sipUrl","_MEETING_ID_","meetingKey","_LOCUS_ID_","info","webExMeetingId","meetingUrl","_MEETING_UUID_","meetingUUID","captchaID","captchaVerifyCode","code","getWebexSite","uri","exceptedDomains","site","match","getDirectMeetingInfoURI","preferredWebexSite","webExSite"],"sources":["utilv2.ts"],"sourcesContent":["import url from 'url';\n\nimport {\n // @ts-ignore\n deconstructHydraId,\n} from '@webex/common';\n\nimport {\n _SIP_URI_,\n _PERSONAL_ROOM_,\n _MEETING_ID_,\n _CONVERSATION_URL_,\n _LOCUS_ID_,\n _MEETING_LINK_,\n _PEOPLE_,\n _ROOM_,\n _MEETING_UUID_,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n VALID_EMAIL_ADDRESS,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nconst MeetingInfoUtil: any = {};\n\nMeetingInfoUtil.getParsedUrl = (link) => {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n};\n\n/**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\nMeetingInfoUtil.isMeetingLink = (value: string) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n\n return hostNameBool && pathNameBool;\n};\n\nMeetingInfoUtil.isConversationUrl = (value, webex) => {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n};\n\nMeetingInfoUtil.isSipUri = (sipString) => {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n};\n\nMeetingInfoUtil.isPhoneNumber = (phoneNumber) => {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n};\n\nMeetingInfoUtil.getHydraId = (destination) => {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n};\n\nMeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>\n webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n\nMeetingInfoUtil.getDestinationType = async (from) => {\n const {type, webex} = from;\n let {destination} = from;\n\n if (type === _PERSONAL_ROOM_) {\n // this case checks if your type is personal room\n if (!destination) {\n // if we are not getting anything in desination we fetch org and user ids from webex instance\n destination = {\n userId: webex.internal.device.userId,\n orgId: webex.internal.device.orgId,\n };\n } else {\n const options = VALID_EMAIL_ADDRESS.test(destination)\n ? {email: destination}\n : {id: destination}; // we are assuming userId as default\n const res = await webex.people.list(options);\n\n let {orgId, id: userId} = res.items[0];\n\n userId = deconstructHydraId(userId).id;\n orgId = deconstructHydraId(orgId).id;\n destination = {userId, orgId};\n }\n }\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = MeetingInfoUtil.getHydraId(destination);\n\n if (MeetingInfoUtil.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = _SIP_URI_;\n\n return MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = _CONVERSATION_URL_;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const conversationUrl = webex.internal.conversation.getUrlFromClusterId({\n cluster: hydraId.cluster,\n id: hydraId.destination,\n });\n\n options.destination = conversationUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#getDestinationType --> ${e}`);\n throw e;\n }\n } else {\n LoggerProxy.logger.warn(\n \"Meeting-info:util#getDestinationType --> ('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.\"\n );\n throw new ParameterError(\n 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'\n );\n }\n\n return Promise.resolve(options);\n};\n\n/**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} options.destination ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\nMeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {\n const {type, destination, password, captchaInfo} = options;\n const body: any = {\n supportHostKey: true,\n supportCountryList: true,\n };\n\n switch (type) {\n case _SIP_URI_:\n body.sipUrl = destination;\n break;\n case _PERSONAL_ROOM_:\n body.userId = destination.userId;\n body.orgId = destination.orgId;\n break;\n case _MEETING_ID_:\n body.meetingKey = destination;\n break;\n case _CONVERSATION_URL_:\n body.conversationUrl = destination;\n break;\n case _LOCUS_ID_:\n // use meetingID for the completer meeting info for the already started meeting\n if (destination.info?.webExMeetingId) {\n body.meetingKey = destination.info.webExMeetingId;\n } else if (destination.info?.sipUri) {\n body.sipUrl = destination.info.sipUri;\n }\n break;\n case _MEETING_LINK_:\n body.meetingUrl = destination;\n break;\n case _MEETING_UUID_: {\n body.meetingUUID = destination;\n break;\n }\n default:\n }\n\n if (password) {\n body.password = password;\n }\n\n if (captchaInfo) {\n body.captchaID = captchaInfo.id;\n body.captchaVerifyCode = captchaInfo.code;\n }\n\n return body;\n};\n\n/**\n * Helper function to parse the webex site/host from a URI string.\n * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')\n * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')\n */\nMeetingInfoUtil.getWebexSite = (uri: string) => {\n const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n const site = uri?.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)?.[1];\n\n return exceptedDomains.includes(site) ? null : site;\n};\n\n/**\n * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} options.destination ?? value.value\n * @returns {String} returns a URI string or null of there is no direct URI\n */\nMeetingInfoUtil.getDirectMeetingInfoURI = (options: {type: string; destination: any}) => {\n const {type, destination} = options;\n\n let preferredWebexSite = null;\n\n switch (type) {\n case _SIP_URI_:\n preferredWebexSite = MeetingInfoUtil.getWebexSite(destination);\n break;\n case _LOCUS_ID_:\n preferredWebexSite = destination.info?.webExSite;\n break;\n default:\n }\n\n return preferredWebexSite ? `https://${preferredWebexSite}/wbxappapi/v1/meetingInfo` : null;\n};\n\nexport default MeetingInfoUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingInfoUtil","getParsedUrl","link","parsedUrl","url","parse","protocol","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","value","hostNameBool","hostname","includes","WEBEX_DOT_COM","pathNameBool","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","destination","deconstructHydraId","type","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","ParameterError","catch","err","getDestinationType","from","_PERSONAL_ROOM_","userId","device","orgId","options","VALID_EMAIL_ADDRESS","email","list","items","hydraId","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","resolve","waitForCatalog","conversationUrl","conversation","getUrlFromClusterId","getRequestBody","password","captchaInfo","installedOrgID","locusId","extraParams","body","DEFAULT_MEETING_INFO_REQUEST_BODY","sipUrl","_MEETING_ID_","meetingKey","_LOCUS_ID_","info","webExMeetingId","meetingUrl","_MEETING_UUID_","meetingUUID","captchaID","captchaVerifyCode","code","getWebexSite","uri","exceptedDomains","site","match","getDirectMeetingInfoURI","preferredWebexSite","webExSite"],"sources":["utilv2.ts"],"sourcesContent":["import url from 'url';\n\nimport {\n // @ts-ignore\n deconstructHydraId,\n} from '@webex/common';\n\nimport {\n _SIP_URI_,\n _PERSONAL_ROOM_,\n _MEETING_ID_,\n _CONVERSATION_URL_,\n _LOCUS_ID_,\n _MEETING_LINK_,\n _PEOPLE_,\n _ROOM_,\n _MEETING_UUID_,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n VALID_EMAIL_ADDRESS,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nconst MeetingInfoUtil: any = {};\n\nMeetingInfoUtil.getParsedUrl = (link) => {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n};\n\n/**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\nMeetingInfoUtil.isMeetingLink = (value: string) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n\n return hostNameBool && pathNameBool;\n};\n\nMeetingInfoUtil.isConversationUrl = (value, webex) => {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n};\n\nMeetingInfoUtil.isSipUri = (sipString) => {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n};\n\nMeetingInfoUtil.isPhoneNumber = (phoneNumber) => {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n};\n\nMeetingInfoUtil.getHydraId = (destination) => {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n};\n\nMeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>\n webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n\nMeetingInfoUtil.getDestinationType = async (from) => {\n const {type, webex} = from;\n let {destination} = from;\n\n if (type === _PERSONAL_ROOM_) {\n // this case checks if your type is personal room\n if (!destination) {\n // if we are not getting anything in desination we fetch org and user ids from webex instance\n destination = {\n userId: webex.internal.device.userId,\n orgId: webex.internal.device.orgId,\n };\n } else {\n const options = VALID_EMAIL_ADDRESS.test(destination)\n ? {email: destination}\n : {id: destination}; // we are assuming userId as default\n const res = await webex.people.list(options);\n\n let {orgId, id: userId} = res.items[0];\n\n userId = deconstructHydraId(userId).id;\n orgId = deconstructHydraId(orgId).id;\n destination = {userId, orgId};\n }\n }\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = MeetingInfoUtil.getHydraId(destination);\n\n if (MeetingInfoUtil.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = _SIP_URI_;\n\n return MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = _CONVERSATION_URL_;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const conversationUrl = webex.internal.conversation.getUrlFromClusterId({\n cluster: hydraId.cluster,\n id: hydraId.destination,\n });\n\n options.destination = conversationUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#getDestinationType --> ${e}`);\n throw e;\n }\n } else {\n LoggerProxy.logger.warn(\n \"Meeting-info:util#getDestinationType --> ('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.\"\n );\n throw new ParameterError(\n 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'\n );\n }\n\n return Promise.resolve(options);\n};\n\n/**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {String} options.installedOrgID org ID of user's machine\n * @param {Object} options.destination ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\nMeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {\n const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = options;\n const body: any = {\n ...DEFAULT_MEETING_INFO_REQUEST_BODY,\n ...extraParams,\n };\n\n switch (type) {\n case _SIP_URI_:\n body.sipUrl = destination;\n break;\n case _PERSONAL_ROOM_:\n body.userId = destination.userId;\n body.orgId = destination.orgId;\n break;\n case _MEETING_ID_:\n body.meetingKey = destination;\n break;\n case _CONVERSATION_URL_:\n body.conversationUrl = destination;\n break;\n case _LOCUS_ID_:\n // use meetingID for the completer meeting info for the already started meeting\n if (destination.info?.webExMeetingId) {\n body.meetingKey = destination.info.webExMeetingId;\n } else if (destination.info?.sipUri) {\n body.sipUrl = destination.info.sipUri;\n }\n break;\n case _MEETING_LINK_:\n body.meetingUrl = destination;\n break;\n case _MEETING_UUID_: {\n body.meetingUUID = destination;\n break;\n }\n default:\n }\n\n if (password) {\n body.password = password;\n }\n\n if (captchaInfo) {\n body.captchaID = captchaInfo.id;\n body.captchaVerifyCode = captchaInfo.code;\n }\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n if (locusId) {\n body.locusId = locusId;\n }\n\n return body;\n};\n\n/**\n * Helper function to parse the webex site/host from a URI string.\n * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')\n * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')\n */\nMeetingInfoUtil.getWebexSite = (uri: string) => {\n const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n const site = uri?.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)?.[1];\n\n return exceptedDomains.includes(site) ? null : site;\n};\n\n/**\n * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} options.destination ?? value.value\n * @returns {String} returns a URI string or null of there is no direct URI\n */\nMeetingInfoUtil.getDirectMeetingInfoURI = (options: {type: string; destination: any}) => {\n const {type, destination} = options;\n\n let preferredWebexSite = null;\n\n switch (type) {\n case _SIP_URI_:\n preferredWebexSite = MeetingInfoUtil.getWebexSite(destination);\n break;\n case _LOCUS_ID_:\n preferredWebexSite = destination.info?.webExSite;\n break;\n default:\n }\n\n return preferredWebexSite ? `https://${preferredWebexSite}/wbxappapi/v1/meetingInfo` : null;\n};\n\nexport default MeetingInfoUtil;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAEA;AAKA;AAqBA;AACA;AAAsD;AAAA;AAEtD,IAAMA,eAAoB,GAAG,CAAC,CAAC;AAE/BA,eAAe,CAACC,YAAY,GAAG,UAACC,IAAI,EAAK;EACvC,IAAI;IACF,IAAIC,SAAS,GAAGC,YAAG,CAACC,KAAK,CAACH,IAAI,CAAC;IAE/B,IAAI,CAACC,SAAS,EAAE;MACd,OAAO,KAAK;IACd;IACA;IACA,IAAI,CAACA,SAAS,CAACG,QAAQ,EAAE;MACvBH,SAAS,GAAGC,YAAG,CAACC,KAAK,WAAIE,yBAAc,SAAGL,IAAI,EAAG;IACnD;IAEA,OAAOC,SAAS;EAClB,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdC,oBAAW,CAACC,MAAM,CAACC,IAAI,8EACiDH,KAAK,EAC5E;IAED,OAAO,IAAI;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAR,eAAe,CAACY,aAAa,GAAG,UAACC,KAAa,EAAK;EACjD,IAAMV,SAAS,GAAGH,eAAe,CAACC,YAAY,CAACY,KAAK,CAAC;EACrD,IAAMC,YAAY,GAAGX,SAAS,CAACY,QAAQ,IAAIZ,SAAS,CAACY,QAAQ,CAACC,QAAQ,CAACC,wBAAa,CAAC;EACrF,IAAMC,YAAY,GAChBf,SAAS,CAACgB,QAAQ,KACjBhB,SAAS,CAACgB,QAAQ,CAACH,QAAQ,YAAKI,eAAI,EAAG,IACtCjB,SAAS,CAACgB,QAAQ,CAACH,QAAQ,YAAKK,iBAAM,EAAG,IACzClB,SAAS,CAACgB,QAAQ,CAACH,QAAQ,YAAKM,eAAI,EAAG,CAAC;EAE5C,OAAOR,YAAY,IAAII,YAAY;AACrC,CAAC;AAEDlB,eAAe,CAACuB,iBAAiB,GAAG,UAACV,KAAK,EAAEW,KAAK,EAAK;EACpD,IAAMC,SAAS,GAAGD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACf,KAAK,CAAC;EAE7D,IAAIY,SAAS,EAAE;IACb,OAAOA,SAAS,CAACI,QAAQ,CAACC,+BAAoB,CAAC;EACjD;EAEA,OAAO,KAAK;AACd,CAAC;AAED9B,eAAe,CAAC+B,QAAQ,GAAG,UAACC,SAAS,EAAK;EACxC;EACA;EACA,IAAMC,MAAM,GAAGC,uBAAY,CAACC,WAAW,CAACC,IAAI,CAACJ,SAAS,CAAC;EAEvD,OAAOC,MAAM;AACf,CAAC;AAEDjC,eAAe,CAACqC,aAAa,GAAG,UAACC,WAAW,EAAK;EAC/C,IAAMC,aAAa,GAAGL,uBAAY,CAACM,YAAY,CAACC,IAAI,CAACH,WAAW,CAAC;EAEjE,OAAOC,aAAa;AACtB,CAAC;AAEDvC,eAAe,CAAC0C,UAAU,GAAG,UAACC,WAAW,EAAK;EAC5C,0BAA4B,IAAAC,0BAAkB,EAACD,WAAW,CAAC;IAApDE,IAAI,uBAAJA,IAAI;IAAEC,EAAE,uBAAFA,EAAE;IAAEC,OAAO,uBAAPA,OAAO;EAExB,IAAID,EAAE,IAAIE,mBAAQ,CAACP,IAAI,CAACK,EAAE,CAAC,EAAE;IAC3B,IAAID,IAAI,KAAKI,iBAAM,EAAE;MACnB,OAAO;QAACC,IAAI,EAAE,IAAI;QAAEP,WAAW,EAAEG,EAAE;QAAEC,OAAO,EAAPA;MAAO,CAAC;IAC/C;IACA,IAAIF,IAAI,KAAKM,mBAAQ,EAAE;MACrB,OAAO;QAACC,MAAM,EAAE,IAAI;QAAET,WAAW,EAAEG,EAAE;QAAEC,OAAO,EAAPA;MAAO,CAAC;IACjD;IAEA,OAAO,CAAC,CAAC;EACX;EAEA,OAAO,CAAC,CAAC;AACX,CAAC;AAED/C,eAAe,CAACqD,0BAA0B,GAAG,UAACV,WAAW,EAAEnB,KAAK;EAAA,OAC9DA,KAAK,CAAC4B,MAAM,CACTE,GAAG,CAACX,WAAW,CAAC,CAChBY,IAAI,CAAC,UAACC,GAAG,EAAK;IACb,IAAIA,GAAG,CAACC,MAAM,IAAID,GAAG,CAACC,MAAM,CAACC,MAAM,EAAE;MACnC,OAAOF,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC;IACtB;IACA,MAAM,IAAIE,kBAAc,CAAC,iDAAiD,CAAC;EAC7E,CAAC,CAAC,CACDC,KAAK,CAAC,UAACC,GAAG,EAAK;IACdpD,oBAAW,CAACC,MAAM,CAACF,KAAK,uGACyEqD,GAAG,OACnG;IACD,MAAMA,GAAG;EACX,CAAC,CAAC;AAAA;AAEN7D,eAAe,CAAC8D,kBAAkB;EAAA,mFAAG,iBAAOC,IAAI;IAAA;IAAA;MAAA;QAAA;UACvClB,IAAI,GAAWkB,IAAI,CAAnBlB,IAAI,EAAErB,KAAK,GAAIuC,IAAI,CAAbvC,KAAK;UACbmB,WAAW,GAAIoB,IAAI,CAAnBpB,WAAW;UAAA,MAEZE,IAAI,KAAKmB,0BAAe;YAAA;YAAA;UAAA;UAAA,IAErBrB,WAAW;YAAA;YAAA;UAAA;UACd;UACAA,WAAW,GAAG;YACZsB,MAAM,EAAEzC,KAAK,CAACE,QAAQ,CAACwC,MAAM,CAACD,MAAM;YACpCE,KAAK,EAAE3C,KAAK,CAACE,QAAQ,CAACwC,MAAM,CAACC;UAC/B,CAAC;UAAC;UAAA;QAAA;UAEIC,QAAO,GAAGC,8BAAmB,CAAC5B,IAAI,CAACE,WAAW,CAAC,GACjD;YAAC2B,KAAK,EAAE3B;UAAW,CAAC,GACpB;YAACG,EAAE,EAAEH;UAAW,CAAC,EAAE;UAAA;UAAA,OACLnB,KAAK,CAAC4B,MAAM,CAACmB,IAAI,CAACH,QAAO,CAAC;QAAA;UAAtCZ,GAAG;UAAA,cAEiBA,GAAG,CAACgB,KAAK,CAAC,CAAC,CAAC,EAAjCL,KAAK,eAALA,KAAK,EAAMF,MAAM,eAAVnB,EAAE;UAEdmB,MAAM,GAAG,IAAArB,0BAAkB,EAACqB,MAAM,CAAC,CAACnB,EAAE;UACtCqB,KAAK,GAAG,IAAAvB,0BAAkB,EAACuB,KAAK,CAAC,CAACrB,EAAE;UACpCH,WAAW,GAAG;YAACsB,MAAM,EAANA,MAAM;YAAEE,KAAK,EAALA;UAAK,CAAC;QAAC;UAAA,KAG9BtB,IAAI;YAAA;YAAA;UAAA;UAAA,iCACC;YACLF,WAAW,EAAXA,WAAW;YACXE,IAAI,EAAJA;UACF,CAAC;QAAA;UAEGuB,OAAY,GAAG,CAAC,CAAC;UACjBK,OAAO,GAAGzE,eAAe,CAAC0C,UAAU,CAACC,WAAW,CAAC;UAAA,KAEnD3C,eAAe,CAACY,aAAa,CAAC+B,WAAW,CAAC;YAAA;YAAA;UAAA;UAC5ClC,oBAAW,CAACC,MAAM,CAACC,IAAI,CACrB,6GAA6G,CAC9G;UAEDyD,OAAO,CAACvB,IAAI,GAAG6B,yBAAc;UAC7BN,OAAO,CAACzB,WAAW,GAAGA,WAAW;UAAC;UAAA;QAAA;UAAA,KACzB3C,eAAe,CAAC+B,QAAQ,CAACY,WAAW,CAAC;YAAA;YAAA;UAAA;UAC9CyB,OAAO,CAACvB,IAAI,GAAG8B,oBAAS;UACxBP,OAAO,CAACzB,WAAW,GAAGA,WAAW;UAAC;UAAA;QAAA;UAAA,KACzB3C,eAAe,CAACqC,aAAa,CAACM,WAAW,CAAC;YAAA;YAAA;UAAA;UACnDyB,OAAO,CAACvB,IAAI,GAAG8B,oBAAS;UACxBP,OAAO,CAACzB,WAAW,GAAGA,WAAW;UAAC;UAAA;QAAA;UAAA,KACzB3C,eAAe,CAACuB,iBAAiB,CAACoB,WAAW,EAAEnB,KAAK,CAAC;YAAA;YAAA;UAAA;UAC9D4C,OAAO,CAACvB,IAAI,GAAG+B,6BAAkB;UACjCR,OAAO,CAACzB,WAAW,GAAGA,WAAW;UAAC;UAAA;QAAA;UAAA,KACzB8B,OAAO,CAACrB,MAAM;YAAA;YAAA;UAAA;UACvBgB,OAAO,CAACvB,IAAI,GAAG8B,oBAAS;UAAC,iCAElB3E,eAAe,CAACqD,0BAA0B,CAACoB,OAAO,CAAC9B,WAAW,EAAEnB,KAAK,CAAC,CAAC+B,IAAI,CAAC,UAACC,GAAG,EAAK;YAC1FY,OAAO,CAACzB,WAAW,GAAGa,GAAG;;YAEzB;YACA;YACA;YACAY,OAAO,CAACS,cAAc,GAAG,IAAI;YAE7B,OAAO,iBAAQC,OAAO,CAACV,OAAO,CAAC;UACjC,CAAC,CAAC;QAAA;UAAA,KACOK,OAAO,CAACvB,IAAI;YAAA;YAAA;UAAA;UACrBkB,OAAO,CAACvB,IAAI,GAAG+B,6BAAkB;UAAC;UAAA;UAAA,OAE1BpD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACoD,cAAc,CAAC,UAAU,CAAC;QAAA;UAElDC,eAAe,GAAGxD,KAAK,CAACE,QAAQ,CAACuD,YAAY,CAACC,mBAAmB,CAAC;YACtEnC,OAAO,EAAE0B,OAAO,CAAC1B,OAAO;YACxBD,EAAE,EAAE2B,OAAO,CAAC9B;UACd,CAAC,CAAC;UAEFyB,OAAO,CAACzB,WAAW,GAAGqC,eAAe;UAAC;UAAA;QAAA;UAAA;UAAA;UAEtCvE,oBAAW,CAACC,MAAM,CAACF,KAAK,iEAAiD;UAAC;QAAA;UAAA;UAAA;QAAA;UAI5EC,oBAAW,CAACC,MAAM,CAACC,IAAI,CACrB,oKAAoK,CACrK;UAAC,MACI,IAAIgD,kBAAc,CACtB,yHAAyH,CAC1H;QAAA;UAAA,iCAGI,iBAAQmB,OAAO,CAACV,OAAO,CAAC;QAAA;QAAA;UAAA;MAAA;IAAA;EAAA,CAChC;EAAA;IAAA;EAAA;AAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACApE,eAAe,CAACmF,cAAc,GAAG,UAACf,OAAkD,EAAK;EAAA;EACvF,IAAOvB,IAAI,GAA8EuB,OAAO,CAAzFvB,IAAI;IAAEF,WAAW,GAAiEyB,OAAO,CAAnFzB,WAAW;IAAEyC,QAAQ,GAAuDhB,OAAO,CAAtEgB,QAAQ;IAAEC,WAAW,GAA0CjB,OAAO,CAA5DiB,WAAW;IAAEC,cAAc,GAA0BlB,OAAO,CAA/CkB,cAAc;IAAEC,OAAO,GAAiBnB,OAAO,CAA/BmB,OAAO;IAAEC,WAAW,GAAIpB,OAAO,CAAtBoB,WAAW;EACrF,IAAMC,IAAS,mCACVC,4CAAiC,GACjCF,WAAW,CACf;EAED,QAAQ3C,IAAI;IACV,KAAK8B,oBAAS;MACZc,IAAI,CAACE,MAAM,GAAGhD,WAAW;MACzB;IACF,KAAKqB,0BAAe;MAClByB,IAAI,CAACxB,MAAM,GAAGtB,WAAW,CAACsB,MAAM;MAChCwB,IAAI,CAACtB,KAAK,GAAGxB,WAAW,CAACwB,KAAK;MAC9B;IACF,KAAKyB,uBAAY;MACfH,IAAI,CAACI,UAAU,GAAGlD,WAAW;MAC7B;IACF,KAAKiC,6BAAkB;MACrBa,IAAI,CAACT,eAAe,GAAGrC,WAAW;MAClC;IACF,KAAKmD,qBAAU;MACb;MACA,yBAAInD,WAAW,CAACoD,IAAI,8CAAhB,kBAAkBC,cAAc,EAAE;QACpCP,IAAI,CAACI,UAAU,GAAGlD,WAAW,CAACoD,IAAI,CAACC,cAAc;MACnD,CAAC,MAAM,0BAAIrD,WAAW,CAACoD,IAAI,+CAAhB,mBAAkB9D,MAAM,EAAE;QACnCwD,IAAI,CAACE,MAAM,GAAGhD,WAAW,CAACoD,IAAI,CAAC9D,MAAM;MACvC;MACA;IACF,KAAKyC,yBAAc;MACjBe,IAAI,CAACQ,UAAU,GAAGtD,WAAW;MAC7B;IACF,KAAKuD,yBAAc;MAAE;QACnBT,IAAI,CAACU,WAAW,GAAGxD,WAAW;QAC9B;MACF;IACA;EAAQ;EAGV,IAAIyC,QAAQ,EAAE;IACZK,IAAI,CAACL,QAAQ,GAAGA,QAAQ;EAC1B;EAEA,IAAIC,WAAW,EAAE;IACfI,IAAI,CAACW,SAAS,GAAGf,WAAW,CAACvC,EAAE;IAC/B2C,IAAI,CAACY,iBAAiB,GAAGhB,WAAW,CAACiB,IAAI;EAC3C;EAEA,IAAIhB,cAAc,EAAE;IAClBG,IAAI,CAACH,cAAc,GAAGA,cAAc;EACtC;EAEA,IAAIC,OAAO,EAAE;IACXE,IAAI,CAACF,OAAO,GAAGA,OAAO;EACxB;EAEA,OAAOE,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAzF,eAAe,CAACuG,YAAY,GAAG,UAACC,GAAW,EAAK;EAAA;EAC9C,IAAMC,eAAe,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;EAChF,IAAMC,IAAI,GAAGF,GAAG,aAAHA,GAAG,qCAAHA,GAAG,CAAEG,KAAK,CAAC,2BAA2B,CAAC,+CAAvC,WAA0C,CAAC,CAAC;EAEzD,OAAOF,eAAe,CAACzF,QAAQ,CAAC0F,IAAI,CAAC,GAAG,IAAI,GAAGA,IAAI;AACrD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA1G,eAAe,CAAC4G,uBAAuB,GAAG,UAACxC,OAAyC,EAAK;EAAA;EACvF,IAAOvB,IAAI,GAAiBuB,OAAO,CAA5BvB,IAAI;IAAEF,WAAW,GAAIyB,OAAO,CAAtBzB,WAAW;EAExB,IAAIkE,kBAAkB,GAAG,IAAI;EAE7B,QAAQhE,IAAI;IACV,KAAK8B,oBAAS;MACZkC,kBAAkB,GAAG7G,eAAe,CAACuG,YAAY,CAAC5D,WAAW,CAAC;MAC9D;IACF,KAAKmD,qBAAU;MACbe,kBAAkB,yBAAGlE,WAAW,CAACoD,IAAI,uDAAhB,mBAAkBe,SAAS;MAChD;IACF;EAAQ;EAGV,OAAOD,kBAAkB,qBAAcA,kBAAkB,iCAA8B,IAAI;AAC7F,CAAC;AAAC,eAEa7G,eAAe;AAAA"}
|
|
@@ -1,44 +1,28 @@
|
|
|
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 _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
20
|
-
|
|
21
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
22
|
-
|
|
23
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
24
|
-
|
|
25
15
|
var _find2 = _interopRequireDefault(require("lodash/find"));
|
|
26
|
-
|
|
27
16
|
var _collection = _interopRequireDefault(require("../common/collection"));
|
|
28
|
-
|
|
29
17
|
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); }; }
|
|
30
|
-
|
|
31
18
|
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; } }
|
|
32
|
-
|
|
33
19
|
/**
|
|
34
20
|
* @export
|
|
35
21
|
* @class MeetingCollection
|
|
36
22
|
*/
|
|
37
23
|
var MeetingCollection = /*#__PURE__*/function (_Collection) {
|
|
38
24
|
(0, _inherits2.default)(MeetingCollection, _Collection);
|
|
39
|
-
|
|
40
25
|
var _super = _createSuper(MeetingCollection);
|
|
41
|
-
|
|
42
26
|
/**
|
|
43
27
|
* @constructor
|
|
44
28
|
* @public
|
|
@@ -48,15 +32,16 @@ var MeetingCollection = /*#__PURE__*/function (_Collection) {
|
|
|
48
32
|
(0, _classCallCheck2.default)(this, MeetingCollection);
|
|
49
33
|
return _super.call(this, 'meetings');
|
|
50
34
|
}
|
|
51
|
-
|
|
52
35
|
(0, _createClass2.default)(MeetingCollection, [{
|
|
53
36
|
key: "set",
|
|
54
37
|
value: function set(meeting) {
|
|
55
38
|
// @ts-ignore
|
|
56
|
-
this.meetings[meeting.id] = meeting;
|
|
39
|
+
this.meetings[meeting.id] = meeting;
|
|
57
40
|
|
|
41
|
+
// @ts-ignore
|
|
58
42
|
return this.meetings[meeting.id];
|
|
59
43
|
}
|
|
44
|
+
|
|
60
45
|
/**
|
|
61
46
|
* get a specific meeting searching for key
|
|
62
47
|
* @param {String} key
|
|
@@ -65,7 +50,6 @@ var MeetingCollection = /*#__PURE__*/function (_Collection) {
|
|
|
65
50
|
* @public
|
|
66
51
|
* @memberof MeetingCollection
|
|
67
52
|
*/
|
|
68
|
-
|
|
69
53
|
}, {
|
|
70
54
|
key: "getByKey",
|
|
71
55
|
value: function getByKey(key, value) {
|
|
@@ -75,12 +59,32 @@ var MeetingCollection = /*#__PURE__*/function (_Collection) {
|
|
|
75
59
|
return meeting[key] === value;
|
|
76
60
|
});
|
|
77
61
|
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
78
64
|
|
|
65
|
+
/**
|
|
66
|
+
* get a specific meeting searching for key
|
|
67
|
+
* @param {String} breakoutUrl
|
|
68
|
+
* @returns {Meeting} if found, else returns null
|
|
69
|
+
* @public
|
|
70
|
+
* @memberof MeetingCollection
|
|
71
|
+
*/
|
|
72
|
+
}, {
|
|
73
|
+
key: "getActiveBreakoutLocus",
|
|
74
|
+
value: function getActiveBreakoutLocus(breakoutUrl) {
|
|
75
|
+
if (breakoutUrl) {
|
|
76
|
+
// @ts-ignore
|
|
77
|
+
return (0, _find2.default)(
|
|
78
|
+
// @ts-ignore
|
|
79
|
+
this.meetings, function (meeting) {
|
|
80
|
+
var _meeting$breakouts, _meeting$breakouts2;
|
|
81
|
+
return ((_meeting$breakouts = meeting.breakouts) === null || _meeting$breakouts === void 0 ? void 0 : _meeting$breakouts.url) === breakoutUrl && ((_meeting$breakouts2 = meeting.breakouts) === null || _meeting$breakouts2 === void 0 ? void 0 : _meeting$breakouts2.isActiveBreakout);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
79
84
|
return null;
|
|
80
85
|
}
|
|
81
86
|
}]);
|
|
82
87
|
return MeetingCollection;
|
|
83
88
|
}(_collection.default);
|
|
84
|
-
|
|
85
89
|
exports.default = MeetingCollection;
|
|
86
90
|
//# sourceMappingURL=collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingCollection","meeting","meetings","id","key","value","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\n\n/**\n * @export\n * @class MeetingCollection\n */\nexport default class MeetingCollection extends Collection {\n /**\n * @constructor\n * @public\n * @memberof MeetingCollection\n */\n constructor() {\n super('meetings');\n }\n\n set(meeting) {\n // @ts-ignore\n this.meetings[meeting.id] = meeting;\n\n // @ts-ignore\n return this.meetings[meeting.id];\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} key\n * @param {Any} value\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getByKey(key: string, value: any) {\n if (key && value) {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting[key] === value);\n }\n\n return null;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["MeetingCollection","meeting","meetings","id","key","value","breakoutUrl","breakouts","url","isActiveBreakout","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\n\n/**\n * @export\n * @class MeetingCollection\n */\nexport default class MeetingCollection extends Collection {\n /**\n * @constructor\n * @public\n * @memberof MeetingCollection\n */\n constructor() {\n super('meetings');\n }\n\n set(meeting) {\n // @ts-ignore\n this.meetings[meeting.id] = meeting;\n\n // @ts-ignore\n return this.meetings[meeting.id];\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} key\n * @param {Any} value\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getByKey(key: string, value: any) {\n if (key && value) {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting[key] === value);\n }\n\n return null;\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} breakoutUrl\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getActiveBreakoutLocus(breakoutUrl: string) {\n if (breakoutUrl) {\n // @ts-ignore\n return find(\n // @ts-ignore\n this.meetings,\n (meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout\n );\n }\n\n return null;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA;AAA8C;AAAA;AAE9C;AACA;AACA;AACA;AAHA,IAIqBA,iBAAiB;EAAA;EAAA;EACpC;AACF;AACA;AACA;AACA;EACE,6BAAc;IAAA;IAAA,yBACN,UAAU;EAClB;EAAC;IAAA;IAAA,OAED,aAAIC,OAAO,EAAE;MACX;MACA,IAAI,CAACC,QAAQ,CAACD,OAAO,CAACE,EAAE,CAAC,GAAGF,OAAO;;MAEnC;MACA,OAAO,IAAI,CAACC,QAAQ,CAACD,OAAO,CAACE,EAAE,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,kBAAgBC,GAAW,EAAEC,KAAU,EAAE;MACvC,IAAID,GAAG,IAAIC,KAAK,EAAE;QAChB;QACA,OAAO,oBAAK,IAAI,CAACH,QAAQ,EAAE,UAACD,OAAO;UAAA,OAAKA,OAAO,CAACG,GAAG,CAAC,KAAKC,KAAK;QAAA,EAAC;MACjE;MAEA,OAAO,IAAI;IACb;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,gCAA8BC,WAAmB,EAAE;MACjD,IAAIA,WAAW,EAAE;QACf;QACA,OAAO;QACL;QACA,IAAI,CAACJ,QAAQ,EACb,UAACD,OAAO;UAAA;UAAA,OAAK,uBAAAA,OAAO,CAACM,SAAS,uDAAjB,mBAAmBC,GAAG,MAAKF,WAAW,4BAAIL,OAAO,CAACM,SAAS,wDAAjB,oBAAmBE,gBAAgB;QAAA,EAC3F;MACH;MAEA,OAAO,IAAI;IACb;EAAC;EAAA;AAAA,EArD4CC,mBAAU;AAAA"}
|