@@ -55,14 +55,11 @@ const USER_MEDIA_SLOW_PROMISE_TIMEOUT = 1000;
55
55
* @returns {* } the attributes to attach to analytics events.
56
56
*/
57
57
function getAnalyticsAttributesFromOptions ( options ) {
58
- const attributes = {
59
- 'audio_requested' :
60
- options . devices . includes ( 'audio' ) ,
61
- 'video_requested' :
62
- options . devices . includes ( 'video' ) ,
63
- 'screen_sharing_requested' :
64
- options . devices . includes ( 'desktop' )
65
- } ;
58
+ const attributes : any = { } ;
59
+
60
+ attributes [ 'audio_requested' ] = options . devices . includes ( 'audio' ) ;
61
+ attributes [ 'video_requested' ] = options . devices . includes ( 'video' ) ;
62
+ attributes [ 'screen_sharing_requested' ] = options . devices . includes ( 'desktop' ) ;
66
63
67
64
if ( attributes . video_requested ) {
68
65
attributes . resolution = options . resolution ;
@@ -71,6 +68,25 @@ function getAnalyticsAttributesFromOptions(options) {
71
68
return attributes ;
72
69
}
73
70
71
+ interface ICreateLocalTrackOptions {
72
+ cameraDeviceId ?: string ;
73
+ devices ?: any [ ] ;
74
+ firePermissionPromptIsShownEvent ?: boolean ;
75
+ fireSlowPromiseEvent ?: boolean ;
76
+ micDeviceId ?: string ;
77
+ resolution ?: string ;
78
+ }
79
+
80
+ interface IJitsiMeetJSOptions {
81
+ enableAnalyticsLogging ?: boolean ;
82
+ enableUnifiedOnChrome ?: boolean ;
83
+ enableWindowOnErrorHandler ?: boolean ;
84
+ externalStorage ?: Storage ;
85
+ flags ?: {
86
+ enableUnifiedOnChrome ?: boolean ;
87
+ }
88
+ }
89
+
74
90
/**
75
91
* The public API of the Jitsi Meet library (a.k.a. {@code JitsiMeetJS}).
76
92
*/
@@ -114,9 +130,9 @@ export default {
114
130
JitsiTrackError
115
131
} ,
116
132
logLevels : Logger . levels ,
117
- mediaDevices : JitsiMediaDevices ,
118
- analytics : Statistics . analytics ,
119
- init ( options = { } ) {
133
+ mediaDevices : JitsiMediaDevices as unknown ,
134
+ analytics : Statistics . analytics as unknown ,
135
+ init ( options : IJitsiMeetJSOptions = { } ) {
120
136
Settings . init ( options . externalStorage ) ;
121
137
Statistics . init ( options ) ;
122
138
const flags = options . flags || { } ;
@@ -265,16 +281,15 @@ export default {
265
281
* that returns an array of created JitsiTracks if resolved, or a
266
282
* JitsiConferenceError if rejected.
267
283
*/
268
- createLocalTracks ( options = { } , oldfirePermissionPromptIsShownEvent ) {
284
+ createLocalTracks ( options : ICreateLocalTrackOptions = { } , oldfirePermissionPromptIsShownEvent ) {
269
285
let promiseFulfilled = false ;
270
286
271
287
const { firePermissionPromptIsShownEvent, fireSlowPromiseEvent, ...restOptions } = options ;
272
288
const firePermissionPrompt = firePermissionPromptIsShownEvent || oldfirePermissionPromptIsShownEvent ;
273
289
274
290
if ( firePermissionPrompt && ! RTC . arePermissionsGrantedForAvailableDevices ( ) ) {
275
- JitsiMediaDevices . emitEvent (
276
- JitsiMediaDevicesEvents . PERMISSION_PROMPT_IS_SHOWN ,
277
- browser . getName ( ) ) ;
291
+ // @ts -ignore
292
+ JitsiMediaDevices . emitEvent ( JitsiMediaDevicesEvents . PERMISSION_PROMPT_IS_SHOWN , browser . getName ( ) ) ;
278
293
} else if ( fireSlowPromiseEvent ) {
279
294
window . setTimeout ( ( ) => {
280
295
if ( ! promiseFulfilled ) {
@@ -289,6 +304,7 @@ export default {
289
304
window . connectionTimes [ 'obtainPermissions.start' ]
290
305
= window . performance . now ( ) ;
291
306
307
+ // @ts -ignore
292
308
return RTC . obtainAudioAndVideoPermissions ( restOptions )
293
309
. then ( tracks => {
294
310
promiseFulfilled = true ;
0 commit comments