diff --git a/.flowconfig b/.flowconfig index 34d43bae7..e3f6e8a19 100644 --- a/.flowconfig +++ b/.flowconfig @@ -12,7 +12,6 @@ ; For RN Apps installed via npm, "Libraries" folder is inside ; "node_modules/react-native" but in the source repo it is in the root .*/Libraries/react-native/React.js -.*/Libraries/react-native/ReactNative.js ; Ignore polyfills .*/Libraries/polyfills/.* @@ -21,12 +20,12 @@ ; seen to cause errors and we have chosen not to fix. .*/node_modules/@atlassian .*/node_modules/bower/lib/node_modules/bower-json/test/.* +.*/node_modules/immutable/dist/immutable.js.flow .*/node_modules/jsonlint/test/.* -; FIXME Remove once we update past this commit: +; FIXME Remove once we update past commit ; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365 .*/node_modules/react-native/local-cli/link/link.js - .*/node_modules/react-native-keep-awake/.* .*/node_modules/styled-components/.* @@ -36,21 +35,16 @@ [libs] node_modules/react-native/Libraries/react-native/react-native-interface.js -node_modules/react-native/flow +node_modules/react-native/flow/ [options] emoji=true module.system=haste -; FIXME: munge_underscores should be false but right now there are some errors -; if we change the value to false -; Treats class properties with underscore as private. Disabled because currently -; for us "_" can mean protected too. -; munge_underscores=false munge_underscores=true -; FIXME Remove once we update past this commit: +; FIXME Remove once we update past commit ; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365 module.name_mapper='^./link/link$' -> 'emptyObject' @@ -62,11 +56,10 @@ suppress_type=$FlowFixMeProps suppress_type=$FlowFixMeState suppress_type=$FixMe -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError -suppress_comment=\\(.\\|\n\\)*\\$FlowDisableNextLine unsafe.enable_getters_and_setters=true @@ -83,4 +76,4 @@ module.file_ext=.jsx module.file_ext=.json [version] -^0.53.0 +^0.56.0 diff --git a/.gitignore b/.gitignore index dcf01412a..df6c7608d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ all.css .remote-sync.json .sync-config.cson +# CocoaPods +Pods/ + # The following are automatically generated by the react-native command line # utility (either with the init or upgrade option which pull in the latest # template files recommended by Facebook for React Native). @@ -57,14 +60,11 @@ buck-out/ # fastlane # -# It is recommended to not store the screenshots in the git repo. Instead, use -# fastlane to re-generate the screenshots whenever they are needed. For more -# information about the recommended setup visit: -# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md -# -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ -# CocoaPods -Pods/ +*/fastlane/report.xml +*/fastlane/Preview.html +*/fastlane/screenshots diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 48361a901..6e8516c8d 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -50,6 +50,10 @@ -dontwarn com.facebook.react.** +# TextLayoutBuilder uses a non-public Android constructor within StaticLayout. +# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. +-dontwarn android.text.StaticLayout + # okhttp -keepattributes Signature diff --git a/android/keystores/BUCK b/android/keystores/BUCK index 15da20e6b..88e4c31b2 100644 --- a/android/keystores/BUCK +++ b/android/keystores/BUCK @@ -1,8 +1,8 @@ keystore( - name = 'debug', - store = 'debug.keystore', - properties = 'debug.keystore.properties', - visibility = [ - 'PUBLIC', - ], + name = "debug", + properties = "debug.keystore.properties", + store = "debug.keystore", + visibility = [ + "PUBLIC", + ], ) diff --git a/flow-typed/npm/lodash_v4.x.x.js b/flow-typed/npm/lodash_v4.x.x.js index 0a7ce632f..9170faa72 100644 --- a/flow-typed/npm/lodash_v4.x.x.js +++ b/flow-typed/npm/lodash_v4.x.x.js @@ -1,70 +1,138 @@ -// flow-typed signature: 350011086a8f7f4dfc6c85c33627094c -// flow-typed version: 30e72b3fd6/lodash_v4.x.x/flow_>=v0.47.x <=v0.54.x +// flow-typed signature: 554384bc1c2235537d0c15bf2acefe99 +// flow-typed version: c5a8c20937/lodash_v4.x.x/flow_>=v0.55.x declare module "lodash" { - declare type __CurriedFunction1 = - & ((...r: [AA]) => R) - declare type CurriedFunction1 = __CurriedFunction1 + declare type __CurriedFunction1 = (...r: [AA]) => R; + declare type CurriedFunction1 = __CurriedFunction1; - declare type __CurriedFunction2 = - & ((...r: [AA]) => CurriedFunction1) - & ((...r: [AA, BB]) => R) - declare type CurriedFunction2 = __CurriedFunction2 + declare type __CurriedFunction2 = (( + ...r: [AA] + ) => CurriedFunction1) & + ((...r: [AA, BB]) => R); + declare type CurriedFunction2 = __CurriedFunction2; - declare type __CurriedFunction3 = - & ((...r: [AA]) => CurriedFunction2) - & ((...r: [AA, BB]) => CurriedFunction1) - & ((...r: [AA, BB, CC]) => R) - declare type CurriedFunction3 = __CurriedFunction3 + declare type __CurriedFunction3 = (( + ...r: [AA] + ) => CurriedFunction2) & + ((...r: [AA, BB]) => CurriedFunction1) & + ((...r: [AA, BB, CC]) => R); + declare type CurriedFunction3 = __CurriedFunction3< + A, + B, + C, + R, + *, + *, + * + >; - declare type __CurriedFunction4 = - & ((...r: [AA]) => CurriedFunction3) - & ((...r: [AA, BB]) => CurriedFunction2) - & ((...r: [AA, BB, CC]) => CurriedFunction1) - & ((...r: [AA, BB, CC, DD]) => R) - declare type CurriedFunction4 = __CurriedFunction4 + declare type __CurriedFunction4< + A, + B, + C, + D, + R, + AA: A, + BB: B, + CC: C, + DD: D + > = ((...r: [AA]) => CurriedFunction3) & + ((...r: [AA, BB]) => CurriedFunction2) & + ((...r: [AA, BB, CC]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD]) => R); + declare type CurriedFunction4 = __CurriedFunction4< + A, + B, + C, + D, + R, + *, + *, + *, + * + >; - declare type __CurriedFunction5 = - & ((...r: [AA]) => CurriedFunction4) - & ((...r: [AA, BB]) => CurriedFunction3) - & ((...r: [AA, BB, CC]) => CurriedFunction2) - & ((...r: [AA, BB, CC, DD]) => CurriedFunction1) - & ((...r: [AA, BB, CC, DD, EE]) => R) - declare type CurriedFunction5 = __CurriedFunction5 + declare type __CurriedFunction5< + A, + B, + C, + D, + E, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E + > = ((...r: [AA]) => CurriedFunction4) & + ((...r: [AA, BB]) => CurriedFunction3) & + ((...r: [AA, BB, CC]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE]) => R); + declare type CurriedFunction5 = __CurriedFunction5< + A, + B, + C, + D, + E, + R, + *, + *, + *, + *, + * + >; - declare type __CurriedFunction6 = - & ((...r: [AA]) => CurriedFunction5) - & ((...r: [AA, BB]) => CurriedFunction4) - & ((...r: [AA, BB, CC]) => CurriedFunction3) - & ((...r: [AA, BB, CC, DD]) => CurriedFunction2) - & ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) - & ((...r: [AA, BB, CC, DD, EE, FF]) => R) - declare type CurriedFunction6 = __CurriedFunction6 + declare type __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + FF: F + > = ((...r: [AA]) => CurriedFunction5) & + ((...r: [AA, BB]) => CurriedFunction4) & + ((...r: [AA, BB, CC]) => CurriedFunction3) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE, FF]) => R); + declare type CurriedFunction6 = __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + *, + *, + *, + *, + *, + * + >; - declare type Curry = - & (((...r: [A]) => R) => CurriedFunction1) - & (((...r: [A, B]) => R) => CurriedFunction2) - & (((...r: [A, B, C]) => R) => CurriedFunction3) - & (((...r: [A, B, C, D]) => R) => CurriedFunction4) - & (((...r: [A, B, C, D, E]) => R) => CurriedFunction5) - & (((...r: [A, B, C, D, E, F]) => R) => CurriedFunction6) - - declare type UnaryFn = (a: A) => R; - - declare type Flow = ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, de: UnaryFn, ef: UnaryFn, fg: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, de: UnaryFn, ef: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, de: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, ...rest: Array) => UnaryFn) - -declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, de: UnaryFn, cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((ef: UnaryFn, de: UnaryFn, cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((de: UnaryFn, cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, ...rest: Array) => UnaryFn) + declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & + (((...r: [A, B]) => R) => CurriedFunction2) & + (((...r: [A, B, C]) => R) => CurriedFunction3) & + (( + (...r: [A, B, C, D]) => R + ) => CurriedFunction4) & + (( + (...r: [A, B, C, D, E]) => R + ) => CurriedFunction5) & + (( + (...r: [A, B, C, D, E, F]) => R + ) => CurriedFunction6); + declare type UnaryFn = (a: A) => R; declare type TemplateSettings = { escape?: RegExp, @@ -140,361 +208,364 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, declare class Lodash { // Array - chunk(array: ?Array, size?: number): Array>, - compact(array: Array): Array, - concat(base: Array, ...elements: Array): Array, - difference(array: ?Array, values?: Array): Array, + chunk(array: ?Array, size?: number): Array>; + compact(array: Array): Array; + concat(base: Array, ...elements: Array): Array; + difference(array: ?Array, values?: Array): Array; differenceBy( array: ?Array, values: Array, iteratee: ValueOnlyIteratee - ): T[], - differenceWith(array: T[], values: T[], comparator?: Comparator): T[], - drop(array: ?Array, n?: number): Array, - dropRight(array: ?Array, n?: number): Array, - dropRightWhile(array: ?Array, predicate?: Predicate): Array, - dropWhile(array: ?Array, predicate?: Predicate): Array, + ): T[]; + differenceWith(array: T[], values: T[], comparator?: Comparator): T[]; + drop(array: ?Array, n?: number): Array; + dropRight(array: ?Array, n?: number): Array; + dropRightWhile(array: ?Array, predicate?: Predicate): Array; + dropWhile(array: ?Array, predicate?: Predicate): Array; fill( array: ?Array, value: U, start?: number, end?: number - ): Array, + ): Array; findIndex( - array: ?Array, + array: ?$ReadOnlyArray, predicate?: Predicate, fromIndex?: number - ): number, + ): number; findLastIndex( - array: ?Array, + array: ?$ReadOnlyArray, predicate?: Predicate, fromIndex?: number - ): number, + ): number; // alias of _.head - first(array: ?Array): T, - flatten(array: Array | X>): Array, - flattenDeep(array: any[]): Array, - flattenDepth(array: any[], depth?: number): any[], - fromPairs(pairs: Array): Object, - head(array: ?Array): T, - indexOf(array: ?Array, value: T, fromIndex?: number): number, - initial(array: ?Array): Array, - intersection(...arrays: Array>): Array, + first(array: ?Array): T; + flatten(array: Array | X>): Array; + flattenDeep(array: any[]): Array; + flattenDepth(array: any[], depth?: number): any[]; + fromPairs(pairs: Array<[A, B]>): { [key: A]: B }; + head(array: ?Array): T; + indexOf(array: ?Array, value: T, fromIndex?: number): number; + initial(array: ?Array): Array; + intersection(...arrays: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works - intersectionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array, + intersectionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array; intersectionBy( a1: Array, a2: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; intersectionBy( a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; intersectionBy( a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; //Workaround until (...parameter: T, parameter2: U) works - intersectionWith(a1: Array, comparator: Comparator): Array, + intersectionWith(a1: Array, comparator: Comparator): Array; intersectionWith( a1: Array, a2: Array, comparator: Comparator - ): Array, + ): Array; intersectionWith( a1: Array, a2: Array, a3: Array, comparator: Comparator - ): Array, + ): Array; intersectionWith( a1: Array, a2: Array, a3: Array, a4: Array, comparator: Comparator - ): Array, - join(array: ?Array, separator?: string): string, - last(array: ?Array): T, - lastIndexOf(array: ?Array, value: T, fromIndex?: number): number, - nth(array: T[], n?: number): T, - pull(array: ?Array, ...values?: Array): Array, - pullAll(array: ?Array, values: Array): Array, + ): Array; + join(array: ?Array, separator?: string): string; + last(array: ?Array): T; + lastIndexOf(array: ?Array, value: T, fromIndex?: number): number; + nth(array: T[], n?: number): T; + pull(array: ?Array, ...values?: Array): Array; + pullAll(array: ?Array, values: Array): Array; pullAllBy( array: ?Array, values: Array, iteratee?: ValueOnlyIteratee - ): Array, - pullAllWith(array?: T[], values: T[], comparator?: Function): T[], - pullAt(array: ?Array, ...indexed?: Array): Array, - pullAt(array: ?Array, indexed?: Array): Array, - remove(array: ?Array, predicate?: Predicate): Array, - reverse(array: ?Array): Array, - slice(array: ?Array, start?: number, end?: number): Array, - sortedIndex(array: ?Array, value: T): number, + ): Array; + pullAllWith(array?: T[], values: T[], comparator?: Function): T[]; + pullAt(array: ?Array, ...indexed?: Array): Array; + pullAt(array: ?Array, indexed?: Array): Array; + remove(array: ?Array, predicate?: Predicate): Array; + reverse(array: ?Array): Array; + slice(array: ?Array, start?: number, end?: number): Array; + sortedIndex(array: ?Array, value: T): number; sortedIndexBy( array: ?Array, value: T, iteratee?: ValueOnlyIteratee - ): number, - sortedIndexOf(array: ?Array, value: T): number, - sortedLastIndex(array: ?Array, value: T): number, + ): number; + sortedIndexOf(array: ?Array, value: T): number; + sortedLastIndex(array: ?Array, value: T): number; sortedLastIndexBy( array: ?Array, value: T, iteratee?: ValueOnlyIteratee - ): number, - sortedLastIndexOf(array: ?Array, value: T): number, - sortedUniq(array: ?Array): Array, - sortedUniqBy(array: ?Array, iteratee?: (value: T) => mixed): Array, - tail(array: ?Array): Array, - take(array: ?Array, n?: number): Array, - takeRight(array: ?Array, n?: number): Array, - takeRightWhile(array: ?Array, predicate?: Predicate): Array, - takeWhile(array: ?Array, predicate?: Predicate): Array, - union(...arrays?: Array>): Array, + ): number; + sortedLastIndexOf(array: ?Array, value: T): number; + sortedUniq(array: ?Array): Array; + sortedUniqBy(array: ?Array, iteratee?: (value: T) => mixed): Array; + tail(array: ?Array): Array; + take(array: ?Array, n?: number): Array; + takeRight(array: ?Array, n?: number): Array; + takeRightWhile(array: ?Array, predicate?: Predicate): Array; + takeWhile(array: ?Array, predicate?: Predicate): Array; + union(...arrays?: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works - unionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array, + unionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array; unionBy( a1: Array, a2: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; unionBy( a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; unionBy( a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; //Workaround until (...parameter: T, parameter2: U) works - unionWith(a1: Array, comparator?: Comparator): Array, + unionWith(a1: Array, comparator?: Comparator): Array; unionWith( a1: Array, a2: Array, comparator?: Comparator - ): Array, + ): Array; unionWith( a1: Array, a2: Array, a3: Array, comparator?: Comparator - ): Array, + ): Array; unionWith( a1: Array, a2: Array, a3: Array, a4: Array, comparator?: Comparator - ): Array, - uniq(array: ?Array): Array, - uniqBy(array: ?Array, iteratee?: ValueOnlyIteratee): Array, - uniqWith(array: ?Array, comparator?: Comparator): Array, - unzip(array: ?Array): Array, - unzipWith(array: ?Array, iteratee?: Iteratee): Array, - without(array: ?Array, ...values?: Array): Array, - xor(...array: Array>): Array, + ): Array; + uniq(array: ?Array): Array; + uniqBy(array: ?Array, iteratee?: ValueOnlyIteratee): Array; + uniqWith(array: ?Array, comparator?: Comparator): Array; + unzip(array: ?Array): Array; + unzipWith(array: ?Array, iteratee?: Iteratee): Array; + without(array: ?Array, ...values?: Array): Array; + xor(...array: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works - xorBy(a1: Array, iteratee?: ValueOnlyIteratee): Array, + xorBy(a1: Array, iteratee?: ValueOnlyIteratee): Array; xorBy( a1: Array, a2: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; xorBy( a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; xorBy( a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee - ): Array, + ): Array; //Workaround until (...parameter: T, parameter2: U) works - xorWith(a1: Array, comparator?: Comparator): Array, + xorWith(a1: Array, comparator?: Comparator): Array; xorWith( a1: Array, a2: Array, comparator?: Comparator - ): Array, + ): Array; xorWith( a1: Array, a2: Array, a3: Array, comparator?: Comparator - ): Array, + ): Array; xorWith( a1: Array, a2: Array, a3: Array, a4: Array, comparator?: Comparator - ): Array, - zip(a1: A[], a2: B[]): Array<[A, B]>, - zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>, - zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>, + ): Array; + zip(a1: A[], a2: B[]): Array<[A, B]>; + zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; + zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; zip( a1: A[], a2: B[], a3: C[], a4: D[], a5: E[] - ): Array<[A, B, C, D, E]>, + ): Array<[A, B, C, D, E]>; - zipObject(props?: Array, values?: Array): Object, - zipObjectDeep(props?: any[], values?: any): Object, + zipObject(props?: Array, values?: Array): { [key: K]: V }; + zipObjectDeep(props?: any[], values?: any): Object; //Workaround until (...parameter: T, parameter2: U) works - zipWith(a1: NestedArray, iteratee?: Iteratee): Array, + zipWith(a1: NestedArray, iteratee?: Iteratee): Array; zipWith( a1: NestedArray, a2: NestedArray, iteratee?: Iteratee - ): Array, + ): Array; zipWith( a1: NestedArray, a2: NestedArray, a3: NestedArray, iteratee?: Iteratee - ): Array, + ): Array; zipWith( a1: NestedArray, a2: NestedArray, a3: NestedArray, a4: NestedArray, iteratee?: Iteratee - ): Array, + ): Array; // Collection - countBy(array: ?Array, iteratee?: ValueOnlyIteratee): Object, - countBy(object: T, iteratee?: ValueOnlyIteratee): Object, + countBy(array: ?Array, iteratee?: ValueOnlyIteratee): Object; + countBy(object: T, iteratee?: ValueOnlyIteratee): Object; // alias of _.forEach - each(array: ?Array, iteratee?: Iteratee): Array, - each(object: T, iteratee?: OIteratee): T, + each(array: ?Array, iteratee?: Iteratee): Array; + each(object: T, iteratee?: OIteratee): T; // alias of _.forEachRight - eachRight(array: ?Array, iteratee?: Iteratee): Array, - eachRight(object: T, iteratee?: OIteratee): T, - every(array: ?Array, iteratee?: Iteratee): boolean, - every(object: T, iteratee?: OIteratee): boolean, - filter(array: ?Array, predicate?: Predicate): Array, + eachRight(array: ?Array, iteratee?: Iteratee): Array; + eachRight(object: T, iteratee?: OIteratee): T; + every(array: ?Array, iteratee?: Iteratee): boolean; + every(object: T, iteratee?: OIteratee): boolean; + filter(array: ?Array, predicate?: Predicate): Array; filter( object: T, predicate?: OPredicate - ): Array, + ): Array; find( - array: ?Array, + array: ?$ReadOnlyArray, predicate?: Predicate, fromIndex?: number - ): T | void, + ): T | void; find( object: T, predicate?: OPredicate, fromIndex?: number - ): V, + ): V; findLast( - array: ?Array, + array: ?$ReadOnlyArray, predicate?: Predicate, fromIndex?: number - ): T | void, + ): T | void; findLast( object: T, predicate?: OPredicate - ): V, - flatMap(array: ?Array, iteratee?: FlatMapIteratee): Array, + ): V; + flatMap(array: ?Array, iteratee?: FlatMapIteratee): Array; flatMap( object: T, iteratee?: OFlatMapIteratee - ): Array, + ): Array; flatMapDeep( array: ?Array, iteratee?: FlatMapIteratee - ): Array, + ): Array; flatMapDeep( object: T, iteratee?: OFlatMapIteratee - ): Array, + ): Array; flatMapDepth( array: ?Array, iteratee?: FlatMapIteratee, depth?: number - ): Array, + ): Array; flatMapDepth( object: T, iteratee?: OFlatMapIteratee, depth?: number - ): Array, - forEach(array: ?Array, iteratee?: Iteratee): Array, - forEach(object: T, iteratee?: OIteratee): T, - forEachRight(array: ?Array, iteratee?: Iteratee): Array, - forEachRight(object: T, iteratee?: OIteratee): T, + ): Array; + forEach(array: ?Array, iteratee?: Iteratee): Array; + forEach(object: T, iteratee?: OIteratee): T; + forEachRight(array: ?Array, iteratee?: Iteratee): Array; + forEachRight(object: T, iteratee?: OIteratee): T; groupBy( array: ?Array, iteratee?: ValueOnlyIteratee - ): { [key: V]: Array }, + ): { [key: V]: Array }; groupBy( object: T, iteratee?: ValueOnlyIteratee - ): { [key: V]: Array }, - includes(array: ?Array, value: T, fromIndex?: number): boolean, - includes(object: T, value: any, fromIndex?: number): boolean, - includes(str: string, value: string, fromIndex?: number): boolean, + ): { [key: V]: Array }; + includes(array: ?Array, value: T, fromIndex?: number): boolean; + includes(object: T, value: any, fromIndex?: number): boolean; + includes(str: string, value: string, fromIndex?: number): boolean; invokeMap( array: ?Array, path: ((value: T) => Array | string) | Array | string, ...args?: Array - ): Array, + ): Array; invokeMap( object: T, path: ((value: any) => Array | string) | Array | string, ...args?: Array - ): Array, + ): Array; keyBy( array: ?Array, iteratee?: ValueOnlyIteratee - ): { [key: V]: ?T }, + ): { [key: V]: ?T }; keyBy( object: T, iteratee?: ValueOnlyIteratee - ): { [key: V]: ?A }, - map(array: ?Array, iteratee?: MapIterator): Array, + ): { [key: V]: ?A }; + map(array: ?Array, iteratee?: MapIterator): Array; map( object: ?T, iteratee?: OMapIterator - ): Array, + ): Array; map( str: ?string, iteratee?: (char: string, index: number, str: string) => any - ): string, + ): string; orderBy( array: ?Array, iteratees?: Array> | string, orders?: Array<"asc" | "desc"> | string - ): Array, + ): Array; orderBy( object: T, iteratees?: Array> | string, orders?: Array<"asc" | "desc"> | string - ): Array, - partition(array: ?Array, predicate?: Predicate): NestedArray, + ): Array; + partition( + array: ?Array, + predicate?: Predicate + ): [Array, Array]; partition( object: T, predicate?: OPredicate - ): NestedArray, + ): [Array, Array]; reduce( array: ?Array, iteratee?: ( @@ -504,12 +575,12 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, array: ?Array ) => U, accumulator?: U - ): U, + ): U; reduce( object: T, iteratee?: (accumulator: U, value: any, key: string, object: T) => U, accumulator?: U - ): U, + ): U; reduceRight( array: ?Array, iteratee?: ( @@ -519,107 +590,103 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, array: ?Array ) => U, accumulator?: U - ): U, + ): U; reduceRight( object: T, iteratee?: (accumulator: U, value: any, key: string, object: T) => U, accumulator?: U - ): U, - reject(array: ?Array, predicate?: Predicate): Array, + ): U; + reject(array: ?Array, predicate?: Predicate): Array; reject( object: T, predicate?: OPredicate - ): Array, - sample(array: ?Array): T, - sample(object: T): V, - sampleSize(array: ?Array, n?: number): Array, - sampleSize(object: T, n?: number): Array, - shuffle(array: ?Array): Array, - shuffle(object: T): Array, - size(collection: Array | Object): number, - some(array: ?Array, predicate?: Predicate): boolean, + ): Array; + sample(array: ?Array): T; + sample(object: T): V; + sampleSize(array: ?Array, n?: number): Array; + sampleSize(object: T, n?: number): Array; + shuffle(array: ?Array): Array; + shuffle(object: T): Array; + size(collection: Array | Object): number; + some(array: ?Array, predicate?: Predicate): boolean; some( object?: ?T, predicate?: OPredicate - ): boolean, - sortBy(array: ?Array, ...iteratees?: Array>): Array, - sortBy(array: ?Array, iteratees?: Array>): Array, + ): boolean; + sortBy(array: ?Array, ...iteratees?: Array>): Array; + sortBy(array: ?Array, iteratees?: Array>): Array; sortBy( object: T, ...iteratees?: Array> - ): Array, - sortBy(object: T, iteratees?: Array>): Array, + ): Array; + sortBy(object: T, iteratees?: Array>): Array; // Date - now(): number, + now(): number; // Function - after(n: number, fn: Function): Function, - ary(func: Function, n?: number): Function, - before(n: number, fn: Function): Function, - bind(func: Function, thisArg: any, ...partials: Array): Function, - bindKey(obj: Object, key: string, ...partials: Array): Function, - curry: Curry, - curry(func: Function, arity?: number): Function, - curryRight(func: Function, arity?: number): Function, - debounce( - func: Function, - wait?: number, - options?: DebounceOptions - ): Function, - defer(func: Function, ...args?: Array): number, - delay(func: Function, wait: number, ...args?: Array): number, - flip(func: Function): Function, - memoize(func: Function, resolver?: Function): Function, - negate(predicate: Function): Function, - once(func: Function): Function, - overArgs(func: Function, ...transforms: Array): Function, - overArgs(func: Function, transforms: Array): Function, - partial(func: Function, ...partials: any[]): Function, - partialRight(func: Function, ...partials: Array): Function, - partialRight(func: Function, partials: Array): Function, - rearg(func: Function, ...indexes: Array): Function, - rearg(func: Function, indexes: Array): Function, - rest(func: Function, start?: number): Function, - spread(func: Function): Function, + after(n: number, fn: Function): Function; + ary(func: Function, n?: number): Function; + before(n: number, fn: Function): Function; + bind(func: Function, thisArg: any, ...partials: Array): Function; + bindKey(obj: Object, key: string, ...partials: Array): Function; + curry: Curry; + curry(func: Function, arity?: number): Function; + curryRight(func: Function, arity?: number): Function; + debounce(func: F, wait?: number, options?: DebounceOptions): F; + defer(func: Function, ...args?: Array): number; + delay(func: Function, wait: number, ...args?: Array): number; + flip(func: Function): Function; + memoize(func: F, resolver?: Function): F; + negate(predicate: Function): Function; + once(func: Function): Function; + overArgs(func: Function, ...transforms: Array): Function; + overArgs(func: Function, transforms: Array): Function; + partial(func: Function, ...partials: any[]): Function; + partialRight(func: Function, ...partials: Array): Function; + partialRight(func: Function, partials: Array): Function; + rearg(func: Function, ...indexes: Array): Function; + rearg(func: Function, indexes: Array): Function; + rest(func: Function, start?: number): Function; + spread(func: Function): Function; throttle( func: Function, wait?: number, options?: ThrottleOptions - ): Function, - unary(func: Function): Function, - wrap(value: any, wrapper: Function): Function, + ): Function; + unary(func: Function): Function; + wrap(value: any, wrapper: Function): Function; // Lang - castArray(value: *): any[], - clone(value: T): T, - cloneDeep(value: T): T, + castArray(value: *): any[]; + clone(value: T): T; + cloneDeep(value: T): T; cloneDeepWith( value: T, customizer?: ?(value: T, key: number | string, object: T, stack: any) => U - ): U, + ): U; cloneWith( value: T, customizer?: ?(value: T, key: number | string, object: T, stack: any) => U - ): U, + ): U; conformsTo( source: T, predicates: T & { [key: string]: (x: any) => boolean } - ): boolean, - eq(value: any, other: any): boolean, - gt(value: any, other: any): boolean, - gte(value: any, other: any): boolean, - isArguments(value: any): boolean, - isArray(value: any): boolean, - isArrayBuffer(value: any): boolean, - isArrayLike(value: any): boolean, - isArrayLikeObject(value: any): boolean, - isBoolean(value: any): boolean, - isBuffer(value: any): boolean, - isDate(value: any): boolean, - isElement(value: any): boolean, - isEmpty(value: any): boolean, - isEqual(value: any, other: any): boolean, + ): boolean; + eq(value: any, other: any): boolean; + gt(value: any, other: any): boolean; + gte(value: any, other: any): boolean; + isArguments(value: any): boolean; + isArray(value: any): boolean; + isArrayBuffer(value: any): boolean; + isArrayLike(value: any): boolean; + isArrayLikeObject(value: any): boolean; + isBoolean(value: any): boolean; + isBuffer(value: any): boolean; + isDate(value: any): boolean; + isElement(value: any): boolean; + isEmpty(value: any): boolean; + isEqual(value: any, other: any): boolean; isEqualWith( value: T, other: U, @@ -631,15 +698,15 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, other: U, stack: any ) => boolean | void - ): boolean, - isError(value: any): boolean, - isFinite(value: any): boolean, - isFunction(value: Function): true, - isFunction(value: number | string | void | null | Object): false, - isInteger(value: any): boolean, - isLength(value: any): boolean, - isMap(value: any): boolean, - isMatch(object?: ?Object, source: Object): boolean, + ): boolean; + isError(value: any): boolean; + isFinite(value: any): boolean; + isFunction(value: Function): true; + isFunction(value: number | string | void | null | Object): false; + isInteger(value: any): boolean; + isLength(value: any): boolean; + isMap(value: any): boolean; + isMatch(object?: ?Object, source: Object): boolean; isMatchWith( object: T, source: U, @@ -650,66 +717,66 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: U ) => boolean | void - ): boolean, - isNaN(value: any): boolean, - isNative(value: any): boolean, - isNil(value: any): boolean, - isNull(value: any): boolean, - isNumber(value: any): boolean, - isObject(value: any): boolean, - isObjectLike(value: any): boolean, - isPlainObject(value: any): boolean, - isRegExp(value: any): boolean, - isSafeInteger(value: any): boolean, - isSet(value: any): boolean, - isString(value: string): true, + ): boolean; + isNaN(value: any): boolean; + isNative(value: any): boolean; + isNil(value: any): boolean; + isNull(value: any): boolean; + isNumber(value: any): boolean; + isObject(value: any): boolean; + isObjectLike(value: any): boolean; + isPlainObject(value: any): boolean; + isRegExp(value: any): boolean; + isSafeInteger(value: any): boolean; + isSet(value: any): boolean; + isString(value: string): true; isString( value: number | boolean | Function | void | null | Object | Array - ): false, - isSymbol(value: any): boolean, - isTypedArray(value: any): boolean, - isUndefined(value: any): boolean, - isWeakMap(value: any): boolean, - isWeakSet(value: any): boolean, - lt(value: any, other: any): boolean, - lte(value: any, other: any): boolean, - toArray(value: any): Array, - toFinite(value: any): number, - toInteger(value: any): number, - toLength(value: any): number, - toNumber(value: any): number, - toPlainObject(value: any): Object, - toSafeInteger(value: any): number, - toString(value: any): string, + ): false; + isSymbol(value: any): boolean; + isTypedArray(value: any): boolean; + isUndefined(value: any): boolean; + isWeakMap(value: any): boolean; + isWeakSet(value: any): boolean; + lt(value: any, other: any): boolean; + lte(value: any, other: any): boolean; + toArray(value: any): Array; + toFinite(value: any): number; + toInteger(value: any): number; + toLength(value: any): number; + toNumber(value: any): number; + toPlainObject(value: any): Object; + toSafeInteger(value: any): number; + toString(value: any): string; // Math - add(augend: number, addend: number): number, - ceil(number: number, precision?: number): number, - divide(dividend: number, divisor: number): number, - floor(number: number, precision?: number): number, - max(array: ?Array): T, - maxBy(array: ?Array, iteratee?: Iteratee): T, - mean(array: Array<*>): number, - meanBy(array: Array, iteratee?: Iteratee): number, - min(array: ?Array): T, - minBy(array: ?Array, iteratee?: Iteratee): T, - multiply(multiplier: number, multiplicand: number): number, - round(number: number, precision?: number): number, - subtract(minuend: number, subtrahend: number): number, - sum(array: Array<*>): number, - sumBy(array: Array, iteratee?: Iteratee): number, + add(augend: number, addend: number): number; + ceil(number: number, precision?: number): number; + divide(dividend: number, divisor: number): number; + floor(number: number, precision?: number): number; + max(array: ?Array): T; + maxBy(array: ?Array, iteratee?: Iteratee): T; + mean(array: Array<*>): number; + meanBy(array: Array, iteratee?: Iteratee): number; + min(array: ?Array): T; + minBy(array: ?Array, iteratee?: Iteratee): T; + multiply(multiplier: number, multiplicand: number): number; + round(number: number, precision?: number): number; + subtract(minuend: number, subtrahend: number): number; + sum(array: Array<*>): number; + sumBy(array: Array, iteratee?: Iteratee): number; // number - clamp(number: number, lower?: number, upper: number): number, - inRange(number: number, start?: number, end: number): boolean, - random(lower?: number, upper?: number, floating?: boolean): number, + clamp(number: number, lower?: number, upper: number): number; + inRange(number: number, start?: number, end: number): boolean; + random(lower?: number, upper?: number, floating?: boolean): number; // Object - assign(object?: ?Object, ...sources?: Array): Object, - assignIn(a: A, b: B): A & B, - assignIn(a: A, b: B, c: C): A & B & C, - assignIn(a: A, b: B, c: C, d: D): A & B & C & D, - assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E, + assign(object?: ?Object, ...sources?: Array): Object; + assignIn(a: A, b: B): A & B; + assignIn(a: A, b: B, c: C): A & B & C; + assignIn(a: A, b: B, c: C, d: D): A & B & C & D; + assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; assignInWith( object: T, s1: A, @@ -720,7 +787,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A ) => any | void - ): Object, + ): Object; assignInWith( object: T, s1: A, @@ -732,7 +799,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B ) => any | void - ): Object, + ): Object; assignInWith( object: T, s1: A, @@ -745,7 +812,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C ) => any | void - ): Object, + ): Object; assignInWith( object: T, s1: A, @@ -759,7 +826,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C | D ) => any | void - ): Object, + ): Object; assignWith( object: T, s1: A, @@ -770,7 +837,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A ) => any | void - ): Object, + ): Object; assignWith( object: T, s1: A, @@ -782,7 +849,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B ) => any | void - ): Object, + ): Object; assignWith( object: T, s1: A, @@ -795,7 +862,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C ) => any | void - ): Object, + ): Object; assignWith( object: T, s1: A, @@ -809,21 +876,21 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C | D ) => any | void - ): Object, - at(object?: ?Object, ...paths: Array): Array, - at(object?: ?Object, paths: Array): Array, - create(prototype: T, properties?: Object): $Supertype, - defaults(object?: ?Object, ...sources?: Array): Object, - defaultsDeep(object?: ?Object, ...sources?: Array): Object, + ): Object; + at(object?: ?Object, ...paths: Array): Array; + at(object?: ?Object, paths: Array): Array; + create(prototype: T, properties?: Object): $Supertype; + defaults(object?: ?Object, ...sources?: Array): Object; + defaultsDeep(object?: ?Object, ...sources?: Array): Object; // alias for _.toPairs - entries(object?: ?Object): NestedArray, + entries(object?: ?Object): NestedArray; // alias for _.toPairsIn - entriesIn(object?: ?Object): NestedArray, + entriesIn(object?: ?Object): NestedArray; // alias for _.assignIn - extend(a: A, b: B): A & B, - extend(a: A, b: B, c: C): A & B & C, - extend(a: A, b: B, c: C, d: D): A & B & C & D, - extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E, + extend(a: A, b: B): A & B; + extend(a: A, b: B, c: C): A & B & C; + extend(a: A, b: B, c: C, d: D): A & B & C & D; + extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; // alias for _.assignInWith extendWith( object: T, @@ -835,7 +902,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A ) => any | void - ): Object, + ): Object; extendWith( object: T, s1: A, @@ -847,7 +914,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B ) => any | void - ): Object, + ): Object; extendWith( object: T, s1: A, @@ -860,7 +927,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C ) => any | void - ): Object, + ): Object; extendWith( object: T, s1: A, @@ -874,40 +941,41 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C | D ) => any | void - ): Object, + ): Object; findKey( object?: ?T, predicate?: OPredicate - ): string | void, + ): string | void; findLastKey( object?: ?T, predicate?: OPredicate - ): string | void, - forIn(object?: ?Object, iteratee?: OIteratee<*>): Object, - forInRight(object?: ?Object, iteratee?: OIteratee<*>): Object, - forOwn(object?: ?Object, iteratee?: OIteratee<*>): Object, - forOwnRight(object?: ?Object, iteratee?: OIteratee<*>): Object, - functions(object?: ?Object): Array, - functionsIn(object?: ?Object): Array, + ): string | void; + forIn(object?: ?Object, iteratee?: OIteratee<*>): Object; + forInRight(object?: ?Object, iteratee?: OIteratee<*>): Object; + forOwn(object?: ?Object, iteratee?: OIteratee<*>): Object; + forOwnRight(object?: ?Object, iteratee?: OIteratee<*>): Object; + functions(object?: ?Object): Array; + functionsIn(object?: ?Object): Array; get( object?: ?Object | ?Array, path?: ?Array | string, defaultValue?: any - ): any, - has(object?: ?Object, path?: ?Array | string): boolean, - hasIn(object?: ?Object, path?: ?Array | string): boolean, - invert(object?: ?Object, multiVal?: boolean): Object, - invertBy(object: ?Object, iteratee?: Function): Object, + ): any; + has(object?: ?Object, path?: ?Array | string): boolean; + hasIn(object?: ?Object, path?: ?Array | string): boolean; + invert(object?: ?Object, multiVal?: boolean): Object; + invertBy(object: ?Object, iteratee?: Function): Object; invoke( object?: ?Object, path?: ?Array | string, ...args?: Array - ): any, - keys(object?: ?Object): Array, - keysIn(object?: ?Object): Array, - mapKeys(object?: ?Object, iteratee?: OIteratee<*>): Object, - mapValues(object?: ?Object, iteratee?: OIteratee<*>): Object, - merge(object?: ?Object, ...sources?: Array): Object, + ): any; + keys(object?: ?{ [key: K]: any }): Array; + keys(object?: ?Object): Array; + keysIn(object?: ?Object): Array; + mapKeys(object?: ?Object, iteratee?: OIteratee<*>): Object; + mapValues(object?: ?Object, iteratee?: OIteratee<*>): Object; + merge(object?: ?Object, ...sources?: Array): Object; mergeWith( object: T, customizer?: ( @@ -917,7 +985,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A ) => any | void - ): Object, + ): Object; mergeWith( object: T, s1: A, @@ -929,7 +997,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B ) => any | void - ): Object, + ): Object; mergeWith( object: T, s1: A, @@ -942,7 +1010,7 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C ) => any | void - ): Object, + ): Object; mergeWith( object: T, s1: A, @@ -956,224 +1024,293 @@ declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, object: T, source: A | B | C | D ) => any | void - ): Object, - omit(object?: ?Object, ...props: Array): Object, - omit(object?: ?Object, props: Array): Object, + ): Object; + omit(object?: ?Object, ...props: Array): Object; + omit(object?: ?Object, props: Array): Object; omitBy( object?: ?T, predicate?: OPredicate - ): Object, - pick(object?: ?Object, ...props: Array): Object, - pick(object?: ?Object, props: Array): Object, + ): Object; + pick(object?: ?Object, ...props: Array): Object; + pick(object?: ?Object, props: Array): Object; pickBy( object?: ?T, predicate?: OPredicate - ): Object, + ): Object; result( object?: ?Object, path?: ?Array | string, defaultValue?: any - ): any, - set(object?: ?Object, path?: ?Array | string, value: any): Object, + ): any; + set(object?: ?Object, path?: ?Array | string, value: any): Object; setWith( object: T, path?: ?Array | string, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any - ): Object, - toPairs(object?: ?Object | Array<*>): NestedArray, - toPairsIn(object?: ?Object): NestedArray, + ): Object; + toPairs(object?: ?Object | Array<*>): NestedArray; + toPairsIn(object?: ?Object): NestedArray; transform( collection: Object | Array, iteratee?: OIteratee<*>, accumulator?: any - ): any, - unset(object?: ?Object, path?: ?Array | string): boolean, - update(object: Object, path: string[] | string, updater: Function): Object, + ): any; + unset(object?: ?Object, path?: ?Array | string): boolean; + update(object: Object, path: string[] | string, updater: Function): Object; updateWith( object: Object, path: string[] | string, updater: Function, customizer?: Function - ): Object, - values(object?: ?Object): Array, - valuesIn(object?: ?Object): Array, + ): Object; + values(object?: ?Object): Array; + valuesIn(object?: ?Object): Array; // Seq // harder to read, but this is _() - (value: any): any, - chain(value: T): any, - tap(value: T, interceptor: (value: T) => any): T, - thru(value: T1, interceptor: (value: T1) => T2): T2, + (value: any): any; + chain(value: T): any; + tap(value: T, interceptor: (value: T) => any): T; + thru(value: T1, interceptor: (value: T1) => T2): T2; // TODO: _.prototype.* // String - camelCase(string?: ?string): string, - capitalize(string?: string): string, - deburr(string?: string): string, - endsWith(string?: string, target?: string, position?: number): boolean, - escape(string?: string): string, - escapeRegExp(string?: string): string, - kebabCase(string?: string): string, - lowerCase(string?: string): string, - lowerFirst(string?: string): string, - pad(string?: string, length?: number, chars?: string): string, - padEnd(string?: string, length?: number, chars?: string): string, - padStart(string?: string, length?: number, chars?: string): string, - parseInt(string: string, radix?: number): number, - repeat(string?: string, n?: number): string, + camelCase(string?: ?string): string; + capitalize(string?: string): string; + deburr(string?: string): string; + endsWith(string?: string, target?: string, position?: number): boolean; + escape(string?: string): string; + escapeRegExp(string?: string): string; + kebabCase(string?: string): string; + lowerCase(string?: string): string; + lowerFirst(string?: string): string; + pad(string?: string, length?: number, chars?: string): string; + padEnd(string?: string, length?: number, chars?: string): string; + padStart(string?: string, length?: number, chars?: string): string; + parseInt(string: string, radix?: number): number; + repeat(string?: string, n?: number): string; replace( string?: string, pattern: RegExp | string, replacement: ((string: string) => string) | string - ): string, - snakeCase(string?: string): string, + ): string; + snakeCase(string?: string): string; split( string?: string, separator: RegExp | string, limit?: number - ): Array, - startCase(string?: string): string, - startsWith(string?: string, target?: string, position?: number): boolean, - template(string?: string, options?: TemplateSettings): Function, - toLower(string?: string): string, - toUpper(string?: string): string, - trim(string?: string, chars?: string): string, - trimEnd(string?: string, chars?: string): string, - trimStart(string?: string, chars?: string): string, - truncate(string?: string, options?: TruncateOptions): string, - unescape(string?: string): string, - upperCase(string?: string): string, - upperFirst(string?: string): string, - words(string?: string, pattern?: RegExp | string): Array, + ): Array; + startCase(string?: string): string; + startsWith(string?: string, target?: string, position?: number): boolean; + template(string?: string, options?: TemplateSettings): Function; + toLower(string?: string): string; + toUpper(string?: string): string; + trim(string?: string, chars?: string): string; + trimEnd(string?: string, chars?: string): string; + trimStart(string?: string, chars?: string): string; + truncate(string?: string, options?: TruncateOptions): string; + unescape(string?: string): string; + upperCase(string?: string): string; + upperFirst(string?: string): string; + words(string?: string, pattern?: RegExp | string): Array; // Util - attempt(func: Function, ...args: Array): any, - bindAll(object?: ?Object, methodNames: Array): Object, - bindAll(object?: ?Object, ...methodNames: Array): Object, - cond(pairs: NestedArray): Function, - conforms(source: Object): Function, - constant(value: T): () => T, + attempt(func: Function, ...args: Array): any; + bindAll(object?: ?Object, methodNames: Array): Object; + bindAll(object?: ?Object, ...methodNames: Array): Object; + cond(pairs: NestedArray): Function; + conforms(source: Object): Function; + constant(value: T): () => T; defaultTo( value: T1, defaultValue: T2 - ): T1, + ): T1; // NaN is a number instead of its own type, otherwise it would behave like null/void - defaultTo(value: T1, defaultValue: T2): T1 | T2, - defaultTo(value: T1, defaultValue: T2): T2, - flow: Flow, - flow(funcs?: Array): Function, - flowRight: FlowRight, - flowRight(funcs?: Array): Function, - identity(value: T): T, - iteratee(func?: any): Function, - matches(source: Object): Function, - matchesProperty(path?: ?Array | string, srcValue: any): Function, - method(path?: ?Array | string, ...args?: Array): Function, - methodOf(object?: ?Object, ...args?: Array): Function, + defaultTo(value: T1, defaultValue: T2): T1 | T2; + defaultTo(value: T1, defaultValue: T2): T2; + flow: $ComposeReverse; + flow(funcs?: Array): Function; + flowRight: $Compose; + flowRight(funcs?: Array): Function; + identity(value: T): T; + iteratee(func?: any): Function; + matches(source: Object): Function; + matchesProperty(path?: ?Array | string, srcValue: any): Function; + method(path?: ?Array | string, ...args?: Array): Function; + methodOf(object?: ?Object, ...args?: Array): Function; mixin( object?: T, source: Object, options?: { chain: boolean } - ): T, - noConflict(): Lodash, - noop(...args: Array): void, - nthArg(n?: number): Function, - over(...iteratees: Array): Function, - over(iteratees: Array): Function, - overEvery(...predicates: Array): Function, - overEvery(predicates: Array): Function, - overSome(...predicates: Array): Function, - overSome(predicates: Array): Function, - property(path?: ?Array | string): Function, - propertyOf(object?: ?Object): Function, - range(start: number, end: number, step?: number): Array, - range(end: number, step?: number): Array, - rangeRight(start: number, end: number, step?: number): Array, - rangeRight(end: number, step?: number): Array, - runInContext(context?: Object): Function, + ): T; + noConflict(): Lodash; + noop(...args: Array): void; + nthArg(n?: number): Function; + over(...iteratees: Array): Function; + over(iteratees: Array): Function; + overEvery(...predicates: Array): Function; + overEvery(predicates: Array): Function; + overSome(...predicates: Array): Function; + overSome(predicates: Array): Function; + property(path?: ?Array | string): Function; + propertyOf(object?: ?Object): Function; + range(start: number, end: number, step?: number): Array; + range(end: number, step?: number): Array; + rangeRight(start: number, end: number, step?: number): Array; + rangeRight(end: number, step?: number): Array; + runInContext(context?: Object): Function; - stubArray(): Array<*>, - stubFalse(): false, - stubObject(): {}, - stubString(): "", - stubTrue(): true, - times(n: number, ...rest: Array): Array, - times(n: number, iteratee: (i: number) => T): Array, - toPath(value: any): Array, - uniqueId(prefix?: string): string, + stubArray(): Array<*>; + stubFalse(): false; + stubObject(): {}; + stubString(): ""; + stubTrue(): true; + times(n: number, ...rest: Array): Array; + times(n: number, iteratee: (i: number) => T): Array; + toPath(value: any): Array; + uniqueId(prefix?: string): string; // Properties - VERSION: string, - templateSettings: TemplateSettings + VERSION: string; + templateSettings: TemplateSettings; } declare var exports: Lodash; } declare module "lodash/fp" { - declare type __CurriedFunction1 = - & ((...r: [AA]) => R) - declare type CurriedFunction1 = __CurriedFunction1 + declare type __CurriedFunction1 = (...r: [AA]) => R; + declare type CurriedFunction1 = __CurriedFunction1; - declare type __CurriedFunction2 = - & ((...r: [AA]) => CurriedFunction1) - & ((...r: [AA, BB]) => R) - declare type CurriedFunction2 = __CurriedFunction2 + declare type __CurriedFunction2 = (( + ...r: [AA] + ) => CurriedFunction1) & + ((...r: [AA, BB]) => R); + declare type CurriedFunction2 = __CurriedFunction2; - declare type __CurriedFunction3 = - & ((...r: [AA]) => CurriedFunction2) - & ((...r: [AA, BB]) => CurriedFunction1) - & ((...r: [AA, BB, CC]) => R) - declare type CurriedFunction3 = __CurriedFunction3 + declare type __CurriedFunction3 = (( + ...r: [AA] + ) => CurriedFunction2) & + ((...r: [AA, BB]) => CurriedFunction1) & + ((...r: [AA, BB, CC]) => R); + declare type CurriedFunction3 = __CurriedFunction3< + A, + B, + C, + R, + *, + *, + * + >; - declare type __CurriedFunction4 = - & ((...r: [AA]) => CurriedFunction3) - & ((...r: [AA, BB]) => CurriedFunction2) - & ((...r: [AA, BB, CC]) => CurriedFunction1) - & ((...r: [AA, BB, CC, DD]) => R) - declare type CurriedFunction4 = __CurriedFunction4 + declare type __CurriedFunction4< + A, + B, + C, + D, + R, + AA: A, + BB: B, + CC: C, + DD: D + > = ((...r: [AA]) => CurriedFunction3) & + ((...r: [AA, BB]) => CurriedFunction2) & + ((...r: [AA, BB, CC]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD]) => R); + declare type CurriedFunction4 = __CurriedFunction4< + A, + B, + C, + D, + R, + *, + *, + *, + * + >; - declare type __CurriedFunction5 = - & ((...r: [AA]) => CurriedFunction4) - & ((...r: [AA, BB]) => CurriedFunction3) - & ((...r: [AA, BB, CC]) => CurriedFunction2) - & ((...r: [AA, BB, CC, DD]) => CurriedFunction1) - & ((...r: [AA, BB, CC, DD, EE]) => R) - declare type CurriedFunction5 = __CurriedFunction5 + declare type __CurriedFunction5< + A, + B, + C, + D, + E, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E + > = ((...r: [AA]) => CurriedFunction4) & + ((...r: [AA, BB]) => CurriedFunction3) & + ((...r: [AA, BB, CC]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE]) => R); + declare type CurriedFunction5 = __CurriedFunction5< + A, + B, + C, + D, + E, + R, + *, + *, + *, + *, + * + >; - declare type __CurriedFunction6 = - & ((...r: [AA]) => CurriedFunction5) - & ((...r: [AA, BB]) => CurriedFunction4) - & ((...r: [AA, BB, CC]) => CurriedFunction3) - & ((...r: [AA, BB, CC, DD]) => CurriedFunction2) - & ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) - & ((...r: [AA, BB, CC, DD, EE, FF]) => R) - declare type CurriedFunction6 = __CurriedFunction6 + declare type __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + FF: F + > = ((...r: [AA]) => CurriedFunction5) & + ((...r: [AA, BB]) => CurriedFunction4) & + ((...r: [AA, BB, CC]) => CurriedFunction3) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE, FF]) => R); + declare type CurriedFunction6 = __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + *, + *, + *, + *, + *, + * + >; - declare type Curry = - & (((...r: [A]) => R) => CurriedFunction1) - & (((...r: [A, B]) => R) => CurriedFunction2) - & (((...r: [A, B, C]) => R) => CurriedFunction3) - & (((...r: [A, B, C, D]) => R) => CurriedFunction4) - & (((...r: [A, B, C, D, E]) => R) => CurriedFunction5) - & (((...r: [A, B, C, D, E, F]) => R) => CurriedFunction6) + declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & + (((...r: [A, B]) => R) => CurriedFunction2) & + (((...r: [A, B, C]) => R) => CurriedFunction3) & + (( + (...r: [A, B, C, D]) => R + ) => CurriedFunction4) & + (( + (...r: [A, B, C, D, E]) => R + ) => CurriedFunction5) & + (( + (...r: [A, B, C, D, E, F]) => R + ) => CurriedFunction6); - declare type UnaryFn = (a: A) => R; - - declare type Flow = ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, de: UnaryFn, ef: UnaryFn, fg: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, de: UnaryFn, ef: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, de: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, cd: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, bc: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, ...rest: Array) => UnaryFn) - - declare type FlowRight = & ((fg: UnaryFn, ef: UnaryFn, de: UnaryFn, cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((ef: UnaryFn, de: UnaryFn, cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((de: UnaryFn, cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((cd: UnaryFn, bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((bc: UnaryFn, ab: UnaryFn, ...rest: Array) => UnaryFn) - & ((ab: UnaryFn, ...rest: Array) => UnaryFn) + declare type UnaryFn = (a: A) => R; declare type TemplateSettings = { escape?: RegExp, @@ -1212,10 +1349,7 @@ declare module "lodash/fp" { | matchesPropertyIterateeShorthand | propertyIterateeShorthand; - declare type OIterateeWithResult = - | Object - | string - | ((value: V) => R); + declare type OIterateeWithResult = Object | string | ((value: V) => R); declare type OIteratee = OIterateeWithResult; declare type OFlatMapIteratee = OIterateeWithResult>; @@ -1235,9 +1369,7 @@ declare module "lodash/fp" { | string; declare type Comparator = (item: T, item2: T) => boolean; - declare type MapIterator = - | ((item: T) => U) - | propertyIterateeShorthand; + declare type MapIterator = ((item: T) => U) | propertyIterateeShorthand; declare type OMapIterator = | ((item: T) => U) @@ -1245,728 +1377,1589 @@ declare module "lodash/fp" { declare class Lodash { // Array - chunk(size: number): (array: Array) => Array>, - chunk(size: number, array: Array): Array>, - compact(array: Array): Array, - concat | T, B: Array | U>(base: A): (elements: B) => Array, - concat | T, B: Array | U>(base: A, elements: B): Array, - difference(values: Array): (array: Array) => Array, - difference(values: Array, array: Array): Array, - differenceBy(iteratee: ValueOnlyIteratee): ((values: Array) => (array: Array) => T[]) & ((values: Array, array: Array) => T[]), - differenceBy(iteratee: ValueOnlyIteratee, values: Array): (array: Array) => T[], - differenceBy(iteratee: ValueOnlyIteratee, values: Array, array: Array): T[], - differenceWith(values: T[]): ((comparator: Comparator) => (array: T[]) => T[]) & ((comparator: Comparator, array: T[]) => T[]), - differenceWith(values: T[], comparator: Comparator): (array: T[]) => T[], - differenceWith(values: T[], comparator: Comparator, array: T[]): T[], - drop(n: number): (array: Array) => Array, - drop(n: number, array: Array): Array, - dropLast(n: number): (array: Array) => Array, - dropLast(n: number, array: Array): Array, - dropRight(n: number): (array: Array) => Array, - dropRight(n: number, array: Array): Array, - dropRightWhile(predicate: Predicate): (array: Array) => Array, - dropRightWhile(predicate: Predicate, array: Array): Array, - dropWhile(predicate: Predicate): (array: Array) => Array, - dropWhile(predicate: Predicate, array: Array): Array, - dropLastWhile(predicate: Predicate): (array: Array) => Array, - dropLastWhile(predicate: Predicate, array: Array): Array, - fill(start: number): ((end: number) => (((value: U) => (array: Array) => Array) & ((value: U, array: Array) => Array))) & ((end: number, value: U) => (array: Array) => Array) & ((end: number, value: U, array: Array) => Array), - fill(start: number, end: number): ((value: U) => (array: Array) => Array) & ((value: U, array: Array) => Array), - fill(start: number, end: number, value: U): (array: Array) => Array, - fill(start: number, end: number, value: U, array: Array): Array, - findIndex(predicate: Predicate): (array: Array) => number, - findIndex(predicate: Predicate, array: Array): number, - findIndexFrom(predicate: Predicate): ((fromIndex: number) => (array: Array) => number) & ((fromIndex: number, array: Array) => number), - findIndexFrom(predicate: Predicate, fromIndex: number): (array: Array) => number, - findIndexFrom(predicate: Predicate, fromIndex: number, array: Array): number, - findLastIndex(predicate: Predicate): (array: Array) => number, - findLastIndex(predicate: Predicate, array: Array): number, - findLastIndexFrom(predicate: Predicate): ((fromIndex: number) => (array: Array) => number) & ((fromIndex: number, array: Array) => number), - findLastIndexFrom(predicate: Predicate, fromIndex: number): (array: Array) => number, - findLastIndexFrom(predicate: Predicate, fromIndex: number, array: Array): number, + chunk(size: number): (array: Array) => Array>; + chunk(size: number, array: Array): Array>; + compact(array: Array): Array; + concat | T, B: Array | U>( + base: A + ): (elements: B) => Array; + concat | T, B: Array | U>( + base: A, + elements: B + ): Array; + difference(values: Array): (array: Array) => Array; + difference(values: Array, array: Array): Array; + differenceBy( + iteratee: ValueOnlyIteratee + ): ((values: Array) => (array: Array) => T[]) & + ((values: Array, array: Array) => T[]); + differenceBy( + iteratee: ValueOnlyIteratee, + values: Array + ): (array: Array) => T[]; + differenceBy( + iteratee: ValueOnlyIteratee, + values: Array, + array: Array + ): T[]; + differenceWith( + values: T[] + ): ((comparator: Comparator) => (array: T[]) => T[]) & + ((comparator: Comparator, array: T[]) => T[]); + differenceWith( + values: T[], + comparator: Comparator + ): (array: T[]) => T[]; + differenceWith(values: T[], comparator: Comparator, array: T[]): T[]; + drop(n: number): (array: Array) => Array; + drop(n: number, array: Array): Array; + dropLast(n: number): (array: Array) => Array; + dropLast(n: number, array: Array): Array; + dropRight(n: number): (array: Array) => Array; + dropRight(n: number, array: Array): Array; + dropRightWhile(predicate: Predicate): (array: Array) => Array; + dropRightWhile(predicate: Predicate, array: Array): Array; + dropWhile(predicate: Predicate): (array: Array) => Array; + dropWhile(predicate: Predicate, array: Array): Array; + dropLastWhile(predicate: Predicate): (array: Array) => Array; + dropLastWhile(predicate: Predicate, array: Array): Array; + fill( + start: number + ): (( + end: number + ) => ((value: U) => (array: Array) => Array) & + ((value: U, array: Array) => Array)) & + ((end: number, value: U) => (array: Array) => Array) & + ((end: number, value: U, array: Array) => Array); + fill( + start: number, + end: number + ): ((value: U) => (array: Array) => Array) & + ((value: U, array: Array) => Array); + fill( + start: number, + end: number, + value: U + ): (array: Array) => Array; + fill( + start: number, + end: number, + value: U, + array: Array + ): Array; + findIndex(predicate: Predicate): (array: $ReadOnlyArray) => number; + findIndex(predicate: Predicate, array: $ReadOnlyArray): number; + findIndexFrom( + predicate: Predicate + ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & + ((fromIndex: number, array: $ReadOnlyArray) => number); + findIndexFrom( + predicate: Predicate, + fromIndex: number + ): (array: $ReadOnlyArray) => number; + findIndexFrom( + predicate: Predicate, + fromIndex: number, + array: $ReadOnlyArray + ): number; + findLastIndex( + predicate: Predicate + ): (array: $ReadOnlyArray) => number; + findLastIndex(predicate: Predicate, array: $ReadOnlyArray): number; + findLastIndexFrom( + predicate: Predicate + ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & + ((fromIndex: number, array: $ReadOnlyArray) => number); + findLastIndexFrom( + predicate: Predicate, + fromIndex: number + ): (array: $ReadOnlyArray) => number; + findLastIndexFrom( + predicate: Predicate, + fromIndex: number, + array: $ReadOnlyArray + ): number; // alias of _.head - first(array: Array): T, - flatten(array: Array | X>): Array, - unnest(array: Array | X>): Array, - flattenDeep(array: any[]): Array, - flattenDepth(depth: number): (array: any[]) => any[], - flattenDepth(depth: number, array: any[]): any[], - fromPairs(pairs: Array): Object, - head(array: Array): T, - indexOf(value: T): (array: Array) => number, - indexOf(value: T, array: Array): number, - indexOfFrom(value: T): ((fromIndex: number) => (array: Array) => number) & ((fromIndex: number, array: Array) => number), - indexOfFrom(value: T, fromIndex: number): (array: Array) => number, - indexOfFrom(value: T, fromIndex: number, array: Array): number, - initial(array: Array): Array, - init(array: Array): Array, - intersection(a1: Array): (a2: Array) => Array, - intersection(a1: Array, a2: Array): Array, - intersectionBy(iteratee: ValueOnlyIteratee): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - intersectionBy(iteratee: ValueOnlyIteratee, a1: Array): (a2: Array) => Array, - intersectionBy(iteratee: ValueOnlyIteratee, a1: Array, a2: Array): Array, - intersectionWith(comparator: Comparator): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - intersectionWith(comparator: Comparator, a1: Array): (a2: Array) => Array, - intersectionWith(comparator: Comparator, a1: Array, a2: Array): Array, - join(separator: string): (array: Array) => string, - join(separator: string, array: Array): string, - last(array: Array): T, - lastIndexOf(value: T): (array: Array) => number, - lastIndexOf(value: T, array: Array): number, - lastIndexOfFrom(value: T): ((fromIndex: number) => (array: Array) => number) & ((fromIndex: number, array: Array) => number), - lastIndexOfFrom(value: T, fromIndex: number): (array: Array) => number, - lastIndexOfFrom(value: T, fromIndex: number, array: Array): number, - nth(n: number): (array: T[]) => T, - nth(n: number, array: T[]): T, - pull(value: T): (array: Array) => Array, - pull(value: T, array: Array): Array, - pullAll(values: Array): (array: Array) => Array, - pullAll(values: Array, array: Array): Array, - pullAllBy(iteratee: ValueOnlyIteratee): ((values: Array) => (array: Array) => Array) & ((values: Array, array: Array) => Array), - pullAllBy(iteratee: ValueOnlyIteratee, values: Array): (array: Array) => Array, - pullAllBy(iteratee: ValueOnlyIteratee, values: Array, array: Array): Array, - pullAllWith(comparator: Function): ((values: T[]) => (array: T[]) => T[]) & ((values: T[], array: T[]) => T[]), - pullAllWith(comparator: Function, values: T[]): (array: T[]) => T[], - pullAllWith(comparator: Function, values: T[], array: T[]): T[], - pullAt(indexed: Array): (array: Array) => Array, - pullAt(indexed: Array, array: Array): Array, - remove(predicate: Predicate): (array: Array) => Array, - remove(predicate: Predicate, array: Array): Array, - reverse(array: Array): Array, - slice(start: number): ((end: number) => (array: Array) => Array) & ((end: number, array: Array) => Array), - slice(start: number, end: number): (array: Array) => Array, - slice(start: number, end: number, array: Array): Array, - sortedIndex(value: T): (array: Array) => number, - sortedIndex(value: T, array: Array): number, - sortedIndexBy(iteratee: ValueOnlyIteratee): ((value: T) => (array: Array) => number) & ((value: T, array: Array) => number), - sortedIndexBy(iteratee: ValueOnlyIteratee, value: T): (array: Array) => number, - sortedIndexBy(iteratee: ValueOnlyIteratee, value: T, array: Array): number, - sortedIndexOf(value: T): (array: Array) => number, - sortedIndexOf(value: T, array: Array): number, - sortedLastIndex(value: T): (array: Array) => number, - sortedLastIndex(value: T, array: Array): number, - sortedLastIndexBy(iteratee: ValueOnlyIteratee): ((value: T) => (array: Array) => number) & ((value: T, array: Array) => number), - sortedLastIndexBy(iteratee: ValueOnlyIteratee, value: T): (array: Array) => number, - sortedLastIndexBy(iteratee: ValueOnlyIteratee, value: T, array: Array): number, - sortedLastIndexOf(value: T): (array: Array) => number, - sortedLastIndexOf(value: T, array: Array): number, - sortedUniq(array: Array): Array, - sortedUniqBy(iteratee: (value: T) => mixed): (array: Array) => Array, - sortedUniqBy(iteratee: (value: T) => mixed, array: Array): Array, - tail(array: Array): Array, - take(n: number): (array: Array) => Array, - take(n: number, array: Array): Array, - takeRight(n: number): (array: Array) => Array, - takeRight(n: number, array: Array): Array, - takeLast(n: number): (array: Array) => Array, - takeLast(n: number, array: Array): Array, - takeRightWhile(predicate: Predicate): (array: Array) => Array, - takeRightWhile(predicate: Predicate, array: Array): Array, - takeLastWhile(predicate: Predicate): (array: Array) => Array, - takeLastWhile(predicate: Predicate, array: Array): Array, - takeWhile(predicate: Predicate): (array: Array) => Array, - takeWhile(predicate: Predicate, array: Array): Array, - union(a1: Array): (a2: Array) => Array, - union(a1: Array, a2: Array): Array, - unionBy(iteratee: ValueOnlyIteratee): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - unionBy(iteratee: ValueOnlyIteratee, a1: Array): (a2: Array) => Array, - unionBy(iteratee: ValueOnlyIteratee, a1: Array, a2: Array): Array, - unionWith(comparator: Comparator): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - unionWith(comparator: Comparator, a1: Array): (a2: Array) => Array, - unionWith(comparator: Comparator, a1: Array, a2: Array): Array, - uniq(array: Array): Array, - uniqBy(iteratee: ValueOnlyIteratee): (array: Array) => Array, - uniqBy(iteratee: ValueOnlyIteratee, array: Array): Array, - uniqWith(comparator: Comparator): (array: Array) => Array, - uniqWith(comparator: Comparator, array: Array): Array, - unzip(array: Array): Array, - unzipWith(iteratee: Iteratee): (array: Array) => Array, - unzipWith(iteratee: Iteratee, array: Array): Array, - without(values: Array): (array: Array) => Array, - without(values: Array, array: Array): Array, - xor(a1: Array): (a2: Array) => Array, - xor(a1: Array, a2: Array): Array, - symmetricDifference(a1: Array): (a2: Array) => Array, - symmetricDifference(a1: Array, a2: Array): Array, - xorBy(iteratee: ValueOnlyIteratee): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - xorBy(iteratee: ValueOnlyIteratee, a1: Array): (a2: Array) => Array, - xorBy(iteratee: ValueOnlyIteratee, a1: Array, a2: Array ): Array, - symmetricDifferenceBy(iteratee: ValueOnlyIteratee): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - symmetricDifferenceBy(iteratee: ValueOnlyIteratee, a1: Array): (a2: Array) => Array, - symmetricDifferenceBy(iteratee: ValueOnlyIteratee, a1: Array, a2: Array ): Array, - xorWith(comparator: Comparator): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - xorWith(comparator: Comparator, a1: Array): (a2: Array) => Array, - xorWith(comparator: Comparator, a1: Array, a2: Array): Array, - symmetricDifferenceWith(comparator: Comparator): ((a1: Array) => (a2: Array) => Array) & ((a1: Array, a2: Array) => Array), - symmetricDifferenceWith(comparator: Comparator, a1: Array): (a2: Array) => Array, - symmetricDifferenceWith(comparator: Comparator, a1: Array, a2: Array): Array, - zip(a1: A[]): (a2: B[]) => Array<[A, B]>, - zip(a1: A[], a2: B[]): Array<[A, B]>, - zipAll(arrays: Array>): Array, - zipObject(props: Array): (values: Array) => Object, - zipObject(props: Array, values: Array): Object, - zipObj(props: Array): (values: Array) => Object, - zipObj(props: Array, values: Array): Object, - zipObjectDeep(props: any[]): (values: any) => Object, - zipObjectDeep(props: any[], values: any): Object, - zipWith(iteratee: Iteratee): ((a1: NestedArray) => (a2: NestedArray) => Array) & ((a1: NestedArray, a2: NestedArray) => Array), - zipWith(iteratee: Iteratee, a1: NestedArray): (a2: NestedArray) => Array, - zipWith(iteratee: Iteratee, a1: NestedArray, a2: NestedArray): Array, + first(array: Array): T; + flatten(array: Array | X>): Array; + unnest(array: Array | X>): Array; + flattenDeep(array: any[]): Array; + flattenDepth(depth: number): (array: any[]) => any[]; + flattenDepth(depth: number, array: any[]): any[]; + fromPairs(pairs: Array<[A, B]>): { [key: A]: B }; + head(array: Array): T; + indexOf(value: T): (array: Array) => number; + indexOf(value: T, array: Array): number; + indexOfFrom( + value: T + ): ((fromIndex: number) => (array: Array) => number) & + ((fromIndex: number, array: Array) => number); + indexOfFrom(value: T, fromIndex: number): (array: Array) => number; + indexOfFrom(value: T, fromIndex: number, array: Array): number; + initial(array: Array): Array; + init(array: Array): Array; + intersection(a1: Array): (a2: Array) => Array; + intersection(a1: Array, a2: Array): Array; + intersectionBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + intersectionBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + intersectionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + intersectionWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + intersectionWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + intersectionWith( + comparator: Comparator, + a1: Array, + a2: Array + ): Array; + join(separator: string): (array: Array) => string; + join(separator: string, array: Array): string; + last(array: Array): T; + lastIndexOf(value: T): (array: Array) => number; + lastIndexOf(value: T, array: Array): number; + lastIndexOfFrom( + value: T + ): ((fromIndex: number) => (array: Array) => number) & + ((fromIndex: number, array: Array) => number); + lastIndexOfFrom( + value: T, + fromIndex: number + ): (array: Array) => number; + lastIndexOfFrom(value: T, fromIndex: number, array: Array): number; + nth(n: number): (array: T[]) => T; + nth(n: number, array: T[]): T; + pull(value: T): (array: Array) => Array; + pull(value: T, array: Array): Array; + pullAll(values: Array): (array: Array) => Array; + pullAll(values: Array, array: Array): Array; + pullAllBy( + iteratee: ValueOnlyIteratee + ): ((values: Array) => (array: Array) => Array) & + ((values: Array, array: Array) => Array); + pullAllBy( + iteratee: ValueOnlyIteratee, + values: Array + ): (array: Array) => Array; + pullAllBy( + iteratee: ValueOnlyIteratee, + values: Array, + array: Array + ): Array; + pullAllWith( + comparator: Function + ): ((values: T[]) => (array: T[]) => T[]) & + ((values: T[], array: T[]) => T[]); + pullAllWith(comparator: Function, values: T[]): (array: T[]) => T[]; + pullAllWith(comparator: Function, values: T[], array: T[]): T[]; + pullAt(indexed: Array): (array: Array) => Array; + pullAt(indexed: Array, array: Array): Array; + remove(predicate: Predicate): (array: Array) => Array; + remove(predicate: Predicate, array: Array): Array; + reverse(array: Array): Array; + slice( + start: number + ): ((end: number) => (array: Array) => Array) & + ((end: number, array: Array) => Array); + slice(start: number, end: number): (array: Array) => Array; + slice(start: number, end: number, array: Array): Array; + sortedIndex(value: T): (array: Array) => number; + sortedIndex(value: T, array: Array): number; + sortedIndexBy( + iteratee: ValueOnlyIteratee + ): ((value: T) => (array: Array) => number) & + ((value: T, array: Array) => number); + sortedIndexBy( + iteratee: ValueOnlyIteratee, + value: T + ): (array: Array) => number; + sortedIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + array: Array + ): number; + sortedIndexOf(value: T): (array: Array) => number; + sortedIndexOf(value: T, array: Array): number; + sortedLastIndex(value: T): (array: Array) => number; + sortedLastIndex(value: T, array: Array): number; + sortedLastIndexBy( + iteratee: ValueOnlyIteratee + ): ((value: T) => (array: Array) => number) & + ((value: T, array: Array) => number); + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + value: T + ): (array: Array) => number; + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + array: Array + ): number; + sortedLastIndexOf(value: T): (array: Array) => number; + sortedLastIndexOf(value: T, array: Array): number; + sortedUniq(array: Array): Array; + sortedUniqBy( + iteratee: (value: T) => mixed + ): (array: Array) => Array; + sortedUniqBy(iteratee: (value: T) => mixed, array: Array): Array; + tail(array: Array): Array; + take(n: number): (array: Array) => Array; + take(n: number, array: Array): Array; + takeRight(n: number): (array: Array) => Array; + takeRight(n: number, array: Array): Array; + takeLast(n: number): (array: Array) => Array; + takeLast(n: number, array: Array): Array; + takeRightWhile(predicate: Predicate): (array: Array) => Array; + takeRightWhile(predicate: Predicate, array: Array): Array; + takeLastWhile(predicate: Predicate): (array: Array) => Array; + takeLastWhile(predicate: Predicate, array: Array): Array; + takeWhile(predicate: Predicate): (array: Array) => Array; + takeWhile(predicate: Predicate, array: Array): Array; + union(a1: Array): (a2: Array) => Array; + union(a1: Array, a2: Array): Array; + unionBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + unionBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + unionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + unionWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + unionWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + unionWith( + comparator: Comparator, + a1: Array, + a2: Array + ): Array; + uniq(array: Array): Array; + uniqBy(iteratee: ValueOnlyIteratee): (array: Array) => Array; + uniqBy(iteratee: ValueOnlyIteratee, array: Array): Array; + uniqWith(comparator: Comparator): (array: Array) => Array; + uniqWith(comparator: Comparator, array: Array): Array; + unzip(array: Array): Array; + unzipWith(iteratee: Iteratee): (array: Array) => Array; + unzipWith(iteratee: Iteratee, array: Array): Array; + without(values: Array): (array: Array) => Array; + without(values: Array, array: Array): Array; + xor(a1: Array): (a2: Array) => Array; + xor(a1: Array, a2: Array): Array; + symmetricDifference(a1: Array): (a2: Array) => Array; + symmetricDifference(a1: Array, a2: Array): Array; + xorBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + xorBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + xorBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + xorWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + xorWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + xorWith(comparator: Comparator, a1: Array, a2: Array): Array; + symmetricDifferenceWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + symmetricDifferenceWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + symmetricDifferenceWith( + comparator: Comparator, + a1: Array, + a2: Array + ): Array; + zip(a1: A[]): (a2: B[]) => Array<[A, B]>; + zip(a1: A[], a2: B[]): Array<[A, B]>; + zipAll(arrays: Array>): Array; + zipObject(props?: Array): (values?: Array) => { [key: K]: V }; + zipObject(props?: Array, values?: Array): { [key: K]: V }; + zipObj(props: Array): (values: Array) => Object; + zipObj(props: Array, values: Array): Object; + zipObjectDeep(props: any[]): (values: any) => Object; + zipObjectDeep(props: any[], values: any): Object; + zipWith( + iteratee: Iteratee + ): ((a1: NestedArray) => (a2: NestedArray) => Array) & + ((a1: NestedArray, a2: NestedArray) => Array); + zipWith( + iteratee: Iteratee, + a1: NestedArray + ): (a2: NestedArray) => Array; + zipWith( + iteratee: Iteratee, + a1: NestedArray, + a2: NestedArray + ): Array; // Collection - countBy(iteratee: ValueOnlyIteratee): (collection: Array | { [id: any]: T }) => { [string]: number }, - countBy(iteratee: ValueOnlyIteratee, collection: Array | { [id: any]: T }): { [string]: number }, + countBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [string]: number }; + countBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [string]: number }; // alias of _.forEach - each(iteratee: Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => Array, - each(iteratee: Iteratee | OIteratee, collection: Array | { [id: any]: T }): Array, + each( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + each( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; // alias of _.forEachRight - eachRight(iteratee: Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => Array, - eachRight(iteratee: Iteratee | OIteratee, collection: Array | { [id: any]: T }): Array, - every(iteratee: Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => boolean, - every(iteratee: Iteratee | OIteratee, collection: Array | { [id: any]: T }): boolean, - all(iteratee: Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => boolean, - all(iteratee: Iteratee | OIteratee, collection: Array | { [id: any]: T }): boolean, - filter(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => Array, - filter(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): Array, - find(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => T | void, - find(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): T | void, - findFrom(predicate: Predicate | OPredicate): ((fromIndex: number) => (collection: Array | { [id: any]: T }) => T | void) & ((fromIndex: number, collection: Array | { [id: any]: T }) => T | void), - findFrom(predicate: Predicate | OPredicate, fromIndex: number): (collection: Array | { [id: any]: T }) => T | void, - findFrom(predicate: Predicate | OPredicate, fromIndex: number, collection: Array | { [id: any]: T }): T | void, - findLast(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => T | void, - findLast(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): T | void, - findLastFrom(predicate: Predicate | OPredicate): ((fromIndex: number) => (collection: Array | { [id: any]: T }) => T | void) & ((fromIndex: number, collection: Array | { [id: any]: T }) => T | void), - findLastFrom(predicate: Predicate | OPredicate, fromIndex: number): (collection: Array | { [id: any]: T }) => T | void, - findLastFrom(predicate: Predicate | OPredicate, fromIndex: number, collection: Array | { [id: any]: T }): T | void, - flatMap(iteratee: FlatMapIteratee | OFlatMapIteratee): (collection: Array | { [id: any]: T }) => Array, - flatMap(iteratee: FlatMapIteratee | OFlatMapIteratee, collection: Array | { [id: any]: T }): Array, - flatMapDeep(iteratee: FlatMapIteratee | OFlatMapIteratee): (collection: Array | { [id: any]: T }) => Array, - flatMapDeep(iteratee: FlatMapIteratee | OFlatMapIteratee, collection: Array | { [id: any]: T }): Array, - flatMapDepth(iteratee: FlatMapIteratee | OFlatMapIteratee): ((depth: number) => (collection: Array | { [id: any]: T }) => Array) & ((depth: number, collection: Array | { [id: any]: T }) => Array), - flatMapDepth(iteratee: FlatMapIteratee | OFlatMapIteratee, depth: number): (collection: Array | { [id: any]: T }) => Array, - flatMapDepth(iteratee: FlatMapIteratee | OFlatMapIteratee, depth: number, collection: Array | { [id: any]: T }): Array, - forEach(iteratee: Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => Array, - forEach(iteratee: Iteratee | OIteratee, collection: Array | { [id: any]: T }): Array, - forEachRight(iteratee: Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => Array, - forEachRight(iteratee: Iteratee | OIteratee, collection: Array | { [id: any]: T }): Array, - groupBy(iteratee: ValueOnlyIteratee): (collection: Array | { [id: any]: T }) => { [key: V]: Array }, - groupBy(iteratee: ValueOnlyIteratee, collection: Array | { [id: any]: T }): { [key: V]: Array }, - includes(value: string): (str: string) => boolean, - includes(value: string, str: string): boolean, - includes(value: T): (collection: Array | { [id: any]: T }) => boolean, - includes(value: T, collection: Array | { [id: any]: T }): boolean, - contains(value: string): (str: string) => boolean, - contains(value: string, str: string): boolean, - contains(value: T): (collection: Array | { [id: any]: T }) => boolean, - contains(value: T, collection: Array | { [id: any]: T }): boolean, - includesFrom(value: string): ((fromIndex: number) => (str: string) => boolean) & ((fromIndex: number, str: string) => boolean), - includesFrom(value: string, fromIndex: number): (str: string) => boolean, - includesFrom(value: string, fromIndex: number, str: string): boolean, - includesFrom(value: T): ((fromIndex: number) => (collection: Array) => boolean) & ((fromIndex: number, collection: Array) => boolean), - includesFrom(value: T, fromIndex: number): (collection: Array) => boolean, - includesFrom(value: T, fromIndex: number, collection: Array): boolean, - invokeMap(path: ((value: T) => Array | string) | Array | string): (collection: Array | { [id: any]: T }) => Array, - invokeMap(path: ((value: T) => Array | string) | Array | string, collection: Array | { [id: any]: T }): Array, - invokeArgsMap(path: ((value: T) => Array | string) | Array | string): ((collection: Array | { [id: any]: T }) => (args: Array) => Array) & ((collection: Array | { [id: any]: T }, args: Array) => Array), - invokeArgsMap(path: ((value: T) => Array | string) | Array | string, collection: Array | { [id: any]: T }): (args: Array) => Array, - invokeArgsMap(path: ((value: T) => Array | string) | Array | string, collection: Array | { [id: any]: T }, args: Array): Array, - keyBy(iteratee: ValueOnlyIteratee): (collection: Array | { [id: any]: T }) => { [key: V]: T }, - keyBy(iteratee: ValueOnlyIteratee, collection: Array | { [id: any]: T }): { [key: V]: T }, - indexBy(iteratee: ValueOnlyIteratee): (collection: Array | { [id: any]: T }) => { [key: V]: T }, - indexBy(iteratee: ValueOnlyIteratee, collection: Array | { [id: any]: T }): { [key: V]: T }, - map(iteratee: MapIterator | OMapIterator): (collection: Array | { [id: any]: T}) => Array, - map(iteratee: MapIterator | OMapIterator, collection: Array | { [id: any]: T}): Array, - map(iteratee: (char: string) => any): (str: string) => string, - map(iteratee: (char: string) => any, str: string): string, - pluck(iteratee: MapIterator | OMapIterator): (collection: Array | { [id: any]: T}) => Array, - pluck(iteratee: MapIterator | OMapIterator, collection: Array | { [id: any]: T}): Array, - pluck(iteratee: (char: string) => any): (str: string) => string, - pluck(iteratee: (char: string) => any, str: string): string, - orderBy(iteratees: Array | OIteratee<*>> | string): ((orders: Array<"asc" | "desc"> | string) => (collection: Array | { [id: any]: T}) => Array) & ((orders: Array<"asc" | "desc"> | string, collection: Array | { [id: any]: T}) => Array), - orderBy(iteratees: Array | OIteratee<*>> | string, orders: Array<"asc" | "desc"> | string): (collection: Array | { [id: any]: T}) => Array, - orderBy(iteratees: Array | OIteratee<*>> | string, orders: Array<"asc" | "desc"> | string, collection: Array | { [id: any]: T}): Array, - partition(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => NestedArray, - partition(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): NestedArray, - reduce(iteratee: (accumulator: U, value: T) => U): ((accumulator: U) => (collection: Array | { [id: any]: T}) => U) & ((accumulator: U, collection: Array | { [id: any]: T}) => U), - reduce(iteratee: (accumulator: U, value: T) => U, accumulator: U): (collection: Array | { [id: any]: T}) => U, - reduce(iteratee: (accumulator: U, value: T) => U, accumulator: U, collection: Array | { [id: any]: T}): U, - reduceRight(iteratee: (value: T, accumulator: U) => U): ((accumulator: U) => (collection: Array | { [id: any]: T }) => U) & ((accumulator: U, collection: Array | { [id: any]: T }) => U), - reduceRight(iteratee: (value: T, accumulator: U) => U, accumulator: U): (collection: Array | { [id: any]: T }) => U, - reduceRight(iteratee: (value: T, accumulator: U) => U, accumulator: U, collection: Array | { [id: any]: T }): U, - reject(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => Array, - reject(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): Array, - sample(collection: Array | { [id: any]: T }): T, - sampleSize(n: number): (collection: Array | { [id: any]: T }) => Array, - sampleSize(n: number, collection: Array | { [id: any]: T }): Array, - shuffle(collection: Array | { [id: any]: T }): Array, - size(collection: Array | Object): number, - some(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => boolean, - some(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): boolean, - any(predicate: Predicate | OPredicate): (collection: Array | { [id: any]: T }) => boolean, - any(predicate: Predicate | OPredicate, collection: Array | { [id: any]: T }): boolean, - sortBy(iteratees: Array | OIteratee> | Iteratee | OIteratee): (collection: Array | { [id: any]: T }) => Array, - sortBy(iteratees: Array | OIteratee> | Iteratee | OIteratee, collection: Array | { [id: any]: T }): Array, + eachRight( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + eachRight( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + every( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => boolean; + every( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): boolean; + all( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => boolean; + all( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): boolean; + filter( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => Array; + filter( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): Array; + find( + predicate: Predicate | OPredicate + ): (collection: $ReadOnlyArray | { [id: any]: T }) => T | void; + find( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + findFrom( + predicate: Predicate | OPredicate + ): (( + fromIndex: number + ) => (collection: $ReadOnlyArray | { [id: any]: T }) => T | void) & + (( + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ) => T | void); + findFrom( + predicate: Predicate | OPredicate, + fromIndex: number + ): (collection: Array | { [id: any]: T }) => T | void; + findFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + findLast( + predicate: Predicate | OPredicate + ): (collection: $ReadOnlyArray | { [id: any]: T }) => T | void; + findLast( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + findLastFrom( + predicate: Predicate | OPredicate + ): (( + fromIndex: number + ) => (collection: $ReadOnlyArray | { [id: any]: T }) => T | void) & + (( + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ) => T | void); + findLastFrom( + predicate: Predicate | OPredicate, + fromIndex: number + ): (collection: $ReadOnlyArray | { [id: any]: T }) => T | void; + findLastFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + flatMap( + iteratee: FlatMapIteratee | OFlatMapIteratee + ): (collection: Array | { [id: any]: T }) => Array; + flatMap( + iteratee: FlatMapIteratee | OFlatMapIteratee, + collection: Array | { [id: any]: T } + ): Array; + flatMapDeep( + iteratee: FlatMapIteratee | OFlatMapIteratee + ): (collection: Array | { [id: any]: T }) => Array; + flatMapDeep( + iteratee: FlatMapIteratee | OFlatMapIteratee, + collection: Array | { [id: any]: T } + ): Array; + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee + ): (( + depth: number + ) => (collection: Array | { [id: any]: T }) => Array) & + ((depth: number, collection: Array | { [id: any]: T }) => Array); + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + depth: number + ): (collection: Array | { [id: any]: T }) => Array; + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + depth: number, + collection: Array | { [id: any]: T } + ): Array; + forEach( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + forEach( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + forEachRight( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + forEachRight( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + groupBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [key: V]: Array }; + groupBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [key: V]: Array }; + includes(value: string): (str: string) => boolean; + includes(value: string, str: string): boolean; + includes(value: T): (collection: Array | { [id: any]: T }) => boolean; + includes(value: T, collection: Array | { [id: any]: T }): boolean; + contains(value: string): (str: string) => boolean; + contains(value: string, str: string): boolean; + contains(value: T): (collection: Array | { [id: any]: T }) => boolean; + contains(value: T, collection: Array | { [id: any]: T }): boolean; + includesFrom( + value: string + ): ((fromIndex: number) => (str: string) => boolean) & + ((fromIndex: number, str: string) => boolean); + includesFrom(value: string, fromIndex: number): (str: string) => boolean; + includesFrom(value: string, fromIndex: number, str: string): boolean; + includesFrom( + value: T + ): ((fromIndex: number) => (collection: Array) => boolean) & + ((fromIndex: number, collection: Array) => boolean); + includesFrom( + value: T, + fromIndex: number + ): (collection: Array) => boolean; + includesFrom(value: T, fromIndex: number, collection: Array): boolean; + invokeMap( + path: ((value: T) => Array | string) | Array | string + ): (collection: Array | { [id: any]: T }) => Array; + invokeMap( + path: ((value: T) => Array | string) | Array | string, + collection: Array | { [id: any]: T } + ): Array; + invokeArgsMap( + path: ((value: T) => Array | string) | Array | string + ): (( + collection: Array | { [id: any]: T } + ) => (args: Array) => Array) & + (( + collection: Array | { [id: any]: T }, + args: Array + ) => Array); + invokeArgsMap( + path: ((value: T) => Array | string) | Array | string, + collection: Array | { [id: any]: T } + ): (args: Array) => Array; + invokeArgsMap( + path: ((value: T) => Array | string) | Array | string, + collection: Array | { [id: any]: T }, + args: Array + ): Array; + keyBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [key: V]: T }; + keyBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [key: V]: T }; + indexBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [key: V]: T }; + indexBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [key: V]: T }; + map( + iteratee: MapIterator | OMapIterator + ): (collection: Array | { [id: any]: T }) => Array; + map( + iteratee: MapIterator | OMapIterator, + collection: Array | { [id: any]: T } + ): Array; + map(iteratee: (char: string) => any): (str: string) => string; + map(iteratee: (char: string) => any, str: string): string; + pluck( + iteratee: MapIterator | OMapIterator + ): (collection: Array | { [id: any]: T }) => Array; + pluck( + iteratee: MapIterator | OMapIterator, + collection: Array | { [id: any]: T } + ): Array; + pluck(iteratee: (char: string) => any): (str: string) => string; + pluck(iteratee: (char: string) => any, str: string): string; + orderBy( + iteratees: Array | OIteratee<*>> | string + ): (( + orders: Array<"asc" | "desc"> | string + ) => (collection: Array | { [id: any]: T }) => Array) & + (( + orders: Array<"asc" | "desc"> | string, + collection: Array | { [id: any]: T } + ) => Array); + orderBy( + iteratees: Array | OIteratee<*>> | string, + orders: Array<"asc" | "desc"> | string + ): (collection: Array | { [id: any]: T }) => Array; + orderBy( + iteratees: Array | OIteratee<*>> | string, + orders: Array<"asc" | "desc"> | string, + collection: Array | { [id: any]: T } + ): Array; + partition( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => [Array, Array]; + partition( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): [Array, Array]; + reduce( + iteratee: (accumulator: U, value: T) => U + ): ((accumulator: U) => (collection: Array | { [id: any]: T }) => U) & + ((accumulator: U, collection: Array | { [id: any]: T }) => U); + reduce( + iteratee: (accumulator: U, value: T) => U, + accumulator: U + ): (collection: Array | { [id: any]: T }) => U; + reduce( + iteratee: (accumulator: U, value: T) => U, + accumulator: U, + collection: Array | { [id: any]: T } + ): U; + reduceRight( + iteratee: (value: T, accumulator: U) => U + ): ((accumulator: U) => (collection: Array | { [id: any]: T }) => U) & + ((accumulator: U, collection: Array | { [id: any]: T }) => U); + reduceRight( + iteratee: (value: T, accumulator: U) => U, + accumulator: U + ): (collection: Array | { [id: any]: T }) => U; + reduceRight( + iteratee: (value: T, accumulator: U) => U, + accumulator: U, + collection: Array | { [id: any]: T } + ): U; + reject( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => Array; + reject( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): Array; + sample(collection: Array | { [id: any]: T }): T; + sampleSize( + n: number + ): (collection: Array | { [id: any]: T }) => Array; + sampleSize(n: number, collection: Array | { [id: any]: T }): Array; + shuffle(collection: Array | { [id: any]: T }): Array; + size(collection: Array | Object): number; + some( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => boolean; + some( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): boolean; + any( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => boolean; + any( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): boolean; + sortBy( + iteratees: Array | OIteratee> | Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + sortBy( + iteratees: Array | OIteratee> | Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; // Date - now(): number, + now(): number; // Function - after(fn: Function): (n: number) => Function, - after(fn: Function, n: number): Function, - ary(func: Function): Function, - nAry(n: number): (func: Function) => Function, - nAry(n: number, func: Function): Function, - before(fn: Function): (n: number) => Function, - before(fn: Function, n: number): Function, - bind(func: Function): (thisArg: any) => Function, - bind(func: Function, thisArg: any): Function, - bindKey(obj: Object): (key: string) => Function, - bindKey(obj: Object, key: string): Function, - curry: Curry, - curryN(arity: number): (func: Function) => Function, - curryN(arity: number, func: Function): Function, - curryRight(func: Function): Function, - curryRightN(arity: number): (func: Function) => Function, - curryRightN(arity: number, func: Function): Function, - debounce(wait: number): (func: Function) => Function, - debounce(wait: number, func: Function): Function, - defer(func: Function): number, - delay(wait: number): (func: Function) => number, - delay(wait: number, func: Function): number, - flip(func: Function): Function, - memoize(func: Function): Function, - negate(predicate: Function): Function, - complement(predicate: Function): Function, - once(func: Function): Function, - overArgs(func: Function): (transforms: Array) => Function, - overArgs(func: Function, transforms: Array): Function, - useWith(func: Function): (transforms: Array) => Function, - useWith(func: Function, transforms: Array): Function, - partial(func: Function): (partials: any[]) => Function, - partial(func: Function, partials: any[]): Function, - partialRight(func: Function): (partials: Array) => Function, - partialRight(func: Function, partials: Array): Function, - rearg(indexes: Array): (func: Function) => Function, - rearg(indexes: Array, func: Function): Function, - rest(func: Function): Function, - unapply(func: Function): Function, - restFrom(start: number): (func: Function) => Function, - restFrom(start: number, func: Function): Function, - spread(func: Function): Function, - apply(func: Function): Function, - spreadFrom(start: number): (func: Function) => Function, - spreadFrom(start: number, func: Function): Function, - throttle(wait: number): (func: Function) => Function, - throttle(wait: number, func: Function): Function, - unary(func: Function): Function, - wrap(wrapper: Function): (value: any) => Function, - wrap(wrapper: Function, value: any): Function, + after(fn: Function): (n: number) => Function; + after(fn: Function, n: number): Function; + ary(func: Function): Function; + nAry(n: number): (func: Function) => Function; + nAry(n: number, func: Function): Function; + before(fn: Function): (n: number) => Function; + before(fn: Function, n: number): Function; + bind(func: Function): (thisArg: any) => Function; + bind(func: Function, thisArg: any): Function; + bindKey(obj: Object): (key: string) => Function; + bindKey(obj: Object, key: string): Function; + curry: Curry; + curryN(arity: number): (func: Function) => Function; + curryN(arity: number, func: Function): Function; + curryRight(func: Function): Function; + curryRightN(arity: number): (func: Function) => Function; + curryRightN(arity: number, func: Function): Function; + debounce(wait: number): (func: F) => F; + debounce(wait: number, func: F): F; + defer(func: Function): number; + delay(wait: number): (func: Function) => number; + delay(wait: number, func: Function): number; + flip(func: Function): Function; + memoize(func: F): F; + negate(predicate: Function): Function; + complement(predicate: Function): Function; + once(func: Function): Function; + overArgs(func: Function): (transforms: Array) => Function; + overArgs(func: Function, transforms: Array): Function; + useWith(func: Function): (transforms: Array) => Function; + useWith(func: Function, transforms: Array): Function; + partial(func: Function): (partials: any[]) => Function; + partial(func: Function, partials: any[]): Function; + partialRight(func: Function): (partials: Array) => Function; + partialRight(func: Function, partials: Array): Function; + rearg(indexes: Array): (func: Function) => Function; + rearg(indexes: Array, func: Function): Function; + rest(func: Function): Function; + unapply(func: Function): Function; + restFrom(start: number): (func: Function) => Function; + restFrom(start: number, func: Function): Function; + spread(func: Function): Function; + apply(func: Function): Function; + spreadFrom(start: number): (func: Function) => Function; + spreadFrom(start: number, func: Function): Function; + throttle(wait: number): (func: Function) => Function; + throttle(wait: number, func: Function): Function; + unary(func: Function): Function; + wrap(wrapper: Function): (value: any) => Function; + wrap(wrapper: Function, value: any): Function; // Lang - castArray(value: *): any[], - clone(value: T): T, - cloneDeep(value: T): T, - cloneDeepWith(customizer: (value: T, key: number | string, object: T, stack: any) => U): (value: T) => U, - cloneDeepWith(customizer: (value: T, key: number | string, object: T, stack: any) => U, value: T): U, - cloneWith(customizer: (value: T, key: number | string, object: T, stack: any) => U): (value: T) => U, - cloneWith(customizer: (value: T, key: number | string, object: T, stack: any) => U, value: T): U, - conformsTo(predicates: T & { [key: string]: (x: any) => boolean }): (source: T) => boolean, - conformsTo(predicates: T & { [key: string]: (x: any) => boolean }, source: T): boolean, - where(predicates: T & { [key: string]: (x: any) => boolean }): (source: T) => boolean, - where(predicates: T & { [key: string]: (x: any) => boolean }, source: T): boolean, - conforms(predicates: T & { [key: string]: (x: any) => boolean }): (source: T) => boolean, - conforms(predicates: T & { [key: string]: (x: any) => boolean }, source: T): boolean, - eq(value: any): (other: any) => boolean, - eq(value: any, other: any): boolean, - identical(value: any): (other: any) => boolean, - identical(value: any, other: any): boolean, - gt(value: any): (other: any) => boolean, - gt(value: any, other: any): boolean, - gte(value: any): (other: any) => boolean, - gte(value: any, other: any): boolean, - isArguments(value: any): boolean, - isArray(value: any): boolean, - isArrayBuffer(value: any): boolean, - isArrayLike(value: any): boolean, - isArrayLikeObject(value: any): boolean, - isBoolean(value: any): boolean, - isBuffer(value: any): boolean, - isDate(value: any): boolean, - isElement(value: any): boolean, - isEmpty(value: any): boolean, - isEqual(value: any): (other: any) => boolean, - isEqual(value: any, other: any): boolean, - equals(value: any): (other: any) => boolean, - equals(value: any, other: any): boolean, - isEqualWith(customizer: (objValue: any, otherValue: any, key: number | string, object: T, other: U, stack: any) => boolean | void): ((value: T) => (other: U) => boolean) & ((value: T, other: U) => boolean), - isEqualWith(customizer: (objValue: any, otherValue: any, key: number | string, object: T, other: U, stack: any) => boolean | void, value: T): (other: U) => boolean, - isEqualWith(customizer: (objValue: any, otherValue: any, key: number | string, object: T, other: U, stack: any) => boolean | void, value: T, other: U): boolean, - isError(value: any): boolean, - isFinite(value: any): boolean, - isFunction(value: Function): true, - isFunction(value: number | string | void | null | Object): false, - isInteger(value: any): boolean, - isLength(value: any): boolean, - isMap(value: any): boolean, - isMatch(source: Object): (object: Object) => boolean, - isMatch(source: Object, object: Object): boolean, - whereEq(source: Object): (object: Object) => boolean, - whereEq(source: Object, object: Object): boolean, - isMatchWith(customizer: (objValue: any, srcValue: any, key: number | string, object: T, source: U) => boolean | void): ((source: U) => (object: T) => boolean) & ((source: U, object: T) => boolean), - isMatchWith(customizer: (objValue: any, srcValue: any, key: number | string, object: T, source: U) => boolean | void, source: U): (object: T) => boolean, - isMatchWith(customizer: (objValue: any, srcValue: any, key: number | string, object: T, source: U) => boolean | void, source: U, object: T): boolean, - isNaN(value: any): boolean, - isNative(value: any): boolean, - isNil(value: any): boolean, - isNull(value: any): boolean, - isNumber(value: any): boolean, - isObject(value: any): boolean, - isObjectLike(value: any): boolean, - isPlainObject(value: any): boolean, - isRegExp(value: any): boolean, - isSafeInteger(value: any): boolean, - isSet(value: any): boolean, - isString(value: string): true, - isString(value: number | boolean | Function | void | null | Object | Array): false, - isSymbol(value: any): boolean, - isTypedArray(value: any): boolean, - isUndefined(value: any): boolean, - isWeakMap(value: any): boolean, - isWeakSet(value: any): boolean, - lt(value: any): (other: any) => boolean, - lt(value: any, other: any): boolean, - lte(value: any): (other: any) => boolean, - lte(value: any, other: any): boolean, - toArray(value: any): Array, - toFinite(value: any): number, - toInteger(value: any): number, - toLength(value: any): number, - toNumber(value: any): number, - toPlainObject(value: any): Object, - toSafeInteger(value: any): number, - toString(value: any): string, + castArray(value: *): any[]; + clone(value: T): T; + cloneDeep(value: T): T; + cloneDeepWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U + ): (value: T) => U; + cloneDeepWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + value: T + ): U; + cloneWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U + ): (value: T) => U; + cloneWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + value: T + ): U; + conformsTo( + predicates: T & { [key: string]: (x: any) => boolean } + ): (source: T) => boolean; + conformsTo( + predicates: T & { [key: string]: (x: any) => boolean }, + source: T + ): boolean; + where( + predicates: T & { [key: string]: (x: any) => boolean } + ): (source: T) => boolean; + where( + predicates: T & { [key: string]: (x: any) => boolean }, + source: T + ): boolean; + conforms( + predicates: T & { [key: string]: (x: any) => boolean } + ): (source: T) => boolean; + conforms( + predicates: T & { [key: string]: (x: any) => boolean }, + source: T + ): boolean; + eq(value: any): (other: any) => boolean; + eq(value: any, other: any): boolean; + identical(value: any): (other: any) => boolean; + identical(value: any, other: any): boolean; + gt(value: any): (other: any) => boolean; + gt(value: any, other: any): boolean; + gte(value: any): (other: any) => boolean; + gte(value: any, other: any): boolean; + isArguments(value: any): boolean; + isArray(value: any): boolean; + isArrayBuffer(value: any): boolean; + isArrayLike(value: any): boolean; + isArrayLikeObject(value: any): boolean; + isBoolean(value: any): boolean; + isBuffer(value: any): boolean; + isDate(value: any): boolean; + isElement(value: any): boolean; + isEmpty(value: any): boolean; + isEqual(value: any): (other: any) => boolean; + isEqual(value: any, other: any): boolean; + equals(value: any): (other: any) => boolean; + equals(value: any, other: any): boolean; + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void + ): ((value: T) => (other: U) => boolean) & + ((value: T, other: U) => boolean); + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void, + value: T + ): (other: U) => boolean; + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void, + value: T, + other: U + ): boolean; + isError(value: any): boolean; + isFinite(value: any): boolean; + isFunction(value: Function): true; + isFunction(value: number | string | void | null | Object): false; + isInteger(value: any): boolean; + isLength(value: any): boolean; + isMap(value: any): boolean; + isMatch(source: Object): (object: Object) => boolean; + isMatch(source: Object, object: Object): boolean; + whereEq(source: Object): (object: Object) => boolean; + whereEq(source: Object, object: Object): boolean; + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void + ): ((source: U) => (object: T) => boolean) & + ((source: U, object: T) => boolean); + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void, + source: U + ): (object: T) => boolean; + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void, + source: U, + object: T + ): boolean; + isNaN(value: any): boolean; + isNative(value: any): boolean; + isNil(value: any): boolean; + isNull(value: any): boolean; + isNumber(value: any): boolean; + isObject(value: any): boolean; + isObjectLike(value: any): boolean; + isPlainObject(value: any): boolean; + isRegExp(value: any): boolean; + isSafeInteger(value: any): boolean; + isSet(value: any): boolean; + isString(value: string): true; + isString( + value: number | boolean | Function | void | null | Object | Array + ): false; + isSymbol(value: any): boolean; + isTypedArray(value: any): boolean; + isUndefined(value: any): boolean; + isWeakMap(value: any): boolean; + isWeakSet(value: any): boolean; + lt(value: any): (other: any) => boolean; + lt(value: any, other: any): boolean; + lte(value: any): (other: any) => boolean; + lte(value: any, other: any): boolean; + toArray(value: any): Array; + toFinite(value: any): number; + toInteger(value: any): number; + toLength(value: any): number; + toNumber(value: any): number; + toPlainObject(value: any): Object; + toSafeInteger(value: any): number; + toString(value: any): string; // Math - add(augend: number): (addend: number) => number, - add(augend: number, addend: number): number, - ceil(number: number): number, - divide(dividend: number): (divisor: number) => number, - divide(dividend: number, divisor: number): number, - floor(number: number): number, - max(array: Array): T, - maxBy(iteratee: Iteratee): (array: Array) => T, - maxBy(iteratee: Iteratee, array: Array): T, - mean(array: Array<*>): number, - meanBy(iteratee: Iteratee): (array: Array) => number, - meanBy(iteratee: Iteratee, array: Array): number, - min(array: Array): T, - minBy(iteratee: Iteratee): (array: Array) => T, - minBy(iteratee: Iteratee, array: Array): T, - multiply(multiplier: number): (multiplicand: number) => number, - multiply(multiplier: number, multiplicand: number): number, - round(number: number): number, - subtract(minuend: number): (subtrahend: number) => number, - subtract(minuend: number, subtrahend: number): number, - sum(array: Array<*>): number, - sumBy(iteratee: Iteratee): (array: Array) => number, - sumBy(iteratee: Iteratee, array: Array): number, + add(augend: number): (addend: number) => number; + add(augend: number, addend: number): number; + ceil(number: number): number; + divide(dividend: number): (divisor: number) => number; + divide(dividend: number, divisor: number): number; + floor(number: number): number; + max(array: Array): T; + maxBy(iteratee: Iteratee): (array: Array) => T; + maxBy(iteratee: Iteratee, array: Array): T; + mean(array: Array<*>): number; + meanBy(iteratee: Iteratee): (array: Array) => number; + meanBy(iteratee: Iteratee, array: Array): number; + min(array: Array): T; + minBy(iteratee: Iteratee): (array: Array) => T; + minBy(iteratee: Iteratee, array: Array): T; + multiply(multiplier: number): (multiplicand: number) => number; + multiply(multiplier: number, multiplicand: number): number; + round(number: number): number; + subtract(minuend: number): (subtrahend: number) => number; + subtract(minuend: number, subtrahend: number): number; + sum(array: Array<*>): number; + sumBy(iteratee: Iteratee): (array: Array) => number; + sumBy(iteratee: Iteratee, array: Array): number; // number - clamp(lower: number): ((upper: number) => (number: number) => number) & ((upper: number, number: number) => number), - clamp(lower: number, upper: number): (number: number) => number, - clamp(lower: number, upper: number, number: number): number, - inRange(start: number): ((end: number) => (number: number) => boolean) & ((end: number, number: number) => boolean), - inRange(start: number, end: number): (number: number) => boolean, - inRange(start: number, end: number, number: number): boolean, - random(lower: number): (upper: number) => number, - random(lower: number, upper: number): number, + clamp( + lower: number + ): ((upper: number) => (number: number) => number) & + ((upper: number, number: number) => number); + clamp(lower: number, upper: number): (number: number) => number; + clamp(lower: number, upper: number, number: number): number; + inRange( + start: number + ): ((end: number) => (number: number) => boolean) & + ((end: number, number: number) => boolean); + inRange(start: number, end: number): (number: number) => boolean; + inRange(start: number, end: number, number: number): boolean; + random(lower: number): (upper: number) => number; + random(lower: number, upper: number): number; // Object - assign(object: Object): (source: Object) => Object, - assign(object: Object, source: Object): Object, - assignAll(objects: Array): Object, - assignInAll(objects: Array): Object, - extendAll(objects: Array): Object, - assignIn(a: A): (b: B) => A & B, - assignIn(a: A, b: B): A & B, - assignInWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object), - assignInWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void, object: T): (s1: A) => Object, - assignInWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void, object: T, s1: A): Object, - assignWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object), - assignWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void, object: T): (s1: A) => Object, - assignWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void, object: T, s1: A): Object, - assignInAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void): (objects: Array) => Object, - assignInAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void, objects: Array): Object, - extendAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void): (objects: Array) => Object, - extendAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void, objects: Array): Object, - assignAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void): (objects: Array) => Object, - assignAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void, objects: Array): Object, - at(paths: Array): (object: Object) => Array, - at(paths: Array, object: Object): Array, - props(paths: Array): (object: Object) => Array, - props(paths: Array, object: Object): Array, - paths(paths: Array): (object: Object) => Array, - paths(paths: Array, object: Object): Array, - create(prototype: T): $Supertype, - defaults(source: Object): (object: Object) => Object, - defaults(source: Object, object: Object): Object, - defaultsAll(objects: Array): Object, - defaultsDeep(source: Object): (object: Object) => Object, - defaultsDeep(source: Object, object: Object): Object, - defaultsDeepAll(objects: Array): Object, + assign(object: Object): (source: Object) => Object; + assign(object: Object, source: Object): Object; + assignAll(objects: Array): Object; + assignInAll(objects: Array): Object; + extendAll(objects: Array): Object; + assignIn(a: A): (b: B) => A & B; + assignIn(a: A, b: B): A & B; + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T + ): (s1: A) => Object; + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T, + s1: A + ): Object; + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T + ): (s1: A) => Object; + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T, + s1: A + ): Object; + assignInAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + assignInAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + extendAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + extendAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + assignAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + assignAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + at(paths: Array): (object: Object) => Array; + at(paths: Array, object: Object): Array; + props(paths: Array): (object: Object) => Array; + props(paths: Array, object: Object): Array; + paths(paths: Array): (object: Object) => Array; + paths(paths: Array, object: Object): Array; + create(prototype: T): $Supertype; + defaults(source: Object): (object: Object) => Object; + defaults(source: Object, object: Object): Object; + defaultsAll(objects: Array): Object; + defaultsDeep(source: Object): (object: Object) => Object; + defaultsDeep(source: Object, object: Object): Object; + defaultsDeepAll(objects: Array): Object; // alias for _.toPairs - entries(object: Object): NestedArray, + entries(object: Object): NestedArray; // alias for _.toPairsIn - entriesIn(object: Object): NestedArray, + entriesIn(object: Object): NestedArray; // alias for _.assignIn - extend(a: A): (b: B) => A & B, - extend(a: A, b: B): A & B, + extend(a: A): (b: B) => A & B; + extend(a: A, b: B): A & B; // alias for _.assignInWith - extendWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object), - extendWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void, object: T): (s1: A) => Object, - extendWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A) => any | void, object: T, s1: A): Object, - findKey(predicate: OPredicate): (object: T) => string | void, - findKey(predicate: OPredicate, object: T): string | void, - findLastKey(predicate: OPredicate): (object: T) => string | void, - findLastKey(predicate: OPredicate, object: T): string | void, - forIn(iteratee: OIteratee<*>): (object: Object) => Object, - forIn(iteratee: OIteratee<*>, object: Object): Object, - forInRight(iteratee: OIteratee<*>): (object: Object) => Object, - forInRight(iteratee: OIteratee<*>, object: Object): Object, - forOwn(iteratee: OIteratee<*>): (object: Object) => Object, - forOwn(iteratee: OIteratee<*>, object: Object): Object, - forOwnRight(iteratee: OIteratee<*>): (object: Object) => Object, - forOwnRight(iteratee: OIteratee<*>, object: Object): Object, - functions(object: Object): Array, - functionsIn(object: Object): Array, - get(path: Array | string): (object: Object | Array) => any, - get(path: Array | string, object: Object | Array): any, - prop(path: Array | string): (object: Object | Array) => any, - prop(path: Array | string, object: Object | Array): any, - path(path: Array | string): (object: Object | Array) => any, - path(path: Array | string, object: Object | Array): any, - getOr(defaultValue: any): ((path: Array | string) => (object: Object | Array) => any) & ((path: Array | string, object: Object | Array) => any), - getOr(defaultValue: any, path: Array | string): (object: Object | Array) => any, - getOr(defaultValue: any, path: Array | string, object: Object | Array): any, - propOr(defaultValue: any): ((path: Array | string) => (object: Object | Array) => any) & ((path: Array | string, object: Object | Array) => any), - propOr(defaultValue: any, path: Array | string): (object: Object | Array) => any, - propOr(defaultValue: any, path: Array | string, object: Object | Array): any, - pathOr(defaultValue: any): ((path: Array | string) => (object: Object | Array) => any) & ((path: Array | string, object: Object | Array) => any), - pathOr(defaultValue: any, path: Array | string): (object: Object | Array) => any, - pathOr(defaultValue: any, path: Array | string, object: Object | Array): any, - has(path: Array | string): (object: Object) => boolean, - has(path: Array | string, object: Object): boolean, - hasIn(path: Array | string): (object: Object) => boolean, - hasIn(path: Array | string, object: Object): boolean, - invert(object: Object): Object, - invertObj(object: Object): Object, - invertBy(iteratee: Function): (object: Object) => Object, - invertBy(iteratee: Function, object: Object): Object, - invoke(path: Array | string): (object: Object) => any, - invoke(path: Array | string, object: Object): any, - invokeArgs(path: Array | string): ((object: Object) => (args: Array) => any) & ((object: Object, args: Array) => any), - invokeArgs(path: Array | string, object: Object): (args: Array) => any, - invokeArgs(path: Array | string, object: Object, args: Array): any, - keys(object: Object): Array, - keysIn(object: Object): Array, - mapKeys(iteratee: OIteratee<*>): (object: Object) => Object, - mapKeys(iteratee: OIteratee<*>, object: Object): Object, - mapValues(iteratee: OIteratee<*>): (object: Object) => Object, - mapValues(iteratee: OIteratee<*>, object: Object): Object, - merge(object: Object): (source: Object) => Object, - merge(object: Object, source: Object): Object, - mergeAll(objects: Array): Object, - mergeWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A | B) => any | void): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object), - mergeWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A | B) => any | void, object: T): (s1: A) => Object, - mergeWith(customizer: (objValue: any, srcValue: any, key: string, object: T, source: A | B) => any | void, object: T, s1: A): Object, - mergeAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void): (objects: Array) => Object, - mergeAllWith(customizer: (objValue: any, srcValue: any, key: string, object: Object, source: Object) => any | void, objects: Array): Object, - omit(props: Array): (object: Object) => Object, - omit(props: Array, object: Object): Object, - omitAll(props: Array): (object: Object) => Object, - omitAll(props: Array, object: Object): Object, - omitBy(predicate: OPredicate): (object: T) => Object, - omitBy(predicate: OPredicate, object: T): Object, - pick(props: Array): (object: Object) => Object, - pick(props: Array, object: Object): Object, - pickAll(props: Array): (object: Object) => Object, - pickAll(props: Array, object: Object): Object, - pickBy(predicate: OPredicate): (object: T) => Object, - pickBy(predicate: OPredicate, object: T): Object, - result(path: Array | string): (object: Object) => any, - result(path: Array | string, object: Object): any, - set(path: Array | string): ((value: any) => (object: Object) => Object) & ((value: any, object: Object) => Object), - set(path: Array | string, value: any): (object: Object) => Object, - set(path: Array | string, value: any, object: Object): Object, - assoc(path: Array | string): ((value: any) => (object: Object) => Object) & ((value: any, object: Object) => Object), - assoc(path: Array | string, value: any): (object: Object) => Object, - assoc(path: Array | string, value: any, object: Object): Object, - assocPath(path: Array | string): ((value: any) => (object: Object) => Object) & ((value: any, object: Object) => Object), - assocPath(path: Array | string, value: any): (object: Object) => Object, - assocPath(path: Array | string, value: any, object: Object): Object, - setWith(customizer: (nsValue: any, key: string, nsObject: T) => any): ((path: Array | string) => (((value: any) => (object: T) => Object) & ((value: any, object: T) => Object))) & ((path: Array | string, value: any) => (object: T) => Object) & ((path: Array | string, value: any, object: T) => Object), - setWith(customizer: (nsValue: any, key: string, nsObject: T) => any, path: Array | string): ((value: any) => (object: T) => Object) & ((value: any, object: T) => Object), - setWith(customizer: (nsValue: any, key: string, nsObject: T) => any, path: Array | string, value: any): (object: T) => Object, - setWith(customizer: (nsValue: any, key: string, nsObject: T) => any, path: Array | string, value: any, object: T): Object, - toPairs(object: Object | Array<*>): NestedArray, - toPairsIn(object: Object): NestedArray, - transform(iteratee: OIteratee<*>): ((accumulator: any) => (collection: Object | Array) => any) & ((accumulator: any, collection: Object | Array) => any), - transform(iteratee: OIteratee<*>, accumulator: any): (collection: Object | Array) => any, - transform(iteratee: OIteratee<*>, accumulator: any, collection: Object | Array): any, - unset(path: Array | string): (object: Object) => boolean, - unset(path: Array | string, object: Object): boolean, - dissoc(path: Array | string): (object: Object) => boolean, - dissoc(path: Array | string, object: Object): boolean, - dissocPath(path: Array | string): (object: Object) => boolean, - dissocPath(path: Array | string, object: Object): boolean, - update(path: string[] | string): ((updater: Function) => (object: Object) => Object) & ((updater: Function, object: Object) => Object), - update(path: string[] | string, updater: Function): (object: Object) => Object, - update(path: string[] | string, updater: Function, object: Object): Object, - updateWith(customizer: Function): ((path: string[] | string) => (((updater: Function) => (object: Object) => Object) & ((updater: Function, object: Object) => Object))) & ((path: string[] | string, updater: Function) => (object: Object) => Object) & ((path: string[] | string, updater: Function, object: Object) => Object), - updateWith(customizer: Function, path: string[] | string): ((updater: Function) => (object: Object) => Object) & ((updater: Function, object: Object) => Object), - updateWith(customizer: Function, path: string[] | string, updater: Function): (object: Object) => Object, - updateWith(customizer: Function, path: string[] | string, updater: Function, object: Object): Object, - values(object: Object): Array, - valuesIn(object: Object): Array, + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T + ): (s1: A) => Object; + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T, + s1: A + ): Object; + findKey( + predicate: OPredicate + ): (object: T) => string | void; + findKey( + predicate: OPredicate, + object: T + ): string | void; + findLastKey( + predicate: OPredicate + ): (object: T) => string | void; + findLastKey( + predicate: OPredicate, + object: T + ): string | void; + forIn(iteratee: OIteratee<*>): (object: Object) => Object; + forIn(iteratee: OIteratee<*>, object: Object): Object; + forInRight(iteratee: OIteratee<*>): (object: Object) => Object; + forInRight(iteratee: OIteratee<*>, object: Object): Object; + forOwn(iteratee: OIteratee<*>): (object: Object) => Object; + forOwn(iteratee: OIteratee<*>, object: Object): Object; + forOwnRight(iteratee: OIteratee<*>): (object: Object) => Object; + forOwnRight(iteratee: OIteratee<*>, object: Object): Object; + functions(object: Object): Array; + functionsIn(object: Object): Array; + get(path: Array | string): (object: Object | Array) => any; + get(path: Array | string, object: Object | Array): any; + prop(path: Array | string): (object: Object | Array) => any; + prop(path: Array | string, object: Object | Array): any; + path(path: Array | string): (object: Object | Array) => any; + path(path: Array | string, object: Object | Array): any; + getOr( + defaultValue: any + ): (( + path: Array | string + ) => (object: Object | Array) => any) & + ((path: Array | string, object: Object | Array) => any); + getOr( + defaultValue: any, + path: Array | string + ): (object: Object | Array) => any; + getOr( + defaultValue: any, + path: Array | string, + object: Object | Array + ): any; + propOr( + defaultValue: any + ): (( + path: Array | string + ) => (object: Object | Array) => any) & + ((path: Array | string, object: Object | Array) => any); + propOr( + defaultValue: any, + path: Array | string + ): (object: Object | Array) => any; + propOr( + defaultValue: any, + path: Array | string, + object: Object | Array + ): any; + pathOr( + defaultValue: any + ): (( + path: Array | string + ) => (object: Object | Array) => any) & + ((path: Array | string, object: Object | Array) => any); + pathOr( + defaultValue: any, + path: Array | string + ): (object: Object | Array) => any; + pathOr( + defaultValue: any, + path: Array | string, + object: Object | Array + ): any; + has(path: Array | string): (object: Object) => boolean; + has(path: Array | string, object: Object): boolean; + hasIn(path: Array | string): (object: Object) => boolean; + hasIn(path: Array | string, object: Object): boolean; + invert(object: Object): Object; + invertObj(object: Object): Object; + invertBy(iteratee: Function): (object: Object) => Object; + invertBy(iteratee: Function, object: Object): Object; + invoke(path: Array | string): (object: Object) => any; + invoke(path: Array | string, object: Object): any; + invokeArgs( + path: Array | string + ): ((object: Object) => (args: Array) => any) & + ((object: Object, args: Array) => any); + invokeArgs( + path: Array | string, + object: Object + ): (args: Array) => any; + invokeArgs( + path: Array | string, + object: Object, + args: Array + ): any; + keys(object: { [key: K]: any }): Array; + keys(object: Object): Array; + keysIn(object: Object): Array; + mapKeys(iteratee: OIteratee<*>): (object: Object) => Object; + mapKeys(iteratee: OIteratee<*>, object: Object): Object; + mapValues(iteratee: OIteratee<*>): (object: Object) => Object; + mapValues(iteratee: OIteratee<*>, object: Object): Object; + merge(object: Object): (source: Object) => Object; + merge(object: Object, source: Object): Object; + mergeAll(objects: Array): Object; + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void, + object: T + ): (s1: A) => Object; + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void, + object: T, + s1: A + ): Object; + mergeAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + mergeAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + omit(props: Array): (object: Object) => Object; + omit(props: Array, object: Object): Object; + omitAll(props: Array): (object: Object) => Object; + omitAll(props: Array, object: Object): Object; + omitBy( + predicate: OPredicate + ): (object: T) => Object; + omitBy(predicate: OPredicate, object: T): Object; + pick(props: Array): (object: Object) => Object; + pick(props: Array, object: Object): Object; + pickAll(props: Array): (object: Object) => Object; + pickAll(props: Array, object: Object): Object; + pickBy( + predicate: OPredicate + ): (object: T) => Object; + pickBy(predicate: OPredicate, object: T): Object; + result(path: Array | string): (object: Object) => any; + result(path: Array | string, object: Object): any; + set( + path: Array | string + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + set(path: Array | string, value: any): (object: Object) => Object; + set(path: Array | string, value: any, object: Object): Object; + assoc( + path: Array | string + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + assoc(path: Array | string, value: any): (object: Object) => Object; + assoc(path: Array | string, value: any, object: Object): Object; + assocPath( + path: Array | string + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + assocPath( + path: Array | string, + value: any + ): (object: Object) => Object; + assocPath(path: Array | string, value: any, object: Object): Object; + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any + ): (( + path: Array | string + ) => ((value: any) => (object: T) => Object) & + ((value: any, object: T) => Object)) & + ((path: Array | string, value: any) => (object: T) => Object) & + ((path: Array | string, value: any, object: T) => Object); + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Array | string + ): ((value: any) => (object: T) => Object) & + ((value: any, object: T) => Object); + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Array | string, + value: any + ): (object: T) => Object; + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Array | string, + value: any, + object: T + ): Object; + toPairs(object: Object | Array<*>): NestedArray; + toPairsIn(object: Object): NestedArray; + transform( + iteratee: OIteratee<*> + ): ((accumulator: any) => (collection: Object | Array) => any) & + ((accumulator: any, collection: Object | Array) => any); + transform( + iteratee: OIteratee<*>, + accumulator: any + ): (collection: Object | Array) => any; + transform( + iteratee: OIteratee<*>, + accumulator: any, + collection: Object | Array + ): any; + unset(path: Array | string): (object: Object) => boolean; + unset(path: Array | string, object: Object): boolean; + dissoc(path: Array | string): (object: Object) => boolean; + dissoc(path: Array | string, object: Object): boolean; + dissocPath(path: Array | string): (object: Object) => boolean; + dissocPath(path: Array | string, object: Object): boolean; + update( + path: string[] | string + ): ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object); + update( + path: string[] | string, + updater: Function + ): (object: Object) => Object; + update(path: string[] | string, updater: Function, object: Object): Object; + updateWith( + customizer: Function + ): (( + path: string[] | string + ) => ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object)) & + (( + path: string[] | string, + updater: Function + ) => (object: Object) => Object) & + ((path: string[] | string, updater: Function, object: Object) => Object); + updateWith( + customizer: Function, + path: string[] | string + ): ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object); + updateWith( + customizer: Function, + path: string[] | string, + updater: Function + ): (object: Object) => Object; + updateWith( + customizer: Function, + path: string[] | string, + updater: Function, + object: Object + ): Object; + values(object: Object): Array; + valuesIn(object: Object): Array; - tap(interceptor: (value: T) => any): (value: T) => T, - tap(interceptor: (value: T) => any, value: T): T, - thru(interceptor: (value: T1) => T2): (value: T1) => T2, - thru(interceptor: (value: T1) => T2, value: T1): T2, + tap(interceptor: (value: T) => any): (value: T) => T; + tap(interceptor: (value: T) => any, value: T): T; + thru(interceptor: (value: T1) => T2): (value: T1) => T2; + thru(interceptor: (value: T1) => T2, value: T1): T2; // String - camelCase(string: string): string, - capitalize(string: string): string, - deburr(string: string): string, - endsWith(target: string): (string: string) => boolean, - endsWith(target: string, string: string): boolean, - escape(string: string): string, - escapeRegExp(string: string): string, - kebabCase(string: string): string, - lowerCase(string: string): string, - lowerFirst(string: string): string, - pad(length: number): (string: string) => string, - pad(length: number, string: string): string, - padChars(chars: string): ((length: number) => (string: string) => string) & ((length: number, string: string) => string), - padChars(chars: string, length: number): (string: string) => string, - padChars(chars: string, length: number, string: string): string, - padEnd(length: number): (string: string) => string, - padEnd(length: number, string: string): string, - padCharsEnd(chars: string): ((length: number) => (string: string) => string) & ((length: number, string: string) => string), - padCharsEnd(chars: string, length: number): (string: string) => string, - padCharsEnd(chars: string, length: number, string: string): string, - padStart(length: number): (string: string) => string, - padStart(length: number, string: string): string, - padCharsStart(chars: string): ((length: number) => (string: string) => string) & ((length: number, string: string) => string), - padCharsStart(chars: string, length: number): (string: string) => string, - padCharsStart(chars: string, length: number, string: string): string, - parseInt(radix: number): (string: string) => number, - parseInt(radix: number, string: string): number, - repeat(n: number): (string: string) => string, - repeat(n: number, string: string): string, - replace(pattern: RegExp | string): ((replacement: ((string: string) => string) | string) => (string: string) => string) & ((replacement: ((string: string) => string) | string, string: string) => string), - replace(pattern: RegExp | string, replacement: ((string: string) => string) | string): (string: string) => string, - replace(pattern: RegExp | string, replacement: ((string: string) => string) | string, string: string): string, - snakeCase(string: string): string, - split(separator: RegExp | string): (string: string) => Array, - split(separator: RegExp | string, string: string): Array, - startCase(string: string): string, - startsWith(target: string): (string: string) => boolean, - startsWith(target: string, string: string): boolean, - template(string: string): Function, - toLower(string: string): string, - toUpper(string: string): string, - trim(string: string): string, - trimChars(chars: string): (string: string) => string, - trimChars(chars: string, string: string): string, - trimEnd(string: string): string, - trimCharsEnd(chars: string): (string: string) => string, - trimCharsEnd(chars: string, string: string): string, - trimStart(string: string): string, - trimCharsStart(chars: string): (string: string) => string, - trimCharsStart(chars: string, string: string): string, - truncate(options: TruncateOptions): (string: string) => string, - truncate(options: TruncateOptions, string: string): string, - unescape(string: string): string, - upperCase(string: string): string, - upperFirst(string: string): string, - words(string: string): Array, + camelCase(string: string): string; + capitalize(string: string): string; + deburr(string: string): string; + endsWith(target: string): (string: string) => boolean; + endsWith(target: string, string: string): boolean; + escape(string: string): string; + escapeRegExp(string: string): string; + kebabCase(string: string): string; + lowerCase(string: string): string; + lowerFirst(string: string): string; + pad(length: number): (string: string) => string; + pad(length: number, string: string): string; + padChars( + chars: string + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padChars(chars: string, length: number): (string: string) => string; + padChars(chars: string, length: number, string: string): string; + padEnd(length: number): (string: string) => string; + padEnd(length: number, string: string): string; + padCharsEnd( + chars: string + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padCharsEnd(chars: string, length: number): (string: string) => string; + padCharsEnd(chars: string, length: number, string: string): string; + padStart(length: number): (string: string) => string; + padStart(length: number, string: string): string; + padCharsStart( + chars: string + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padCharsStart(chars: string, length: number): (string: string) => string; + padCharsStart(chars: string, length: number, string: string): string; + parseInt(radix: number): (string: string) => number; + parseInt(radix: number, string: string): number; + repeat(n: number): (string: string) => string; + repeat(n: number, string: string): string; + replace( + pattern: RegExp | string + ): (( + replacement: ((string: string) => string) | string + ) => (string: string) => string) & + (( + replacement: ((string: string) => string) | string, + string: string + ) => string); + replace( + pattern: RegExp | string, + replacement: ((string: string) => string) | string + ): (string: string) => string; + replace( + pattern: RegExp | string, + replacement: ((string: string) => string) | string, + string: string + ): string; + snakeCase(string: string): string; + split(separator: RegExp | string): (string: string) => Array; + split(separator: RegExp | string, string: string): Array; + startCase(string: string): string; + startsWith(target: string): (string: string) => boolean; + startsWith(target: string, string: string): boolean; + template(string: string): Function; + toLower(string: string): string; + toUpper(string: string): string; + trim(string: string): string; + trimChars(chars: string): (string: string) => string; + trimChars(chars: string, string: string): string; + trimEnd(string: string): string; + trimCharsEnd(chars: string): (string: string) => string; + trimCharsEnd(chars: string, string: string): string; + trimStart(string: string): string; + trimCharsStart(chars: string): (string: string) => string; + trimCharsStart(chars: string, string: string): string; + truncate(options: TruncateOptions): (string: string) => string; + truncate(options: TruncateOptions, string: string): string; + unescape(string: string): string; + upperCase(string: string): string; + upperFirst(string: string): string; + words(string: string): Array; // Util - attempt(func: Function): any, - bindAll(methodNames: Array): (object: Object) => Object, - bindAll(methodNames: Array, object: Object): Object, - cond(pairs: NestedArray): Function, - constant(value: T): () => T, - always(value: T): () => T, - defaultTo(defaultValue: T2): (value: T1) => T1, - defaultTo(defaultValue: T2, value: T1): T1, + attempt(func: Function): any; + bindAll(methodNames: Array): (object: Object) => Object; + bindAll(methodNames: Array, object: Object): Object; + cond(pairs: NestedArray): Function; + constant(value: T): () => T; + always(value: T): () => T; + defaultTo( + defaultValue: T2 + ): (value: T1) => T1; + defaultTo( + defaultValue: T2, + value: T1 + ): T1; // NaN is a number instead of its own type, otherwise it would behave like null/void - defaultTo(defaultValue: T2): (value: T1) => T1 | T2, - defaultTo(defaultValue: T2, value: T1): T1 | T2, - defaultTo(defaultValue: T2): (value: T1) => T2, - defaultTo(defaultValue: T2, value: T1): T2, - flow: Flow, - flow(funcs: Array): Function, - pipe: Flow, - pipe(funcs: Array): Function, - flowRight: FlowRight, - flowRight(funcs: Array): Function, - compose: FlowRight, - compose(funcs: Array): Function, - identity(value: T): T, - iteratee(func: any): Function, - matches(source: Object): (object: Object) => boolean, - matches(source: Object, object: Object): boolean, - matchesProperty(path: Array | string): (srcValue: any) => Function, - matchesProperty(path: Array | string, srcValue: any): Function, - propEq(path: Array | string): (srcValue: any) => Function, - propEq(path: Array | string, srcValue: any): Function, - pathEq(path: Array | string): (srcValue: any) => Function, - pathEq(path: Array | string, srcValue: any): Function, - method(path: Array | string): Function, - methodOf(object: Object): Function, - mixin(object: T): ((source: Object) => (options: {chain: boolean}) => T) & ((source: Object, options: {chain: boolean}) => T), - mixin(object: T, source: Object): (options: {chain: boolean}) => T, - mixin(object: T, source: Object, options: {chain: boolean}): T, - noConflict(): Lodash, - noop(...args: Array): void, - nthArg(n: number): Function, - over(iteratees: Array): Function, - juxt(iteratees: Array): Function, - overEvery(predicates: Array): Function, - allPass(predicates: Array): Function, - overSome(predicates: Array): Function, - anyPass(predicates: Array): Function, - property(path: Array | string): (object: Object | Array) => any, - property(path: Array | string, object: Object | Array): any, - propertyOf(object: Object): (path: Array | string) => Function, - propertyOf(object: Object, path: Array | string): Function, - range(start: number): (end: number) => Array, - range(start: number, end: number): Array, - rangeStep(step: number): ((start: number) => (end: number) => Array) & ((start: number, end: number) => Array), - rangeStep(step: number, start: number): (end: number) => Array, - rangeStep(step: number, start: number, end: number): Array, - rangeRight(start: number): (end: number) => Array, - rangeRight(start: number, end: number): Array, - rangeStepRight(step: number): ((start: number) => (end: number) => Array) & ((start: number, end: number) => Array), - rangeStepRight(step: number, start: number): (end: number) => Array, - rangeStepRight(step: number, start: number, end: number): Array, - runInContext(context: Object): Function, + defaultTo(defaultValue: T2): (value: T1) => T1 | T2; + defaultTo(defaultValue: T2, value: T1): T1 | T2; + defaultTo(defaultValue: T2): (value: T1) => T2; + defaultTo(defaultValue: T2, value: T1): T2; + flow: $ComposeReverse; + flow(funcs: Array): Function; + pipe: $ComposeReverse; + pipe(funcs: Array): Function; + flowRight: $Compose; + flowRight(funcs: Array): Function; + compose: $Compose; + compose(funcs: Array): Function; + identity(value: T): T; + iteratee(func: any): Function; + matches(source: Object): (object: Object) => boolean; + matches(source: Object, object: Object): boolean; + matchesProperty(path: Array | string): (srcValue: any) => Function; + matchesProperty(path: Array | string, srcValue: any): Function; + propEq(path: Array | string): (srcValue: any) => Function; + propEq(path: Array | string, srcValue: any): Function; + pathEq(path: Array | string): (srcValue: any) => Function; + pathEq(path: Array | string, srcValue: any): Function; + method(path: Array | string): Function; + methodOf(object: Object): Function; + mixin( + object: T + ): ((source: Object) => (options: { chain: boolean }) => T) & + ((source: Object, options: { chain: boolean }) => T); + mixin( + object: T, + source: Object + ): (options: { chain: boolean }) => T; + mixin( + object: T, + source: Object, + options: { chain: boolean } + ): T; + noConflict(): Lodash; + noop(...args: Array): void; + nthArg(n: number): Function; + over(iteratees: Array): Function; + juxt(iteratees: Array): Function; + overEvery(predicates: Array): Function; + allPass(predicates: Array): Function; + overSome(predicates: Array): Function; + anyPass(predicates: Array): Function; + property( + path: Array | string + ): (object: Object | Array) => any; + property(path: Array | string, object: Object | Array): any; + propertyOf(object: Object): (path: Array | string) => Function; + propertyOf(object: Object, path: Array | string): Function; + range(start: number): (end: number) => Array; + range(start: number, end: number): Array; + rangeStep( + step: number + ): ((start: number) => (end: number) => Array) & + ((start: number, end: number) => Array); + rangeStep(step: number, start: number): (end: number) => Array; + rangeStep(step: number, start: number, end: number): Array; + rangeRight(start: number): (end: number) => Array; + rangeRight(start: number, end: number): Array; + rangeStepRight( + step: number + ): ((start: number) => (end: number) => Array) & + ((start: number, end: number) => Array); + rangeStepRight(step: number, start: number): (end: number) => Array; + rangeStepRight(step: number, start: number, end: number): Array; + runInContext(context: Object): Function; - stubArray(): Array<*>, - stubFalse(): false, - F(): false, - stubObject(): {}, - stubString(): "", - stubTrue(): true, - T(): true, - times(iteratee: (i: number) => T): (n: number) => Array, - times(iteratee: (i: number) => T, n: number): Array, - toPath(value: any): Array, - uniqueId(prefix: string): string, + stubArray(): Array<*>; + stubFalse(): false; + F(): false; + stubObject(): {}; + stubString(): ""; + stubTrue(): true; + T(): true; + times(iteratee: (i: number) => T): (n: number) => Array; + times(iteratee: (i: number) => T, n: number): Array; + toPath(value: any): Array; + uniqueId(prefix: string): string; - __: any, - placeholder: any, + __: any; + placeholder: any; convert(options: { cap?: boolean, @@ -1974,1232 +2967,1241 @@ declare module "lodash/fp" { fixed?: boolean, immutable?: boolean, rearg?: boolean - }): void, + }): void; // Properties - VERSION: string, - templateSettings: TemplateSettings + VERSION: string; + templateSettings: TemplateSettings; } declare var exports: Lodash; } -declare module 'lodash/chunk' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'chunk'>; +declare module "lodash/chunk" { + declare module.exports: $PropertyType<$Exports<"lodash">, "chunk">; } -declare module 'lodash/compact' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'compact'>; +declare module "lodash/compact" { + declare module.exports: $PropertyType<$Exports<"lodash">, "compact">; } -declare module 'lodash/concat' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'concat'>; +declare module "lodash/concat" { + declare module.exports: $PropertyType<$Exports<"lodash">, "concat">; } -declare module 'lodash/difference' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'difference'>; +declare module "lodash/difference" { + declare module.exports: $PropertyType<$Exports<"lodash">, "difference">; } -declare module 'lodash/differenceBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'differenceBy'>; +declare module "lodash/differenceBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "differenceBy">; } -declare module 'lodash/differenceWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'differenceWith'>; +declare module "lodash/differenceWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "differenceWith">; } -declare module 'lodash/drop' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'drop'>; +declare module "lodash/drop" { + declare module.exports: $PropertyType<$Exports<"lodash">, "drop">; } -declare module 'lodash/dropRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropRight'>; +declare module "lodash/dropRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "dropRight">; } -declare module 'lodash/dropRightWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropRightWhile'>; +declare module "lodash/dropRightWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "dropRightWhile">; } -declare module 'lodash/dropWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropWhile'>; +declare module "lodash/dropWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "dropWhile">; } -declare module 'lodash/fill' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'fill'>; +declare module "lodash/fill" { + declare module.exports: $PropertyType<$Exports<"lodash">, "fill">; } -declare module 'lodash/findIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findIndex'>; +declare module "lodash/findIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findIndex">; } -declare module 'lodash/findLastIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLastIndex'>; +declare module "lodash/findLastIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findLastIndex">; } -declare module 'lodash/first' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'first'>; +declare module "lodash/first" { + declare module.exports: $PropertyType<$Exports<"lodash">, "first">; } -declare module 'lodash/flatten' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatten'>; +declare module "lodash/flatten" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatten">; } -declare module 'lodash/flattenDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flattenDeep'>; +declare module "lodash/flattenDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flattenDeep">; } -declare module 'lodash/flattenDepth' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flattenDepth'>; +declare module "lodash/flattenDepth" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flattenDepth">; } -declare module 'lodash/fromPairs' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'fromPairs'>; +declare module "lodash/fromPairs" { + declare module.exports: $PropertyType<$Exports<"lodash">, "fromPairs">; } -declare module 'lodash/head' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'head'>; +declare module "lodash/head" { + declare module.exports: $PropertyType<$Exports<"lodash">, "head">; } -declare module 'lodash/indexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'indexOf'>; +declare module "lodash/indexOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "indexOf">; } -declare module 'lodash/initial' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'initial'>; +declare module "lodash/initial" { + declare module.exports: $PropertyType<$Exports<"lodash">, "initial">; } -declare module 'lodash/intersection' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersection'>; +declare module "lodash/intersection" { + declare module.exports: $PropertyType<$Exports<"lodash">, "intersection">; } -declare module 'lodash/intersectionBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersectionBy'>; +declare module "lodash/intersectionBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "intersectionBy">; } -declare module 'lodash/intersectionWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersectionWith'>; +declare module "lodash/intersectionWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "intersectionWith">; } -declare module 'lodash/join' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'join'>; +declare module "lodash/join" { + declare module.exports: $PropertyType<$Exports<"lodash">, "join">; } -declare module 'lodash/last' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'last'>; +declare module "lodash/last" { + declare module.exports: $PropertyType<$Exports<"lodash">, "last">; } -declare module 'lodash/lastIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lastIndexOf'>; +declare module "lodash/lastIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lastIndexOf">; } -declare module 'lodash/nth' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'nth'>; +declare module "lodash/nth" { + declare module.exports: $PropertyType<$Exports<"lodash">, "nth">; } -declare module 'lodash/pull' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pull'>; +declare module "lodash/pull" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pull">; } -declare module 'lodash/pullAll' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAll'>; +declare module "lodash/pullAll" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAll">; } -declare module 'lodash/pullAllBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAllBy'>; +declare module "lodash/pullAllBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAllBy">; } -declare module 'lodash/pullAllWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAllWith'>; +declare module "lodash/pullAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAllWith">; } -declare module 'lodash/pullAt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAt'>; +declare module "lodash/pullAt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAt">; } -declare module 'lodash/remove' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'remove'>; +declare module "lodash/remove" { + declare module.exports: $PropertyType<$Exports<"lodash">, "remove">; } -declare module 'lodash/reverse' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reverse'>; +declare module "lodash/reverse" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reverse">; } -declare module 'lodash/slice' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'slice'>; +declare module "lodash/slice" { + declare module.exports: $PropertyType<$Exports<"lodash">, "slice">; } -declare module 'lodash/sortedIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndex'>; +declare module "lodash/sortedIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedIndex">; } -declare module 'lodash/sortedIndexBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndexBy'>; +declare module "lodash/sortedIndexBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedIndexBy">; } -declare module 'lodash/sortedIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndexOf'>; +declare module "lodash/sortedIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedIndexOf">; } -declare module 'lodash/sortedLastIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedLastIndex'>; +declare module "lodash/sortedLastIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedLastIndex">; } -declare module 'lodash/sortedLastIndexBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedLastIndexBy'>; +declare module "lodash/sortedLastIndexBy" { + declare module.exports: $PropertyType< + $Exports<"lodash">, + "sortedLastIndexBy" + >; } -declare module 'lodash/sortedLastIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedLastIndexOf'>; +declare module "lodash/sortedLastIndexOf" { + declare module.exports: $PropertyType< + $Exports<"lodash">, + "sortedLastIndexOf" + >; } -declare module 'lodash/sortedUniq' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedUniq'>; +declare module "lodash/sortedUniq" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedUniq">; } -declare module 'lodash/sortedUniqBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedUniqBy'>; +declare module "lodash/sortedUniqBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedUniqBy">; } -declare module 'lodash/tail' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'tail'>; +declare module "lodash/tail" { + declare module.exports: $PropertyType<$Exports<"lodash">, "tail">; } -declare module 'lodash/take' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'take'>; +declare module "lodash/take" { + declare module.exports: $PropertyType<$Exports<"lodash">, "take">; } -declare module 'lodash/takeRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeRight'>; +declare module "lodash/takeRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "takeRight">; } -declare module 'lodash/takeRightWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeRightWhile'>; +declare module "lodash/takeRightWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "takeRightWhile">; } -declare module 'lodash/takeWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeWhile'>; +declare module "lodash/takeWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "takeWhile">; } -declare module 'lodash/union' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'union'>; +declare module "lodash/union" { + declare module.exports: $PropertyType<$Exports<"lodash">, "union">; } -declare module 'lodash/unionBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unionBy'>; +declare module "lodash/unionBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unionBy">; } -declare module 'lodash/unionWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unionWith'>; +declare module "lodash/unionWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unionWith">; } -declare module 'lodash/uniq' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniq'>; +declare module "lodash/uniq" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniq">; } -declare module 'lodash/uniqBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqBy'>; +declare module "lodash/uniqBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniqBy">; } -declare module 'lodash/uniqWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqWith'>; +declare module "lodash/uniqWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniqWith">; } -declare module 'lodash/unzip' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unzip'>; +declare module "lodash/unzip" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unzip">; } -declare module 'lodash/unzipWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unzipWith'>; +declare module "lodash/unzipWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unzipWith">; } -declare module 'lodash/without' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'without'>; +declare module "lodash/without" { + declare module.exports: $PropertyType<$Exports<"lodash">, "without">; } -declare module 'lodash/xor' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'xor'>; +declare module "lodash/xor" { + declare module.exports: $PropertyType<$Exports<"lodash">, "xor">; } -declare module 'lodash/xorBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'xorBy'>; +declare module "lodash/xorBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "xorBy">; } -declare module 'lodash/xorWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'xorWith'>; +declare module "lodash/xorWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "xorWith">; } -declare module 'lodash/zip' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zip'>; +declare module "lodash/zip" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zip">; } -declare module 'lodash/zipObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipObject'>; +declare module "lodash/zipObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zipObject">; } -declare module 'lodash/zipObjectDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipObjectDeep'>; +declare module "lodash/zipObjectDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zipObjectDeep">; } -declare module 'lodash/zipWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipWith'>; +declare module "lodash/zipWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zipWith">; } -declare module 'lodash/countBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'countBy'>; +declare module "lodash/countBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "countBy">; } -declare module 'lodash/each' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'each'>; +declare module "lodash/each" { + declare module.exports: $PropertyType<$Exports<"lodash">, "each">; } -declare module 'lodash/eachRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'eachRight'>; +declare module "lodash/eachRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "eachRight">; } -declare module 'lodash/every' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'every'>; +declare module "lodash/every" { + declare module.exports: $PropertyType<$Exports<"lodash">, "every">; } -declare module 'lodash/filter' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'filter'>; +declare module "lodash/filter" { + declare module.exports: $PropertyType<$Exports<"lodash">, "filter">; } -declare module 'lodash/find' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'find'>; +declare module "lodash/find" { + declare module.exports: $PropertyType<$Exports<"lodash">, "find">; } -declare module 'lodash/findLast' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLast'>; +declare module "lodash/findLast" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findLast">; } -declare module 'lodash/flatMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMap'>; +declare module "lodash/flatMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatMap">; } -declare module 'lodash/flatMapDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMapDeep'>; +declare module "lodash/flatMapDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatMapDeep">; } -declare module 'lodash/flatMapDepth' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMapDepth'>; +declare module "lodash/flatMapDepth" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatMapDepth">; } -declare module 'lodash/forEach' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forEach'>; +declare module "lodash/forEach" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forEach">; } -declare module 'lodash/forEachRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forEachRight'>; +declare module "lodash/forEachRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forEachRight">; } -declare module 'lodash/groupBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'groupBy'>; +declare module "lodash/groupBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "groupBy">; } -declare module 'lodash/includes' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'includes'>; +declare module "lodash/includes" { + declare module.exports: $PropertyType<$Exports<"lodash">, "includes">; } -declare module 'lodash/invokeMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invokeMap'>; +declare module "lodash/invokeMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invokeMap">; } -declare module 'lodash/keyBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'keyBy'>; +declare module "lodash/keyBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "keyBy">; } -declare module 'lodash/map' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'map'>; +declare module "lodash/map" { + declare module.exports: $PropertyType<$Exports<"lodash">, "map">; } -declare module 'lodash/orderBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'orderBy'>; +declare module "lodash/orderBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "orderBy">; } -declare module 'lodash/partition' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'partition'>; +declare module "lodash/partition" { + declare module.exports: $PropertyType<$Exports<"lodash">, "partition">; } -declare module 'lodash/reduce' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reduce'>; +declare module "lodash/reduce" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reduce">; } -declare module 'lodash/reduceRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reduceRight'>; +declare module "lodash/reduceRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reduceRight">; } -declare module 'lodash/reject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reject'>; +declare module "lodash/reject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reject">; } -declare module 'lodash/sample' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sample'>; +declare module "lodash/sample" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sample">; } -declare module 'lodash/sampleSize' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sampleSize'>; +declare module "lodash/sampleSize" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sampleSize">; } -declare module 'lodash/shuffle' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'shuffle'>; +declare module "lodash/shuffle" { + declare module.exports: $PropertyType<$Exports<"lodash">, "shuffle">; } -declare module 'lodash/size' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'size'>; +declare module "lodash/size" { + declare module.exports: $PropertyType<$Exports<"lodash">, "size">; } -declare module 'lodash/some' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'some'>; +declare module "lodash/some" { + declare module.exports: $PropertyType<$Exports<"lodash">, "some">; } -declare module 'lodash/sortBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortBy'>; +declare module "lodash/sortBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortBy">; } -declare module 'lodash/now' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'now'>; +declare module "lodash/now" { + declare module.exports: $PropertyType<$Exports<"lodash">, "now">; } -declare module 'lodash/after' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'after'>; +declare module "lodash/after" { + declare module.exports: $PropertyType<$Exports<"lodash">, "after">; } -declare module 'lodash/ary' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'ary'>; +declare module "lodash/ary" { + declare module.exports: $PropertyType<$Exports<"lodash">, "ary">; } -declare module 'lodash/before' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'before'>; +declare module "lodash/before" { + declare module.exports: $PropertyType<$Exports<"lodash">, "before">; } -declare module 'lodash/bind' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'bind'>; +declare module "lodash/bind" { + declare module.exports: $PropertyType<$Exports<"lodash">, "bind">; } -declare module 'lodash/bindKey' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'bindKey'>; +declare module "lodash/bindKey" { + declare module.exports: $PropertyType<$Exports<"lodash">, "bindKey">; } -declare module 'lodash/curry' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'curry'>; +declare module "lodash/curry" { + declare module.exports: $PropertyType<$Exports<"lodash">, "curry">; } -declare module 'lodash/curryRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'curryRight'>; +declare module "lodash/curryRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "curryRight">; } -declare module 'lodash/debounce' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'debounce'>; +declare module "lodash/debounce" { + declare module.exports: $PropertyType<$Exports<"lodash">, "debounce">; } -declare module 'lodash/defer' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defer'>; +declare module "lodash/defer" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defer">; } -declare module 'lodash/delay' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'delay'>; +declare module "lodash/delay" { + declare module.exports: $PropertyType<$Exports<"lodash">, "delay">; } -declare module 'lodash/flip' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flip'>; +declare module "lodash/flip" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flip">; } -declare module 'lodash/memoize' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'memoize'>; +declare module "lodash/memoize" { + declare module.exports: $PropertyType<$Exports<"lodash">, "memoize">; } -declare module 'lodash/negate' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'negate'>; +declare module "lodash/negate" { + declare module.exports: $PropertyType<$Exports<"lodash">, "negate">; } -declare module 'lodash/once' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'once'>; +declare module "lodash/once" { + declare module.exports: $PropertyType<$Exports<"lodash">, "once">; } -declare module 'lodash/overArgs' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'overArgs'>; +declare module "lodash/overArgs" { + declare module.exports: $PropertyType<$Exports<"lodash">, "overArgs">; } -declare module 'lodash/partial' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'partial'>; +declare module "lodash/partial" { + declare module.exports: $PropertyType<$Exports<"lodash">, "partial">; } -declare module 'lodash/partialRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'partialRight'>; +declare module "lodash/partialRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "partialRight">; } -declare module 'lodash/rearg' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'rearg'>; +declare module "lodash/rearg" { + declare module.exports: $PropertyType<$Exports<"lodash">, "rearg">; } -declare module 'lodash/rest' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'rest'>; +declare module "lodash/rest" { + declare module.exports: $PropertyType<$Exports<"lodash">, "rest">; } -declare module 'lodash/spread' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'spread'>; +declare module "lodash/spread" { + declare module.exports: $PropertyType<$Exports<"lodash">, "spread">; } -declare module 'lodash/throttle' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'throttle'>; +declare module "lodash/throttle" { + declare module.exports: $PropertyType<$Exports<"lodash">, "throttle">; } -declare module 'lodash/unary' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unary'>; +declare module "lodash/unary" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unary">; } -declare module 'lodash/wrap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'wrap'>; +declare module "lodash/wrap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "wrap">; } -declare module 'lodash/castArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'castArray'>; +declare module "lodash/castArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "castArray">; } -declare module 'lodash/clone' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'clone'>; +declare module "lodash/clone" { + declare module.exports: $PropertyType<$Exports<"lodash">, "clone">; } -declare module 'lodash/cloneDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneDeep'>; +declare module "lodash/cloneDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cloneDeep">; } -declare module 'lodash/cloneDeepWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneDeepWith'>; +declare module "lodash/cloneDeepWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cloneDeepWith">; } -declare module 'lodash/cloneWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneWith'>; +declare module "lodash/cloneWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cloneWith">; } -declare module 'lodash/conformsTo' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'conformsTo'>; +declare module "lodash/conformsTo" { + declare module.exports: $PropertyType<$Exports<"lodash">, "conformsTo">; } -declare module 'lodash/eq' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'eq'>; +declare module "lodash/eq" { + declare module.exports: $PropertyType<$Exports<"lodash">, "eq">; } -declare module 'lodash/gt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'gt'>; +declare module "lodash/gt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "gt">; } -declare module 'lodash/gte' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'gte'>; +declare module "lodash/gte" { + declare module.exports: $PropertyType<$Exports<"lodash">, "gte">; } -declare module 'lodash/isArguments' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArguments'>; +declare module "lodash/isArguments" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArguments">; } -declare module 'lodash/isArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArray'>; +declare module "lodash/isArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArray">; } -declare module 'lodash/isArrayBuffer' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayBuffer'>; +declare module "lodash/isArrayBuffer" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArrayBuffer">; } -declare module 'lodash/isArrayLike' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayLike'>; +declare module "lodash/isArrayLike" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArrayLike">; } -declare module 'lodash/isArrayLikeObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayLikeObject'>; +declare module "lodash/isArrayLikeObject" { + declare module.exports: $PropertyType< + $Exports<"lodash">, + "isArrayLikeObject" + >; } -declare module 'lodash/isBoolean' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isBoolean'>; +declare module "lodash/isBoolean" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isBoolean">; } -declare module 'lodash/isBuffer' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isBuffer'>; +declare module "lodash/isBuffer" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isBuffer">; } -declare module 'lodash/isDate' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isDate'>; +declare module "lodash/isDate" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isDate">; } -declare module 'lodash/isElement' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isElement'>; +declare module "lodash/isElement" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isElement">; } -declare module 'lodash/isEmpty' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEmpty'>; +declare module "lodash/isEmpty" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isEmpty">; } -declare module 'lodash/isEqual' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEqual'>; +declare module "lodash/isEqual" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isEqual">; } -declare module 'lodash/isEqualWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEqualWith'>; +declare module "lodash/isEqualWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isEqualWith">; } -declare module 'lodash/isError' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isError'>; +declare module "lodash/isError" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isError">; } -declare module 'lodash/isFinite' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isFinite'>; +declare module "lodash/isFinite" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isFinite">; } -declare module 'lodash/isFunction' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isFunction'>; +declare module "lodash/isFunction" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isFunction">; } -declare module 'lodash/isInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isInteger'>; +declare module "lodash/isInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isInteger">; } -declare module 'lodash/isLength' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isLength'>; +declare module "lodash/isLength" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isLength">; } -declare module 'lodash/isMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMap'>; +declare module "lodash/isMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isMap">; } -declare module 'lodash/isMatch' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMatch'>; +declare module "lodash/isMatch" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isMatch">; } -declare module 'lodash/isMatchWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMatchWith'>; +declare module "lodash/isMatchWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isMatchWith">; } -declare module 'lodash/isNaN' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNaN'>; +declare module "lodash/isNaN" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNaN">; } -declare module 'lodash/isNative' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNative'>; +declare module "lodash/isNative" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNative">; } -declare module 'lodash/isNil' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNil'>; +declare module "lodash/isNil" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNil">; } -declare module 'lodash/isNull' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNull'>; +declare module "lodash/isNull" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNull">; } -declare module 'lodash/isNumber' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNumber'>; +declare module "lodash/isNumber" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNumber">; } -declare module 'lodash/isObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isObject'>; +declare module "lodash/isObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isObject">; } -declare module 'lodash/isObjectLike' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isObjectLike'>; +declare module "lodash/isObjectLike" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isObjectLike">; } -declare module 'lodash/isPlainObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isPlainObject'>; +declare module "lodash/isPlainObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isPlainObject">; } -declare module 'lodash/isRegExp' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isRegExp'>; +declare module "lodash/isRegExp" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isRegExp">; } -declare module 'lodash/isSafeInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSafeInteger'>; +declare module "lodash/isSafeInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isSafeInteger">; } -declare module 'lodash/isSet' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSet'>; +declare module "lodash/isSet" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isSet">; } -declare module 'lodash/isString' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isString'>; +declare module "lodash/isString" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isString">; } -declare module 'lodash/isSymbol' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSymbol'>; +declare module "lodash/isSymbol" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isSymbol">; } -declare module 'lodash/isTypedArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isTypedArray'>; +declare module "lodash/isTypedArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isTypedArray">; } -declare module 'lodash/isUndefined' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isUndefined'>; +declare module "lodash/isUndefined" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isUndefined">; } -declare module 'lodash/isWeakMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isWeakMap'>; +declare module "lodash/isWeakMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isWeakMap">; } -declare module 'lodash/isWeakSet' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isWeakSet'>; +declare module "lodash/isWeakSet" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isWeakSet">; } -declare module 'lodash/lt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lt'>; +declare module "lodash/lt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lt">; } -declare module 'lodash/lte' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lte'>; +declare module "lodash/lte" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lte">; } -declare module 'lodash/toArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toArray'>; +declare module "lodash/toArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toArray">; } -declare module 'lodash/toFinite' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toFinite'>; +declare module "lodash/toFinite" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toFinite">; } -declare module 'lodash/toInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toInteger'>; +declare module "lodash/toInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toInteger">; } -declare module 'lodash/toLength' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toLength'>; +declare module "lodash/toLength" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toLength">; } -declare module 'lodash/toNumber' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toNumber'>; +declare module "lodash/toNumber" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toNumber">; } -declare module 'lodash/toPlainObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPlainObject'>; +declare module "lodash/toPlainObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPlainObject">; } -declare module 'lodash/toSafeInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toSafeInteger'>; +declare module "lodash/toSafeInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toSafeInteger">; } -declare module 'lodash/toString' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toString'>; +declare module "lodash/toString" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toString">; } -declare module 'lodash/add' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'add'>; +declare module "lodash/add" { + declare module.exports: $PropertyType<$Exports<"lodash">, "add">; } -declare module 'lodash/ceil' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'ceil'>; +declare module "lodash/ceil" { + declare module.exports: $PropertyType<$Exports<"lodash">, "ceil">; } -declare module 'lodash/divide' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'divide'>; +declare module "lodash/divide" { + declare module.exports: $PropertyType<$Exports<"lodash">, "divide">; } -declare module 'lodash/floor' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'floor'>; +declare module "lodash/floor" { + declare module.exports: $PropertyType<$Exports<"lodash">, "floor">; } -declare module 'lodash/max' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'max'>; +declare module "lodash/max" { + declare module.exports: $PropertyType<$Exports<"lodash">, "max">; } -declare module 'lodash/maxBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'maxBy'>; +declare module "lodash/maxBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "maxBy">; } -declare module 'lodash/mean' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mean'>; +declare module "lodash/mean" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mean">; } -declare module 'lodash/meanBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'meanBy'>; +declare module "lodash/meanBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "meanBy">; } -declare module 'lodash/min' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'min'>; +declare module "lodash/min" { + declare module.exports: $PropertyType<$Exports<"lodash">, "min">; } -declare module 'lodash/minBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'minBy'>; +declare module "lodash/minBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "minBy">; } -declare module 'lodash/multiply' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'multiply'>; +declare module "lodash/multiply" { + declare module.exports: $PropertyType<$Exports<"lodash">, "multiply">; } -declare module 'lodash/round' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'round'>; +declare module "lodash/round" { + declare module.exports: $PropertyType<$Exports<"lodash">, "round">; } -declare module 'lodash/subtract' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'subtract'>; +declare module "lodash/subtract" { + declare module.exports: $PropertyType<$Exports<"lodash">, "subtract">; } -declare module 'lodash/sum' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sum'>; +declare module "lodash/sum" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sum">; } -declare module 'lodash/sumBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sumBy'>; +declare module "lodash/sumBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sumBy">; } -declare module 'lodash/clamp' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'clamp'>; +declare module "lodash/clamp" { + declare module.exports: $PropertyType<$Exports<"lodash">, "clamp">; } -declare module 'lodash/inRange' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'inRange'>; +declare module "lodash/inRange" { + declare module.exports: $PropertyType<$Exports<"lodash">, "inRange">; } -declare module 'lodash/random' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'random'>; +declare module "lodash/random" { + declare module.exports: $PropertyType<$Exports<"lodash">, "random">; } -declare module 'lodash/assign' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assign'>; +declare module "lodash/assign" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assign">; } -declare module 'lodash/assignIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignIn'>; +declare module "lodash/assignIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assignIn">; } -declare module 'lodash/assignInWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignInWith'>; +declare module "lodash/assignInWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assignInWith">; } -declare module 'lodash/assignWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignWith'>; +declare module "lodash/assignWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assignWith">; } -declare module 'lodash/at' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'at'>; +declare module "lodash/at" { + declare module.exports: $PropertyType<$Exports<"lodash">, "at">; } -declare module 'lodash/create' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'create'>; +declare module "lodash/create" { + declare module.exports: $PropertyType<$Exports<"lodash">, "create">; } -declare module 'lodash/defaults' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaults'>; +declare module "lodash/defaults" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defaults">; } -declare module 'lodash/defaultsDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaultsDeep'>; +declare module "lodash/defaultsDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defaultsDeep">; } -declare module 'lodash/entries' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'entries'>; +declare module "lodash/entries" { + declare module.exports: $PropertyType<$Exports<"lodash">, "entries">; } -declare module 'lodash/entriesIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'entriesIn'>; +declare module "lodash/entriesIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "entriesIn">; } -declare module 'lodash/extend' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'extend'>; +declare module "lodash/extend" { + declare module.exports: $PropertyType<$Exports<"lodash">, "extend">; } -declare module 'lodash/extendWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'extendWith'>; +declare module "lodash/extendWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "extendWith">; } -declare module 'lodash/findKey' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findKey'>; +declare module "lodash/findKey" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findKey">; } -declare module 'lodash/findLastKey' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLastKey'>; +declare module "lodash/findLastKey" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findLastKey">; } -declare module 'lodash/forIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forIn'>; +declare module "lodash/forIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forIn">; } -declare module 'lodash/forInRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forInRight'>; +declare module "lodash/forInRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forInRight">; } -declare module 'lodash/forOwn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forOwn'>; +declare module "lodash/forOwn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forOwn">; } -declare module 'lodash/forOwnRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forOwnRight'>; +declare module "lodash/forOwnRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forOwnRight">; } -declare module 'lodash/functions' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'functions'>; +declare module "lodash/functions" { + declare module.exports: $PropertyType<$Exports<"lodash">, "functions">; } -declare module 'lodash/functionsIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'functionsIn'>; +declare module "lodash/functionsIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "functionsIn">; } -declare module 'lodash/get' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'get'>; +declare module "lodash/get" { + declare module.exports: $PropertyType<$Exports<"lodash">, "get">; } -declare module 'lodash/has' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'has'>; +declare module "lodash/has" { + declare module.exports: $PropertyType<$Exports<"lodash">, "has">; } -declare module 'lodash/hasIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'hasIn'>; +declare module "lodash/hasIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "hasIn">; } -declare module 'lodash/invert' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invert'>; +declare module "lodash/invert" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invert">; } -declare module 'lodash/invertBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invertBy'>; +declare module "lodash/invertBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invertBy">; } -declare module 'lodash/invoke' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invoke'>; +declare module "lodash/invoke" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invoke">; } -declare module 'lodash/keys' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'keys'>; +declare module "lodash/keys" { + declare module.exports: $PropertyType<$Exports<"lodash">, "keys">; } -declare module 'lodash/keysIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'keysIn'>; +declare module "lodash/keysIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "keysIn">; } -declare module 'lodash/mapKeys' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mapKeys'>; +declare module "lodash/mapKeys" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mapKeys">; } -declare module 'lodash/mapValues' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mapValues'>; +declare module "lodash/mapValues" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mapValues">; } -declare module 'lodash/merge' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'merge'>; +declare module "lodash/merge" { + declare module.exports: $PropertyType<$Exports<"lodash">, "merge">; } -declare module 'lodash/mergeWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mergeWith'>; +declare module "lodash/mergeWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mergeWith">; } -declare module 'lodash/omit' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'omit'>; +declare module "lodash/omit" { + declare module.exports: $PropertyType<$Exports<"lodash">, "omit">; } -declare module 'lodash/omitBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'omitBy'>; +declare module "lodash/omitBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "omitBy">; } -declare module 'lodash/pick' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pick'>; +declare module "lodash/pick" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pick">; } -declare module 'lodash/pickBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pickBy'>; +declare module "lodash/pickBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pickBy">; } -declare module 'lodash/result' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'result'>; +declare module "lodash/result" { + declare module.exports: $PropertyType<$Exports<"lodash">, "result">; } -declare module 'lodash/set' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'set'>; +declare module "lodash/set" { + declare module.exports: $PropertyType<$Exports<"lodash">, "set">; } -declare module 'lodash/setWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'setWith'>; +declare module "lodash/setWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "setWith">; } -declare module 'lodash/toPairs' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPairs'>; +declare module "lodash/toPairs" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPairs">; } -declare module 'lodash/toPairsIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPairsIn'>; +declare module "lodash/toPairsIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPairsIn">; } -declare module 'lodash/transform' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'transform'>; +declare module "lodash/transform" { + declare module.exports: $PropertyType<$Exports<"lodash">, "transform">; } -declare module 'lodash/unset' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unset'>; +declare module "lodash/unset" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unset">; } -declare module 'lodash/update' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'update'>; +declare module "lodash/update" { + declare module.exports: $PropertyType<$Exports<"lodash">, "update">; } -declare module 'lodash/updateWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'updateWith'>; +declare module "lodash/updateWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "updateWith">; } -declare module 'lodash/values' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'values'>; +declare module "lodash/values" { + declare module.exports: $PropertyType<$Exports<"lodash">, "values">; } -declare module 'lodash/valuesIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'valuesIn'>; +declare module "lodash/valuesIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "valuesIn">; } -declare module 'lodash/chain' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'chain'>; +declare module "lodash/chain" { + declare module.exports: $PropertyType<$Exports<"lodash">, "chain">; } -declare module 'lodash/tap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'tap'>; +declare module "lodash/tap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "tap">; } -declare module 'lodash/thru' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'thru'>; +declare module "lodash/thru" { + declare module.exports: $PropertyType<$Exports<"lodash">, "thru">; } -declare module 'lodash/camelCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'camelCase'>; +declare module "lodash/camelCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "camelCase">; } -declare module 'lodash/capitalize' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'capitalize'>; +declare module "lodash/capitalize" { + declare module.exports: $PropertyType<$Exports<"lodash">, "capitalize">; } -declare module 'lodash/deburr' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'deburr'>; +declare module "lodash/deburr" { + declare module.exports: $PropertyType<$Exports<"lodash">, "deburr">; } -declare module 'lodash/endsWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'endsWith'>; +declare module "lodash/endsWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "endsWith">; } -declare module 'lodash/escape' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'escape'>; +declare module "lodash/escape" { + declare module.exports: $PropertyType<$Exports<"lodash">, "escape">; } -declare module 'lodash/escapeRegExp' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'escapeRegExp'>; +declare module "lodash/escapeRegExp" { + declare module.exports: $PropertyType<$Exports<"lodash">, "escapeRegExp">; } -declare module 'lodash/kebabCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'kebabCase'>; +declare module "lodash/kebabCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "kebabCase">; } -declare module 'lodash/lowerCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lowerCase'>; +declare module "lodash/lowerCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lowerCase">; } -declare module 'lodash/lowerFirst' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lowerFirst'>; +declare module "lodash/lowerFirst" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lowerFirst">; } -declare module 'lodash/pad' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pad'>; +declare module "lodash/pad" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pad">; } -declare module 'lodash/padEnd' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'padEnd'>; +declare module "lodash/padEnd" { + declare module.exports: $PropertyType<$Exports<"lodash">, "padEnd">; } -declare module 'lodash/padStart' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'padStart'>; +declare module "lodash/padStart" { + declare module.exports: $PropertyType<$Exports<"lodash">, "padStart">; } -declare module 'lodash/parseInt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'parseInt'>; +declare module "lodash/parseInt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "parseInt">; } -declare module 'lodash/repeat' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'repeat'>; +declare module "lodash/repeat" { + declare module.exports: $PropertyType<$Exports<"lodash">, "repeat">; } -declare module 'lodash/replace' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'replace'>; +declare module "lodash/replace" { + declare module.exports: $PropertyType<$Exports<"lodash">, "replace">; } -declare module 'lodash/snakeCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'snakeCase'>; +declare module "lodash/snakeCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "snakeCase">; } -declare module 'lodash/split' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'split'>; +declare module "lodash/split" { + declare module.exports: $PropertyType<$Exports<"lodash">, "split">; } -declare module 'lodash/startCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'startCase'>; +declare module "lodash/startCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "startCase">; } -declare module 'lodash/startsWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'startsWith'>; +declare module "lodash/startsWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "startsWith">; } -declare module 'lodash/template' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'template'>; +declare module "lodash/template" { + declare module.exports: $PropertyType<$Exports<"lodash">, "template">; } -declare module 'lodash/toLower' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toLower'>; +declare module "lodash/toLower" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toLower">; } -declare module 'lodash/toUpper' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toUpper'>; +declare module "lodash/toUpper" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toUpper">; } -declare module 'lodash/trim' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'trim'>; +declare module "lodash/trim" { + declare module.exports: $PropertyType<$Exports<"lodash">, "trim">; } -declare module 'lodash/trimEnd' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'trimEnd'>; +declare module "lodash/trimEnd" { + declare module.exports: $PropertyType<$Exports<"lodash">, "trimEnd">; } -declare module 'lodash/trimStart' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'trimStart'>; +declare module "lodash/trimStart" { + declare module.exports: $PropertyType<$Exports<"lodash">, "trimStart">; } -declare module 'lodash/truncate' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'truncate'>; +declare module "lodash/truncate" { + declare module.exports: $PropertyType<$Exports<"lodash">, "truncate">; } -declare module 'lodash/unescape' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unescape'>; +declare module "lodash/unescape" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unescape">; } -declare module 'lodash/upperCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'upperCase'>; +declare module "lodash/upperCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "upperCase">; } -declare module 'lodash/upperFirst' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'upperFirst'>; +declare module "lodash/upperFirst" { + declare module.exports: $PropertyType<$Exports<"lodash">, "upperFirst">; } -declare module 'lodash/words' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'words'>; +declare module "lodash/words" { + declare module.exports: $PropertyType<$Exports<"lodash">, "words">; } -declare module 'lodash/attempt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'attempt'>; +declare module "lodash/attempt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "attempt">; } -declare module 'lodash/bindAll' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'bindAll'>; +declare module "lodash/bindAll" { + declare module.exports: $PropertyType<$Exports<"lodash">, "bindAll">; } -declare module 'lodash/cond' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cond'>; +declare module "lodash/cond" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cond">; } -declare module 'lodash/conforms' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'conforms'>; +declare module "lodash/conforms" { + declare module.exports: $PropertyType<$Exports<"lodash">, "conforms">; } -declare module 'lodash/constant' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'constant'>; +declare module "lodash/constant" { + declare module.exports: $PropertyType<$Exports<"lodash">, "constant">; } -declare module 'lodash/defaultTo' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaultTo'>; +declare module "lodash/defaultTo" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defaultTo">; } -declare module 'lodash/flow' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flow'>; +declare module "lodash/flow" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flow">; } -declare module 'lodash/flowRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flowRight'>; +declare module "lodash/flowRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flowRight">; } -declare module 'lodash/identity' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'identity'>; +declare module "lodash/identity" { + declare module.exports: $PropertyType<$Exports<"lodash">, "identity">; } -declare module 'lodash/iteratee' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'iteratee'>; +declare module "lodash/iteratee" { + declare module.exports: $PropertyType<$Exports<"lodash">, "iteratee">; } -declare module 'lodash/matches' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'matches'>; +declare module "lodash/matches" { + declare module.exports: $PropertyType<$Exports<"lodash">, "matches">; } -declare module 'lodash/matchesProperty' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'matchesProperty'>; +declare module "lodash/matchesProperty" { + declare module.exports: $PropertyType<$Exports<"lodash">, "matchesProperty">; } -declare module 'lodash/method' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'method'>; +declare module "lodash/method" { + declare module.exports: $PropertyType<$Exports<"lodash">, "method">; } -declare module 'lodash/methodOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'methodOf'>; +declare module "lodash/methodOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "methodOf">; } -declare module 'lodash/mixin' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mixin'>; +declare module "lodash/mixin" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mixin">; } -declare module 'lodash/noConflict' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'noConflict'>; +declare module "lodash/noConflict" { + declare module.exports: $PropertyType<$Exports<"lodash">, "noConflict">; } -declare module 'lodash/noop' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'noop'>; +declare module "lodash/noop" { + declare module.exports: $PropertyType<$Exports<"lodash">, "noop">; } -declare module 'lodash/nthArg' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'nthArg'>; +declare module "lodash/nthArg" { + declare module.exports: $PropertyType<$Exports<"lodash">, "nthArg">; } -declare module 'lodash/over' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'over'>; +declare module "lodash/over" { + declare module.exports: $PropertyType<$Exports<"lodash">, "over">; } -declare module 'lodash/overEvery' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'overEvery'>; +declare module "lodash/overEvery" { + declare module.exports: $PropertyType<$Exports<"lodash">, "overEvery">; } -declare module 'lodash/overSome' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'overSome'>; +declare module "lodash/overSome" { + declare module.exports: $PropertyType<$Exports<"lodash">, "overSome">; } -declare module 'lodash/property' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'property'>; +declare module "lodash/property" { + declare module.exports: $PropertyType<$Exports<"lodash">, "property">; } -declare module 'lodash/propertyOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'propertyOf'>; +declare module "lodash/propertyOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "propertyOf">; } -declare module 'lodash/range' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'range'>; +declare module "lodash/range" { + declare module.exports: $PropertyType<$Exports<"lodash">, "range">; } -declare module 'lodash/rangeRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'rangeRight'>; +declare module "lodash/rangeRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "rangeRight">; } -declare module 'lodash/runInContext' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'runInContext'>; +declare module "lodash/runInContext" { + declare module.exports: $PropertyType<$Exports<"lodash">, "runInContext">; } -declare module 'lodash/stubArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubArray'>; +declare module "lodash/stubArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubArray">; } -declare module 'lodash/stubFalse' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubFalse'>; +declare module "lodash/stubFalse" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubFalse">; } -declare module 'lodash/stubObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubObject'>; +declare module "lodash/stubObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubObject">; } -declare module 'lodash/stubString' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubString'>; +declare module "lodash/stubString" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubString">; } -declare module 'lodash/stubTrue' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubTrue'>; +declare module "lodash/stubTrue" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubTrue">; } -declare module 'lodash/times' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'times'>; +declare module "lodash/times" { + declare module.exports: $PropertyType<$Exports<"lodash">, "times">; } -declare module 'lodash/toPath' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPath'>; +declare module "lodash/toPath" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPath">; } -declare module 'lodash/uniqueId' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqueId'>; -} \ No newline at end of file +declare module "lodash/uniqueId" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniqueId">; +} diff --git a/flow-typed/npm/react-redux_v5.x.x.js b/flow-typed/npm/react-redux_v5.x.x.js index 2fa2be335..5b2dc637f 100644 --- a/flow-typed/npm/react-redux_v5.x.x.js +++ b/flow-typed/npm/react-redux_v5.x.x.js @@ -1,8 +1,5 @@ -// flow-typed signature: 4e93c65cedbfbf7f1ab3fe4e800943d3 -// flow-typed version: 9092387fd2/react-redux_v5.x.x/flow_>=v0.53.x <=v0.53.x - -// flow-typed signature: 8db7b853f57c51094bf0ab8b2650fd9c -// flow-typed version: ab8db5f14d/react-redux_v5.x.x/flow_>=v0.30.x +// flow-typed signature: 59b0c4be0e1408f21e2446be96c79804 +// flow-typed version: 9092387fd2/react-redux_v5.x.x/flow_>=v0.54.x import type { Dispatch, Store } from "redux"; @@ -34,6 +31,22 @@ declare module "react-redux" { declare type Context = { store: Store<*, *> }; + declare type ComponentWithDefaultProps = Class< + React$Component + > & { defaultProps: DP }; + + declare class ConnectedComponentWithDefaultProps< + OP, + DP, + CP + > extends React$Component { + static defaultProps: DP, // <= workaround for https://github.com/facebook/flow/issues/4644 + static WrappedComponent: Class>, + getWrappedInstance(): React$Component, + props: OP, + state: void + } + declare class ConnectedComponent extends React$Component { static WrappedComponent: Class>, getWrappedInstance(): React$Component

, @@ -41,13 +54,18 @@ declare module "react-redux" { state: void } + declare type ConnectedComponentWithDefaultPropsClass = Class< + ConnectedComponentWithDefaultProps + >; + declare type ConnectedComponentClass = Class< ConnectedComponent >; - declare type Connector = ( - component: React$ComponentType

- ) => ConnectedComponentClass; + declare type Connector = (( + component: ComponentWithDefaultProps + ) => ConnectedComponentWithDefaultPropsClass) & + ((component: React$ComponentType

) => ConnectedComponentClass); declare class Provider extends React$Component<{ store: Store, @@ -77,12 +95,12 @@ declare module "react-redux" { options: ConnectOptions ): Connector } & OP>>; - declare function connect( - mapStateToProps: MapStateToProps, - mapDispatchToProps: Null, - mergeProps: Null, - options?: ConnectOptions - ): Connector } & OP>>; +// declare function connect( +// mapStateToProps: MapStateToProps, +// mapDispatchToProps: Null, +// mergeProps: Null, +// options?: ConnectOptions +// ): Connector } & OP>>; declare function connect( mapStateToProps: Null, @@ -93,7 +111,7 @@ declare module "react-redux" { declare function connect( mapStateToProps: MapStateToProps, - mapDispatchToProps: MapDispatchToProps, + mapDispatchToProps: MapDispatchToProps | Null, mergeProps: Null, options?: ConnectOptions ): Connector>; diff --git a/flow-typed/npm/redux_v3.x.x.js b/flow-typed/npm/redux_v3.x.x.js index 08c122efb..97fec81e5 100644 --- a/flow-typed/npm/redux_v3.x.x.js +++ b/flow-typed/npm/redux_v3.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 33b83b6284653250e74578cf4dbe6124 -// flow-typed version: e282e4128f/redux_v3.x.x/flow_>=v0.33.x +// flow-typed signature: ec7daead5cb4fec5ab25fedbedef29e8 +// flow-typed version: 2c04631d20/redux_v3.x.x/flow_>=v0.55.x declare module 'redux' { @@ -55,55 +55,5 @@ declare module 'redux' { declare export function combineReducers(reducers: O): CombinedReducer<$ObjMap(r: Reducer) => S>, A>; - declare export function compose(ab: (a: A) => B): (a: A) => B - declare export function compose( - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => C - declare export function compose( - cd: (c: C) => D, - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => D - declare export function compose( - de: (d: D) => E, - cd: (c: C) => D, - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => E - declare export function compose( - ef: (e: E) => F, - de: (d: D) => E, - cd: (c: C) => D, - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => F - declare export function compose( - fg: (f: F) => G, - ef: (e: E) => F, - de: (d: D) => E, - cd: (c: C) => D, - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => G - declare export function compose( - gh: (g: G) => H, - fg: (f: F) => G, - ef: (e: E) => F, - de: (d: D) => E, - cd: (c: C) => D, - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => H - declare export function compose( - hi: (h: H) => I, - gh: (g: G) => H, - fg: (f: F) => G, - ef: (e: E) => F, - de: (d: D) => E, - cd: (c: C) => D, - bc: (b: B) => C, - ab: (a: A) => B - ): (a: A) => I - -} + declare export var compose: $Compose; +} \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index de0a63f10..b45112e66 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,6 +1,6 @@ PODS: - - React (0.49.5): - - React/Core (= 0.49.5) + - React (0.50.4): + - React/Core (= 0.50.4) - react-native-background-timer (2.0.0): - React - react-native-fetch-blob (0.10.6): @@ -8,40 +8,40 @@ PODS: - react-native-keep-awake (2.0.6): - React - react-native-webrtc (1.58.2) - - React/BatchedBridge (0.49.5): + - React/BatchedBridge (0.50.4): - React/Core - React/cxxreact_legacy - - React/Core (0.49.5): - - yoga (= 0.49.5.React) - - React/cxxreact_legacy (0.49.5): + - React/Core (0.50.4): + - yoga (= 0.50.4.React) + - React/cxxreact_legacy (0.50.4): - React/jschelpers_legacy - - React/DevSupport (0.49.5): + - React/DevSupport (0.50.4): - React/Core - React/RCTWebSocket - - React/fishhook (0.49.5) - - React/jschelpers_legacy (0.49.5) - - React/RCTActionSheet (0.49.5): + - React/fishhook (0.50.4) + - React/jschelpers_legacy (0.50.4) + - React/RCTActionSheet (0.50.4): - React/Core - - React/RCTAnimation (0.49.5): + - React/RCTAnimation (0.50.4): - React/Core - - React/RCTBlob (0.49.5): + - React/RCTBlob (0.50.4): - React/Core - - React/RCTImage (0.49.5): + - React/RCTImage (0.50.4): - React/Core - React/RCTNetwork - - React/RCTLinkingIOS (0.49.5): + - React/RCTLinkingIOS (0.50.4): - React/Core - - React/RCTNetwork (0.49.5): + - React/RCTNetwork (0.50.4): - React/Core - - React/RCTText (0.49.5): + - React/RCTText (0.50.4): - React/Core - - React/RCTWebSocket (0.49.5): + - React/RCTWebSocket (0.50.4): - React/Core - React/fishhook - React/RCTBlob - RNVectorIcons (4.4.2): - React - - yoga (0.49.5.React) + - yoga (0.50.4.React) DEPENDENCIES: - react-native-background-timer (from `../node_modules/react-native-background-timer`) @@ -78,13 +78,13 @@ EXTERNAL SOURCES: :path: ../node_modules/react-native/ReactCommon/yoga SPEC CHECKSUMS: - React: 9d5a23842dcc75ffef540ee2d2ef0eee1904ee58 + React: 6d7efef18e0241eb832cf4c085405169a15080ed react-native-background-timer: 10063c04bf85d7f8811dff8c74399f0aa715245f react-native-fetch-blob: 2bef9be702de8726f4d7bf58d2345579aaaee60d react-native-keep-awake: bb4dbb6fd21a7879432f9538b0b7d71398fe9f81 react-native-webrtc: 6fd0b3aa890d7a9b9b4d01d30f958d17ae88a785 RNVectorIcons: c1821d56c775cc5a3bca66c77dfc8cb4a90d27e2 - yoga: 596e987aa8aac0165abb235d2977982f090476a0 + yoga: b9aebf996711e50fc31f5608c10aa108a5a0c29e PODFILE CHECKSUM: a7cb8c7365f8cf9a01ee4eb78325139933776faf diff --git a/modules/remotecontrol/Controller.js b/modules/remotecontrol/Controller.js index 516b1fbed..77dc268f7 100644 --- a/modules/remotecontrol/Controller.js +++ b/modules/remotecontrol/Controller.js @@ -108,7 +108,10 @@ export default class Controller extends RemoteControlParticipant { * @returns {Promise} Resolve values - true(accept), false(deny), * null(the participant has left). */ - requestPermissions(userId: string, eventCaptureArea: Object) { + requestPermissions( + userId: string, + eventCaptureArea: Object + ): Promise { if (!this._enabled) { return Promise.reject(new Error('Remote control is disabled!')); } @@ -163,13 +166,16 @@ export default class Controller extends RemoteControlParticipant { JitsiConferenceEvents.USER_LEFT, onUserLeft); this._requestedParticipant = userId; - this.sendRemoteControlEndpointMessage(userId, { - type: EVENTS.permissions, - action: PERMISSIONS_ACTIONS.request - }, e => { - clearRequest(); - reject(e); - }); + this.sendRemoteControlEndpointMessage( + userId, + { + type: EVENTS.permissions, + action: PERMISSIONS_ACTIONS.request + }, + e => { + clearRequest(); + reject(e); + }); }); } @@ -179,7 +185,7 @@ export default class Controller extends RemoteControlParticipant { * @param {JitsiParticipant} participant - The participant that has sent the * reply. * @param {RemoteControlEvent} event - The remote control event. - * @returns {void} + * @returns {boolean|null} */ _handleReply(participant: Object, event: Object) { const userId = participant.getId(); @@ -257,46 +263,42 @@ export default class Controller extends RemoteControlParticipant { * @returns {void} */ resume() { - if (!this._enabled || this._isCollectingEvents || !this._area) { + let area; + + if (!this._enabled + || this._isCollectingEvents + || !(area = this._area)) { return; } logger.log('Resuming remote control controller.'); this._isCollectingEvents = true; APP.keyboardshortcut.enable(false); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.mousemove(event => { - // $FlowDisableNextLine: we are sure that this._area is not null. - const position = this._area.position(); + area.mousemove(event => { + const area = this._area; // eslint-disable-line no-shadow + + if (!area) { + return; + } + + const position = area.position(); this.sendRemoteControlEndpointMessage(this._controlledParticipant, { type: EVENTS.mousemove, - - // $FlowDisableNextLine: we are sure that this._area is not null - x: (event.pageX - position.left) / this._area.width(), - - // $FlowDisableNextLine: we are sure that this._area is not null - y: (event.pageY - position.top) / this._area.height() + x: (event.pageX - position.left) / area.width(), + y: (event.pageY - position.top) / area.height() }); }); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.mousedown(this._onMouseClickHandler.bind(this, - EVENTS.mousedown)); + area.mousedown(this._onMouseClickHandler.bind(this, EVENTS.mousedown)); + area.mouseup(this._onMouseClickHandler.bind(this, EVENTS.mouseup)); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.mouseup(this._onMouseClickHandler.bind(this, - EVENTS.mouseup)); - - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.dblclick( + area.dblclick( this._onMouseClickHandler.bind(this, EVENTS.mousedblclick)); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.contextmenu(() => false); + area.contextmenu(() => false); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area[0].onmousewheel = event => { + area[0].onmousewheel = event => { event.preventDefault(); event.stopPropagation(); this.sendRemoteControlEndpointMessage(this._controlledParticipant, { @@ -307,6 +309,7 @@ export default class Controller extends RemoteControlParticipant { return false; }; + $(window).keydown(this._onKeyPessHandler.bind(this, EVENTS.keydown)); $(window).keyup(this._onKeyPessHandler.bind(this, EVENTS.keyup)); @@ -376,26 +379,20 @@ export default class Controller extends RemoteControlParticipant { this._isCollectingEvents = false; APP.keyboardshortcut.enable(true); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.off('mousemove'); + const area = this._area; - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.off('mousedown'); + if (area) { + area.off('contextmenu'); + area.off('dblclick'); + area.off('mousedown'); + area.off('mousemove'); + area.off('mouseup'); - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.off('mouseup'); - - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.off('contextmenu'); - - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area.off('dblclick'); + area[0].onmousewheel = undefined; + } $(window).off('keydown'); $(window).off('keyup'); - - // $FlowDisableNextLine: we are sure that this._area is not null. - this._area[0].onmousewheel = undefined; } /** diff --git a/package-lock.json b/package-lock.json index adca84dbd..dbb7fc33b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2362,9 +2362,9 @@ "integrity": "sha1-dU/jiSboQkpOexWrbqYTne4FFPw=" }, "babel-plugin-react-transform": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz", - "integrity": "sha1-UVu/qZaJOYEULZCx+bFjXeKZUQk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz", + "integrity": "sha512-4vJGddwPiHAOgshzZdGwYy4zRjjIr5SMY7gkOaCyIASjgpcsyLTlZNuB5rHOFoaTvGlhfo8/g4pobXPyHqm/3w==", "requires": { "lodash": "4.17.4" } @@ -2415,8 +2415,7 @@ "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", @@ -3048,14 +3047,15 @@ } }, "babel-preset-react-native": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-2.1.0.tgz", - "integrity": "sha1-kBPr2C2hyIECv1iIEP9Z4gnKK4o=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-4.0.0.tgz", + "integrity": "sha512-Wfbo6x244nUbBxjr7hQaNFdjj7FDYU+TVT7cFVPEdVPI68vhN52iLvamm+ErhNdHq6M4j1cMT6AJBYx7Wzdr0g==", "requires": { "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-react-transform": "2.0.2", + "babel-plugin-react-transform": "3.0.0", "babel-plugin-syntax-async-functions": "6.13.0", "babel-plugin-syntax-class-properties": "6.13.0", + "babel-plugin-syntax-dynamic-import": "6.18.0", "babel-plugin-syntax-flow": "6.18.0", "babel-plugin-syntax-jsx": "6.18.0", "babel-plugin-syntax-trailing-function-commas": "6.22.0", @@ -3080,6 +3080,7 @@ "babel-plugin-transform-react-jsx": "6.24.1", "babel-plugin-transform-react-jsx-source": "6.22.0", "babel-plugin-transform-regenerator": "6.26.0", + "babel-template": "6.26.0", "react-transform-hmr": "1.0.4" } }, @@ -3290,9 +3291,9 @@ } }, "big-integer": { - "version": "1.6.25", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.25.tgz", - "integrity": "sha1-HeRan1dUKsIBIcaC+NZCIgo06CM=" + "version": "1.6.26", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.26.tgz", + "integrity": "sha1-OvFnL6Ytry1eyvrPblqg0l4Cwcg=" }, "big.js": { "version": "3.2.0", @@ -3455,7 +3456,7 @@ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", "requires": { - "big-integer": "1.6.25" + "big-integer": "1.6.26" } }, "brace-expansion": { @@ -4559,6 +4560,15 @@ "run-queue": "1.0.3" } }, + "copy-paste": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/copy-paste/-/copy-paste-1.3.0.tgz", + "integrity": "sha1-p+bEocKP3t8rCB5yuX3y75X0ce0=", + "requires": { + "iconv-lite": "0.4.19", + "sync-exec": "0.6.2" + } + }, "copy-props": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-1.6.0.tgz", @@ -5629,15 +5639,38 @@ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" }, "envinfo": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.4.2.tgz", - "integrity": "sha512-yqKl+qfQ849zLua/aRGIs4TzNah6ypvdX6KPmK9LPP54Ea+Hqx2gFzSBmGhka8HvWcmCmffGIshG4INSh0ku6g==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.10.0.tgz", + "integrity": "sha512-7m6zSyFfEb3lAjZI217G1XVSAkYeFJHk2EqAVeoncrt+WtHddW4nnft2qPg82Xu1aB/T8nC/DPvkGgUUahli4g==", "requires": { + "copy-paste": "1.3.0", + "glob": "7.1.2", "minimist": "1.2.0", "os-name": "2.0.1", "which": "1.3.0" }, "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -6815,9 +6848,9 @@ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, "flow-bin": { - "version": "0.53.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.53.0.tgz", - "integrity": "sha1-94MOYJygKxLbQScRQhPMzHwHcbk=", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.56.0.tgz", + "integrity": "sha1-zkMJIgOjRLqb9jwMq+ldlRRfbK0=", "dev": true }, "flush-write-stream": { @@ -7845,6 +7878,11 @@ "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz", "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=" }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, "gulp": { "version": "github:gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb", "requires": { @@ -10236,18 +10274,18 @@ } }, "jest-docblock": { - "version": "20.1.0-echo.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.1.0-echo.1.tgz", - "integrity": "sha512-zJPqHgxSlu5AYjyFLoXzwSqTZGeRAbtW9lTrWfjfDWyQCQjPlt9j9s7t3UBoDwUocM7qVNdlrcXPPtBkQR1dJw==" + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==" }, "jest-haste-map": { - "version": "20.1.0-echo.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.1.0-echo.1.tgz", - "integrity": "sha512-5hhKBYWNHIgVnGcOtzo0wsjHuMqZ+9RUmKou4py8yhjYmtbwVVVFcuvTBClwXt/NdrQ8JrbCvtHq5b4IWS7ieg==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", "requires": { "fb-watchman": "2.0.0", "graceful-fs": "4.1.11", - "jest-docblock": "20.1.0-echo.1", + "jest-docblock": "21.2.0", "micromatch": "2.3.11", "sane": "2.2.0", "worker-farm": "1.5.1" @@ -10931,9 +10969,9 @@ } }, "left-pad": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.1.3.tgz", - "integrity": "sha1-YS9hwDPzqeCOk58crr7qQbbzGZo=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", + "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=" }, "less": { "version": "2.7.3", @@ -11112,7 +11150,7 @@ } }, "lib-jitsi-meet": { - "version": "github:jitsi/lib-jitsi-meet#b4adec279669a08213adb543ef46a11e0d840b92", + "version": "github:jitsi/lib-jitsi-meet#81f57c024e137879d6c93bef62308971d0ec71b0", "requires": { "async": "0.9.0", "current-executing-script": "0.1.3", @@ -12079,18 +12117,18 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "metro-bundler": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.13.0.tgz", - "integrity": "sha512-fJAUuQ2HOVfXJVmTlrjj/KFrkK6ww/EJNoNzfNB+7KravsQ5otf8s1IFkSoBYTfi1kM4AuiBlqrWvmn27zcScg==", + "version": "0.20.3", + "resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.20.3.tgz", + "integrity": "sha512-rKhIXSUEYbBUB9Ues30GYlcotM/4hPTmriBJGdNW5D+zdlxQUgJuPEo2Woo7khNM7xRG5tN7IRnMkKlzx43/Nw==", "requires": { "absolute-path": "0.0.0", - "async": "2.5.0", + "async": "2.6.0", "babel-core": "6.26.0", "babel-generator": "6.26.0", "babel-plugin-external-helpers": "6.22.0", "babel-preset-es2015-node": "6.1.1", "babel-preset-fbjs": "2.1.4", - "babel-preset-react-native": "2.1.0", + "babel-preset-react-native": "4.0.0", "babel-register": "6.26.0", "babylon": "6.18.0", "chalk": "1.1.3", @@ -12098,14 +12136,14 @@ "core-js": "2.5.1", "debug": "2.6.9", "denodeify": "1.2.1", - "fbjs": "0.8.14", + "fbjs": "0.8.16", "graceful-fs": "4.1.11", "image-size": "0.6.1", - "jest-docblock": "20.1.0-echo.1", - "jest-haste-map": "20.1.0-echo.1", + "jest-docblock": "21.2.0", + "jest-haste-map": "21.2.0", "json-stable-stringify": "1.0.1", "json5": "0.4.0", - "left-pad": "1.1.3", + "left-pad": "1.2.0", "lodash": "4.17.4", "merge-stream": "1.0.1", "mime-types": "2.1.11", @@ -12115,24 +12153,20 @@ "source-map": "0.5.7", "temp": "0.8.3", "throat": "4.1.0", - "uglify-js": "2.7.5", + "uglify-es": "3.2.0", + "wordwrap": "1.0.0", "write-file-atomic": "1.3.4", "xpipe": "1.0.5" }, "dependencies": { "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { "lodash": "4.17.4" } }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -12145,36 +12179,10 @@ "supports-color": "2.0.0" } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "fbjs": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=", - "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } - } + "commander": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" }, "image-size": { "version": "0.6.1", @@ -12207,44 +12215,21 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, - "uglify-js": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "uglify-es": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.2.0.tgz", + "integrity": "sha512-eD4rjK4o6rzrvE1SMZJLQFEVMnWRUyIu6phJ0BXk5TIthMmP5B4QP0HI8o3bkQB5wf1N4WHA0leZAQyQBAd+Jg==", "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "commander": "2.12.2", + "source-map": "0.6.1" }, "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } } } }, @@ -12741,6 +12726,17 @@ } } }, + "node-notifier": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "requires": { + "growly": "1.3.0", + "semver": "5.4.1", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, "node-pre-gyp": { "version": "0.6.36", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", @@ -14525,9 +14521,9 @@ "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" }, "ultron": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz", - "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "ws": { "version": "2.3.1", @@ -14535,7 +14531,7 @@ "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=", "requires": { "safe-buffer": "5.0.1", - "ultron": "1.1.0" + "ultron": "1.1.1" } } } @@ -14560,9 +14556,9 @@ } }, "react-native": { - "version": "0.49.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.49.5.tgz", - "integrity": "sha1-ifD+k6jaTbJnDEvQ2BExov9hfyc=", + "version": "0.50.4", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.50.4.tgz", + "integrity": "sha1-GU9dpJOQh7Os7nEqUDR19JQtyn4=", "requires": { "absolute-path": "0.0.0", "art": "0.10.1", @@ -14581,20 +14577,21 @@ "create-react-class": "15.6.2", "debug": "2.6.9", "denodeify": "1.2.1", - "envinfo": "3.4.2", + "envinfo": "3.10.0", "event-target-shim": "1.1.1", - "fbjs": "0.8.14", + "fbjs": "0.8.16", "fbjs-scripts": "0.8.1", "fs-extra": "1.0.0", "glob": "7.1.2", "graceful-fs": "4.1.11", "inquirer": "3.3.0", "lodash": "4.17.4", - "metro-bundler": "0.13.0", + "metro-bundler": "0.20.3", "mime": "1.4.1", "minimist": "1.2.0", "mkdirp": "0.5.1", "node-fetch": "1.7.3", + "node-notifier": "5.1.2", "npmlog": "2.0.4", "opn": "3.0.3", "optimist": "0.6.1", @@ -14614,7 +14611,7 @@ "ws": "1.1.4", "xcode": "0.9.3", "xmldoc": "0.4.0", - "yargs": "6.6.0" + "yargs": "9.0.1" }, "dependencies": { "accepts": { @@ -14674,9 +14671,9 @@ "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=" }, "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chalk": { "version": "1.1.3", @@ -14743,11 +14740,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=" }, - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, "depd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", @@ -14763,20 +14755,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" }, - "fbjs": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=", - "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" - } - }, "finalhandler": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", @@ -14798,6 +14776,14 @@ } } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, "fresh": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", @@ -14852,12 +14838,15 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=" }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "number-is-nan": "1.0.1" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" } }, "minimatch": { @@ -14893,6 +14882,24 @@ "gauge": "1.2.7" } }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + } + }, "qs": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", @@ -14925,6 +14932,25 @@ } } }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, "regenerator-runtime": { "version": "0.9.6", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz", @@ -15025,16 +15051,6 @@ } } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -15043,6 +15059,11 @@ "ansi-regex": "2.1.1" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -15067,24 +15088,37 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz", "integrity": "sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk=" }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", "requires": { - "camelcase": "3.0.0", + "camelcase": "4.1.0", "cliui": "3.2.0", "decamelize": "1.2.0", "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", "require-directory": "2.1.1", "require-main-filename": "1.0.1", "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" } } } @@ -16307,6 +16341,11 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz", "integrity": "sha1-zh7YN7Sw5Vtew9q4QlGrnb3Ax+w=" }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -17105,6 +17144,12 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" }, + "sync-exec": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", + "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=", + "optional": true + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -18868,7 +18913,8 @@ "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true }, "wide-align": { "version": "1.1.2", @@ -19183,6 +19229,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, "requires": { "camelcase": "3.0.0" }, @@ -19190,7 +19237,8 @@ "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true } } }, diff --git a/package.json b/package.json index ca233e4e2..282b1ec46 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "js-md5": "0.6.1", "jssha": "2.2.0", "jwt-decode": "2.2.0", - "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#b4adec279669a08213adb543ef46a11e0d840b92", + "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#81f57c024e137879d6c93bef62308971d0ec71b0", "lodash": "4.17.4", "nuclear-js": "1.4.0", "postis": "2.2.0", @@ -54,7 +54,7 @@ "react": "16.0.0", "react-dom": "16.0.0", "react-i18next": "4.8.0", - "react-native": "0.49.5", + "react-native": "0.50.4", "react-native-background-timer": "2.0.0", "react-native-callstats": "3.26.2", "react-native-fetch-blob": "0.10.8", @@ -92,7 +92,7 @@ "eslint-plugin-react-native": "3.2.0", "expose-loader": "0.7.4", "file-loader": "1.1.5", - "flow-bin": "0.53.0", + "flow-bin": "0.56.0", "imports-loader": "0.7.1", "node-sass": "3.13.1", "precommit-hook": "3.0.0", diff --git a/react/features/app/actions.js b/react/features/app/actions.js index 77f94ed39..edc03d079 100644 --- a/react/features/app/actions.js +++ b/react/features/app/actions.js @@ -36,11 +36,12 @@ export function appNavigate(uri: ?string) { * property, it may have a value equal to {@code undefined} and that may be * acceptable. * @private - * @returns {void} + * @returns {Promise} */ function _appNavigateToMandatoryLocation( dispatch: Dispatch<*>, getState: Function, - newLocation: Object) { + newLocation: Object +): Promise { const { room } = newLocation; return ( diff --git a/react/features/base/conference/actions.js b/react/features/base/conference/actions.js index 95e64900a..00180c452 100644 --- a/react/features/base/conference/actions.js +++ b/react/features/base/conference/actions.js @@ -439,7 +439,7 @@ export function setPassword( conference: Object, method: Function, password: string) { - return (dispatch: Dispatch<*>, getState: Function) => { + return (dispatch: Dispatch<*>, getState: Function): ?Promise => { switch (method) { case conference.join: { let state = getState()['features/base/conference']; diff --git a/react/features/base/connection/actions.native.js b/react/features/base/connection/actions.native.js index 7dd36e397..f67747b49 100644 --- a/react/features/base/connection/actions.native.js +++ b/react/features/base/connection/actions.native.js @@ -259,7 +259,7 @@ function _constructOptions(state) { * @returns {Function} */ export function disconnect() { - return (dispatch: Dispatch<*>, getState: Function) => { + return (dispatch: Dispatch<*>, getState: Function): Promise => { const state = getState(); const { conference, joining } = state['features/base/conference']; diff --git a/react/features/base/lib-jitsi-meet/actions.js b/react/features/base/lib-jitsi-meet/actions.js index 4bb0a2376..132bda2d6 100644 --- a/react/features/base/lib-jitsi-meet/actions.js +++ b/react/features/base/lib-jitsi-meet/actions.js @@ -37,7 +37,7 @@ export function disposeLib() { * @returns {Function} */ export function initLib() { - return (dispatch: Dispatch<*>, getState: Function) => { + return (dispatch: Dispatch<*>, getState: Function): Promise => { const config = getState()['features/base/config']; if (!config) { diff --git a/react/features/base/lib-jitsi-meet/functions.js b/react/features/base/lib-jitsi-meet/functions.js index e6be16e18..38ce6c0e5 100644 --- a/react/features/base/lib-jitsi-meet/functions.js +++ b/react/features/base/lib-jitsi-meet/functions.js @@ -109,7 +109,7 @@ export function isFatalJitsiConnectionError(error: Object | string) { * @param {string} url - The URL to load. * @returns {Promise} */ -export function loadConfig(url: string) { +export function loadConfig(url: string): Promise { let promise; if (typeof APP === 'undefined') { diff --git a/react/features/base/util/loadScript.web.js b/react/features/base/util/loadScript.web.js index 01b7c7822..9ea262a3a 100644 --- a/react/features/base/util/loadScript.web.js +++ b/react/features/base/util/loadScript.web.js @@ -9,7 +9,7 @@ declare var JitsiMeetJS: Object; * @returns {Promise} Resolved with no arguments when the script is loaded and * rejected with the error from JitsiMeetJS.ScriptUtil.loadScript method. */ -export function loadScript(url: string) { +export function loadScript(url: string): Promise { return new Promise((resolve, reject) => JitsiMeetJS.util.ScriptUtil.loadScript( url, diff --git a/react/features/feedback/actions.js b/react/features/feedback/actions.js index 59575211d..b958814e9 100644 --- a/react/features/feedback/actions.js +++ b/react/features/feedback/actions.js @@ -41,7 +41,12 @@ export function cancelFeedback(score: number, message: string) { * submitted. Rejected if another dialog is already displayed. */ export function maybeOpenFeedbackDialog(conference: Object) { - return (dispatch: Dispatch<*>, getState: Function) => { + type R = { + feedbackSubmitted: boolean, + thankYouDialogVisible: boolean + }; + + return (dispatch: Dispatch<*>, getState: Function): Promise => { const state = getState(); if (interfaceConfig.filmStripOnly || config.iAmRecorder) { diff --git a/react/features/invite/functions.js b/react/features/invite/functions.js index d5b0cf8f9..ff1c82654 100644 --- a/react/features/invite/functions.js +++ b/react/features/invite/functions.js @@ -30,7 +30,7 @@ export function invitePeopleAndChatRooms( // eslint-disable-line max-params inviteServiceUrl: string, inviteUrl: string, jwt: string, - inviteItems: Object) { + inviteItems: Object): Promise { if (!inviteItems || inviteItems.length === 0) { return Promise.resolve(); } @@ -74,7 +74,8 @@ export function searchDirectory( // eslint-disable-line max-params serviceUrl: string, jwt: string, text: string, - queryTypes: Array = [ 'conferenceRooms', 'user', 'room' ]) { + queryTypes: Array = [ 'conferenceRooms', 'user', 'room' ] +): Promise { const queryTypesString = JSON.stringify(queryTypes); return new Promise((resolve, reject) => { diff --git a/react/features/mobile/external-api/middleware.js b/react/features/mobile/external-api/middleware.js index 99ba76507..559c27603 100644 --- a/react/features/mobile/external-api/middleware.js +++ b/react/features/mobile/external-api/middleware.js @@ -120,7 +120,11 @@ function _getSymbolDescription(symbol: Symbol) { */ function _sendConferenceEvent( store: Object, - { conference, type, ...data }: { conference: Object, type: Symbol }) { + { conference, type, ...data }: { + conference: Object, + type: Symbol, + url: ?string + }) { // For these (redux) actions, conference identifies a JitsiConference // instance. The external API cannot transport such an object so we have to // transport an "equivalent".