@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.200
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 -7
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +216 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +1048 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +9 -43
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +37 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +28 -23
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +8 -13
- package/dist/config.js.map +1 -1
- package/dist/constants.js +250 -66
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +319 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +108 -17
- 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 +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +101 -29
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +532 -240
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +3 -37
- 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 +284 -154
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +110 -92
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +95 -226
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +99 -194
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +83 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3478 -3563
- 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 +247 -183
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +344 -344
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +529 -588
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +62 -39
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +328 -283
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +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 +26 -19
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +795 -574
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +26 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +186 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +126 -85
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +147 -88
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +13 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +178 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +113 -68
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +314 -260
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +4 -7
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +11 -558
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +264 -50
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +76 -95
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +62 -76
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +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 +40 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +192 -191
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +15 -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 +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +384 -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 +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 +58 -91
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +137 -135
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +148 -100
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +115 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +385 -460
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +143 -87
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/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 +34 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1016 -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 +322 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +271 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +93 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +153 -0
- package/dist/types/meeting/index.d.ts +1471 -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 +257 -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 +78 -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 +367 -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 +159 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +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/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +46 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/internal-README.md +7 -6
- package/package.json +29 -21
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +14 -9
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +22 -9
- package/src/common/queue.ts +22 -9
- package/src/{config.js → config.ts} +17 -17
- package/src/constants.ts +197 -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 +300 -0
- package/src/index.ts +39 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +222 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +518 -111
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +65 -17
- package/src/locus-info/{parser.js → parser.ts} +271 -98
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
- package/src/media/index.ts +456 -0
- package/src/media/{properties.js → properties.ts} +80 -102
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/config.ts +384 -0
- package/src/meeting/in-meeting-actions.ts +171 -3
- package/src/meeting/index.ts +7070 -0
- package/src/meeting/locusMediaRequest.ts +309 -0
- package/src/meeting/muteState.ts +450 -0
- package/src/meeting/{request.js → request.ts} +354 -214
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/util.ts +615 -0
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/index.ts +183 -0
- package/src/meeting-info/meeting-info-v2.ts +407 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +77 -60
- package/src/meetings/{collection.js → collection.ts} +26 -3
- package/src/meetings/index.ts +1467 -0
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/{request.js → request.ts} +34 -25
- package/src/meetings/{util.js → util.ts} +137 -36
- package/src/member/{index.js → index.ts} +151 -56
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +383 -0
- package/src/members/{collection.js → collection.ts} +10 -2
- package/src/members/{index.js → index.ts} +323 -145
- package/src/members/request.ts +255 -0
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +339 -0
- package/src/metrics/{constants.js → constants.ts} +2 -6
- package/src/metrics/index.ts +73 -0
- package/src/multistream/mediaRequestManager.ts +337 -61
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +66 -42
- package/src/multistream/remoteMedia.ts +40 -5
- package/src/multistream/remoteMediaGroup.ts +63 -3
- package/src/multistream/remoteMediaManager.ts +263 -66
- package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/{index.js → index.ts} +157 -94
- package/src/reachability/request.ts +46 -35
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/{index.js → index.ts} +254 -136
- 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.js → index.ts} +86 -78
- package/src/roap/request.ts +163 -0
- package/src/roap/turnDiscovery.ts +111 -49
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +96 -0
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1272 -0
- package/src/statsAnalyzer/mqaUtil.ts +291 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +804 -526
- package/test/integration/spec/space-meeting.js +391 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +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/common/browser-detection.js +9 -28
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +582 -0
- package/test/unit/spec/fixture/locus.js +93 -90
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +325 -32
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1176 -18
- package/test/unit/spec/locus-info/infoUtils.js +41 -32
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +65 -31
- package/test/unit/spec/locus-info/selfConstant.js +120 -103
- package/test/unit/spec/locus-info/selfUtils.js +296 -12
- package/test/unit/spec/media/index.ts +162 -68
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +82 -3
- package/test/unit/spec/meeting/index.js +4569 -1773
- package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
- package/test/unit/spec/meeting/muteState.js +382 -211
- package/test/unit/spec/meeting/request.js +444 -78
- package/test/unit/spec/meeting/utils.js +517 -192
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +131 -74
- package/test/unit/spec/meetings/collection.js +15 -1
- package/test/unit/spec/meetings/index.js +1254 -330
- package/test/unit/spec/meetings/utils.js +220 -14
- package/test/unit/spec/member/index.js +58 -5
- package/test/unit/spec/member/util.js +494 -26
- package/test/unit/spec/members/index.js +423 -55
- package/test/unit/spec/members/request.js +228 -40
- package/test/unit/spec/members/utils.js +191 -4
- package/test/unit/spec/metrics/index.js +12 -66
- package/test/unit/spec/multistream/mediaRequestManager.ts +1013 -106
- package/test/unit/spec/multistream/receiveSlot.ts +77 -18
- package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
- package/test/unit/spec/multistream/remoteMedia.ts +40 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +730 -65
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +176 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +155 -9
- 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 +92 -50
- package/test/unit/spec/rtcMetrics/index.ts +60 -0
- package/test/unit/spec/stats-analyzer/index.js +116 -60
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +63 -99
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -327
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -301
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/index.js +0 -15
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/index.js +0 -459
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/mediaQualityMetrics/config.js +0 -382
- package/src/meeting/effectsState.js +0 -205
- package/src/meeting/index.js +0 -6284
- package/src/meeting/muteState.js +0 -318
- package/src/meeting/util.js +0 -506
- package/src/meeting-info/index.js +0 -131
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/member/util.js +0 -254
- package/src/members/request.js +0 -131
- package/src/members/util.js +0 -258
- package/src/metrics/config.js +0 -324
- package/src/metrics/index.js +0 -530
- package/src/multistream/multistreamMedia.ts +0 -92
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/global.js +0 -133
- package/src/statsAnalyzer/index.js +0 -1006
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/meeting/effectsState.js +0 -291
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
|
@@ -1,52 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
14
|
-
|
|
15
10
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
16
|
-
|
|
17
11
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
18
|
-
|
|
19
12
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
20
|
-
|
|
21
13
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
22
|
-
|
|
23
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
24
|
-
|
|
25
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
26
|
-
|
|
15
|
+
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
27
16
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
28
|
-
|
|
29
17
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
30
|
-
|
|
31
18
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
32
|
-
|
|
33
19
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
34
|
-
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
35
21
|
var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
|
|
36
|
-
|
|
37
22
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
38
|
-
|
|
39
23
|
var _constants = require("../constants");
|
|
40
|
-
|
|
41
24
|
var _request = _interopRequireDefault(require("./request"));
|
|
42
|
-
|
|
43
25
|
var DEFAULT_TIMEOUT = 3000;
|
|
44
26
|
var VIDEO_MESH_TIMEOUT = 1000;
|
|
45
27
|
/**
|
|
46
28
|
* @class Reachability
|
|
47
29
|
* @export
|
|
48
30
|
*/
|
|
49
|
-
|
|
50
31
|
var Reachability = /*#__PURE__*/function () {
|
|
51
32
|
/**
|
|
52
33
|
* Creates an instance of Reachability.
|
|
@@ -55,7 +36,12 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
55
36
|
*/
|
|
56
37
|
function Reachability(webex) {
|
|
57
38
|
(0, _classCallCheck2.default)(this, Reachability);
|
|
39
|
+
(0, _defineProperty2.default)(this, "namespace", _constants.REACHABILITY.namespace);
|
|
40
|
+
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
41
|
+
(0, _defineProperty2.default)(this, "reachabilityRequest", void 0);
|
|
42
|
+
(0, _defineProperty2.default)(this, "clusterLatencyResults", void 0);
|
|
58
43
|
this.webex = webex;
|
|
44
|
+
|
|
59
45
|
/**
|
|
60
46
|
* internal request object for the server
|
|
61
47
|
* @instance
|
|
@@ -63,8 +49,8 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
63
49
|
* @private
|
|
64
50
|
* @memberof Reachability
|
|
65
51
|
*/
|
|
66
|
-
|
|
67
52
|
this.reachabilityRequest = new _request.default(this.webex);
|
|
53
|
+
|
|
68
54
|
/**
|
|
69
55
|
* internal object of clusters latency results
|
|
70
56
|
* @instance
|
|
@@ -72,9 +58,9 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
72
58
|
* @private
|
|
73
59
|
* @memberof Reachability
|
|
74
60
|
*/
|
|
75
|
-
|
|
76
61
|
this.clusterLatencyResults = {};
|
|
77
62
|
}
|
|
63
|
+
|
|
78
64
|
/**
|
|
79
65
|
* fetches reachability data
|
|
80
66
|
* @returns {Object} reachability data
|
|
@@ -82,73 +68,57 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
82
68
|
* @async
|
|
83
69
|
* @memberof Reachability
|
|
84
70
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
71
|
(0, _createClass2.default)(Reachability, [{
|
|
88
72
|
key: "gatherReachability",
|
|
89
73
|
value: function () {
|
|
90
74
|
var _gatherReachability = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
var clusters, results;
|
|
75
|
+
var _yield$this$reachabil, clusters, joinCookie, results;
|
|
94
76
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
95
|
-
while (1) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
_context.t0 = _context["catch"](7);
|
|
135
|
-
|
|
136
|
-
_loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
|
|
137
|
-
|
|
138
|
-
return _context.abrupt("return", {});
|
|
139
|
-
|
|
140
|
-
case 23:
|
|
141
|
-
case "end":
|
|
142
|
-
return _context.stop();
|
|
143
|
-
}
|
|
77
|
+
while (1) switch (_context.prev = _context.next) {
|
|
78
|
+
case 0:
|
|
79
|
+
this.setup();
|
|
80
|
+
|
|
81
|
+
// Remove stored reachability results to ensure no stale data
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
_context.next = 3;
|
|
84
|
+
return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageResult);
|
|
85
|
+
case 3:
|
|
86
|
+
_context.next = 5;
|
|
87
|
+
return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageJoinCookie);
|
|
88
|
+
case 5:
|
|
89
|
+
_context.prev = 5;
|
|
90
|
+
_context.next = 8;
|
|
91
|
+
return this.reachabilityRequest.getClusters();
|
|
92
|
+
case 8:
|
|
93
|
+
_yield$this$reachabil = _context.sent;
|
|
94
|
+
clusters = _yield$this$reachabil.clusters;
|
|
95
|
+
joinCookie = _yield$this$reachabil.joinCookie;
|
|
96
|
+
_context.next = 13;
|
|
97
|
+
return this.performReachabilityCheck(clusters);
|
|
98
|
+
case 13:
|
|
99
|
+
results = _context.sent;
|
|
100
|
+
_context.next = 16;
|
|
101
|
+
return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageResult, (0, _stringify.default)(results));
|
|
102
|
+
case 16:
|
|
103
|
+
_context.next = 18;
|
|
104
|
+
return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageJoinCookie, (0, _stringify.default)(joinCookie));
|
|
105
|
+
case 18:
|
|
106
|
+
_loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
|
|
107
|
+
return _context.abrupt("return", results);
|
|
108
|
+
case 22:
|
|
109
|
+
_context.prev = 22;
|
|
110
|
+
_context.t0 = _context["catch"](5);
|
|
111
|
+
_loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
|
|
112
|
+
return _context.abrupt("return", {});
|
|
113
|
+
case 26:
|
|
114
|
+
case "end":
|
|
115
|
+
return _context.stop();
|
|
144
116
|
}
|
|
145
|
-
}, _callee, this, [[
|
|
117
|
+
}, _callee, this, [[5, 22]]);
|
|
146
118
|
}));
|
|
147
|
-
|
|
148
119
|
function gatherReachability() {
|
|
149
120
|
return _gatherReachability.apply(this, arguments);
|
|
150
121
|
}
|
|
151
|
-
|
|
152
122
|
return gatherReachability;
|
|
153
123
|
}()
|
|
154
124
|
/**
|
|
@@ -157,28 +127,42 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
157
127
|
* @public
|
|
158
128
|
* @memberof Reachability
|
|
159
129
|
*/
|
|
160
|
-
|
|
161
130
|
}, {
|
|
162
131
|
key: "isAnyClusterReachable",
|
|
163
|
-
value: function
|
|
164
|
-
var
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
132
|
+
value: function () {
|
|
133
|
+
var _isAnyClusterReachable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
134
|
+
var reachable, reachabilityData, reachabilityResults;
|
|
135
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
136
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
reachable = false; // @ts-ignore
|
|
139
|
+
_context2.next = 3;
|
|
140
|
+
return this.webex.boundedStorage.get(this.namespace, _constants.REACHABILITY.localStorageResult).catch(function () {});
|
|
141
|
+
case 3:
|
|
142
|
+
reachabilityData = _context2.sent;
|
|
143
|
+
if (reachabilityData) {
|
|
144
|
+
try {
|
|
145
|
+
reachabilityResults = JSON.parse(reachabilityData);
|
|
146
|
+
reachable = (0, _values.default)(reachabilityResults).some(function (result) {
|
|
147
|
+
var _result$udp, _result$tcp;
|
|
148
|
+
return ((_result$udp = result.udp) === null || _result$udp === void 0 ? void 0 : _result$udp.reachable) === 'true' || ((_result$tcp = result.tcp) === null || _result$tcp === void 0 ? void 0 : _result$tcp.reachable) === 'true';
|
|
149
|
+
});
|
|
150
|
+
} catch (e) {
|
|
151
|
+
_loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return _context2.abrupt("return", reachable);
|
|
155
|
+
case 6:
|
|
156
|
+
case "end":
|
|
157
|
+
return _context2.stop();
|
|
158
|
+
}
|
|
159
|
+
}, _callee2, this);
|
|
160
|
+
}));
|
|
161
|
+
function isAnyClusterReachable() {
|
|
162
|
+
return _isAnyClusterReachable.apply(this, arguments);
|
|
178
163
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
164
|
+
return isAnyClusterReachable;
|
|
165
|
+
}()
|
|
182
166
|
/**
|
|
183
167
|
* Generate peerConnection config settings
|
|
184
168
|
* @param {object} cluster
|
|
@@ -186,7 +170,6 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
186
170
|
* @private
|
|
187
171
|
* @memberof Reachability
|
|
188
172
|
*/
|
|
189
|
-
|
|
190
173
|
}, {
|
|
191
174
|
key: "buildPeerConnectionConfig",
|
|
192
175
|
value: function buildPeerConnectionConfig(cluster) {
|
|
@@ -203,6 +186,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
203
186
|
iceTransportPolicy: 'all'
|
|
204
187
|
};
|
|
205
188
|
}
|
|
189
|
+
|
|
206
190
|
/**
|
|
207
191
|
* Creates an RTCPeerConnection
|
|
208
192
|
* @param {object} cluster
|
|
@@ -210,23 +194,23 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
210
194
|
* @private
|
|
211
195
|
* @memberof Reachability
|
|
212
196
|
*/
|
|
213
|
-
|
|
214
197
|
}, {
|
|
215
198
|
key: "createPeerConnection",
|
|
216
199
|
value: function createPeerConnection(cluster) {
|
|
217
200
|
var key = cluster.key,
|
|
218
|
-
|
|
219
|
-
|
|
201
|
+
config = cluster.config;
|
|
220
202
|
try {
|
|
221
203
|
var peerConnection = new window.RTCPeerConnection(config);
|
|
204
|
+
|
|
205
|
+
// @ts-ignore
|
|
222
206
|
peerConnection.key = key;
|
|
223
207
|
return peerConnection;
|
|
224
208
|
} catch (peerConnectionError) {
|
|
225
209
|
_loggerProxy.default.logger.log("Reachability:index#createPeerConnection --> Error creating peerConnection: ".concat(peerConnectionError));
|
|
226
|
-
|
|
227
210
|
return null;
|
|
228
211
|
}
|
|
229
212
|
}
|
|
213
|
+
|
|
230
214
|
/**
|
|
231
215
|
* Gets total elapsed time
|
|
232
216
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -234,7 +218,6 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
234
218
|
* @private
|
|
235
219
|
* @memberof Reachability
|
|
236
220
|
*/
|
|
237
|
-
|
|
238
221
|
}, {
|
|
239
222
|
key: "getElapsedTime",
|
|
240
223
|
value: function getElapsedTime(peerConnection) {
|
|
@@ -242,6 +225,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
242
225
|
delete peerConnection.begin;
|
|
243
226
|
return (0, _now.default)() - startTime;
|
|
244
227
|
}
|
|
228
|
+
|
|
245
229
|
/**
|
|
246
230
|
* creates offer and generates localSDP
|
|
247
231
|
* @param {object} clusterList cluster List
|
|
@@ -249,65 +233,59 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
249
233
|
* @private
|
|
250
234
|
* @memberof Reachability
|
|
251
235
|
*/
|
|
252
|
-
|
|
253
236
|
}, {
|
|
254
237
|
key: "getLocalSDPForClusters",
|
|
255
238
|
value: function getLocalSDPForClusters(clusterList) {
|
|
256
239
|
var _this = this;
|
|
257
|
-
|
|
258
240
|
var clusters = (0, _toConsumableArray2.default)((0, _keys.default)(clusterList));
|
|
259
241
|
clusters = clusters.map( /*#__PURE__*/function () {
|
|
260
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
242
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(key) {
|
|
261
243
|
var cluster, config, peerConnection, description;
|
|
262
|
-
return _regenerator.default.wrap(function
|
|
263
|
-
while (1) {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
case "end":
|
|
287
|
-
return _context2.stop();
|
|
288
|
-
}
|
|
244
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
245
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
246
|
+
case 0:
|
|
247
|
+
cluster = clusterList[key];
|
|
248
|
+
config = _this.buildPeerConnectionConfig(cluster);
|
|
249
|
+
peerConnection = _this.createPeerConnection({
|
|
250
|
+
key: key,
|
|
251
|
+
config: config
|
|
252
|
+
});
|
|
253
|
+
_context3.next = 5;
|
|
254
|
+
return peerConnection.createOffer({
|
|
255
|
+
offerToReceiveAudio: true
|
|
256
|
+
});
|
|
257
|
+
case 5:
|
|
258
|
+
description = _context3.sent;
|
|
259
|
+
// @ts-ignore
|
|
260
|
+
peerConnection.begin = (0, _now.default)();
|
|
261
|
+
peerConnection.setLocalDescription(description);
|
|
262
|
+
return _context3.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT).catch(function (iceGatheringStateError) {
|
|
263
|
+
_loggerProxy.default.logger.log("Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ".concat(iceGatheringStateError));
|
|
264
|
+
}));
|
|
265
|
+
case 9:
|
|
266
|
+
case "end":
|
|
267
|
+
return _context3.stop();
|
|
289
268
|
}
|
|
290
|
-
},
|
|
269
|
+
}, _callee3);
|
|
291
270
|
}));
|
|
292
|
-
|
|
293
271
|
return function (_x) {
|
|
294
272
|
return _ref.apply(this, arguments);
|
|
295
273
|
};
|
|
296
274
|
}());
|
|
297
275
|
return _promise.default.all(clusters).then(this.parseIceResultsToReachabilityResults).then(function (reachabilityLatencyResults) {
|
|
298
|
-
_this.logUnreachableClusters();
|
|
299
|
-
|
|
276
|
+
_this.logUnreachableClusters();
|
|
300
277
|
|
|
278
|
+
// return results
|
|
301
279
|
return reachabilityLatencyResults;
|
|
302
280
|
});
|
|
303
281
|
}
|
|
282
|
+
|
|
304
283
|
/**
|
|
305
284
|
* Get list of all unreachable clusters
|
|
306
285
|
* @returns {array} Unreachable clusters
|
|
307
286
|
* @private
|
|
308
287
|
* @memberof Reachability
|
|
309
288
|
*/
|
|
310
|
-
|
|
311
289
|
}, {
|
|
312
290
|
key: "getUnreachablClusters",
|
|
313
291
|
value: function getUnreachablClusters() {
|
|
@@ -315,13 +293,13 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
315
293
|
var clusters = this.clusterLatencyResults;
|
|
316
294
|
(0, _keys.default)(clusters).forEach(function (key) {
|
|
317
295
|
var cluster = clusters[key];
|
|
318
|
-
|
|
319
296
|
if (cluster.unreachable && !cluster.reachable) {
|
|
320
297
|
unreachableList.push(key);
|
|
321
298
|
}
|
|
322
299
|
});
|
|
323
300
|
return unreachableList;
|
|
324
301
|
}
|
|
302
|
+
|
|
325
303
|
/**
|
|
326
304
|
* Attach an event handler for the icegatheringstatechange
|
|
327
305
|
* event and measure latency.
|
|
@@ -330,24 +308,23 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
330
308
|
* @private
|
|
331
309
|
* @memberof Reachability
|
|
332
310
|
*/
|
|
333
|
-
|
|
334
311
|
}, {
|
|
335
312
|
key: "handleIceGatheringStateChange",
|
|
336
313
|
value: function handleIceGatheringStateChange(peerConnection) {
|
|
337
314
|
var _this2 = this;
|
|
338
|
-
|
|
339
315
|
peerConnection.onicegatheringstatechange = function () {
|
|
340
316
|
var COMPLETE = _constants.ICE_GATHERING_STATE.COMPLETE;
|
|
341
|
-
|
|
342
317
|
if (peerConnection.iceConnectionState === COMPLETE) {
|
|
343
318
|
var elapsed = _this2.getElapsedTime(peerConnection);
|
|
344
319
|
|
|
345
|
-
|
|
346
|
-
|
|
320
|
+
// @ts-ignore
|
|
321
|
+
_loggerProxy.default.logger.log( // @ts-ignore
|
|
322
|
+
"Reachability:index#onIceGatheringStateChange --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
|
|
347
323
|
_this2.setLatencyAndClose(peerConnection, elapsed);
|
|
348
324
|
}
|
|
349
325
|
};
|
|
350
326
|
}
|
|
327
|
+
|
|
351
328
|
/**
|
|
352
329
|
* Attach an event handler for the icecandidate
|
|
353
330
|
* event and measure latency.
|
|
@@ -356,24 +333,23 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
356
333
|
* @private
|
|
357
334
|
* @memberof Reachability
|
|
358
335
|
*/
|
|
359
|
-
|
|
360
336
|
}, {
|
|
361
337
|
key: "handleOnIceCandidate",
|
|
362
338
|
value: function handleOnIceCandidate(peerConnection) {
|
|
363
339
|
var _this3 = this;
|
|
364
|
-
|
|
365
340
|
peerConnection.onicecandidate = function (e) {
|
|
366
341
|
var SERVER_REFLEXIVE = 'srflx';
|
|
367
|
-
|
|
368
342
|
if (e.candidate && String(e.candidate.type).toLowerCase() === SERVER_REFLEXIVE) {
|
|
369
343
|
var elapsed = _this3.getElapsedTime(peerConnection);
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
344
|
+
_loggerProxy.default.logger.log( // @ts-ignore
|
|
345
|
+
"Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
|
|
346
|
+
// order is important
|
|
347
|
+
_this3.addPublicIP(peerConnection, e.candidate.address);
|
|
373
348
|
_this3.setLatencyAndClose(peerConnection, elapsed);
|
|
374
349
|
}
|
|
375
350
|
};
|
|
376
351
|
}
|
|
352
|
+
|
|
377
353
|
/**
|
|
378
354
|
* An event handler on an RTCPeerConnection when the state of the ICE
|
|
379
355
|
* candidate gathering process changes. Used to measure connection
|
|
@@ -383,61 +359,63 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
383
359
|
* @param {number} timeout
|
|
384
360
|
* @returns {Promise}
|
|
385
361
|
*/
|
|
386
|
-
|
|
387
362
|
}, {
|
|
388
363
|
key: "iceGatheringState",
|
|
389
364
|
value: function iceGatheringState(peerConnection, timeout) {
|
|
390
365
|
var _this4 = this;
|
|
391
|
-
|
|
392
366
|
var ELAPSED = 'elapsed';
|
|
393
367
|
return new _promise.default(function (resolve) {
|
|
394
368
|
var peerConnectionProxy = new window.Proxy(peerConnection, {
|
|
369
|
+
// eslint-disable-next-line require-jsdoc
|
|
395
370
|
get: function get(target, property) {
|
|
396
371
|
var targetMember = target[property];
|
|
397
|
-
|
|
398
372
|
if (typeof targetMember === 'function') {
|
|
399
373
|
return targetMember.bind(target);
|
|
400
374
|
}
|
|
401
|
-
|
|
402
375
|
return targetMember;
|
|
403
376
|
},
|
|
404
377
|
set: function set(target, property, value) {
|
|
405
378
|
// only intercept elapsed property
|
|
406
379
|
if (property === ELAPSED) {
|
|
380
|
+
// @ts-ignore
|
|
407
381
|
resolve({
|
|
408
382
|
clusterId: peerConnection.key,
|
|
383
|
+
publicIPs: target.publicIPs,
|
|
409
384
|
elapsed: value
|
|
410
385
|
});
|
|
411
386
|
return true;
|
|
412
|
-
}
|
|
413
|
-
|
|
387
|
+
}
|
|
414
388
|
|
|
389
|
+
// pass thru
|
|
415
390
|
return window.Reflect.set(target, property, value);
|
|
416
391
|
}
|
|
417
|
-
});
|
|
418
|
-
// won't be coupled to our promise implementation
|
|
392
|
+
});
|
|
419
393
|
|
|
394
|
+
// Using peerConnection proxy so handle functions below
|
|
395
|
+
// won't be coupled to our promise implementation
|
|
420
396
|
_this4.handleIceGatheringStateChange(peerConnectionProxy);
|
|
397
|
+
_this4.handleOnIceCandidate(peerConnectionProxy);
|
|
421
398
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
399
|
+
// Set maximum timeout
|
|
425
400
|
window.setTimeout(function () {
|
|
426
|
-
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
401
|
+
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
427
402
|
|
|
403
|
+
// Close any open peerConnections
|
|
428
404
|
if (peerConnectionProxy.connectionState !== CLOSED) {
|
|
405
|
+
// order is important
|
|
406
|
+
_this4.addPublicIP(peerConnectionProxy, null);
|
|
429
407
|
_this4.setLatencyAndClose(peerConnectionProxy, null);
|
|
430
408
|
}
|
|
431
409
|
}, timeout);
|
|
432
410
|
});
|
|
433
411
|
}
|
|
412
|
+
|
|
434
413
|
/**
|
|
435
414
|
* Make a log of unreachable clusters.
|
|
436
415
|
* @returns {undefined}
|
|
437
416
|
* @private
|
|
438
417
|
* @memberof Reachability
|
|
439
418
|
*/
|
|
440
|
-
|
|
441
419
|
}, {
|
|
442
420
|
key: "logUnreachableClusters",
|
|
443
421
|
value: function logUnreachableClusters() {
|
|
@@ -446,34 +424,38 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
446
424
|
_loggerProxy.default.logger.log("Reachability:index#logUnreachableClusters --> No ice candidate for ".concat(cluster, "."));
|
|
447
425
|
});
|
|
448
426
|
}
|
|
427
|
+
|
|
449
428
|
/**
|
|
450
429
|
* Calculates time to establish connection
|
|
451
|
-
* @param {
|
|
430
|
+
* @param {Array<ICECandidateResult>} iceResults iceResults
|
|
452
431
|
* @returns {object} reachabilityMap
|
|
453
|
-
* @
|
|
432
|
+
* @protected
|
|
454
433
|
* @memberof Reachability
|
|
455
434
|
*/
|
|
456
|
-
|
|
457
435
|
}, {
|
|
458
436
|
key: "parseIceResultsToReachabilityResults",
|
|
459
437
|
value: function parseIceResultsToReachabilityResults(iceResults) {
|
|
460
438
|
var reachabilityMap = {};
|
|
461
439
|
iceResults.forEach(function (_ref2) {
|
|
462
440
|
var clusterId = _ref2.clusterId,
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
if (elapsed
|
|
467
|
-
latencyResult
|
|
441
|
+
elapsed = _ref2.elapsed,
|
|
442
|
+
publicIPs = _ref2.publicIPs;
|
|
443
|
+
var latencyResult = {};
|
|
444
|
+
if (!elapsed) {
|
|
445
|
+
(0, _assign.default)(latencyResult, {
|
|
468
446
|
reachable: 'false'
|
|
469
|
-
};
|
|
447
|
+
});
|
|
470
448
|
} else {
|
|
471
|
-
latencyResult
|
|
449
|
+
(0, _assign.default)(latencyResult, {
|
|
472
450
|
reachable: 'true',
|
|
473
451
|
latencyInMilliseconds: elapsed.toString()
|
|
474
|
-
};
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
if (publicIPs) {
|
|
455
|
+
(0, _assign.default)(latencyResult, {
|
|
456
|
+
clientMediaIPs: publicIPs
|
|
457
|
+
});
|
|
475
458
|
}
|
|
476
|
-
|
|
477
459
|
reachabilityMap[clusterId] = {
|
|
478
460
|
udp: latencyResult,
|
|
479
461
|
tcp: latencyResult
|
|
@@ -481,6 +463,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
481
463
|
});
|
|
482
464
|
return reachabilityMap;
|
|
483
465
|
}
|
|
466
|
+
|
|
484
467
|
/**
|
|
485
468
|
* fetches reachability data
|
|
486
469
|
* @param {object} clusterList
|
|
@@ -488,33 +471,54 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
488
471
|
* @private
|
|
489
472
|
* @memberof Reachability
|
|
490
473
|
*/
|
|
491
|
-
|
|
492
474
|
}, {
|
|
493
475
|
key: "performReachabilityCheck",
|
|
494
476
|
value: function performReachabilityCheck(clusterList) {
|
|
495
477
|
var _this5 = this;
|
|
496
|
-
|
|
497
478
|
if (!clusterList || !(0, _keys.default)(clusterList).length) {
|
|
498
479
|
return _promise.default.resolve({});
|
|
499
480
|
}
|
|
500
|
-
|
|
501
481
|
return new _promise.default(function (resolve) {
|
|
502
482
|
_this5.getLocalSDPForClusters(clusterList).then(function (localSDPData) {
|
|
503
483
|
if (!localSDPData || !(0, _keys.default)(localSDPData).length) {
|
|
504
484
|
// TODO: handle the error condition properly and try retry
|
|
505
485
|
_loggerProxy.default.logger.log('Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning');
|
|
506
|
-
|
|
507
486
|
resolve({});
|
|
508
487
|
} else {
|
|
509
488
|
resolve(localSDPData);
|
|
510
489
|
}
|
|
511
490
|
}).catch(function (error) {
|
|
512
491
|
_loggerProxy.default.logger.error("Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ".concat(error));
|
|
513
|
-
|
|
514
492
|
resolve({});
|
|
515
493
|
});
|
|
516
494
|
});
|
|
517
495
|
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Adds public IP (client media IPs)
|
|
499
|
+
* @param {RTCPeerConnection} peerConnection
|
|
500
|
+
* @param {string} publicIP
|
|
501
|
+
* @returns {void}
|
|
502
|
+
*/
|
|
503
|
+
}, {
|
|
504
|
+
key: "addPublicIP",
|
|
505
|
+
value: function addPublicIP(peerConnection, publicIP) {
|
|
506
|
+
var modifiedPeerConnection = peerConnection;
|
|
507
|
+
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
508
|
+
if (modifiedPeerConnection.connectionState === CLOSED) {
|
|
509
|
+
_loggerProxy.default.logger.log("Reachability:index#addPublicIP --> Attempting to set publicIP of ".concat(publicIP, " on closed peerConnection."));
|
|
510
|
+
}
|
|
511
|
+
if (publicIP) {
|
|
512
|
+
if (modifiedPeerConnection.publicIPs) {
|
|
513
|
+
modifiedPeerConnection.publicIPs.push(publicIP);
|
|
514
|
+
} else {
|
|
515
|
+
modifiedPeerConnection.publicIPs = [publicIP];
|
|
516
|
+
}
|
|
517
|
+
} else {
|
|
518
|
+
modifiedPeerConnection.publicIPs = null;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
518
522
|
/**
|
|
519
523
|
* Records latency and closes the peerConnection
|
|
520
524
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -523,40 +527,38 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
523
527
|
* @private
|
|
524
528
|
* @memberof Reachability
|
|
525
529
|
*/
|
|
526
|
-
|
|
527
530
|
}, {
|
|
528
531
|
key: "setLatencyAndClose",
|
|
529
532
|
value: function setLatencyAndClose(peerConnection, elapsed) {
|
|
530
533
|
var _intialState;
|
|
531
|
-
|
|
532
534
|
var REACHABLE = 'reachable';
|
|
533
535
|
var UNREACHABLE = 'unreachable';
|
|
534
536
|
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
537
|
+
// @ts-ignore
|
|
535
538
|
var key = peerConnection.key;
|
|
536
539
|
var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
|
|
537
540
|
var intialState = (_intialState = {}, (0, _defineProperty2.default)(_intialState, REACHABLE, 0), (0, _defineProperty2.default)(_intialState, UNREACHABLE, 0), _intialState);
|
|
538
|
-
|
|
539
541
|
if (peerConnection.connectionState === CLOSED) {
|
|
540
542
|
_loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
|
|
541
|
-
|
|
542
543
|
return;
|
|
543
544
|
}
|
|
544
|
-
|
|
545
545
|
this.clusterLatencyResults[key] = this.clusterLatencyResults[key] || intialState;
|
|
546
|
-
this.clusterLatencyResults[key][resultKey] += 1;
|
|
547
|
-
// an event other than onIceCandidate
|
|
546
|
+
this.clusterLatencyResults[key][resultKey] += 1;
|
|
548
547
|
|
|
548
|
+
// Set to null in case this fired from
|
|
549
|
+
// an event other than onIceCandidate
|
|
549
550
|
peerConnection.onicecandidate = null;
|
|
550
551
|
peerConnection.close();
|
|
552
|
+
// @ts-ignore
|
|
551
553
|
peerConnection.elapsed = elapsed;
|
|
552
554
|
}
|
|
555
|
+
|
|
553
556
|
/**
|
|
554
557
|
* utility function
|
|
555
558
|
* @returns {undefined}
|
|
556
559
|
* @private
|
|
557
560
|
* @memberof Reachability
|
|
558
561
|
*/
|
|
559
|
-
|
|
560
562
|
}, {
|
|
561
563
|
key: "setup",
|
|
562
564
|
value: function setup() {
|
|
@@ -565,6 +567,5 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
565
567
|
}]);
|
|
566
568
|
return Reachability;
|
|
567
569
|
}();
|
|
568
|
-
|
|
569
570
|
exports.default = Reachability;
|
|
570
571
|
//# sourceMappingURL=index.js.map
|