@webex/plugin-meetings 3.9.0-webinar5k.1 → 3.9.0

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 (83) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +16 -0
  4. package/dist/constants.js.map +1 -1
  5. package/dist/interpretation/index.js +1 -1
  6. package/dist/interpretation/siLanguage.js +1 -1
  7. package/dist/locus-info/index.js +40 -328
  8. package/dist/locus-info/index.js.map +1 -1
  9. package/dist/meeting/in-meeting-actions.js +6 -0
  10. package/dist/meeting/in-meeting-actions.js.map +1 -1
  11. package/dist/meeting/index.js +196 -160
  12. package/dist/meeting/index.js.map +1 -1
  13. package/dist/meeting/muteState.js +5 -2
  14. package/dist/meeting/muteState.js.map +1 -1
  15. package/dist/meeting/type.js +7 -0
  16. package/dist/meeting/type.js.map +1 -0
  17. package/dist/meeting/util.js +79 -10
  18. package/dist/meeting/util.js.map +1 -1
  19. package/dist/meetings/index.js +37 -39
  20. package/dist/meetings/index.js.map +1 -1
  21. package/dist/member/types.js.map +1 -1
  22. package/dist/members/collection.js +0 -13
  23. package/dist/members/collection.js.map +1 -1
  24. package/dist/members/index.js +21 -40
  25. package/dist/members/index.js.map +1 -1
  26. package/dist/members/util.js.map +1 -1
  27. package/dist/multistream/mediaRequestManager.js +1 -1
  28. package/dist/multistream/mediaRequestManager.js.map +1 -1
  29. package/dist/multistream/remoteMedia.js +34 -5
  30. package/dist/multistream/remoteMedia.js.map +1 -1
  31. package/dist/multistream/remoteMediaGroup.js +42 -2
  32. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  33. package/dist/types/constants.d.ts +16 -0
  34. package/dist/types/locus-info/index.d.ts +3 -102
  35. package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
  36. package/dist/types/meeting/index.d.ts +23 -28
  37. package/dist/types/meeting/type.d.ts +9 -0
  38. package/dist/types/meeting/util.d.ts +6 -3
  39. package/dist/types/member/types.d.ts +0 -1
  40. package/dist/types/members/collection.d.ts +0 -6
  41. package/dist/types/members/index.d.ts +7 -16
  42. package/dist/types/members/util.d.ts +2 -1
  43. package/dist/types/multistream/remoteMedia.d.ts +20 -1
  44. package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
  45. package/dist/webinar/index.js +1 -1
  46. package/package.json +22 -24
  47. package/src/constants.ts +16 -2
  48. package/src/locus-info/index.ts +39 -409
  49. package/src/meeting/in-meeting-actions.ts +13 -0
  50. package/src/meeting/index.ts +92 -63
  51. package/src/meeting/muteState.ts +6 -2
  52. package/src/meeting/type.ts +9 -0
  53. package/src/meeting/util.ts +93 -19
  54. package/src/meetings/index.ts +6 -19
  55. package/src/member/types.ts +0 -1
  56. package/src/members/collection.ts +0 -11
  57. package/src/members/index.ts +10 -33
  58. package/src/members/util.ts +2 -1
  59. package/src/multistream/mediaRequestManager.ts +7 -7
  60. package/src/multistream/remoteMedia.ts +34 -4
  61. package/src/multistream/remoteMediaGroup.ts +37 -2
  62. package/test/unit/spec/locus-info/index.js +8 -365
  63. package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
  64. package/test/unit/spec/meeting/index.js +254 -38
  65. package/test/unit/spec/meeting/utils.js +122 -1
  66. package/test/unit/spec/meetings/index.js +2 -0
  67. package/test/unit/spec/members/index.js +37 -1
  68. package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
  69. package/test/unit/spec/multistream/remoteMedia.ts +66 -2
  70. package/dist/hashTree/constants.js +0 -23
  71. package/dist/hashTree/constants.js.map +0 -1
  72. package/dist/hashTree/hashTree.js +0 -516
  73. package/dist/hashTree/hashTree.js.map +0 -1
  74. package/dist/hashTree/hashTreeParser.js +0 -521
  75. package/dist/hashTree/hashTreeParser.js.map +0 -1
  76. package/dist/types/hashTree/constants.d.ts +0 -8
  77. package/dist/types/hashTree/hashTree.d.ts +0 -128
  78. package/dist/types/hashTree/hashTreeParser.d.ts +0 -152
  79. package/src/hashTree/constants.ts +0 -12
  80. package/src/hashTree/hashTree.ts +0 -460
  81. package/src/hashTree/hashTreeParser.ts +0 -556
  82. package/test/unit/spec/hashTree/hashTree.ts +0 -394
  83. package/test/unit/spec/hashTree/hashTreeParser.ts +0 -156
@@ -779,6 +779,9 @@ export declare const DISPLAY_HINTS: {
779
779
  PREMISE_RECORDING_CONTROL_PAUSE: string;
780
780
  PREMISE_RECORDING_CONTROL_STOP: string;
781
781
  PREMISE_RECORDING_CONTROL_RESUME: string;
782
+ LOCAL_RECORDING_STATUS_STARTED: string;
783
+ LOCAL_RECORDING_STATUS_STOPPED: string;
784
+ LOCAL_RECORDING_STATUS_PAUSED: string;
782
785
  LOCK_CONTROL_UNLOCK: string;
783
786
  LOCK_CONTROL_LOCK: string;
784
787
  LOCK_STATUS_LOCKED: string;
@@ -973,6 +976,7 @@ export declare const QUALITY_LEVELS: {
973
976
  HIGH: string;
974
977
  '360p': string;
975
978
  '480p': string;
979
+ '540p': string;
976
980
  '720p': string;
977
981
  '1080p': string;
978
982
  };
@@ -1001,6 +1005,18 @@ export declare const AVAILABLE_RESOLUTIONS: {
1001
1005
  };
1002
1006
  };
1003
1007
  };
1008
+ '540p': {
1009
+ video: {
1010
+ width: {
1011
+ max: number;
1012
+ ideal: number;
1013
+ };
1014
+ height: {
1015
+ max: number;
1016
+ ideal: number;
1017
+ };
1018
+ };
1019
+ };
1004
1020
  '720p': {
1005
1021
  video: {
1006
1022
  width: {
@@ -1,59 +1,4 @@
1
1
  import EventsScope from '../common/events/events-scope';
2
- import HashTreeParser, { DataSet, HashTreeMessage, HashTreeObject, HtMeta } from '../hashTree/hashTreeParser';
3
- export type LocusLLMEvent = {
4
- data: {
5
- eventType: 'locus.state_message';
6
- stateElementsMessage: HashTreeMessage;
7
- };
8
- };
9
- export type LocusDTO = {
10
- controls?: any;
11
- fullState?: {
12
- active: boolean;
13
- count: number;
14
- lastActive: string;
15
- locked: boolean;
16
- sessionId: string;
17
- seessionIds: string[];
18
- startTime: number;
19
- state: string;
20
- type: string;
21
- };
22
- host?: {
23
- id: string;
24
- incomingCallProtocols: any[];
25
- isExternal: boolean;
26
- name: string;
27
- orgId: string;
28
- };
29
- htMeta?: HtMeta;
30
- info?: any;
31
- jsSdkMeta?: {
32
- removedParticipantIds: string[];
33
- };
34
- links?: any;
35
- mediaShares?: any[];
36
- meetings?: any[];
37
- participants: any[];
38
- replaces?: any[];
39
- self?: any;
40
- sequence?: {
41
- dirtyParticipants: number;
42
- entries: number[];
43
- rangeEnd: number;
44
- rangeStart: number;
45
- sequenceHash: number;
46
- sessionToken: string;
47
- since: string;
48
- totalParticipants: number;
49
- };
50
- syncUrl?: string;
51
- url?: string;
52
- };
53
- export type LocusApiResponseBody = {
54
- dataSets?: DataSet[];
55
- locus: LocusDTO;
56
- };
57
2
  /**
58
3
  * @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
59
4
  * @export
@@ -71,7 +16,6 @@ export default class LocusInfo extends EventsScope {
71
16
  aclUrl: any;
72
17
  baseSequence: any;
73
18
  created: any;
74
- deltaParticipants: any;
75
19
  identities: any;
76
20
  membership: any;
77
21
  participants: any;
@@ -93,8 +37,6 @@ export default class LocusInfo extends EventsScope {
93
37
  resources: any;
94
38
  mainSessionLocusCache: any;
95
39
  self: any;
96
- hashTreeParser?: HashTreeParser;
97
- hashTreeObjectId2ParticipantId: Map<number, string>;
98
40
  /**
99
41
  * Constructor
100
42
  * @param {function} updateMeeting callback to update the meeting object from an object
@@ -135,41 +77,10 @@ export default class LocusInfo extends EventsScope {
135
77
  init(locus?: any): void;
136
78
  /**
137
79
  * @param {Object} locus
138
- * @param {DataSet[]} [dataSets=[]] - Array of data sets
139
80
  * @returns {undefined}
140
81
  * @memberof LocusInfo
141
82
  */
142
- initialSetup(locus: object, dataSets?: DataSet[]): void;
143
- /**
144
- *
145
- * @param {HashTreeObject} object data set object
146
- * @param {any} locus
147
- * @returns {void}
148
- */
149
- updateHashTreeObjectInLocus(object: HashTreeObject, locus: LocusDTO): LocusDTO;
150
- /**
151
- * Handles HTTP response from Locus API call when hash tree update.
152
- * @param {Meeting} meeting meeting object
153
- * @param {LocusApiResponseBody} responseBody body of the http reponse from Locus API call
154
- * @returns {void}
155
- */
156
- handleLocusAPIResponse(meeting: any, responseBody: LocusApiResponseBody): void;
157
- /**
158
- * Handles a hash tree message received from Locus.
159
- *
160
- * @param {Meeting} meeting - The meeting object
161
- * @param {HashTreeMessage} message incoming hash tree message
162
- * @returns {void}
163
- */
164
- private handleHashTreeMessage;
165
- /**
166
- * Updates our locus info based on the data parsed by the hash tree parser.
167
- *
168
- * @param {LocusInfoUpdateType} updateType - The type of update received.
169
- * @param {Object} [data] - Additional data for the update, if applicable.
170
- * @returns {void}
171
- */
172
- private updateFromHashTree;
83
+ initialSetup(locus: object): void;
173
84
  /**
174
85
  * @param {Meeting} meeting
175
86
  * @param {Object} data
@@ -189,11 +100,10 @@ export default class LocusInfo extends EventsScope {
189
100
  * updates the locus with full locus object
190
101
  * @param {object} locus locus object
191
102
  * @param {string} eventType particulat locus event
192
- * @param {DataSet[]} dataSets
193
103
  * @returns {object} null
194
104
  * @memberof LocusInfo
195
105
  */
196
- onFullLocus(locus: any, eventType?: string, dataSets?: Array<DataSet>): void;
106
+ onFullLocus(locus: any, eventType?: string): void;
197
107
  /**
198
108
  * @param {String} eventType
199
109
  * @returns {undefined}
@@ -237,23 +147,14 @@ export default class LocusInfo extends EventsScope {
237
147
  * @memberof LocusInfo
238
148
  */
239
149
  compareSelfAndHost(): void;
240
- /**
241
- * Update the deltaParticipants property of this object based on a list of
242
- * provided participants.
243
- *
244
- * @param {Array} [participants] - The participants to update against.
245
- * @returns {void}
246
- */
247
- updateParticipantDeltas(participants?: Array<any>): void;
248
150
  /**
249
151
  * update meeting's members
250
152
  * @param {Object} participants new participants object
251
- * @param {Array} removedParticipantIds list of removed participants
252
153
  * @param {Boolean} isReplace is replace the whole members
253
154
  * @returns {Array} updatedParticipants
254
155
  * @memberof LocusInfo
255
156
  */
256
- updateParticipants(participants: object, removedParticipantIds: string[], isReplace?: boolean): void;
157
+ updateParticipants(participants: object, isReplace?: boolean): void;
257
158
  /**
258
159
  * @param {Object} controls
259
160
  * @param {Object} self
@@ -34,6 +34,9 @@ interface IInMeetingActions {
34
34
  isClosedCaptionActive?: boolean;
35
35
  canStartManualCaption?: boolean;
36
36
  canStopManualCaption?: boolean;
37
+ isLocalRecordingStarted?: boolean;
38
+ isLocalRecordingStopped?: boolean;
39
+ isLocalRecordingPaused?: boolean;
37
40
  isManualCaptionActive?: boolean;
38
41
  isSaveTranscriptsEnabled?: boolean;
39
42
  isWebexAssistantActive?: boolean;
@@ -139,6 +142,9 @@ export default class InMeetingActions implements IInMeetingActions {
139
142
  isClosedCaptionActive: any;
140
143
  canStartManualCaption: any;
141
144
  canStopManualCaption: any;
145
+ isLocalRecordingStopped: any;
146
+ isLocalRecordingStarted: any;
147
+ isLocalRecordingPaused: any;
142
148
  isManualCaptionActive: any;
143
149
  isSaveTranscriptsEnabled: any;
144
150
  isWebexAssistantActive: any;
@@ -8,7 +8,6 @@ import Roap, { type TurnDiscoverySkipReason } from '../roap/index';
8
8
  import { type TurnServerInfo } from '../roap/types';
9
9
  import { type BundlePolicy } from '../media';
10
10
  import MediaProperties from '../media/properties';
11
- import { LocusDTO } from '../locus-info';
12
11
  import ReconnectionManager from '../reconnection-manager';
13
12
  import MeetingRequest from './request';
14
13
  import Members from '../members/index';
@@ -23,7 +22,7 @@ import ControlsOptionsManager from '../controls-options-manager';
23
22
  import { LocusMediaRequest } from './locusMediaRequest';
24
23
  import { BrbState } from './brbState';
25
24
  import { SetStageOptions } from './request.type';
26
- import { DataSet } from '../hashTree/hashTreeParser';
25
+ import { Invitee } from './type';
27
26
  export type CaptionData = {
28
27
  id: string;
29
28
  isFinal: boolean;
@@ -84,6 +83,7 @@ export type CallStateForMetrics = {
84
83
  loginType?: string;
85
84
  userNameInput?: string;
86
85
  emailInput?: string;
86
+ pstnCorrelationId?: string;
87
87
  };
88
88
  export declare const MEDIA_UPDATE_TYPE: {
89
89
  TRANSCODED_MEDIA_CONNECTION: string;
@@ -489,10 +489,11 @@ export default class Meeting extends StatelessWebexPlugin {
489
489
  /**
490
490
  * @param {Object} attrs
491
491
  * @param {Object} options
492
+ * @param {Function} callback - if provided, it will be called with the newly created meeting object as soon as the meeting.id is set
492
493
  * @constructor
493
494
  * @memberof Meeting
494
495
  */
495
- constructor(attrs: any, options: object);
496
+ constructor(attrs: any, options: object, callback: (meeting: Meeting) => void);
496
497
  /**
497
498
  * returns meeting is joined
498
499
  * @private
@@ -515,6 +516,16 @@ export default class Meeting extends StatelessWebexPlugin {
515
516
  * @param {string} correlationId
516
517
  */
517
518
  set correlationId(correlationId: string);
519
+ /**
520
+ * Getter - Returns callStateForMetrics.pstnCorrelationId
521
+ * @returns {string | undefined}
522
+ */
523
+ get pstnCorrelationId(): string | undefined;
524
+ /**
525
+ * Setter - sets callStateForMetrics.pstnCorrelationId
526
+ * @param {string | undefined} correlationId
527
+ */
528
+ set pstnCorrelationId(correlationId: string | undefined);
518
529
  /**
519
530
  * Getter - Returns callStateForMetrics.userNameInput
520
531
  * @returns {string}
@@ -864,45 +875,37 @@ export default class Meeting extends StatelessWebexPlugin {
864
875
  private updateMeetingObject;
865
876
  /**
866
877
  * Invite a guest to the call that isn't normally part of this call
867
- * @param {Object} invitee
878
+ * @param {Invitee} invitee
868
879
  * @param {String} invitee.emailAddress
869
880
  * @param {String} invitee.email
870
881
  * @param {String} invitee.phoneNumber
871
882
  * @param {Boolean} [alertIfActive]
883
+ * @param {Boolean} [invitee.skipEmailValidation]
884
+ * @param {Boolean} [invitee.isInternalNumber]
872
885
  * @returns {Promise} see #members.addMember
873
886
  * @public
874
887
  * @memberof Meeting
875
888
  */
876
- invite(invitee: {
877
- emailAddress: string;
878
- email: string;
879
- phoneNumber: string;
880
- roles: Array<string>;
881
- }, alertIfActive?: boolean): any;
889
+ invite(invitee: Invitee, alertIfActive?: boolean): any;
882
890
  /**
883
891
  * Cancel an outgoing phone call invitation made during a meeting
884
- * @param {Object} invitee
892
+ * @param {Invitee} invitee
885
893
  * @param {String} invitee.phoneNumber
886
894
  * @returns {Promise} see #members.cancelPhoneInvite
887
895
  * @public
888
896
  * @memberof Meeting
889
897
  */
890
- cancelPhoneInvite(invitee: {
891
- phoneNumber: string;
892
- }): any;
898
+ cancelPhoneInvite(invitee: Invitee): any;
893
899
  /**
894
900
  * Cancel an SIP/phone call invitation made during a meeting
895
- * @param {Object} invitee
901
+ * @param {Invitee} invitee
896
902
  * @param {String} invitee.memberId
897
903
  * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
898
904
  * @returns {Promise} see #members.cancelInviteByMemberId
899
905
  * @public
900
906
  * @memberof Meeting
901
907
  */
902
- cancelInviteByMemberId(invitee: {
903
- memberId: string;
904
- isInternalNumber?: boolean;
905
- }): any;
908
+ cancelInviteByMemberId(invitee: Invitee): any;
906
909
  /**
907
910
  * Admit the guest(s) to the call once they are waiting.
908
911
  * If the host/cohost is in a breakout session, the locus url
@@ -1042,13 +1045,11 @@ export default class Meeting extends StatelessWebexPlugin {
1042
1045
  * @memberof Meeting
1043
1046
  */
1044
1047
  setLocus(locus: {
1045
- locus: LocusDTO;
1046
1048
  mediaConnections: Array<any>;
1047
1049
  locusUrl: string;
1048
1050
  locusId: string;
1049
1051
  mediaId: string;
1050
1052
  host: object;
1051
- dataSets: DataSet[];
1052
1053
  } | any): void;
1053
1054
  /**
1054
1055
  * Upload logs for the current meeting
@@ -1266,12 +1267,6 @@ export default class Meeting extends StatelessWebexPlugin {
1266
1267
  startTranscription(options?: {
1267
1268
  spokenLanguage?: string;
1268
1269
  }): Promise<void>;
1269
- /** Handles Locus LLM events
1270
- *
1271
- * @param {LocusLLMEvent} event - The Locus LLM event to process
1272
- * @returns {void}
1273
- */
1274
- private processLocusLLMEvent;
1275
1270
  /**
1276
1271
  * Callback called when a relay event is received from meeting LLM Connection
1277
1272
  * @param {RelayEvent} e Event object coming from LLM Connection
@@ -1357,7 +1352,7 @@ export default class Meeting extends StatelessWebexPlugin {
1357
1352
  * @memberof Meeting
1358
1353
  * @returns {Promise}
1359
1354
  */
1360
- disconnectPhoneAudio(): Promise<[any, any]>;
1355
+ disconnectPhoneAudio(): Promise<void>;
1361
1356
  /**
1362
1357
  * Moves the call to the specified resourceId
1363
1358
  * @param {String} resourceId
@@ -0,0 +1,9 @@
1
+ export type Invitee = {
2
+ memberId: string;
3
+ emailAddress: string;
4
+ email: string;
5
+ phoneNumber: string;
6
+ roles: Array<string>;
7
+ skipEmailValidation?: boolean;
8
+ isInternalNumber?: boolean;
9
+ };
@@ -71,6 +71,9 @@ declare const MeetingUtil: {
71
71
  canStopTranscribing: (displayHints: any) => any;
72
72
  isClosedCaptionActive: (displayHints: any) => any;
73
73
  canStartManualCaption: (displayHints: any) => any;
74
+ isLocalRecordingStarted: (displayHints: any) => any;
75
+ isLocalRecordingStopped: (displayHints: any) => any;
76
+ isLocalRecordingPaused: (displayHints: any) => any;
74
77
  canStopManualCaption: (displayHints: any) => any;
75
78
  isManualCaptionActive: (displayHints: any) => any;
76
79
  isWebexAssistantActive: (displayHints: any) => any;
@@ -92,14 +95,14 @@ declare const MeetingUtil: {
92
95
  */
93
96
  addSequence: (meeting: any, requestBody: any) => void;
94
97
  /**
95
- * Updates the locus info for the meeting with the locus
96
- * information returned from API requests made to Locus
98
+ * Updates the locus info for the meeting with the delta locus
99
+ * returned from requests that include the sequence information
97
100
  * Returns the original response object
98
101
  * @param {Object} meeting The meeting object
99
102
  * @param {Object} response The response of the http request
100
103
  * @returns {Object}
101
104
  */
102
- updateLocusFromApiResponse: (meeting: any, response: any) => any;
105
+ updateLocusWithDelta: (meeting: any, response: any) => any;
103
106
  generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
104
107
  generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
105
108
  selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
@@ -95,5 +95,4 @@ export interface Participant {
95
95
  status: ParticipantMediaStatus;
96
96
  type: string;
97
97
  url: ParticipantUrl;
98
- isRemoved: boolean;
99
98
  }
@@ -22,12 +22,6 @@ export default class MembersCollection {
22
22
  * @memberof MembersCollection
23
23
  */
24
24
  getAll(): Record<string, Member>;
25
- /**
26
- * Removes a member from the collection
27
- * @param {String} id
28
- * @returns {void}
29
- */
30
- remove(id: string): void;
31
25
  /**
32
26
  * @returns {void}
33
27
  * reset members
@@ -4,6 +4,7 @@ import MembersCollection from './collection';
4
4
  import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
5
5
  import { MediaRequestManager } from '../multistream/mediaRequestManager';
6
6
  import { ServerRoleShape } from './types';
7
+ import { Invitee } from '../meeting/type';
7
8
  /**
8
9
  * @class Members
9
10
  */
@@ -84,7 +85,6 @@ export default class Members extends StatelessWebexPlugin {
84
85
  locusParticipantsUpdate(payload: {
85
86
  participants: object;
86
87
  isReplace?: boolean;
87
- removedParticipantIds?: Array<string>;
88
88
  }): void;
89
89
  /**
90
90
  * Internal update the content id
@@ -127,12 +127,6 @@ export default class Members extends StatelessWebexPlugin {
127
127
  * @memberof Members
128
128
  */
129
129
  private handleMembersUpdate;
130
- /**
131
- * removes members from the collection
132
- * @param {Array<string>} removedMembers removed members ids
133
- * @returns {void}
134
- */
135
- private removeMembers;
136
130
  /**
137
131
  * set members to the member collection from each updated/added lists as passed in
138
132
  * @param {Array} list
@@ -219,31 +213,28 @@ export default class Members extends StatelessWebexPlugin {
219
213
  private update;
220
214
  /**
221
215
  * Adds a guest Member to the associated meeting
222
- * @param {String} invitee
216
+ * @param {Invitee} invitee
223
217
  * @param {Boolean} [alertIfActive]
224
218
  * @returns {Promise}
225
219
  * @memberof Members
226
220
  */
227
- addMember(invitee: any, alertIfActive?: boolean): any;
221
+ addMember(invitee: Invitee, alertIfActive?: boolean): any;
228
222
  /**
229
223
  * Cancels an outgoing PSTN call to the associated meeting
230
- * @param {String} invitee
224
+ * @param {Invitee} invitee
231
225
  * @returns {Promise}
232
226
  * @memberof Members
233
227
  */
234
- cancelPhoneInvite(invitee: any): any;
228
+ cancelPhoneInvite(invitee: Invitee): any;
235
229
  /**
236
230
  * Cancels an SIP/phone call to the associated meeting
237
- * @param {Object} invitee
231
+ * @param {Invitee} invitee
238
232
  * @param {String} invitee.memberId - The memberId of the invitee
239
233
  * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
240
234
  * @returns {Promise}
241
235
  * @memberof Members
242
236
  */
243
- cancelInviteByMemberId(invitee: {
244
- memberId: string;
245
- isInternalNumber?: boolean;
246
- }): any;
237
+ cancelInviteByMemberId(invitee: Invitee): any;
247
238
  /**
248
239
  * Admits waiting members (invited guests to meeting)
249
240
  * @param {Array} memberIds
@@ -1,4 +1,5 @@
1
1
  import { RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape } from './types';
2
+ import { Invitee } from '../meeting/type';
2
3
  declare const MembersUtil: {
3
4
  /**
4
5
  * @param {Object} invitee with emailAddress, email or phoneNumber
@@ -63,7 +64,7 @@ declare const MembersUtil: {
63
64
  alertIfActive: any;
64
65
  };
65
66
  };
66
- isInvalidInvitee: (invitee: any) => boolean;
67
+ isInvalidInvitee: (invitee: Invitee) => boolean;
67
68
  getRemoveMemberRequestParams: (options: any) => {
68
69
  method: string;
69
70
  uri: string;
@@ -7,9 +7,17 @@ export declare const RemoteMediaEvents: {
7
7
  Stopped: string;
8
8
  };
9
9
  export type RemoteVideoResolution = 'thumbnail' | 'very small' | 'small' | 'medium' | 'large' | 'best';
10
+ export declare const MAX_FS_VALUES: {
11
+ '90p': number;
12
+ '180p': number;
13
+ '360p': number;
14
+ '540p': number;
15
+ '720p': number;
16
+ '1080p': number;
17
+ };
10
18
  /**
11
19
  * Converts pane size into h264 maxFs
12
- * @param {PaneSize} paneSize
20
+ * @param {RemoteVideoResolution} paneSize
13
21
  * @returns {number}
14
22
  */
15
23
  export declare function getMaxFs(paneSize: RemoteVideoResolution): number;
@@ -29,6 +37,12 @@ export declare class RemoteMedia extends EventsScope {
29
37
  private readonly options;
30
38
  private mediaRequestId?;
31
39
  readonly id: RemoteMediaId;
40
+ /**
41
+ * The max frame size of the media request, used for logging and media requests.
42
+ * Set by setSizeHint() based on video element dimensions.
43
+ * When > 0, this value takes precedence over options.resolution in sendMediaRequest().
44
+ */
45
+ private maxFrameSize;
32
46
  /**
33
47
  * Constructs RemoteMedia instance
34
48
  *
@@ -45,6 +59,11 @@ export declare class RemoteMedia extends EventsScope {
45
59
  * @note width/height of 0 will be ignored
46
60
  */
47
61
  setSizeHint(width: any, height: any): void;
62
+ /**
63
+ * Get the current effective maxFs value that would be used in media requests
64
+ * @returns {number | undefined} The maxFs value, or undefined if no constraints
65
+ */
66
+ getEffectiveMaxFs(): number | undefined;
48
67
  /**
49
68
  * registers event listeners on the receive slot and forwards all the events
50
69
  */
@@ -45,5 +45,16 @@ export declare class RemoteMediaGroup {
45
45
  * @returns true if remote media is found
46
46
  */
47
47
  includes(remoteMedia: RemoteMedia, filter?: 'all' | 'pinned' | 'unpinned'): boolean;
48
+ /**
49
+ * Calculate the effective maxFs for the active speaker media request based on unpinned RemoteMedia instances
50
+ * @returns {number | undefined} The calculated maxFs value, or undefined if no constraints
51
+ * @private
52
+ */
53
+ private getEffectiveMaxFsForActiveSpeaker;
54
+ /**
55
+ * Get the current effective maxFs that would be used for the active speaker media request
56
+ * @returns {number | undefined} The effective maxFs value
57
+ */
58
+ getEffectiveMaxFs(): number | undefined;
48
59
  }
49
60
  export {};
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.9.0-webinar5k.1"
461
+ version: "3.9.0"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
3
  "description": "",
4
- "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
4
+ "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
5
5
  "contributors": [
6
6
  "Adam Weeks <adweeks@cisco.com> (https://adamweeks.com/)",
7
7
  "Arun Ganeshan <arungane@cisco.com>",
@@ -43,13 +43,12 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.9.0-webinar5k.1",
47
- "@webex/plugin-rooms": "3.9.0-webinar5k.1",
48
- "@webex/test-helper-chai": "3.9.0-webinar5k.1",
49
- "@webex/test-helper-mocha": "3.9.0-webinar5k.1",
50
- "@webex/test-helper-mock-webex": "3.9.0-webinar5k.1",
51
- "@webex/test-helper-retry": "3.9.0-webinar5k.1",
52
- "@webex/test-helper-test-users": "3.9.0-webinar5k.1",
46
+ "@webex/plugin-rooms": "3.9.0",
47
+ "@webex/test-helper-chai": "3.9.0",
48
+ "@webex/test-helper-mocha": "3.9.0",
49
+ "@webex/test-helper-mock-webex": "3.9.0",
50
+ "@webex/test-helper-retry": "3.9.0",
51
+ "@webex/test-helper-test-users": "3.9.0",
53
52
  "chai": "^4.3.4",
54
53
  "chai-as-promised": "^7.1.1",
55
54
  "eslint": "^8.24.0",
@@ -61,23 +60,23 @@
61
60
  "typescript": "^4.7.4"
62
61
  },
63
62
  "dependencies": {
64
- "@webex/common": "3.9.0-webinar5k.1",
63
+ "@webex/common": "3.9.0",
65
64
  "@webex/event-dictionary-ts": "^1.0.1819",
66
65
  "@webex/internal-media-core": "2.18.5",
67
- "@webex/internal-plugin-conversation": "3.9.0-webinar5k.1",
68
- "@webex/internal-plugin-device": "3.9.0-webinar5k.1",
69
- "@webex/internal-plugin-llm": "3.9.0-webinar5k.1",
70
- "@webex/internal-plugin-mercury": "3.9.0-webinar5k.1",
71
- "@webex/internal-plugin-metrics": "3.9.0-webinar5k.1",
72
- "@webex/internal-plugin-support": "3.9.0-webinar5k.1",
73
- "@webex/internal-plugin-user": "3.9.0-webinar5k.1",
74
- "@webex/internal-plugin-voicea": "3.9.0-webinar5k.1",
75
- "@webex/media-helpers": "3.9.0-webinar5k.1",
76
- "@webex/plugin-people": "3.9.0-webinar5k.1",
77
- "@webex/plugin-rooms": "3.9.0-webinar5k.1",
66
+ "@webex/internal-plugin-conversation": "3.9.0",
67
+ "@webex/internal-plugin-device": "3.9.0",
68
+ "@webex/internal-plugin-llm": "3.9.0",
69
+ "@webex/internal-plugin-mercury": "3.9.0",
70
+ "@webex/internal-plugin-metrics": "3.9.0",
71
+ "@webex/internal-plugin-support": "3.9.0",
72
+ "@webex/internal-plugin-user": "3.9.0",
73
+ "@webex/internal-plugin-voicea": "3.9.0",
74
+ "@webex/media-helpers": "3.9.0",
75
+ "@webex/plugin-people": "3.9.0",
76
+ "@webex/plugin-rooms": "3.9.0",
78
77
  "@webex/ts-sdp": "^1.8.1",
79
78
  "@webex/web-capabilities": "^1.6.0",
80
- "@webex/webex-core": "3.9.0-webinar5k.1",
79
+ "@webex/webex-core": "3.9.0",
81
80
  "ampersand-collection": "^2.0.2",
82
81
  "bowser": "^2.11.0",
83
82
  "btoa": "^1.2.1",
@@ -88,11 +87,10 @@
88
87
  "jwt-decode": "3.1.2",
89
88
  "lodash": "^4.17.21",
90
89
  "uuid": "^3.3.2",
91
- "webrtc-adapter": "^8.1.2",
92
- "xxh3-ts": "^2.0.1"
90
+ "webrtc-adapter": "^8.1.2"
93
91
  },
94
92
  "//": [
95
93
  "TODO: upgrade jwt-decode when moving to node 18"
96
94
  ],
97
- "version": "3.9.0-webinar5k.1"
95
+ "version": "3.9.0"
98
96
  }