@webex/plugin-meetings 3.8.1 → 3.9.0-webinar5k.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 +26 -13
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +16 -3
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +1 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +26 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/hashTree/constants.js +23 -0
- package/dist/hashTree/constants.js.map +1 -0
- package/dist/hashTree/hashTree.js +516 -0
- package/dist/hashTree/hashTree.js.map +1 -0
- package/dist/hashTree/hashTreeParser.js +521 -0
- package/dist/hashTree/hashTreeParser.js.map +1 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +11 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +331 -59
- package/dist/locus-info/index.js.map +1 -1
- package/dist/media/index.js +2 -2
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/brbState.js +17 -14
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +5 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +264 -125
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +2 -5
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +19 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +8 -11
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +6 -2
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/members/collection.js +13 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +44 -23
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +3 -3
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +18 -6
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +32 -2
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/index.js +5 -10
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +12 -0
- package/dist/types/controls-options-manager/enums.d.ts +2 -1
- package/dist/types/controls-options-manager/types.d.ts +4 -1
- package/dist/types/hashTree/constants.d.ts +8 -0
- package/dist/types/hashTree/hashTree.d.ts +128 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +152 -0
- package/dist/types/locus-info/index.d.ts +93 -3
- package/dist/types/meeting/brbState.d.ts +0 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
- package/dist/types/meeting/index.d.ts +36 -3
- package/dist/types/meeting/request.d.ts +9 -1
- package/dist/types/meeting/request.type.d.ts +74 -0
- package/dist/types/meeting/util.d.ts +3 -3
- package/dist/types/member/types.d.ts +1 -0
- package/dist/types/members/collection.d.ts +6 -0
- package/dist/types/members/index.d.ts +15 -3
- package/dist/types/members/request.d.ts +1 -1
- package/dist/types/members/util.d.ts +5 -2
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/multistream/sendSlotManager.d.ts +16 -0
- package/dist/types/reachability/index.d.ts +2 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +26 -25
- package/src/constants.ts +16 -0
- package/src/controls-options-manager/enums.ts +1 -0
- package/src/controls-options-manager/types.ts +6 -1
- package/src/controls-options-manager/util.ts +31 -0
- package/src/hashTree/constants.ts +12 -0
- package/src/hashTree/hashTree.ts +460 -0
- package/src/hashTree/hashTreeParser.ts +556 -0
- package/src/locus-info/controlsUtils.ts +15 -0
- package/src/locus-info/index.ts +434 -58
- package/src/media/index.ts +2 -2
- package/src/meeting/brbState.ts +13 -9
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +193 -39
- package/src/meeting/muteState.ts +2 -6
- package/src/meeting/request.ts +16 -0
- package/src/meeting/request.type.ts +64 -0
- package/src/meeting/util.ts +17 -20
- package/src/meetings/index.ts +17 -3
- package/src/member/types.ts +1 -0
- package/src/members/collection.ts +11 -0
- package/src/members/index.ts +33 -7
- package/src/members/request.ts +2 -2
- package/src/members/util.ts +14 -3
- package/src/metrics/constants.ts +1 -0
- package/src/multistream/sendSlotManager.ts +34 -2
- package/src/reachability/index.ts +5 -13
- package/test/unit/spec/controls-options-manager/util.js +58 -0
- package/test/unit/spec/hashTree/hashTree.ts +394 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +156 -0
- package/test/unit/spec/locus-info/controlsUtils.js +52 -0
- package/test/unit/spec/locus-info/index.js +547 -54
- package/test/unit/spec/media/index.ts +107 -0
- package/test/unit/spec/meeting/brbState.ts +23 -4
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +647 -46
- package/test/unit/spec/meeting/request.js +71 -0
- package/test/unit/spec/members/index.js +33 -10
- package/test/unit/spec/members/request.js +2 -2
- package/test/unit/spec/members/utils.js +27 -7
- package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
- package/test/unit/spec/reachability/index.ts +2 -6
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/index.d.ts +0 -117
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/common/browser-detection.d.ts +0 -9
- package/dist/common/collection.d.ts +0 -48
- package/dist/common/config.d.ts +0 -2
- package/dist/common/errors/captcha-error.d.ts +0 -15
- package/dist/common/errors/intent-to-join.d.ts +0 -16
- package/dist/common/errors/join-meeting.d.ts +0 -17
- package/dist/common/errors/media.d.ts +0 -15
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/parameter.d.ts +0 -15
- package/dist/common/errors/password-error.d.ts +0 -15
- package/dist/common/errors/permission.d.ts +0 -14
- package/dist/common/errors/reclaim-host-role-error.d.ts +0 -60
- package/dist/common/errors/reclaim-host-role-error.js +0 -158
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
- package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/common/errors/reconnection-in-progress.js +0 -35
- package/dist/common/errors/reconnection-in-progress.js.map +0 -1
- package/dist/common/errors/reconnection.d.ts +0 -15
- package/dist/common/errors/stats.d.ts +0 -15
- package/dist/common/errors/webex-errors.d.ts +0 -81
- package/dist/common/errors/webex-meetings-error.d.ts +0 -20
- package/dist/common/events/events-scope.d.ts +0 -17
- package/dist/common/events/events.d.ts +0 -12
- package/dist/common/events/trigger-proxy.d.ts +0 -2
- package/dist/common/events/util.d.ts +0 -2
- package/dist/common/logs/logger-config.d.ts +0 -2
- package/dist/common/logs/logger-proxy.d.ts +0 -2
- package/dist/common/logs/request.d.ts +0 -34
- package/dist/common/queue.d.ts +0 -32
- package/dist/config.d.ts +0 -73
- package/dist/constants.d.ts +0 -952
- package/dist/controls-options-manager/constants.d.ts +0 -4
- package/dist/controls-options-manager/enums.d.ts +0 -5
- package/dist/controls-options-manager/index.d.ts +0 -120
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/util.d.ts +0 -7
- package/dist/index.d.ts +0 -4
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/locus-info/controlsUtils.d.ts +0 -2
- package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
- package/dist/locus-info/fullState.d.ts +0 -2
- package/dist/locus-info/hostUtils.d.ts +0 -2
- package/dist/locus-info/index.d.ts +0 -269
- package/dist/locus-info/infoUtils.d.ts +0 -2
- package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
- package/dist/locus-info/parser.d.ts +0 -212
- package/dist/locus-info/selfUtils.d.ts +0 -2
- package/dist/media/index.d.ts +0 -32
- package/dist/media/properties.d.ts +0 -108
- package/dist/media/util.d.ts +0 -2
- package/dist/mediaQualityMetrics/config.d.ts +0 -233
- package/dist/mediaQualityMetrics/config.js +0 -513
- package/dist/mediaQualityMetrics/config.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/meeting/in-meeting-actions.d.ts +0 -79
- package/dist/meeting/index.d.ts +0 -1622
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/muteState.d.ts +0 -116
- package/dist/meeting/request.d.ts +0 -257
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/state.d.ts +0 -9
- package/dist/meeting/util.d.ts +0 -2
- package/dist/meeting/voicea-meeting.d.ts +0 -16
- package/dist/meeting-info/collection.d.ts +0 -20
- package/dist/meeting-info/index.d.ts +0 -57
- package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
- package/dist/meeting-info/request.d.ts +0 -22
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/meetings/collection.d.ts +0 -23
- package/dist/meetings/index.d.ts +0 -296
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/request.d.ts +0 -27
- package/dist/meetings/util.d.ts +0 -18
- package/dist/member/index.d.ts +0 -148
- package/dist/member/member.types.d.ts +0 -11
- package/dist/member/member.types.js +0 -18
- package/dist/member/member.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/util.d.ts +0 -2
- package/dist/members/collection.d.ts +0 -24
- package/dist/members/index.d.ts +0 -308
- package/dist/members/request.d.ts +0 -58
- package/dist/members/types.d.ts +0 -25
- package/dist/members/util.d.ts +0 -2
- 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/metrics/constants.d.ts +0 -59
- package/dist/metrics/index.d.ts +0 -152
- package/dist/multistream/mediaRequestManager.d.ts +0 -119
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMediaGroup.d.ts +0 -49
- package/dist/multistream/remoteMediaManager.d.ts +0 -300
- package/dist/multistream/sendSlotManager.d.ts +0 -69
- package/dist/networkQualityMonitor/index.d.ts +0 -70
- package/dist/networkQualityMonitor/index.js +0 -226
- package/dist/networkQualityMonitor/index.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/personal-meeting-room/index.d.ts +0 -47
- package/dist/personal-meeting-room/request.d.ts +0 -14
- package/dist/personal-meeting-room/util.d.ts +0 -2
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/index.d.ts +0 -139
- package/dist/reachability/request.d.ts +0 -35
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/reactions.d.ts +0 -4
- package/dist/reactions/reactions.type.d.ts +0 -32
- package/dist/reconnection-manager/index.d.ts +0 -112
- package/dist/recording-controller/enums.d.ts +0 -7
- package/dist/recording-controller/index.d.ts +0 -193
- package/dist/recording-controller/util.d.ts +0 -13
- 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/index.d.ts +0 -116
- package/dist/roap/request.d.ts +0 -35
- 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/turnDiscovery.d.ts +0 -81
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.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 -61
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/statsAnalyzer/global.d.ts +0 -118
- package/dist/statsAnalyzer/global.js +0 -127
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.d.ts +0 -193
- package/dist/statsAnalyzer/index.js +0 -1019
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
- package/dist/statsAnalyzer/mqaUtil.js +0 -181
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/transcription/index.d.ts +0 -64
- package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/index.d.ts +0 -5
package/dist/locus-info/index.js
CHANGED
@@ -1,16 +1,24 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
3
4
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
5
|
+
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
6
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
8
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
9
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
10
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
4
11
|
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
|
5
12
|
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
|
6
13
|
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
|
7
14
|
var _Array$isArray2 = require("@babel/runtime-corejs2/core-js/array/is-array");
|
8
|
-
var
|
15
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
9
16
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
10
17
|
_Object$defineProperty(exports, "__esModule", {
|
11
18
|
value: true
|
12
19
|
});
|
13
20
|
exports.default = void 0;
|
21
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
14
22
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
15
23
|
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
|
16
24
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
@@ -34,11 +42,18 @@ var _mediaSharesUtils = _interopRequireDefault(require("./mediaSharesUtils"));
|
|
34
42
|
var _parser = _interopRequireDefault(require("./parser"));
|
35
43
|
var _metrics = _interopRequireDefault(require("../metrics"));
|
36
44
|
var _constants2 = _interopRequireDefault(require("../metrics/constants"));
|
45
|
+
var _hashTreeParser = _interopRequireWildcard(require("../hashTree/hashTreeParser"));
|
46
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
47
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
37
48
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray2(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
38
49
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
39
50
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
51
|
+
function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
52
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
40
53
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
41
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
54
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable class-methods-use-this */
|
55
|
+
var LocusDtoTopLevelKeys = ['controls', 'fullState', 'host', 'info', 'links', 'mediaShares', 'meetings', 'participants', 'replaces', 'self', 'sequence', 'syncUrl', 'url'];
|
56
|
+
|
42
57
|
/**
|
43
58
|
* @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
|
44
59
|
* @export
|
@@ -48,6 +63,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
48
63
|
var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
49
64
|
(0, _inherits2.default)(LocusInfo, _EventsScope);
|
50
65
|
var _super = _createSuper(LocusInfo);
|
66
|
+
// mapping of hash tree object ids to participant ids
|
67
|
+
|
51
68
|
/**
|
52
69
|
* Constructor
|
53
70
|
* @param {function} updateMeeting callback to update the meeting object from an object
|
@@ -91,6 +108,8 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
91
108
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resources", void 0);
|
92
109
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mainSessionLocusCache", void 0);
|
93
110
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "self", void 0);
|
111
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hashTreeParser", void 0);
|
112
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hashTreeObjectId2ParticipantId", void 0);
|
94
113
|
_this.parsedLocus = {
|
95
114
|
states: []
|
96
115
|
};
|
@@ -100,6 +119,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
100
119
|
_this.meetingId = meetingId;
|
101
120
|
_this.updateMeeting = updateMeeting;
|
102
121
|
_this.locusParser = new _parser.default();
|
122
|
+
_this.hashTreeObjectId2ParticipantId = new _map.default();
|
103
123
|
return _this;
|
104
124
|
}
|
105
125
|
|
@@ -115,6 +135,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
115
135
|
var _this2 = this;
|
116
136
|
var isDelta;
|
117
137
|
var url;
|
138
|
+
var meetingDestroyed = false;
|
118
139
|
if (this.locusParser.workingCopy.syncUrl) {
|
119
140
|
url = this.locusParser.workingCopy.syncUrl;
|
120
141
|
isDelta = true;
|
@@ -139,30 +160,60 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
139
160
|
code: e.code
|
140
161
|
});
|
141
162
|
isDelta = false;
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
163
|
+
|
164
|
+
// Locus sometimes returns 403, for example if meeting has ended, no point trying the fallback to full sync in that case
|
165
|
+
if (e.statusCode !== 403) {
|
166
|
+
return meeting.meetingRequest.getLocusDTO({
|
167
|
+
url: meeting.locusUrl
|
168
|
+
}).catch(function (err) {
|
169
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
170
|
+
_this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
171
|
+
meetingDestroyed = true;
|
172
|
+
throw err;
|
173
|
+
});
|
174
|
+
}
|
175
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> got 403 from Locus, skipping fallback to full sync, destroying the meeting');
|
176
|
+
} else {
|
177
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
149
178
|
}
|
150
|
-
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
151
179
|
_this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
180
|
+
meetingDestroyed = true;
|
152
181
|
throw e;
|
153
182
|
}).then(function (res) {
|
154
|
-
if (
|
155
|
-
if (
|
156
|
-
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
157
|
-
} else {
|
183
|
+
if ((0, _lodash.isEmpty)(res.body)) {
|
184
|
+
if (isDelta) {
|
158
185
|
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');
|
186
|
+
} else {
|
187
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from full DTO sync request');
|
159
188
|
}
|
160
|
-
|
161
|
-
|
189
|
+
return;
|
190
|
+
}
|
191
|
+
if (isDelta) {
|
192
|
+
if (res.body.baseSequence) {
|
193
|
+
meeting.locusInfo.handleLocusDelta(res.body, meeting); // todo: check if this is safe, is isDelta=true always only for non-hash tree locus
|
194
|
+
|
195
|
+
return;
|
196
|
+
}
|
197
|
+
// in some cases Locus might return us full DTO even when we asked for a delta
|
198
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> got full DTO when we asked for delta');
|
199
|
+
}
|
200
|
+
meeting.locusInfo.onFullLocus(res.body);
|
201
|
+
}).catch(function (e) {
|
202
|
+
_loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> getLocusDTO succeeded but failed to handle result, locus parser will resume but not all data may be synced (".concat(e.toString(), ")"));
|
203
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.LOCUS_SYNC_HANDLING_FAILED, {
|
204
|
+
correlationId: meeting.correlationId,
|
205
|
+
url: url,
|
206
|
+
reason: e.message,
|
207
|
+
errorName: e.name,
|
208
|
+
stack: e.stack,
|
209
|
+
code: e.code
|
210
|
+
});
|
211
|
+
}).finally(function () {
|
212
|
+
if (!meetingDestroyed) {
|
213
|
+
// Notify parser to resume processing delta events.
|
214
|
+
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
215
|
+
_this2.locusParser.resume();
|
162
216
|
}
|
163
|
-
// Notify parser to resume processing delta events.
|
164
|
-
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
165
|
-
_this2.locusParser.resume();
|
166
217
|
});
|
167
218
|
}
|
168
219
|
|
@@ -265,7 +316,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
265
316
|
this.updateLocusCache(locus);
|
266
317
|
// above section only updates the locusInfo object
|
267
318
|
// The below section makes sure it updates the locusInfo as well as updates the meeting object
|
268
|
-
this.updateParticipants(locus.participants);
|
319
|
+
this.updateParticipants(locus.participants, []);
|
269
320
|
// For 1:1 space meeting the conversation Url does not exist in locus.conversation
|
270
321
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
271
322
|
this.updateControls(locus.controls, locus.self);
|
@@ -283,19 +334,178 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
283
334
|
|
284
335
|
/**
|
285
336
|
* @param {Object} locus
|
337
|
+
* @param {DataSet[]} [dataSets=[]] - Array of data sets
|
286
338
|
* @returns {undefined}
|
287
339
|
* @memberof LocusInfo
|
288
340
|
*/
|
289
341
|
}, {
|
290
342
|
key: "initialSetup",
|
291
343
|
value: function initialSetup(locus) {
|
344
|
+
var dataSets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
292
345
|
this.updateLocusCache(locus);
|
293
|
-
this.onFullLocus(locus);
|
346
|
+
this.onFullLocus(locus, undefined, dataSets);
|
294
347
|
|
295
348
|
// Change it to true after it receives it first locus object
|
296
349
|
this.emitChange = true;
|
297
350
|
}
|
298
351
|
|
352
|
+
/**
|
353
|
+
*
|
354
|
+
* @param {HashTreeObject} object data set object
|
355
|
+
* @param {any} locus
|
356
|
+
* @returns {void}
|
357
|
+
*/
|
358
|
+
}, {
|
359
|
+
key: "updateHashTreeObjectInLocus",
|
360
|
+
value: function updateHashTreeObjectInLocus(object, locus) {
|
361
|
+
var type = object.htMeta.elementId.type.toLowerCase();
|
362
|
+
switch (type) {
|
363
|
+
case _hashTreeParser.ObjectType.locus:
|
364
|
+
{
|
365
|
+
if (!object.data) {
|
366
|
+
_loggerProxy.default.logger.warn("Locus-info:index#updateHashTreeObjectInLocus --> received LOCUS object without data, this is not supported!");
|
367
|
+
return locus;
|
368
|
+
}
|
369
|
+
// replace the main locus
|
370
|
+
|
371
|
+
// The Locus object from MAIN dataset has empty participants, so removing them to avoid it overriding the ones in our current locus object
|
372
|
+
// Also, it doesn't have "self". That's OK as it won't override existing locus.self and also existing SDK code can handle that missing self in Locus updates
|
373
|
+
var locusObjectFromData = object.data;
|
374
|
+
delete locusObjectFromData.participants;
|
375
|
+
locus = _objectSpread(_objectSpread({}, locus), locusObjectFromData);
|
376
|
+
locus.htMeta = object.htMeta;
|
377
|
+
break;
|
378
|
+
}
|
379
|
+
case _hashTreeParser.ObjectType.participant:
|
380
|
+
_loggerProxy.default.logger.info("Locus-info:index#updateHashTreeObjectInLocus --> participant id=".concat(object.htMeta.elementId.id, " ").concat(object.data ? 'updated' : 'removed'));
|
381
|
+
console.log('marcin: hashTreeObjectId2ParticipantId=', (0, _lodash.cloneDeep)(this.hashTreeObjectId2ParticipantId));
|
382
|
+
if (object.data) {
|
383
|
+
if (!locus.participants) {
|
384
|
+
locus.participants = [];
|
385
|
+
}
|
386
|
+
var participantObject = object.data;
|
387
|
+
participantObject.htMeta = object.htMeta;
|
388
|
+
locus.participants.push(participantObject);
|
389
|
+
this.hashTreeObjectId2ParticipantId.set(object.htMeta.elementId.id, participantObject.id);
|
390
|
+
} else {
|
391
|
+
var participantId = this.hashTreeObjectId2ParticipantId.get(object.htMeta.elementId.id);
|
392
|
+
if (!locus.jsSdkMeta) {
|
393
|
+
locus.jsSdkMeta = {
|
394
|
+
removedParticipantIds: []
|
395
|
+
};
|
396
|
+
}
|
397
|
+
locus.jsSdkMeta.removedParticipantIds.push(participantId);
|
398
|
+
this.hashTreeObjectId2ParticipantId.delete(object.htMeta.elementId.id);
|
399
|
+
}
|
400
|
+
break;
|
401
|
+
case _hashTreeParser.ObjectType.self:
|
402
|
+
if (!object.data) {
|
403
|
+
_loggerProxy.default.logger.warn("Locus-info:index#updateHashTreeObjectInLocus --> received SELF object without data, this is not supported!");
|
404
|
+
return locus;
|
405
|
+
}
|
406
|
+
locus.self = object.data;
|
407
|
+
break;
|
408
|
+
}
|
409
|
+
return locus;
|
410
|
+
}
|
411
|
+
|
412
|
+
/**
|
413
|
+
* Handles HTTP response from Locus API call when hash tree update.
|
414
|
+
* @param {Meeting} meeting meeting object
|
415
|
+
* @param {LocusApiResponseBody} responseBody body of the http reponse from Locus API call
|
416
|
+
* @returns {void}
|
417
|
+
*/
|
418
|
+
}, {
|
419
|
+
key: "handleLocusAPIResponse",
|
420
|
+
value: function handleLocusAPIResponse(meeting, responseBody) {
|
421
|
+
console.log('marcin: locus response from API call:', responseBody);
|
422
|
+
if (responseBody.dataSets) {
|
423
|
+
if (!this.hashTreeParser) {
|
424
|
+
_loggerProxy.default.logger.warn("Locus-info:index#handleLocusAPIResponse --> received response with hash tree info from Locus API, but we don't have the hashTreeParser created");
|
425
|
+
return;
|
426
|
+
}
|
427
|
+
// Locus is using the new hash tree mechanism
|
428
|
+
// so update our data in the hash tree parser
|
429
|
+
this.hashTreeParser.handleLocusUpdate(responseBody);
|
430
|
+
|
431
|
+
// but the Locus object we receive in this case looks same like classic delta, so we can use existing delta method to process it
|
432
|
+
this.onDeltaLocus(responseBody.locus);
|
433
|
+
} else {
|
434
|
+
// classic Locus delta
|
435
|
+
this.handleLocusDelta(responseBody.locus, meeting);
|
436
|
+
}
|
437
|
+
}
|
438
|
+
|
439
|
+
/**
|
440
|
+
* Handles a hash tree message received from Locus.
|
441
|
+
*
|
442
|
+
* @param {Meeting} meeting - The meeting object
|
443
|
+
* @param {HashTreeMessage} message incoming hash tree message
|
444
|
+
* @returns {void}
|
445
|
+
*/
|
446
|
+
}, {
|
447
|
+
key: "handleHashTreeMessage",
|
448
|
+
value: function handleHashTreeMessage(meeting, message) {
|
449
|
+
if (!this.hashTreeParser) {
|
450
|
+
_loggerProxy.default.logger.warn("Locus-info:index#handleHashTreeMessage --> received hash tree message, but we don't have the hashTreeParser");
|
451
|
+
return;
|
452
|
+
}
|
453
|
+
if (message.locusStateElements === undefined) {
|
454
|
+
// todo: need to see in practice how exactly the heartbeat messages look like
|
455
|
+
this.hashTreeParser.handleRootHashHeartBeatMessage(message);
|
456
|
+
} else {
|
457
|
+
this.hashTreeParser.handleMessage(message);
|
458
|
+
}
|
459
|
+
}
|
460
|
+
|
461
|
+
/**
|
462
|
+
* Updates our locus info based on the data parsed by the hash tree parser.
|
463
|
+
*
|
464
|
+
* @param {LocusInfoUpdateType} updateType - The type of update received.
|
465
|
+
* @param {Object} [data] - Additional data for the update, if applicable.
|
466
|
+
* @returns {void}
|
467
|
+
*/
|
468
|
+
}, {
|
469
|
+
key: "updateFromHashTree",
|
470
|
+
value: function updateFromHashTree(updateType, data) {
|
471
|
+
var _this4 = this;
|
472
|
+
switch (updateType) {
|
473
|
+
case _hashTreeParser.LocusInfoUpdateType.OBJECTS_UPDATED:
|
474
|
+
{
|
475
|
+
// initialize the main locus with what we currently have
|
476
|
+
// but with empty participants array
|
477
|
+
var locus = {
|
478
|
+
participants: [],
|
479
|
+
jsSdkMeta: {
|
480
|
+
removedParticipantIds: []
|
481
|
+
}
|
482
|
+
};
|
483
|
+
LocusDtoTopLevelKeys.forEach(function (key) {
|
484
|
+
if (key === 'participants') {
|
485
|
+
locus[key] = [];
|
486
|
+
} else {
|
487
|
+
locus[key] = (0, _lodash.cloneDeep)(_this4[key]);
|
488
|
+
}
|
489
|
+
});
|
490
|
+
|
491
|
+
// apply the updates from the hash tree onto the locus
|
492
|
+
data.updatedObjects.forEach(function (object) {
|
493
|
+
locus = _this4.updateHashTreeObjectInLocus(object, locus);
|
494
|
+
});
|
495
|
+
|
496
|
+
// update our locus info with the new locus
|
497
|
+
this.onDeltaLocus(locus);
|
498
|
+
break;
|
499
|
+
}
|
500
|
+
case _hashTreeParser.LocusInfoUpdateType.MEETING_ENDED:
|
501
|
+
{
|
502
|
+
_loggerProxy.default.logger.info("Locus-info:index#updateFromHashTree --> received signal that meeting ended, destroying meeting ".concat(this.meetingId));
|
503
|
+
var meeting = this.webex.meetings.meetingCollection.get(this.meetingId);
|
504
|
+
this.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
505
|
+
}
|
506
|
+
}
|
507
|
+
}
|
508
|
+
|
299
509
|
/**
|
300
510
|
* @param {Meeting} meeting
|
301
511
|
* @param {Object} data
|
@@ -305,34 +515,42 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
305
515
|
}, {
|
306
516
|
key: "parse",
|
307
517
|
value: function parse(meeting, data) {
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
518
|
+
if (data.eventType === 'locus.state_message') {
|
519
|
+
// this is the new hashmap Locus message format (only applicable to webinars for now)
|
520
|
+
this.handleHashTreeMessage(meeting, data.stateElementsMessage);
|
521
|
+
} else {
|
522
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
523
|
+
var eventType = data.eventType;
|
524
|
+
var locus = this.getTheLocusToUpdate(data.locus);
|
525
|
+
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus data: ".concat(eventType));
|
526
|
+
locus.jsSdkMeta = {
|
527
|
+
removedParticipantIds: []
|
528
|
+
};
|
529
|
+
switch (eventType) {
|
530
|
+
case _constants.LOCUSEVENT.PARTICIPANT_JOIN:
|
531
|
+
case _constants.LOCUSEVENT.PARTICIPANT_LEFT:
|
532
|
+
case _constants.LOCUSEVENT.CONTROLS_UPDATED:
|
533
|
+
case _constants.LOCUSEVENT.PARTICIPANT_AUDIO_MUTED:
|
534
|
+
case _constants.LOCUSEVENT.PARTICIPANT_AUDIO_UNMUTED:
|
535
|
+
case _constants.LOCUSEVENT.PARTICIPANT_VIDEO_MUTED:
|
536
|
+
case _constants.LOCUSEVENT.PARTICIPANT_VIDEO_UNMUTED:
|
537
|
+
case _constants.LOCUSEVENT.SELF_CHANGED:
|
538
|
+
case _constants.LOCUSEVENT.PARTICIPANT_UPDATED:
|
539
|
+
case _constants.LOCUSEVENT.PARTICIPANT_CONTROLS_UPDATED:
|
540
|
+
case _constants.LOCUSEVENT.PARTICIPANT_ROLES_UPDATED:
|
541
|
+
case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:
|
542
|
+
case _constants.LOCUSEVENT.FLOOR_GRANTED:
|
543
|
+
case _constants.LOCUSEVENT.FLOOR_RELEASED:
|
544
|
+
this.onFullLocus(locus, eventType);
|
545
|
+
break;
|
546
|
+
case _constants.LOCUSEVENT.DIFFERENCE:
|
547
|
+
this.handleLocusDelta(locus, meeting);
|
548
|
+
break;
|
549
|
+
default:
|
550
|
+
// Why will there be a event with no eventType ????
|
551
|
+
// we may not need this, we can get full locus
|
552
|
+
this.handleLocusDelta(locus, meeting);
|
553
|
+
}
|
336
554
|
}
|
337
555
|
}
|
338
556
|
|
@@ -353,25 +571,57 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
353
571
|
* updates the locus with full locus object
|
354
572
|
* @param {object} locus locus object
|
355
573
|
* @param {string} eventType particulat locus event
|
574
|
+
* @param {DataSet[]} dataSets
|
356
575
|
* @returns {object} null
|
357
576
|
* @memberof LocusInfo
|
358
577
|
*/
|
359
578
|
}, {
|
360
579
|
key: "onFullLocus",
|
361
|
-
value: function onFullLocus(locus, eventType) {
|
580
|
+
value: function onFullLocus(locus, eventType, dataSets) {
|
581
|
+
var _this$participants,
|
582
|
+
_this5 = this,
|
583
|
+
_locus$jsSdkMeta;
|
362
584
|
if (!locus) {
|
363
585
|
_loggerProxy.default.logger.error('Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.');
|
364
586
|
}
|
365
|
-
if (
|
587
|
+
if (dataSets) {
|
588
|
+
// this is the new hashmap Locus DTO format (only applicable to webinars for now)
|
589
|
+
if (!this.hashTreeParser) {
|
590
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> creating hash tree parser");
|
591
|
+
_loggerProxy.default.logger.info('Locus-info:index#onFullLocus --> dataSets:', dataSets, ' and locus:', locus);
|
592
|
+
this.hashTreeParser = new _hashTreeParser.default({
|
593
|
+
initialLocus: {
|
594
|
+
locus: locus,
|
595
|
+
dataSets: dataSets
|
596
|
+
},
|
597
|
+
webexRequest: this.webex.request.bind(this.webex),
|
598
|
+
locusInfoUpdateCallback: this.updateFromHashTree.bind(this),
|
599
|
+
debugId: "HT-".concat(this.meetingId.substring(0, 4))
|
600
|
+
});
|
601
|
+
} else {
|
602
|
+
// in this case the Locus we're getting is not necessarily the full one
|
603
|
+
// so treat it like if we just got it in a message
|
604
|
+
console.log('marcin: !!!!!!!! full DTO - this is not fully implemented/tested yet');
|
605
|
+
_loggerProxy.default.logger.warn('Locus-info:index#onFullLocus --> full DTO - this is not fully implemented/tested yet!!!!!!!!');
|
606
|
+
this.handleLocusAPIResponse(undefined, {
|
607
|
+
dataSets: dataSets,
|
608
|
+
locus: locus
|
609
|
+
});
|
610
|
+
return;
|
611
|
+
}
|
612
|
+
} else if (!this.locusParser.isNewFullLocus(locus)) {
|
366
613
|
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
|
367
614
|
return;
|
368
615
|
}
|
369
616
|
this.updateParticipantDeltas(locus.participants);
|
370
617
|
this.scheduledMeeting = locus.meeting || null;
|
371
618
|
this.participants = locus.participants;
|
619
|
+
(_this$participants = this.participants) === null || _this$participants === void 0 ? void 0 : _this$participants.forEach(function (participant) {
|
620
|
+
_this5.hashTreeObjectId2ParticipantId.set(participant.htMeta.elementId.id, participant.id);
|
621
|
+
});
|
372
622
|
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
373
623
|
this.updateLocusInfo(locus);
|
374
|
-
this.updateParticipants(locus.participants, isReplaceMembers);
|
624
|
+
this.updateParticipants(locus.participants, (_locus$jsSdkMeta = locus.jsSdkMeta) === null || _locus$jsSdkMeta === void 0 ? void 0 : _locus$jsSdkMeta.removedParticipantIds, isReplaceMembers);
|
375
625
|
this.isMeetingActive();
|
376
626
|
this.handleOneOnOneEvent(eventType);
|
377
627
|
this.updateEmbeddedApps(locus.embeddedApps);
|
@@ -423,10 +673,11 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
423
673
|
}, {
|
424
674
|
key: "onDeltaLocus",
|
425
675
|
value: function onDeltaLocus(locus) {
|
676
|
+
var _locus$jsSdkMeta2;
|
426
677
|
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
427
678
|
this.mergeParticipants(this.participants, locus.participants);
|
428
679
|
this.updateLocusInfo(locus);
|
429
|
-
this.updateParticipants(locus.participants, isReplaceMembers);
|
680
|
+
this.updateParticipants(locus.participants, (_locus$jsSdkMeta2 = locus.jsSdkMeta) === null || _locus$jsSdkMeta2 === void 0 ? void 0 : _locus$jsSdkMeta2.removedParticipantIds, isReplaceMembers);
|
430
681
|
this.isMeetingActive();
|
431
682
|
}
|
432
683
|
|
@@ -450,12 +701,12 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
450
701
|
this.updateCreated(locus.created);
|
451
702
|
this.updateFullState(locus.fullState);
|
452
703
|
this.updateHostInfo(locus.host);
|
704
|
+
this.updateLocusUrl(locus.url);
|
453
705
|
this.updateMeetingInfo(locus.info, locus.self);
|
454
706
|
this.updateMediaShares(locus.mediaShares);
|
455
707
|
this.updateParticipantsUrl(locus.participantsUrl);
|
456
708
|
this.updateReplace(locus.replace);
|
457
709
|
this.updateSelf(locus.self);
|
458
|
-
this.updateLocusUrl(locus.url);
|
459
710
|
this.updateAclUrl(locus.aclUrl);
|
460
711
|
this.updateBasequence(locus.baseSequence);
|
461
712
|
this.updateSequence(locus.sequence);
|
@@ -667,7 +918,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
667
918
|
}, {
|
668
919
|
key: "updateParticipantDeltas",
|
669
920
|
value: function updateParticipantDeltas() {
|
670
|
-
var
|
921
|
+
var _this6 = this;
|
671
922
|
var participants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
672
923
|
// Used to find a participant within a participants collection.
|
673
924
|
var findParticipant = function findParticipant(participant, collection) {
|
@@ -696,7 +947,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
696
947
|
return deltas;
|
697
948
|
};
|
698
949
|
this.deltaParticipants = participants.reduce(function (collection, participant) {
|
699
|
-
var existingParticipant = findParticipant(participant,
|
950
|
+
var existingParticipant = findParticipant(participant, _this6.participants || []) || {};
|
700
951
|
var delta = generateDelta(existingParticipant.status, participant.status);
|
701
952
|
var changed = (0, _keys.default)(delta).length > 0;
|
702
953
|
if (changed) {
|
@@ -712,19 +963,21 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
712
963
|
/**
|
713
964
|
* update meeting's members
|
714
965
|
* @param {Object} participants new participants object
|
966
|
+
* @param {Array} removedParticipantIds list of removed participants
|
715
967
|
* @param {Boolean} isReplace is replace the whole members
|
716
968
|
* @returns {Array} updatedParticipants
|
717
969
|
* @memberof LocusInfo
|
718
970
|
*/
|
719
971
|
}, {
|
720
972
|
key: "updateParticipants",
|
721
|
-
value: function updateParticipants(participants, isReplace) {
|
973
|
+
value: function updateParticipants(participants, removedParticipantIds, isReplace) {
|
722
974
|
var _this$parsedLocus$con;
|
723
975
|
this.emitScoped({
|
724
976
|
file: 'locus-info',
|
725
977
|
function: 'updateParticipants'
|
726
978
|
}, _constants.EVENTS.LOCUS_INFO_UPDATE_PARTICIPANTS, {
|
727
979
|
participants: participants,
|
980
|
+
removedParticipantIds: removedParticipantIds,
|
728
981
|
recordingId: this.parsedLocus.controls && ((_this$parsedLocus$con = this.parsedLocus.controls.record) === null || _this$parsedLocus$con === void 0 ? void 0 : _this$parsedLocus$con.modifiedBy),
|
729
982
|
selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
|
730
983
|
selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
|
@@ -772,6 +1025,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
772
1025
|
hasRecordingPausedChanged = _ControlsUtils$getCon2.hasRecordingPausedChanged,
|
773
1026
|
hasMeetingContainerChanged = _ControlsUtils$getCon2.hasMeetingContainerChanged,
|
774
1027
|
hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,
|
1028
|
+
hasTranscribeSpokenLanguageChanged = _ControlsUtils$getCon2.hasTranscribeSpokenLanguageChanged,
|
775
1029
|
hasManualCaptionChanged = _ControlsUtils$getCon2.hasManualCaptionChanged,
|
776
1030
|
hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,
|
777
1031
|
hasBreakoutChanged = _ControlsUtils$getCon2.hasBreakoutChanged,
|
@@ -791,6 +1045,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
791
1045
|
hasStageViewChanged = _ControlsUtils$getCon2.hasStageViewChanged,
|
792
1046
|
hasAnnotationControlChanged = _ControlsUtils$getCon2.hasAnnotationControlChanged,
|
793
1047
|
hasRemoteDesktopControlChanged = _ControlsUtils$getCon2.hasRemoteDesktopControlChanged,
|
1048
|
+
hasPollingQAControlChanged = _ControlsUtils$getCon2.hasPollingQAControlChanged,
|
794
1049
|
current = _ControlsUtils$getCon.current;
|
795
1050
|
if (hasMuteOnEntryChanged) {
|
796
1051
|
this.emitScoped({
|
@@ -890,6 +1145,15 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
890
1145
|
caption: caption
|
891
1146
|
});
|
892
1147
|
}
|
1148
|
+
if (hasTranscribeSpokenLanguageChanged) {
|
1149
|
+
var spokenLanguage = current.transcribe.spokenLanguage;
|
1150
|
+
this.emitScoped({
|
1151
|
+
file: 'locus-info',
|
1152
|
+
function: 'updateControls'
|
1153
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, {
|
1154
|
+
spokenLanguage: spokenLanguage
|
1155
|
+
});
|
1156
|
+
}
|
893
1157
|
if (hasManualCaptionChanged) {
|
894
1158
|
var enabled = current.manualCaptionControl.enabled;
|
895
1159
|
this.emitScoped({
|
@@ -994,6 +1258,14 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
994
1258
|
state: current.rdcControl
|
995
1259
|
});
|
996
1260
|
}
|
1261
|
+
if (hasPollingQAControlChanged) {
|
1262
|
+
this.emitScoped({
|
1263
|
+
file: 'locus-info',
|
1264
|
+
function: 'updateControls'
|
1265
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_POLLING_QA_CHANGED, {
|
1266
|
+
state: current.pollingQAControl
|
1267
|
+
});
|
1268
|
+
}
|
997
1269
|
this.controls = controls;
|
998
1270
|
}
|
999
1271
|
}
|
@@ -1607,7 +1879,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
1607
1879
|
}, {
|
1608
1880
|
key: "updateMainSessionLocusCache",
|
1609
1881
|
value: function updateMainSessionLocusCache(mainLocus) {
|
1610
|
-
var
|
1882
|
+
var _this7 = this;
|
1611
1883
|
if (!mainLocus) {
|
1612
1884
|
return;
|
1613
1885
|
}
|
@@ -1616,7 +1888,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
1616
1888
|
// shallow merge and do special merge for participants
|
1617
1889
|
(0, _lodash.assignWith)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {
|
1618
1890
|
if (key === 'participants') {
|
1619
|
-
return
|
1891
|
+
return _this7.mergeParticipants(objValue, srcValue);
|
1620
1892
|
}
|
1621
1893
|
return srcValue || objValue;
|
1622
1894
|
});
|