@webex/plugin-meetings 2.59.6-next.2 → 2.59.7

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 (152) hide show
  1. package/dist/common/browser-detection.d.ts +9 -0
  2. package/dist/common/browser-detection.js +2 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.d.ts +48 -0
  5. package/dist/common/collection.js +2 -2
  6. package/dist/common/collection.js.map +1 -1
  7. package/dist/common/config.d.ts +2 -0
  8. package/dist/common/errors/captcha-error.d.ts +15 -0
  9. package/dist/common/errors/intent-to-join.d.ts +16 -0
  10. package/dist/common/errors/join-meeting.d.ts +17 -0
  11. package/dist/common/errors/media.d.ts +15 -0
  12. package/dist/common/errors/parameter.d.ts +15 -0
  13. package/dist/common/errors/password-error.d.ts +15 -0
  14. package/dist/common/errors/permission.d.ts +14 -0
  15. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  16. package/dist/common/errors/reconnection.d.ts +15 -0
  17. package/dist/common/errors/stats.d.ts +15 -0
  18. package/dist/common/errors/webex-errors.d.ts +81 -0
  19. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  20. package/dist/common/events/events-scope.d.ts +17 -0
  21. package/dist/common/events/events.d.ts +12 -0
  22. package/dist/common/events/trigger-proxy.d.ts +2 -0
  23. package/dist/common/events/util.d.ts +2 -0
  24. package/dist/common/logs/logger-config.d.ts +2 -0
  25. package/dist/common/logs/logger-proxy.d.ts +2 -0
  26. package/dist/common/logs/request.d.ts +34 -0
  27. package/dist/common/queue.d.ts +32 -0
  28. package/dist/config.d.ts +73 -0
  29. package/dist/config.js +2 -2
  30. package/dist/config.js.map +1 -1
  31. package/dist/constants.d.ts +926 -0
  32. package/dist/constants.js +2 -0
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controls-options-manager/constants.d.ts +4 -0
  35. package/dist/controls-options-manager/enums.d.ts +5 -0
  36. package/dist/controls-options-manager/index.d.ts +120 -0
  37. package/dist/controls-options-manager/index.js +2 -2
  38. package/dist/controls-options-manager/index.js.map +1 -1
  39. package/dist/controls-options-manager/util.d.ts +7 -0
  40. package/dist/index.d.ts +4 -0
  41. package/dist/locus-info/controlsUtils.d.ts +2 -0
  42. package/dist/locus-info/controlsUtils.js +6 -6
  43. package/dist/locus-info/controlsUtils.js.map +1 -1
  44. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  45. package/dist/locus-info/fullState.d.ts +2 -0
  46. package/dist/locus-info/hostUtils.d.ts +2 -0
  47. package/dist/locus-info/index.d.ts +269 -0
  48. package/dist/locus-info/index.js +18 -18
  49. package/dist/locus-info/index.js.map +1 -1
  50. package/dist/locus-info/infoUtils.d.ts +2 -0
  51. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  52. package/dist/locus-info/parser.d.ts +212 -0
  53. package/dist/locus-info/parser.js +2 -2
  54. package/dist/locus-info/parser.js.map +1 -1
  55. package/dist/locus-info/selfUtils.d.ts +2 -0
  56. package/dist/media/index.d.ts +32 -0
  57. package/dist/media/properties.d.ts +108 -0
  58. package/dist/media/util.d.ts +2 -0
  59. package/dist/mediaQualityMetrics/config.d.ts +233 -0
  60. package/dist/meeting/effectsState.d.ts +42 -0
  61. package/dist/meeting/in-meeting-actions.d.ts +79 -0
  62. package/dist/meeting/index.d.ts +1622 -0
  63. package/dist/meeting/index.js +51 -28
  64. package/dist/meeting/index.js.map +1 -1
  65. package/dist/meeting/muteState.d.ts +116 -0
  66. package/dist/meeting/request.d.ts +255 -0
  67. package/dist/meeting/request.js +2 -2
  68. package/dist/meeting/request.js.map +1 -1
  69. package/dist/meeting/state.d.ts +9 -0
  70. package/dist/meeting/util.d.ts +2 -0
  71. package/dist/meeting/util.js +4 -4
  72. package/dist/meeting/util.js.map +1 -1
  73. package/dist/meeting-info/collection.d.ts +20 -0
  74. package/dist/meeting-info/collection.js +2 -2
  75. package/dist/meeting-info/collection.js.map +1 -1
  76. package/dist/meeting-info/index.d.ts +57 -0
  77. package/dist/meeting-info/meeting-info-v2.d.ts +93 -0
  78. package/dist/meeting-info/request.d.ts +22 -0
  79. package/dist/meeting-info/util.d.ts +2 -0
  80. package/dist/meeting-info/utilv2.d.ts +2 -0
  81. package/dist/meetings/collection.d.ts +23 -0
  82. package/dist/meetings/collection.js +2 -2
  83. package/dist/meetings/collection.js.map +1 -1
  84. package/dist/meetings/index.d.ts +296 -0
  85. package/dist/meetings/request.d.ts +27 -0
  86. package/dist/meetings/util.d.ts +18 -0
  87. package/dist/member/index.d.ts +147 -0
  88. package/dist/member/member.types.d.ts +11 -0
  89. package/dist/member/util.d.ts +2 -0
  90. package/dist/members/collection.d.ts +24 -0
  91. package/dist/members/index.d.ts +298 -0
  92. package/dist/members/index.js +2 -2
  93. package/dist/members/index.js.map +1 -1
  94. package/dist/members/request.d.ts +50 -0
  95. package/dist/members/util.d.ts +2 -0
  96. package/dist/metrics/config.d.ts +169 -0
  97. package/dist/metrics/constants.d.ts +59 -0
  98. package/dist/metrics/constants.js +2 -0
  99. package/dist/metrics/constants.js.map +1 -1
  100. package/dist/metrics/index.d.ts +152 -0
  101. package/dist/metrics/index.js +2 -2
  102. package/dist/metrics/index.js.map +1 -1
  103. package/dist/networkQualityMonitor/index.d.ts +70 -0
  104. package/dist/peer-connection-manager/index.d.ts +6 -0
  105. package/dist/peer-connection-manager/util.d.ts +6 -0
  106. package/dist/personal-meeting-room/index.d.ts +47 -0
  107. package/dist/personal-meeting-room/request.d.ts +14 -0
  108. package/dist/personal-meeting-room/util.d.ts +2 -0
  109. package/dist/reachability/index.d.ts +139 -0
  110. package/dist/reachability/index.js +2 -9
  111. package/dist/reachability/index.js.map +1 -1
  112. package/dist/reachability/request.d.ts +35 -0
  113. package/dist/reactions/reactions.d.ts +4 -0
  114. package/dist/reactions/reactions.type.d.ts +32 -0
  115. package/dist/reconnection-manager/index.d.ts +112 -0
  116. package/dist/recording-controller/enums.d.ts +7 -0
  117. package/dist/recording-controller/index.d.ts +193 -0
  118. package/dist/recording-controller/util.d.ts +13 -0
  119. package/dist/roap/collection.d.ts +10 -0
  120. package/dist/roap/handler.d.ts +47 -0
  121. package/dist/roap/index.d.ts +116 -0
  122. package/dist/roap/index.js +13 -12
  123. package/dist/roap/index.js.map +1 -1
  124. package/dist/roap/request.d.ts +35 -0
  125. package/dist/roap/state.d.ts +9 -0
  126. package/dist/roap/turnDiscovery.d.ts +81 -0
  127. package/dist/roap/turnDiscovery.js +130 -44
  128. package/dist/roap/turnDiscovery.js.map +1 -1
  129. package/dist/roap/util.d.ts +2 -0
  130. package/dist/statsAnalyzer/global.d.ts +118 -0
  131. package/dist/statsAnalyzer/global.js +4 -12
  132. package/dist/statsAnalyzer/global.js.map +1 -1
  133. package/dist/statsAnalyzer/index.d.ts +193 -0
  134. package/dist/statsAnalyzer/index.js +56 -14
  135. package/dist/statsAnalyzer/index.js.map +1 -1
  136. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -0
  137. package/dist/statsAnalyzer/mqaUtil.js +15 -15
  138. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  139. package/dist/transcription/index.d.ts +64 -0
  140. package/package.json +21 -22
  141. package/src/config.ts +2 -2
  142. package/src/constants.ts +2 -0
  143. package/src/meeting/index.ts +35 -0
  144. package/src/metrics/constants.ts +2 -0
  145. package/src/roap/index.ts +14 -10
  146. package/src/roap/turnDiscovery.ts +48 -20
  147. package/src/statsAnalyzer/global.ts +2 -10
  148. package/src/statsAnalyzer/index.ts +80 -17
  149. package/test/unit/spec/meeting/index.js +77 -6
  150. package/test/unit/spec/roap/index.ts +84 -80
  151. package/test/unit/spec/roap/turnDiscovery.ts +21 -0
  152. package/test/unit/spec/stats-analyzer/index.js +151 -0
@@ -0,0 +1,116 @@
1
+ declare const createMuteState: (type: any, meeting: any, mediaDirection: any) => MuteState;
2
+ /** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches
3
+ the last requested state by the client.
4
+
5
+ More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#
6
+ */
7
+ declare class MuteState {
8
+ pendingPromiseReject: any;
9
+ pendingPromiseResolve: any;
10
+ state: any;
11
+ type: any;
12
+ /**
13
+ * Constructor
14
+ *
15
+ * @param {String} type - audio or video
16
+ * @param {Object} meeting - the meeting object (used for reading current remote mute status)
17
+ */
18
+ constructor(type: string, meeting: any);
19
+ /**
20
+ * Handles mute/unmute request from the client/user. Returns a promise that's resolved once the server update is completed or
21
+ * at the point that this request becomese superseded by another client request.
22
+ *
23
+ * The client doesn't have to wait for the returned promise to resolve before calling handleClientRequest() again. If
24
+ * handleClientRequest() is called again before the previous one resolved, the MuteState class will make sure that eventually
25
+ * the server state will match the last requested state from the client.
26
+ *
27
+ * @public
28
+ * @memberof MuteState
29
+ * @param {Object} [meeting] the meeting object
30
+ * @param {Boolean} [mute] true for muting, false for unmuting request
31
+ * @returns {Promise}
32
+ */
33
+ handleClientRequest(meeting?: object, mute?: boolean): Promise<unknown>;
34
+ /**
35
+ * Applies the current mute state to the local track (by enabling or disabling it accordingly)
36
+ *
37
+ * @public
38
+ * @param {Object} [meeting] the meeting object
39
+ * @memberof MuteState
40
+ * @returns {void}
41
+ */
42
+ applyClientStateLocally(meeting?: any): void;
43
+ /**
44
+ * Updates the server local and remote mute values so that they match the current client desired state.
45
+ *
46
+ * @private
47
+ * @param {Object} [meeting] the meeting object
48
+ * @memberof MuteState
49
+ * @returns {void}
50
+ */
51
+ private applyClientStateToServer;
52
+ /**
53
+ * Sets the local mute value in the server
54
+ *
55
+ * @private
56
+ * @param {Object} [meeting] the meeting object
57
+ * @memberof MuteState
58
+ * @returns {Promise}
59
+ */
60
+ private sendLocalMuteRequestToServer;
61
+ /**
62
+ * Sets the remote mute value in the server
63
+ *
64
+ * @private
65
+ * @param {Object} [meeting] the meeting object
66
+ * @memberof MuteState
67
+ * @returns {Promise}
68
+ */
69
+ private sendRemoteMuteRequestToServer;
70
+ /**
71
+ * This method should be called whenever the server remote mute state is changed
72
+ *
73
+ * @public
74
+ * @memberof MuteState
75
+ * @param {Boolean} [muted] true if user is remotely muted, false otherwise
76
+ * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
77
+ * @returns {undefined}
78
+ */
79
+ handleServerRemoteMuteUpdate(muted?: boolean, unmuteAllowed?: boolean): void;
80
+ /**
81
+ * This method should be called whenever we receive from the server a requirement to locally unmute
82
+ *
83
+ * @public
84
+ * @memberof MuteState
85
+ * @param {Object} [meeting] the meeting object
86
+ * @returns {undefined}
87
+ */
88
+ handleServerLocalUnmuteRequired(meeting?: object): void;
89
+ /**
90
+ * Returns true if the user is locally or remotely muted
91
+ *
92
+ * @public
93
+ * @memberof MuteState
94
+ * @returns {Boolean}
95
+ */
96
+ isMuted(): any;
97
+ /**
98
+ * Returns true if the user is locally muted
99
+ *
100
+ * @public
101
+ * @memberof MuteState
102
+ * @returns {Boolean}
103
+ */
104
+ isLocallyMuted(): any;
105
+ /**
106
+ * Returns true if the user is muted as a result of the client request (and not remotely muted)
107
+ *
108
+ * @public
109
+ * @memberof MuteState
110
+ * @returns {Boolean}
111
+ */
112
+ isSelf(): boolean;
113
+ get muted(): any;
114
+ get self(): boolean;
115
+ }
116
+ export default createMuteState;
@@ -0,0 +1,255 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { Reaction } from '../reactions/reactions.type';
3
+ /**
4
+ * @class MeetingRequest
5
+ */
6
+ export default class MeetingRequest extends StatelessWebexPlugin {
7
+ changeVideoLayoutDebounced: any;
8
+ constructor(attrs: any, options: any);
9
+ /**
10
+ * Make a network request to join a meeting
11
+ * @param {Object} options
12
+ * @param {String} options.sipUri
13
+ * @param {String} options.deviceUrl
14
+ * @param {String} options.locusUrl
15
+ * @param {String} options.resourceId,
16
+ * @param {String} options.correlationId
17
+ * @param {boolean} options.ensureConversation
18
+ * @param {boolean} options.moderator
19
+ * @param {boolean} options.pin
20
+ * @param {boolean} options.moveToResource
21
+ * @param {Object} options.roapMessage
22
+ * @returns {Promise}
23
+ */
24
+ joinMeeting(options: {
25
+ sipUri: string;
26
+ deviceUrl: string;
27
+ locusUrl: string;
28
+ resourceId: string;
29
+ correlationId: string;
30
+ ensureConversation: boolean;
31
+ moderator: boolean;
32
+ pin: boolean;
33
+ moveToResource: boolean;
34
+ roapMessage: any;
35
+ asResourceOccupant: any;
36
+ inviteeAddress: any;
37
+ meetingNumber: any;
38
+ permissionToken: any;
39
+ preferTranscoding: any;
40
+ }): Promise<any>;
41
+ /**
42
+ * Send a request to refresh the captcha
43
+ * @param {Object} options
44
+ * @param {String} options.captchaRefreshUrl
45
+ * @param {String} options.captchaId
46
+ * @returns {Promise}
47
+ * @private
48
+ */
49
+ private refreshCaptcha;
50
+ /**
51
+ * Make a network request to add a dial in device
52
+ * @param {Object} options
53
+ * @param {String} options.correlationId
54
+ * @param {String} options.locusUrl url for the meeting
55
+ * @param {String} options.dialInUrl identifier for the to-be provisioned device
56
+ * @param {String} options.clientUrl identifier for the web device
57
+ * @returns {Promise}
58
+ * @private
59
+ */
60
+ private dialIn;
61
+ /**
62
+ * Make a network request to add a dial out device
63
+ * @param {Object} options
64
+ * @param {String} options.correlationId
65
+ * @param {String} options.locusUrl url for the meeting
66
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
67
+ * @param {String} options.phoneNumber phone number to dial out to
68
+ * @param {String} options.clientUrl identifier for the web device
69
+ * @returns {Promise}
70
+ * @private
71
+ */
72
+ private dialOut;
73
+ /**
74
+ * Syns the missed delta event
75
+ * @param {Object} options
76
+ * @param {boolean} options.desync flag to get partial or whole locus object
77
+ * @param {String} options.syncUrl sync url to get ht elatest locus delta
78
+ * @returns {Promise}
79
+ */
80
+ syncMeeting(options: {
81
+ desync: boolean;
82
+ syncUrl: string;
83
+ }): any;
84
+ /**
85
+ * Request to get the complete locus object
86
+ * @param {Object} options
87
+ * @param {boolean} options.desync flag to get partial or whole locus object
88
+ * @param {String} options.locusUrl sync url to get ht elatest locus delta
89
+ * @returns {Promise}
90
+ */
91
+ getFullLocus(options: {
92
+ desync: boolean;
93
+ locusUrl: string;
94
+ }): any;
95
+ /**
96
+ * Make a network request to make a provisioned phone leave the meeting
97
+ * @param {Object} options
98
+ * @param {String} options.locusUrl
99
+ * @param {String} options.phoneUrl
100
+ * @param {String} options.correlationId
101
+ * @param {String} options.selfId
102
+ * @returns {Promise}
103
+ * @private
104
+ */
105
+ private disconnectPhoneAudio;
106
+ /**
107
+ * Make a network request to leave a meeting
108
+ * @param {Object} options
109
+ * @param {Url} options.locusUrl
110
+ * @param {String} options.selfId
111
+ * @param {Url} options.deviceUrl
112
+ * @param {String} options.resourceId,
113
+ * @param {String} options.correlationId
114
+ * @returns {Promise}
115
+ */
116
+ leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
117
+ locusUrl: string;
118
+ selfId: string;
119
+ deviceUrl: string;
120
+ resourceId: string;
121
+ correlationId: string;
122
+ }): any;
123
+ /**
124
+ * Make a network request to acknowledge a meeting
125
+ * @param {Object} options
126
+ * @param {String} options.locusUrl
127
+ * @param {String} options.deviceUrl
128
+ * @param {String} options.correlationId
129
+ * @returns {Promise}
130
+ */
131
+ acknowledgeMeeting(options: {
132
+ locusUrl: string;
133
+ deviceUrl: string;
134
+ correlationId: string;
135
+ }): any;
136
+ lockMeeting(options: any): any;
137
+ /**
138
+ * Make a network request to decline a meeting
139
+ * @param {Object} options
140
+ * @param {String} options.locusUrl
141
+ * @param {String} options.deviceUrl
142
+ * @param {String} options.reason
143
+ * @returns {Promise}
144
+ */
145
+ declineMeeting(options: {
146
+ locusUrl: string;
147
+ deviceUrl: string;
148
+ reason: string;
149
+ }): any;
150
+ /**
151
+ * Toggle remote audio and/or video
152
+ * @param {Object} options options for toggling
153
+ * @param {String} options.selfId Locus self id??
154
+ * @param {String} options.locusUrl Locus url
155
+ * @param {String} options.deviceUrl Url of a device
156
+ * @param {String} options.resourceId Populated if you are paired to a device
157
+ * @param {String} options.localMedias local sdps
158
+ * @returns {Promise}
159
+ */
160
+ remoteAudioVideoToggle(options: {
161
+ selfId: string;
162
+ locusUrl: string;
163
+ deviceUrl: string;
164
+ resourceId: string;
165
+ localMedias: string;
166
+ } | any): any;
167
+ /**
168
+ * change the content floor grant
169
+ * @param {Object} options options for floor grant
170
+ * @param {String} options.disposition floor action (granted/released)
171
+ * @param {String} options.personUrl personUrl who is requesting floor
172
+ * @param {String} options.deviceUrl Url of a device
173
+ * @param {String} options.resourceId Populated if you are paired to a device
174
+ * @param {String} options.uri floor grant uri
175
+ * @returns {Promise}
176
+ */
177
+ changeMeetingFloor(options: {
178
+ disposition: string;
179
+ personUrl: string;
180
+ deviceUrl: string;
181
+ resourceId: string;
182
+ uri: string;
183
+ } | any): any;
184
+ /**
185
+ * Sends a request to the DTMF endpoint to send tones
186
+ * @param {Object} options
187
+ * @param {String} options.locusUrl
188
+ * @param {String} options.deviceUrl
189
+ * @param {String} options.tones a string of one or more DTMF tones to send
190
+ * @returns {Promise}
191
+ */
192
+ sendDTMF({ locusUrl, deviceUrl, tones }: {
193
+ locusUrl: string;
194
+ deviceUrl: string;
195
+ tones: string;
196
+ }): any;
197
+ /**
198
+ * Sends a request to the controls endpoint to set the video layout
199
+ * @param {Object} options
200
+ * @param {String} options.locusUrl
201
+ * @param {String} options.deviceUrl
202
+ * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
203
+ * @param {Object} options.main preferred dimensions for the remote main video stream
204
+ * @param {Number} options.main.width preferred width of main video stream
205
+ * @param {Number} options.main.height preferred height of main video stream
206
+ * @param {Object} options.content preferred dimensions for the remote content share stream
207
+ * @param {Number} options.content.width preferred width of content share stream
208
+ * @param {Number} options.content.height preferred height of content share stream
209
+ * @returns {Promise}
210
+ */
211
+ changeVideoLayout({ locusUrl, deviceUrl, layoutType, main, content, }: {
212
+ locusUrl: string;
213
+ deviceUrl: string;
214
+ layoutType: string;
215
+ main: {
216
+ width: number;
217
+ height: number;
218
+ };
219
+ content: {
220
+ width: number;
221
+ height: number;
222
+ };
223
+ }): any;
224
+ /**
225
+ * Make a network request to end meeting for all
226
+ * @param {Object} options
227
+ * @param {Url} options.locusUrl
228
+ * @returns {Promise}
229
+ */
230
+ endMeetingForAll({ locusUrl }: {
231
+ locusUrl: string;
232
+ }): any;
233
+ /**
234
+ * Send a locus keepAlive (used in lobby)
235
+ * @param {Object} options
236
+ * @param {Url} options.keepAliveUrl
237
+ * @returns {Promise}
238
+ */
239
+ keepAlive({ keepAliveUrl }: {
240
+ keepAliveUrl: string;
241
+ }): any;
242
+ /**
243
+ * Make a network request to send a reaction.
244
+ * @param {Object} options
245
+ * @param {Url} options.reactionChannelUrl
246
+ * @param {Reaction} options.reaction
247
+ * @param {string} options.senderID
248
+ * @returns {Promise}
249
+ */
250
+ sendReaction({ reactionChannelUrl, reaction, participantId, }: {
251
+ reactionChannelUrl: string;
252
+ reaction: Reaction;
253
+ participantId: string;
254
+ }): any;
255
+ }
@@ -23,8 +23,8 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
23
23
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
24
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
25
25
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
26
+ var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
26
27
  var _uuid = _interopRequireDefault(require("uuid"));
27
- var _lodash = require("lodash");
28
28
  var _webexCore = require("@webex/webex-core");
29
29
  var _common = require("@webex/common");
30
30
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
@@ -44,7 +44,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
44
44
  (0, _classCallCheck2.default)(this, MeetingRequest);
45
45
  _this = _super.call(this, attrs, options);
46
46
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "changeVideoLayoutDebounced", void 0);
47
- _this.changeVideoLayoutDebounced = (0, _lodash.debounce)(_this.changeVideoLayout, 2000, {
47
+ _this.changeVideoLayoutDebounced = (0, _debounce2.default)(_this.changeVideoLayout, 2000, {
48
48
  leading: true,
49
49
  trailing: true
50
50
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","_interopRequireDefault","require","_lodash","_webexCore","_common","_loggerProxy","_constants","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingRequest","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_assertThisInitialized2","changeVideoLayoutDebounced","debounce","changeVideoLayout","leading","trailing","_createClass2","value","_joinMeeting","_asyncToGenerator2","_regenerator","mark","_callee","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","url","body","wrap","_callee$","_context","prev","next","LoggerProxy","logger","info","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","concat","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","t0","error","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","abrupt","request","method","HTTP_VERBS","POST","uri","stop","joinMeeting","_x","refreshCaptcha","_ref","captchaRefreshUrl","captchaId","catch","err","dialIn","_ref2","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOut","_ref3","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","syncMeeting","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","getFullLocus","_promise","reject","disconnectPhoneAudio","_ref4","phoneUrl","selfId","LEAVE","PUT","leaveMeeting","_ref5","acknowledgeMeeting","ALERT","lockMeeting","CONTROLS","lock","locked","PATCH","declineMeeting","DECLINE","reason","remoteAudioVideoToggle","_options$preferTransc","MEDIA","changeMeetingFloor","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","sendDTMF","_ref6","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","_ref7","layoutType","main","content","width","height","Error","_stringify","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","endMeetingForAll","_ref8","END","keepAlive","_ref9","keepAliveUrl","sendReaction","_ref10","reactionChannelUrl","reaction","participantId","sender","StatelessWebexPlugin","exports"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n} from '../constants';\nimport {Reaction} from '../reactions/reactions.type';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n\n constructor(attrs: any, options: any) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n if (this.webex.meetings.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options: {desync: boolean; syncUrl: string}) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl\n .concat(syncUrl.split('?')[1] ? '&' : '?')\n .concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl,\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`\n );\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options: {desync: boolean; locusUrl: string}) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`\n );\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @returns {Promise}\n */\n remoteAudioVideoToggle(\n options:\n | {\n selfId: string;\n locusUrl: string;\n deviceUrl: string;\n resourceId: string;\n localMedias: string;\n }\n | any\n ) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({\n reactionChannelUrl,\n reaction,\n participantId,\n }: {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n }) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_common","_loggerProxy","_constants","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingRequest","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_assertThisInitialized2","changeVideoLayoutDebounced","_debounce2","changeVideoLayout","leading","trailing","_createClass2","value","_joinMeeting","_asyncToGenerator2","_regenerator","mark","_callee","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","url","body","wrap","_callee$","_context","prev","next","LoggerProxy","logger","info","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","concat","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","t0","error","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","abrupt","request","method","HTTP_VERBS","POST","uri","stop","joinMeeting","_x","refreshCaptcha","_ref","captchaRefreshUrl","captchaId","catch","err","dialIn","_ref2","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOut","_ref3","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","syncMeeting","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","getFullLocus","_promise","reject","disconnectPhoneAudio","_ref4","phoneUrl","selfId","LEAVE","PUT","leaveMeeting","_ref5","acknowledgeMeeting","ALERT","lockMeeting","CONTROLS","lock","locked","PATCH","declineMeeting","DECLINE","reason","remoteAudioVideoToggle","_options$preferTransc","MEDIA","changeMeetingFloor","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","sendDTMF","_ref6","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","_ref7","layoutType","main","content","width","height","Error","_stringify","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","endMeetingForAll","_ref8","END","keepAlive","_ref9","keepAliveUrl","sendReaction","_ref10","reactionChannelUrl","reaction","participantId","sender","StatelessWebexPlugin","exports"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n} from '../constants';\nimport {Reaction} from '../reactions/reactions.type';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n\n constructor(attrs: any, options: any) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n if (this.webex.meetings.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options: {desync: boolean; syncUrl: string}) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl\n .concat(syncUrl.split('?')[1] ? '&' : '?')\n .concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl,\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`\n );\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options: {desync: boolean; locusUrl: string}) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`\n );\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @returns {Promise}\n */\n remoteAudioVideoToggle(\n options:\n | {\n selfId: string;\n locusUrl: string;\n deviceUrl: string;\n resourceId: string;\n localMedias: string;\n }\n | any\n ) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({\n reactionChannelUrl,\n reaction,\n participantId,\n }: {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n }) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ declare const MeetingStateMachine: {
2
+ /**
3
+ * Initializes the StateMachine for the meeting
4
+ * @param {Meeting} meetingRef A reference to a meeting instance
5
+ * @returns {StateMachine}
6
+ */
7
+ create(meetingRef: any): any;
8
+ };
9
+ export default MeetingStateMachine;
@@ -0,0 +1,2 @@
1
+ declare const MeetingUtil: any;
2
+ export default MeetingUtil;
@@ -11,11 +11,11 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  value: true
12
12
  });
13
13
  exports.default = void 0;
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
16
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
15
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
18
- var _lodash = require("lodash");
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
+ var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
19
19
  var _webexErrors = require("../common/errors/webex-errors");
20
20
  var _metrics = _interopRequireDefault(require("../metrics"));
21
21
  var _config = require("../metrics/config");
@@ -54,7 +54,7 @@ MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting)
54
54
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
55
55
  }
56
56
  var localMedias = _media.default.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);
57
- if ((0, _lodash.isEmpty)(localMedias)) {
57
+ if ((0, _isEmpty2.default)(localMedias)) {
58
58
  return _promise.default.reject(new _parameter.default('You need a media id on the meeting to change remote audio.'));
59
59
  }
60
60
  _metrics.default.postEvent({