@webex/plugin-meetings 3.11.0-next.3 → 3.11.0-next.30

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 (99) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/config.js +5 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/hashTree/hashTree.js +18 -0
  6. package/dist/hashTree/hashTree.js.map +1 -1
  7. package/dist/hashTree/hashTreeParser.js +603 -266
  8. package/dist/hashTree/hashTreeParser.js.map +1 -1
  9. package/dist/hashTree/types.js +4 -2
  10. package/dist/hashTree/types.js.map +1 -1
  11. package/dist/hashTree/utils.js +10 -0
  12. package/dist/hashTree/utils.js.map +1 -1
  13. package/dist/index.js +2 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/interceptors/constant.js +12 -0
  16. package/dist/interceptors/constant.js.map +1 -0
  17. package/dist/interceptors/dataChannelAuthToken.js +233 -0
  18. package/dist/interceptors/dataChannelAuthToken.js.map +1 -0
  19. package/dist/interceptors/index.js +7 -0
  20. package/dist/interceptors/index.js.map +1 -1
  21. package/dist/interpretation/index.js +1 -1
  22. package/dist/interpretation/siLanguage.js +1 -1
  23. package/dist/locus-info/index.js +80 -44
  24. package/dist/locus-info/index.js.map +1 -1
  25. package/dist/locus-info/types.js.map +1 -1
  26. package/dist/media/MediaConnectionAwaiter.js +57 -1
  27. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  28. package/dist/media/properties.js +4 -2
  29. package/dist/media/properties.js.map +1 -1
  30. package/dist/meeting/index.js +134 -40
  31. package/dist/meeting/index.js.map +1 -1
  32. package/dist/meeting/request.js +50 -0
  33. package/dist/meeting/request.js.map +1 -1
  34. package/dist/meeting/request.type.js.map +1 -1
  35. package/dist/meeting/util.js +108 -2
  36. package/dist/meeting/util.js.map +1 -1
  37. package/dist/meetings/index.js +76 -34
  38. package/dist/meetings/index.js.map +1 -1
  39. package/dist/metrics/constants.js +2 -1
  40. package/dist/metrics/constants.js.map +1 -1
  41. package/dist/multistream/mediaRequestManager.js +1 -1
  42. package/dist/multistream/mediaRequestManager.js.map +1 -1
  43. package/dist/multistream/remoteMediaManager.js +11 -0
  44. package/dist/multistream/remoteMediaManager.js.map +1 -1
  45. package/dist/reactions/reactions.type.js.map +1 -1
  46. package/dist/types/config.d.ts +3 -0
  47. package/dist/types/hashTree/hashTree.d.ts +7 -0
  48. package/dist/types/hashTree/hashTreeParser.d.ts +83 -12
  49. package/dist/types/hashTree/types.d.ts +3 -0
  50. package/dist/types/hashTree/utils.d.ts +6 -0
  51. package/dist/types/interceptors/constant.d.ts +5 -0
  52. package/dist/types/interceptors/dataChannelAuthToken.d.ts +35 -0
  53. package/dist/types/interceptors/index.d.ts +2 -1
  54. package/dist/types/locus-info/index.d.ts +9 -2
  55. package/dist/types/locus-info/types.d.ts +1 -0
  56. package/dist/types/media/MediaConnectionAwaiter.d.ts +10 -1
  57. package/dist/types/media/properties.d.ts +2 -1
  58. package/dist/types/meeting/index.d.ts +27 -5
  59. package/dist/types/meeting/request.d.ts +16 -1
  60. package/dist/types/meeting/request.type.d.ts +5 -0
  61. package/dist/types/meeting/util.d.ts +28 -0
  62. package/dist/types/meetings/index.d.ts +3 -1
  63. package/dist/types/metrics/constants.d.ts +1 -0
  64. package/dist/types/reactions/reactions.type.d.ts +1 -0
  65. package/dist/webinar/index.js +1 -1
  66. package/package.json +22 -22
  67. package/src/config.ts +3 -0
  68. package/src/hashTree/hashTree.ts +17 -0
  69. package/src/hashTree/hashTreeParser.ts +525 -188
  70. package/src/hashTree/types.ts +4 -0
  71. package/src/hashTree/utils.ts +9 -0
  72. package/src/index.ts +6 -1
  73. package/src/interceptors/constant.ts +6 -0
  74. package/src/interceptors/dataChannelAuthToken.ts +142 -0
  75. package/src/interceptors/index.ts +2 -1
  76. package/src/locus-info/index.ts +110 -35
  77. package/src/locus-info/types.ts +1 -0
  78. package/src/media/MediaConnectionAwaiter.ts +41 -1
  79. package/src/media/properties.ts +3 -1
  80. package/src/meeting/index.ts +101 -22
  81. package/src/meeting/request.ts +42 -0
  82. package/src/meeting/request.type.ts +6 -0
  83. package/src/meeting/util.ts +132 -1
  84. package/src/meetings/index.ts +88 -7
  85. package/src/metrics/constants.ts +1 -0
  86. package/src/multistream/mediaRequestManager.ts +1 -1
  87. package/src/multistream/remoteMediaManager.ts +13 -0
  88. package/src/reactions/reactions.type.ts +1 -0
  89. package/test/unit/spec/hashTree/hashTree.ts +66 -0
  90. package/test/unit/spec/hashTree/hashTreeParser.ts +1594 -162
  91. package/test/unit/spec/interceptors/dataChannelAuthToken.ts +141 -0
  92. package/test/unit/spec/locus-info/index.js +173 -45
  93. package/test/unit/spec/media/MediaConnectionAwaiter.ts +41 -1
  94. package/test/unit/spec/media/properties.ts +12 -3
  95. package/test/unit/spec/meeting/index.js +414 -62
  96. package/test/unit/spec/meeting/request.js +64 -0
  97. package/test/unit/spec/meeting/utils.js +294 -22
  98. package/test/unit/spec/meetings/index.js +550 -10
  99. package/test/unit/spec/multistream/remoteMediaManager.ts +30 -0
@@ -67,6 +67,18 @@ const AllEqualLayout: VideoLayout = {
67
67
  ],
68
68
  };
69
69
 
70
+ // An "all equal" grid, with size up to 5 x 5 = 25:
71
+ const AllEqual25Layout: VideoLayout = {
72
+ activeSpeakerVideoPaneGroups: [
73
+ {
74
+ id: 'main',
75
+ numPanes: 25,
76
+ size: 'best',
77
+ priority: 255,
78
+ },
79
+ ],
80
+ };
81
+
70
82
  // A layout with just a single remote active speaker video pane:
71
83
  const SingleLayout: VideoLayout = {
72
84
  activeSpeakerVideoPaneGroups: [
@@ -164,6 +176,7 @@ export const DefaultConfiguration: Configuration = {
164
176
 
165
177
  layouts: {
166
178
  AllEqual: AllEqualLayout,
179
+ AllEqual25: AllEqual25Layout,
167
180
  OnePlusFive: OnePlusFiveLayout,
168
181
  Single: SingleLayout,
169
182
  Stage: Stage2x2With6ThumbnailsLayout,
@@ -40,6 +40,7 @@ export enum SkinToneType {
40
40
  }
41
41
 
42
42
  export type Sender = {
43
+ displayName: string;
43
44
  participantId: string;
44
45
  };
45
46
 
@@ -652,4 +652,70 @@ describe('HashTree', () => {
652
652
  expect(() => hashTree.computeLeafHash(2)).to.not.throw();
653
653
  });
654
654
  });
655
+
656
+ describe('getItemVersion', () => {
657
+ it('should return version when item exists', () => {
658
+ const items: LeafDataItem[] = [
659
+ {type: 'participant', id: 1, version: 5},
660
+ {type: 'self', id: 2, version: 10},
661
+ ];
662
+ const hashTree = new HashTree(items, 4);
663
+
664
+ expect(hashTree.getItemVersion(1, 'participant')).to.equal(5);
665
+ expect(hashTree.getItemVersion(2, 'self')).to.equal(10);
666
+ });
667
+
668
+ it('should return undefined when item does not exist', () => {
669
+ const items: LeafDataItem[] = [{type: 'participant', id: 1, version: 5}];
670
+ const hashTree = new HashTree(items, 4);
671
+
672
+ expect(hashTree.getItemVersion(999, 'participant')).to.be.undefined;
673
+ });
674
+
675
+ it('should return undefined when type does not match', () => {
676
+ const items: LeafDataItem[] = [{type: 'participant', id: 1, version: 5}];
677
+ const hashTree = new HashTree(items, 4);
678
+
679
+ expect(hashTree.getItemVersion(1, 'self')).to.be.undefined;
680
+ });
681
+
682
+ it('should return undefined for tree with 0 leaves', () => {
683
+ const hashTree = new HashTree([], 0);
684
+
685
+ expect(hashTree.getItemVersion(1, 'participant')).to.be.undefined;
686
+ });
687
+
688
+ it('should return correct version when multiple items exist in same leaf', () => {
689
+ const items: LeafDataItem[] = [
690
+ {type: 'participant', id: 1, version: 3}, // leaf 1 (1 % 2 = 1)
691
+ {type: 'self', id: 3, version: 7}, // leaf 1 (3 % 2 = 1)
692
+ {type: 'locus', id: 5, version: 12}, // leaf 1 (5 % 2 = 1)
693
+ ];
694
+ const hashTree = new HashTree(items, 2);
695
+
696
+ expect(hashTree.getItemVersion(1, 'participant')).to.equal(3);
697
+ expect(hashTree.getItemVersion(3, 'self')).to.equal(7);
698
+ expect(hashTree.getItemVersion(5, 'locus')).to.equal(12);
699
+ });
700
+
701
+ it('should return updated version after item is updated', () => {
702
+ const hashTree = new HashTree([{type: 'participant', id: 1, version: 5}], 4);
703
+
704
+ expect(hashTree.getItemVersion(1, 'participant')).to.equal(5);
705
+
706
+ hashTree.putItem({type: 'participant', id: 1, version: 10});
707
+
708
+ expect(hashTree.getItemVersion(1, 'participant')).to.equal(10);
709
+ });
710
+
711
+ it('should return undefined after item is removed', () => {
712
+ const hashTree = new HashTree([{type: 'participant', id: 1, version: 5}], 4);
713
+
714
+ expect(hashTree.getItemVersion(1, 'participant')).to.equal(5);
715
+
716
+ hashTree.removeItem({type: 'participant', id: 1, version: 5});
717
+
718
+ expect(hashTree.getItemVersion(1, 'participant')).to.be.undefined;
719
+ });
720
+ });
655
721
  });