@webex/plugin-meetings 2.60.0 → 2.60.1-next.1
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 +46 -8
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +20 -8
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +6 -7
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +217 -97
- package/dist/constants.js +416 -441
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -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.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4732 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +93 -21
- package/dist/meetings/index.js +490 -127
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +13 -1
- package/dist/member/index.js +45 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +120 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +56 -11
- package/dist/members/index.js +174 -47
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +67 -11
- package/dist/members/request.js +102 -54
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -284
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +61 -95
- package/dist/reachability/index.js +300 -393
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +50 -30
- package/dist/statsAnalyzer/index.js +435 -510
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +120 -83
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +38 -26
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +36 -12
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +6 -7
- package/src/constants.ts +244 -97
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3944 -2489
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +487 -126
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +43 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +125 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +187 -52
- package/src/members/request.ts +87 -27
- package/src/members/util.ts +332 -291
- package/src/metrics/constants.ts +15 -6
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +243 -347
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +477 -643
- package/src/statsAnalyzer/mqaUtil.ts +115 -114
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8187 -2769
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1313 -243
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +32 -9
- package/test/unit/spec/member/util.js +499 -61
- package/test/unit/spec/members/index.js +394 -5
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +173 -38
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +531 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +162 -24
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -76
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +261 -167
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- 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/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
- /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
|
@@ -10,43 +10,93 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime-cor
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
13
|
-
var
|
|
13
|
+
var _lodash = require("lodash");
|
|
14
14
|
var _queue = _interopRequireDefault(require("../common/queue"));
|
|
15
15
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
16
|
+
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
17
|
+
var _constants = _interopRequireDefault(require("../metrics/constants"));
|
|
16
18
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
19
|
+
var MAX_OOO_DELTA_COUNT = 5; // when we receive an out-of-order delta and the queue builds up to MAX_OOO_DELTA_COUNT, we do a sync with Locus
|
|
20
|
+
var OOO_DELTA_WAIT_TIME = 10000; // [ms] minimum wait time before we do a sync if we get out-of-order deltas
|
|
21
|
+
var OOO_DELTA_WAIT_TIME_RANDOM_DELAY = 5000; // [ms] max random delay added to OOO_DELTA_WAIT_TIME
|
|
17
22
|
/**
|
|
18
23
|
* Locus Delta Parser
|
|
19
24
|
* @private
|
|
20
25
|
* https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Delta-Events
|
|
21
26
|
*/
|
|
22
|
-
var Parser = /*#__PURE__*/function () {
|
|
23
|
-
// processing status
|
|
24
|
-
|
|
25
|
-
// loci comparison states
|
|
26
|
-
|
|
27
|
+
var Parser = exports.default = /*#__PURE__*/function () {
|
|
27
28
|
/**
|
|
28
29
|
* @constructs Parser
|
|
29
30
|
*/
|
|
30
31
|
function Parser() {
|
|
31
32
|
(0, _classCallCheck2.default)(this, Parser);
|
|
33
|
+
// processing status
|
|
34
|
+
(0, _defineProperty2.default)(this, "status", void 0);
|
|
32
35
|
(0, _defineProperty2.default)(this, "queue", void 0);
|
|
33
36
|
(0, _defineProperty2.default)(this, "workingCopy", void 0);
|
|
34
|
-
this
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
(0, _defineProperty2.default)(this, "syncTimer", void 0);
|
|
38
|
+
var deltaCompareFunc = function deltaCompareFunc(left, right) {
|
|
39
|
+
var _Parser$loci = Parser.loci,
|
|
40
|
+
LT = _Parser$loci.LT,
|
|
41
|
+
GT = _Parser$loci.GT;
|
|
42
|
+
var extract = Parser.extractComparisonState;
|
|
43
|
+
if (Parser.isSequenceEmpty(left)) {
|
|
44
|
+
return -1;
|
|
45
|
+
}
|
|
46
|
+
if (Parser.isSequenceEmpty(right)) {
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
var result = extract(Parser.compareSequence(left.baseSequence, right.baseSequence));
|
|
50
|
+
if (result === LT) {
|
|
51
|
+
return -1;
|
|
52
|
+
}
|
|
53
|
+
if (result === GT) {
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
return 0;
|
|
57
|
+
};
|
|
58
|
+
this.queue = new _queue.default(deltaCompareFunc);
|
|
59
|
+
this.status = 'IDLE';
|
|
37
60
|
this.onDeltaAction = null;
|
|
38
61
|
this.workingCopy = null;
|
|
62
|
+
this.syncTimer = undefined;
|
|
39
63
|
}
|
|
40
64
|
|
|
41
65
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* @
|
|
46
|
-
* @param {Types~Locus} incoming
|
|
47
|
-
* @returns {string} loci comparison state
|
|
66
|
+
* Returns a debug string representing a locus delta - useful for logging
|
|
67
|
+
*
|
|
68
|
+
* @param {LocusDeltaDto} locus Locus delta
|
|
69
|
+
* @returns {string}
|
|
48
70
|
*/
|
|
49
71
|
(0, _createClass2.default)(Parser, [{
|
|
72
|
+
key: "isNewFullLocus",
|
|
73
|
+
value:
|
|
74
|
+
/**
|
|
75
|
+
* Returns true if the incoming full locus DTO is newer than the current working copy
|
|
76
|
+
*
|
|
77
|
+
* @param {Types~Locus} incomingFullDto New Full Locus DTO
|
|
78
|
+
* @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
|
|
79
|
+
*/
|
|
80
|
+
function isNewFullLocus(incomingFullDto) {
|
|
81
|
+
if (!Parser.isLoci(incomingFullDto)) {
|
|
82
|
+
_loggerProxy.default.logger.info('Locus-info:parser#isNewFullLocus --> Ignoring non-locus object.');
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
if (!this.workingCopy) {
|
|
86
|
+
// we don't have a working copy yet, so any full locus is better than nothing
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
var comparisonResult = Parser.compareFullDtoSequence(this.workingCopy, incomingFullDto);
|
|
90
|
+
return comparisonResult === Parser.loci.USE_INCOMING;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Compares Locus sequences
|
|
95
|
+
* @param {Types~Locus} current Current working copy
|
|
96
|
+
* @param {Types~Locus} incoming New Locus delta
|
|
97
|
+
* @returns {string}
|
|
98
|
+
*/
|
|
99
|
+
}, {
|
|
50
100
|
key: "isValidLocus",
|
|
51
101
|
value:
|
|
52
102
|
/**
|
|
@@ -55,19 +105,11 @@ var Parser = /*#__PURE__*/function () {
|
|
|
55
105
|
* @returns {boolean}
|
|
56
106
|
*/
|
|
57
107
|
function isValidLocus(newLoci) {
|
|
58
|
-
var _this = this;
|
|
59
108
|
var isValid = false;
|
|
60
|
-
var IDLE = Parser.status.IDLE;
|
|
61
109
|
var isLoci = Parser.isLoci;
|
|
62
|
-
// @ts-ignore
|
|
63
|
-
var setStatus = function setStatus(status) {
|
|
64
|
-
// @ts-ignore
|
|
65
|
-
_this.status = status;
|
|
66
|
-
};
|
|
67
110
|
|
|
68
111
|
// one or both objects are not locus delta events
|
|
69
112
|
if (!isLoci(this.workingCopy) || !isLoci(newLoci)) {
|
|
70
|
-
setStatus(IDLE);
|
|
71
113
|
_loggerProxy.default.logger.info('Locus-info:parser#processDeltaEvent --> Ignoring non-locus object. workingCopy:', this.workingCopy, 'newLoci:', newLoci);
|
|
72
114
|
} else {
|
|
73
115
|
isValid = true;
|
|
@@ -89,18 +131,20 @@ var Parser = /*#__PURE__*/function () {
|
|
|
89
131
|
* @returns {undefined}
|
|
90
132
|
*/
|
|
91
133
|
function nextEvent() {
|
|
92
|
-
|
|
93
|
-
if (this.status === Parser.status.PAUSED) {
|
|
134
|
+
if (this.status === 'PAUSED') {
|
|
94
135
|
_loggerProxy.default.logger.info('Locus-info:parser#nextEvent --> Locus parser paused.');
|
|
95
136
|
return;
|
|
96
137
|
}
|
|
138
|
+
if (this.status === 'BLOCKED') {
|
|
139
|
+
_loggerProxy.default.logger.info('Locus-info:parser#nextEvent --> Locus parser blocked by out-of-order delta.');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
97
142
|
|
|
98
143
|
// continue processing until queue is empty
|
|
99
144
|
if (this.queue.size() > 0) {
|
|
100
145
|
this.processDeltaEvent();
|
|
101
146
|
} else {
|
|
102
|
-
|
|
103
|
-
this.status = Parser.status.IDLE;
|
|
147
|
+
this.status = 'IDLE';
|
|
104
148
|
}
|
|
105
149
|
}
|
|
106
150
|
|
|
@@ -111,7 +155,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
111
155
|
* @param {Types~Locus} locus Locus delta
|
|
112
156
|
* @returns {undefined}
|
|
113
157
|
*/
|
|
114
|
-
// eslint-disable-next-line no-unused-vars
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
115
159
|
}, {
|
|
116
160
|
key: "onDeltaAction",
|
|
117
161
|
value: function onDeltaAction(action, locus) {}
|
|
@@ -126,14 +170,18 @@ var Parser = /*#__PURE__*/function () {
|
|
|
126
170
|
value: function onDeltaEvent(loci) {
|
|
127
171
|
// enqueue the new loci
|
|
128
172
|
this.queue.enqueue(loci);
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
this.
|
|
173
|
+
if (this.onDeltaAction) {
|
|
174
|
+
if (this.status === 'BLOCKED') {
|
|
175
|
+
if (this.queue.size() > MAX_OOO_DELTA_COUNT) {
|
|
176
|
+
this.triggerSync('queue too big, blocked on out-of-order delta');
|
|
177
|
+
} else {
|
|
178
|
+
this.processDeltaEvent();
|
|
179
|
+
}
|
|
180
|
+
} else if (this.status === 'IDLE') {
|
|
181
|
+
// Update status, ensure we only process one event at a time.
|
|
182
|
+
this.status = 'WORKING';
|
|
183
|
+
this.processDeltaEvent();
|
|
184
|
+
}
|
|
137
185
|
}
|
|
138
186
|
}
|
|
139
187
|
|
|
@@ -151,11 +199,61 @@ var Parser = /*#__PURE__*/function () {
|
|
|
151
199
|
* @returns {undefined}
|
|
152
200
|
*/
|
|
153
201
|
function pause() {
|
|
154
|
-
|
|
155
|
-
this.status = Parser.status.PAUSED;
|
|
202
|
+
this.status = 'PAUSED';
|
|
156
203
|
_loggerProxy.default.logger.info('Locus-info:parser#pause --> Locus parser paused.');
|
|
157
204
|
}
|
|
158
205
|
|
|
206
|
+
/**
|
|
207
|
+
* Triggers a sync with Locus
|
|
208
|
+
*
|
|
209
|
+
* @param {string} reason used just for logging
|
|
210
|
+
* @returns {undefined}
|
|
211
|
+
*/
|
|
212
|
+
}, {
|
|
213
|
+
key: "triggerSync",
|
|
214
|
+
value: function triggerSync(reason) {
|
|
215
|
+
_loggerProxy.default.logger.info("Locus-info:parser#triggerSync --> doing sync, reason: ".concat(reason));
|
|
216
|
+
this.stopSyncTimer();
|
|
217
|
+
this.pause();
|
|
218
|
+
this.onDeltaAction(Parser.loci.DESYNC, this.workingCopy);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Starts a timer with a random delay. When that timer expires we will do a sync.
|
|
223
|
+
*
|
|
224
|
+
* The main purpose of this timer is to handle a case when we get some out-of-order deltas,
|
|
225
|
+
* so we start waiting to receive the missing delta. If that delta never arrives, this timer
|
|
226
|
+
* will trigger a sync with Locus.
|
|
227
|
+
*
|
|
228
|
+
* @returns {undefined}
|
|
229
|
+
*/
|
|
230
|
+
}, {
|
|
231
|
+
key: "startSyncTimer",
|
|
232
|
+
value: function startSyncTimer() {
|
|
233
|
+
var _this = this;
|
|
234
|
+
if (this.syncTimer === undefined) {
|
|
235
|
+
var timeout = OOO_DELTA_WAIT_TIME + Math.random() * OOO_DELTA_WAIT_TIME_RANDOM_DELAY;
|
|
236
|
+
this.syncTimer = setTimeout(function () {
|
|
237
|
+
_this.syncTimer = undefined;
|
|
238
|
+
_this.triggerSync('timer expired, blocked on out-of-order delta');
|
|
239
|
+
}, timeout);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Stops the timer for triggering a sync
|
|
245
|
+
*
|
|
246
|
+
* @returns {undefined}
|
|
247
|
+
*/
|
|
248
|
+
}, {
|
|
249
|
+
key: "stopSyncTimer",
|
|
250
|
+
value: function stopSyncTimer() {
|
|
251
|
+
if (this.syncTimer !== undefined) {
|
|
252
|
+
clearTimeout(this.syncTimer);
|
|
253
|
+
this.syncTimer = undefined;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
159
257
|
/**
|
|
160
258
|
* Processes next locus delta in the queue,
|
|
161
259
|
* continues until the queue is empty
|
|
@@ -165,12 +263,15 @@ var Parser = /*#__PURE__*/function () {
|
|
|
165
263
|
}, {
|
|
166
264
|
key: "processDeltaEvent",
|
|
167
265
|
value: function processDeltaEvent() {
|
|
168
|
-
var _Parser$
|
|
169
|
-
DESYNC = _Parser$
|
|
170
|
-
USE_INCOMING = _Parser$
|
|
266
|
+
var _Parser$loci2 = Parser.loci,
|
|
267
|
+
DESYNC = _Parser$loci2.DESYNC,
|
|
268
|
+
USE_INCOMING = _Parser$loci2.USE_INCOMING,
|
|
269
|
+
WAIT = _Parser$loci2.WAIT,
|
|
270
|
+
LOCUS_URL_CHANGED = _Parser$loci2.LOCUS_URL_CHANGED;
|
|
171
271
|
var extract = Parser.extractComparisonState;
|
|
172
272
|
var newLoci = this.queue.dequeue();
|
|
173
273
|
if (!this.isValidLocus(newLoci)) {
|
|
274
|
+
this.nextEvent();
|
|
174
275
|
return;
|
|
175
276
|
}
|
|
176
277
|
var result = Parser.compare(this.workingCopy, newLoci);
|
|
@@ -179,20 +280,42 @@ var Parser = /*#__PURE__*/function () {
|
|
|
179
280
|
// limited debugging, use chrome extension
|
|
180
281
|
// for full debugging.
|
|
181
282
|
_loggerProxy.default.logger.debug("Locus-info:parser#processDeltaEvent --> Locus Debug: ".concat(result));
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
283
|
+
var needToWait = false;
|
|
284
|
+
switch (lociComparison) {
|
|
285
|
+
case DESYNC:
|
|
286
|
+
// wait for desync response
|
|
287
|
+
this.pause();
|
|
288
|
+
break;
|
|
289
|
+
case USE_INCOMING:
|
|
290
|
+
case LOCUS_URL_CHANGED:
|
|
291
|
+
// update working copy for future comparisons.
|
|
292
|
+
// Note: The working copy of parser gets updated in .onFullLocus()
|
|
293
|
+
// and here when USE_INCOMING or LOCUS_URL_CHANGED locus.
|
|
294
|
+
this.workingCopy = newLoci;
|
|
295
|
+
break;
|
|
296
|
+
case WAIT:
|
|
297
|
+
// we've taken newLoci from the front of the queue, so put it back there as we have to wait
|
|
298
|
+
// for the one that should be in front of it, before we can process it
|
|
299
|
+
this.queue.enqueue(newLoci);
|
|
300
|
+
needToWait = true;
|
|
301
|
+
break;
|
|
302
|
+
default:
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
if (needToWait) {
|
|
306
|
+
this.status = 'BLOCKED';
|
|
307
|
+
this.startSyncTimer();
|
|
308
|
+
} else {
|
|
309
|
+
this.stopSyncTimer();
|
|
310
|
+
if (this.status === 'BLOCKED') {
|
|
311
|
+
// we are not blocked anymore
|
|
312
|
+
this.status = 'WORKING';
|
|
313
|
+
_loggerProxy.default.logger.info("Locus-info:parser#processDeltaEvent --> received delta that we were waiting for ".concat(Parser.locus2string(newLoci), ", not blocked anymore"));
|
|
314
|
+
}
|
|
190
315
|
}
|
|
191
316
|
if (this.onDeltaAction) {
|
|
192
|
-
_loggerProxy.default.logger.info("Locus-info:parser#processDeltaEvent --> Locus Delta Action: ".concat(lociComparison));
|
|
193
|
-
|
|
194
|
-
// eslint-disable-next-line no-useless-call
|
|
195
|
-
this.onDeltaAction.call(this, lociComparison, newLoci);
|
|
317
|
+
_loggerProxy.default.logger.info("Locus-info:parser#processDeltaEvent --> Locus Delta ".concat(Parser.locus2string(newLoci), ", Action: ").concat(lociComparison));
|
|
318
|
+
this.onDeltaAction(lociComparison, newLoci);
|
|
196
319
|
}
|
|
197
320
|
this.nextEvent();
|
|
198
321
|
}
|
|
@@ -205,8 +328,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
205
328
|
key: "resume",
|
|
206
329
|
value: function resume() {
|
|
207
330
|
_loggerProxy.default.logger.info('Locus-info:parser#resume --> Locus parser resumed.');
|
|
208
|
-
|
|
209
|
-
this.status = Parser.status.WORKING;
|
|
331
|
+
this.status = 'WORKING';
|
|
210
332
|
this.nextEvent();
|
|
211
333
|
}
|
|
212
334
|
|
|
@@ -217,6 +339,24 @@ var Parser = /*#__PURE__*/function () {
|
|
|
217
339
|
* @returns {object} Debug message
|
|
218
340
|
*/
|
|
219
341
|
}], [{
|
|
342
|
+
key: "locus2string",
|
|
343
|
+
value: function locus2string(locus) {
|
|
344
|
+
var _locus$sequence;
|
|
345
|
+
if (!((_locus$sequence = locus.sequence) !== null && _locus$sequence !== void 0 && _locus$sequence.entries)) {
|
|
346
|
+
return 'invalid';
|
|
347
|
+
}
|
|
348
|
+
return locus.sequence.entries.length ? "seq=".concat(locus.sequence.entries.at(-1)) : 'empty';
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Checks if two sequences overlap in time,
|
|
353
|
+
* the sequence with the higher minimum value is greater.
|
|
354
|
+
* Chooses sequence with most recent data.
|
|
355
|
+
* @param {Types~Locus} current
|
|
356
|
+
* @param {Types~Locus} incoming
|
|
357
|
+
* @returns {string} loci comparison state
|
|
358
|
+
*/
|
|
359
|
+
}, {
|
|
220
360
|
key: "checkSequenceOverlap",
|
|
221
361
|
value: function checkSequenceOverlap(current, incoming) {
|
|
222
362
|
var comparison = null;
|
|
@@ -381,12 +521,14 @@ var Parser = /*#__PURE__*/function () {
|
|
|
381
521
|
}, {
|
|
382
522
|
key: "compareDelta",
|
|
383
523
|
value: function compareDelta(current, incoming) {
|
|
384
|
-
var _Parser$
|
|
385
|
-
LT = _Parser$
|
|
386
|
-
GT = _Parser$
|
|
387
|
-
EQ = _Parser$
|
|
388
|
-
DESYNC = _Parser$
|
|
389
|
-
USE_INCOMING = _Parser$
|
|
524
|
+
var _Parser$loci3 = Parser.loci,
|
|
525
|
+
LT = _Parser$loci3.LT,
|
|
526
|
+
GT = _Parser$loci3.GT,
|
|
527
|
+
EQ = _Parser$loci3.EQ,
|
|
528
|
+
DESYNC = _Parser$loci3.DESYNC,
|
|
529
|
+
USE_INCOMING = _Parser$loci3.USE_INCOMING,
|
|
530
|
+
WAIT = _Parser$loci3.WAIT,
|
|
531
|
+
LOCUS_URL_CHANGED = _Parser$loci3.LOCUS_URL_CHANGED;
|
|
390
532
|
var extract = Parser.extractComparisonState;
|
|
391
533
|
var pack = Parser.packComparisonResult;
|
|
392
534
|
var result = Parser.compareSequence(current.sequence, incoming.sequence);
|
|
@@ -394,12 +536,32 @@ var Parser = /*#__PURE__*/function () {
|
|
|
394
536
|
if (comparison !== LT) {
|
|
395
537
|
return pack(Parser.compareToAction(comparison), result);
|
|
396
538
|
}
|
|
539
|
+
if (incoming.url !== current.url) {
|
|
540
|
+
// when moving to/from a breakout session, the locus URL will change and also
|
|
541
|
+
// the baseSequence, making incoming and current incomparable, so use a
|
|
542
|
+
// unique comparison state
|
|
543
|
+
return pack(LOCUS_URL_CHANGED, result);
|
|
544
|
+
}
|
|
397
545
|
comparison = Parser.compareSequence(current.sequence, incoming.baseSequence);
|
|
398
546
|
switch (extract(comparison)) {
|
|
399
547
|
case GT:
|
|
400
548
|
case EQ:
|
|
401
549
|
comparison = USE_INCOMING;
|
|
402
550
|
break;
|
|
551
|
+
case LT:
|
|
552
|
+
if (extract(Parser.compareSequence(incoming.baseSequence, incoming.sequence)) === EQ) {
|
|
553
|
+
// special case where Locus sends a delta with baseSequence === sequence to trigger a sync,
|
|
554
|
+
// because the delta event is too large to be sent over mercury connection
|
|
555
|
+
comparison = DESYNC;
|
|
556
|
+
} else {
|
|
557
|
+
// the incoming locus has baseSequence from the future, so it is out-of-order,
|
|
558
|
+
// we are missing 1 or more locus that should be in front of it, we need to wait for it
|
|
559
|
+
comparison = WAIT;
|
|
560
|
+
_metrics.default.sendBehavioralMetric(_constants.default.LOCUS_DELTA_OUT_OF_ORDER, {
|
|
561
|
+
stack: new Error().stack
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
break;
|
|
403
565
|
default:
|
|
404
566
|
comparison = DESYNC;
|
|
405
567
|
}
|
|
@@ -407,11 +569,24 @@ var Parser = /*#__PURE__*/function () {
|
|
|
407
569
|
}
|
|
408
570
|
|
|
409
571
|
/**
|
|
410
|
-
* Compares Locus sequences
|
|
572
|
+
* Compares Locus sequences - it should be called only for full Locus DTOs, not deltas
|
|
573
|
+
*
|
|
411
574
|
* @param {Types~Locus} current Current working copy
|
|
412
|
-
* @param {Types~Locus}
|
|
413
|
-
* @returns {string}
|
|
575
|
+
* @param {Types~Locus} incomingFullDto New Full Locus DTO
|
|
576
|
+
* @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
|
|
414
577
|
*/
|
|
578
|
+
}, {
|
|
579
|
+
key: "compareFullDtoSequence",
|
|
580
|
+
value: function compareFullDtoSequence(current, incomingFullDto) {
|
|
581
|
+
if (Parser.isSequenceEmpty(current) || Parser.isSequenceEmpty(incomingFullDto)) {
|
|
582
|
+
return Parser.loci.USE_INCOMING;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
// the sequence.entries list will always contain at least 1 entry
|
|
586
|
+
// https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Sequence-Comparison-Algorithm
|
|
587
|
+
|
|
588
|
+
return incomingFullDto.sequence.entries.slice(-1)[0] > current.sequence.entries.slice(-1)[0] ? Parser.loci.USE_INCOMING : Parser.loci.USE_CURRENT;
|
|
589
|
+
}
|
|
415
590
|
}, {
|
|
416
591
|
key: "compareSequence",
|
|
417
592
|
value: function compareSequence(current, incoming) {
|
|
@@ -452,14 +627,14 @@ var Parser = /*#__PURE__*/function () {
|
|
|
452
627
|
}, {
|
|
453
628
|
key: "compareToAction",
|
|
454
629
|
value: function compareToAction(result) {
|
|
455
|
-
var _Parser$
|
|
456
|
-
DESYNC = _Parser$
|
|
457
|
-
EQ = _Parser$
|
|
458
|
-
ERROR = _Parser$
|
|
459
|
-
GT = _Parser$
|
|
460
|
-
LT = _Parser$
|
|
461
|
-
USE_CURRENT = _Parser$
|
|
462
|
-
USE_INCOMING = _Parser$
|
|
630
|
+
var _Parser$loci4 = Parser.loci,
|
|
631
|
+
DESYNC = _Parser$loci4.DESYNC,
|
|
632
|
+
EQ = _Parser$loci4.EQ,
|
|
633
|
+
ERROR = _Parser$loci4.ERROR,
|
|
634
|
+
GT = _Parser$loci4.GT,
|
|
635
|
+
LT = _Parser$loci4.LT,
|
|
636
|
+
USE_CURRENT = _Parser$loci4.USE_CURRENT,
|
|
637
|
+
USE_INCOMING = _Parser$loci4.USE_INCOMING;
|
|
463
638
|
var action = ERROR;
|
|
464
639
|
switch (result) {
|
|
465
640
|
case EQ:
|
|
@@ -541,7 +716,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
541
716
|
}, {
|
|
542
717
|
key: "getUniqueSequences",
|
|
543
718
|
value: function getUniqueSequences(baseLoci, otherLoci) {
|
|
544
|
-
var diff = (0,
|
|
719
|
+
var diff = (0, _lodash.difference)(baseLoci.entries, otherLoci.entries);
|
|
545
720
|
var start = otherLoci.start,
|
|
546
721
|
end = otherLoci.end;
|
|
547
722
|
return Parser.getNumbersOutOfRange(diff, start, end);
|
|
@@ -674,12 +849,8 @@ var Parser = /*#__PURE__*/function () {
|
|
|
674
849
|
}]);
|
|
675
850
|
return Parser;
|
|
676
851
|
}();
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
IDLE: 'IDLE',
|
|
680
|
-
PAUSED: 'PAUSED',
|
|
681
|
-
WORKING: 'WORKING'
|
|
682
|
-
});
|
|
852
|
+
// received an out-of-order delta, so waiting for the missing one
|
|
853
|
+
// loci comparison states
|
|
683
854
|
(0, _defineProperty2.default)(Parser, "loci", {
|
|
684
855
|
EQ: 'EQUAL',
|
|
685
856
|
GT: 'GREATER_THAN',
|
|
@@ -687,6 +858,8 @@ exports.default = Parser;
|
|
|
687
858
|
DESYNC: 'DESYNC',
|
|
688
859
|
USE_INCOMING: 'USE_INCOMING',
|
|
689
860
|
USE_CURRENT: 'USE_CURRENT',
|
|
690
|
-
|
|
861
|
+
WAIT: 'WAIT',
|
|
862
|
+
ERROR: 'ERROR',
|
|
863
|
+
LOCUS_URL_CHANGED: 'LOCUS_URL_CHANGED'
|
|
691
864
|
});
|
|
692
865
|
//# sourceMappingURL=parser.js.map
|