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