Saúl Ibarra Corretgé 5 years ago
parent
commit
dd23ed09ad
37 changed files with 3197 additions and 1374 deletions
  1. 53
    23
      .flowconfig
  2. 2
    2
      android/app/build.gradle
  3. 0
    7
      android/app/proguard-rules.pro
  4. 1
    2
      android/app/src/main/java/org/jitsi/meet/MainActivity.java
  5. 10
    13
      android/build.gradle
  6. 3
    0
      android/gradle.properties
  7. 5
    3
      android/sdk/build.gradle
  8. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/AudioModeModule.java
  9. 2
    2
      android/sdk/src/main/java/org/jitsi/meet/sdk/BaseReactView.java
  10. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/ConnectionService.java
  11. 2
    2
      android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java
  12. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityInterface.java
  13. 4
    3
      android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetFragment.java
  14. 2
    2
      android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java
  15. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java
  16. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/RNConnectionService.java
  17. 10
    2
      android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java
  18. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/incoming_call/IncomingCallInfo.java
  19. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/incoming_call/IncomingCallView.java
  20. 2
    2
      flow-typed/npm/flow-bin_v0.x.x.js
  21. 2
    2
      flow-typed/npm/jquery_v3.x.x.js
  22. 212
    201
      flow-typed/npm/lodash_v4.x.x.js
  23. 2
    2
      flow-typed/npm/react-redux_v5.x.x.js
  24. 66
    25
      flow-typed/npm/redux_v4.x.x.js
  25. 2
    2
      flow-typed/npm/uuid_v3.x.x.js
  26. 22
    13
      ios/Podfile
  27. 153
    74
      ios/Podfile.lock
  28. 2611
    963
      package-lock.json
  29. 11
    9
      package.json
  30. 1
    1
      react/features/base/dialog/components/web/AbstractDialogTab.js
  31. 2
    2
      react/features/deep-linking/components/DeepLinkingDesktopPage.web.js
  32. 2
    2
      react/features/deep-linking/components/DeepLinkingMobilePage.web.js
  33. 1
    1
      react/features/invite/components/add-people-dialog/web/AddPeopleDialog.js
  34. 1
    1
      react/features/recent-list/components/AbstractRecentList.js
  35. 3
    3
      react/features/recording/components/LiveStream/web/StartLiveStreamDialog.js
  36. 2
    2
      react/features/recording/components/Recording/StartRecordingDialogContent.js
  37. 1
    1
      react/features/welcome/components/Tab.js

+ 53
- 23
.flowconfig View File

@@ -2,22 +2,27 @@
2 2
 ; We fork some components by platform
3 3
 .*/*[.]android.js
4 4
 
5
-; Ignore "BUCK" generated dirs
6
-<PROJECT_ROOT>/\.buckd/
7
-
8 5
 ; Ignore unexpected extra "@providesModule"
9 6
 .*/node_modules/.*/node_modules/fbjs/.*
7
+node_modules/react-native/Libraries/react-native/React.js
10 8
 
11 9
 ; Ignore duplicate module providers
12 10
 ; For RN Apps installed via npm, "Libraries" folder is inside
13 11
 ; "node_modules/react-native" but in the source repo it is in the root
14
-.*/Libraries/react-native/React.js
12
+node_modules/react-native/Libraries/react-native/React.js
15 13
 
16 14
 ; Ignore polyfills
17
-.*/Libraries/polyfills/.*
15
+node_modules/react-native/Libraries/polyfills/.*
16
+
17
+; These should not be required directly
18
+; require from fbjs/lib instead: require('fbjs/lib/warning')
19
+node_modules/warning/.*
18 20
 
19
-; Ignore metro
20
-.*/node_modules/metro/.*
21
+; Flow doesn't support platforms
22
+.*/Libraries/Utilities/HMRLoadingView.js
23
+
24
+[untyped]
25
+.*/node_modules/@react-native-community/cli/.*/.*
21 26
 
22 27
 ; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have
23 28
 ; seen to cause errors and we have chosen not to fix.
@@ -40,6 +45,18 @@ emoji=true
40 45
 esproposal.optional_chaining=enable
41 46
 esproposal.nullish_coalescing=enable
42 47
 
48
+; We (i.e. the jitsi-meet project) are using the haste module system on Web as
49
+; well, not only on React Native. Unfortunately, Flow does not support .web.js
50
+; by default. Override Flow's defaults to include .web.js as well. Technically,
51
+; we have .native.js as well so the choice of .web.js may lead to errors.
52
+; Practically though, it is a potential future problem that we do not have at
53
+; the time of this writing.
54
+module.file_ext=.web.js
55
+; Flow's defaults:
56
+module.file_ext=.js
57
+module.file_ext=.json
58
+module.file_ext=.ios.js
59
+
43 60
 module.system=haste
44 61
 module.system.haste.use_name_reducers=true
45 62
 # get basename
@@ -52,8 +69,11 @@ module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
52 69
 module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
53 70
 module.system.haste.paths.blacklist=.*/__tests__/.*
54 71
 module.system.haste.paths.blacklist=.*/__mocks__/.*
55
-module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
56 72
 module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
73
+module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
74
+module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
75
+module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
76
+module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
57 77
 
58 78
 munge_underscores=true
59 79
 
@@ -64,22 +84,32 @@ suppress_type=$FlowFixMe
64 84
 suppress_type=$FlowFixMeProps
65 85
 suppress_type=$FlowFixMeState
66 86
 
67
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
68
-suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
69
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
87
+suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
88
+suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
89
+
70 90
 suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
71 91
 
72
-; We (i.e. the jitsi-meet project) are using the haste module system on Web as
73
-; well, not only on React Native. Unfortunately, Flow does not support .web.js
74
-; by default. Override Flow's defaults to include .web.js as well. Technically,
75
-; we have .native.js as well so the choice of .web.js may lead to errors.
76
-; Practically though, it is a potential future problem that we do not have at
77
-; the time of this writing.
78
-module.file_ext=.web.js
79
-; Flow's defaults:
80
-module.file_ext=.js
81
-module.file_ext=.jsx
82
-module.file_ext=.json
92
+[lints]
93
+sketchy-null-number=warn
94
+sketchy-null-mixed=warn
95
+sketchy-number=warn
96
+untyped-type-import=warn
97
+nonstrict-import=warn
98
+deprecated-type=warn
99
+unsafe-getters-setters=warn
100
+inexact-spread=warn
101
+unnecessary-invariant=warn
102
+signature-verification-failure=warn
103
+deprecated-utility=error
104
+
105
+[strict]
106
+deprecated-type
107
+nonstrict-import
108
+sketchy-null
109
+unclear-type
110
+unsafe-getters-setters
111
+untyped-import
112
+untyped-type-import
83 113
 
84 114
 [version]
85
-^0.92.0
115
+^0.98.0

+ 2
- 2
android/app/build.gradle View File

@@ -70,8 +70,8 @@ repositories {
70 70
 
71 71
 dependencies {
72 72
     implementation fileTree(dir: 'libs', include: ['*.jar'])
73
-    implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}"
74
-    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
73
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
74
+    implementation 'androidx.appcompat:appcompat:1.0.2'
75 75
 
76 76
     if (!rootProject.ext.libreBuild) {
77 77
         implementation 'com.google.android.gms:play-services-auth:16.0.1'

+ 0
- 7
android/app/proguard-rules.pro View File

@@ -9,13 +9,6 @@
9 9
 
10 10
 # Add any project specific keep options here:
11 11
 
12
-# If your project uses WebView with JS, uncomment the following
13
-# and specify the fully qualified class name to the JavaScript interface
14
-# class:
15
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16
-#   public *;
17
-#}
18
-
19 12
 # React Native
20 13
 
21 14
 # Keep our interfaces so they can be used by other ProGuard rules.

+ 1
- 2
android/app/src/main/java/org/jitsi/meet/MainActivity.java View File

@@ -21,14 +21,13 @@ import android.content.Intent;
21 21
 import android.net.Uri;
22 22
 import android.os.Build;
23 23
 import android.provider.Settings;
24
-import android.support.annotation.Nullable;
25 24
 import android.util.Log;
26 25
 import android.view.KeyEvent;
26
+import androidx.annotation.Nullable;
27 27
 
28 28
 import org.jitsi.meet.sdk.JitsiMeet;
29 29
 import org.jitsi.meet.sdk.JitsiMeetActivity;
30 30
 import org.jitsi.meet.sdk.JitsiMeetConferenceOptions;
31
-import org.jitsi.meet.sdk.JitsiMeetUserInfo;
32 31
 
33 32
 import java.lang.reflect.Method;
34 33
 import java.net.MalformedURLException;

+ 10
- 13
android/build.gradle View File

@@ -25,9 +25,10 @@ allprojects {
25 25
     repositories {
26 26
         google()
27 27
         jcenter()
28
-        // React Native (JS, Obj-C sources, Android binaries) is installed from
29
-        // npm.
28
+        // React Native (JS, Obj-C sources, Android binaries) is installed from npm.
30 29
         maven { url "$rootDir/../node_modules/react-native/android" }
30
+        // Android JSC is installed from npm.
31
+        maven { url("$rootDir/../node_modules/jsc-android/dist") }
31 32
     }
32 33
 
33 34
     // Make sure we use the react-native version in node_modules and not the one
@@ -74,6 +75,13 @@ allprojects {
74 75
     def versionQualifierNumber = (int)(((new Date().getTime()/1000) - 1546297200) / 10)
75 76
 
76 77
     afterEvaluate { project ->
78
+        if (project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library')) {
79
+            project.android {
80
+                compileSdkVersion rootProject.ext.compileSdkVersion
81
+                buildToolsVersion rootProject.ext.buildToolsVersion
82
+            }
83
+        }
84
+
77 85
         if (project.name.startsWith('react-native-')) {
78 86
             def npmManifest = project.file('../package.json')
79 87
             def json = new JsonSlurper().parseText(npmManifest.text)
@@ -83,17 +91,6 @@ allprojects {
83 91
 
84 92
             project.version = "${json.version}-jitsi-${versionQualifierNumber}"
85 93
 
86
-            project.android {
87
-                compileSdkVersion rootProject.ext.compileSdkVersion
88
-                if (rootProject.ext.has('buildToolsVersion')) {
89
-                    buildToolsVersion rootProject.ext.buildToolsVersion
90
-                }
91
-                defaultConfig {
92
-                    minSdkVersion rootProject.ext.minSdkVersion
93
-                    targetSdkVersion rootProject.ext.targetSdkVersion
94
-                }
95
-            }
96
-
97 94
             task androidSourcesJar(type: Jar) {
98 95
                 classifier = 'sources'
99 96
                 from android.sourceSets.main.java.source

+ 3
- 0
android/gradle.properties View File

@@ -17,5 +17,8 @@
17 17
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 18
 # org.gradle.parallel=true
19 19
 
20
+android.useAndroidX=true
21
+android.enableJetifier=true
22
+
20 23
 appVersion=19.3.0
21 24
 sdkVersion=2.2.2

+ 5
- 3
android/sdk/build.gradle View File

@@ -36,10 +36,12 @@ android {
36 36
 dependencies {
37 37
     implementation fileTree(dir: 'libs', include: ['*.jar'])
38 38
 
39
-    implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}"
40
-    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
39
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
40
+    implementation 'androidx.appcompat:appcompat:1.0.2'
41
+    implementation 'androidx.fragment:fragment:1.0.0'
41 42
 
42 43
     api 'com.facebook.react:react-native:+'
44
+    implementation 'org.webkit:android-jsc:+'
43 45
 
44 46
     implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8'
45 47
 
@@ -47,7 +49,7 @@ dependencies {
47 49
         implementation 'com.amplitude:android-sdk:2.14.1'
48 50
         implementation(project(":react-native-google-signin")) {
49 51
             exclude group: 'com.google.android.gms'
50
-            exclude group: 'com.android.support'
52
+            exclude group: 'androidx'
51 53
         }
52 54
     }
53 55
 

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/AudioModeModule.java View File

@@ -25,8 +25,8 @@ import android.content.pm.PackageManager;
25 25
 import android.media.AudioDeviceInfo;
26 26
 import android.media.AudioManager;
27 27
 import android.os.Build;
28
-import android.support.annotation.RequiresApi;
29 28
 import android.util.Log;
29
+import androidx.annotation.RequiresApi;
30 30
 
31 31
 import com.facebook.react.bridge.Arguments;
32 32
 import com.facebook.react.bridge.Promise;

+ 2
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/BaseReactView.java View File

@@ -20,9 +20,9 @@ package org.jitsi.meet.sdk;
20 20
 import android.app.Activity;
21 21
 import android.content.Context;
22 22
 import android.os.Bundle;
23
-import android.support.annotation.NonNull;
24
-import android.support.annotation.Nullable;
25 23
 import android.widget.FrameLayout;
24
+import androidx.annotation.NonNull;
25
+import androidx.annotation.Nullable;
26 26
 
27 27
 import com.facebook.react.ReactRootView;
28 28
 import com.facebook.react.bridge.ReadableMap;

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/ConnectionService.java View File

@@ -5,7 +5,6 @@ import android.content.Context;
5 5
 import android.net.Uri;
6 6
 import android.os.Build;
7 7
 import android.os.Bundle;
8
-import android.support.annotation.RequiresApi;
9 8
 import android.telecom.CallAudioState;
10 9
 import android.telecom.Connection;
11 10
 import android.telecom.ConnectionRequest;
@@ -15,6 +14,7 @@ import android.telecom.PhoneAccountHandle;
15 14
 import android.telecom.TelecomManager;
16 15
 import android.telecom.VideoProfile;
17 16
 import android.util.Log;
17
+import androidx.annotation.RequiresApi;
18 18
 
19 19
 import com.facebook.react.bridge.Promise;
20 20
 import com.facebook.react.bridge.ReadableMap;

+ 2
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java View File

@@ -20,9 +20,9 @@ import android.content.Context;
20 20
 import android.content.Intent;
21 21
 import android.net.Uri;
22 22
 import android.os.Bundle;
23
-import android.support.annotation.Nullable;
24
-import android.support.v4.app.FragmentActivity;
25 23
 import android.util.Log;
24
+import androidx.annotation.Nullable;
25
+import androidx.fragment.app.FragmentActivity;
26 26
 
27 27
 import com.facebook.react.modules.core.PermissionListener;
28 28
 

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityInterface.java View File

@@ -1,6 +1,6 @@
1 1
 package org.jitsi.meet.sdk;
2 2
 
3
-import android.support.v4.app.ActivityCompat;
3
+import androidx.core.app.ActivityCompat;
4 4
 
5 5
 import com.facebook.react.modules.core.PermissionAwareActivity;
6 6
 

+ 4
- 3
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetFragment.java View File

@@ -19,9 +19,10 @@ package org.jitsi.meet.sdk;
19 19
 
20 20
 import android.content.Intent;
21 21
 import android.os.Bundle;
22
-import android.support.annotation.NonNull;
23
-import android.support.annotation.Nullable;
24
-import android.support.v4.app.Fragment;
22
+import androidx.annotation.NonNull;
23
+import androidx.annotation.Nullable;
24
+import androidx.fragment.app.Fragment;
25
+
25 26
 import android.view.LayoutInflater;
26 27
 import android.view.View;
27 28
 import android.view.ViewGroup;

+ 2
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java View File

@@ -19,9 +19,9 @@ package org.jitsi.meet.sdk;
19 19
 
20 20
 import android.content.Context;
21 21
 import android.os.Bundle;
22
-import android.support.annotation.NonNull;
23
-import android.support.annotation.Nullable;
24 22
 import android.util.Log;
23
+import androidx.annotation.NonNull;
24
+import androidx.annotation.Nullable;
25 25
 
26 26
 import com.facebook.react.bridge.ReadableMap;
27 27
 

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java View File

@@ -23,7 +23,7 @@ import android.app.PendingIntent;
23 23
 import android.content.Context;
24 24
 import android.content.Intent;
25 25
 import android.os.Build;
26
-import android.support.v4.app.NotificationCompat;
26
+import androidx.core.app.NotificationCompat;
27 27
 import android.util.Log;
28 28
 
29 29
 import java.util.Random;

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/RNConnectionService.java View File

@@ -5,13 +5,13 @@ import android.content.Context;
5 5
 import android.net.Uri;
6 6
 import android.os.Build;
7 7
 import android.os.Bundle;
8
-import android.support.annotation.RequiresApi;
9 8
 import android.telecom.DisconnectCause;
10 9
 import android.telecom.PhoneAccount;
11 10
 import android.telecom.PhoneAccountHandle;
12 11
 import android.telecom.TelecomManager;
13 12
 import android.telecom.VideoProfile;
14 13
 import android.util.Log;
14
+import androidx.annotation.RequiresApi;
15 15
 
16 16
 import com.facebook.react.bridge.Promise;
17 17
 import com.facebook.react.bridge.ReactApplicationContext;

+ 10
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java View File

@@ -18,7 +18,7 @@
18 18
 package org.jitsi.meet.sdk;
19 19
 
20 20
 import android.app.Activity;
21
-import android.support.annotation.Nullable;
21
+import androidx.annotation.Nullable;
22 22
 
23 23
 import com.facebook.react.ReactInstanceManager;
24 24
 import com.facebook.react.ReactPackage;
@@ -27,8 +27,10 @@ import com.facebook.react.bridge.ReactContext;
27 27
 import com.facebook.react.bridge.ReactApplicationContext;
28 28
 import com.facebook.react.common.LifecycleState;
29 29
 import com.facebook.react.devsupport.DevInternalSettings;
30
+import com.facebook.react.jscexecutor.JSCExecutorFactory;
30 31
 import com.facebook.react.modules.core.DeviceEventManagerModule;
31 32
 import com.facebook.react.uimanager.ViewManager;
33
+import com.facebook.soloader.SoLoader;
32 34
 import com.oney.WebRTCModule.RTCVideoViewManager;
33 35
 import com.oney.WebRTCModule.WebRTCModule;
34 36
 
@@ -38,7 +40,6 @@ import org.webrtc.VideoDecoderFactory;
38 40
 import org.webrtc.VideoEncoderFactory;
39 41
 import org.webrtc.audio.AudioDeviceModule;
40 42
 import org.webrtc.audio.JavaAudioDeviceModule;
41
-import org.webrtc.voiceengine.WebRtcAudioManager;
42 43
 
43 44
 import java.lang.reflect.Constructor;
44 45
 import java.util.ArrayList;
@@ -181,6 +182,8 @@ class ReactInstanceManagerHolder {
181 182
             return;
182 183
         }
183 184
 
185
+        SoLoader.init(activity, /* native exopackage */ false);
186
+
184 187
         List<ReactPackage> packages
185 188
             = new ArrayList<>(Arrays.asList(
186 189
                 new com.BV.LinearGradient.LinearGradientPackage(),
@@ -212,12 +215,17 @@ class ReactInstanceManagerHolder {
212 215
             // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled.
213 216
         }
214 217
 
218
+        // Keep on using JSC, the jury is out on Hermes.
219
+        JSCExecutorFactory jsFactory
220
+            = new JSCExecutorFactory("", "");
221
+
215 222
         reactInstanceManager
216 223
             = ReactInstanceManager.builder()
217 224
                 .setApplication(activity.getApplication())
218 225
                 .setCurrentActivity(activity)
219 226
                 .setBundleAssetName("index.android.bundle")
220 227
                 .setJSMainModulePath("index.android")
228
+                .setJavaScriptExecutorFactory(jsFactory)
221 229
                 .addPackages(packages)
222 230
                 .setUseDeveloperSupport(BuildConfig.DEBUG)
223 231
                 .setInitialLifecycleState(LifecycleState.RESUMED)

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/incoming_call/IncomingCallInfo.java View File

@@ -16,7 +16,7 @@
16 16
 
17 17
 package org.jitsi.meet.sdk.incoming_call;
18 18
 
19
-import android.support.annotation.NonNull;
19
+import androidx.annotation.NonNull;
20 20
 
21 21
 public class IncomingCallInfo {
22 22
     /**

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/incoming_call/IncomingCallView.java View File

@@ -18,7 +18,7 @@ package org.jitsi.meet.sdk.incoming_call;
18 18
 
19 19
 import android.content.Context;
20 20
 import android.os.Bundle;
21
-import android.support.annotation.NonNull;
21
+import androidx.annotation.NonNull;
22 22
 
23 23
 import com.facebook.react.bridge.ReadableMap;
24 24
 

+ 2
- 2
flow-typed/npm/flow-bin_v0.x.x.js View File

@@ -1,5 +1,5 @@
1
-// flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583
2
-// flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x
1
+// flow-typed signature: 4e6a5da3290fe9ea49e6bcdced64f358
2
+// flow-typed version: c6154227d1/flow-bin_v0.x.x/flow_>=v0.25.x <=v0.103.x
3 3
 
4 4
 declare module "flow-bin" {
5 5
   declare module.exports: string;

+ 2
- 2
flow-typed/npm/jquery_v3.x.x.js View File

@@ -1,5 +1,5 @@
1
-// flow-typed signature: f26fda66e3a551aef37d3b0f53058e6a
2
-// flow-typed version: 44ad941b7a/jquery_v3.x.x/flow_>=v0.28.x
1
+// flow-typed signature: 538d762382091f2239d2d55cab1b574d
2
+// flow-typed version: c6154227d1/jquery_v3.x.x/flow_>=v0.28.x <=v0.103.x
3 3
 
4 4
 /* eslint-disable max-len, no-unused-vars, flowtype/no-weak-types */
5 5
 

+ 212
- 201
flow-typed/npm/lodash_v4.x.x.js View File

@@ -1,5 +1,5 @@
1
-// flow-typed signature: a9b75804169260d49cda34b56dcfabe1
2
-// flow-typed version: e9dac1347c/lodash_v4.x.x/flow_>=v0.63.x
1
+// flow-typed signature: 96e97db746b98786dbff6de500b4b862
2
+// flow-typed version: 5fe02f287a/lodash_v4.x.x/flow_>=v0.63.x <=v0.103.x
3 3
 
4 4
 declare module "lodash" {
5 5
   declare type Path = $ReadOnlyArray<string | number> | string | number;
@@ -149,6 +149,11 @@ declare module "lodash" {
149 149
     separator?: RegExp | string
150 150
   };
151 151
 
152
+  declare type Cancelable = {
153
+    cancel: () => void,
154
+    flush: () => mixed
155
+  };
156
+
152 157
   declare type DebounceOptions = {
153 158
     leading?: boolean,
154 159
     maxWait?: number,
@@ -265,14 +270,14 @@ declare module "lodash" {
265 270
     ): -1;
266 271
     // alias of _.head
267 272
     first<T>(array: ?$ReadOnlyArray<T>): T;
268
-    flatten<T, X>(array?: ?Array<Array<T> | X>): Array<T | X>;
273
+    flatten<T, X>(array?: ?$ReadOnlyArray<$ReadOnlyArray<T> | X>): Array<T | X>;
269 274
     flattenDeep<T>(array?: ?(any[])): Array<T>;
270 275
     flattenDepth(array?: ?(any[]), depth?: ?number): any[];
271 276
     fromPairs<A, B>(pairs?: ?Array<[A, B]>): { [key: A]: B };
272 277
     head<T>(array: ?$ReadOnlyArray<T>): T;
273
-    indexOf<T>(array: Array<T>, value: T, fromIndex?: number): number;
278
+    indexOf<T>(array: $ReadOnlyArray<T>, value: T, fromIndex?: number): number;
274 279
     indexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
275
-    initial<T>(array: ?Array<T>): Array<T>;
280
+    initial<T>(array: ?$ReadOnlyArray<T>): Array<T>;
276 281
     intersection<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
277 282
     //Workaround until (...parameter: T, parameter2: U) works
278 283
     intersectionBy<T>(
@@ -320,10 +325,10 @@ declare module "lodash" {
320 325
       a4?: ?$ReadOnlyArray<T>,
321 326
       comparator?: ?Comparator<T>
322 327
     ): Array<T>;
323
-    join<T>(array: Array<T>, separator?: ?string): string;
328
+    join<T>(array: $ReadOnlyArray<T>, separator?: ?string): string;
324 329
     join<T>(array: void | null, separator?: ?string): "";
325 330
     last<T>(array: ?$ReadOnlyArray<T>): T;
326
-    lastIndexOf<T>(array: Array<T>, value?: ?T, fromIndex?: ?number): number;
331
+    lastIndexOf<T>(array: $ReadOnlyArray<T>, value?: ?T, fromIndex?: ?number): number;
327 332
     lastIndexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
328 333
     nth<T>(array: T[], n?: ?number): T;
329 334
     nth(array: void | null, n?: ?number): void;
@@ -357,10 +362,10 @@ declare module "lodash" {
357 362
       start?: ?number,
358 363
       end?: ?number
359 364
     ): Array<T>;
360
-    sortedIndex<T>(array: Array<T>, value: T): number;
365
+    sortedIndex<T>(array: $ReadOnlyArray<T>, value: T): number;
361 366
     sortedIndex<T>(array: void | null, value: ?T): 0;
362 367
     sortedIndexBy<T>(
363
-      array: Array<T>,
368
+      array: $ReadOnlyArray<T>,
364 369
       value?: ?T,
365 370
       iteratee?: ?ValueOnlyIteratee<T>
366 371
     ): number;
@@ -369,12 +374,12 @@ declare module "lodash" {
369 374
       value?: ?T,
370 375
       iteratee?: ?ValueOnlyIteratee<T>
371 376
     ): 0;
372
-    sortedIndexOf<T>(array: Array<T>, value: T): number;
377
+    sortedIndexOf<T>(array: $ReadOnlyArray<T>, value: T): number;
373 378
     sortedIndexOf<T>(array: void | null, value?: ?T): -1;
374
-    sortedLastIndex<T>(array: Array<T>, value: T): number;
379
+    sortedLastIndex<T>(array: $ReadOnlyArray<T>, value: T): number;
375 380
     sortedLastIndex<T>(array: void | null, value?: ?T): 0;
376 381
     sortedLastIndexBy<T>(
377
-      array: Array<T>,
382
+      array: $ReadOnlyArray<T>,
378 383
       value: T,
379 384
       iteratee?: ValueOnlyIteratee<T>
380 385
     ): number;
@@ -383,16 +388,16 @@ declare module "lodash" {
383 388
       value?: ?T,
384 389
       iteratee?: ?ValueOnlyIteratee<T>
385 390
     ): 0;
386
-    sortedLastIndexOf<T>(array: Array<T>, value: T): number;
391
+    sortedLastIndexOf<T>(array: $ReadOnlyArray<T>, value: T): number;
387 392
     sortedLastIndexOf<T>(array: void | null, value?: ?T): -1;
388
-    sortedUniq<T>(array?: ?Array<T>): Array<T>;
393
+    sortedUniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
389 394
     sortedUniqBy<T>(
390
-      array?: ?Array<T>,
395
+      array?: ?$ReadOnlyArray<T>,
391 396
       iteratee?: ?ValueOnlyIteratee<T>
392 397
     ): Array<T>;
393
-    tail<T>(array?: ?Array<T>): Array<T>;
394
-    take<T>(array?: ?Array<T>, n?: ?number): Array<T>;
395
-    takeRight<T>(array?: ?Array<T>, n?: ?number): Array<T>;
398
+    tail<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
399
+    take<T>(array?: ?$ReadOnlyArray<T>, n?: ?number): Array<T>;
400
+    takeRight<T>(array?: ?$ReadOnlyArray<T>, n?: ?number): Array<T>;
396 401
     takeRightWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
397 402
     takeWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
398 403
     union<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
@@ -442,59 +447,59 @@ declare module "lodash" {
442 447
     uniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
443 448
     uniqBy<T>(array?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
444 449
     uniqWith<T>(array?: ?$ReadOnlyArray<T>, comparator?: ?Comparator<T>): Array<T>;
445
-    unzip<T>(array?: ?Array<T>): Array<T>;
450
+    unzip<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
446 451
     unzipWith<T>(array: ?Array<T>, iteratee?: ?Iteratee<T>): Array<T>;
447 452
     without<T>(array?: ?$ReadOnlyArray<T>, ...values?: Array<?T>): Array<T>;
448 453
     xor<T>(...array: Array<Array<T>>): Array<T>;
449 454
     //Workaround until (...parameter: T, parameter2: U) works
450
-    xorBy<T>(a1?: ?Array<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
455
+    xorBy<T>(a1?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
451 456
     xorBy<T>(
452
-      a1: Array<T>,
453
-      a2: Array<T>,
457
+      a1: $ReadOnlyArray<T>,
458
+      a2: $ReadOnlyArray<T>,
454 459
       iteratee?: ValueOnlyIteratee<T>
455 460
     ): Array<T>;
456 461
     xorBy<T>(
457
-      a1: Array<T>,
458
-      a2: Array<T>,
459
-      a3: Array<T>,
462
+      a1: $ReadOnlyArray<T>,
463
+      a2: $ReadOnlyArray<T>,
464
+      a3: $ReadOnlyArray<T>,
460 465
       iteratee?: ValueOnlyIteratee<T>
461 466
     ): Array<T>;
462 467
     xorBy<T>(
463
-      a1: Array<T>,
464
-      a2: Array<T>,
465
-      a3: Array<T>,
466
-      a4: Array<T>,
468
+      a1: $ReadOnlyArray<T>,
469
+      a2: $ReadOnlyArray<T>,
470
+      a3: $ReadOnlyArray<T>,
471
+      a4: $ReadOnlyArray<T>,
467 472
       iteratee?: ValueOnlyIteratee<T>
468 473
     ): Array<T>;
469 474
     //Workaround until (...parameter: T, parameter2: U) works
470
-    xorWith<T>(a1?: ?Array<T>, comparator?: ?Comparator<T>): Array<T>;
475
+    xorWith<T>(a1?: ?$ReadOnlyArray<T>, comparator?: ?Comparator<T>): Array<T>;
471 476
     xorWith<T>(
472
-      a1: Array<T>,
473
-      a2: Array<T>,
477
+      a1: $ReadOnlyArray<T>,
478
+      a2: $ReadOnlyArray<T>,
474 479
       comparator?: Comparator<T>
475 480
     ): Array<T>;
476 481
     xorWith<T>(
477
-      a1: Array<T>,
478
-      a2: Array<T>,
479
-      a3: Array<T>,
482
+      a1: $ReadOnlyArray<T>,
483
+      a2: $ReadOnlyArray<T>,
484
+      a3: $ReadOnlyArray<T>,
480 485
       comparator?: Comparator<T>
481 486
     ): Array<T>;
482 487
     xorWith<T>(
483
-      a1: Array<T>,
484
-      a2: Array<T>,
485
-      a3: Array<T>,
486
-      a4: Array<T>,
488
+      a1: $ReadOnlyArray<T>,
489
+      a2: $ReadOnlyArray<T>,
490
+      a3: $ReadOnlyArray<T>,
491
+      a4: $ReadOnlyArray<T>,
487 492
       comparator?: Comparator<T>
488 493
     ): Array<T>;
489
-    zip<A, B>(a1?: ?(A[]), a2?: ?(B[])): Array<[A, B]>;
490
-    zip<A, B, C>(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>;
491
-    zip<A, B, C, D>(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>;
494
+    zip<A, B>(a1?: ?($ReadOnlyArray<A>), a2?: ?($ReadOnlyArray<B>)): Array<[A, B]>;
495
+    zip<A, B, C>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>, a3: $ReadOnlyArray<C>): Array<[A, B, C]>;
496
+    zip<A, B, C, D>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>, a3: $ReadOnlyArray<C>, a4: $ReadOnlyArray<D>): Array<[A, B, C, D]>;
492 497
     zip<A, B, C, D, E>(
493
-      a1: A[],
494
-      a2: B[],
495
-      a3: C[],
496
-      a4: D[],
497
-      a5: E[]
498
+      a1: $ReadOnlyArray<A>,
499
+      a2: $ReadOnlyArray<B>,
500
+      a3: $ReadOnlyArray<C>,
501
+      a4: $ReadOnlyArray<D>,
502
+      a5: $ReadOnlyArray<E>
498 503
     ): Array<[A, B, C, D, E]>;
499 504
 
500 505
     zipObject<K, V>(props: Array<K>, values?: ?Array<V>): { [key: K]: V };
@@ -502,44 +507,44 @@ declare module "lodash" {
502 507
     zipObjectDeep(props: any[], values?: ?any): Object;
503 508
     zipObjectDeep(props: void | null, values?: ?any): {};
504 509
 
505
-    zipWith<A>(a1?: ?Array<A>): Array<[A]>;
506
-    zipWith<T, A>(a1: Array<A>, iteratee: (A) => T): Array<T>;
510
+    zipWith<A>(a1?: ?$ReadOnlyArray<A>): Array<[A]>;
511
+    zipWith<T, A>(a1: $ReadOnlyArray<A>, iteratee: (A) => T): Array<T>;
507 512
 
508
-    zipWith<A, B>(a1: Array<A>, a2: Array<B>): Array<[A, B]>;
513
+    zipWith<A, B>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>): Array<[A, B]>;
509 514
     zipWith<T, A, B>(
510
-      a1: Array<A>,
511
-      a2: Array<B>,
515
+      a1: $ReadOnlyArray<A>,
516
+      a2: $ReadOnlyArray<B>,
512 517
       iteratee: (A, B) => T
513
-    ): Array<T>;
518
+    ): $ReadOnlyArray<T>;
514 519
 
515 520
     zipWith<A, B, C>(
516
-      a1: Array<A>,
517
-      a2: Array<B>,
518
-      a3: Array<C>
521
+      a1: $ReadOnlyArray<A>,
522
+      a2: $ReadOnlyArray<B>,
523
+      a3: $ReadOnlyArray<C>
519 524
     ): Array<[A, B, C]>;
520 525
     zipWith<T, A, B, C>(
521
-      a1: Array<A>,
522
-      a2: Array<B>,
523
-      a3: Array<C>,
526
+      a1: $ReadOnlyArray<A>,
527
+      a2: $ReadOnlyArray<B>,
528
+      a3: $ReadOnlyArray<C>,
524 529
       iteratee: (A, B, C) => T
525 530
     ): Array<T>;
526 531
 
527 532
     zipWith<A, B, C, D>(
528
-      a1: Array<A>,
529
-      a2: Array<B>,
530
-      a3: Array<C>,
531
-      a4: Array<D>
533
+      a1: $ReadOnlyArray<A>,
534
+      a2: $ReadOnlyArray<B>,
535
+      a3: $ReadOnlyArray<C>,
536
+      a4: $ReadOnlyArray<D>
532 537
     ): Array<[A, B, C, D]>;
533 538
     zipWith<T, A, B, C, D>(
534
-      a1: Array<A>,
535
-      a2: Array<B>,
536
-      a3: Array<C>,
537
-      a4: Array<D>,
539
+      a1: $ReadOnlyArray<A>,
540
+      a2: $ReadOnlyArray<B>,
541
+      a3: $ReadOnlyArray<C>,
542
+      a4: $ReadOnlyArray<D>,
538 543
       iteratee: (A, B, C, D) => T
539 544
     ): Array<T>;
540 545
 
541 546
     // Collection
542
-    countBy<T>(array: Array<T>, iteratee?: ?ValueOnlyIteratee<T>): Object;
547
+    countBy<T>(array: $ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Object;
543 548
     countBy<T>(array: void | null, iteratee?: ?ValueOnlyIteratee<T>): {};
544 549
     countBy<T: Object>(object: T, iteratee?: ?ValueOnlyIteratee<T>): Object;
545 550
     // alias of _.forEach
@@ -675,7 +680,7 @@ declare module "lodash" {
675 680
       iteratees?: ?$ReadOnlyArray<Iteratee<T>> | ?string,
676 681
       orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string
677 682
     ): Array<T>;
678
-    orderBy<V, T: Object>(
683
+    orderBy<V, T: {}>(
679 684
       object: T,
680 685
       iteratees?: $ReadOnlyArray<OIteratee<*>> | string,
681 686
       orders?: $ReadOnlyArray<"asc" | "desc"> | string
@@ -743,11 +748,11 @@ declare module "lodash" {
743 748
       object?: ?T,
744 749
       predicate?: ?OPredicate<A, T>
745 750
     ): Array<V>;
746
-    sample<T>(array: ?Array<T>): T;
751
+    sample<T>(array: ?$ReadOnlyArray<T>): T;
747 752
     sample<V, T: Object>(object: T): V;
748
-    sampleSize<T>(array?: ?Array<T>, n?: ?number): Array<T>;
753
+    sampleSize<T>(array?: ?$ReadOnlyArray<T>, n?: ?number): Array<T>;
749 754
     sampleSize<V, T: Object>(object: T, n?: number): Array<V>;
750
-    shuffle<T>(array: ?Array<T>): Array<T>;
755
+    shuffle<T>(array: ?$ReadOnlyArray<T>): Array<T>;
751 756
     shuffle<V, T: Object>(object: T): Array<V>;
752 757
     size(collection: $ReadOnlyArray<any> | Object | string): number;
753 758
     some<T>(array: void | null, predicate?: ?Predicate<T>): false;
@@ -785,7 +790,11 @@ declare module "lodash" {
785 790
     curry: Curry;
786 791
     curry(func: Function, arity?: number): Function;
787 792
     curryRight(func: Function, arity?: number): Function;
788
-    debounce<F: (...any[]) => any>(func: F, wait?: number, options?: DebounceOptions): F;
793
+    debounce<F: (...any[]) => any>(
794
+      func: F,
795
+      wait?: number,
796
+      options?: DebounceOptions
797
+    ): F & Cancelable;
789 798
     defer(func: (...any[]) => any, ...args?: Array<any>): TimeoutID;
790 799
     delay(func: Function, wait: number, ...args?: Array<any>): TimeoutID;
791 800
     flip<R>(func: (...any[]) => R): (...any[]) => R;
@@ -805,7 +814,7 @@ declare module "lodash" {
805 814
       func: F,
806 815
       wait?: number,
807 816
       options?: ThrottleOptions
808
-    ): F;
817
+    ): F & Cancelable;
809 818
     unary<F: (...any[]) => any>(func: F): F;
810 819
     wrap(value?: any, wrapper?: ?Function): Function;
811 820
 
@@ -830,13 +839,13 @@ declare module "lodash" {
830 839
     gte(value: any, other: any): boolean;
831 840
     isArguments(value: void | null): false;
832 841
     isArguments(value: any): boolean;
833
-    isArray(value: Array<any>): true;
842
+    isArray(value: $ReadOnlyArray<any>): true;
834 843
     isArray(value: any): false;
835 844
     isArrayBuffer(value: ArrayBuffer): true;
836 845
     isArrayBuffer(value: any): false;
837
-    isArrayLike(value: Array<any> | string | { length: number }): true;
846
+    isArrayLike(value: $ReadOnlyArray<any> | string | { length: number }): true;
838 847
     isArrayLike(value: any): false;
839
-    isArrayLikeObject(value: { length: number } | Array<any>): true;
848
+    isArrayLikeObject(value: { length: number } | $ReadOnlyArray<any>): true;
840 849
     isArrayLikeObject(value: any): false;
841 850
     isBoolean(value: boolean): true;
842 851
     isBoolean(value: any): false;
@@ -939,16 +948,16 @@ declare module "lodash" {
939 948
     ceil(number: number, precision?: number): number;
940 949
     divide(dividend: number, divisor: number): number;
941 950
     floor(number: number, precision?: number): number;
942
-    max<T>(array: ?Array<T>): T;
951
+    max<T>(array: ?$ReadOnlyArray<T>): T;
943 952
     maxBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
944
-    mean(array: Array<*>): number;
953
+    mean(array: $ReadOnlyArray<*>): number;
945 954
     meanBy<T>(array: Array<T>, iteratee?: Iteratee<T>): number;
946
-    min<T>(array: ?Array<T>): T;
955
+    min<T>(array: ?$ReadOnlyArray<T>): T;
947 956
     minBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
948 957
     multiply(multiplier: number, multiplicand: number): number;
949 958
     round(number: number, precision?: number): number;
950 959
     subtract(minuend: number, subtrahend: number): number;
951
-    sum(array: Array<*>): number;
960
+    sum(array: $ReadOnlyArray<*>): number;
952 961
     sumBy<T>(array: $ReadOnlyArray<T>, iteratee?: Iteratee<T>): number;
953 962
 
954 963
     // number
@@ -1066,8 +1075,8 @@ declare module "lodash" {
1066 1075
         source: A | B | C | D
1067 1076
       ) => any | void
1068 1077
     ): Object;
1069
-    at(object?: ?Object, ...paths: Array<string>): Array<any>;
1070
-    at(object?: ?Object, paths: Array<string>): Array<any>;
1078
+    at(object?: ?Object, ...paths: $ReadOnlyArray<string>): Array<any>;
1079
+    at(object?: ?Object, paths: $ReadOnlyArray<string>): Array<any>;
1071 1080
     create(prototype: void | null, properties: void | null): {};
1072 1081
     create<T>(prototype: T, properties: Object): T;
1073 1082
     create(prototype: any, properties: void | null): {};
@@ -1237,15 +1246,15 @@ declare module "lodash" {
1237 1246
         source: A | B | C | D
1238 1247
       ) => any | void
1239 1248
     ): Object;
1240
-    omit(object?: ?Object, ...props: Array<string>): Object;
1241
-    omit(object?: ?Object, props: Array<string>): Object;
1249
+    omit(object?: ?Object, ...props: $ReadOnlyArray<string>): Object;
1250
+    omit(object?: ?Object, props: $ReadOnlyArray<string>): Object;
1242 1251
     omitBy<A, T: { [id: any]: A } | { [id: number]: A }>(
1243 1252
       object: T,
1244 1253
       predicate?: ?OPredicate<A, T>
1245 1254
     ): Object;
1246 1255
     omitBy<A, T>(object: void | null, predicate?: ?OPredicate<A, T>): {};
1247
-    pick(object?: ?Object, ...props: Array<string>): Object;
1248
-    pick(object?: ?Object, props: Array<string>): Object;
1256
+    pick(object?: ?Object, ...props: $ReadOnlyArray<string>): Object;
1257
+    pick(object?: ?Object, props: $ReadOnlyArray<string>): Object;
1249 1258
     pickBy<A, T: { [id: any]: A } | { [id: number]: A }>(
1250 1259
       object: T,
1251 1260
       predicate?: ?OPredicate<A, T>
@@ -1758,65 +1767,65 @@ declare module "lodash/fp" {
1758 1767
     ): number;
1759 1768
     // alias of _.head
1760 1769
     first<T>(array: $ReadOnlyArray<T>): T;
1761
-    flatten<T, X>(array: Array<Array<T> | X>): Array<T | X>;
1770
+    flatten<T, X>(array: $ReadOnlyArray<$ReadOnlyArray<T> | X>): Array<T | X>;
1762 1771
     unnest<T, X>(array: Array<Array<T> | X>): Array<T | X>;
1763 1772
     flattenDeep<T>(array: any[]): Array<T>;
1764 1773
     flattenDepth(depth: number): (array: any[]) => any[];
1765 1774
     flattenDepth(depth: number, array: any[]): any[];
1766 1775
     fromPairs<A, B>(pairs: Array<[A, B]>): { [key: A]: B };
1767 1776
     head<T>(array: $ReadOnlyArray<T>): T;
1768
-    indexOf<T>(value: T): (array: Array<T>) => number;
1769
-    indexOf<T>(value: T, array: Array<T>): number;
1777
+    indexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
1778
+    indexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
1770 1779
     indexOfFrom<T>(
1771 1780
       value: T
1772
-    ): ((fromIndex: number) => (array: Array<T>) => number) &
1773
-      ((fromIndex: number, array: Array<T>) => number);
1774
-    indexOfFrom<T>(value: T, fromIndex: number): (array: Array<T>) => number;
1775
-    indexOfFrom<T>(value: T, fromIndex: number, array: Array<T>): number;
1776
-    initial<T>(array: Array<T>): Array<T>;
1781
+    ): ((fromIndex: number) => (array: $ReadOnlyArray<T>) => number) &
1782
+      ((fromIndex: number, array: $ReadOnlyArray<T>) => number);
1783
+    indexOfFrom<T>(value: T, fromIndex: number): (array: $ReadOnlyArray<T>) => number;
1784
+    indexOfFrom<T>(value: T, fromIndex: number, array: $ReadOnlyArray<T>): number;
1785
+    initial<T>(array: $ReadOnlyArray<T>): Array<T>;
1777 1786
     init<T>(array: Array<T>): Array<T>;
1778
-    intersection<T>(a1: Array<T>): (a2: Array<T>) => Array<T>;
1779
-    intersection<T>(a1: Array<T>, a2: Array<T>): Array<T>;
1787
+    intersection<T>(a1: $ReadOnlyArray<T>): (a2: $ReadOnlyArray<T>) => Array<T>;
1788
+    intersection<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
1780 1789
     intersectionBy<T>(
1781 1790
       iteratee: ValueOnlyIteratee<T>
1782
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1783
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1791
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1792
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1784 1793
     intersectionBy<T>(
1785 1794
       iteratee: ValueOnlyIteratee<T>,
1786
-      a1: Array<T>
1795
+      a1: $ReadOnlyArray<T>
1787 1796
     ): (a2: Array<T>) => Array<T>;
1788 1797
     intersectionBy<T>(
1789 1798
       iteratee: ValueOnlyIteratee<T>,
1790
-      a1: Array<T>,
1791
-      a2: Array<T>
1799
+      a1: $ReadOnlyArray<T>,
1800
+      a2: $ReadOnlyArray<T>
1792 1801
     ): Array<T>;
1793 1802
     intersectionWith<T>(
1794 1803
       comparator: Comparator<T>
1795
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1796
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1804
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1805
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1797 1806
     intersectionWith<T>(
1798 1807
       comparator: Comparator<T>,
1799
-      a1: Array<T>
1800
-    ): (a2: Array<T>) => Array<T>;
1808
+      a1: $ReadOnlyArray<T>
1809
+    ): (a2: $ReadOnlyArray<T>) => Array<T>;
1801 1810
     intersectionWith<T>(
1802 1811
       comparator: Comparator<T>,
1803
-      a1: Array<T>,
1804
-      a2: Array<T>
1812
+      a1: $ReadOnlyArray<T>,
1813
+      a2: $ReadOnlyArray<T>
1805 1814
     ): Array<T>;
1806
-    join<T>(separator: string): (array: Array<T>) => string;
1807
-    join<T>(separator: string, array: Array<T>): string;
1808
-    last<T>(array: Array<T>): T;
1809
-    lastIndexOf<T>(value: T): (array: Array<T>) => number;
1810
-    lastIndexOf<T>(value: T, array: Array<T>): number;
1815
+    join<T>(separator: string): (array: $ReadOnlyArray<T>) => string;
1816
+    join<T>(separator: string, array: $ReadOnlyArray<T>): string;
1817
+    last<T>(array: $ReadOnlyArray<T>): T;
1818
+    lastIndexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
1819
+    lastIndexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
1811 1820
     lastIndexOfFrom<T>(
1812 1821
       value: T
1813
-    ): ((fromIndex: number) => (array: Array<T>) => number) &
1814
-      ((fromIndex: number, array: Array<T>) => number);
1822
+    ): ((fromIndex: number) => (array: $ReadOnlyArray<T>) => number) &
1823
+      ((fromIndex: number, array: $ReadOnlyArray<T>) => number);
1815 1824
     lastIndexOfFrom<T>(
1816 1825
       value: T,
1817 1826
       fromIndex: number
1818
-    ): (array: Array<T>) => number;
1819
-    lastIndexOfFrom<T>(value: T, fromIndex: number, array: Array<T>): number;
1827
+    ): (array: $ReadOnlyArray<T>) => number;
1828
+    lastIndexOfFrom<T>(value: T, fromIndex: number, array: $ReadOnlyArray<T>): number;
1820 1829
     nth<T>(n: number): (array: T[]) => T;
1821 1830
     nth<T>(n: number, array: T[]): T;
1822 1831
     pull<T>(value: T): (array: Array<T>) => Array<T>;
@@ -1849,154 +1858,154 @@ declare module "lodash/fp" {
1849 1858
     reverse<T>(array: Array<T>): Array<T>;
1850 1859
     slice<T>(
1851 1860
       start: number
1852
-    ): ((end: number) => (array: Array<T>) => Array<T>) &
1853
-      ((end: number, array: Array<T>) => Array<T>);
1854
-    slice<T>(start: number, end: number): (array: Array<T>) => Array<T>;
1855
-    slice<T>(start: number, end: number, array: Array<T>): Array<T>;
1856
-    sortedIndex<T>(value: T): (array: Array<T>) => number;
1857
-    sortedIndex<T>(value: T, array: Array<T>): number;
1861
+    ): ((end: number) => (array: $ReadOnlyArray<T>) => Array<T>) &
1862
+      ((end: number, array: $ReadOnlyArray<T>) => Array<T>);
1863
+    slice<T>(start: number, end: number): (array: $ReadOnlyArray<T>) => Array<T>;
1864
+    slice<T>(start: number, end: number, array: $ReadOnlyArray<T>): Array<T>;
1865
+    sortedIndex<T>(value: T): (array: $ReadOnlyArray<T>) => number;
1866
+    sortedIndex<T>(value: T, array: $ReadOnlyArray<T>): number;
1858 1867
     sortedIndexBy<T>(
1859 1868
       iteratee: ValueOnlyIteratee<T>
1860
-    ): ((value: T) => (array: Array<T>) => number) &
1869
+    ): ((value: T) => (array: $ReadOnlyArray<T>) => number) &
1861 1870
       ((value: T, array: Array<T>) => number);
1862 1871
     sortedIndexBy<T>(
1863 1872
       iteratee: ValueOnlyIteratee<T>,
1864 1873
       value: T
1865
-    ): (array: Array<T>) => number;
1874
+    ): (array: $ReadOnlyArray<T>) => number;
1866 1875
     sortedIndexBy<T>(
1867 1876
       iteratee: ValueOnlyIteratee<T>,
1868 1877
       value: T,
1869
-      array: Array<T>
1878
+      array: $ReadOnlyArray<T>
1870 1879
     ): number;
1871
-    sortedIndexOf<T>(value: T): (array: Array<T>) => number;
1872
-    sortedIndexOf<T>(value: T, array: Array<T>): number;
1873
-    sortedLastIndex<T>(value: T): (array: Array<T>) => number;
1874
-    sortedLastIndex<T>(value: T, array: Array<T>): number;
1880
+    sortedIndexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
1881
+    sortedIndexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
1882
+    sortedLastIndex<T>(value: T): (array: $ReadOnlyArray<T>) => number;
1883
+    sortedLastIndex<T>(value: T, array: $ReadOnlyArray<T>): number;
1875 1884
     sortedLastIndexBy<T>(
1876 1885
       iteratee: ValueOnlyIteratee<T>
1877
-    ): ((value: T) => (array: Array<T>) => number) &
1886
+    ): ((value: T) => (array: $ReadOnlyArray<T>) => number) &
1878 1887
       ((value: T, array: Array<T>) => number);
1879 1888
     sortedLastIndexBy<T>(
1880 1889
       iteratee: ValueOnlyIteratee<T>,
1881 1890
       value: T
1882
-    ): (array: Array<T>) => number;
1891
+    ): (array: $ReadOnlyArray<T>) => number;
1883 1892
     sortedLastIndexBy<T>(
1884 1893
       iteratee: ValueOnlyIteratee<T>,
1885 1894
       value: T,
1886
-      array: Array<T>
1895
+      array: $ReadOnlyArray<T>
1887 1896
     ): number;
1888
-    sortedLastIndexOf<T>(value: T): (array: Array<T>) => number;
1889
-    sortedLastIndexOf<T>(value: T, array: Array<T>): number;
1890
-    sortedUniq<T>(array: Array<T>): Array<T>;
1891
-    sortedUniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: Array<T>): Array<T>;
1892
-    tail<T>(array: Array<T>): Array<T>;
1893
-    take<T>(n: number): (array: Array<T>) => Array<T>;
1894
-    take<T>(n: number, array: Array<T>): Array<T>;
1895
-    takeRight<T>(n: number): (array: Array<T>) => Array<T>;
1896
-    takeRight<T>(n: number, array: Array<T>): Array<T>;
1897
-    takeLast<T>(n: number): (array: Array<T>) => Array<T>;
1898
-    takeLast<T>(n: number, array: Array<T>): Array<T>;
1897
+    sortedLastIndexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
1898
+    sortedLastIndexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
1899
+    sortedUniq<T>(array: $ReadOnlyArray<T>): Array<T>;
1900
+    sortedUniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: $ReadOnlyArray<T>): Array<T>;
1901
+    tail<T>(array: $ReadOnlyArray<T>): Array<T>;
1902
+    take<T>(n: number): (array: $ReadOnlyArray<T>) => Array<T>;
1903
+    take<T>(n: number, array: $ReadOnlyArray<T>): Array<T>;
1904
+    takeRight<T>(n: number): (array: $ReadOnlyArray<T>) => Array<T>;
1905
+    takeRight<T>(n: number, array: $ReadOnlyArray<T>): Array<T>;
1906
+    takeLast<T>(n: number): (array: $ReadOnlyArray<T>) => Array<T>;
1907
+    takeLast<T>(n: number, array: $ReadOnlyArray<T>): Array<T>;
1899 1908
     takeRightWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1900 1909
     takeRightWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1901 1910
     takeLastWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1902 1911
     takeLastWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1903 1912
     takeWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1904 1913
     takeWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1905
-    union<T>(a1: Array<T>): (a2: Array<T>) => Array<T>;
1906
-    union<T>(a1: Array<T>, a2: Array<T>): Array<T>;
1914
+    union<T>(a1: $ReadOnlyArray<T>): (a2: Array<T>) => Array<T>;
1915
+    union<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
1907 1916
     unionBy<T>(
1908 1917
       iteratee: ValueOnlyIteratee<T>
1909
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1910
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1918
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1919
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1911 1920
     unionBy<T>(
1912 1921
       iteratee: ValueOnlyIteratee<T>,
1913
-      a1: Array<T>
1914
-    ): (a2: Array<T>) => Array<T>;
1922
+      a1: $ReadOnlyArray<T>
1923
+    ): (a2: $ReadOnlyArray<T>) => Array<T>;
1915 1924
     unionBy<T>(
1916 1925
       iteratee: ValueOnlyIteratee<T>,
1917
-      a1: Array<T>,
1918
-      a2: Array<T>
1926
+      a1: $ReadOnlyArray<T>,
1927
+      a2: $ReadOnlyArray<T>
1919 1928
     ): Array<T>;
1920 1929
     unionWith<T>(
1921 1930
       comparator: Comparator<T>
1922
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1923
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1931
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1932
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1924 1933
     unionWith<T>(
1925 1934
       comparator: Comparator<T>,
1926
-      a1: Array<T>
1927
-    ): (a2: Array<T>) => Array<T>;
1935
+      a1: $ReadOnlyArray<T>
1936
+    ): (a2: $ReadOnlyArray<T>) => Array<T>;
1928 1937
     unionWith<T>(
1929 1938
       comparator: Comparator<T>,
1930
-      a1: Array<T>,
1931
-      a2: Array<T>
1939
+      a1: $ReadOnlyArray<T>,
1940
+      a2: $ReadOnlyArray<T>
1932 1941
     ): Array<T>;
1933
-    uniq<T>(array: Array<T>): Array<T>;
1934
-    uniqBy<T>(iteratee: ValueOnlyIteratee<T>): (array: Array<T>) => Array<T>;
1935
-    uniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: Array<T>): Array<T>;
1936
-    uniqWith<T>(comparator: Comparator<T>): (array: Array<T>) => Array<T>;
1937
-    uniqWith<T>(comparator: Comparator<T>, array: Array<T>): Array<T>;
1938
-    unzip<T>(array: Array<T>): Array<T>;
1942
+    uniq<T>(array: $ReadOnlyArray<T>): Array<T>;
1943
+    uniqBy<T>(iteratee: ValueOnlyIteratee<T>): (array: $ReadOnlyArray<T>) => Array<T>;
1944
+    uniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: $ReadOnlyArray<T>): Array<T>;
1945
+    uniqWith<T>(comparator: Comparator<T>): (array: $ReadOnlyArray<T>) => Array<T>;
1946
+    uniqWith<T>(comparator: Comparator<T>, array: $ReadOnlyArray<T>): Array<T>;
1947
+    unzip<T>(array: $ReadOnlyArray<T>): Array<T>;
1939 1948
     unzipWith<T>(iteratee: Iteratee<T>): (array: Array<T>) => Array<T>;
1940 1949
     unzipWith<T>(iteratee: Iteratee<T>, array: Array<T>): Array<T>;
1941
-    without<T>(values: Array<T>): (array: Array<T>) => Array<T>;
1942
-    without<T>(values: Array<T>, array: Array<T>): Array<T>;
1943
-    xor<T>(a1: Array<T>): (a2: Array<T>) => Array<T>;
1944
-    xor<T>(a1: Array<T>, a2: Array<T>): Array<T>;
1945
-    symmetricDifference<T>(a1: Array<T>): (a2: Array<T>) => Array<T>;
1946
-    symmetricDifference<T>(a1: Array<T>, a2: Array<T>): Array<T>;
1950
+    without<T>(values: $ReadOnlyArray<T>): (array: $ReadOnlyArray<T>) => Array<T>;
1951
+    without<T>(values: $ReadOnlyArray<T>, array: $ReadOnlyArray<T>): Array<T>;
1952
+    xor<T>(a1: $ReadOnlyArray<T>): (a2: $ReadOnlyArray<T>) => Array<T>;
1953
+    xor<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
1954
+    symmetricDifference<T>(a1: $ReadOnlyArray<T>): (a2: $ReadOnlyArray<T>) => Array<T>;
1955
+    symmetricDifference<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
1947 1956
     xorBy<T>(
1948 1957
       iteratee: ValueOnlyIteratee<T>
1949
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1950
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1958
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1959
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1951 1960
     xorBy<T>(
1952 1961
       iteratee: ValueOnlyIteratee<T>,
1953
-      a1: Array<T>
1954
-    ): (a2: Array<T>) => Array<T>;
1962
+      a1: $ReadOnlyArray<T>
1963
+    ): (a2: $ReadOnlyArray<T>) => Array<T>;
1955 1964
     xorBy<T>(
1956 1965
       iteratee: ValueOnlyIteratee<T>,
1957
-      a1: Array<T>,
1958
-      a2: Array<T>
1966
+      a1: $ReadOnlyArray<T>,
1967
+      a2: $ReadOnlyArray<T>
1959 1968
     ): Array<T>;
1960 1969
     symmetricDifferenceBy<T>(
1961 1970
       iteratee: ValueOnlyIteratee<T>
1962
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1963
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1971
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1972
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1964 1973
     symmetricDifferenceBy<T>(
1965 1974
       iteratee: ValueOnlyIteratee<T>,
1966
-      a1: Array<T>
1975
+      a1: $ReadOnlyArray<T>
1967 1976
     ): (a2: Array<T>) => Array<T>;
1968 1977
     symmetricDifferenceBy<T>(
1969 1978
       iteratee: ValueOnlyIteratee<T>,
1970
-      a1: Array<T>,
1971
-      a2: Array<T>
1979
+      a1: $ReadOnlyArray<T>,
1980
+      a2: $ReadOnlyArray<T>
1972 1981
     ): Array<T>;
1973 1982
     xorWith<T>(
1974 1983
       comparator: Comparator<T>
1975
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1976
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1984
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1985
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1977 1986
     xorWith<T>(
1978 1987
       comparator: Comparator<T>,
1979
-      a1: Array<T>
1980
-    ): (a2: Array<T>) => Array<T>;
1981
-    xorWith<T>(comparator: Comparator<T>, a1: Array<T>, a2: Array<T>): Array<T>;
1988
+      a1: $ReadOnlyArray<T>
1989
+    ): (a2: $ReadOnlyArray<T>) => Array<T>;
1990
+    xorWith<T>(comparator: Comparator<T>, a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
1982 1991
     symmetricDifferenceWith<T>(
1983 1992
       comparator: Comparator<T>
1984
-    ): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) &
1985
-      ((a1: Array<T>, a2: Array<T>) => Array<T>);
1993
+    ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
1994
+      ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
1986 1995
     symmetricDifferenceWith<T>(
1987 1996
       comparator: Comparator<T>,
1988
-      a1: Array<T>
1989
-    ): (a2: Array<T>) => Array<T>;
1997
+      a1: $ReadOnlyArray<T>
1998
+    ): (a2: $ReadOnlyArray<T>) => Array<T>;
1990 1999
     symmetricDifferenceWith<T>(
1991 2000
       comparator: Comparator<T>,
1992
-      a1: Array<T>,
1993
-      a2: Array<T>
2001
+      a1: $ReadOnlyArray<T>,
2002
+      a2: $ReadOnlyArray<T>
1994 2003
     ): Array<T>;
1995
-    zip<A, B>(a1: A[]): (a2: B[]) => Array<[A, B]>;
1996
-    zip<A, B>(a1: A[], a2: B[]): Array<[A, B]>;
1997
-    zipAll(arrays: Array<Array<any>>): Array<any>;
1998
-    zipObject<K, V>(props?: Array<K>): (values?: Array<V>) => { [key: K]: V };
1999
-    zipObject<K, V>(props?: Array<K>, values?: Array<V>): { [key: K]: V };
2004
+    zip<A, B>(a1: $ReadOnlyArray<A>): (a2: $ReadOnlyArray<B>) => Array<[A, B]>;
2005
+    zip<A, B>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>): Array<[A, B]>;
2006
+    zipAll(arrays: $ReadOnlyArray<$ReadOnlyArray<any>>): Array<any>;
2007
+    zipObject<K, V>(props?: $ReadOnlyArray<K>): (values?: $ReadOnlyArray<V>) => { [key: K]: V };
2008
+    zipObject<K, V>(props?: $ReadOnlyArray<K>, values?: $ReadOnlyArray<V>): { [key: K]: V };
2000 2009
     zipObj(props: Array<any>): (values: Array<any>) => Object;
2001 2010
     zipObj(props: Array<any>, values: Array<any>): Object;
2002 2011
     zipObjectDeep(props: any[]): (values: any) => Object;
@@ -2017,10 +2026,10 @@ declare module "lodash/fp" {
2017 2026
     // Collection
2018 2027
     countBy<T>(
2019 2028
       iteratee: ValueOnlyIteratee<T>
2020
-    ): (collection: Array<T> | { [id: any]: T }) => { [string]: number };
2029
+    ): (collection: $ReadOnlyArray<T> | { [id: any]: T }) => { [string]: number };
2021 2030
     countBy<T>(
2022 2031
       iteratee: ValueOnlyIteratee<T>,
2023
-      collection: Array<T> | { [id: any]: T }
2032
+      collection: $ReadOnlyArray<T> | { [id: any]: T }
2024 2033
     ): { [string]: number };
2025 2034
     // alias of _.forEach
2026 2035
     each<T>(
@@ -2946,8 +2955,10 @@ declare module "lodash/fp" {
2946 2955
       predicate: OPredicate<A>
2947 2956
     ): (object: T) => Object;
2948 2957
     omitBy<A, T: { [id: any]: A }>(predicate: OPredicate<A>, object: T): Object;
2949
-    pick(props: Array<string>): (object: Object) => Object;
2950
-    pick(props: Array<string>, object: Object): Object;
2958
+    pick(...props: Array<string | {}>): Object;
2959
+    pick(props: $ReadOnlyArray<string>, object: Object): Object;
2960
+    pick(...props: Array<string>): (object: Object) => Object;
2961
+    pick(props: $ReadOnlyArray<string>): (object: Object) => Object;
2951 2962
     pickAll(props: Array<string>): (object: Object) => Object;
2952 2963
     pickAll(props: Array<string>, object: Object): Object;
2953 2964
     pickBy<A, T: { [id: any]: A }>(

+ 2
- 2
flow-typed/npm/react-redux_v5.x.x.js View File

@@ -1,5 +1,5 @@
1
-// flow-typed signature: f06f00c3ad0cfedb90c0c6de04b219f3
2
-// flow-typed version: 3a6d556e4b/react-redux_v5.x.x/flow_>=v0.89.x
1
+// flow-typed signature: be1a6a9041ded9d5eb2308664fa10a77
2
+// flow-typed version: c6154227d1/react-redux_v5.x.x/flow_>=v0.89.x <=v0.103.x
3 3
 
4 4
 /**
5 5
 The order of type arguments for connect() is as follows:

+ 66
- 25
flow-typed/npm/redux_v4.x.x.js View File

@@ -1,8 +1,7 @@
1
-// flow-typed signature: df80bdd535bfed9cf3223e077f3b4543
2
-// flow-typed version: c4c8963c9c/redux_v4.x.x/flow_>=v0.55.x
1
+// flow-typed signature: 99b2d8ebd0ab4be20976dc62a3bbf54c
2
+// flow-typed version: c6154227d1/redux_v4.x.x/flow_>=v0.89.x <=v0.103.x
3 3
 
4 4
 declare module 'redux' {
5
-
6 5
   /*
7 6
 
8 7
     S = State
@@ -11,49 +10,91 @@ declare module 'redux' {
11 10
 
12 11
   */
13 12
 
13
+  declare export type Action<T> = {
14
+    type: T
15
+  }
16
+
14 17
   declare export type DispatchAPI<A> = (action: A) => A;
15
-  declare export type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>;
18
+
19
+  declare export type Dispatch<A: { type: * }> = DispatchAPI<A>;
16 20
 
17 21
   declare export type MiddlewareAPI<S, A, D = Dispatch<A>> = {
18
-    dispatch: D;
19
-    getState(): S;
22
+    dispatch: D,
23
+    getState(): S,
20 24
   };
21 25
 
22 26
   declare export type Store<S, A, D = Dispatch<A>> = {
23 27
     // rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages)
24
-    dispatch: D;
25
-    getState(): S;
26
-    subscribe(listener: () => void): () => void;
27
-    replaceReducer(nextReducer: Reducer<S, A>): void
28
+    dispatch: D,
29
+    getState(): S,
30
+    subscribe(listener: () => void): () => void,
31
+    replaceReducer(nextReducer: Reducer<S, A>): void,
28 32
   };
29 33
 
30 34
   declare export type Reducer<S, A> = (state: S | void, action: A) => S;
31 35
 
32
-  declare export type CombinedReducer<S, A> = (state: $Shape<S> & {} | void, action: A) => S;
36
+  declare export type CombinedReducer<S, A> = (
37
+    state: ($Shape<S> & {}) | void,
38
+    action: A
39
+  ) => S;
33 40
 
34
-  declare export type Middleware<S, A, D = Dispatch<A>> =
35
-    (api: MiddlewareAPI<S, A, D>) =>
36
-      (next: D) => D;
41
+  declare export type Middleware<S, A, D = Dispatch<A>> = (
42
+    api: MiddlewareAPI<S, A, D>
43
+  ) => (next: D) => D;
37 44
 
38 45
   declare export type StoreCreator<S, A, D = Dispatch<A>> = {
39
-    (reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
40
-    (reducer: Reducer<S, A>, preloadedState: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
46
+    (reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>,
47
+    (
48
+      reducer: Reducer<S, A>,
49
+      preloadedState: S,
50
+      enhancer?: StoreEnhancer<S, A, D>
51
+    ): Store<S, A, D>,
41 52
   };
42 53
 
43
-  declare export type StoreEnhancer<S, A, D = Dispatch<A>> = (next: StoreCreator<S, A, D>) => StoreCreator<S, A, D>;
54
+  declare export type StoreEnhancer<S, A, D = Dispatch<A>> = (
55
+    next: StoreCreator<S, A, D>
56
+  ) => StoreCreator<S, A, D>;
44 57
 
45
-  declare export function createStore<S, A, D>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
46
-  declare export function createStore<S, A, D>(reducer: Reducer<S, A>, preloadedState?: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
58
+  declare export function createStore<S, A, D>(
59
+    reducer: Reducer<S, A>,
60
+    enhancer?: StoreEnhancer<S, A, D>
61
+  ): Store<S, A, D>;
62
+  declare export function createStore<S, A, D>(
63
+    reducer: Reducer<S, A>,
64
+    preloadedState?: S,
65
+    enhancer?: StoreEnhancer<S, A, D>
66
+  ): Store<S, A, D>;
47 67
 
48
-  declare export function applyMiddleware<S, A, D>(...middlewares: Array<Middleware<S, A, D>>): StoreEnhancer<S, A, D>;
68
+  declare export function applyMiddleware<S, A, D>(
69
+    ...middlewares: Array<Middleware<S, A, D>>
70
+  ): StoreEnhancer<S, A, D>;
49 71
 
50 72
   declare export type ActionCreator<A, B> = (...args: Array<B>) => A;
51
-  declare export type ActionCreators<K, A> = { [key: K]: ActionCreator<A, any> };
52
-
53
-  declare export function bindActionCreators<A, C: ActionCreator<A, any>, D: DispatchAPI<A>>(actionCreator: C, dispatch: D): C;
54
-  declare export function bindActionCreators<A, K, C: ActionCreators<K, A>, D: DispatchAPI<A>>(actionCreators: C, dispatch: D): C;
73
+  declare export type ActionCreators<K, A> = {
74
+    [key: K]: ActionCreator<A, any>,
75
+  };
55 76
 
56
-  declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
77
+  declare export function bindActionCreators<
78
+    A,
79
+    C: ActionCreator<A, any>,
80
+    D: DispatchAPI<A>
81
+  >(
82
+    actionCreator: C,
83
+    dispatch: D
84
+  ): C;
85
+  declare export function bindActionCreators<
86
+    A,
87
+    K,
88
+    C: ActionCreators<K, A>,
89
+    D: DispatchAPI<A>
90
+  >(
91
+    actionCreators: C,
92
+    dispatch: D
93
+  ): C;
94
+
95
+  declare export function combineReducers<O: {}, A>(
96
+    reducers: O
97
+  ): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
57 98
 
58 99
   declare export var compose: $Compose;
59 100
 }

+ 2
- 2
flow-typed/npm/uuid_v3.x.x.js View File

@@ -1,5 +1,5 @@
1
-// flow-typed signature: 3cf668e64747095cab0bb360cf2fb34f
2
-// flow-typed version: d659bd0cb8/uuid_v3.x.x/flow_>=v0.32.x
1
+// flow-typed signature: 609c1622fc97de96d59519934aa5ce87
2
+// flow-typed version: c6154227d1/uuid_v3.x.x/flow_>=v0.32.x <=v0.103.x
3 3
 
4 4
 declare module "uuid" {
5 5
   declare class uuid {

+ 22
- 13
ios/Podfile View File

@@ -1,6 +1,6 @@
1 1
 platform :ios, '10.0'
2
-
3 2
 workspace 'jitsi-meet'
3
+require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
4 4
 
5 5
 target 'jitsi-meet' do
6 6
   project 'app/app.xcodeproj'
@@ -17,19 +17,26 @@ target 'JitsiMeet' do
17 17
   # React Native and its dependencies
18 18
   #
19 19
 
20
-  pod 'React', :path => '../node_modules/react-native', :subspecs => [
21
-    'Core',
22
-    'CxxBridge',
23
-    'DevSupport',
24
-    'RCTActionSheet',
25
-    'RCTAnimation',
26
-    'RCTImage',
27
-    'RCTLinkingIOS',
28
-    'RCTNetwork',
29
-    'RCTText',
30
-    'RCTWebSocket',
31
-  ]
20
+  pod 'React', :path => '../node_modules/react-native/'
21
+  pod 'React-Core', :path => '../node_modules/react-native/React'
22
+  pod 'React-DevSupport', :path => '../node_modules/react-native/React'
23
+  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
24
+  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
25
+  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
26
+  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
27
+  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
28
+  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
29
+  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
30
+  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
31
+  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
32
+  pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
33
+
34
+  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
35
+  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
36
+  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
37
+  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
32 38
   pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
39
+
33 40
   pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
34 41
   pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
35 42
   pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
@@ -54,6 +61,8 @@ target 'JitsiMeet' do
54 61
 
55 62
   pod 'Amplitude-iOS', '~> 4.0.4'
56 63
   pod 'ObjectiveDropboxOfficial', '~> 3.9.4'
64
+
65
+  use_native_modules!
57 66
 end
58 67
 
59 68
 post_install do |installer|

+ 153
- 74
ios/Podfile.lock View File

@@ -1,7 +1,7 @@
1 1
 PODS:
2 2
   - Amplitude-iOS (4.0.4)
3 3
   - boost-for-react-native (1.63.0)
4
-  - BVLinearGradient (2.5.3):
4
+  - BVLinearGradient (2.5.6):
5 5
     - React
6 6
   - Crashlytics (3.12.0):
7 7
     - Fabric (~> 1.9.0)
@@ -36,6 +36,11 @@ PODS:
36 36
     - GoogleUtilities/Environment (~> 5.2)
37 37
     - GoogleUtilities/UserDefaults (~> 5.2)
38 38
   - Folly (2018.10.22.00):
39
+    - boost-for-react-native
40
+    - DoubleConversion
41
+    - Folly/Default (= 2018.10.22.00)
42
+    - glog
43
+  - Folly/Default (2018.10.22.00):
39 44
     - boost-for-react-native
40 45
     - DoubleConversion
41 46
     - glog
@@ -83,80 +88,99 @@ PODS:
83 88
   - nanopb/decode (0.3.901)
84 89
   - nanopb/encode (0.3.901)
85 90
   - ObjectiveDropboxOfficial (3.9.4)
86
-  - React (0.59.10):
87
-    - React/Core (= 0.59.10)
88
-  - react-native-background-timer (2.1.1):
89
-    - React
90
-  - react-native-calendar-events (1.6.4):
91
-    - React
92
-  - react-native-keep-awake (4.0.0):
93
-    - React
94
-  - react-native-webrtc (1.69.2):
95
-    - React
96
-  - react-native-webview (5.8.1):
97
-    - React
98
-  - React/Core (0.59.10):
99
-    - yoga (= 0.59.10.React)
100
-  - React/CxxBridge (0.59.10):
91
+  - React (0.60.5):
92
+    - React-Core (= 0.60.5)
93
+    - React-DevSupport (= 0.60.5)
94
+    - React-RCTActionSheet (= 0.60.5)
95
+    - React-RCTAnimation (= 0.60.5)
96
+    - React-RCTBlob (= 0.60.5)
97
+    - React-RCTImage (= 0.60.5)
98
+    - React-RCTLinking (= 0.60.5)
99
+    - React-RCTNetwork (= 0.60.5)
100
+    - React-RCTSettings (= 0.60.5)
101
+    - React-RCTText (= 0.60.5)
102
+    - React-RCTVibration (= 0.60.5)
103
+    - React-RCTWebSocket (= 0.60.5)
104
+  - React-Core (0.60.5):
105
+    - Folly (= 2018.10.22.00)
106
+    - React-cxxreact (= 0.60.5)
107
+    - React-jsiexecutor (= 0.60.5)
108
+    - yoga (= 0.60.5.React)
109
+  - React-cxxreact (0.60.5):
110
+    - boost-for-react-native (= 1.63.0)
111
+    - DoubleConversion
101 112
     - Folly (= 2018.10.22.00)
102
-    - React/Core
103
-    - React/cxxreact
104
-    - React/jsiexecutor
105
-  - React/cxxreact (0.59.10):
113
+    - glog
114
+    - React-jsinspector (= 0.60.5)
115
+  - React-DevSupport (0.60.5):
116
+    - React-Core (= 0.60.5)
117
+    - React-RCTWebSocket (= 0.60.5)
118
+  - React-jsi (0.60.5):
106 119
     - boost-for-react-native (= 1.63.0)
107 120
     - DoubleConversion
108 121
     - Folly (= 2018.10.22.00)
109 122
     - glog
110
-    - React/jsinspector
111
-  - React/DevSupport (0.59.10):
112
-    - React/Core
113
-    - React/RCTWebSocket
114
-  - React/fishhook (0.59.10)
115
-  - React/jsi (0.59.10):
123
+    - React-jsi/Default (= 0.60.5)
124
+  - React-jsi/Default (0.60.5):
125
+    - boost-for-react-native (= 1.63.0)
116 126
     - DoubleConversion
117 127
     - Folly (= 2018.10.22.00)
118 128
     - glog
119
-  - React/jsiexecutor (0.59.10):
129
+  - React-jsiexecutor (0.60.5):
120 130
     - DoubleConversion
121 131
     - Folly (= 2018.10.22.00)
122 132
     - glog
123
-    - React/cxxreact
124
-    - React/jsi
125
-  - React/jsinspector (0.59.10)
126
-  - React/RCTActionSheet (0.59.10):
127
-    - React/Core
128
-  - React/RCTAnimation (0.59.10):
129
-    - React/Core
130
-  - React/RCTBlob (0.59.10):
131
-    - React/Core
132
-  - React/RCTImage (0.59.10):
133
-    - React/Core
134
-    - React/RCTNetwork
135
-  - React/RCTLinkingIOS (0.59.10):
136
-    - React/Core
137
-  - React/RCTNetwork (0.59.10):
138
-    - React/Core
139
-  - React/RCTText (0.59.10):
140
-    - React/Core
141
-  - React/RCTWebSocket (0.59.10):
142
-    - React/Core
143
-    - React/fishhook
144
-    - React/RCTBlob
133
+    - React-cxxreact (= 0.60.5)
134
+    - React-jsi (= 0.60.5)
135
+  - React-jsinspector (0.60.5)
136
+  - react-native-background-timer (2.1.1):
137
+    - React
138
+  - react-native-calendar-events (1.6.4):
139
+    - React
140
+  - react-native-keep-awake (4.0.0):
141
+    - React
142
+  - react-native-webrtc (1.69.2):
143
+    - React
144
+  - react-native-webview (5.8.1):
145
+    - React
146
+  - React-RCTActionSheet (0.60.5):
147
+    - React-Core (= 0.60.5)
148
+  - React-RCTAnimation (0.60.5):
149
+    - React-Core (= 0.60.5)
150
+  - React-RCTBlob (0.60.5):
151
+    - React-Core (= 0.60.5)
152
+    - React-RCTNetwork (= 0.60.5)
153
+    - React-RCTWebSocket (= 0.60.5)
154
+  - React-RCTImage (0.60.5):
155
+    - React-Core (= 0.60.5)
156
+    - React-RCTNetwork (= 0.60.5)
157
+  - React-RCTLinking (0.60.5):
158
+    - React-Core (= 0.60.5)
159
+  - React-RCTNetwork (0.60.5):
160
+    - React-Core (= 0.60.5)
161
+  - React-RCTSettings (0.60.5):
162
+    - React-Core (= 0.60.5)
163
+  - React-RCTText (0.60.5):
164
+    - React-Core (= 0.60.5)
165
+  - React-RCTVibration (0.60.5):
166
+    - React-Core (= 0.60.5)
167
+  - React-RCTWebSocket (0.60.5):
168
+    - React-Core (= 0.60.5)
145 169
   - RNCAsyncStorage (1.3.4):
146 170
     - React
147 171
   - RNGoogleSignin (2.0.0):
148 172
     - GoogleSignIn (~> 4.4.0)
149 173
     - React
150
-  - RNSound (0.10.12):
151
-    - React/Core
152
-    - RNSound/Core (= 0.10.12)
153
-  - RNSound/Core (0.10.12):
154
-    - React/Core
174
+  - RNSound (0.11.0):
175
+    - React
176
+    - RNSound/Core (= 0.11.0)
177
+  - RNSound/Core (0.11.0):
178
+    - React
155 179
   - RNVectorIcons (6.0.2):
156 180
     - React
157 181
   - RNWatch (0.2.0):
158 182
     - React
159
-  - yoga (0.59.10.React)
183
+  - yoga (0.60.5.React)
160 184
 
161 185
 DEPENDENCIES:
162 186
   - Amplitude-iOS (~> 4.0.4)
@@ -169,21 +193,28 @@ DEPENDENCIES:
169 193
   - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
170 194
   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
171 195
   - ObjectiveDropboxOfficial (~> 3.9.4)
196
+  - React (from `../node_modules/react-native/`)
197
+  - React-Core (from `../node_modules/react-native/React`)
198
+  - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
199
+  - React-DevSupport (from `../node_modules/react-native/React`)
200
+  - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
201
+  - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
202
+  - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
172 203
   - react-native-background-timer (from `../node_modules/react-native-background-timer`)
173 204
   - react-native-calendar-events (from `../node_modules/react-native-calendar-events`)
174 205
   - react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
175 206
   - react-native-webrtc (from `../node_modules/react-native-webrtc`)
176 207
   - react-native-webview (from `../node_modules/react-native-webview`)
177
-  - React/Core (from `../node_modules/react-native`)
178
-  - React/CxxBridge (from `../node_modules/react-native`)
179
-  - React/DevSupport (from `../node_modules/react-native`)
180
-  - React/RCTActionSheet (from `../node_modules/react-native`)
181
-  - React/RCTAnimation (from `../node_modules/react-native`)
182
-  - React/RCTImage (from `../node_modules/react-native`)
183
-  - React/RCTLinkingIOS (from `../node_modules/react-native`)
184
-  - React/RCTNetwork (from `../node_modules/react-native`)
185
-  - React/RCTText (from `../node_modules/react-native`)
186
-  - React/RCTWebSocket (from `../node_modules/react-native`)
208
+  - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
209
+  - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
210
+  - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
211
+  - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
212
+  - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
213
+  - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
214
+  - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
215
+  - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
216
+  - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
217
+  - React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
187 218
   - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
188 219
   - RNGoogleSignin (from `../node_modules/react-native-google-signin`)
189 220
   - RNSound (from `../node_modules/react-native-sound`)
@@ -221,7 +252,19 @@ EXTERNAL SOURCES:
221 252
   glog:
222 253
     :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
223 254
   React:
224
-    :path: "../node_modules/react-native"
255
+    :path: "../node_modules/react-native/"
256
+  React-Core:
257
+    :path: "../node_modules/react-native/React"
258
+  React-cxxreact:
259
+    :path: "../node_modules/react-native/ReactCommon/cxxreact"
260
+  React-DevSupport:
261
+    :path: "../node_modules/react-native/React"
262
+  React-jsi:
263
+    :path: "../node_modules/react-native/ReactCommon/jsi"
264
+  React-jsiexecutor:
265
+    :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
266
+  React-jsinspector:
267
+    :path: "../node_modules/react-native/ReactCommon/jsinspector"
225 268
   react-native-background-timer:
226 269
     :path: "../node_modules/react-native-background-timer"
227 270
   react-native-calendar-events:
@@ -232,6 +275,26 @@ EXTERNAL SOURCES:
232 275
     :path: "../node_modules/react-native-webrtc"
233 276
   react-native-webview:
234 277
     :path: "../node_modules/react-native-webview"
278
+  React-RCTActionSheet:
279
+    :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
280
+  React-RCTAnimation:
281
+    :path: "../node_modules/react-native/Libraries/NativeAnimation"
282
+  React-RCTBlob:
283
+    :path: "../node_modules/react-native/Libraries/Blob"
284
+  React-RCTImage:
285
+    :path: "../node_modules/react-native/Libraries/Image"
286
+  React-RCTLinking:
287
+    :path: "../node_modules/react-native/Libraries/LinkingIOS"
288
+  React-RCTNetwork:
289
+    :path: "../node_modules/react-native/Libraries/Network"
290
+  React-RCTSettings:
291
+    :path: "../node_modules/react-native/Libraries/Settings"
292
+  React-RCTText:
293
+    :path: "../node_modules/react-native/Libraries/Text"
294
+  React-RCTVibration:
295
+    :path: "../node_modules/react-native/Libraries/Vibration"
296
+  React-RCTWebSocket:
297
+    :path: "../node_modules/react-native/Libraries/WebSocket"
235 298
   RNCAsyncStorage:
236 299
     :path: "../node_modules/@react-native-community/async-storage"
237 300
   RNGoogleSignin:
@@ -248,9 +311,9 @@ EXTERNAL SOURCES:
248 311
 SPEC CHECKSUMS:
249 312
   Amplitude-iOS: 2ad4d7270c99186236c1272a3a9425463b1ae1a7
250 313
   boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
251
-  BVLinearGradient: 0d985ec461359c82bc254f26d11008bdae50d17a
314
+  BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
252 315
   Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
253
-  DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
316
+  DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
254 317
   Fabric: f988e33c97f08930a413e08123064d2e5f68d655
255 318
   Firebase: 02f3281965c075426141a0ce1277e9de6649cab9
256 319
   FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2
@@ -258,8 +321,8 @@ SPEC CHECKSUMS:
258 321
   FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3
259 322
   FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd
260 323
   FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e
261
-  Folly: de497beb10f102453a1afa9edbf8cf8a251890de
262
-  glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d
324
+  Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
325
+  glog: 1f3da668190260b06b429bb211bfbee5cd790c28
263 326
   GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832
264 327
   GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39
265 328
   GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
@@ -267,19 +330,35 @@ SPEC CHECKSUMS:
267 330
   GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca
268 331
   nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
269 332
   ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701
270
-  React: 36d0768f9e93be2473b37e7fa64f92c1d5341eef
333
+  React: 53c53c4d99097af47cf60594b8706b4e3321e722
334
+  React-Core: ba421f6b4f4cbe2fb17c0b6fc675f87622e78a64
335
+  React-cxxreact: 8384287780c4999351ad9b6e7a149d9ed10a2395
336
+  React-DevSupport: 197fb409737cff2c4f9986e77c220d7452cb9f9f
337
+  React-jsi: 4d8c9efb6312a9725b18d6fc818ffc103f60fec2
338
+  React-jsiexecutor: 90ad2f9db09513fc763bc757fdc3c4ff8bde2a30
339
+  React-jsinspector: e08662d1bf5b129a3d556eb9ea343a3f40353ae4
271 340
   react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2
272 341
   react-native-calendar-events: ee9573e355711ac679e071be70789542431f4ce3
273 342
   react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
274 343
   react-native-webrtc: 1415d2a54b2246dd85ba95eb3e4bf2b66533f951
275 344
   react-native-webview: a95842e3f351a6d2c8bc8bcc9eab689c7e7e5ad4
345
+  React-RCTActionSheet: b0f1ea83f4bf75fb966eae9bfc47b78c8d3efd90
346
+  React-RCTAnimation: 359ba1b5690b1e87cc173558a78e82d35919333e
347
+  React-RCTBlob: 5e2b55f76e9a1c7ae52b826923502ddc3238df24
348
+  React-RCTImage: f5f1c50922164e89bdda67bcd0153952a5cfe719
349
+  React-RCTLinking: d0ecbd791e9ddddc41fa1f66b0255de90e8ee1e9
350
+  React-RCTNetwork: e26946300b0ab7bb6c4a6348090e93fa21f33a9d
351
+  React-RCTSettings: d0d37cb521b7470c998595a44f05847777cc3f42
352
+  React-RCTText: b074d89033583d4f2eb5faf7ea2db3a13c7553a2
353
+  React-RCTVibration: 2105b2e0e2b66a6408fc69a46c8a7fb5b2fdade0
354
+  React-RCTWebSocket: cd932a16b7214898b6b7f788c8bddb3637246ac4
276 355
   RNCAsyncStorage: 8e31405a9f12fbf42c2bb330e4560bfd79c18323
277 356
   RNGoogleSignin: d030c6c6591db24c3cee649f64c7babf0a1699a0
278
-  RNSound: e157320f503bdd4f4ee6d8542e948d54f90c3c3a
357
+  RNSound: c980916b596cc15c8dcd2f6ecd3b13c4881dbe20
279 358
   RNVectorIcons: d819334932bcda3332deb3d2c8ea4d069e0b98f9
280 359
   RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42
281
-  yoga: 684513b14b03201579ba3cee20218c9d1298b0cc
360
+  yoga: 312528f5bbbba37b4dcea5ef00e8b4033fdd9411
282 361
 
283
-PODFILE CHECKSUM: d540f088d564bfe3b8ca3d13eec4cc0ce9c6e4bc
362
+PODFILE CHECKSUM: 6b6e260b4be4e86f9d05c0d7dab40f60118bb355
284 363
 
285 364
 COCOAPODS: 1.7.2

+ 2611
- 963
package-lock.json
File diff suppressed because it is too large
View File


+ 11
- 9
package.json View File

@@ -60,20 +60,20 @@
60 60
     "moment": "2.19.4",
61 61
     "moment-duration-format": "2.2.2",
62 62
     "postis": "2.2.0",
63
-    "react": "16.8.3",
64
-    "react-dom": "16.8.3",
63
+    "react": "16.8.6",
64
+    "react-dom": "16.8.6",
65 65
     "react-emoji-render": "0.4.6",
66 66
     "react-i18next": "10.11.4",
67 67
     "react-linkify": "1.0.0-alpha",
68
-    "react-native": "0.59.10",
68
+    "react-native": "0.60.5",
69 69
     "react-native-background-timer": "2.1.1",
70 70
     "react-native-calendar-events": "github:jitsi/react-native-calendar-events#f621cbe97b182cfaca41545fd6b818a85d632506",
71 71
     "react-native-callstats": "3.61.0",
72 72
     "react-native-google-signin": "2.0.0",
73 73
     "react-native-immersive": "2.0.0",
74 74
     "react-native-keep-awake": "4.0.0",
75
-    "react-native-linear-gradient": "2.5.3",
76
-    "react-native-sound": "0.10.12",
75
+    "react-native-linear-gradient": "2.5.6",
76
+    "react-native-sound": "0.11.0",
77 77
     "react-native-swipeout": "2.3.6",
78 78
     "react-native-vector-icons": "6.0.2",
79 79
     "react-native-watch-connectivity": "0.2.0",
@@ -90,7 +90,7 @@
90 90
     "xmldom": "0.1.27"
91 91
   },
92 92
   "devDependencies": {
93
-    "@babel/core": "7.1.2",
93
+    "@babel/core": "7.5.5",
94 94
     "@babel/plugin-proposal-class-properties": "7.1.0",
95 95
     "@babel/plugin-proposal-export-default-from": "7.0.0",
96 96
     "@babel/plugin-proposal-export-namespace-from": "7.0.0",
@@ -100,7 +100,7 @@
100 100
     "@babel/preset-env": "7.1.0",
101 101
     "@babel/preset-flow": "7.0.0",
102 102
     "@babel/preset-react": "7.0.0",
103
-    "@babel/runtime": "7.1.2",
103
+    "@babel/runtime": "7.5.5",
104 104
     "babel-eslint": "10.0.1",
105 105
     "babel-loader": "8.0.4",
106 106
     "clean-css": "3.4.25",
@@ -113,9 +113,10 @@
113 113
     "eslint-plugin-react": "7.11.1",
114 114
     "eslint-plugin-react-native": "3.3.0",
115 115
     "expose-loader": "0.7.5",
116
-    "flow-bin": "0.92.0",
116
+    "flow-bin": "0.98.0",
117 117
     "imports-loader": "0.7.1",
118
-    "metro-react-native-babel-preset": "0.49.2",
118
+    "jetifier": "1.6.4",
119
+    "metro-react-native-babel-preset": "0.56.0",
119 120
     "node-sass": "4.10.0",
120 121
     "precommit-hook": "3.0.0",
121 122
     "string-replace-loader": "2.1.1",
@@ -131,6 +132,7 @@
131 132
   "license": "Apache-2.0",
132 133
   "scripts": {
133 134
     "lint": "eslint . && flow",
135
+    "postinstall": "jetify",
134 136
     "validate": "npm ls"
135 137
   },
136 138
   "pre-commit": [

+ 1
- 1
react/features/base/dialog/components/web/AbstractDialogTab.js View File

@@ -43,7 +43,7 @@ class AbstractDialogTab extends Component<Props> {
43 43
         this._onChange = this._onChange.bind(this);
44 44
     }
45 45
 
46
-    _onChange: (Object) => {};
46
+    _onChange: (Object) => void;
47 47
 
48 48
     /**
49 49
      * Uses the onTabStateChange function to pass the changed state of the

+ 2
- 2
react/features/deep-linking/components/DeepLinkingDesktopPage.web.js View File

@@ -139,7 +139,7 @@ class DeepLinkingDesktopPage<P : Props> extends Component<P> {
139 139
         );
140 140
     }
141 141
 
142
-    _onTryAgain: () => {}
142
+    _onTryAgain: () => void;
143 143
 
144 144
     /**
145 145
      * Handles try again button clicks.
@@ -153,7 +153,7 @@ class DeepLinkingDesktopPage<P : Props> extends Component<P> {
153 153
         this.props.dispatch(openDesktopApp());
154 154
     }
155 155
 
156
-    _onLaunchWeb: () => {}
156
+    _onLaunchWeb: () => void;
157 157
 
158 158
     /**
159 159
      * Handles launch web button clicks.

+ 2
- 2
react/features/deep-linking/components/DeepLinkingMobilePage.web.js View File

@@ -171,7 +171,7 @@ class DeepLinkingMobilePage extends Component<Props> {
171 171
             IUS}&efr=1`;
172 172
     }
173 173
 
174
-    _onDownloadApp: () => {};
174
+    _onDownloadApp: () => void;
175 175
 
176 176
     /**
177 177
      * Handles download app button clicks.
@@ -185,7 +185,7 @@ class DeepLinkingMobilePage extends Component<Props> {
185 185
                 'clicked', 'downloadAppButton', { isMobileBrowser: true }));
186 186
     }
187 187
 
188
-    _onOpenApp: () => {};
188
+    _onOpenApp: () => void;
189 189
 
190 190
     /**
191 191
      * Handles open app button clicks.

+ 1
- 1
react/features/invite/components/add-people-dialog/web/AddPeopleDialog.js View File

@@ -393,7 +393,7 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
393 393
         );
394 394
     }
395 395
 
396
-    _setMultiSelectElement: (React$ElementRef<*> | null) => mixed;
396
+    _setMultiSelectElement: (React$ElementRef<*> | null) => void;
397 397
 
398 398
     /**
399 399
      * Sets the instance variable for the multi select component

+ 1
- 1
react/features/recent-list/components/AbstractRecentList.js View File

@@ -85,7 +85,7 @@ export default class AbstractRecentList<P: Props> extends AbstractPage<P> {
85 85
         );
86 86
     }
87 87
 
88
-    _onPress: string => {};
88
+    _onPress: string => void;
89 89
 
90 90
     /**
91 91
      * Handles the list's navigate action.

+ 3
- 3
react/features/recording/components/LiveStream/web/StartLiveStreamDialog.js View File

@@ -110,7 +110,7 @@ class StartLiveStreamDialog
110 110
 
111 111
     _onSubmit: () => boolean;
112 112
 
113
-    _onInitializeGoogleApi: () => Promise<*>;
113
+    _onInitializeGoogleApi: () => void;
114 114
 
115 115
     /**
116 116
      * Loads the Google web client application used for fetching stream keys.
@@ -118,7 +118,7 @@ class StartLiveStreamDialog
118 118
      * broadcasts is also made.
119 119
      *
120 120
      * @private
121
-     * @returns {Promise}
121
+     * @returns {void}
122 122
      */
123 123
     _onInitializeGoogleApi() {
124 124
         this.props.dispatch(
@@ -140,7 +140,7 @@ class StartLiveStreamDialog
140 140
         }
141 141
     }
142 142
 
143
-    _onGetYouTubeBroadcasts: () => Promise<*>;
143
+    _onGetYouTubeBroadcasts: () => void;
144 144
 
145 145
     /**
146 146
      * Asks the user to sign in, if not already signed in, and then requests a

+ 2
- 2
react/features/recording/components/Recording/StartRecordingDialogContent.js View File

@@ -449,7 +449,7 @@ class StartRecordingDialogContent extends Component<Props> {
449 449
         );
450 450
     }
451 451
 
452
-    _onSignIn: () => {};
452
+    _onSignIn: () => void;
453 453
 
454 454
     /**
455 455
      * Sings in a user.
@@ -463,7 +463,7 @@ class StartRecordingDialogContent extends Component<Props> {
463 463
         this.props.dispatch(authorizeDropbox());
464 464
     }
465 465
 
466
-    _onSignOut: () => {};
466
+    _onSignOut: () => void;
467 467
 
468 468
     /**
469 469
      * Sings out an user from dropbox.

+ 1
- 1
react/features/welcome/components/Tab.js View File

@@ -43,7 +43,7 @@ export default class Tab extends Component<Props> {
43 43
         this._onSelect = this._onSelect.bind(this);
44 44
     }
45 45
 
46
-    _onSelect: () => {};
46
+    _onSelect: () => void;
47 47
 
48 48
     /**
49 49
      * Selects a tab.

Loading…
Cancel
Save