@webex/plugin-meetings 3.12.0-next.1 → 3.12.0-next.10

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.
Files changed (38) hide show
  1. package/dist/aiEnableRequest/index.js +1 -1
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/hashTree/constants.js +10 -1
  5. package/dist/hashTree/constants.js.map +1 -1
  6. package/dist/hashTree/hashTreeParser.js +20 -11
  7. package/dist/hashTree/hashTreeParser.js.map +1 -1
  8. package/dist/hashTree/utils.js +22 -0
  9. package/dist/hashTree/utils.js.map +1 -1
  10. package/dist/interpretation/index.js +1 -1
  11. package/dist/interpretation/siLanguage.js +1 -1
  12. package/dist/meeting/index.js +427 -323
  13. package/dist/meeting/index.js.map +1 -1
  14. package/dist/metrics/constants.js +5 -1
  15. package/dist/metrics/constants.js.map +1 -1
  16. package/dist/multistream/sendSlotManager.js +116 -2
  17. package/dist/multistream/sendSlotManager.js.map +1 -1
  18. package/dist/types/hashTree/constants.d.ts +1 -0
  19. package/dist/types/hashTree/utils.d.ts +11 -0
  20. package/dist/types/meeting/index.d.ts +24 -1
  21. package/dist/types/metrics/constants.d.ts +4 -0
  22. package/dist/types/multistream/sendSlotManager.d.ts +23 -1
  23. package/dist/webinar/index.js +325 -220
  24. package/dist/webinar/index.js.map +1 -1
  25. package/package.json +15 -15
  26. package/src/hashTree/constants.ts +9 -0
  27. package/src/hashTree/hashTreeParser.ts +21 -14
  28. package/src/hashTree/utils.ts +17 -0
  29. package/src/meeting/index.ts +165 -57
  30. package/src/metrics/constants.ts +5 -0
  31. package/src/multistream/sendSlotManager.ts +97 -3
  32. package/src/webinar/index.ts +120 -18
  33. package/test/unit/spec/hashTree/hashTreeParser.ts +238 -0
  34. package/test/unit/spec/hashTree/utils.ts +88 -1
  35. package/test/unit/spec/meeting/index.js +179 -48
  36. package/test/unit/spec/meetings/index.js +3 -3
  37. package/test/unit/spec/multistream/sendSlotManager.ts +135 -36
  38. package/test/unit/spec/webinar/index.ts +193 -8
@@ -178,7 +178,7 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
178
178
  method: _constants.HTTP_VERBS.PUT
179
179
  });
180
180
  },
181
- version: "3.12.0-next.1"
181
+ version: "3.12.0-next.10"
182
182
  });
183
183
  var _default = exports.default = AIEnableRequest;
184
184
  //# sourceMappingURL=index.js.map
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.12.0-next.1"
212
+ version: "3.12.0-next.10"
213
213
  });
214
214
  var _default = exports.default = Breakout;
215
215
  //# sourceMappingURL=breakout.js.map
@@ -1109,7 +1109,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1109
1109
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1110
1110
  }
1111
1111
  },
1112
- version: "3.12.0-next.1"
1112
+ version: "3.12.0-next.10"
1113
1113
  });
1114
1114
  var _default = exports.default = Breakouts;
1115
1115
  //# sourceMappingURL=index.js.map
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
4
4
  _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.EMPTY_HASH = exports.DataSetNames = void 0;
7
+ exports.EMPTY_HASH = exports.DataSetNames = exports.DATA_SET_INIT_PRIORITY = void 0;
8
8
  var EMPTY_HASH = exports.EMPTY_HASH = '99aa06d3014798d86001c324468d497f';
9
9
  var DataSetNames = exports.DataSetNames = {
10
10
  MAIN: 'main',
@@ -19,4 +19,13 @@ var DataSetNames = exports.DataSetNames = {
19
19
  // sent to web client, over Mercury
20
20
  UNJOINED: 'unjoined' // sent when you are not joined, but can still see some stuff from the meeting (mutually exclusive with "main")
21
21
  };
22
+
23
+ // Priority order for initializing data sets — higher priority names come first.
24
+ // Data sets not listed here will be initialized after all prioritized ones.
25
+ // MAIN must come before SELF because LocusInfo.updateFromHashTree processes the
26
+ // batch of updatedObjects in order, and the SELF handler in updateLocusFromHashTreeObject
27
+ // checks locus.info?.isWebinar (which comes from MAIN) to decide whether to create a
28
+ // participant object for webinar attendees. If SELF were initialized first, locus.info
29
+ // would not yet be populated and the attendee participant would be skipped.
30
+ var DATA_SET_INIT_PRIORITY = exports.DATA_SET_INIT_PRIORITY = [DataSetNames.MAIN, DataSetNames.SELF];
22
31
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EMPTY_HASH","exports","DataSetNames","MAIN","ATTENDEES","ATD_ACTIVE","ATD_UNMUTED","SELF","UNJOINED"],"sources":["constants.ts"],"sourcesContent":["export const EMPTY_HASH = '99aa06d3014798d86001c324468d497f';\n\nexport const DataSetNames = {\n MAIN: 'main', // sent to web client, contains also panelists, over LLM\n ATTENDEES: 'attendees', // NOT SENT to web client, all the attendees in the locus\n ATD_ACTIVE: 'atd-active', // only sent to panelists, over LLM; the attendees that have their hands raised or are allowed to unmute themselves\n ATD_UNMUTED: 'atd-unmuted', // sent to web client, over LLM, not sent to panelists; the attendees that are unmuted\n SELF: 'self', // sent to web client, over Mercury\n UNJOINED: 'unjoined', // sent when you are not joined, but can still see some stuff from the meeting (mutually exclusive with \"main\")\n};\n"],"mappings":";;;;;;;AAAO,IAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,kCAAkC;AAErD,IAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAG;EAC1BC,IAAI,EAAE,MAAM;EAAE;EACdC,SAAS,EAAE,WAAW;EAAE;EACxBC,UAAU,EAAE,YAAY;EAAE;EAC1BC,WAAW,EAAE,aAAa;EAAE;EAC5BC,IAAI,EAAE,MAAM;EAAE;EACdC,QAAQ,EAAE,UAAU,CAAE;AACxB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["EMPTY_HASH","exports","DataSetNames","MAIN","ATTENDEES","ATD_ACTIVE","ATD_UNMUTED","SELF","UNJOINED","DATA_SET_INIT_PRIORITY"],"sources":["constants.ts"],"sourcesContent":["export const EMPTY_HASH = '99aa06d3014798d86001c324468d497f';\n\nexport const DataSetNames = {\n MAIN: 'main', // sent to web client, contains also panelists, over LLM\n ATTENDEES: 'attendees', // NOT SENT to web client, all the attendees in the locus\n ATD_ACTIVE: 'atd-active', // only sent to panelists, over LLM; the attendees that have their hands raised or are allowed to unmute themselves\n ATD_UNMUTED: 'atd-unmuted', // sent to web client, over LLM, not sent to panelists; the attendees that are unmuted\n SELF: 'self', // sent to web client, over Mercury\n UNJOINED: 'unjoined', // sent when you are not joined, but can still see some stuff from the meeting (mutually exclusive with \"main\")\n};\n\n// Priority order for initializing data sets — higher priority names come first.\n// Data sets not listed here will be initialized after all prioritized ones.\n// MAIN must come before SELF because LocusInfo.updateFromHashTree processes the\n// batch of updatedObjects in order, and the SELF handler in updateLocusFromHashTreeObject\n// checks locus.info?.isWebinar (which comes from MAIN) to decide whether to create a\n// participant object for webinar attendees. If SELF were initialized first, locus.info\n// would not yet be populated and the attendee participant would be skipped.\nexport const DATA_SET_INIT_PRIORITY: string[] = [DataSetNames.MAIN, DataSetNames.SELF];\n"],"mappings":";;;;;;;AAAO,IAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,kCAAkC;AAErD,IAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAG;EAC1BC,IAAI,EAAE,MAAM;EAAE;EACdC,SAAS,EAAE,WAAW;EAAE;EACxBC,UAAU,EAAE,YAAY;EAAE;EAC1BC,WAAW,EAAE,aAAa;EAAE;EAC5BC,IAAI,EAAE,MAAM;EAAE;EACdC,QAAQ,EAAE,UAAU,CAAE;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,sBAAgC,GAAAR,OAAA,CAAAQ,sBAAA,GAAG,CAACP,YAAY,CAACC,IAAI,EAAED,YAAY,CAACK,IAAI,CAAC","ignoreList":[]}
@@ -39,6 +39,7 @@ var _hashTree = _interopRequireDefault(require("./hashTree"));
39
39
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
40
40
  var _constants = require("../constants");
41
41
  var _constants2 = require("./constants");
42
+ var _types = require("./types");
42
43
  var _utils = require("./utils");
43
44
  function ownKeys(e, r) { var t = _Object$keys4(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; }
44
45
  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; }
@@ -390,7 +391,7 @@ var HashTreeParser = /*#__PURE__*/function () {
390
391
  return _context3.abrupt("return");
391
392
  case 1:
392
393
  updatedObjects = [];
393
- _iterator2 = _createForOfIteratorHelper(visibleDataSets);
394
+ _iterator2 = _createForOfIteratorHelper((0, _utils.sortByInitPriority)(visibleDataSets, _constants2.DATA_SET_INIT_PRIORITY));
394
395
  _context3.prev = 2;
395
396
  _iterator2.s();
396
397
  case 3:
@@ -483,7 +484,7 @@ var HashTreeParser = /*#__PURE__*/function () {
483
484
  copyData = _ref$copyData === void 0 ? false : _ref$copyData;
484
485
  // object mapping dataset names to arrays of leaf data
485
486
  var leafInfo = {};
486
- var _findAndStoreMetaData = function findAndStoreMetaData(currentLocusPart) {
487
+ var _findAndStoreMetaData = function findAndStoreMetaData(currentLocusPart, currentLocusPartName) {
487
488
  if ((0, _typeof2.default)(currentLocusPart) !== 'object' || currentLocusPart === null) {
488
489
  return;
489
490
  }
@@ -499,10 +500,16 @@ var HashTreeParser = /*#__PURE__*/function () {
499
500
  version: version
500
501
  };
501
502
  if (copyData) {
502
- newLeafInfo.data = (0, _lodash.cloneDeep)(currentLocusPart);
503
+ if (type.toLowerCase() === _types.ObjectType.control) {
504
+ // control entries require special handling, because they are signalled by Locus
505
+ // differently when coming in messages vs API responses
506
+ newLeafInfo.data = (0, _defineProperty2.default)({}, currentLocusPartName, (0, _lodash.cloneDeep)(currentLocusPart));
507
+ } else {
508
+ newLeafInfo.data = (0, _lodash.cloneDeep)(currentLocusPart);
503
509
 
504
- // remove any nested other objects that have their own htMeta
505
- (0, _utils.deleteNestedObjectsWithHtMeta)(newLeafInfo.data);
510
+ // remove any nested other objects that have their own htMeta
511
+ (0, _utils.deleteNestedObjectsWithHtMeta)(newLeafInfo.data);
512
+ }
506
513
  }
507
514
  var _iterator3 = _createForOfIteratorHelper(dataSetNames),
508
515
  _step3;
@@ -521,12 +528,14 @@ var HashTreeParser = /*#__PURE__*/function () {
521
528
  }
522
529
  }
523
530
  if ((0, _isArray.default)(currentLocusPart)) {
524
- var _iterator4 = _createForOfIteratorHelper(currentLocusPart),
531
+ var _iterator4 = _createForOfIteratorHelper(currentLocusPart.entries()),
525
532
  _step4;
526
533
  try {
527
534
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
528
- var item = _step4.value;
529
- _findAndStoreMetaData(item);
535
+ var _step4$value = (0, _slicedToArray2.default)(_step4.value, 2),
536
+ index = _step4$value[0],
537
+ item = _step4$value[1];
538
+ _findAndStoreMetaData(item, index.toString());
530
539
  }
531
540
  } catch (err) {
532
541
  _iterator4.e(err);
@@ -537,12 +546,12 @@ var HashTreeParser = /*#__PURE__*/function () {
537
546
  for (var _i = 0, _Object$keys = (0, _keys.default)(currentLocusPart); _i < _Object$keys.length; _i++) {
538
547
  var key = _Object$keys[_i];
539
548
  if (Object.prototype.hasOwnProperty.call(currentLocusPart, key)) {
540
- _findAndStoreMetaData(currentLocusPart[key]);
549
+ _findAndStoreMetaData(currentLocusPart[key], key);
541
550
  }
542
551
  }
543
552
  }
544
553
  };
545
- _findAndStoreMetaData(locus);
554
+ _findAndStoreMetaData(locus, 'locus');
546
555
  return leafInfo;
547
556
  }
548
557
 
@@ -995,7 +1004,7 @@ var HashTreeParser = /*#__PURE__*/function () {
995
1004
  return this.getAllVisibleDataSetsFromLocus();
996
1005
  case 2:
997
1006
  allDataSets = _context5.sent;
998
- _iterator7 = _createForOfIteratorHelper(addedDataSets);
1007
+ _iterator7 = _createForOfIteratorHelper((0, _utils.sortByInitPriority)(addedDataSets, _constants2.DATA_SET_INIT_PRIORITY));
999
1008
  _context5.prev = 3;
1000
1009
  _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
1001
1010
  var ds, dataSetInfo, updates;