This commit is contained in:
Saúl Ibarra Corretgé 2019-08-15 16:54:31 +02:00 committed by Saúl Ibarra Corretgé
parent 64897b9c91
commit dd23ed09ad
37 changed files with 3093 additions and 1270 deletions

View File

@ -2,22 +2,27 @@
; We fork some components by platform ; We fork some components by platform
.*/*[.]android.js .*/*[.]android.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore unexpected extra "@providesModule" ; Ignore unexpected extra "@providesModule"
.*/node_modules/.*/node_modules/fbjs/.* .*/node_modules/.*/node_modules/fbjs/.*
node_modules/react-native/Libraries/react-native/React.js
; Ignore duplicate module providers ; Ignore duplicate module providers
; For RN Apps installed via npm, "Libraries" folder is inside ; For RN Apps installed via npm, "Libraries" folder is inside
; "node_modules/react-native" but in the source repo it is in the root ; "node_modules/react-native" but in the source repo it is in the root
.*/Libraries/react-native/React.js node_modules/react-native/Libraries/react-native/React.js
; Ignore polyfills ; Ignore polyfills
.*/Libraries/polyfills/.* node_modules/react-native/Libraries/polyfills/.*
; Ignore metro ; These should not be required directly
.*/node_modules/metro/.* ; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/HMRLoadingView.js
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have ; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have
; seen to cause errors and we have chosen not to fix. ; seen to cause errors and we have chosen not to fix.
@ -40,6 +45,18 @@ emoji=true
esproposal.optional_chaining=enable esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable esproposal.nullish_coalescing=enable
; We (i.e. the jitsi-meet project) are using the haste module system on Web as
; well, not only on React Native. Unfortunately, Flow does not support .web.js
; by default. Override Flow's defaults to include .web.js as well. Technically,
; we have .native.js as well so the choice of .web.js may lead to errors.
; Practically though, it is a potential future problem that we do not have at
; the time of this writing.
module.file_ext=.web.js
; Flow's defaults:
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
module.system=haste module.system=haste
module.system.haste.use_name_reducers=true module.system.haste.use_name_reducers=true
# get basename # get basename
@ -52,8 +69,11 @@ module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
module.system.haste.paths.blacklist=.*/__tests__/.* module.system.haste.paths.blacklist=.*/__tests__/.*
module.system.haste.paths.blacklist=.*/__mocks__/.* module.system.haste.paths.blacklist=.*/__mocks__/.*
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.* module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
munge_underscores=true munge_underscores=true
@ -64,22 +84,32 @@ suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState suppress_type=$FlowFixMeState
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
; We (i.e. the jitsi-meet project) are using the haste module system on Web as [lints]
; well, not only on React Native. Unfortunately, Flow does not support .web.js sketchy-null-number=warn
; by default. Override Flow's defaults to include .web.js as well. Technically, sketchy-null-mixed=warn
; we have .native.js as well so the choice of .web.js may lead to errors. sketchy-number=warn
; Practically though, it is a potential future problem that we do not have at untyped-type-import=warn
; the time of this writing. nonstrict-import=warn
module.file_ext=.web.js deprecated-type=warn
; Flow's defaults: unsafe-getters-setters=warn
module.file_ext=.js inexact-spread=warn
module.file_ext=.jsx unnecessary-invariant=warn
module.file_ext=.json signature-verification-failure=warn
deprecated-utility=error
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version] [version]
^0.92.0 ^0.98.0

View File

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

View File

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

View File

@ -21,14 +21,13 @@ import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import androidx.annotation.Nullable;
import org.jitsi.meet.sdk.JitsiMeet; import org.jitsi.meet.sdk.JitsiMeet;
import org.jitsi.meet.sdk.JitsiMeetActivity; import org.jitsi.meet.sdk.JitsiMeetActivity;
import org.jitsi.meet.sdk.JitsiMeetConferenceOptions; import org.jitsi.meet.sdk.JitsiMeetConferenceOptions;
import org.jitsi.meet.sdk.JitsiMeetUserInfo;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.MalformedURLException; import java.net.MalformedURLException;

View File

@ -25,9 +25,10 @@ allprojects {
repositories { repositories {
google() google()
jcenter() jcenter()
// React Native (JS, Obj-C sources, Android binaries) is installed from // React Native (JS, Obj-C sources, Android binaries) is installed from npm.
// npm.
maven { url "$rootDir/../node_modules/react-native/android" } maven { url "$rootDir/../node_modules/react-native/android" }
// Android JSC is installed from npm.
maven { url("$rootDir/../node_modules/jsc-android/dist") }
} }
// Make sure we use the react-native version in node_modules and not the one // Make sure we use the react-native version in node_modules and not the one
@ -74,6 +75,13 @@ allprojects {
def versionQualifierNumber = (int)(((new Date().getTime()/1000) - 1546297200) / 10) def versionQualifierNumber = (int)(((new Date().getTime()/1000) - 1546297200) / 10)
afterEvaluate { project -> afterEvaluate { project ->
if (project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library')) {
project.android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
if (project.name.startsWith('react-native-')) { if (project.name.startsWith('react-native-')) {
def npmManifest = project.file('../package.json') def npmManifest = project.file('../package.json')
def json = new JsonSlurper().parseText(npmManifest.text) def json = new JsonSlurper().parseText(npmManifest.text)
@ -83,17 +91,6 @@ allprojects {
project.version = "${json.version}-jitsi-${versionQualifierNumber}" project.version = "${json.version}-jitsi-${versionQualifierNumber}"
project.android {
compileSdkVersion rootProject.ext.compileSdkVersion
if (rootProject.ext.has('buildToolsVersion')) {
buildToolsVersion rootProject.ext.buildToolsVersion
}
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
}
}
task androidSourcesJar(type: Jar) { task androidSourcesJar(type: Jar) {
classifier = 'sources' classifier = 'sources'
from android.sourceSets.main.java.source from android.sourceSets.main.java.source

View File

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

View File

@ -36,10 +36,12 @@ android {
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}" implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.fragment:fragment:1.0.0'
api 'com.facebook.react:react-native:+' api 'com.facebook.react:react-native:+'
implementation 'org.webkit:android-jsc:+'
implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8' implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8'
@ -47,7 +49,7 @@ dependencies {
implementation 'com.amplitude:android-sdk:2.14.1' implementation 'com.amplitude:android-sdk:2.14.1'
implementation(project(":react-native-google-signin")) { implementation(project(":react-native-google-signin")) {
exclude group: 'com.google.android.gms' exclude group: 'com.google.android.gms'
exclude group: 'com.android.support' exclude group: 'androidx'
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -19,9 +19,10 @@ package org.jitsi.meet.sdk;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import androidx.annotation.NonNull;
import android.support.annotation.Nullable; import androidx.annotation.Nullable;
import android.support.v4.app.Fragment; import androidx.fragment.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;

View File

@ -19,9 +19,9 @@ package org.jitsi.meet.sdk;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableMap;

View File

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

View File

@ -5,13 +5,13 @@ import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.telecom.DisconnectCause; import android.telecom.DisconnectCause;
import android.telecom.PhoneAccount; import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle; import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager; import android.telecom.TelecomManager;
import android.telecom.VideoProfile; import android.telecom.VideoProfile;
import android.util.Log; import android.util.Log;
import androidx.annotation.RequiresApi;
import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactApplicationContext;

View File

@ -18,7 +18,7 @@
package org.jitsi.meet.sdk; package org.jitsi.meet.sdk;
import android.app.Activity; import android.app.Activity;
import android.support.annotation.Nullable; import androidx.annotation.Nullable;
import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactPackage; import com.facebook.react.ReactPackage;
@ -27,8 +27,10 @@ import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.common.LifecycleState; import com.facebook.react.common.LifecycleState;
import com.facebook.react.devsupport.DevInternalSettings; import com.facebook.react.devsupport.DevInternalSettings;
import com.facebook.react.jscexecutor.JSCExecutorFactory;
import com.facebook.react.modules.core.DeviceEventManagerModule; import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.uimanager.ViewManager; import com.facebook.react.uimanager.ViewManager;
import com.facebook.soloader.SoLoader;
import com.oney.WebRTCModule.RTCVideoViewManager; import com.oney.WebRTCModule.RTCVideoViewManager;
import com.oney.WebRTCModule.WebRTCModule; import com.oney.WebRTCModule.WebRTCModule;
@ -38,7 +40,6 @@ import org.webrtc.VideoDecoderFactory;
import org.webrtc.VideoEncoderFactory; import org.webrtc.VideoEncoderFactory;
import org.webrtc.audio.AudioDeviceModule; import org.webrtc.audio.AudioDeviceModule;
import org.webrtc.audio.JavaAudioDeviceModule; import org.webrtc.audio.JavaAudioDeviceModule;
import org.webrtc.voiceengine.WebRtcAudioManager;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
@ -181,6 +182,8 @@ class ReactInstanceManagerHolder {
return; return;
} }
SoLoader.init(activity, /* native exopackage */ false);
List<ReactPackage> packages List<ReactPackage> packages
= new ArrayList<>(Arrays.asList( = new ArrayList<>(Arrays.asList(
new com.BV.LinearGradient.LinearGradientPackage(), new com.BV.LinearGradient.LinearGradientPackage(),
@ -212,12 +215,17 @@ class ReactInstanceManagerHolder {
// Ignore any error, the module is not compiled when LIBRE_BUILD is enabled. // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled.
} }
// Keep on using JSC, the jury is out on Hermes.
JSCExecutorFactory jsFactory
= new JSCExecutorFactory("", "");
reactInstanceManager reactInstanceManager
= ReactInstanceManager.builder() = ReactInstanceManager.builder()
.setApplication(activity.getApplication()) .setApplication(activity.getApplication())
.setCurrentActivity(activity) .setCurrentActivity(activity)
.setBundleAssetName("index.android.bundle") .setBundleAssetName("index.android.bundle")
.setJSMainModulePath("index.android") .setJSMainModulePath("index.android")
.setJavaScriptExecutorFactory(jsFactory)
.addPackages(packages) .addPackages(packages)
.setUseDeveloperSupport(BuildConfig.DEBUG) .setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED) .setInitialLifecycleState(LifecycleState.RESUMED)

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
// flow-typed signature: a9b75804169260d49cda34b56dcfabe1 // flow-typed signature: 96e97db746b98786dbff6de500b4b862
// flow-typed version: e9dac1347c/lodash_v4.x.x/flow_>=v0.63.x // flow-typed version: 5fe02f287a/lodash_v4.x.x/flow_>=v0.63.x <=v0.103.x
declare module "lodash" { declare module "lodash" {
declare type Path = $ReadOnlyArray<string | number> | string | number; declare type Path = $ReadOnlyArray<string | number> | string | number;
@ -149,6 +149,11 @@ declare module "lodash" {
separator?: RegExp | string separator?: RegExp | string
}; };
declare type Cancelable = {
cancel: () => void,
flush: () => mixed
};
declare type DebounceOptions = { declare type DebounceOptions = {
leading?: boolean, leading?: boolean,
maxWait?: number, maxWait?: number,
@ -265,14 +270,14 @@ declare module "lodash" {
): -1; ): -1;
// alias of _.head // alias of _.head
first<T>(array: ?$ReadOnlyArray<T>): T; first<T>(array: ?$ReadOnlyArray<T>): T;
flatten<T, X>(array?: ?Array<Array<T> | X>): Array<T | X>; flatten<T, X>(array?: ?$ReadOnlyArray<$ReadOnlyArray<T> | X>): Array<T | X>;
flattenDeep<T>(array?: ?(any[])): Array<T>; flattenDeep<T>(array?: ?(any[])): Array<T>;
flattenDepth(array?: ?(any[]), depth?: ?number): any[]; flattenDepth(array?: ?(any[]), depth?: ?number): any[];
fromPairs<A, B>(pairs?: ?Array<[A, B]>): { [key: A]: B }; fromPairs<A, B>(pairs?: ?Array<[A, B]>): { [key: A]: B };
head<T>(array: ?$ReadOnlyArray<T>): T; head<T>(array: ?$ReadOnlyArray<T>): T;
indexOf<T>(array: Array<T>, value: T, fromIndex?: number): number; indexOf<T>(array: $ReadOnlyArray<T>, value: T, fromIndex?: number): number;
indexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1; indexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
initial<T>(array: ?Array<T>): Array<T>; initial<T>(array: ?$ReadOnlyArray<T>): Array<T>;
intersection<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>; intersection<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
//Workaround until (...parameter: T, parameter2: U) works //Workaround until (...parameter: T, parameter2: U) works
intersectionBy<T>( intersectionBy<T>(
@ -320,10 +325,10 @@ declare module "lodash" {
a4?: ?$ReadOnlyArray<T>, a4?: ?$ReadOnlyArray<T>,
comparator?: ?Comparator<T> comparator?: ?Comparator<T>
): Array<T>; ): Array<T>;
join<T>(array: Array<T>, separator?: ?string): string; join<T>(array: $ReadOnlyArray<T>, separator?: ?string): string;
join<T>(array: void | null, separator?: ?string): ""; join<T>(array: void | null, separator?: ?string): "";
last<T>(array: ?$ReadOnlyArray<T>): T; last<T>(array: ?$ReadOnlyArray<T>): T;
lastIndexOf<T>(array: Array<T>, value?: ?T, fromIndex?: ?number): number; lastIndexOf<T>(array: $ReadOnlyArray<T>, value?: ?T, fromIndex?: ?number): number;
lastIndexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1; lastIndexOf<T>(array: void | null, value?: ?T, fromIndex?: ?number): -1;
nth<T>(array: T[], n?: ?number): T; nth<T>(array: T[], n?: ?number): T;
nth(array: void | null, n?: ?number): void; nth(array: void | null, n?: ?number): void;
@ -357,10 +362,10 @@ declare module "lodash" {
start?: ?number, start?: ?number,
end?: ?number end?: ?number
): Array<T>; ): Array<T>;
sortedIndex<T>(array: Array<T>, value: T): number; sortedIndex<T>(array: $ReadOnlyArray<T>, value: T): number;
sortedIndex<T>(array: void | null, value: ?T): 0; sortedIndex<T>(array: void | null, value: ?T): 0;
sortedIndexBy<T>( sortedIndexBy<T>(
array: Array<T>, array: $ReadOnlyArray<T>,
value?: ?T, value?: ?T,
iteratee?: ?ValueOnlyIteratee<T> iteratee?: ?ValueOnlyIteratee<T>
): number; ): number;
@ -369,12 +374,12 @@ declare module "lodash" {
value?: ?T, value?: ?T,
iteratee?: ?ValueOnlyIteratee<T> iteratee?: ?ValueOnlyIteratee<T>
): 0; ): 0;
sortedIndexOf<T>(array: Array<T>, value: T): number; sortedIndexOf<T>(array: $ReadOnlyArray<T>, value: T): number;
sortedIndexOf<T>(array: void | null, value?: ?T): -1; sortedIndexOf<T>(array: void | null, value?: ?T): -1;
sortedLastIndex<T>(array: Array<T>, value: T): number; sortedLastIndex<T>(array: $ReadOnlyArray<T>, value: T): number;
sortedLastIndex<T>(array: void | null, value?: ?T): 0; sortedLastIndex<T>(array: void | null, value?: ?T): 0;
sortedLastIndexBy<T>( sortedLastIndexBy<T>(
array: Array<T>, array: $ReadOnlyArray<T>,
value: T, value: T,
iteratee?: ValueOnlyIteratee<T> iteratee?: ValueOnlyIteratee<T>
): number; ): number;
@ -383,16 +388,16 @@ declare module "lodash" {
value?: ?T, value?: ?T,
iteratee?: ?ValueOnlyIteratee<T> iteratee?: ?ValueOnlyIteratee<T>
): 0; ): 0;
sortedLastIndexOf<T>(array: Array<T>, value: T): number; sortedLastIndexOf<T>(array: $ReadOnlyArray<T>, value: T): number;
sortedLastIndexOf<T>(array: void | null, value?: ?T): -1; sortedLastIndexOf<T>(array: void | null, value?: ?T): -1;
sortedUniq<T>(array?: ?Array<T>): Array<T>; sortedUniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
sortedUniqBy<T>( sortedUniqBy<T>(
array?: ?Array<T>, array?: ?$ReadOnlyArray<T>,
iteratee?: ?ValueOnlyIteratee<T> iteratee?: ?ValueOnlyIteratee<T>
): Array<T>; ): Array<T>;
tail<T>(array?: ?Array<T>): Array<T>; tail<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
take<T>(array?: ?Array<T>, n?: ?number): Array<T>; take<T>(array?: ?$ReadOnlyArray<T>, n?: ?number): Array<T>;
takeRight<T>(array?: ?Array<T>, n?: ?number): Array<T>; takeRight<T>(array?: ?$ReadOnlyArray<T>, n?: ?number): Array<T>;
takeRightWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>; takeRightWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
takeWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>; takeWhile<T>(array?: ?Array<T>, predicate?: ?Predicate<T>): Array<T>;
union<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>; union<T>(...arrays?: Array<$ReadOnlyArray<T>>): Array<T>;
@ -442,59 +447,59 @@ declare module "lodash" {
uniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>; uniq<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
uniqBy<T>(array?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>; uniqBy<T>(array?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
uniqWith<T>(array?: ?$ReadOnlyArray<T>, comparator?: ?Comparator<T>): Array<T>; uniqWith<T>(array?: ?$ReadOnlyArray<T>, comparator?: ?Comparator<T>): Array<T>;
unzip<T>(array?: ?Array<T>): Array<T>; unzip<T>(array?: ?$ReadOnlyArray<T>): Array<T>;
unzipWith<T>(array: ?Array<T>, iteratee?: ?Iteratee<T>): Array<T>; unzipWith<T>(array: ?Array<T>, iteratee?: ?Iteratee<T>): Array<T>;
without<T>(array?: ?$ReadOnlyArray<T>, ...values?: Array<?T>): Array<T>; without<T>(array?: ?$ReadOnlyArray<T>, ...values?: Array<?T>): Array<T>;
xor<T>(...array: Array<Array<T>>): Array<T>; xor<T>(...array: Array<Array<T>>): Array<T>;
//Workaround until (...parameter: T, parameter2: U) works //Workaround until (...parameter: T, parameter2: U) works
xorBy<T>(a1?: ?Array<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>; xorBy<T>(a1?: ?$ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Array<T>;
xorBy<T>( xorBy<T>(
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T>, a2: $ReadOnlyArray<T>,
iteratee?: ValueOnlyIteratee<T> iteratee?: ValueOnlyIteratee<T>
): Array<T>; ): Array<T>;
xorBy<T>( xorBy<T>(
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T>, a2: $ReadOnlyArray<T>,
a3: Array<T>, a3: $ReadOnlyArray<T>,
iteratee?: ValueOnlyIteratee<T> iteratee?: ValueOnlyIteratee<T>
): Array<T>; ): Array<T>;
xorBy<T>( xorBy<T>(
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T>, a2: $ReadOnlyArray<T>,
a3: Array<T>, a3: $ReadOnlyArray<T>,
a4: Array<T>, a4: $ReadOnlyArray<T>,
iteratee?: ValueOnlyIteratee<T> iteratee?: ValueOnlyIteratee<T>
): Array<T>; ): Array<T>;
//Workaround until (...parameter: T, parameter2: U) works //Workaround until (...parameter: T, parameter2: U) works
xorWith<T>(a1?: ?Array<T>, comparator?: ?Comparator<T>): Array<T>; xorWith<T>(a1?: ?$ReadOnlyArray<T>, comparator?: ?Comparator<T>): Array<T>;
xorWith<T>( xorWith<T>(
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T>, a2: $ReadOnlyArray<T>,
comparator?: Comparator<T> comparator?: Comparator<T>
): Array<T>; ): Array<T>;
xorWith<T>( xorWith<T>(
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T>, a2: $ReadOnlyArray<T>,
a3: Array<T>, a3: $ReadOnlyArray<T>,
comparator?: Comparator<T> comparator?: Comparator<T>
): Array<T>; ): Array<T>;
xorWith<T>( xorWith<T>(
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T>, a2: $ReadOnlyArray<T>,
a3: Array<T>, a3: $ReadOnlyArray<T>,
a4: Array<T>, a4: $ReadOnlyArray<T>,
comparator?: Comparator<T> comparator?: Comparator<T>
): Array<T>; ): Array<T>;
zip<A, B>(a1?: ?(A[]), a2?: ?(B[])): Array<[A, B]>; zip<A, B>(a1?: ?($ReadOnlyArray<A>), a2?: ?($ReadOnlyArray<B>)): Array<[A, B]>;
zip<A, B, C>(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; zip<A, B, C>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>, a3: $ReadOnlyArray<C>): Array<[A, B, C]>;
zip<A, B, C, D>(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; zip<A, B, C, D>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>, a3: $ReadOnlyArray<C>, a4: $ReadOnlyArray<D>): Array<[A, B, C, D]>;
zip<A, B, C, D, E>( zip<A, B, C, D, E>(
a1: A[], a1: $ReadOnlyArray<A>,
a2: B[], a2: $ReadOnlyArray<B>,
a3: C[], a3: $ReadOnlyArray<C>,
a4: D[], a4: $ReadOnlyArray<D>,
a5: E[] a5: $ReadOnlyArray<E>
): Array<[A, B, C, D, E]>; ): Array<[A, B, C, D, E]>;
zipObject<K, V>(props: Array<K>, values?: ?Array<V>): { [key: K]: V }; zipObject<K, V>(props: Array<K>, values?: ?Array<V>): { [key: K]: V };
@ -502,44 +507,44 @@ declare module "lodash" {
zipObjectDeep(props: any[], values?: ?any): Object; zipObjectDeep(props: any[], values?: ?any): Object;
zipObjectDeep(props: void | null, values?: ?any): {}; zipObjectDeep(props: void | null, values?: ?any): {};
zipWith<A>(a1?: ?Array<A>): Array<[A]>; zipWith<A>(a1?: ?$ReadOnlyArray<A>): Array<[A]>;
zipWith<T, A>(a1: Array<A>, iteratee: (A) => T): Array<T>; zipWith<T, A>(a1: $ReadOnlyArray<A>, iteratee: (A) => T): Array<T>;
zipWith<A, B>(a1: Array<A>, a2: Array<B>): Array<[A, B]>; zipWith<A, B>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>): Array<[A, B]>;
zipWith<T, A, B>( zipWith<T, A, B>(
a1: Array<A>, a1: $ReadOnlyArray<A>,
a2: Array<B>, a2: $ReadOnlyArray<B>,
iteratee: (A, B) => T iteratee: (A, B) => T
): Array<T>; ): $ReadOnlyArray<T>;
zipWith<A, B, C>( zipWith<A, B, C>(
a1: Array<A>, a1: $ReadOnlyArray<A>,
a2: Array<B>, a2: $ReadOnlyArray<B>,
a3: Array<C> a3: $ReadOnlyArray<C>
): Array<[A, B, C]>; ): Array<[A, B, C]>;
zipWith<T, A, B, C>( zipWith<T, A, B, C>(
a1: Array<A>, a1: $ReadOnlyArray<A>,
a2: Array<B>, a2: $ReadOnlyArray<B>,
a3: Array<C>, a3: $ReadOnlyArray<C>,
iteratee: (A, B, C) => T iteratee: (A, B, C) => T
): Array<T>; ): Array<T>;
zipWith<A, B, C, D>( zipWith<A, B, C, D>(
a1: Array<A>, a1: $ReadOnlyArray<A>,
a2: Array<B>, a2: $ReadOnlyArray<B>,
a3: Array<C>, a3: $ReadOnlyArray<C>,
a4: Array<D> a4: $ReadOnlyArray<D>
): Array<[A, B, C, D]>; ): Array<[A, B, C, D]>;
zipWith<T, A, B, C, D>( zipWith<T, A, B, C, D>(
a1: Array<A>, a1: $ReadOnlyArray<A>,
a2: Array<B>, a2: $ReadOnlyArray<B>,
a3: Array<C>, a3: $ReadOnlyArray<C>,
a4: Array<D>, a4: $ReadOnlyArray<D>,
iteratee: (A, B, C, D) => T iteratee: (A, B, C, D) => T
): Array<T>; ): Array<T>;
// Collection // Collection
countBy<T>(array: Array<T>, iteratee?: ?ValueOnlyIteratee<T>): Object; countBy<T>(array: $ReadOnlyArray<T>, iteratee?: ?ValueOnlyIteratee<T>): Object;
countBy<T>(array: void | null, iteratee?: ?ValueOnlyIteratee<T>): {}; countBy<T>(array: void | null, iteratee?: ?ValueOnlyIteratee<T>): {};
countBy<T: Object>(object: T, iteratee?: ?ValueOnlyIteratee<T>): Object; countBy<T: Object>(object: T, iteratee?: ?ValueOnlyIteratee<T>): Object;
// alias of _.forEach // alias of _.forEach
@ -675,7 +680,7 @@ declare module "lodash" {
iteratees?: ?$ReadOnlyArray<Iteratee<T>> | ?string, iteratees?: ?$ReadOnlyArray<Iteratee<T>> | ?string,
orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string orders?: ?$ReadOnlyArray<"asc" | "desc"> | ?string
): Array<T>; ): Array<T>;
orderBy<V, T: Object>( orderBy<V, T: {}>(
object: T, object: T,
iteratees?: $ReadOnlyArray<OIteratee<*>> | string, iteratees?: $ReadOnlyArray<OIteratee<*>> | string,
orders?: $ReadOnlyArray<"asc" | "desc"> | string orders?: $ReadOnlyArray<"asc" | "desc"> | string
@ -743,11 +748,11 @@ declare module "lodash" {
object?: ?T, object?: ?T,
predicate?: ?OPredicate<A, T> predicate?: ?OPredicate<A, T>
): Array<V>; ): Array<V>;
sample<T>(array: ?Array<T>): T; sample<T>(array: ?$ReadOnlyArray<T>): T;
sample<V, T: Object>(object: T): V; sample<V, T: Object>(object: T): V;
sampleSize<T>(array?: ?Array<T>, n?: ?number): Array<T>; sampleSize<T>(array?: ?$ReadOnlyArray<T>, n?: ?number): Array<T>;
sampleSize<V, T: Object>(object: T, n?: number): Array<V>; sampleSize<V, T: Object>(object: T, n?: number): Array<V>;
shuffle<T>(array: ?Array<T>): Array<T>; shuffle<T>(array: ?$ReadOnlyArray<T>): Array<T>;
shuffle<V, T: Object>(object: T): Array<V>; shuffle<V, T: Object>(object: T): Array<V>;
size(collection: $ReadOnlyArray<any> | Object | string): number; size(collection: $ReadOnlyArray<any> | Object | string): number;
some<T>(array: void | null, predicate?: ?Predicate<T>): false; some<T>(array: void | null, predicate?: ?Predicate<T>): false;
@ -785,7 +790,11 @@ declare module "lodash" {
curry: Curry; curry: Curry;
curry(func: Function, arity?: number): Function; curry(func: Function, arity?: number): Function;
curryRight(func: Function, arity?: number): Function; curryRight(func: Function, arity?: number): Function;
debounce<F: (...any[]) => any>(func: F, wait?: number, options?: DebounceOptions): F; debounce<F: (...any[]) => any>(
func: F,
wait?: number,
options?: DebounceOptions
): F & Cancelable;
defer(func: (...any[]) => any, ...args?: Array<any>): TimeoutID; defer(func: (...any[]) => any, ...args?: Array<any>): TimeoutID;
delay(func: Function, wait: number, ...args?: Array<any>): TimeoutID; delay(func: Function, wait: number, ...args?: Array<any>): TimeoutID;
flip<R>(func: (...any[]) => R): (...any[]) => R; flip<R>(func: (...any[]) => R): (...any[]) => R;
@ -805,7 +814,7 @@ declare module "lodash" {
func: F, func: F,
wait?: number, wait?: number,
options?: ThrottleOptions options?: ThrottleOptions
): F; ): F & Cancelable;
unary<F: (...any[]) => any>(func: F): F; unary<F: (...any[]) => any>(func: F): F;
wrap(value?: any, wrapper?: ?Function): Function; wrap(value?: any, wrapper?: ?Function): Function;
@ -830,13 +839,13 @@ declare module "lodash" {
gte(value: any, other: any): boolean; gte(value: any, other: any): boolean;
isArguments(value: void | null): false; isArguments(value: void | null): false;
isArguments(value: any): boolean; isArguments(value: any): boolean;
isArray(value: Array<any>): true; isArray(value: $ReadOnlyArray<any>): true;
isArray(value: any): false; isArray(value: any): false;
isArrayBuffer(value: ArrayBuffer): true; isArrayBuffer(value: ArrayBuffer): true;
isArrayBuffer(value: any): false; isArrayBuffer(value: any): false;
isArrayLike(value: Array<any> | string | { length: number }): true; isArrayLike(value: $ReadOnlyArray<any> | string | { length: number }): true;
isArrayLike(value: any): false; isArrayLike(value: any): false;
isArrayLikeObject(value: { length: number } | Array<any>): true; isArrayLikeObject(value: { length: number } | $ReadOnlyArray<any>): true;
isArrayLikeObject(value: any): false; isArrayLikeObject(value: any): false;
isBoolean(value: boolean): true; isBoolean(value: boolean): true;
isBoolean(value: any): false; isBoolean(value: any): false;
@ -939,16 +948,16 @@ declare module "lodash" {
ceil(number: number, precision?: number): number; ceil(number: number, precision?: number): number;
divide(dividend: number, divisor: number): number; divide(dividend: number, divisor: number): number;
floor(number: number, precision?: number): number; floor(number: number, precision?: number): number;
max<T>(array: ?Array<T>): T; max<T>(array: ?$ReadOnlyArray<T>): T;
maxBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T; maxBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
mean(array: Array<*>): number; mean(array: $ReadOnlyArray<*>): number;
meanBy<T>(array: Array<T>, iteratee?: Iteratee<T>): number; meanBy<T>(array: Array<T>, iteratee?: Iteratee<T>): number;
min<T>(array: ?Array<T>): T; min<T>(array: ?$ReadOnlyArray<T>): T;
minBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T; minBy<T>(array: ?$ReadOnlyArray<T>, iteratee?: Iteratee<T>): T;
multiply(multiplier: number, multiplicand: number): number; multiply(multiplier: number, multiplicand: number): number;
round(number: number, precision?: number): number; round(number: number, precision?: number): number;
subtract(minuend: number, subtrahend: number): number; subtract(minuend: number, subtrahend: number): number;
sum(array: Array<*>): number; sum(array: $ReadOnlyArray<*>): number;
sumBy<T>(array: $ReadOnlyArray<T>, iteratee?: Iteratee<T>): number; sumBy<T>(array: $ReadOnlyArray<T>, iteratee?: Iteratee<T>): number;
// number // number
@ -1066,8 +1075,8 @@ declare module "lodash" {
source: A | B | C | D source: A | B | C | D
) => any | void ) => any | void
): Object; ): Object;
at(object?: ?Object, ...paths: Array<string>): Array<any>; at(object?: ?Object, ...paths: $ReadOnlyArray<string>): Array<any>;
at(object?: ?Object, paths: Array<string>): Array<any>; at(object?: ?Object, paths: $ReadOnlyArray<string>): Array<any>;
create(prototype: void | null, properties: void | null): {}; create(prototype: void | null, properties: void | null): {};
create<T>(prototype: T, properties: Object): T; create<T>(prototype: T, properties: Object): T;
create(prototype: any, properties: void | null): {}; create(prototype: any, properties: void | null): {};
@ -1237,15 +1246,15 @@ declare module "lodash" {
source: A | B | C | D source: A | B | C | D
) => any | void ) => any | void
): Object; ): Object;
omit(object?: ?Object, ...props: Array<string>): Object; omit(object?: ?Object, ...props: $ReadOnlyArray<string>): Object;
omit(object?: ?Object, props: Array<string>): Object; omit(object?: ?Object, props: $ReadOnlyArray<string>): Object;
omitBy<A, T: { [id: any]: A } | { [id: number]: A }>( omitBy<A, T: { [id: any]: A } | { [id: number]: A }>(
object: T, object: T,
predicate?: ?OPredicate<A, T> predicate?: ?OPredicate<A, T>
): Object; ): Object;
omitBy<A, T>(object: void | null, predicate?: ?OPredicate<A, T>): {}; omitBy<A, T>(object: void | null, predicate?: ?OPredicate<A, T>): {};
pick(object?: ?Object, ...props: Array<string>): Object; pick(object?: ?Object, ...props: $ReadOnlyArray<string>): Object;
pick(object?: ?Object, props: Array<string>): Object; pick(object?: ?Object, props: $ReadOnlyArray<string>): Object;
pickBy<A, T: { [id: any]: A } | { [id: number]: A }>( pickBy<A, T: { [id: any]: A } | { [id: number]: A }>(
object: T, object: T,
predicate?: ?OPredicate<A, T> predicate?: ?OPredicate<A, T>
@ -1758,65 +1767,65 @@ declare module "lodash/fp" {
): number; ): number;
// alias of _.head // alias of _.head
first<T>(array: $ReadOnlyArray<T>): T; first<T>(array: $ReadOnlyArray<T>): T;
flatten<T, X>(array: Array<Array<T> | X>): Array<T | X>; flatten<T, X>(array: $ReadOnlyArray<$ReadOnlyArray<T> | X>): Array<T | X>;
unnest<T, X>(array: Array<Array<T> | X>): Array<T | X>; unnest<T, X>(array: Array<Array<T> | X>): Array<T | X>;
flattenDeep<T>(array: any[]): Array<T>; flattenDeep<T>(array: any[]): Array<T>;
flattenDepth(depth: number): (array: any[]) => any[]; flattenDepth(depth: number): (array: any[]) => any[];
flattenDepth(depth: number, array: any[]): any[]; flattenDepth(depth: number, array: any[]): any[];
fromPairs<A, B>(pairs: Array<[A, B]>): { [key: A]: B }; fromPairs<A, B>(pairs: Array<[A, B]>): { [key: A]: B };
head<T>(array: $ReadOnlyArray<T>): T; head<T>(array: $ReadOnlyArray<T>): T;
indexOf<T>(value: T): (array: Array<T>) => number; indexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
indexOf<T>(value: T, array: Array<T>): number; indexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
indexOfFrom<T>( indexOfFrom<T>(
value: T value: T
): ((fromIndex: number) => (array: Array<T>) => number) & ): ((fromIndex: number) => (array: $ReadOnlyArray<T>) => number) &
((fromIndex: number, array: Array<T>) => number); ((fromIndex: number, array: $ReadOnlyArray<T>) => number);
indexOfFrom<T>(value: T, fromIndex: number): (array: Array<T>) => number; indexOfFrom<T>(value: T, fromIndex: number): (array: $ReadOnlyArray<T>) => number;
indexOfFrom<T>(value: T, fromIndex: number, array: Array<T>): number; indexOfFrom<T>(value: T, fromIndex: number, array: $ReadOnlyArray<T>): number;
initial<T>(array: Array<T>): Array<T>; initial<T>(array: $ReadOnlyArray<T>): Array<T>;
init<T>(array: Array<T>): Array<T>; init<T>(array: Array<T>): Array<T>;
intersection<T>(a1: Array<T>): (a2: Array<T>) => Array<T>; intersection<T>(a1: $ReadOnlyArray<T>): (a2: $ReadOnlyArray<T>) => Array<T>;
intersection<T>(a1: Array<T>, a2: Array<T>): Array<T>; intersection<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
intersectionBy<T>( intersectionBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
intersectionBy<T>( intersectionBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: Array<T>) => Array<T>;
intersectionBy<T>( intersectionBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
intersectionWith<T>( intersectionWith<T>(
comparator: Comparator<T> comparator: Comparator<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
intersectionWith<T>( intersectionWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: $ReadOnlyArray<T>) => Array<T>;
intersectionWith<T>( intersectionWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
join<T>(separator: string): (array: Array<T>) => string; join<T>(separator: string): (array: $ReadOnlyArray<T>) => string;
join<T>(separator: string, array: Array<T>): string; join<T>(separator: string, array: $ReadOnlyArray<T>): string;
last<T>(array: Array<T>): T; last<T>(array: $ReadOnlyArray<T>): T;
lastIndexOf<T>(value: T): (array: Array<T>) => number; lastIndexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
lastIndexOf<T>(value: T, array: Array<T>): number; lastIndexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
lastIndexOfFrom<T>( lastIndexOfFrom<T>(
value: T value: T
): ((fromIndex: number) => (array: Array<T>) => number) & ): ((fromIndex: number) => (array: $ReadOnlyArray<T>) => number) &
((fromIndex: number, array: Array<T>) => number); ((fromIndex: number, array: $ReadOnlyArray<T>) => number);
lastIndexOfFrom<T>( lastIndexOfFrom<T>(
value: T, value: T,
fromIndex: number fromIndex: number
): (array: Array<T>) => number; ): (array: $ReadOnlyArray<T>) => number;
lastIndexOfFrom<T>(value: T, fromIndex: number, array: Array<T>): number; lastIndexOfFrom<T>(value: T, fromIndex: number, array: $ReadOnlyArray<T>): number;
nth<T>(n: number): (array: T[]) => T; nth<T>(n: number): (array: T[]) => T;
nth<T>(n: number, array: T[]): T; nth<T>(n: number, array: T[]): T;
pull<T>(value: T): (array: Array<T>) => Array<T>; pull<T>(value: T): (array: Array<T>) => Array<T>;
@ -1849,154 +1858,154 @@ declare module "lodash/fp" {
reverse<T>(array: Array<T>): Array<T>; reverse<T>(array: Array<T>): Array<T>;
slice<T>( slice<T>(
start: number start: number
): ((end: number) => (array: Array<T>) => Array<T>) & ): ((end: number) => (array: $ReadOnlyArray<T>) => Array<T>) &
((end: number, array: Array<T>) => Array<T>); ((end: number, array: $ReadOnlyArray<T>) => Array<T>);
slice<T>(start: number, end: number): (array: Array<T>) => Array<T>; slice<T>(start: number, end: number): (array: $ReadOnlyArray<T>) => Array<T>;
slice<T>(start: number, end: number, array: Array<T>): Array<T>; slice<T>(start: number, end: number, array: $ReadOnlyArray<T>): Array<T>;
sortedIndex<T>(value: T): (array: Array<T>) => number; sortedIndex<T>(value: T): (array: $ReadOnlyArray<T>) => number;
sortedIndex<T>(value: T, array: Array<T>): number; sortedIndex<T>(value: T, array: $ReadOnlyArray<T>): number;
sortedIndexBy<T>( sortedIndexBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): ((value: T) => (array: Array<T>) => number) & ): ((value: T) => (array: $ReadOnlyArray<T>) => number) &
((value: T, array: Array<T>) => number); ((value: T, array: Array<T>) => number);
sortedIndexBy<T>( sortedIndexBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
value: T value: T
): (array: Array<T>) => number; ): (array: $ReadOnlyArray<T>) => number;
sortedIndexBy<T>( sortedIndexBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
value: T, value: T,
array: Array<T> array: $ReadOnlyArray<T>
): number; ): number;
sortedIndexOf<T>(value: T): (array: Array<T>) => number; sortedIndexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
sortedIndexOf<T>(value: T, array: Array<T>): number; sortedIndexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
sortedLastIndex<T>(value: T): (array: Array<T>) => number; sortedLastIndex<T>(value: T): (array: $ReadOnlyArray<T>) => number;
sortedLastIndex<T>(value: T, array: Array<T>): number; sortedLastIndex<T>(value: T, array: $ReadOnlyArray<T>): number;
sortedLastIndexBy<T>( sortedLastIndexBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): ((value: T) => (array: Array<T>) => number) & ): ((value: T) => (array: $ReadOnlyArray<T>) => number) &
((value: T, array: Array<T>) => number); ((value: T, array: Array<T>) => number);
sortedLastIndexBy<T>( sortedLastIndexBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
value: T value: T
): (array: Array<T>) => number; ): (array: $ReadOnlyArray<T>) => number;
sortedLastIndexBy<T>( sortedLastIndexBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
value: T, value: T,
array: Array<T> array: $ReadOnlyArray<T>
): number; ): number;
sortedLastIndexOf<T>(value: T): (array: Array<T>) => number; sortedLastIndexOf<T>(value: T): (array: $ReadOnlyArray<T>) => number;
sortedLastIndexOf<T>(value: T, array: Array<T>): number; sortedLastIndexOf<T>(value: T, array: $ReadOnlyArray<T>): number;
sortedUniq<T>(array: Array<T>): Array<T>; sortedUniq<T>(array: $ReadOnlyArray<T>): Array<T>;
sortedUniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: Array<T>): Array<T>; sortedUniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: $ReadOnlyArray<T>): Array<T>;
tail<T>(array: Array<T>): Array<T>; tail<T>(array: $ReadOnlyArray<T>): Array<T>;
take<T>(n: number): (array: Array<T>) => Array<T>; take<T>(n: number): (array: $ReadOnlyArray<T>) => Array<T>;
take<T>(n: number, array: Array<T>): Array<T>; take<T>(n: number, array: $ReadOnlyArray<T>): Array<T>;
takeRight<T>(n: number): (array: Array<T>) => Array<T>; takeRight<T>(n: number): (array: $ReadOnlyArray<T>) => Array<T>;
takeRight<T>(n: number, array: Array<T>): Array<T>; takeRight<T>(n: number, array: $ReadOnlyArray<T>): Array<T>;
takeLast<T>(n: number): (array: Array<T>) => Array<T>; takeLast<T>(n: number): (array: $ReadOnlyArray<T>) => Array<T>;
takeLast<T>(n: number, array: Array<T>): Array<T>; takeLast<T>(n: number, array: $ReadOnlyArray<T>): Array<T>;
takeRightWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>; takeRightWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
takeRightWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>; takeRightWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
takeLastWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>; takeLastWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
takeLastWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>; takeLastWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
takeWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>; takeWhile<T>(predicate: Predicate<T>): (array: Array<T>) => Array<T>;
takeWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>; takeWhile<T>(predicate: Predicate<T>, array: Array<T>): Array<T>;
union<T>(a1: Array<T>): (a2: Array<T>) => Array<T>; union<T>(a1: $ReadOnlyArray<T>): (a2: Array<T>) => Array<T>;
union<T>(a1: Array<T>, a2: Array<T>): Array<T>; union<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
unionBy<T>( unionBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
unionBy<T>( unionBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: $ReadOnlyArray<T>) => Array<T>;
unionBy<T>( unionBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
unionWith<T>( unionWith<T>(
comparator: Comparator<T> comparator: Comparator<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
unionWith<T>( unionWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: $ReadOnlyArray<T>) => Array<T>;
unionWith<T>( unionWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
uniq<T>(array: Array<T>): Array<T>; uniq<T>(array: $ReadOnlyArray<T>): Array<T>;
uniqBy<T>(iteratee: ValueOnlyIteratee<T>): (array: Array<T>) => Array<T>; uniqBy<T>(iteratee: ValueOnlyIteratee<T>): (array: $ReadOnlyArray<T>) => Array<T>;
uniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: Array<T>): Array<T>; uniqBy<T>(iteratee: ValueOnlyIteratee<T>, array: $ReadOnlyArray<T>): Array<T>;
uniqWith<T>(comparator: Comparator<T>): (array: Array<T>) => Array<T>; uniqWith<T>(comparator: Comparator<T>): (array: $ReadOnlyArray<T>) => Array<T>;
uniqWith<T>(comparator: Comparator<T>, array: Array<T>): Array<T>; uniqWith<T>(comparator: Comparator<T>, array: $ReadOnlyArray<T>): Array<T>;
unzip<T>(array: Array<T>): Array<T>; unzip<T>(array: $ReadOnlyArray<T>): Array<T>;
unzipWith<T>(iteratee: Iteratee<T>): (array: Array<T>) => Array<T>; unzipWith<T>(iteratee: Iteratee<T>): (array: Array<T>) => Array<T>;
unzipWith<T>(iteratee: Iteratee<T>, array: Array<T>): Array<T>; unzipWith<T>(iteratee: Iteratee<T>, array: Array<T>): Array<T>;
without<T>(values: Array<T>): (array: Array<T>) => Array<T>; without<T>(values: $ReadOnlyArray<T>): (array: $ReadOnlyArray<T>) => Array<T>;
without<T>(values: Array<T>, array: Array<T>): Array<T>; without<T>(values: $ReadOnlyArray<T>, array: $ReadOnlyArray<T>): Array<T>;
xor<T>(a1: Array<T>): (a2: Array<T>) => Array<T>; xor<T>(a1: $ReadOnlyArray<T>): (a2: $ReadOnlyArray<T>) => Array<T>;
xor<T>(a1: Array<T>, a2: Array<T>): Array<T>; xor<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
symmetricDifference<T>(a1: Array<T>): (a2: Array<T>) => Array<T>; symmetricDifference<T>(a1: $ReadOnlyArray<T>): (a2: $ReadOnlyArray<T>) => Array<T>;
symmetricDifference<T>(a1: Array<T>, a2: Array<T>): Array<T>; symmetricDifference<T>(a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
xorBy<T>( xorBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
xorBy<T>( xorBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: $ReadOnlyArray<T>) => Array<T>;
xorBy<T>( xorBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
symmetricDifferenceBy<T>( symmetricDifferenceBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
symmetricDifferenceBy<T>( symmetricDifferenceBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: Array<T>) => Array<T>;
symmetricDifferenceBy<T>( symmetricDifferenceBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
xorWith<T>( xorWith<T>(
comparator: Comparator<T> comparator: Comparator<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
xorWith<T>( xorWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: $ReadOnlyArray<T>) => Array<T>;
xorWith<T>(comparator: Comparator<T>, a1: Array<T>, a2: Array<T>): Array<T>; xorWith<T>(comparator: Comparator<T>, a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>): Array<T>;
symmetricDifferenceWith<T>( symmetricDifferenceWith<T>(
comparator: Comparator<T> comparator: Comparator<T>
): ((a1: Array<T>) => (a2: Array<T>) => Array<T>) & ): ((a1: $ReadOnlyArray<T>) => (a2: $ReadOnlyArray<T>) => Array<T>) &
((a1: Array<T>, a2: Array<T>) => Array<T>); ((a1: $ReadOnlyArray<T>, a2: $ReadOnlyArray<T>) => Array<T>);
symmetricDifferenceWith<T>( symmetricDifferenceWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T> a1: $ReadOnlyArray<T>
): (a2: Array<T>) => Array<T>; ): (a2: $ReadOnlyArray<T>) => Array<T>;
symmetricDifferenceWith<T>( symmetricDifferenceWith<T>(
comparator: Comparator<T>, comparator: Comparator<T>,
a1: Array<T>, a1: $ReadOnlyArray<T>,
a2: Array<T> a2: $ReadOnlyArray<T>
): Array<T>; ): Array<T>;
zip<A, B>(a1: A[]): (a2: B[]) => Array<[A, B]>; zip<A, B>(a1: $ReadOnlyArray<A>): (a2: $ReadOnlyArray<B>) => Array<[A, B]>;
zip<A, B>(a1: A[], a2: B[]): Array<[A, B]>; zip<A, B>(a1: $ReadOnlyArray<A>, a2: $ReadOnlyArray<B>): Array<[A, B]>;
zipAll(arrays: Array<Array<any>>): Array<any>; zipAll(arrays: $ReadOnlyArray<$ReadOnlyArray<any>>): Array<any>;
zipObject<K, V>(props?: Array<K>): (values?: Array<V>) => { [key: K]: V }; zipObject<K, V>(props?: $ReadOnlyArray<K>): (values?: $ReadOnlyArray<V>) => { [key: K]: V };
zipObject<K, V>(props?: Array<K>, values?: Array<V>): { [key: K]: V }; zipObject<K, V>(props?: $ReadOnlyArray<K>, values?: $ReadOnlyArray<V>): { [key: K]: V };
zipObj(props: Array<any>): (values: Array<any>) => Object; zipObj(props: Array<any>): (values: Array<any>) => Object;
zipObj(props: Array<any>, values: Array<any>): Object; zipObj(props: Array<any>, values: Array<any>): Object;
zipObjectDeep(props: any[]): (values: any) => Object; zipObjectDeep(props: any[]): (values: any) => Object;
@ -2017,10 +2026,10 @@ declare module "lodash/fp" {
// Collection // Collection
countBy<T>( countBy<T>(
iteratee: ValueOnlyIteratee<T> iteratee: ValueOnlyIteratee<T>
): (collection: Array<T> | { [id: any]: T }) => { [string]: number }; ): (collection: $ReadOnlyArray<T> | { [id: any]: T }) => { [string]: number };
countBy<T>( countBy<T>(
iteratee: ValueOnlyIteratee<T>, iteratee: ValueOnlyIteratee<T>,
collection: Array<T> | { [id: any]: T } collection: $ReadOnlyArray<T> | { [id: any]: T }
): { [string]: number }; ): { [string]: number };
// alias of _.forEach // alias of _.forEach
each<T>( each<T>(
@ -2946,8 +2955,10 @@ declare module "lodash/fp" {
predicate: OPredicate<A> predicate: OPredicate<A>
): (object: T) => Object; ): (object: T) => Object;
omitBy<A, T: { [id: any]: A }>(predicate: OPredicate<A>, object: T): Object; omitBy<A, T: { [id: any]: A }>(predicate: OPredicate<A>, object: T): Object;
pick(props: Array<string>): (object: Object) => Object; pick(...props: Array<string | {}>): Object;
pick(props: Array<string>, object: Object): Object; pick(props: $ReadOnlyArray<string>, object: Object): Object;
pick(...props: Array<string>): (object: Object) => Object;
pick(props: $ReadOnlyArray<string>): (object: Object) => Object;
pickAll(props: Array<string>): (object: Object) => Object; pickAll(props: Array<string>): (object: Object) => Object;
pickAll(props: Array<string>, object: Object): Object; pickAll(props: Array<string>, object: Object): Object;
pickBy<A, T: { [id: any]: A }>( pickBy<A, T: { [id: any]: A }>(

View File

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

View File

@ -1,8 +1,7 @@
// flow-typed signature: df80bdd535bfed9cf3223e077f3b4543 // flow-typed signature: 99b2d8ebd0ab4be20976dc62a3bbf54c
// flow-typed version: c4c8963c9c/redux_v4.x.x/flow_>=v0.55.x // flow-typed version: c6154227d1/redux_v4.x.x/flow_>=v0.89.x <=v0.103.x
declare module 'redux' { declare module 'redux' {
/* /*
S = State S = State
@ -11,49 +10,91 @@ declare module 'redux' {
*/ */
declare export type Action<T> = {
type: T
}
declare export type DispatchAPI<A> = (action: A) => A; declare export type DispatchAPI<A> = (action: A) => A;
declare export type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>;
declare export type Dispatch<A: { type: * }> = DispatchAPI<A>;
declare export type MiddlewareAPI<S, A, D = Dispatch<A>> = { declare export type MiddlewareAPI<S, A, D = Dispatch<A>> = {
dispatch: D; dispatch: D,
getState(): S; getState(): S,
}; };
declare export type Store<S, A, D = Dispatch<A>> = { declare export type Store<S, A, D = Dispatch<A>> = {
// rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages) // rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages)
dispatch: D; dispatch: D,
getState(): S; getState(): S,
subscribe(listener: () => void): () => void; subscribe(listener: () => void): () => void,
replaceReducer(nextReducer: Reducer<S, A>): void replaceReducer(nextReducer: Reducer<S, A>): void,
}; };
declare export type Reducer<S, A> = (state: S | void, action: A) => S; declare export type Reducer<S, A> = (state: S | void, action: A) => S;
declare export type CombinedReducer<S, A> = (state: $Shape<S> & {} | void, action: A) => S; declare export type CombinedReducer<S, A> = (
state: ($Shape<S> & {}) | void,
action: A
) => S;
declare export type Middleware<S, A, D = Dispatch<A>> = declare export type Middleware<S, A, D = Dispatch<A>> = (
(api: MiddlewareAPI<S, A, D>) => api: MiddlewareAPI<S, A, D>
(next: D) => D; ) => (next: D) => D;
declare export type StoreCreator<S, A, D = Dispatch<A>> = { declare export type StoreCreator<S, A, D = Dispatch<A>> = {
(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>; (reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>,
(reducer: Reducer<S, A>, preloadedState: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>; (
reducer: Reducer<S, A>,
preloadedState: S,
enhancer?: StoreEnhancer<S, A, D>
): Store<S, A, D>,
}; };
declare export type StoreEnhancer<S, A, D = Dispatch<A>> = (next: StoreCreator<S, A, D>) => StoreCreator<S, A, D>; declare export type StoreEnhancer<S, A, D = Dispatch<A>> = (
next: StoreCreator<S, A, D>
) => StoreCreator<S, A, D>;
declare export function createStore<S, A, D>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>; declare export function createStore<S, A, D>(
declare export function createStore<S, A, D>(reducer: Reducer<S, A>, preloadedState?: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>; reducer: Reducer<S, A>,
enhancer?: StoreEnhancer<S, A, D>
): Store<S, A, D>;
declare export function createStore<S, A, D>(
reducer: Reducer<S, A>,
preloadedState?: S,
enhancer?: StoreEnhancer<S, A, D>
): Store<S, A, D>;
declare export function applyMiddleware<S, A, D>(...middlewares: Array<Middleware<S, A, D>>): StoreEnhancer<S, A, D>; declare export function applyMiddleware<S, A, D>(
...middlewares: Array<Middleware<S, A, D>>
): StoreEnhancer<S, A, D>;
declare export type ActionCreator<A, B> = (...args: Array<B>) => A; declare export type ActionCreator<A, B> = (...args: Array<B>) => A;
declare export type ActionCreators<K, A> = { [key: K]: ActionCreator<A, any> }; declare export type ActionCreators<K, A> = {
[key: K]: ActionCreator<A, any>,
};
declare export function bindActionCreators<A, C: ActionCreator<A, any>, D: DispatchAPI<A>>(actionCreator: C, dispatch: D): C; declare export function bindActionCreators<
declare export function bindActionCreators<A, K, C: ActionCreators<K, A>, D: DispatchAPI<A>>(actionCreators: C, dispatch: D): C; A,
C: ActionCreator<A, any>,
D: DispatchAPI<A>
>(
actionCreator: C,
dispatch: D
): C;
declare export function bindActionCreators<
A,
K,
C: ActionCreators<K, A>,
D: DispatchAPI<A>
>(
actionCreators: C,
dispatch: D
): C;
declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>; declare export function combineReducers<O: {}, A>(
reducers: O
): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
declare export var compose: $Compose; declare export var compose: $Compose;
} }

View File

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

View File

@ -1,6 +1,6 @@
platform :ios, '10.0' platform :ios, '10.0'
workspace 'jitsi-meet' workspace 'jitsi-meet'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
target 'jitsi-meet' do target 'jitsi-meet' do
project 'app/app.xcodeproj' project 'app/app.xcodeproj'
@ -17,19 +17,26 @@ target 'JitsiMeet' do
# React Native and its dependencies # React Native and its dependencies
# #
pod 'React', :path => '../node_modules/react-native', :subspecs => [ pod 'React', :path => '../node_modules/react-native/'
'Core', pod 'React-Core', :path => '../node_modules/react-native/React'
'CxxBridge', pod 'React-DevSupport', :path => '../node_modules/react-native/React'
'DevSupport', pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
'RCTActionSheet', pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
'RCTAnimation', pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
'RCTImage', pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
'RCTLinkingIOS', pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
'RCTNetwork', pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
'RCTText', pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
'RCTWebSocket', pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
] pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga' pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
@ -54,6 +61,8 @@ target 'JitsiMeet' do
pod 'Amplitude-iOS', '~> 4.0.4' pod 'Amplitude-iOS', '~> 4.0.4'
pod 'ObjectiveDropboxOfficial', '~> 3.9.4' pod 'ObjectiveDropboxOfficial', '~> 3.9.4'
use_native_modules!
end end
post_install do |installer| post_install do |installer|

View File

@ -1,7 +1,7 @@
PODS: PODS:
- Amplitude-iOS (4.0.4) - Amplitude-iOS (4.0.4)
- boost-for-react-native (1.63.0) - boost-for-react-native (1.63.0)
- BVLinearGradient (2.5.3): - BVLinearGradient (2.5.6):
- React - React
- Crashlytics (3.12.0): - Crashlytics (3.12.0):
- Fabric (~> 1.9.0) - Fabric (~> 1.9.0)
@ -36,6 +36,11 @@ PODS:
- GoogleUtilities/Environment (~> 5.2) - GoogleUtilities/Environment (~> 5.2)
- GoogleUtilities/UserDefaults (~> 5.2) - GoogleUtilities/UserDefaults (~> 5.2)
- Folly (2018.10.22.00): - Folly (2018.10.22.00):
- boost-for-react-native
- DoubleConversion
- Folly/Default (= 2018.10.22.00)
- glog
- Folly/Default (2018.10.22.00):
- boost-for-react-native - boost-for-react-native
- DoubleConversion - DoubleConversion
- glog - glog
@ -83,8 +88,51 @@ PODS:
- nanopb/decode (0.3.901) - nanopb/decode (0.3.901)
- nanopb/encode (0.3.901) - nanopb/encode (0.3.901)
- ObjectiveDropboxOfficial (3.9.4) - ObjectiveDropboxOfficial (3.9.4)
- React (0.59.10): - React (0.60.5):
- React/Core (= 0.59.10) - React-Core (= 0.60.5)
- React-DevSupport (= 0.60.5)
- React-RCTActionSheet (= 0.60.5)
- React-RCTAnimation (= 0.60.5)
- React-RCTBlob (= 0.60.5)
- React-RCTImage (= 0.60.5)
- React-RCTLinking (= 0.60.5)
- React-RCTNetwork (= 0.60.5)
- React-RCTSettings (= 0.60.5)
- React-RCTText (= 0.60.5)
- React-RCTVibration (= 0.60.5)
- React-RCTWebSocket (= 0.60.5)
- React-Core (0.60.5):
- Folly (= 2018.10.22.00)
- React-cxxreact (= 0.60.5)
- React-jsiexecutor (= 0.60.5)
- yoga (= 0.60.5.React)
- React-cxxreact (0.60.5):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsinspector (= 0.60.5)
- React-DevSupport (0.60.5):
- React-Core (= 0.60.5)
- React-RCTWebSocket (= 0.60.5)
- React-jsi (0.60.5):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsi/Default (= 0.60.5)
- React-jsi/Default (0.60.5):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsiexecutor (0.60.5):
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-cxxreact (= 0.60.5)
- React-jsi (= 0.60.5)
- React-jsinspector (0.60.5)
- react-native-background-timer (2.1.1): - react-native-background-timer (2.1.1):
- React - React
- react-native-calendar-events (1.6.4): - react-native-calendar-events (1.6.4):
@ -95,68 +143,44 @@ PODS:
- React - React
- react-native-webview (5.8.1): - react-native-webview (5.8.1):
- React - React
- React/Core (0.59.10): - React-RCTActionSheet (0.60.5):
- yoga (= 0.59.10.React) - React-Core (= 0.60.5)
- React/CxxBridge (0.59.10): - React-RCTAnimation (0.60.5):
- Folly (= 2018.10.22.00) - React-Core (= 0.60.5)
- React/Core - React-RCTBlob (0.60.5):
- React/cxxreact - React-Core (= 0.60.5)
- React/jsiexecutor - React-RCTNetwork (= 0.60.5)
- React/cxxreact (0.59.10): - React-RCTWebSocket (= 0.60.5)
- boost-for-react-native (= 1.63.0) - React-RCTImage (0.60.5):
- DoubleConversion - React-Core (= 0.60.5)
- Folly (= 2018.10.22.00) - React-RCTNetwork (= 0.60.5)
- glog - React-RCTLinking (0.60.5):
- React/jsinspector - React-Core (= 0.60.5)
- React/DevSupport (0.59.10): - React-RCTNetwork (0.60.5):
- React/Core - React-Core (= 0.60.5)
- React/RCTWebSocket - React-RCTSettings (0.60.5):
- React/fishhook (0.59.10) - React-Core (= 0.60.5)
- React/jsi (0.59.10): - React-RCTText (0.60.5):
- DoubleConversion - React-Core (= 0.60.5)
- Folly (= 2018.10.22.00) - React-RCTVibration (0.60.5):
- glog - React-Core (= 0.60.5)
- React/jsiexecutor (0.59.10): - React-RCTWebSocket (0.60.5):
- DoubleConversion - React-Core (= 0.60.5)
- Folly (= 2018.10.22.00)
- glog
- React/cxxreact
- React/jsi
- React/jsinspector (0.59.10)
- React/RCTActionSheet (0.59.10):
- React/Core
- React/RCTAnimation (0.59.10):
- React/Core
- React/RCTBlob (0.59.10):
- React/Core
- React/RCTImage (0.59.10):
- React/Core
- React/RCTNetwork
- React/RCTLinkingIOS (0.59.10):
- React/Core
- React/RCTNetwork (0.59.10):
- React/Core
- React/RCTText (0.59.10):
- React/Core
- React/RCTWebSocket (0.59.10):
- React/Core
- React/fishhook
- React/RCTBlob
- RNCAsyncStorage (1.3.4): - RNCAsyncStorage (1.3.4):
- React - React
- RNGoogleSignin (2.0.0): - RNGoogleSignin (2.0.0):
- GoogleSignIn (~> 4.4.0) - GoogleSignIn (~> 4.4.0)
- React - React
- RNSound (0.10.12): - RNSound (0.11.0):
- React/Core - React
- RNSound/Core (= 0.10.12) - RNSound/Core (= 0.11.0)
- RNSound/Core (0.10.12): - RNSound/Core (0.11.0):
- React/Core - React
- RNVectorIcons (6.0.2): - RNVectorIcons (6.0.2):
- React - React
- RNWatch (0.2.0): - RNWatch (0.2.0):
- React - React
- yoga (0.59.10.React) - yoga (0.60.5.React)
DEPENDENCIES: DEPENDENCIES:
- Amplitude-iOS (~> 4.0.4) - Amplitude-iOS (~> 4.0.4)
@ -169,21 +193,28 @@ DEPENDENCIES:
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- ObjectiveDropboxOfficial (~> 3.9.4) - ObjectiveDropboxOfficial (~> 3.9.4)
- React (from `../node_modules/react-native/`)
- React-Core (from `../node_modules/react-native/React`)
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
- React-DevSupport (from `../node_modules/react-native/React`)
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- react-native-background-timer (from `../node_modules/react-native-background-timer`) - react-native-background-timer (from `../node_modules/react-native-background-timer`)
- react-native-calendar-events (from `../node_modules/react-native-calendar-events`) - react-native-calendar-events (from `../node_modules/react-native-calendar-events`)
- react-native-keep-awake (from `../node_modules/react-native-keep-awake`) - react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
- react-native-webrtc (from `../node_modules/react-native-webrtc`) - react-native-webrtc (from `../node_modules/react-native-webrtc`)
- react-native-webview (from `../node_modules/react-native-webview`) - react-native-webview (from `../node_modules/react-native-webview`)
- React/Core (from `../node_modules/react-native`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React/CxxBridge (from `../node_modules/react-native`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
- React/DevSupport (from `../node_modules/react-native`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
- React/RCTActionSheet (from `../node_modules/react-native`) - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
- React/RCTAnimation (from `../node_modules/react-native`) - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
- React/RCTImage (from `../node_modules/react-native`) - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
- React/RCTLinkingIOS (from `../node_modules/react-native`) - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
- React/RCTNetwork (from `../node_modules/react-native`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
- React/RCTText (from `../node_modules/react-native`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React/RCTWebSocket (from `../node_modules/react-native`) - React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
- RNGoogleSignin (from `../node_modules/react-native-google-signin`) - RNGoogleSignin (from `../node_modules/react-native-google-signin`)
- RNSound (from `../node_modules/react-native-sound`) - RNSound (from `../node_modules/react-native-sound`)
@ -221,7 +252,19 @@ EXTERNAL SOURCES:
glog: glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
React: React:
:path: "../node_modules/react-native" :path: "../node_modules/react-native/"
React-Core:
:path: "../node_modules/react-native/React"
React-cxxreact:
:path: "../node_modules/react-native/ReactCommon/cxxreact"
React-DevSupport:
:path: "../node_modules/react-native/React"
React-jsi:
:path: "../node_modules/react-native/ReactCommon/jsi"
React-jsiexecutor:
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
React-jsinspector:
:path: "../node_modules/react-native/ReactCommon/jsinspector"
react-native-background-timer: react-native-background-timer:
:path: "../node_modules/react-native-background-timer" :path: "../node_modules/react-native-background-timer"
react-native-calendar-events: react-native-calendar-events:
@ -232,6 +275,26 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-webrtc" :path: "../node_modules/react-native-webrtc"
react-native-webview: react-native-webview:
:path: "../node_modules/react-native-webview" :path: "../node_modules/react-native-webview"
React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation:
:path: "../node_modules/react-native/Libraries/NativeAnimation"
React-RCTBlob:
:path: "../node_modules/react-native/Libraries/Blob"
React-RCTImage:
:path: "../node_modules/react-native/Libraries/Image"
React-RCTLinking:
:path: "../node_modules/react-native/Libraries/LinkingIOS"
React-RCTNetwork:
:path: "../node_modules/react-native/Libraries/Network"
React-RCTSettings:
:path: "../node_modules/react-native/Libraries/Settings"
React-RCTText:
:path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration"
React-RCTWebSocket:
:path: "../node_modules/react-native/Libraries/WebSocket"
RNCAsyncStorage: RNCAsyncStorage:
:path: "../node_modules/@react-native-community/async-storage" :path: "../node_modules/@react-native-community/async-storage"
RNGoogleSignin: RNGoogleSignin:
@ -248,9 +311,9 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS: SPEC CHECKSUMS:
Amplitude-iOS: 2ad4d7270c99186236c1272a3a9425463b1ae1a7 Amplitude-iOS: 2ad4d7270c99186236c1272a3a9425463b1ae1a7
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BVLinearGradient: 0d985ec461359c82bc254f26d11008bdae50d17a BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933 Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
Fabric: f988e33c97f08930a413e08123064d2e5f68d655 Fabric: f988e33c97f08930a413e08123064d2e5f68d655
Firebase: 02f3281965c075426141a0ce1277e9de6649cab9 Firebase: 02f3281965c075426141a0ce1277e9de6649cab9
FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2 FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2
@ -258,8 +321,8 @@ SPEC CHECKSUMS:
FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3 FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3
FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd
FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e
Folly: de497beb10f102453a1afa9edbf8cf8a251890de Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d glog: 1f3da668190260b06b429bb211bfbee5cd790c28
GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832 GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832
GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39 GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39
GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
@ -267,19 +330,35 @@ SPEC CHECKSUMS:
GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48 nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701 ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701
React: 36d0768f9e93be2473b37e7fa64f92c1d5341eef React: 53c53c4d99097af47cf60594b8706b4e3321e722
React-Core: ba421f6b4f4cbe2fb17c0b6fc675f87622e78a64
React-cxxreact: 8384287780c4999351ad9b6e7a149d9ed10a2395
React-DevSupport: 197fb409737cff2c4f9986e77c220d7452cb9f9f
React-jsi: 4d8c9efb6312a9725b18d6fc818ffc103f60fec2
React-jsiexecutor: 90ad2f9db09513fc763bc757fdc3c4ff8bde2a30
React-jsinspector: e08662d1bf5b129a3d556eb9ea343a3f40353ae4
react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2 react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2
react-native-calendar-events: ee9573e355711ac679e071be70789542431f4ce3 react-native-calendar-events: ee9573e355711ac679e071be70789542431f4ce3
react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
react-native-webrtc: 1415d2a54b2246dd85ba95eb3e4bf2b66533f951 react-native-webrtc: 1415d2a54b2246dd85ba95eb3e4bf2b66533f951
react-native-webview: a95842e3f351a6d2c8bc8bcc9eab689c7e7e5ad4 react-native-webview: a95842e3f351a6d2c8bc8bcc9eab689c7e7e5ad4
React-RCTActionSheet: b0f1ea83f4bf75fb966eae9bfc47b78c8d3efd90
React-RCTAnimation: 359ba1b5690b1e87cc173558a78e82d35919333e
React-RCTBlob: 5e2b55f76e9a1c7ae52b826923502ddc3238df24
React-RCTImage: f5f1c50922164e89bdda67bcd0153952a5cfe719
React-RCTLinking: d0ecbd791e9ddddc41fa1f66b0255de90e8ee1e9
React-RCTNetwork: e26946300b0ab7bb6c4a6348090e93fa21f33a9d
React-RCTSettings: d0d37cb521b7470c998595a44f05847777cc3f42
React-RCTText: b074d89033583d4f2eb5faf7ea2db3a13c7553a2
React-RCTVibration: 2105b2e0e2b66a6408fc69a46c8a7fb5b2fdade0
React-RCTWebSocket: cd932a16b7214898b6b7f788c8bddb3637246ac4
RNCAsyncStorage: 8e31405a9f12fbf42c2bb330e4560bfd79c18323 RNCAsyncStorage: 8e31405a9f12fbf42c2bb330e4560bfd79c18323
RNGoogleSignin: d030c6c6591db24c3cee649f64c7babf0a1699a0 RNGoogleSignin: d030c6c6591db24c3cee649f64c7babf0a1699a0
RNSound: e157320f503bdd4f4ee6d8542e948d54f90c3c3a RNSound: c980916b596cc15c8dcd2f6ecd3b13c4881dbe20
RNVectorIcons: d819334932bcda3332deb3d2c8ea4d069e0b98f9 RNVectorIcons: d819334932bcda3332deb3d2c8ea4d069e0b98f9
RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42 RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42
yoga: 684513b14b03201579ba3cee20218c9d1298b0cc yoga: 312528f5bbbba37b4dcea5ef00e8b4033fdd9411
PODFILE CHECKSUM: d540f088d564bfe3b8ca3d13eec4cc0ce9c6e4bc PODFILE CHECKSUM: 6b6e260b4be4e86f9d05c0d7dab40f60118bb355
COCOAPODS: 1.7.2 COCOAPODS: 1.7.2

3346
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -60,20 +60,20 @@
"moment": "2.19.4", "moment": "2.19.4",
"moment-duration-format": "2.2.2", "moment-duration-format": "2.2.2",
"postis": "2.2.0", "postis": "2.2.0",
"react": "16.8.3", "react": "16.8.6",
"react-dom": "16.8.3", "react-dom": "16.8.6",
"react-emoji-render": "0.4.6", "react-emoji-render": "0.4.6",
"react-i18next": "10.11.4", "react-i18next": "10.11.4",
"react-linkify": "1.0.0-alpha", "react-linkify": "1.0.0-alpha",
"react-native": "0.59.10", "react-native": "0.60.5",
"react-native-background-timer": "2.1.1", "react-native-background-timer": "2.1.1",
"react-native-calendar-events": "github:jitsi/react-native-calendar-events#f621cbe97b182cfaca41545fd6b818a85d632506", "react-native-calendar-events": "github:jitsi/react-native-calendar-events#f621cbe97b182cfaca41545fd6b818a85d632506",
"react-native-callstats": "3.61.0", "react-native-callstats": "3.61.0",
"react-native-google-signin": "2.0.0", "react-native-google-signin": "2.0.0",
"react-native-immersive": "2.0.0", "react-native-immersive": "2.0.0",
"react-native-keep-awake": "4.0.0", "react-native-keep-awake": "4.0.0",
"react-native-linear-gradient": "2.5.3", "react-native-linear-gradient": "2.5.6",
"react-native-sound": "0.10.12", "react-native-sound": "0.11.0",
"react-native-swipeout": "2.3.6", "react-native-swipeout": "2.3.6",
"react-native-vector-icons": "6.0.2", "react-native-vector-icons": "6.0.2",
"react-native-watch-connectivity": "0.2.0", "react-native-watch-connectivity": "0.2.0",
@ -90,7 +90,7 @@
"xmldom": "0.1.27" "xmldom": "0.1.27"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.1.2", "@babel/core": "7.5.5",
"@babel/plugin-proposal-class-properties": "7.1.0", "@babel/plugin-proposal-class-properties": "7.1.0",
"@babel/plugin-proposal-export-default-from": "7.0.0", "@babel/plugin-proposal-export-default-from": "7.0.0",
"@babel/plugin-proposal-export-namespace-from": "7.0.0", "@babel/plugin-proposal-export-namespace-from": "7.0.0",
@ -100,7 +100,7 @@
"@babel/preset-env": "7.1.0", "@babel/preset-env": "7.1.0",
"@babel/preset-flow": "7.0.0", "@babel/preset-flow": "7.0.0",
"@babel/preset-react": "7.0.0", "@babel/preset-react": "7.0.0",
"@babel/runtime": "7.1.2", "@babel/runtime": "7.5.5",
"babel-eslint": "10.0.1", "babel-eslint": "10.0.1",
"babel-loader": "8.0.4", "babel-loader": "8.0.4",
"clean-css": "3.4.25", "clean-css": "3.4.25",
@ -113,9 +113,10 @@
"eslint-plugin-react": "7.11.1", "eslint-plugin-react": "7.11.1",
"eslint-plugin-react-native": "3.3.0", "eslint-plugin-react-native": "3.3.0",
"expose-loader": "0.7.5", "expose-loader": "0.7.5",
"flow-bin": "0.92.0", "flow-bin": "0.98.0",
"imports-loader": "0.7.1", "imports-loader": "0.7.1",
"metro-react-native-babel-preset": "0.49.2", "jetifier": "1.6.4",
"metro-react-native-babel-preset": "0.56.0",
"node-sass": "4.10.0", "node-sass": "4.10.0",
"precommit-hook": "3.0.0", "precommit-hook": "3.0.0",
"string-replace-loader": "2.1.1", "string-replace-loader": "2.1.1",
@ -131,6 +132,7 @@
"license": "Apache-2.0", "license": "Apache-2.0",
"scripts": { "scripts": {
"lint": "eslint . && flow", "lint": "eslint . && flow",
"postinstall": "jetify",
"validate": "npm ls" "validate": "npm ls"
}, },
"pre-commit": [ "pre-commit": [

View File

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

View File

@ -139,7 +139,7 @@ class DeepLinkingDesktopPage<P : Props> extends Component<P> {
); );
} }
_onTryAgain: () => {} _onTryAgain: () => void;
/** /**
* Handles try again button clicks. * Handles try again button clicks.
@ -153,7 +153,7 @@ class DeepLinkingDesktopPage<P : Props> extends Component<P> {
this.props.dispatch(openDesktopApp()); this.props.dispatch(openDesktopApp());
} }
_onLaunchWeb: () => {} _onLaunchWeb: () => void;
/** /**
* Handles launch web button clicks. * Handles launch web button clicks.

View File

@ -171,7 +171,7 @@ class DeepLinkingMobilePage extends Component<Props> {
IUS}&efr=1`; IUS}&efr=1`;
} }
_onDownloadApp: () => {}; _onDownloadApp: () => void;
/** /**
* Handles download app button clicks. * Handles download app button clicks.
@ -185,7 +185,7 @@ class DeepLinkingMobilePage extends Component<Props> {
'clicked', 'downloadAppButton', { isMobileBrowser: true })); 'clicked', 'downloadAppButton', { isMobileBrowser: true }));
} }
_onOpenApp: () => {}; _onOpenApp: () => void;
/** /**
* Handles open app button clicks. * Handles open app button clicks.

View File

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

View File

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

View File

@ -110,7 +110,7 @@ class StartLiveStreamDialog
_onSubmit: () => boolean; _onSubmit: () => boolean;
_onInitializeGoogleApi: () => Promise<*>; _onInitializeGoogleApi: () => void;
/** /**
* Loads the Google web client application used for fetching stream keys. * Loads the Google web client application used for fetching stream keys.
@ -118,7 +118,7 @@ class StartLiveStreamDialog
* broadcasts is also made. * broadcasts is also made.
* *
* @private * @private
* @returns {Promise} * @returns {void}
*/ */
_onInitializeGoogleApi() { _onInitializeGoogleApi() {
this.props.dispatch( this.props.dispatch(
@ -140,7 +140,7 @@ class StartLiveStreamDialog
} }
} }
_onGetYouTubeBroadcasts: () => Promise<*>; _onGetYouTubeBroadcasts: () => void;
/** /**
* Asks the user to sign in, if not already signed in, and then requests a * Asks the user to sign in, if not already signed in, and then requests a

View File

@ -449,7 +449,7 @@ class StartRecordingDialogContent extends Component<Props> {
); );
} }
_onSignIn: () => {}; _onSignIn: () => void;
/** /**
* Sings in a user. * Sings in a user.
@ -463,7 +463,7 @@ class StartRecordingDialogContent extends Component<Props> {
this.props.dispatch(authorizeDropbox()); this.props.dispatch(authorizeDropbox());
} }
_onSignOut: () => {}; _onSignOut: () => void;
/** /**
* Sings out an user from dropbox. * Sings out an user from dropbox.

View File

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