@webex/plugin-meetings 2.60.1-next.9 → 2.60.2
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 +8 -58
- package/dist/common/browser-detection.js +3 -2
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +4 -3
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +2 -1
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +2 -1
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +2 -1
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +2 -1
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +2 -1
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +4 -3
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +2 -1
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +2 -1
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +2 -1
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +2 -1
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +2 -1
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +8 -20
- package/dist/common/errors/webex-errors.js +28 -48
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +2 -1
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +2 -1
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +2 -1
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +2 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +2 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +2 -1
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +3 -2
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +1 -3
- package/dist/common/logs/request.js +5 -8
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +7 -9
- package/dist/common/queue.js +9 -22
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +7 -6
- package/dist/config.js +10 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +100 -234
- package/dist/constants.js +444 -433
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +6 -3
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +1 -11
- package/dist/controls-options-manager/enums.js +6 -15
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +1 -17
- package/dist/controls-options-manager/index.js +38 -127
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/util.d.ts +7 -1
- package/dist/controls-options-manager/util.js +19 -309
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +3 -6
- package/dist/index.js +5 -121
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +11 -100
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +4 -3
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +2 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +2 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +4 -57
- package/dist/locus-info/index.js +84 -425
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +5 -13
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +3 -58
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +6 -66
- package/dist/locus-info/parser.js +80 -253
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +13 -97
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +0 -2
- package/dist/media/index.js +319 -107
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +53 -38
- package/dist/media/properties.js +153 -96
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +22 -1
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +230 -234
- package/dist/mediaQualityMetrics/config.js +498 -302
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +0 -88
- package/dist/meeting/in-meeting-actions.js +3 -94
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +520 -705
- package/dist/meeting/index.js +3083 -5041
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.d.ts +25 -93
- package/dist/meeting/muteState.js +133 -224
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +47 -82
- package/dist/meeting/request.js +199 -304
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/state.js +2 -1
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +1 -118
- package/dist/meeting/util.js +435 -676
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +4 -3
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +1 -13
- package/dist/meeting-info/index.js +7 -74
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
- package/dist/meeting-info/meeting-info-v2.js +63 -200
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +2 -1
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +3 -2
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +41 -39
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +0 -17
- package/dist/meetings/collection.js +4 -42
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +20 -114
- package/dist/meetings/index.js +133 -540
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +3 -4
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +6 -107
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +1 -13
- package/dist/member/index.js +2 -45
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +4 -3
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/util.js +29 -120
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +0 -5
- package/dist/members/collection.js +2 -11
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +11 -56
- package/dist/members/index.js +47 -174
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +11 -67
- package/dist/members/request.js +54 -102
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +4 -3
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +1 -214
- package/dist/members/util.js +284 -327
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.d.ts +169 -0
- package/dist/metrics/config.js +289 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +6 -15
- package/dist/metrics/constants.js +9 -17
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +111 -4
- package/dist/metrics/index.js +452 -4
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -5
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/peer-connection-manager/index.d.ts +6 -0
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.d.ts +6 -0
- package/dist/peer-connection-manager/util.js +110 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.js +3 -2
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +3 -2
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +2 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.d.ts +95 -61
- package/dist/reachability/index.js +392 -304
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +3 -7
- package/dist/reachability/request.js +10 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +6 -4
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +3 -23
- package/dist/reactions/reactions.type.js +23 -21
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +8 -32
- package/dist/reconnection-manager/index.js +232 -285
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +5 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +1 -15
- package/dist/recording-controller/index.js +46 -57
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +4 -5
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/collection.d.ts +10 -0
- package/dist/roap/collection.js +63 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.d.ts +47 -0
- package/dist/roap/handler.js +279 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +47 -9
- package/dist/roap/index.js +238 -100
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +12 -18
- package/dist/roap/request.js +180 -126
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/state.d.ts +9 -0
- package/dist/roap/state.js +127 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +16 -27
- package/dist/roap/turnDiscovery.js +105 -115
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/util.d.ts +2 -0
- package/dist/roap/util.js +76 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +83 -1
- package/dist/statsAnalyzer/global.js +85 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +30 -50
- package/dist/statsAnalyzer/index.js +511 -436
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
- package/dist/statsAnalyzer/mqaUtil.js +90 -130
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +2 -1
- package/dist/transcription/index.js.map +1 -1
- package/package.json +26 -39
- package/src/common/errors/webex-errors.ts +12 -36
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +1 -5
- package/src/common/queue.ts +8 -22
- package/src/config.ts +7 -6
- package/src/constants.ts +100 -265
- package/src/controls-options-manager/enums.ts +0 -12
- package/src/controls-options-manager/index.ts +21 -116
- package/src/controls-options-manager/util.ts +14 -294
- package/src/index.js +15 -0
- package/src/locus-info/controlsUtils.ts +0 -110
- package/src/locus-info/index.ts +61 -450
- package/src/locus-info/infoUtils.ts +2 -14
- package/src/locus-info/mediaSharesUtils.ts +0 -64
- package/src/locus-info/parser.ts +47 -258
- package/src/locus-info/selfUtils.ts +2 -85
- package/src/media/index.ts +370 -153
- package/src/media/properties.ts +136 -106
- package/src/media/util.ts +21 -0
- package/src/mediaQualityMetrics/config.ts +377 -244
- package/src/meeting/effectsState.ts +209 -0
- package/src/meeting/in-meeting-actions.ts +0 -176
- package/src/meeting/index.ts +2581 -4306
- package/src/meeting/muteState.ts +138 -224
- package/src/meeting/request.ts +127 -214
- package/src/meeting/util.ts +423 -687
- package/src/meeting-info/index.ts +8 -81
- package/src/meeting-info/meeting-info-v2.ts +13 -163
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +0 -33
- package/src/meetings/index.ts +136 -531
- package/src/meetings/request.ts +0 -2
- package/src/meetings/util.ts +5 -116
- package/src/member/index.ts +1 -43
- package/src/member/util.ts +28 -125
- package/src/members/collection.ts +0 -8
- package/src/members/index.ts +52 -187
- package/src/members/request.ts +27 -87
- package/src/members/util.ts +291 -332
- package/src/metrics/config.ts +485 -0
- package/src/metrics/constants.ts +6 -15
- package/src/metrics/index.ts +471 -1
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/peer-connection-manager/index.ts +847 -0
- package/src/peer-connection-manager/util.ts +119 -0
- package/src/reachability/index.ts +347 -246
- package/src/reachability/request.ts +8 -17
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +4 -30
- package/src/reconnection-manager/index.ts +156 -168
- package/src/recording-controller/index.ts +3 -20
- package/src/recording-controller/util.ts +9 -26
- package/src/roap/collection.ts +62 -0
- package/src/roap/handler.ts +294 -0
- package/src/roap/index.ts +241 -96
- package/src/roap/request.ts +148 -74
- package/src/roap/state.ts +156 -0
- package/src/roap/turnDiscovery.ts +56 -62
- package/src/roap/util.ts +100 -0
- package/src/statsAnalyzer/global.ts +84 -1
- package/src/statsAnalyzer/index.ts +645 -479
- package/src/statsAnalyzer/mqaUtil.ts +126 -128
- package/test/integration/spec/journey.js +264 -320
- package/test/integration/spec/space-meeting.js +4 -77
- package/test/unit/spec/common/queue.js +2 -31
- package/test/unit/spec/controls-options-manager/index.js +0 -163
- package/test/unit/spec/controls-options-manager/util.js +60 -576
- package/test/unit/spec/fixture/locus.js +0 -1
- package/test/unit/spec/locus-info/controlsUtils.js +30 -323
- package/test/unit/spec/locus-info/index.js +15 -1437
- package/test/unit/spec/locus-info/infoUtils.js +16 -54
- package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
- package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
- package/test/unit/spec/locus-info/parser.js +35 -116
- package/test/unit/spec/locus-info/selfUtils.js +0 -275
- package/test/unit/spec/media/properties.ts +84 -75
- package/test/unit/spec/meeting/effectsState.js +281 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
- package/test/unit/spec/meeting/index.js +2313 -8384
- package/test/unit/spec/meeting/muteState.js +213 -409
- package/test/unit/spec/meeting/request.js +43 -523
- package/test/unit/spec/meeting/utils.js +24 -834
- package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
- package/test/unit/spec/meeting-info/utilv2.js +0 -21
- package/test/unit/spec/meetings/collection.js +0 -26
- package/test/unit/spec/meetings/index.js +232 -1445
- package/test/unit/spec/meetings/utils.js +2 -202
- package/test/unit/spec/member/index.js +9 -32
- package/test/unit/spec/member/util.js +61 -499
- package/test/unit/spec/members/index.js +5 -394
- package/test/unit/spec/members/request.js +27 -206
- package/test/unit/spec/members/utils.js +38 -173
- package/test/unit/spec/metrics/index.js +50 -1
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/peerconnection-manager/index.js +218 -0
- package/test/unit/spec/peerconnection-manager/utils.js +49 -0
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
- package/test/unit/spec/reachability/index.ts +24 -532
- package/test/unit/spec/reconnection-manager/index.js +24 -163
- package/test/unit/spec/recording-controller/index.js +218 -293
- package/test/unit/spec/recording-controller/util.js +96 -223
- package/test/unit/spec/roap/index.ts +77 -187
- package/test/unit/spec/roap/turnDiscovery.ts +48 -86
- package/test/unit/spec/roap/util.js +30 -0
- package/test/unit/spec/stats-analyzer/index.js +165 -644
- package/test/utils/testUtils.js +45 -0
- package/test/utils/webex-config.js +0 -4
- package/test/utils/webex-test-users.js +3 -7
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/annotation.types.js +0 -7
- package/dist/annotation/annotation.types.js.map +0 -1
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/constants.js +0 -41
- package/dist/annotation/constants.js.map +0 -1
- package/dist/annotation/index.d.ts +0 -117
- package/dist/annotation/index.js +0 -357
- package/dist/annotation/index.js.map +0 -1
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/breakout.js +0 -215
- package/dist/breakouts/breakout.js.map +0 -1
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/collection.js +0 -22
- package/dist/breakouts/collection.js.map +0 -1
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/edit-lock-error.js +0 -51
- package/dist/breakouts/edit-lock-error.js.map +0 -1
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/events.js +0 -44
- package/dist/breakouts/events.js.map +0 -1
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/index.js +0 -1047
- package/dist/breakouts/index.js.map +0 -1
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/request.js +0 -77
- package/dist/breakouts/request.js.map +0 -1
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/breakouts/utils.js +0 -64
- package/dist/breakouts/utils.js.map +0 -1
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/no-meeting-info.js +0 -50
- package/dist/common/errors/no-meeting-info.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/types.js +0 -7
- package/dist/controls-options-manager/types.js.map +0 -1
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/index.js +0 -15
- package/dist/interceptors/index.js.map +0 -1
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interceptors/locusRetry.js +0 -94
- package/dist/interceptors/locusRetry.js.map +0 -1
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/collection.js +0 -22
- package/dist/interpretation/collection.js.map +0 -1
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/index.js +0 -365
- package/dist/interpretation/index.js.map +0 -1
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/interpretation/siLanguage.js +0 -24
- package/dist/interpretation/siLanguage.js.map +0 -1
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/locusMediaRequest.js +0 -291
- package/dist/meeting/locusMediaRequest.js.map +0 -1
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/request.type.js +0 -7
- package/dist/meeting/request.type.js.map +0 -1
- package/dist/meeting/voicea-meeting.d.ts +0 -20
- package/dist/meeting/voicea-meeting.js +0 -201
- package/dist/meeting/voicea-meeting.js.map +0 -1
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/meetings.types.js +0 -7
- package/dist/meetings/meetings.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/types.js +0 -23
- package/dist/member/types.js.map +0 -1
- package/dist/multistream/mediaRequestManager.d.ts +0 -118
- package/dist/multistream/mediaRequestManager.js +0 -344
- package/dist/multistream/mediaRequestManager.js.map +0 -1
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlot.js +0 -200
- package/dist/multistream/receiveSlot.js.map +0 -1
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/receiveSlotManager.js +0 -174
- package/dist/multistream/receiveSlotManager.js.map +0 -1
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMedia.js +0 -268
- package/dist/multistream/remoteMedia.js.map +0 -1
- package/dist/multistream/remoteMediaGroup.d.ts +0 -47
- package/dist/multistream/remoteMediaGroup.js +0 -267
- package/dist/multistream/remoteMediaGroup.js.map +0 -1
- package/dist/multistream/remoteMediaManager.d.ts +0 -285
- package/dist/multistream/remoteMediaManager.js +0 -1211
- package/dist/multistream/remoteMediaManager.js.map +0 -1
- package/dist/multistream/sendSlotManager.d.ts +0 -61
- package/dist/multistream/sendSlotManager.js +0 -236
- package/dist/multistream/sendSlotManager.js.map +0 -1
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/clusterReachability.js +0 -357
- package/dist/reachability/clusterReachability.js.map +0 -1
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reachability/util.js +0 -29
- package/dist/reachability/util.js.map +0 -1
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/constants.js +0 -12
- package/dist/reactions/constants.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.d.ts +0 -54
- package/dist/rtcMetrics/index.js +0 -140
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/collection.js +0 -43
- package/dist/webinar/collection.js.map +0 -1
- package/dist/webinar/index.d.ts +0 -5
- package/dist/webinar/index.js +0 -68
- package/dist/webinar/index.js.map +0 -1
- package/src/annotation/annotation.types.ts +0 -50
- package/src/annotation/constants.ts +0 -36
- package/src/annotation/index.ts +0 -328
- package/src/breakouts/README.md +0 -220
- package/src/breakouts/breakout.ts +0 -188
- package/src/breakouts/collection.ts +0 -19
- package/src/breakouts/edit-lock-error.ts +0 -25
- package/src/breakouts/events.ts +0 -56
- package/src/breakouts/index.ts +0 -925
- package/src/breakouts/request.ts +0 -55
- package/src/breakouts/utils.ts +0 -57
- package/src/common/errors/no-meeting-info.ts +0 -24
- package/src/controls-options-manager/types.ts +0 -59
- package/src/index.ts +0 -44
- package/src/interceptors/index.ts +0 -3
- package/src/interceptors/locusRetry.ts +0 -67
- package/src/interpretation/README.md +0 -60
- package/src/interpretation/collection.ts +0 -19
- package/src/interpretation/index.ts +0 -332
- package/src/interpretation/siLanguage.ts +0 -18
- package/src/meeting/locusMediaRequest.ts +0 -313
- package/src/meeting/request.type.ts +0 -13
- package/src/meeting/voicea-meeting.ts +0 -161
- package/src/meetings/meetings.types.ts +0 -12
- package/src/member/types.ts +0 -38
- package/src/multistream/mediaRequestManager.ts +0 -440
- package/src/multistream/receiveSlot.ts +0 -184
- package/src/multistream/receiveSlotManager.ts +0 -166
- package/src/multistream/remoteMedia.ts +0 -254
- package/src/multistream/remoteMediaGroup.ts +0 -284
- package/src/multistream/remoteMediaManager.ts +0 -1145
- package/src/multistream/sendSlotManager.ts +0 -170
- package/src/reachability/clusterReachability.ts +0 -320
- package/src/reachability/util.ts +0 -24
- package/src/reactions/constants.ts +0 -4
- package/src/rtcMetrics/constants.ts +0 -3
- package/src/rtcMetrics/index.ts +0 -124
- package/src/webinar/collection.ts +0 -31
- package/src/webinar/index.ts +0 -62
- package/test/integration/spec/converged-space-meetings.js +0 -233
- package/test/unit/spec/annotation/index.ts +0 -418
- package/test/unit/spec/breakouts/breakout.ts +0 -237
- package/test/unit/spec/breakouts/collection.ts +0 -15
- package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
- package/test/unit/spec/breakouts/events.ts +0 -89
- package/test/unit/spec/breakouts/index.ts +0 -1790
- package/test/unit/spec/breakouts/request.ts +0 -104
- package/test/unit/spec/breakouts/utils.js +0 -72
- package/test/unit/spec/interceptors/locusRetry.ts +0 -131
- package/test/unit/spec/interpretation/collection.ts +0 -15
- package/test/unit/spec/interpretation/index.ts +0 -589
- package/test/unit/spec/interpretation/siLanguage.ts +0 -28
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
- package/test/unit/spec/media/index.ts +0 -290
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
- package/test/unit/spec/meeting-info/index.js +0 -300
- package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
- package/test/unit/spec/multistream/receiveSlot.ts +0 -163
- package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
- package/test/unit/spec/multistream/remoteMedia.ts +0 -255
- package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
- package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
- package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
- package/test/unit/spec/reachability/clusterReachability.ts +0 -279
- package/test/unit/spec/reachability/request.js +0 -68
- package/test/unit/spec/reachability/util.ts +0 -40
- package/test/unit/spec/roap/request.ts +0 -255
- package/test/unit/spec/rtcMetrics/index.ts +0 -93
- package/test/unit/spec/webinar/collection.ts +0 -13
- package/test/unit/spec/webinar/index.ts +0 -60
- package/test/utils/constants.js +0 -9
- package/test/utils/integrationTestUtils.js +0 -46
- /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {SELF_ROLES, DISPLAY_HINTS
|
|
1
|
+
import {SELF_ROLES, DISPLAY_HINTS} from '../constants';
|
|
2
2
|
|
|
3
3
|
const InfoUtils: any = {};
|
|
4
4
|
|
|
@@ -9,15 +9,7 @@ InfoUtils.parse = (info, roles, isJoined = true) => {
|
|
|
9
9
|
coHost: InfoUtils.parseCoHost(info),
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
let userDisplayHints = isJoined
|
|
13
|
-
? {...parsed.policy}
|
|
14
|
-
: {
|
|
15
|
-
...Object.fromEntries(
|
|
16
|
-
Object.entries(parsed.policy).filter(([hint]) =>
|
|
17
|
-
INTERSTITIAL_DISPLAY_HINTS.includes(hint)
|
|
18
|
-
)
|
|
19
|
-
),
|
|
20
|
-
};
|
|
12
|
+
let userDisplayHints = isJoined ? {...parsed.policy} : {};
|
|
21
13
|
|
|
22
14
|
if (roles.includes(SELF_ROLES.COHOST)) {
|
|
23
15
|
userDisplayHints = {...userDisplayHints, ...parsed.coHost};
|
|
@@ -37,10 +29,6 @@ InfoUtils.parse = (info, roles, isJoined = true) => {
|
|
|
37
29
|
parsed.meetingNumber = info.meetingId;
|
|
38
30
|
}
|
|
39
31
|
|
|
40
|
-
if (info.datachannelUrl) {
|
|
41
|
-
parsed.datachannelUrl = info.datachannelUrl;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
32
|
return parsed;
|
|
45
33
|
};
|
|
46
34
|
|
|
@@ -13,10 +13,6 @@ MediaSharesUtils.parse = (mediaShares: object) => {
|
|
|
13
13
|
content: {
|
|
14
14
|
beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),
|
|
15
15
|
disposition: MediaSharesUtils.getContentDisposition(mediaShares),
|
|
16
|
-
annotation: MediaSharesUtils.getContentAnnotation(mediaShares),
|
|
17
|
-
url: MediaSharesUtils.getContentUrl(mediaShares),
|
|
18
|
-
shareInstanceId: MediaSharesUtils.getShareInstanceId(mediaShares),
|
|
19
|
-
deviceUrlSharing: MediaSharesUtils.getContentBeneficiaryDeviceUrl(mediaShares),
|
|
20
16
|
},
|
|
21
17
|
whiteboard: {
|
|
22
18
|
beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),
|
|
@@ -144,66 +140,6 @@ MediaSharesUtils.getContentBeneficiaryId = (mediaShares: object) => {
|
|
|
144
140
|
return contentFloor.beneficiary.id;
|
|
145
141
|
};
|
|
146
142
|
|
|
147
|
-
/**
|
|
148
|
-
* get live annotation is sharing from media shares (content)
|
|
149
|
-
* @param {Object} mediaShares
|
|
150
|
-
* @returns {Object}
|
|
151
|
-
*/
|
|
152
|
-
MediaSharesUtils.getContentAnnotation = (mediaShares: object) => {
|
|
153
|
-
const extractContent = MediaSharesUtils.extractContent(mediaShares);
|
|
154
|
-
|
|
155
|
-
if (!extractContent || !extractContent.annotation) {
|
|
156
|
-
return undefined;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
return extractContent.annotation;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* get url is sharing from media shares (content)
|
|
164
|
-
* @param {Object} mediaShares
|
|
165
|
-
* @returns {Object}
|
|
166
|
-
*/
|
|
167
|
-
MediaSharesUtils.getContentUrl = (mediaShares: object) => {
|
|
168
|
-
const extractContent = MediaSharesUtils.extractContent(mediaShares);
|
|
169
|
-
|
|
170
|
-
if (!extractContent || !extractContent.url) {
|
|
171
|
-
return undefined;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
return extractContent.url;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* get shareInstanceId is sharing from media shares (content)
|
|
179
|
-
* @param {Object} mediaShares
|
|
180
|
-
* @returns {Object}
|
|
181
|
-
*/
|
|
182
|
-
MediaSharesUtils.getShareInstanceId = (mediaShares: object) => {
|
|
183
|
-
const extractContent = MediaSharesUtils.extractContent(mediaShares);
|
|
184
|
-
|
|
185
|
-
if (!extractContent || !extractContent.floor || !extractContent.floor.shareInstanceId) {
|
|
186
|
-
return undefined;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
return extractContent.floor.shareInstanceId;
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* get deviceUrl that is requesting the floor for media shares (content)
|
|
194
|
-
* @param {Object} mediaShares
|
|
195
|
-
* @returns {Object}
|
|
196
|
-
*/
|
|
197
|
-
MediaSharesUtils.getContentBeneficiaryDeviceUrl = (mediaShares: object) => {
|
|
198
|
-
const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);
|
|
199
|
-
|
|
200
|
-
if (!contentFloor || !contentFloor.beneficiary || !contentFloor.beneficiary.deviceUrl) {
|
|
201
|
-
return null;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
return contentFloor.beneficiary.deviceUrl;
|
|
205
|
-
};
|
|
206
|
-
|
|
207
143
|
/**
|
|
208
144
|
* get who is sharing from media shares (whiteboard)
|
|
209
145
|
* @param {Object} mediaShares
|
package/src/locus-info/parser.ts
CHANGED
|
@@ -1,30 +1,8 @@
|
|
|
1
1
|
import {difference} from 'lodash';
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import SimpleQueue from '../common/queue';
|
|
4
4
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
5
5
|
|
|
6
|
-
import Metrics from '../metrics';
|
|
7
|
-
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
8
|
-
|
|
9
|
-
const 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
|
|
10
|
-
const OOO_DELTA_WAIT_TIME = 10000; // [ms] minimum wait time before we do a sync if we get out-of-order deltas
|
|
11
|
-
const OOO_DELTA_WAIT_TIME_RANDOM_DELAY = 5000; // [ms] max random delay added to OOO_DELTA_WAIT_TIME
|
|
12
|
-
|
|
13
|
-
type LocusDeltaDto = {
|
|
14
|
-
url: string;
|
|
15
|
-
baseSequence: {
|
|
16
|
-
rangeStart: number;
|
|
17
|
-
rangeEnd: number;
|
|
18
|
-
entries: number[];
|
|
19
|
-
};
|
|
20
|
-
sequence: {
|
|
21
|
-
rangeStart: number;
|
|
22
|
-
rangeEnd: number;
|
|
23
|
-
entries: number[];
|
|
24
|
-
};
|
|
25
|
-
syncUrl: string;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
6
|
/**
|
|
29
7
|
* Locus Delta Parser
|
|
30
8
|
* @private
|
|
@@ -32,11 +10,11 @@ type LocusDeltaDto = {
|
|
|
32
10
|
*/
|
|
33
11
|
export default class Parser {
|
|
34
12
|
// processing status
|
|
35
|
-
status
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
13
|
+
static status = {
|
|
14
|
+
IDLE: 'IDLE',
|
|
15
|
+
PAUSED: 'PAUSED',
|
|
16
|
+
WORKING: 'WORKING',
|
|
17
|
+
};
|
|
40
18
|
|
|
41
19
|
// loci comparison states
|
|
42
20
|
static loci = {
|
|
@@ -46,60 +24,21 @@ export default class Parser {
|
|
|
46
24
|
DESYNC: 'DESYNC',
|
|
47
25
|
USE_INCOMING: 'USE_INCOMING',
|
|
48
26
|
USE_CURRENT: 'USE_CURRENT',
|
|
49
|
-
WAIT: 'WAIT',
|
|
50
27
|
ERROR: 'ERROR',
|
|
51
|
-
LOCUS_URL_CHANGED: 'LOCUS_URL_CHANGED',
|
|
52
28
|
};
|
|
53
29
|
|
|
54
|
-
queue:
|
|
30
|
+
queue: any;
|
|
55
31
|
workingCopy: any;
|
|
56
|
-
syncTimer?: ReturnType<typeof setTimeout>;
|
|
57
32
|
|
|
58
33
|
/**
|
|
59
34
|
* @constructs Parser
|
|
60
35
|
*/
|
|
61
36
|
constructor() {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (Parser.isSequenceEmpty(left)) {
|
|
67
|
-
return -1;
|
|
68
|
-
}
|
|
69
|
-
if (Parser.isSequenceEmpty(right)) {
|
|
70
|
-
return 1;
|
|
71
|
-
}
|
|
72
|
-
const result = extract(Parser.compareSequence(left.baseSequence, right.baseSequence));
|
|
73
|
-
|
|
74
|
-
if (result === LT) {
|
|
75
|
-
return -1;
|
|
76
|
-
}
|
|
77
|
-
if (result === GT) {
|
|
78
|
-
return 1;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return 0;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
this.queue = new SortedQueue<LocusDeltaDto>(deltaCompareFunc);
|
|
85
|
-
this.status = 'IDLE';
|
|
37
|
+
this.queue = new SimpleQueue();
|
|
38
|
+
// @ts-ignore - This is declared as static class member and again being initialized here from same
|
|
39
|
+
this.status = Parser.status.IDLE;
|
|
86
40
|
this.onDeltaAction = null;
|
|
87
41
|
this.workingCopy = null;
|
|
88
|
-
this.syncTimer = undefined;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Returns a debug string representing a locus delta - useful for logging
|
|
93
|
-
*
|
|
94
|
-
* @param {LocusDeltaDto} locus Locus delta
|
|
95
|
-
* @returns {string}
|
|
96
|
-
*/
|
|
97
|
-
static locus2string(locus: LocusDeltaDto) {
|
|
98
|
-
if (!locus.sequence?.entries) {
|
|
99
|
-
return 'invalid';
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return locus.sequence.entries.length ? `seq=${locus.sequence.entries.at(-1)}` : 'empty';
|
|
103
42
|
}
|
|
104
43
|
|
|
105
44
|
/**
|
|
@@ -269,7 +208,7 @@ export default class Parser {
|
|
|
269
208
|
* @returns {string} loci comparison state
|
|
270
209
|
*/
|
|
271
210
|
private static compareDelta(current, incoming) {
|
|
272
|
-
const {LT, GT, EQ, DESYNC, USE_INCOMING
|
|
211
|
+
const {LT, GT, EQ, DESYNC, USE_INCOMING} = Parser.loci;
|
|
273
212
|
|
|
274
213
|
const {extractComparisonState: extract} = Parser;
|
|
275
214
|
const {packComparisonResult: pack} = Parser;
|
|
@@ -281,13 +220,6 @@ export default class Parser {
|
|
|
281
220
|
return pack(Parser.compareToAction(comparison), result);
|
|
282
221
|
}
|
|
283
222
|
|
|
284
|
-
if (incoming.url !== current.url) {
|
|
285
|
-
// when moving to/from a breakout session, the locus URL will change and also
|
|
286
|
-
// the baseSequence, making incoming and current incomparable, so use a
|
|
287
|
-
// unique comparison state
|
|
288
|
-
return pack(LOCUS_URL_CHANGED, result);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
223
|
comparison = Parser.compareSequence(current.sequence, incoming.baseSequence);
|
|
292
224
|
|
|
293
225
|
switch (extract(comparison)) {
|
|
@@ -296,21 +228,6 @@ export default class Parser {
|
|
|
296
228
|
comparison = USE_INCOMING;
|
|
297
229
|
break;
|
|
298
230
|
|
|
299
|
-
case LT:
|
|
300
|
-
if (extract(Parser.compareSequence(incoming.baseSequence, incoming.sequence)) === EQ) {
|
|
301
|
-
// special case where Locus sends a delta with baseSequence === sequence to trigger a sync,
|
|
302
|
-
// because the delta event is too large to be sent over mercury connection
|
|
303
|
-
comparison = DESYNC;
|
|
304
|
-
} else {
|
|
305
|
-
// the incoming locus has baseSequence from the future, so it is out-of-order,
|
|
306
|
-
// we are missing 1 or more locus that should be in front of it, we need to wait for it
|
|
307
|
-
comparison = WAIT;
|
|
308
|
-
|
|
309
|
-
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LOCUS_DELTA_OUT_OF_ORDER, {
|
|
310
|
-
stack: new Error().stack,
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
break;
|
|
314
231
|
default:
|
|
315
232
|
comparison = DESYNC;
|
|
316
233
|
}
|
|
@@ -318,49 +235,6 @@ export default class Parser {
|
|
|
318
235
|
return pack(comparison, result);
|
|
319
236
|
}
|
|
320
237
|
|
|
321
|
-
/**
|
|
322
|
-
* Compares Locus sequences - it should be called only for full Locus DTOs, not deltas
|
|
323
|
-
*
|
|
324
|
-
* @param {Types~Locus} current Current working copy
|
|
325
|
-
* @param {Types~Locus} incomingFullDto New Full Locus DTO
|
|
326
|
-
* @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
|
|
327
|
-
*/
|
|
328
|
-
static compareFullDtoSequence(current, incomingFullDto) {
|
|
329
|
-
if (Parser.isSequenceEmpty(current) || Parser.isSequenceEmpty(incomingFullDto)) {
|
|
330
|
-
return Parser.loci.USE_INCOMING;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
// the sequence.entries list will always contain at least 1 entry
|
|
334
|
-
// https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Sequence-Comparison-Algorithm
|
|
335
|
-
|
|
336
|
-
return incomingFullDto.sequence.entries.slice(-1)[0] > current.sequence.entries.slice(-1)[0]
|
|
337
|
-
? Parser.loci.USE_INCOMING
|
|
338
|
-
: Parser.loci.USE_CURRENT;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Returns true if the incoming full locus DTO is newer than the current working copy
|
|
343
|
-
*
|
|
344
|
-
* @param {Types~Locus} incomingFullDto New Full Locus DTO
|
|
345
|
-
* @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
|
|
346
|
-
*/
|
|
347
|
-
isNewFullLocus(incomingFullDto) {
|
|
348
|
-
if (!Parser.isLoci(incomingFullDto)) {
|
|
349
|
-
LoggerProxy.logger.info('Locus-info:parser#isNewFullLocus --> Ignoring non-locus object.');
|
|
350
|
-
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
if (!this.workingCopy) {
|
|
355
|
-
// we don't have a working copy yet, so any full locus is better than nothing
|
|
356
|
-
return true;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
const comparisonResult = Parser.compareFullDtoSequence(this.workingCopy, incomingFullDto);
|
|
360
|
-
|
|
361
|
-
return comparisonResult === Parser.loci.USE_INCOMING;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
238
|
/**
|
|
365
239
|
* Compares Locus sequences
|
|
366
240
|
* @param {Types~Locus} current Current working copy
|
|
@@ -519,10 +393,17 @@ export default class Parser {
|
|
|
519
393
|
*/
|
|
520
394
|
isValidLocus(newLoci) {
|
|
521
395
|
let isValid = false;
|
|
396
|
+
const {IDLE} = Parser.status;
|
|
522
397
|
const {isLoci} = Parser;
|
|
398
|
+
// @ts-ignore
|
|
399
|
+
const setStatus = (status) => {
|
|
400
|
+
// @ts-ignore
|
|
401
|
+
this.status = status;
|
|
402
|
+
};
|
|
523
403
|
|
|
524
404
|
// one or both objects are not locus delta events
|
|
525
405
|
if (!isLoci(this.workingCopy) || !isLoci(newLoci)) {
|
|
406
|
+
setStatus(IDLE);
|
|
526
407
|
LoggerProxy.logger.info(
|
|
527
408
|
'Locus-info:parser#processDeltaEvent --> Ignoring non-locus object. workingCopy:',
|
|
528
409
|
this.workingCopy,
|
|
@@ -574,25 +455,19 @@ export default class Parser {
|
|
|
574
455
|
* @returns {undefined}
|
|
575
456
|
*/
|
|
576
457
|
nextEvent() {
|
|
577
|
-
|
|
458
|
+
// @ts-ignore
|
|
459
|
+
if (this.status === Parser.status.PAUSED) {
|
|
578
460
|
LoggerProxy.logger.info('Locus-info:parser#nextEvent --> Locus parser paused.');
|
|
579
461
|
|
|
580
462
|
return;
|
|
581
463
|
}
|
|
582
464
|
|
|
583
|
-
if (this.status === 'BLOCKED') {
|
|
584
|
-
LoggerProxy.logger.info(
|
|
585
|
-
'Locus-info:parser#nextEvent --> Locus parser blocked by out-of-order delta.'
|
|
586
|
-
);
|
|
587
|
-
|
|
588
|
-
return;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
465
|
// continue processing until queue is empty
|
|
592
466
|
if (this.queue.size() > 0) {
|
|
593
467
|
this.processDeltaEvent();
|
|
594
468
|
} else {
|
|
595
|
-
|
|
469
|
+
// @ts-ignore
|
|
470
|
+
this.status = Parser.status.IDLE;
|
|
596
471
|
}
|
|
597
472
|
}
|
|
598
473
|
|
|
@@ -603,7 +478,7 @@ export default class Parser {
|
|
|
603
478
|
* @param {Types~Locus} locus Locus delta
|
|
604
479
|
* @returns {undefined}
|
|
605
480
|
*/
|
|
606
|
-
// eslint-disable-next-line
|
|
481
|
+
// eslint-disable-next-line no-unused-vars
|
|
607
482
|
onDeltaAction(action: string, locus) {}
|
|
608
483
|
|
|
609
484
|
/**
|
|
@@ -614,20 +489,15 @@ export default class Parser {
|
|
|
614
489
|
onDeltaEvent(loci) {
|
|
615
490
|
// enqueue the new loci
|
|
616
491
|
this.queue.enqueue(loci);
|
|
492
|
+
// start processing events in the queue if idle
|
|
493
|
+
// and a function handler is defined
|
|
494
|
+
// @ts-ignore
|
|
495
|
+
if (this.status === Parser.status.IDLE && this.onDeltaAction) {
|
|
496
|
+
// Update status, ensure we only process one event at a time.
|
|
497
|
+
// @ts-ignore
|
|
498
|
+
this.status = Parser.status.WORKING;
|
|
617
499
|
|
|
618
|
-
|
|
619
|
-
if (this.status === 'BLOCKED') {
|
|
620
|
-
if (this.queue.size() > MAX_OOO_DELTA_COUNT) {
|
|
621
|
-
this.triggerSync('queue too big, blocked on out-of-order delta');
|
|
622
|
-
} else {
|
|
623
|
-
this.processDeltaEvent();
|
|
624
|
-
}
|
|
625
|
-
} else if (this.status === 'IDLE') {
|
|
626
|
-
// Update status, ensure we only process one event at a time.
|
|
627
|
-
this.status = 'WORKING';
|
|
628
|
-
|
|
629
|
-
this.processDeltaEvent();
|
|
630
|
-
}
|
|
500
|
+
this.processDeltaEvent();
|
|
631
501
|
}
|
|
632
502
|
}
|
|
633
503
|
|
|
@@ -646,55 +516,11 @@ export default class Parser {
|
|
|
646
516
|
* @returns {undefined}
|
|
647
517
|
*/
|
|
648
518
|
pause() {
|
|
649
|
-
|
|
519
|
+
// @ts-ignore
|
|
520
|
+
this.status = Parser.status.PAUSED;
|
|
650
521
|
LoggerProxy.logger.info('Locus-info:parser#pause --> Locus parser paused.');
|
|
651
522
|
}
|
|
652
523
|
|
|
653
|
-
/**
|
|
654
|
-
* Triggers a sync with Locus
|
|
655
|
-
*
|
|
656
|
-
* @param {string} reason used just for logging
|
|
657
|
-
* @returns {undefined}
|
|
658
|
-
*/
|
|
659
|
-
private triggerSync(reason: string) {
|
|
660
|
-
LoggerProxy.logger.info(`Locus-info:parser#triggerSync --> doing sync, reason: ${reason}`);
|
|
661
|
-
this.stopSyncTimer();
|
|
662
|
-
this.pause();
|
|
663
|
-
this.onDeltaAction(Parser.loci.DESYNC, this.workingCopy);
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
/**
|
|
667
|
-
* Starts a timer with a random delay. When that timer expires we will do a sync.
|
|
668
|
-
*
|
|
669
|
-
* The main purpose of this timer is to handle a case when we get some out-of-order deltas,
|
|
670
|
-
* so we start waiting to receive the missing delta. If that delta never arrives, this timer
|
|
671
|
-
* will trigger a sync with Locus.
|
|
672
|
-
*
|
|
673
|
-
* @returns {undefined}
|
|
674
|
-
*/
|
|
675
|
-
private startSyncTimer() {
|
|
676
|
-
if (this.syncTimer === undefined) {
|
|
677
|
-
const timeout = OOO_DELTA_WAIT_TIME + Math.random() * OOO_DELTA_WAIT_TIME_RANDOM_DELAY;
|
|
678
|
-
|
|
679
|
-
this.syncTimer = setTimeout(() => {
|
|
680
|
-
this.syncTimer = undefined;
|
|
681
|
-
this.triggerSync('timer expired, blocked on out-of-order delta');
|
|
682
|
-
}, timeout);
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
/**
|
|
687
|
-
* Stops the timer for triggering a sync
|
|
688
|
-
*
|
|
689
|
-
* @returns {undefined}
|
|
690
|
-
*/
|
|
691
|
-
private stopSyncTimer() {
|
|
692
|
-
if (this.syncTimer !== undefined) {
|
|
693
|
-
clearTimeout(this.syncTimer);
|
|
694
|
-
this.syncTimer = undefined;
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
|
|
698
524
|
/**
|
|
699
525
|
* Processes next locus delta in the queue,
|
|
700
526
|
* continues until the queue is empty
|
|
@@ -702,13 +528,11 @@ export default class Parser {
|
|
|
702
528
|
* @returns {undefined}
|
|
703
529
|
*/
|
|
704
530
|
processDeltaEvent() {
|
|
705
|
-
const {DESYNC, USE_INCOMING
|
|
531
|
+
const {DESYNC, USE_INCOMING} = Parser.loci;
|
|
706
532
|
const {extractComparisonState: extract} = Parser;
|
|
707
533
|
const newLoci = this.queue.dequeue();
|
|
708
534
|
|
|
709
535
|
if (!this.isValidLocus(newLoci)) {
|
|
710
|
-
this.nextEvent();
|
|
711
|
-
|
|
712
536
|
return;
|
|
713
537
|
}
|
|
714
538
|
|
|
@@ -719,59 +543,23 @@ export default class Parser {
|
|
|
719
543
|
// for full debugging.
|
|
720
544
|
LoggerProxy.logger.debug(`Locus-info:parser#processDeltaEvent --> Locus Debug: ${result}`);
|
|
721
545
|
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
case USE_INCOMING:
|
|
731
|
-
case LOCUS_URL_CHANGED:
|
|
732
|
-
// update working copy for future comparisons.
|
|
733
|
-
// Note: The working copy of parser gets updated in .onFullLocus()
|
|
734
|
-
// and here when USE_INCOMING or LOCUS_URL_CHANGED locus.
|
|
735
|
-
this.workingCopy = newLoci;
|
|
736
|
-
break;
|
|
737
|
-
|
|
738
|
-
case WAIT:
|
|
739
|
-
// we've taken newLoci from the front of the queue, so put it back there as we have to wait
|
|
740
|
-
// for the one that should be in front of it, before we can process it
|
|
741
|
-
this.queue.enqueue(newLoci);
|
|
742
|
-
needToWait = true;
|
|
743
|
-
break;
|
|
744
|
-
|
|
745
|
-
default:
|
|
746
|
-
break;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
if (needToWait) {
|
|
750
|
-
this.status = 'BLOCKED';
|
|
751
|
-
this.startSyncTimer();
|
|
752
|
-
} else {
|
|
753
|
-
this.stopSyncTimer();
|
|
754
|
-
|
|
755
|
-
if (this.status === 'BLOCKED') {
|
|
756
|
-
// we are not blocked anymore
|
|
757
|
-
this.status = 'WORKING';
|
|
758
|
-
|
|
759
|
-
LoggerProxy.logger.info(
|
|
760
|
-
`Locus-info:parser#processDeltaEvent --> received delta that we were waiting for ${Parser.locus2string(
|
|
761
|
-
newLoci
|
|
762
|
-
)}, not blocked anymore`
|
|
763
|
-
);
|
|
764
|
-
}
|
|
546
|
+
if (lociComparison === DESYNC) {
|
|
547
|
+
// wait for desync response
|
|
548
|
+
this.pause();
|
|
549
|
+
} else if (lociComparison === USE_INCOMING) {
|
|
550
|
+
// update working copy for future comparisons.
|
|
551
|
+
// Note: The working copy of parser gets updated in .onFullLocus()
|
|
552
|
+
// and here when USE_INCOMING locus.
|
|
553
|
+
this.workingCopy = newLoci;
|
|
765
554
|
}
|
|
766
555
|
|
|
767
556
|
if (this.onDeltaAction) {
|
|
768
557
|
LoggerProxy.logger.info(
|
|
769
|
-
`Locus-info:parser#processDeltaEvent --> Locus Delta ${
|
|
770
|
-
newLoci
|
|
771
|
-
)}, Action: ${lociComparison}`
|
|
558
|
+
`Locus-info:parser#processDeltaEvent --> Locus Delta Action: ${lociComparison}`
|
|
772
559
|
);
|
|
773
560
|
|
|
774
|
-
|
|
561
|
+
// eslint-disable-next-line no-useless-call
|
|
562
|
+
this.onDeltaAction.call(this, lociComparison, newLoci);
|
|
775
563
|
}
|
|
776
564
|
|
|
777
565
|
this.nextEvent();
|
|
@@ -783,7 +571,8 @@ export default class Parser {
|
|
|
783
571
|
*/
|
|
784
572
|
resume() {
|
|
785
573
|
LoggerProxy.logger.info('Locus-info:parser#resume --> Locus parser resumed.');
|
|
786
|
-
|
|
574
|
+
// @ts-ignore
|
|
575
|
+
this.status = Parser.status.WORKING;
|
|
787
576
|
this.nextEvent();
|
|
788
577
|
}
|
|
789
578
|
|