@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/breakouts/breakout.js +137 -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/index.js +546 -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 +48 -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 +6 -41
- 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 +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +109 -49
- 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 +15 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +203 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/util.js +28 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +11 -18
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +12 -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 +186 -192
- 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 +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +92 -118
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +34 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +66 -153
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +83 -117
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +13 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2141 -2210
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +59 -82
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +308 -264
- 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 +45 -217
- 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 +14 -32
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +193 -268
- 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 +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +5 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +490 -560
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +24 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +116 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +78 -86
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +31 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +3 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +95 -200
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +16 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +1 -13
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -6
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +54 -156
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +74 -52
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +48 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +60 -82
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +60 -76
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +360 -413
- 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 +147 -183
- 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 +322 -456
- 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 +48 -70
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +143 -131
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +91 -98
- 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 +361 -449
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +137 -81
- 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/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/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +8 -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 +77 -0
- package/dist/types/constants.d.ts +916 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +5 -0
- package/dist/types/controls-options-manager/index.d.ts +120 -0
- package/dist/types/controls-options-manager/util.d.ts +7 -0
- package/dist/types/index.d.ts +6 -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 +269 -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 +32 -0
- package/dist/types/media/properties.d.ts +108 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +83 -0
- package/dist/types/meeting/index.d.ts +1699 -0
- package/dist/types/meeting/muteState.d.ts +116 -0
- package/dist/types/meeting/request.d.ts +271 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +2 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -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 +23 -0
- package/dist/types/meetings/index.d.ts +297 -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 +146 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +24 -0
- package/dist/types/members/index.d.ts +320 -0
- package/dist/types/members/request.d.ts +50 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/config.d.ts +169 -0
- package/dist/types/metrics/constants.d.ts +53 -0
- package/dist/types/metrics/index.d.ts +152 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +51 -0
- package/dist/types/multistream/receiveSlot.d.ts +64 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +46 -0
- package/dist/types/multistream/remoteMedia.d.ts +100 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +241 -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 +140 -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 +117 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +38 -0
- package/dist/types/roap/turnDiscovery.d.ts +74 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +195 -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 +27 -21
- package/src/breakouts/README.md +199 -0
- package/src/breakouts/breakout.ts +130 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/index.ts +504 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +39 -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} +8 -7
- 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 +1 -2
- package/src/{config.js → config.ts} +17 -12
- package/src/constants.ts +62 -5
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +6 -0
- package/src/controls-options-manager/index.ts +183 -0
- package/src/controls-options-manager/util.ts +20 -0
- package/src/index.js +4 -1
- package/src/locus-info/controlsUtils.ts +114 -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} +150 -66
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
- package/src/locus-info/{parser.js → parser.ts} +67 -79
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
- package/src/media/{index.js → index.ts} +182 -173
- package/src/media/{properties.js → properties.ts} +60 -37
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/config.ts +384 -0
- package/src/meeting/in-meeting-actions.ts +31 -3
- package/src/meeting/{index.js → index.ts} +2512 -1579
- package/src/meeting/{muteState.js → muteState.ts} +95 -49
- package/src/meeting/{request.js → request.ts} +326 -142
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/{util.js → util.ts} +117 -119
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/{index.js → index.ts} +42 -36
- package/src/meeting-info/meeting-info-v2.ts +273 -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} +65 -58
- package/src/meetings/{collection.js → collection.ts} +6 -3
- package/src/meetings/index.ts +1159 -0
- package/src/meetings/{request.js → request.ts} +32 -25
- package/src/meetings/{util.js → util.ts} +58 -32
- package/src/member/{index.js → index.ts} +102 -56
- package/src/member/{util.js → util.ts} +52 -25
- package/src/members/{collection.js → collection.ts} +2 -2
- package/src/members/{index.js → index.ts} +221 -142
- package/src/members/{request.js → request.ts} +60 -16
- package/src/members/{util.js → util.ts} +50 -48
- package/src/metrics/{config.js → config.ts} +253 -92
- package/src/metrics/{constants.js → constants.ts} +0 -6
- package/src/metrics/{index.js → index.ts} +105 -94
- package/src/multistream/mediaRequestManager.ts +101 -39
- package/src/multistream/receiveSlot.ts +62 -26
- package/src/multistream/receiveSlotManager.ts +35 -21
- package/src/multistream/remoteMedia.ts +38 -5
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +152 -36
- 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} +109 -85
- 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} +196 -103
- 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.js → index.ts} +77 -60
- package/src/roap/request.ts +172 -0
- package/src/roap/turnDiscovery.ts +81 -41
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1234 -0
- package/src/statsAnalyzer/mqaUtil.ts +293 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/test/integration/spec/converged-space-meetings.js +176 -0
- package/test/integration/spec/journey.js +665 -464
- package/test/integration/spec/space-meeting.js +320 -206
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/breakouts/breakout.ts +147 -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/index.ts +707 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +47 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/controls-options-manager/index.js +124 -0
- package/test/unit/spec/controls-options-manager/util.js +66 -0
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +25 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +104 -2
- 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/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +97 -103
- package/test/unit/spec/locus-info/selfUtils.js +105 -12
- package/test/unit/spec/media/index.ts +39 -53
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +13 -2
- package/test/unit/spec/meeting/index.js +2253 -811
- package/test/unit/spec/meeting/muteState.js +74 -55
- package/test/unit/spec/meeting/request.js +141 -43
- package/test/unit/spec/meeting/utils.js +106 -171
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- 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 +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +439 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +31 -7
- package/test/unit/spec/members/index.js +104 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/multistream/mediaRequestManager.ts +318 -64
- package/test/unit/spec/multistream/receiveSlot.ts +68 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +41 -13
- package/test/unit/spec/multistream/remoteMedia.ts +38 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +412 -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 +70 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +58 -30
- 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 +12 -8
- package/test/unit/spec/roap/request.ts +217 -0
- package/test/unit/spec/roap/turnDiscovery.ts +72 -49
- package/test/unit/spec/stats-analyzer/index.js +86 -57
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/testUtils.js +98 -77
- 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/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/locus-info/controlsUtils.js +0 -102
- 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-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- 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
|
-
|
|
27
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
28
|
-
|
|
29
16
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
30
|
-
|
|
31
17
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
32
|
-
|
|
33
18
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
34
|
-
|
|
19
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
35
20
|
var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
|
|
36
|
-
|
|
37
21
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
38
|
-
|
|
39
22
|
var _constants = require("../constants");
|
|
40
|
-
|
|
41
23
|
var _request = _interopRequireDefault(require("./request"));
|
|
42
|
-
|
|
43
24
|
var DEFAULT_TIMEOUT = 3000;
|
|
44
25
|
var VIDEO_MESH_TIMEOUT = 1000;
|
|
26
|
+
|
|
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,21 @@ 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);
|
|
373
346
|
_this3.setLatencyAndClose(peerConnection, elapsed);
|
|
374
347
|
}
|
|
375
348
|
};
|
|
376
349
|
}
|
|
350
|
+
|
|
377
351
|
/**
|
|
378
352
|
* An event handler on an RTCPeerConnection when the state of the ICE
|
|
379
353
|
* candidate gathering process changes. Used to measure connection
|
|
@@ -383,61 +357,59 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
383
357
|
* @param {number} timeout
|
|
384
358
|
* @returns {Promise}
|
|
385
359
|
*/
|
|
386
|
-
|
|
387
360
|
}, {
|
|
388
361
|
key: "iceGatheringState",
|
|
389
362
|
value: function iceGatheringState(peerConnection, timeout) {
|
|
390
363
|
var _this4 = this;
|
|
391
|
-
|
|
392
364
|
var ELAPSED = 'elapsed';
|
|
393
365
|
return new _promise.default(function (resolve) {
|
|
394
366
|
var peerConnectionProxy = new window.Proxy(peerConnection, {
|
|
395
367
|
get: function get(target, property) {
|
|
396
368
|
var targetMember = target[property];
|
|
397
|
-
|
|
398
369
|
if (typeof targetMember === 'function') {
|
|
399
370
|
return targetMember.bind(target);
|
|
400
371
|
}
|
|
401
|
-
|
|
402
372
|
return targetMember;
|
|
403
373
|
},
|
|
404
374
|
set: function set(target, property, value) {
|
|
405
375
|
// only intercept elapsed property
|
|
406
376
|
if (property === ELAPSED) {
|
|
377
|
+
// @ts-ignore
|
|
407
378
|
resolve({
|
|
408
379
|
clusterId: peerConnection.key,
|
|
409
380
|
elapsed: value
|
|
410
381
|
});
|
|
411
382
|
return true;
|
|
412
|
-
}
|
|
413
|
-
|
|
383
|
+
}
|
|
414
384
|
|
|
385
|
+
// pass thru
|
|
415
386
|
return window.Reflect.set(target, property, value);
|
|
416
387
|
}
|
|
417
|
-
});
|
|
418
|
-
// won't be coupled to our promise implementation
|
|
388
|
+
});
|
|
419
389
|
|
|
390
|
+
// Using peerConnection proxy so handle functions below
|
|
391
|
+
// won't be coupled to our promise implementation
|
|
420
392
|
_this4.handleIceGatheringStateChange(peerConnectionProxy);
|
|
393
|
+
_this4.handleOnIceCandidate(peerConnectionProxy);
|
|
421
394
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
395
|
+
// Set maximum timeout
|
|
425
396
|
window.setTimeout(function () {
|
|
426
|
-
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
397
|
+
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
427
398
|
|
|
399
|
+
// Close any open peerConnections
|
|
428
400
|
if (peerConnectionProxy.connectionState !== CLOSED) {
|
|
429
401
|
_this4.setLatencyAndClose(peerConnectionProxy, null);
|
|
430
402
|
}
|
|
431
403
|
}, timeout);
|
|
432
404
|
});
|
|
433
405
|
}
|
|
406
|
+
|
|
434
407
|
/**
|
|
435
408
|
* Make a log of unreachable clusters.
|
|
436
409
|
* @returns {undefined}
|
|
437
410
|
* @private
|
|
438
411
|
* @memberof Reachability
|
|
439
412
|
*/
|
|
440
|
-
|
|
441
413
|
}, {
|
|
442
414
|
key: "logUnreachableClusters",
|
|
443
415
|
value: function logUnreachableClusters() {
|
|
@@ -446,6 +418,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
446
418
|
_loggerProxy.default.logger.log("Reachability:index#logUnreachableClusters --> No ice candidate for ".concat(cluster, "."));
|
|
447
419
|
});
|
|
448
420
|
}
|
|
421
|
+
|
|
449
422
|
/**
|
|
450
423
|
* Calculates time to establish connection
|
|
451
424
|
* @param {array} iceResults iceResults
|
|
@@ -453,16 +426,14 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
453
426
|
* @private
|
|
454
427
|
* @memberof Reachability
|
|
455
428
|
*/
|
|
456
|
-
|
|
457
429
|
}, {
|
|
458
430
|
key: "parseIceResultsToReachabilityResults",
|
|
459
431
|
value: function parseIceResultsToReachabilityResults(iceResults) {
|
|
460
432
|
var reachabilityMap = {};
|
|
461
433
|
iceResults.forEach(function (_ref2) {
|
|
462
434
|
var clusterId = _ref2.clusterId,
|
|
463
|
-
|
|
435
|
+
elapsed = _ref2.elapsed;
|
|
464
436
|
var latencyResult;
|
|
465
|
-
|
|
466
437
|
if (elapsed === null) {
|
|
467
438
|
latencyResult = {
|
|
468
439
|
reachable: 'false'
|
|
@@ -473,7 +444,6 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
473
444
|
latencyInMilliseconds: elapsed.toString()
|
|
474
445
|
};
|
|
475
446
|
}
|
|
476
|
-
|
|
477
447
|
reachabilityMap[clusterId] = {
|
|
478
448
|
udp: latencyResult,
|
|
479
449
|
tcp: latencyResult
|
|
@@ -481,6 +451,7 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
481
451
|
});
|
|
482
452
|
return reachabilityMap;
|
|
483
453
|
}
|
|
454
|
+
|
|
484
455
|
/**
|
|
485
456
|
* fetches reachability data
|
|
486
457
|
* @param {object} clusterList
|
|
@@ -488,33 +459,29 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
488
459
|
* @private
|
|
489
460
|
* @memberof Reachability
|
|
490
461
|
*/
|
|
491
|
-
|
|
492
462
|
}, {
|
|
493
463
|
key: "performReachabilityCheck",
|
|
494
464
|
value: function performReachabilityCheck(clusterList) {
|
|
495
465
|
var _this5 = this;
|
|
496
|
-
|
|
497
466
|
if (!clusterList || !(0, _keys.default)(clusterList).length) {
|
|
498
467
|
return _promise.default.resolve({});
|
|
499
468
|
}
|
|
500
|
-
|
|
501
469
|
return new _promise.default(function (resolve) {
|
|
502
470
|
_this5.getLocalSDPForClusters(clusterList).then(function (localSDPData) {
|
|
503
471
|
if (!localSDPData || !(0, _keys.default)(localSDPData).length) {
|
|
504
472
|
// TODO: handle the error condition properly and try retry
|
|
505
473
|
_loggerProxy.default.logger.log('Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning');
|
|
506
|
-
|
|
507
474
|
resolve({});
|
|
508
475
|
} else {
|
|
509
476
|
resolve(localSDPData);
|
|
510
477
|
}
|
|
511
478
|
}).catch(function (error) {
|
|
512
479
|
_loggerProxy.default.logger.error("Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ".concat(error));
|
|
513
|
-
|
|
514
480
|
resolve({});
|
|
515
481
|
});
|
|
516
482
|
});
|
|
517
483
|
}
|
|
484
|
+
|
|
518
485
|
/**
|
|
519
486
|
* Records latency and closes the peerConnection
|
|
520
487
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -523,40 +490,38 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
523
490
|
* @private
|
|
524
491
|
* @memberof Reachability
|
|
525
492
|
*/
|
|
526
|
-
|
|
527
493
|
}, {
|
|
528
494
|
key: "setLatencyAndClose",
|
|
529
495
|
value: function setLatencyAndClose(peerConnection, elapsed) {
|
|
530
496
|
var _intialState;
|
|
531
|
-
|
|
532
497
|
var REACHABLE = 'reachable';
|
|
533
498
|
var UNREACHABLE = 'unreachable';
|
|
534
499
|
var CLOSED = _constants.CONNECTION_STATE.CLOSED;
|
|
500
|
+
// @ts-ignore
|
|
535
501
|
var key = peerConnection.key;
|
|
536
502
|
var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
|
|
537
503
|
var intialState = (_intialState = {}, (0, _defineProperty2.default)(_intialState, REACHABLE, 0), (0, _defineProperty2.default)(_intialState, UNREACHABLE, 0), _intialState);
|
|
538
|
-
|
|
539
504
|
if (peerConnection.connectionState === CLOSED) {
|
|
540
505
|
_loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
|
|
541
|
-
|
|
542
506
|
return;
|
|
543
507
|
}
|
|
544
|
-
|
|
545
508
|
this.clusterLatencyResults[key] = this.clusterLatencyResults[key] || intialState;
|
|
546
|
-
this.clusterLatencyResults[key][resultKey] += 1;
|
|
547
|
-
// an event other than onIceCandidate
|
|
509
|
+
this.clusterLatencyResults[key][resultKey] += 1;
|
|
548
510
|
|
|
511
|
+
// Set to null in case this fired from
|
|
512
|
+
// an event other than onIceCandidate
|
|
549
513
|
peerConnection.onicecandidate = null;
|
|
550
514
|
peerConnection.close();
|
|
515
|
+
// @ts-ignore
|
|
551
516
|
peerConnection.elapsed = elapsed;
|
|
552
517
|
}
|
|
518
|
+
|
|
553
519
|
/**
|
|
554
520
|
* utility function
|
|
555
521
|
* @returns {undefined}
|
|
556
522
|
* @private
|
|
557
523
|
* @memberof Reachability
|
|
558
524
|
*/
|
|
559
|
-
|
|
560
525
|
}, {
|
|
561
526
|
key: "setup",
|
|
562
527
|
value: function setup() {
|
|
@@ -565,6 +530,5 @@ var Reachability = /*#__PURE__*/function () {
|
|
|
565
530
|
}]);
|
|
566
531
|
return Reachability;
|
|
567
532
|
}();
|
|
568
|
-
|
|
569
533
|
exports.default = Reachability;
|
|
570
534
|
//# sourceMappingURL=index.js.map
|