Saúl Ibarra Corretgé 6 年之前
父節點
當前提交
dd23ed09ad
共有 37 個文件被更改,包括 3197 次插入1374 次删除
  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 查看文件

2
 ; We fork some components by platform
2
 ; We fork some components by platform
3
 .*/*[.]android.js
3
 .*/*[.]android.js
4
 
4
 
5
-; Ignore "BUCK" generated dirs
6
-<PROJECT_ROOT>/\.buckd/
7
-
8
 ; Ignore unexpected extra "@providesModule"
5
 ; Ignore unexpected extra "@providesModule"
9
 .*/node_modules/.*/node_modules/fbjs/.*
6
 .*/node_modules/.*/node_modules/fbjs/.*
7
+node_modules/react-native/Libraries/react-native/React.js
10
 
8
 
11
 ; Ignore duplicate module providers
9
 ; Ignore duplicate module providers
12
 ; For RN Apps installed via npm, "Libraries" folder is inside
10
 ; For RN Apps installed via npm, "Libraries" folder is inside
13
 ; "node_modules/react-native" but in the source repo it is in the root
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
 ; Ignore polyfills
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
 ; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have
27
 ; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have
23
 ; seen to cause errors and we have chosen not to fix.
28
 ; seen to cause errors and we have chosen not to fix.
40
 esproposal.optional_chaining=enable
45
 esproposal.optional_chaining=enable
41
 esproposal.nullish_coalescing=enable
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
 module.system=haste
60
 module.system=haste
44
 module.system.haste.use_name_reducers=true
61
 module.system.haste.use_name_reducers=true
45
 # get basename
62
 # get basename
52
 module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
69
 module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
53
 module.system.haste.paths.blacklist=.*/__tests__/.*
70
 module.system.haste.paths.blacklist=.*/__tests__/.*
54
 module.system.haste.paths.blacklist=.*/__mocks__/.*
71
 module.system.haste.paths.blacklist=.*/__mocks__/.*
55
-module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
56
 module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
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
 munge_underscores=true
78
 munge_underscores=true
59
 
79
 
64
 suppress_type=$FlowFixMeProps
84
 suppress_type=$FlowFixMeProps
65
 suppress_type=$FlowFixMeState
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
 suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
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
 [version]
114
 [version]
85
-^0.92.0
115
+^0.98.0

+ 2
- 2
android/app/build.gradle 查看文件

70
 
70
 
71
 dependencies {
71
 dependencies {
72
     implementation fileTree(dir: 'libs', include: ['*.jar'])
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
     if (!rootProject.ext.libreBuild) {
76
     if (!rootProject.ext.libreBuild) {
77
         implementation 'com.google.android.gms:play-services-auth:16.0.1'
77
         implementation 'com.google.android.gms:play-services-auth:16.0.1'

+ 0
- 7
android/app/proguard-rules.pro 查看文件

9
 
9
 
10
 # Add any project specific keep options here:
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
 # React Native
12
 # React Native
20
 
13
 
21
 # Keep our interfaces so they can be used by other ProGuard rules.
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 查看文件

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

+ 10
- 13
android/build.gradle 查看文件

25
     repositories {
25
     repositories {
26
         google()
26
         google()
27
         jcenter()
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
         maven { url "$rootDir/../node_modules/react-native/android" }
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
     // Make sure we use the react-native version in node_modules and not the one
34
     // Make sure we use the react-native version in node_modules and not the one
74
     def versionQualifierNumber = (int)(((new Date().getTime()/1000) - 1546297200) / 10)
75
     def versionQualifierNumber = (int)(((new Date().getTime()/1000) - 1546297200) / 10)
75
 
76
 
76
     afterEvaluate { project ->
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
         if (project.name.startsWith('react-native-')) {
85
         if (project.name.startsWith('react-native-')) {
78
             def npmManifest = project.file('../package.json')
86
             def npmManifest = project.file('../package.json')
79
             def json = new JsonSlurper().parseText(npmManifest.text)
87
             def json = new JsonSlurper().parseText(npmManifest.text)
83
 
91
 
84
             project.version = "${json.version}-jitsi-${versionQualifierNumber}"
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
             task androidSourcesJar(type: Jar) {
94
             task androidSourcesJar(type: Jar) {
98
                 classifier = 'sources'
95
                 classifier = 'sources'
99
                 from android.sourceSets.main.java.source
96
                 from android.sourceSets.main.java.source

+ 3
- 0
android/gradle.properties 查看文件

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

+ 5
- 3
android/sdk/build.gradle 查看文件

36
 dependencies {
36
 dependencies {
37
     implementation fileTree(dir: 'libs', include: ['*.jar'])
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
     api 'com.facebook.react:react-native:+'
43
     api 'com.facebook.react:react-native:+'
44
+    implementation 'org.webkit:android-jsc:+'
43
 
45
 
44
     implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8'
46
     implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8'
45
 
47
 
47
         implementation 'com.amplitude:android-sdk:2.14.1'
49
         implementation 'com.amplitude:android-sdk:2.14.1'
48
         implementation(project(":react-native-google-signin")) {
50
         implementation(project(":react-native-google-signin")) {
49
             exclude group: 'com.google.android.gms'
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 查看文件

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

+ 2
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/BaseReactView.java 查看文件

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

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/ConnectionService.java 查看文件

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

+ 2
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java 查看文件

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

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityInterface.java 查看文件

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

+ 4
- 3
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetFragment.java 查看文件

19
 
19
 
20
 import android.content.Intent;
20
 import android.content.Intent;
21
 import android.os.Bundle;
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
 import android.view.LayoutInflater;
26
 import android.view.LayoutInflater;
26
 import android.view.View;
27
 import android.view.View;
27
 import android.view.ViewGroup;
28
 import android.view.ViewGroup;

+ 2
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java 查看文件

19
 
19
 
20
 import android.content.Context;
20
 import android.content.Context;
21
 import android.os.Bundle;
21
 import android.os.Bundle;
22
-import android.support.annotation.NonNull;
23
-import android.support.annotation.Nullable;
24
 import android.util.Log;
22
 import android.util.Log;
23
+import androidx.annotation.NonNull;
24
+import androidx.annotation.Nullable;
25
 
25
 
26
 import com.facebook.react.bridge.ReadableMap;
26
 import com.facebook.react.bridge.ReadableMap;
27
 
27
 

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java 查看文件

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

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/RNConnectionService.java 查看文件

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

+ 10
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java 查看文件

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

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/incoming_call/IncomingCallInfo.java 查看文件

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

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/incoming_call/IncomingCallView.java 查看文件

18
 
18
 
19
 import android.content.Context;
19
 import android.content.Context;
20
 import android.os.Bundle;
20
 import android.os.Bundle;
21
-import android.support.annotation.NonNull;
21
+import androidx.annotation.NonNull;
22
 
22
 
23
 import com.facebook.react.bridge.ReadableMap;
23
 import com.facebook.react.bridge.ReadableMap;
24
 
24
 

+ 2
- 2
flow-typed/npm/flow-bin_v0.x.x.js 查看文件

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
 declare module "flow-bin" {
4
 declare module "flow-bin" {
5
   declare module.exports: string;
5
   declare module.exports: string;

+ 2
- 2
flow-typed/npm/jquery_v3.x.x.js 查看文件

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
 /* eslint-disable max-len, no-unused-vars, flowtype/no-weak-types */
4
 /* eslint-disable max-len, no-unused-vars, flowtype/no-weak-types */
5
 
5
 

+ 212
- 201
flow-typed/npm/lodash_v4.x.x.js 查看文件

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
 declare module "lodash" {
4
 declare module "lodash" {
5
   declare type Path = $ReadOnlyArray<string | number> | string | number;
5
   declare type Path = $ReadOnlyArray<string | number> | string | number;
149
     separator?: RegExp | string
149
     separator?: RegExp | string
150
   };
150
   };
151
 
151
 
152
+  declare type Cancelable = {
153
+    cancel: () => void,
154
+    flush: () => mixed
155
+  };
156
+
152
   declare type DebounceOptions = {
157
   declare type DebounceOptions = {
153
     leading?: boolean,
158
     leading?: boolean,
154
     maxWait?: number,
159
     maxWait?: number,
265
     ): -1;
270
     ): -1;
266
     // alias of _.head
271
     // alias of _.head
267
     first<T>(array: ?$ReadOnlyArray<T>): T;
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
     flattenDeep<T>(array?: ?(any[])): Array<T>;
274
     flattenDeep<T>(array?: ?(any[])): Array<T>;
270
     flattenDepth(array?: ?(any[]), depth?: ?number): any[];
275
     flattenDepth(array?: ?(any[]), depth?: ?number): any[];
271
     fromPairs<A, B>(pairs?: ?Array<[A, B]>): { [key: A]: B };
276
     fromPairs<A, B>(pairs?: ?Array<[A, B]>): { [key: A]: B };
272
     head<T>(array: ?$ReadOnlyArray<T>): T;
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
     indexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
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
     intersection<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
281
     intersection<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
277
     //Workaround until (...parameter: T, parameter2: U) works
282
     //Workaround until (...parameter: T, parameter2: U) works
278
     intersectionBy<T>(
283
     intersectionBy<T>(
320
       a4?: ?$ReadOnlyArray<T>,
325
       a4?: ?$ReadOnlyArray<T>,
321
       comparator?: ?Comparator<T>
326
       comparator?: ?Comparator<T>
322
     ): Array<T>;
327
     ): Array<T>;
323
-    join<T>(array: Array<T>, separator?: ?string): string;
328
+    join<T>(array: $ReadOnlyArray<T>, separator?: ?string): string;
324
     join<T>(array: void | null, separator?: ?string): "";
329
     join<T>(array: void | null, separator?: ?string): "";
325
     last<T>(array: ?$ReadOnlyArray<T>): T;
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
     lastIndexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
332
     lastIndexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
328
     nth<T>(array: T[], n?: ?number): T;
333
     nth<T>(array: T[], n?: ?number): T;
329
     nth(array: void | null, n?: ?number): void;
334
     nth(array: void | null, n?: ?number): void;
357
       start?: ?number,
362
       start?: ?number,
358
       end?: ?number
363
       end?: ?number
359
     ): Array<T>;
364
     ): Array<T>;
360
-    sortedIndex<T>(array: Array<T>, value: T): number;
365
+    sortedIndex<T>(array: $ReadOnlyArray<T>, value: T): number;
361
     sortedIndex<T>(array: void | null, value: ?T): 0;
366
     sortedIndex<T>(array: void | null, value: ?T): 0;
362
     sortedIndexBy<T>(
367
     sortedIndexBy<T>(
363
-      array: Array<T>,
368
+      array: $ReadOnlyArray<T>,
364
       value?: ?T,
369
       value?: ?T,
365
       iteratee?: ?ValueOnlyIteratee<T>
370
       iteratee?: ?ValueOnlyIteratee<T>
366
     ): number;
371
     ): number;
369
       value?: ?T,
374
       value?: ?T,
370
       iteratee?: ?ValueOnlyIteratee<T>
375
       iteratee?: ?ValueOnlyIteratee<T>
371
     ): 0;
376
     ): 0;
372
-    sortedIndexOf<T>(array: Array<T>, value: T): number;
377
+    sortedIndexOf<T>(array: $ReadOnlyArray<T>, value: T): number;
373
     sortedIndexOf<T>(array: void | null, value?: ?T): -1;
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
     sortedLastIndex<T>(array: void | null, value?: ?T): 0;
380
     sortedLastIndex<T>(array: void | null, value?: ?T): 0;
376
     sortedLastIndexBy<T>(
381
     sortedLastIndexBy<T>(
377
-      array: Array<T>,
382
+      array: $ReadOnlyArray<T>,
378
       value: T,
383
       value: T,
379
       iteratee?: ValueOnlyIteratee<T>
384
       iteratee?: ValueOnlyIteratee<T>
380
     ): number;
385
     ): number;
383
       value?: ?T,
388
       value?: ?T,
384
       iteratee?: ?ValueOnlyIteratee<T>
389
       iteratee?: ?ValueOnlyIteratee<T>
385
     ): 0;
390
     ): 0;
386
-    sortedLastIndexOf<T>(array: Array<T>, value: T): number;
391
+    sortedLastIndexOf<T>(array: $ReadOnlyArray<T>, value: T): number;
387
     sortedLastIndexOf<T>(array: void | null, value?: ?T): -1;
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
     sortedUniqBy<T>(
394
     sortedUniqBy<T>(
390
-      array?: ?Array<T>,
395
+      array?: ?$ReadOnlyArray<T>,
391
       iteratee?: ?ValueOnlyIteratee<T>
396
       iteratee?: ?ValueOnlyIteratee<T>
392
     ): Array<T>;
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
     takeRightWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
401
     takeRightWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
397
     takeWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
402
     takeWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
398
     union<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
403
     union<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
442
     uniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
447
     uniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
443
     uniqBy<T>(array?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
448
     uniqBy<T>(array?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
444
     uniqWith<T>(array?: ?$ReadOnlyArray<T>, comparator?: ?Comparator<T>): Array<T>;
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
     unzipWith<T>(array: ?Array<T>, iteratee?: ?Iteratee<T>): Array<T>;
451
     unzipWith<T>(array: ?Array<T>, iteratee?: ?Iteratee<T>): Array<T>;
447
     without<T>(array?: ?$ReadOnlyArray<T>, ...values?: Array<?T>): Array<T>;
452
     without<T>(array?: ?$ReadOnlyArray<T>, ...values?: Array<?T>): Array<T>;
448
     xor<T>(...array: Array<Array<T>>): Array<T>;
453
     xor<T>(...array: Array<Array<T>>): Array<T>;
449
     //Workaround until (...parameter: T, parameter2: U) works
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
     xorBy<T>(
456
     xorBy<T>(
452
-      a1: Array<T>,
453
-      a2: Array<T>,
457
+      a1: $ReadOnlyArray<T>,
458
+      a2: $ReadOnlyArray<T>,
454
       iteratee?: ValueOnlyIteratee<T>
459
       iteratee?: ValueOnlyIteratee<T>
455
     ): Array<T>;
460
     ): Array<T>;
456
     xorBy<T>(
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
       iteratee?: ValueOnlyIteratee<T>
465
       iteratee?: ValueOnlyIteratee<T>
461
     ): Array<T>;
466
     ): Array<T>;
462
     xorBy<T>(
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
       iteratee?: ValueOnlyIteratee<T>
472
       iteratee?: ValueOnlyIteratee<T>
468
     ): Array<T>;
473
     ): Array<T>;
469
     //Workaround until (...parameter: T, parameter2: U) works
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
     xorWith<T>(
476
     xorWith<T>(
472
-      a1: Array<T>,
473
-      a2: Array<T>,
477
+      a1: $ReadOnlyArray<T>,
478
+      a2: $ReadOnlyArray<T>,
474
       comparator?: Comparator<T>
479
       comparator?: Comparator<T>
475
     ): Array<T>;
480
     ): Array<T>;
476
     xorWith<T>(
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
       comparator?: Comparator<T>
485
       comparator?: Comparator<T>
481
     ): Array<T>;
486
     ): Array<T>;
482
     xorWith<T>(
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
       comparator?: Comparator<T>
492
       comparator?: Comparator<T>
488
     ): Array<T>;
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
     zip<A, B, C, D, E>(
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
     ): Array<[A, B, C, D, E]>;
503
     ): Array<[A, B, C, D, E]>;
499
 
504
 
500
     zipObject<K, V>(props: Array<K>, values?: ?Array<V>): { [key: K]: V };
505
     zipObject<K, V>(props: Array<K>, values?: ?Array<V>): { [key: K]: V };
502
     zipObjectDeep(props: any[], values?: ?any): Object;
507
     zipObjectDeep(props: any[], values?: ?any): Object;
503
     zipObjectDeep(props: void | null, values?: ?any): {};
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
     zipWith<T, A, B>(
514
     zipWith<T, A, B>(
510
-      a1: Array<A>,
511
-      a2: Array<B>,
515
+      a1: $ReadOnlyArray<A>,
516
+      a2: $ReadOnlyArray<B>,
512
       iteratee: (A, B) => T
517
       iteratee: (A, B) => T
513
-    ): Array<T>;
518
+    ): $ReadOnlyArray<T>;
514
 
519
 
515
     zipWith<A, B, C>(
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
     ): Array<[A, B, C]>;
524
     ): Array<[A, B, C]>;
520
     zipWith<T, A, B, C>(
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
       iteratee: (A, B, C) => T
529
       iteratee: (A, B, C) => T
525
     ): Array<T>;
530
     ): Array<T>;
526
 
531
 
527
     zipWith<A, B, C, D>(
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
     ): Array<[A, B, C, D]>;
537
     ): Array<[A, B, C, D]>;
533
     zipWith<T, A, B, C, D>(
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
       iteratee: (A, B, C, D) => T
543
       iteratee: (A, B, C, D) => T
539
     ): Array<T>;
544
     ): Array<T>;
540
 
545
 
541
     // Collection
546
     // Collection
542
-    countBy<T>(array: Array<T>, iteratee?: ?ValueOnlyIteratee<T>): Object;
547
+    countBy<T>(array: $ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Object;
543
     countBy<T>(array: void | null, iteratee?: ?ValueOnlyIteratee<T>): {};
548
     countBy<T>(array: void | null, iteratee?: ?ValueOnlyIteratee<T>): {};
544
     countBy<T: Object>(object: T, iteratee?: ?ValueOnlyIteratee<T>): Object;
549
     countBy<T: Object>(object: T, iteratee?: ?ValueOnlyIteratee<T>): Object;
545
     // alias of _.forEach
550
     // alias of _.forEach
675
       iteratees?: ?$ReadOnlyArray<Iteratee<T>> | ?string,
680
       iteratees?: ?$ReadOnlyArray<Iteratee<T>> | ?string,
676
       orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string
681
       orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string
677
     ): Array<T>;
682
     ): Array<T>;
678
-    orderBy<V, T: Object>(
683
+    orderBy<V, T: {}>(
679
       object: T,
684
       object: T,
680
       iteratees?: $ReadOnlyArray<OIteratee<*>> | string,
685
       iteratees?: $ReadOnlyArray<OIteratee<*>> | string,
681
       orders?: $ReadOnlyArray<"asc" | "desc"> | string
686
       orders?: $ReadOnlyArray<"asc" | "desc"> | string
743
       object?: ?T,
748
       object?: ?T,
744
       predicate?: ?OPredicate<A, T>
749
       predicate?: ?OPredicate<A, T>
745
     ): Array<V>;
750
     ): Array<V>;
746
-    sample<T>(array: ?Array<T>): T;
751
+    sample<T>(array: ?$ReadOnlyArray<T>): T;
747
     sample<V, T: Object>(object: T): V;
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
     sampleSize<V, T: Object>(object: T, n?: number): Array<V>;
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
     shuffle<V, T: Object>(object: T): Array<V>;
756
     shuffle<V, T: Object>(object: T): Array<V>;
752
     size(collection: $ReadOnlyArray<any> | Object | string): number;
757
     size(collection: $ReadOnlyArray<any> | Object | string): number;
753
     some<T>(array: void | null, predicate?: ?Predicate<T>): false;
758
     some<T>(array: void | null, predicate?: ?Predicate<T>): false;
785
     curry: Curry;
790
     curry: Curry;
786
     curry(func: Function, arity?: number): Function;
791
     curry(func: Function, arity?: number): Function;
787
     curryRight(func: Function, arity?: number): Function;
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
     defer(func: (...any[]) => any, ...args?: Array<any>): TimeoutID;
798
     defer(func: (...any[]) => any, ...args?: Array<any>): TimeoutID;
790
     delay(func: Function, wait: number, ...args?: Array<any>): TimeoutID;
799
     delay(func: Function, wait: number, ...args?: Array<any>): TimeoutID;
791
     flip<R>(func: (...any[]) => R): (...any[]) => R;
800
     flip<R>(func: (...any[]) => R): (...any[]) => R;
805
       func: F,
814
       func: F,
806
       wait?: number,
815
       wait?: number,
807
       options?: ThrottleOptions
816
       options?: ThrottleOptions
808
-    ): F;
817
+    ): F & Cancelable;
809
     unary<F: (...any[]) => any>(func: F): F;
818
     unary<F: (...any[]) => any>(func: F): F;
810
     wrap(value?: any, wrapper?: ?Function): Function;
819
     wrap(value?: any, wrapper?: ?Function): Function;
811
 
820
 
830
     gte(value: any, other: any): boolean;
839
     gte(value: any, other: any): boolean;
831
     isArguments(value: void | null): false;
840
     isArguments(value: void | null): false;
832
     isArguments(value: any): boolean;
841
     isArguments(value: any): boolean;
833
-    isArray(value: Array<any>): true;
842
+    isArray(value: $ReadOnlyArray<any>): true;
834
     isArray(value: any): false;
843
     isArray(value: any): false;
835
     isArrayBuffer(value: ArrayBuffer): true;
844
     isArrayBuffer(value: ArrayBuffer): true;
836
     isArrayBuffer(value: any): false;
845
     isArrayBuffer(value: any): false;
837
-    isArrayLike(value: Array<any> | string | { length: number }): true;
846
+    isArrayLike(value: $ReadOnlyArray<any> | string | { length: number }): true;
838
     isArrayLike(value: any): false;
847
     isArrayLike(value: any): false;
839
-    isArrayLikeObject(value: { length: number } | Array<any>): true;
848
+    isArrayLikeObject(value: { length: number } | $ReadOnlyArray<any>): true;
840
     isArrayLikeObject(value: any): false;
849
     isArrayLikeObject(value: any): false;
841
     isBoolean(value: boolean): true;
850
     isBoolean(value: boolean): true;
842
     isBoolean(value: any): false;
851
     isBoolean(value: any): false;
939
     ceil(number: number, precision?: number): number;
948
     ceil(number: number, precision?: number): number;
940
     divide(dividend: number, divisor: number): number;
949
     divide(dividend: number, divisor: number): number;
941
     floor(number: number, precision?: number): number;
950
     floor(number: number, precision?: number): number;
942
-    max<T>(array: ?Array<T>): T;
951
+    max<T>(array: ?$ReadOnlyArray<T>): T;
943
     maxBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
952
     maxBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
944
-    mean(array: Array<*>): number;
953
+    mean(array: $ReadOnlyArray<*>): number;
945
     meanBy<T>(array: Array<T>, iteratee?: Iteratee<T>): number;
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
     minBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
956
     minBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
948
     multiply(multiplier: number, multiplicand: number): number;
957
     multiply(multiplier: number, multiplicand: number): number;
949
     round(number: number, precision?: number): number;
958
     round(number: number, precision?: number): number;
950
     subtract(minuend: number, subtrahend: number): number;
959
     subtract(minuend: number, subtrahend: number): number;
951
-    sum(array: Array<*>): number;
960
+    sum(array: $ReadOnlyArray<*>): number;
952
     sumBy<T>(array: $ReadOnlyArray<T>, iteratee?: Iteratee<T>): number;
961
     sumBy<T>(array: $ReadOnlyArray<T>, iteratee?: Iteratee<T>): number;
953
 
962
 
954
     // number
963
     // number
1066
         source: A | B | C | D
1075
         source: A | B | C | D
1067
       ) => any | void
1076
       ) => any | void
1068
     ): Object;
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
     create(prototype: void | null, properties: void | null): {};
1080
     create(prototype: void | null, properties: void | null): {};
1072
     create<T>(prototype: T, properties: Object): T;
1081
     create<T>(prototype: T, properties: Object): T;
1073
     create(prototype: any, properties: void | null): {};
1082
     create(prototype: any, properties: void | null): {};
1237
         source: A | B | C | D
1246
         source: A | B | C | D
1238
       ) => any | void
1247
       ) => any | void
1239
     ): Object;
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
     omitBy<A, T: { [id: any]: A } | { [id: number]: A }>(
1251
     omitBy<A, T: { [id: any]: A } | { [id: number]: A }>(
1243
       object: T,
1252
       object: T,
1244
       predicate?: ?OPredicate<A, T>
1253
       predicate?: ?OPredicate<A, T>
1245
     ): Object;
1254
     ): Object;
1246
     omitBy<A, T>(object: void | null, predicate?: ?OPredicate<A, T>): {};
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
     pickBy<A, T: { [id: any]: A } | { [id: number]: A }>(
1258
     pickBy<A, T: { [id: any]: A } | { [id: number]: A }>(
1250
       object: T,
1259
       object: T,
1251
       predicate?: ?OPredicate<A, T>
1260
       predicate?: ?OPredicate<A, T>
1758
     ): number;
1767
     ): number;
1759
     // alias of _.head
1768
     // alias of _.head
1760
     first<T>(array: $ReadOnlyArray<T>): T;
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
     unnest<T, X>(array: Array<Array<T> | X>): Array<T | X>;
1771
     unnest<T, X>(array: Array<Array<T> | X>): Array<T | X>;
1763
     flattenDeep<T>(array: any[]): Array<T>;
1772
     flattenDeep<T>(array: any[]): Array<T>;
1764
     flattenDepth(depth: number): (array: any[]) => any[];
1773
     flattenDepth(depth: number): (array: any[]) => any[];
1765
     flattenDepth(depth: number, array: any[]): any[];
1774
     flattenDepth(depth: number, array: any[]): any[];
1766
     fromPairs<A, B>(pairs: Array<[A, B]>): { [key: A]: B };
1775
     fromPairs<A, B>(pairs: Array<[A, B]>): { [key: A]: B };
1767
     head<T>(array: $ReadOnlyArray<T>): T;
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
     indexOfFrom<T>(
1779
     indexOfFrom<T>(
1771
       value: T
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
     init<T>(array: Array<T>): Array<T>;
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
     intersectionBy<T>(
1789
     intersectionBy<T>(
1781
       iteratee: ValueOnlyIteratee<T>
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
     intersectionBy<T>(
1793
     intersectionBy<T>(
1785
       iteratee: ValueOnlyIteratee<T>,
1794
       iteratee: ValueOnlyIteratee<T>,
1786
-      a1: Array<T>
1795
+      a1: $ReadOnlyArray<T>
1787
     ): (a2: Array<T>) => Array<T>;
1796
     ): (a2: Array<T>) => Array<T>;
1788
     intersectionBy<T>(
1797
     intersectionBy<T>(
1789
       iteratee: ValueOnlyIteratee<T>,
1798
       iteratee: ValueOnlyIteratee<T>,
1790
-      a1: Array<T>,
1791
-      a2: Array<T>
1799
+      a1: $ReadOnlyArray<T>,
1800
+      a2: $ReadOnlyArray<T>
1792
     ): Array<T>;
1801
     ): Array<T>;
1793
     intersectionWith<T>(
1802
     intersectionWith<T>(
1794
       comparator: Comparator<T>
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
     intersectionWith<T>(
1806
     intersectionWith<T>(
1798
       comparator: Comparator<T>,
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
     intersectionWith<T>(
1810
     intersectionWith<T>(
1802
       comparator: Comparator<T>,
1811
       comparator: Comparator<T>,
1803
-      a1: Array<T>,
1804
-      a2: Array<T>
1812
+      a1: $ReadOnlyArray<T>,
1813
+      a2: $ReadOnlyArray<T>
1805
     ): Array<T>;
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
     lastIndexOfFrom<T>(
1820
     lastIndexOfFrom<T>(
1812
       value: T
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
     lastIndexOfFrom<T>(
1824
     lastIndexOfFrom<T>(
1816
       value: T,
1825
       value: T,
1817
       fromIndex: number
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
     nth<T>(n: number): (array: T[]) => T;
1829
     nth<T>(n: number): (array: T[]) => T;
1821
     nth<T>(n: number, array: T[]): T;
1830
     nth<T>(n: number, array: T[]): T;
1822
     pull<T>(value: T): (array: Array<T>) => Array<T>;
1831
     pull<T>(value: T): (array: Array<T>) => Array<T>;
1849
     reverse<T>(array: Array<T>): Array<T>;
1858
     reverse<T>(array: Array<T>): Array<T>;
1850
     slice<T>(
1859
     slice<T>(
1851
       start: number
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
     sortedIndexBy<T>(
1867
     sortedIndexBy<T>(
1859
       iteratee: ValueOnlyIteratee<T>
1868
       iteratee: ValueOnlyIteratee<T>
1860
-    ): ((value: T) => (array: Array<T>) => number) &
1869
+    ): ((value: T) => (array: $ReadOnlyArray<T>) => number) &
1861
       ((value: T, array: Array<T>) => number);
1870
       ((value: T, array: Array<T>) => number);
1862
     sortedIndexBy<T>(
1871
     sortedIndexBy<T>(
1863
       iteratee: ValueOnlyIteratee<T>,
1872
       iteratee: ValueOnlyIteratee<T>,
1864
       value: T
1873
       value: T
1865
-    ): (array: Array<T>) => number;
1874
+    ): (array: $ReadOnlyArray<T>) => number;
1866
     sortedIndexBy<T>(
1875
     sortedIndexBy<T>(
1867
       iteratee: ValueOnlyIteratee<T>,
1876
       iteratee: ValueOnlyIteratee<T>,
1868
       value: T,
1877
       value: T,
1869
-      array: Array<T>
1878
+      array: $ReadOnlyArray<T>
1870
     ): number;
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
     sortedLastIndexBy<T>(
1884
     sortedLastIndexBy<T>(
1876
       iteratee: ValueOnlyIteratee<T>
1885
       iteratee: ValueOnlyIteratee<T>
1877
-    ): ((value: T) => (array: Array<T>) => number) &
1886
+    ): ((value: T) => (array: $ReadOnlyArray<T>) => number) &
1878
       ((value: T, array: Array<T>) => number);
1887
       ((value: T, array: Array<T>) => number);
1879
     sortedLastIndexBy<T>(
1888
     sortedLastIndexBy<T>(
1880
       iteratee: ValueOnlyIteratee<T>,
1889
       iteratee: ValueOnlyIteratee<T>,
1881
       value: T
1890
       value: T
1882
-    ): (array: Array<T>) => number;
1891
+    ): (array: $ReadOnlyArray<T>) => number;
1883
     sortedLastIndexBy<T>(
1892
     sortedLastIndexBy<T>(
1884
       iteratee: ValueOnlyIteratee<T>,
1893
       iteratee: ValueOnlyIteratee<T>,
1885
       value: T,
1894
       value: T,
1886
-      array: Array<T>
1895
+      array: $ReadOnlyArray<T>
1887
     ): number;
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
     takeRightWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1908
     takeRightWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1900
     takeRightWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1909
     takeRightWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1901
     takeLastWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1910
     takeLastWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1902
     takeLastWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1911
     takeLastWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
1903
     takeWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1912
     takeWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
1904
     takeWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
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
     unionBy<T>(
1916
     unionBy<T>(
1908
       iteratee: ValueOnlyIteratee<T>
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
     unionBy<T>(
1920
     unionBy<T>(
1912
       iteratee: ValueOnlyIteratee<T>,
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
     unionBy<T>(
1924
     unionBy<T>(
1916
       iteratee: ValueOnlyIteratee<T>,
1925
       iteratee: ValueOnlyIteratee<T>,
1917
-      a1: Array<T>,
1918
-      a2: Array<T>
1926
+      a1: $ReadOnlyArray<T>,
1927
+      a2: $ReadOnlyArray<T>
1919
     ): Array<T>;
1928
     ): Array<T>;
1920
     unionWith<T>(
1929
     unionWith<T>(
1921
       comparator: Comparator<T>
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
     unionWith<T>(
1933
     unionWith<T>(
1925
       comparator: Comparator<T>,
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
     unionWith<T>(
1937
     unionWith<T>(
1929
       comparator: Comparator<T>,
1938
       comparator: Comparator<T>,
1930
-      a1: Array<T>,
1931
-      a2: Array<T>
1939
+      a1: $ReadOnlyArray<T>,
1940
+      a2: $ReadOnlyArray<T>
1932
     ): Array<T>;
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
     unzipWith<T>(iteratee: Iteratee<T>): (array: Array<T>) => Array<T>;
1948
     unzipWith<T>(iteratee: Iteratee<T>): (array: Array<T>) => Array<T>;
1940
     unzipWith<T>(iteratee: Iteratee<T>, array: Array<T>): Array<T>;
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
     xorBy<T>(
1956
     xorBy<T>(
1948
       iteratee: ValueOnlyIteratee<T>
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
     xorBy<T>(
1960
     xorBy<T>(
1952
       iteratee: ValueOnlyIteratee<T>,
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
     xorBy<T>(
1964
     xorBy<T>(
1956
       iteratee: ValueOnlyIteratee<T>,
1965
       iteratee: ValueOnlyIteratee<T>,
1957
-      a1: Array<T>,
1958
-      a2: Array<T>
1966
+      a1: $ReadOnlyArray<T>,
1967
+      a2: $ReadOnlyArray<T>
1959
     ): Array<T>;
1968
     ): Array<T>;
1960
     symmetricDifferenceBy<T>(
1969
     symmetricDifferenceBy<T>(
1961
       iteratee: ValueOnlyIteratee<T>
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
     symmetricDifferenceBy<T>(
1973
     symmetricDifferenceBy<T>(
1965
       iteratee: ValueOnlyIteratee<T>,
1974
       iteratee: ValueOnlyIteratee<T>,
1966
-      a1: Array<T>
1975
+      a1: $ReadOnlyArray<T>
1967
     ): (a2: Array<T>) => Array<T>;
1976
     ): (a2: Array<T>) => Array<T>;
1968
     symmetricDifferenceBy<T>(
1977
     symmetricDifferenceBy<T>(
1969
       iteratee: ValueOnlyIteratee<T>,
1978
       iteratee: ValueOnlyIteratee<T>,
1970
-      a1: Array<T>,
1971
-      a2: Array<T>
1979
+      a1: $ReadOnlyArray<T>,
1980
+      a2: $ReadOnlyArray<T>
1972
     ): Array<T>;
1981
     ): Array<T>;
1973
     xorWith<T>(
1982
     xorWith<T>(
1974
       comparator: Comparator<T>
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
     xorWith<T>(
1986
     xorWith<T>(
1978
       comparator: Comparator<T>,
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
     symmetricDifferenceWith<T>(
1991
     symmetricDifferenceWith<T>(
1983
       comparator: Comparator<T>
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
     symmetricDifferenceWith<T>(
1995
     symmetricDifferenceWith<T>(
1987
       comparator: Comparator<T>,
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
     symmetricDifferenceWith<T>(
1999
     symmetricDifferenceWith<T>(
1991
       comparator: Comparator<T>,
2000
       comparator: Comparator<T>,
1992
-      a1: Array<T>,
1993
-      a2: Array<T>
2001
+      a1: $ReadOnlyArray<T>,
2002
+      a2: $ReadOnlyArray<T>
1994
     ): Array<T>;
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
     zipObj(props: Array<any>): (values: Array<any>) => Object;
2009
     zipObj(props: Array<any>): (values: Array<any>) => Object;
2001
     zipObj(props: Array<any>, values: Array<any>): Object;
2010
     zipObj(props: Array<any>, values: Array<any>): Object;
2002
     zipObjectDeep(props: any[]): (values: any) => Object;
2011
     zipObjectDeep(props: any[]): (values: any) => Object;
2017
     // Collection
2026
     // Collection
2018
     countBy<T>(
2027
     countBy<T>(
2019
       iteratee: ValueOnlyIteratee<T>
2028
       iteratee: ValueOnlyIteratee<T>
2020
-    ): (collection: Array<T> | { [id: any]: T }) => { [string]: number };
2029
+    ): (collection: $ReadOnlyArray<T> | { [id: any]: T }) => { [string]: number };
2021
     countBy<T>(
2030
     countBy<T>(
2022
       iteratee: ValueOnlyIteratee<T>,
2031
       iteratee: ValueOnlyIteratee<T>,
2023
-      collection: Array<T> | { [id: any]: T }
2032
+      collection: $ReadOnlyArray<T> | { [id: any]: T }
2024
     ): { [string]: number };
2033
     ): { [string]: number };
2025
     // alias of _.forEach
2034
     // alias of _.forEach
2026
     each<T>(
2035
     each<T>(
2946
       predicate: OPredicate<A>
2955
       predicate: OPredicate<A>
2947
     ): (object: T) => Object;
2956
     ): (object: T) => Object;
2948
     omitBy<A, T: { [id: any]: A }>(predicate: OPredicate<A>, object: T): Object;
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
     pickAll(props: Array<string>): (object: Object) => Object;
2962
     pickAll(props: Array<string>): (object: Object) => Object;
2952
     pickAll(props: Array<string>, object: Object): Object;
2963
     pickAll(props: Array<string>, object: Object): Object;
2953
     pickBy<A, T: { [id: any]: A }>(
2964
     pickBy<A, T: { [id: any]: A }>(

+ 2
- 2
flow-typed/npm/react-redux_v5.x.x.js 查看文件

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
 The order of type arguments for connect() is as follows:
5
 The order of type arguments for connect() is as follows:

+ 66
- 25
flow-typed/npm/redux_v4.x.x.js 查看文件

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
 declare module 'redux' {
4
 declare module 'redux' {
5
-
6
   /*
5
   /*
7
 
6
 
8
     S = State
7
     S = State
11
 
10
 
12
   */
11
   */
13
 
12
 
13
+  declare export type Action<T> = {
14
+    type: T
15
+  }
16
+
14
   declare export type DispatchAPI<A> = (action: A) => A;
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
   declare export type MiddlewareAPI<S, A, D = Dispatch<A>> = {
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
   declare export type Store<S, A, D = Dispatch<A>> = {
26
   declare export type Store<S, A, D = Dispatch<A>> = {
23
     // rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages)
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
   declare export type Reducer<S, A> = (state: S | void, action: A) => S;
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
   declare export type StoreCreator<S, A, D = Dispatch<A>> = {
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
   declare export type ActionCreator<A, B> = (...args: Array<B>) => A;
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
   declare export var compose: $Compose;
99
   declare export var compose: $Compose;
59
 }
100
 }

+ 2
- 2
flow-typed/npm/uuid_v3.x.x.js 查看文件

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
 declare module "uuid" {
4
 declare module "uuid" {
5
   declare class uuid {
5
   declare class uuid {

+ 22
- 13
ios/Podfile 查看文件

1
 platform :ios, '10.0'
1
 platform :ios, '10.0'
2
-
3
 workspace 'jitsi-meet'
2
 workspace 'jitsi-meet'
3
+require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
4
 
4
 
5
 target 'jitsi-meet' do
5
 target 'jitsi-meet' do
6
   project 'app/app.xcodeproj'
6
   project 'app/app.xcodeproj'
17
   # React Native and its dependencies
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
   pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
38
   pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
39
+
33
   pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
40
   pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
34
   pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
41
   pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
35
   pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
42
   pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
54
 
61
 
55
   pod 'Amplitude-iOS', '~> 4.0.4'
62
   pod 'Amplitude-iOS', '~> 4.0.4'
56
   pod 'ObjectiveDropboxOfficial', '~> 3.9.4'
63
   pod 'ObjectiveDropboxOfficial', '~> 3.9.4'
64
+
65
+  use_native_modules!
57
 end
66
 end
58
 
67
 
59
 post_install do |installer|
68
 post_install do |installer|

+ 153
- 74
ios/Podfile.lock 查看文件

1
 PODS:
1
 PODS:
2
   - Amplitude-iOS (4.0.4)
2
   - Amplitude-iOS (4.0.4)
3
   - boost-for-react-native (1.63.0)
3
   - boost-for-react-native (1.63.0)
4
-  - BVLinearGradient (2.5.3):
4
+  - BVLinearGradient (2.5.6):
5
     - React
5
     - React
6
   - Crashlytics (3.12.0):
6
   - Crashlytics (3.12.0):
7
     - Fabric (~> 1.9.0)
7
     - Fabric (~> 1.9.0)
36
     - GoogleUtilities/Environment (~> 5.2)
36
     - GoogleUtilities/Environment (~> 5.2)
37
     - GoogleUtilities/UserDefaults (~> 5.2)
37
     - GoogleUtilities/UserDefaults (~> 5.2)
38
   - Folly (2018.10.22.00):
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
     - boost-for-react-native
44
     - boost-for-react-native
40
     - DoubleConversion
45
     - DoubleConversion
41
     - glog
46
     - glog
83
   - nanopb/decode (0.3.901)
88
   - nanopb/decode (0.3.901)
84
   - nanopb/encode (0.3.901)
89
   - nanopb/encode (0.3.901)
85
   - ObjectiveDropboxOfficial (3.9.4)
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
     - Folly (= 2018.10.22.00)
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
     - boost-for-react-native (= 1.63.0)
119
     - boost-for-react-native (= 1.63.0)
107
     - DoubleConversion
120
     - DoubleConversion
108
     - Folly (= 2018.10.22.00)
121
     - Folly (= 2018.10.22.00)
109
     - glog
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
     - DoubleConversion
126
     - DoubleConversion
117
     - Folly (= 2018.10.22.00)
127
     - Folly (= 2018.10.22.00)
118
     - glog
128
     - glog
119
-  - React/jsiexecutor (0.59.10):
129
+  - React-jsiexecutor (0.60.5):
120
     - DoubleConversion
130
     - DoubleConversion
121
     - Folly (= 2018.10.22.00)
131
     - Folly (= 2018.10.22.00)
122
     - glog
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
   - RNCAsyncStorage (1.3.4):
169
   - RNCAsyncStorage (1.3.4):
146
     - React
170
     - React
147
   - RNGoogleSignin (2.0.0):
171
   - RNGoogleSignin (2.0.0):
148
     - GoogleSignIn (~> 4.4.0)
172
     - GoogleSignIn (~> 4.4.0)
149
     - React
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
   - RNVectorIcons (6.0.2):
179
   - RNVectorIcons (6.0.2):
156
     - React
180
     - React
157
   - RNWatch (0.2.0):
181
   - RNWatch (0.2.0):
158
     - React
182
     - React
159
-  - yoga (0.59.10.React)
183
+  - yoga (0.60.5.React)
160
 
184
 
161
 DEPENDENCIES:
185
 DEPENDENCIES:
162
   - Amplitude-iOS (~> 4.0.4)
186
   - Amplitude-iOS (~> 4.0.4)
169
   - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
193
   - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
170
   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
194
   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
171
   - ObjectiveDropboxOfficial (~> 3.9.4)
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
   - react-native-background-timer (from `../node_modules/react-native-background-timer`)
203
   - react-native-background-timer (from `../node_modules/react-native-background-timer`)
173
   - react-native-calendar-events (from `../node_modules/react-native-calendar-events`)
204
   - react-native-calendar-events (from `../node_modules/react-native-calendar-events`)
174
   - react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
205
   - react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
175
   - react-native-webrtc (from `../node_modules/react-native-webrtc`)
206
   - react-native-webrtc (from `../node_modules/react-native-webrtc`)
176
   - react-native-webview (from `../node_modules/react-native-webview`)
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
   - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
218
   - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
188
   - RNGoogleSignin (from `../node_modules/react-native-google-signin`)
219
   - RNGoogleSignin (from `../node_modules/react-native-google-signin`)
189
   - RNSound (from `../node_modules/react-native-sound`)
220
   - RNSound (from `../node_modules/react-native-sound`)
221
   glog:
252
   glog:
222
     :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
253
     :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
223
   React:
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
   react-native-background-timer:
268
   react-native-background-timer:
226
     :path: "../node_modules/react-native-background-timer"
269
     :path: "../node_modules/react-native-background-timer"
227
   react-native-calendar-events:
270
   react-native-calendar-events:
232
     :path: "../node_modules/react-native-webrtc"
275
     :path: "../node_modules/react-native-webrtc"
233
   react-native-webview:
276
   react-native-webview:
234
     :path: "../node_modules/react-native-webview"
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
   RNCAsyncStorage:
298
   RNCAsyncStorage:
236
     :path: "../node_modules/@react-native-community/async-storage"
299
     :path: "../node_modules/@react-native-community/async-storage"
237
   RNGoogleSignin:
300
   RNGoogleSignin:
248
 SPEC CHECKSUMS:
311
 SPEC CHECKSUMS:
249
   Amplitude-iOS: 2ad4d7270c99186236c1272a3a9425463b1ae1a7
312
   Amplitude-iOS: 2ad4d7270c99186236c1272a3a9425463b1ae1a7
250
   boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
313
   boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
251
-  BVLinearGradient: 0d985ec461359c82bc254f26d11008bdae50d17a
314
+  BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
252
   Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
315
   Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
253
-  DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
316
+  DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
254
   Fabric: f988e33c97f08930a413e08123064d2e5f68d655
317
   Fabric: f988e33c97f08930a413e08123064d2e5f68d655
255
   Firebase: 02f3281965c075426141a0ce1277e9de6649cab9
318
   Firebase: 02f3281965c075426141a0ce1277e9de6649cab9
256
   FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2
319
   FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2
258
   FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3
321
   FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3
259
   FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd
322
   FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd
260
   FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e
323
   FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e
261
-  Folly: de497beb10f102453a1afa9edbf8cf8a251890de
262
-  glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d
324
+  Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
325
+  glog: 1f3da668190260b06b429bb211bfbee5cd790c28
263
   GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832
326
   GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832
264
   GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39
327
   GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39
265
   GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
328
   GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
267
   GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca
330
   GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca
268
   nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
331
   nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
269
   ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701
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
   react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2
340
   react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2
272
   react-native-calendar-events: ee9573e355711ac679e071be70789542431f4ce3
341
   react-native-calendar-events: ee9573e355711ac679e071be70789542431f4ce3
273
   react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
342
   react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
274
   react-native-webrtc: 1415d2a54b2246dd85ba95eb3e4bf2b66533f951
343
   react-native-webrtc: 1415d2a54b2246dd85ba95eb3e4bf2b66533f951
275
   react-native-webview: a95842e3f351a6d2c8bc8bcc9eab689c7e7e5ad4
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
   RNCAsyncStorage: 8e31405a9f12fbf42c2bb330e4560bfd79c18323
355
   RNCAsyncStorage: 8e31405a9f12fbf42c2bb330e4560bfd79c18323
277
   RNGoogleSignin: d030c6c6591db24c3cee649f64c7babf0a1699a0
356
   RNGoogleSignin: d030c6c6591db24c3cee649f64c7babf0a1699a0
278
-  RNSound: e157320f503bdd4f4ee6d8542e948d54f90c3c3a
357
+  RNSound: c980916b596cc15c8dcd2f6ecd3b13c4881dbe20
279
   RNVectorIcons: d819334932bcda3332deb3d2c8ea4d069e0b98f9
358
   RNVectorIcons: d819334932bcda3332deb3d2c8ea4d069e0b98f9
280
   RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42
359
   RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42
281
-  yoga: 684513b14b03201579ba3cee20218c9d1298b0cc
360
+  yoga: 312528f5bbbba37b4dcea5ef00e8b4033fdd9411
282
 
361
 
283
-PODFILE CHECKSUM: d540f088d564bfe3b8ca3d13eec4cc0ce9c6e4bc
362
+PODFILE CHECKSUM: 6b6e260b4be4e86f9d05c0d7dab40f60118bb355
284
 
363
 
285
 COCOAPODS: 1.7.2
364
 COCOAPODS: 1.7.2

+ 2611
- 963
package-lock.json
文件差異過大導致無法顯示
查看文件


+ 11
- 9
package.json 查看文件

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

+ 1
- 1
react/features/base/dialog/components/web/AbstractDialogTab.js 查看文件

43
         this._onChange = this._onChange.bind(this);
43
         this._onChange = this._onChange.bind(this);
44
     }
44
     }
45
 
45
 
46
-    _onChange: (Object) => {};
46
+    _onChange: (Object) => void;
47
 
47
 
48
     /**
48
     /**
49
      * Uses the onTabStateChange function to pass the changed state of the
49
      * Uses the onTabStateChange function to pass the changed state of the

+ 2
- 2
react/features/deep-linking/components/DeepLinkingDesktopPage.web.js 查看文件

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

+ 2
- 2
react/features/deep-linking/components/DeepLinkingMobilePage.web.js 查看文件

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

+ 1
- 1
react/features/invite/components/add-people-dialog/web/AddPeopleDialog.js 查看文件

393
         );
393
         );
394
     }
394
     }
395
 
395
 
396
-    _setMultiSelectElement: (React$ElementRef<*> | null) => mixed;
396
+    _setMultiSelectElement: (React$ElementRef<*> | null) => void;
397
 
397
 
398
     /**
398
     /**
399
      * Sets the instance variable for the multi select component
399
      * Sets the instance variable for the multi select component

+ 1
- 1
react/features/recent-list/components/AbstractRecentList.js 查看文件

85
         );
85
         );
86
     }
86
     }
87
 
87
 
88
-    _onPress: string => {};
88
+    _onPress: string => void;
89
 
89
 
90
     /**
90
     /**
91
      * Handles the list's navigate action.
91
      * Handles the list's navigate action.

+ 3
- 3
react/features/recording/components/LiveStream/web/StartLiveStreamDialog.js 查看文件

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

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

+ 1
- 1
react/features/welcome/components/Tab.js 查看文件

43
         this._onSelect = this._onSelect.bind(this);
43
         this._onSelect = this._onSelect.bind(this);
44
     }
44
     }
45
 
45
 
46
-    _onSelect: () => {};
46
+    _onSelect: () => void;
47
 
47
 
48
     /**
48
     /**
49
      * Selects a tab.
49
      * Selects a tab.

Loading…
取消
儲存