diff --git a/.flowconfig b/.flowconfig
index 5640712e1..f4614a4af 100644
--- a/.flowconfig
+++ b/.flowconfig
@@ -17,7 +17,3 @@ node_modules/@verdaccio/types/lib/
[options]
suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe
-unsafe.enable_getters_and_setters=true
-
-[version]
-^0.52.0
diff --git a/flow-typed/npm/lodash_v4.x.x.js b/flow-typed/npm/lodash_v4.x.x.js
index 2ca168712..4a6e3c9af 100644
--- a/flow-typed/npm/lodash_v4.x.x.js
+++ b/flow-typed/npm/lodash_v4.x.x.js
@@ -1,30 +1,162 @@
-// flow-typed signature: 495348fe7e36289229ca4b9b8cbad572
-// flow-typed version: 9821eaaefe/lodash_v4.x.x/flow_>=v0.47.x
+// flow-typed signature: 4ec6718fe549fa8effb81eee9c15770d
+// flow-typed version: 971505dcec/lodash_v4.x.x/flow_>=v0.55.x
+
+declare module "lodash" {
+ 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 __CurriedFunction3 = ((
+ ...r: [AA]
+ ) => CurriedFunction2) &
+ ((...r: [AA, BB]) => CurriedFunction1) &
+ ((...r: [AA, BB, CC]) => R);
+ declare type CurriedFunction3 = __CurriedFunction3<
+ A,
+ B,
+ C,
+ R,
+ *,
+ *,
+ *
+ >;
+
+ 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<
+ 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<
+ 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 module 'lodash' {
declare type TemplateSettings = {
escape?: RegExp,
evaluate?: RegExp,
imports?: Object,
interpolate?: RegExp,
- variable?: string,
+ variable?: string
};
declare type TruncateOptions = {
length?: number,
omission?: string,
- separator?: RegExp|string,
+ separator?: RegExp | string
};
declare type DebounceOptions = {
- leading?: bool,
+ leading?: boolean,
maxWait?: number,
- trailing?: bool,
+ trailing?: boolean
};
declare type ThrottleOptions = {
- leading?: bool,
- trailing?: bool,
+ leading?: boolean,
+ trailing?: boolean
};
declare type NestedArray = Array>;
@@ -39,7 +171,10 @@ declare module 'lodash' {
| matchesPropertyIterateeShorthand
| propertyIterateeShorthand;
- declare type OIterateeWithResult = Object|string|((value: V, key: string, object: O) => R);
+ declare type OIterateeWithResult =
+ | Object
+ | string
+ | ((value: V, key: string, object: O) => R);
declare type OIteratee = OIterateeWithResult;
declare type OFlatMapIteratee = OIterateeWithResult>;
@@ -50,183 +185,548 @@ declare module 'lodash' {
| propertyIterateeShorthand;
declare type _ValueOnlyIteratee = (value: T) => mixed;
- declare type ValueOnlyIteratee = _ValueOnlyIteratee|string;
- declare type _Iteratee = (item: T, index: number, array: ?Array) => mixed;
- declare type Iteratee = _Iteratee|Object|string;
- declare type FlatMapIteratee = ((item: T, index: number, array: ?Array) => Array)|Object|string;
- declare type Comparator = (item: T, item2: T) => bool;
+ declare type ValueOnlyIteratee = _ValueOnlyIteratee | string;
+ declare type _Iteratee = (
+ item: T,
+ index: number,
+ array: ?Array
+ ) => mixed;
+ declare type Iteratee = _Iteratee | Object | string;
+ declare type FlatMapIteratee =
+ | ((item: T, index: number, array: ?Array) => Array)
+ | Object
+ | string;
+ declare type Comparator = (item: T, item2: T) => boolean;
- declare type MapIterator =
+ declare type MapIterator =
| ((item: T, index: number, array: Array) => U)
| propertyIterateeShorthand;
- declare type OMapIterator =
+ declare type ReadOnlyMapIterator =
+ | ((item: T, index: number, array: $ReadOnlyArray) => U)
+ | propertyIterateeShorthand;
+
+ declare type OMapIterator =
| ((item: T, key: string, object: O) => U)
| propertyIterateeShorthand;
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;
- 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;
- fill(array: ?Array, value: U, start?: number, end?: number): Array;
- findIndex(array: ?Array, predicate?: Predicate, fromIndex?: number): number;
- findLastIndex(array: ?Array, predicate?: Predicate, fromIndex?: number): number;
+ chunk(array?: ?Array, size?: ?number): Array>;
+ compact(array?: ?Array): Array;
+ concat(base?: ?Array, ...elements: Array): Array;
+ difference(array?: ?$ReadOnlyArray, values?: ?$ReadOnlyArray): Array;
+ differenceBy(
+ array?: ?$ReadOnlyArray,
+ values?: ?$ReadOnlyArray,
+ iteratee?: ?ValueOnlyIteratee
+ ): T[];
+ differenceWith(array?: ?$ReadOnlyArray, values?: ?$ReadOnlyArray, 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;
+ findIndex(
+ array: $ReadOnlyArray,
+ predicate?: ?Predicate,
+ fromIndex?: ?number
+ ): number;
+ findIndex(
+ array: void | null,
+ predicate?: ?Predicate,
+ fromIndex?: ?number
+ ): -1;
+ findLastIndex(
+ array: $ReadOnlyArray,
+ predicate?: ?Predicate,
+ fromIndex?: ?number
+ ): number;
+ findLastIndex(
+ array: void | null,
+ predicate?: ?Predicate,
+ fromIndex?: ?number
+ ): -1;
// 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;
+ 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;
+ indexOf(array: Array, value: T, fromIndex?: number): number;
+ indexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1;
initial(array: ?Array): Array;
- intersection(...arrays: Array>): Array;
+ intersection(...arrays?: Array>): Array;
//Workaround until (...parameter: T, parameter2: U) works
- intersectionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array;
- intersectionBy(a1: Array, a2: Array, iteratee?: ValueOnlyIteratee): Array;
- intersectionBy(a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee): Array;
- intersectionBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee): Array;
+ intersectionBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array;
+ intersectionBy(
+ a1?: ?Array,
+ a2?: ?Array,
+ iteratee?: ?ValueOnlyIteratee
+ ): Array;
+ intersectionBy(
+ a1?: ?Array,
+ a2?: ?Array,
+ a3?: ?Array,
+ iteratee?: ?ValueOnlyIteratee
+ ): Array;
+ intersectionBy(
+ a1?: ?Array,
+ a2?: ?Array,
+ a3?: ?Array,
+ a4?: ?Array,
+ iteratee?: ?ValueOnlyIteratee
+ ): Array;
//Workaround until (...parameter: T, parameter2: U) works
- intersectionWith(a1: Array, comparator: Comparator): Array;
- intersectionWith(a1: Array, a2: Array, comparator: Comparator): Array;
- intersectionWith(a1: Array, a2: Array, a3: Array, comparator: Comparator): Array;
- intersectionWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator: Comparator): Array;
- join(array: ?Array, separator?: string): string;
+ intersectionWith(a1?: ?Array, comparator?: ?Comparator): Array;
+ intersectionWith(
+ a1?: ?Array,
+ a2?: ?Array