diff --git a/.flowconfig b/.flowconfig index 993483516..750e0d10e 100644 --- a/.flowconfig +++ b/.flowconfig @@ -6,4 +6,8 @@ [libs] ./node_modules/@polkadot/dev/flow-typed +[lints] +all=warn + [options] +include_warnings=true diff --git a/package.json b/package.json index be390014c..ace7c3965 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/util", - "version": "0.10.1", + "version": "0.11.0", "description": "A collection of useful utilities for @polkadot", "main": "index.js", "keywords": [ @@ -29,8 +29,8 @@ "test": "jest --coverage" }, "devDependencies": { - "@polkadot/api-jsonrpc": "^0.6.7", - "@polkadot/dev": "^0.13.5" + "@polkadot/api-jsonrpc": "^0.6.8", + "@polkadot/dev": "^0.14.5" }, "dependencies": { "babel-runtime": "^6.26.0", diff --git a/src/array/filter.js b/src/array/filter.js index 515319bd2..4d0801db5 100644 --- a/src/array/filter.js +++ b/src/array/filter.js @@ -1,13 +1,12 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('../assert'); const isNull = require('../is/null'); const isUndefined = require('../is/undefined'); /** @name arrayFilter - @signature arrayFilter (array: Array, allowNulls: boolean = true): Array + @signature arrayFilter (array: Array, allowNulls: boolean = true): Array @summary Filters undefined and (optionally) null values from an array @description Returns a new array with all `undefined` values removed. Optionally, when `allowNulls = false`, it removes the `null` values as well @@ -17,9 +16,7 @@ const isUndefined = require('../is/undefined'); arrayFilter([0, void 0, true, null, false, '']); // [0, true, null, false, ''] arrayFilter([0, void 0, true, null, false, ''], false); // [0, true, false, ''] */ -module.exports = function arrayFilter (array: Array, allowNulls: boolean = true): Array { - assert(Array.isArray(array), `Expected Array input value, received '${(array: any)}'`); - +module.exports = function arrayFilter (array: Array, allowNulls: boolean = true): Array { return array.filter((value) => { return !isUndefined(value) && (allowNulls || !isNull(value)); }); diff --git a/src/array/filter.spec.js b/src/array/filter.spec.js index bba60d5e3..43fcb6369 100644 --- a/src/array/filter.spec.js +++ b/src/array/filter.spec.js @@ -3,12 +3,6 @@ const { arrayFilter } = require('./index'); describe('filterArray', () => { - it('expects an array input', () => { - expect( - () => arrayFilter('notAnArray') - ).toThrow(/Expected Array input value/); - }); - it('filters arrays, removing undefined', () => { expect( arrayFilter([0, '', null, false, void 0, NaN]) diff --git a/src/assert.js b/src/assert.js index f6a96f7d2..5d4623d80 100644 --- a/src/assert.js +++ b/src/assert.js @@ -6,7 +6,7 @@ const isFunction = require('./is/function'); /** @name assert - @signature assert (test: any, message: string | () => string, code: number = ExtError.CODES.ASSERT, data: any): void + @signature assert (test: mixed, message: string | () => string, code: number = ExtError.CODES.ASSERT, data: mixed): void @summary Checks for a valid test, if not ExtError is thrown. @description Checks that `test` is a truthy value. If value is falsy (`null`, `undefined`, `false`, ...), it throws an ExtError with the supplied `message` and an optional `code` and `data`. When `test` passes, `true` is returned. @@ -17,14 +17,17 @@ const isFunction = require('./is/function'); assert(false, 'False should not be true'); // ExtError thrown assert(false, () => 'message'); // ExtError with 'message' */ -module.exports = function assert (test: any, message: string | () => string, code: number = ExtError.CODES.ASSERT, data: any): boolean { +module.exports = function assert (test: mixed, message: string | () => string, code: number = ExtError.CODES.ASSERT, data: mixed): boolean { + // flowlint-next-line sketchy-null:off if (test) { return true; } if (isFunction(message)) { - message = ((message: any): () => string)(); + // $FlowFixMe we have a function here + message = message(); } - throw new ExtError(((message: any): string), code, data); + // $FlowFixMe we have a string here + throw new ExtError(message, code, data); }; diff --git a/src/bn/toHex.js b/src/bn/toHex.js index 5080f15d6..edadfab55 100644 --- a/src/bn/toHex.js +++ b/src/bn/toHex.js @@ -3,11 +3,9 @@ const BN = require('bn.js'); -const assert = require('../assert'); const hexAddPrefix = require('../hex/addPrefix'); -const isBN = require('../is/bn'); -const ZERO_STR = '0x'; +const ZERO_STR = '0x00'; /** @name bnToHex @@ -19,14 +17,12 @@ const ZERO_STR = '0x'; import BN from 'bn.js'; import { bnToHex } from '@polkadot/util'; - console.log('Hex value', bnToHex(new BN(123456)); + bnToHex(new BN(0x123456)); // => '0x123456' */ module.exports = function bnToHex (value?: BN): string { if (!value) { return ZERO_STR; } - assert(isBN(value), `Cannot convert from non-BN value '${(value: any)}' to hex`); - return hexAddPrefix(value.toString(16)); }; diff --git a/src/bn/toHex.spec.js b/src/bn/toHex.spec.js index cc639db32..1861038e3 100644 --- a/src/bn/toHex.spec.js +++ b/src/bn/toHex.spec.js @@ -11,15 +11,9 @@ describe('bnToHex', () => { ).toEqual('0x80'); }); - it('converts null values to 0x', () => { + it('converts null values to 0x00', () => { expect( bnToHex(null) - ).toEqual('0x'); - }); - - it('throws when trying to convert non-BN values', () => { - expect( - () => bnToHex('notABn') - ).toThrow(/Cannot convert from non-BN/); + ).toEqual('0x00'); }); }); diff --git a/src/buffer/toHex.js b/src/buffer/toHex.js index e56a564cd..512eb232e 100644 --- a/src/buffer/toHex.js +++ b/src/buffer/toHex.js @@ -1,11 +1,9 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('../assert'); -const isBuffer = require('../is/buffer'); const hexAddPrefix = require('../hex/addPrefix'); -const ZERO_HEX = '0x'; +const ZERO_HEX = '0x00'; /** @name bufferToHex @@ -16,15 +14,13 @@ const ZERO_HEX = '0x'; @example import { bufferToHex } from '@polkadot/util'; - console.log('Hex value', bufferToHex(Buffer.from([1, 2, 3])); + bufferToHex(Buffer.from([1, 2, 3]); // => 0x010203 */ module.exports = function bufferToHex (value?: Buffer): string { if (!value) { return ZERO_HEX; } - assert(isBuffer(value), `Cannot convert non-buffer to hex`); - return hexAddPrefix( value.toString('hex') ); diff --git a/src/buffer/toHex.spec.js b/src/buffer/toHex.spec.js index a00b93586..dea97fe1a 100644 --- a/src/buffer/toHex.spec.js +++ b/src/buffer/toHex.spec.js @@ -3,10 +3,10 @@ const { bufferToHex } = require('./index'); describe('bufferToHex', () => { - it('returns 0x when the buffer is null', () => { + it('returns 0x00 when the buffer is null', () => { expect( bufferToHex(null) - ).toEqual('0x'); + ).toEqual('0x00'); }); it('returns the hex value for the buffer', () => { @@ -14,10 +14,4 @@ describe('bufferToHex', () => { bufferToHex(Buffer.from([128, 0, 10])) ).toEqual('0x80000a'); }); - - it('throws when non-buffer value is supplied', () => { - expect( - () => bufferToHex('noABuffer') - ).toThrow(/Cannot convert non-buffer/); - }); }); diff --git a/src/buffer/toU8a.js b/src/buffer/toU8a.js index 883e4d1b7..db73a352b 100644 --- a/src/buffer/toU8a.js +++ b/src/buffer/toU8a.js @@ -1,9 +1,6 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('../assert'); -const isBuffer = require('../is/buffer'); - /** @name bufferToU8a @signature bufferToU8a (value?: Buffer): string @@ -20,8 +17,6 @@ module.exports = function bufferToU8a (buffer?: Buffer): Uint8Array { return new Uint8Array([]); } - assert(isBuffer(buffer), 'Cannot convert non-buffer to Uint8Array'); - const array = new Uint8Array(buffer.length); for (let index = 0; index < buffer.length; ++index) { diff --git a/src/buffer/toU8a.spec.js b/src/buffer/toU8a.spec.js index ec33c7f8c..dfd569813 100644 --- a/src/buffer/toU8a.spec.js +++ b/src/buffer/toU8a.spec.js @@ -14,10 +14,4 @@ describe('bufferToU8a', () => { bufferToU8a(Buffer.from([128, 0, 10])) ).toEqual(new Uint8Array([128, 0, 10])); }); - - it('throws error on non-Buffer inputs', () => { - expect( - () => bufferToU8a('notBuffer') - ).toThrow(/Cannot convert non-/); - }); }); diff --git a/src/ext/error.js b/src/ext/error.js index ac4bcac7e..5cd5b7fbe 100644 --- a/src/ext/error.js +++ b/src/ext/error.js @@ -12,7 +12,7 @@ const UNKNOWN = -99999; @signature ExtError (message: string = '', code: number = UNKNOWN_ERROR, value: any) @summary Extension to the basic JS Error. @description - The built-in JavaScript Error class is extended by adding a code to allow for Error categorization. In addition to the normal `stack`, `message`, the numeric `code` and `data` (any types) parameters are available on the object. + The built-in JavaScript Error class is extended by adding a code to allow for Error categorization. In addition to the normal `stack`, `message`, the numeric `code` and `data` (mixed types) parameters are available on the object. @example const { ExtError } = require('@polkadot/util'); @@ -20,15 +20,15 @@ const UNKNOWN = -99999; */ module.exports = class ExtError extends Error implements ExtErrorInterface { code: number; - data: any; + data: mixed; message: string; name: string; stack: string; - constructor (message: string = '', code: number = UNKNOWN, data: any) { + constructor (message: string = '', code: number = UNKNOWN, data: mixed) { super(); - const extend = (name: string, value: any): void => { + const extend = (name: string, value: mixed): void => { Object.defineProperty(this, name, { configurable: true, enumerable: false, diff --git a/src/hex/addPrefix.js b/src/hex/addPrefix.js index 5644f2993..e6ecb3878 100644 --- a/src/hex/addPrefix.js +++ b/src/hex/addPrefix.js @@ -15,10 +15,12 @@ const hasPrefix = require('./hasPrefix'); console.log('With prefix', hexAddPrefix('0a0b12')) // => 0x0a0b12 */ module.exports = function hexAddPrefix (value: ?string): string { + // flowlint-next-line sketchy-null-string:off if (value && hasPrefix(value)) { return value; } + // flowlint-next-line sketchy-null-string:off const prefix = value && value.length % 2 === 1 ? '0' : ''; diff --git a/src/hex/fixLength.js b/src/hex/fixLength.js index f4f326947..db7f2c47d 100644 --- a/src/hex/fixLength.js +++ b/src/hex/fixLength.js @@ -1,8 +1,6 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('../assert'); -const isHex = require('../is/hex'); const hexAddPrefix = require('./addPrefix'); const hexStripPrefix = require('./stripPrefix'); const { ZEROS_256 } = require('./constants'); @@ -21,8 +19,6 @@ const { ZEROS_256 } = require('./constants'); console.log('fixed', hexFixLength('0x0012', 8)) // => 0x12 */ module.exports = function hexFixLength (value: string, bitLength: number = -1, withPadding: boolean = false): string { - assert(isHex(value), `Expected hex input value, found '${value}' instead`); - const strLength = bitLength / 4; const hexLength = strLength + 2; diff --git a/src/hex/fixLength.spec.js b/src/hex/fixLength.spec.js index f082f20d1..bf174c560 100644 --- a/src/hex/fixLength.spec.js +++ b/src/hex/fixLength.spec.js @@ -3,12 +3,6 @@ const { hexFixLength } = require('./index'); describe('hexFixLength', () => { - it('throws an exception on non-hex inputs', () => { - expect( - () => hexFixLength('notAHex') - ).toThrow(/Expected hex input value/); - }); - it('returns bitLength === -1 as-is', () => { expect( hexFixLength('0x12345678') diff --git a/src/hex/hasPrefix.js b/src/hex/hasPrefix.js index 890b66b20..f6698d225 100644 --- a/src/hex/hasPrefix.js +++ b/src/hex/hasPrefix.js @@ -15,5 +15,6 @@ const isHex = require('../is/hex'); console.log('has prefix', hexHasPrefix('0x1234')); // => true */ module.exports = function hexHasPrefix (value: ?string): boolean { + // flowlint-next-line sketchy-null-string:off return !!(value && isHex(value) && value.substr(0, 2) === '0x'); }; diff --git a/src/hex/stripPrefix.js b/src/hex/stripPrefix.js index 216e3dd0d..96d73f60c 100644 --- a/src/hex/stripPrefix.js +++ b/src/hex/stripPrefix.js @@ -15,6 +15,7 @@ const hasPrefix = require('./hasPrefix'); console.log('stripped', hexStripPrefix('0x1234')); // => 1234 */ module.exports = function hexStripPrefix (value: ?string): string { + // flowlint-next-line sketchy-null-string:off if (value && hasPrefix(value)) { return value.substr(2); } diff --git a/src/hex/toBn.js b/src/hex/toBn.js index a9773383d..137721c29 100644 --- a/src/hex/toBn.js +++ b/src/hex/toBn.js @@ -3,9 +3,7 @@ const BN = require('bn.js'); -const assert = require('../assert'); const hexStripPrefix = require('./stripPrefix'); -const isHex = require('../is/hex'); const ZERO_BN = new BN(0); @@ -18,14 +16,13 @@ const ZERO_BN = new BN(0); @example import { hexToBn } from '@polkadot/util'; - console.log('BN object', hexToBn('0x123480001f')); + hexToBn('0x123480001f'); // => BN(0x123480001f) */ module.exports = function hexToBn (value?: string): BN { + // flowlint-next-line sketchy-null-string:off if (!value) { return ZERO_BN; } - assert(isHex(value), `Cannot convert from non-hex value '${value}' to BN`); - return new BN(hexStripPrefix(value), 16); }; diff --git a/src/hex/toBn.spec.js b/src/hex/toBn.spec.js index 8ea197b3b..dfa3a361c 100644 --- a/src/hex/toBn.spec.js +++ b/src/hex/toBn.spec.js @@ -22,10 +22,4 @@ describe('hexToBn', () => { ) ).toEqual(true); }); - - it('throws when trying to convert non-BN values', () => { - expect( - () => hexToBn('noAHex') - ).toThrow(/Cannot convert from non-hex/); - }); }); diff --git a/src/hex/toBuffer.js b/src/hex/toBuffer.js index 8a28f6f30..2f01f0296 100644 --- a/src/hex/toBuffer.js +++ b/src/hex/toBuffer.js @@ -1,8 +1,6 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('../assert'); -const isHex = require('../is/hex'); const hexStripPrefix = require('./stripPrefix'); /** @@ -14,14 +12,13 @@ const hexStripPrefix = require('./stripPrefix'); @example import { hexToBuffer } from '@polkadot/util'; - console.log('Buffer object', hexToBuffer('0x123480001f')); + hexToBuffer('0x123480001f'); // Buffer([0x12, 0x34, 0x80, 0x00, 0x1f]) */ module.exports = function hexToBuffer (value?: string): Buffer { + // flowlint-next-line sketchy-null-string:off if (!value) { return Buffer.from([]); } - assert(isHex(value), `Cannot convert non-hex value '${value}' to Buffer`); - return Buffer.from(hexStripPrefix(value), 'hex'); }; diff --git a/src/hex/toBuffer.spec.js b/src/hex/toBuffer.spec.js index 0d6136a95..5ccfe8358 100644 --- a/src/hex/toBuffer.spec.js +++ b/src/hex/toBuffer.spec.js @@ -16,10 +16,4 @@ describe('hexToBuffer', () => { ) ).toEqual(true); }); - - it('throws error on non-hex inputs', () => { - expect( - () => hexToBuffer('notAHex') - ).toThrow(/Cannot convert non-hex value/); - }); }); diff --git a/src/hex/toNumber.js b/src/hex/toNumber.js index 0594bff59..aa34135e9 100644 --- a/src/hex/toNumber.js +++ b/src/hex/toNumber.js @@ -6,7 +6,7 @@ const hexToBuffer = require('../hex/toBuffer'); /** @name hexToNumber - @signature hexToNumber (value?: Hex): number + @signature hexToNumber (value?: string): number @summary Creates a Number value from a Buffer object. @description `null` inputs returns an NaN result, `hex` values return the actual value as a `Number`. @@ -16,6 +16,7 @@ const hexToBuffer = require('../hex/toBuffer'); hexToNumber('0x1234'); // => 0x1234 */ module.exports = function hexToNumber (value?: string): number { + // flowlint-next-line sketchy-null-string:off if (!value) { return NaN; } diff --git a/src/is/bn.js b/src/is/bn.js index 7873c3333..15a0eab9f 100644 --- a/src/is/bn.js +++ b/src/is/bn.js @@ -5,7 +5,7 @@ const BN = require('bn.js'); /** @name isBN - @signature isBN (value: any): boolean + @signature isBN (value: mixed): boolean @summary Tests for a `BN` object instance. @description Checks to see if the input object is an instance of `BN` (bn.js). @@ -15,6 +15,6 @@ const BN = require('bn.js'); console.log('isBN', isBN(new BN(1))); // => true */ -module.exports = function isBN (value: any): boolean { +module.exports = function isBN (value: mixed): boolean { return BN.isBN(value); }; diff --git a/src/is/boolean.js b/src/is/boolean.js index 2394895c9..1a56bd08f 100644 --- a/src/is/boolean.js +++ b/src/is/boolean.js @@ -3,7 +3,7 @@ /** @name isBoolean - @signature isBoolean (value: any): boolean + @signature isBoolean (value: mixed): boolean @summary Tests for a boolean value. @description Checks to see if the input value is a JavaScript boolean. @@ -12,6 +12,6 @@ isBoolean(false); // => true */ -module.exports = function isBoolean (value: any): boolean { +module.exports = function isBoolean (value: mixed): boolean { return typeof value === 'boolean'; }; diff --git a/src/is/buffer.js b/src/is/buffer.js index 08841f351..48551f145 100644 --- a/src/is/buffer.js +++ b/src/is/buffer.js @@ -5,7 +5,7 @@ const isInstanceOf = require('./instanceOf'); /** @name isBuffer - @signature isBuffer (value: any): boolean + @signature isBuffer (value: mixed): boolean @summary Tests for a `Buffer` object instance. @description Checks to see if the input object is an instance of `Buffer`. @@ -14,6 +14,6 @@ const isInstanceOf = require('./instanceOf'); console.log('isBuffer', isBuffer(Buffer.from([]))); // => true */ -module.exports = function isBuffer (value: any): boolean { +module.exports = function isBuffer (value: mixed): boolean { return isInstanceOf(value, Buffer); }; diff --git a/src/is/error.js b/src/is/error.js index 40c638c5f..12b697aed 100644 --- a/src/is/error.js +++ b/src/is/error.js @@ -5,7 +5,7 @@ const isInstanceOf = require('./instanceOf'); /** @name isError - @signature isError (value: any): boolean + @signature isError (value: mixed): boolean @summary Tests for a `Error` object instance. @description Checks to see if the input object is an instance of `Error`. @@ -14,6 +14,6 @@ const isInstanceOf = require('./instanceOf'); console.log('isError', isError(new Error('message'))); // => true */ -module.exports = function isError (value: any): boolean { +module.exports = function isError (value: mixed): boolean { return isInstanceOf(value, Error); }; diff --git a/src/is/function.js b/src/is/function.js index d1256a86c..257b5c978 100644 --- a/src/is/function.js +++ b/src/is/function.js @@ -3,7 +3,7 @@ /** @name isFunction - @signature isFunction (value: any): boolean + @signature isFunction (value: mixed): boolean @summary Tests for a `function`. @description Checks to see if the input value is a JavaScript function. @@ -12,6 +12,6 @@ console.log('isFunction', isFunction(() => false)); // => true */ -module.exports = function isFunction (value: any): boolean { +module.exports = function isFunction (value: mixed): boolean { return typeof value === 'function'; }; diff --git a/src/is/hex.js b/src/is/hex.js index f0e7b46f0..5f76e85d6 100644 --- a/src/is/hex.js +++ b/src/is/hex.js @@ -7,7 +7,7 @@ const HEX_REGEX = /^0x[a-fA-F0-9]+$/; /** @name isHex - @signature isHex (value: any, bitLength: number = -1): boolean + @signature isHex (value: string, bitLength: number = -1): boolean @summary Tests for a hex string. @description Checks to see if the input value is a `0x` prefixed hex string. Optionally (`bitLength` !== -1) checks to see if the bitLength is correct. @@ -17,11 +17,11 @@ const HEX_REGEX = /^0x[a-fA-F0-9]+$/; isHex('0x1234'); // => true isHex('0x1234', 8); // => false */ -module.exports = function isHex (value: any, bitLength: number = -1): boolean { +module.exports = function isHex (value: string, bitLength: number = -1): boolean { const isValidHex = isString(value) && HEX_REGEX.test(value); if (isValidHex && bitLength !== -1) { - return (value: string).length === 2 + bitLength / 4; + return value.length === (2 + bitLength / 4); } return isValidHex; diff --git a/src/is/instanceOf.js b/src/is/instanceOf.js index 54effecd0..eea3c2143 100644 --- a/src/is/instanceOf.js +++ b/src/is/instanceOf.js @@ -3,7 +3,7 @@ /** @name isInstanceOf - @signature isInstanceOf (value: any, clazz: any): boolean + @signature isInstanceOf (value: mixed, clazz: Class): boolean @summary Tests for a instance of a class. @description Checks to see if the input value is an instance of the test class. @@ -12,6 +12,6 @@ console.log('isInstanceOf', isInstanceOf(new Array(0), Array)); // => true */ -module.exports = function isInstanceOf (value: any, clazz: any): boolean { +module.exports = function isInstanceOf (value: mixed, clazz: Class): boolean { return value instanceof clazz; }; diff --git a/src/is/ip.js b/src/is/ip.js index 370aa2ab8..fcb316bce 100644 --- a/src/is/ip.js +++ b/src/is/ip.js @@ -7,7 +7,7 @@ const ipRegex = require('ip-regex'); /** @name isIp - @signature isIp (value: any, type?: 'v4' | 'v6'): boolean + @signature isIp (value: string, type?: 'v4' | 'v6'): boolean @summary Tests if the value is a valid IP address @description Checks to see if the value is a valid IP address. Optionally check for either v4/v6 @@ -19,7 +19,7 @@ const ipRegex = require('ip-regex'); isIp('192.168.0.1', 'v6')); // => false isIp('1:2:3:4:5:6:7:8', 'v4'); // => false */ -module.exports = function isIp (value: any, type?: IpTypes): boolean { +module.exports = function isIp (value: string, type?: IpTypes): boolean { if (type === 'v4') { return ipRegex.v4({ exact: true }).test(value); } else if (type === 'v6') { diff --git a/src/is/null.js b/src/is/null.js index b66d66ca3..406f38dcb 100644 --- a/src/is/null.js +++ b/src/is/null.js @@ -3,7 +3,7 @@ /** @name isNull - @signature isNull (value: any): boolean + @signature isNull (value: mixed): boolean @summary Tests for a `null` values. @description Checks to see if the input value is `null`. @@ -12,6 +12,6 @@ console.log('isNull', isNull(null)); // => true */ -module.exports = function isNull (value: any): boolean { +module.exports = function isNull (value: mixed): boolean { return value === null; }; diff --git a/src/is/number.js b/src/is/number.js index f38e5d9ee..ed25c4eef 100644 --- a/src/is/number.js +++ b/src/is/number.js @@ -3,7 +3,7 @@ /** @name isNumber - @signature isNumber (value: any): boolean + @signature isNumber (value: mixed): boolean @summary Tests for a JavaScript number. @description Checks to see if the input value is a valid number. @@ -12,6 +12,6 @@ console.log('isNumber', isNumber(1234)); // => true */ -module.exports = function isNumber (value: any): boolean { +module.exports = function isNumber (value: mixed): boolean { return typeof value === 'number'; }; diff --git a/src/is/object.js b/src/is/object.js index 6d180e8b1..d00caa03e 100644 --- a/src/is/object.js +++ b/src/is/object.js @@ -3,7 +3,7 @@ /** @name isObject - @signature isObject (value: any): boolean + @signature isObject (value: mixed): boolean @summary Tests for an `object`. @description Checks to see if the input value is a JavaScript object. @@ -13,6 +13,6 @@ isObject({}); // => true isObject('something'); // => false */ -module.exports = function isObject (value: any): boolean { +module.exports = function isObject (value: mixed): boolean { return typeof value === 'object'; }; diff --git a/src/is/string.js b/src/is/string.js index 08e46f002..e2f750832 100644 --- a/src/is/string.js +++ b/src/is/string.js @@ -3,7 +3,7 @@ /** @name isString - @signature isString (value: any): boolean + @signature isString (value: mixed): boolean @summary Tests for a string. @description Checks to see if the input value is a JavaScript string. @@ -12,6 +12,6 @@ console.log('isString', isString('test')); // => true */ -module.exports = function isString (value: any): boolean { +module.exports = function isString (value: mixed): boolean { return typeof value === 'string'; }; diff --git a/src/is/uint8Array.js b/src/is/uint8Array.js index 6106e7512..70ad423e9 100644 --- a/src/is/uint8Array.js +++ b/src/is/uint8Array.js @@ -5,7 +5,7 @@ const isInstanceOf = require('./instanceOf'); /** @name isUint8Array - @signature isUint8Array (value: any): boolean + @signature isUint8Array (value: mixed): boolean @summary Tests for a `Uint8Array` object instance. @description Checks to see if the input object is an instance of `Uint8Array`. @@ -14,6 +14,6 @@ const isInstanceOf = require('./instanceOf'); console.log('isUint8Array', isUint8Array([])); // => false */ -module.exports = function isUint8Array (value: any): boolean { +module.exports = function isUint8Array (value: mixed): boolean { return isInstanceOf(value, Uint8Array); }; diff --git a/src/is/undefined.js b/src/is/undefined.js index ec0778732..cd0b8cf81 100644 --- a/src/is/undefined.js +++ b/src/is/undefined.js @@ -3,7 +3,7 @@ /** @name isUndefined - @signature isUndefined (value: any): boolean + @signature isUndefined (value: mixed): boolean @summary Tests for a `undefined` values. @description Checks to see if the input value is `undefined`. @@ -12,6 +12,6 @@ console.log('isUndefined', isUndefined(void(0))); // => true */ -module.exports = function isUndefined (value: any): boolean { +module.exports = function isUndefined (value: mixed): boolean { return typeof value === 'undefined'; }; diff --git a/src/jsonrpc/signature.js b/src/jsonrpc/signature.js index 8b3530b17..0af0927d0 100644 --- a/src/jsonrpc/signature.js +++ b/src/jsonrpc/signature.js @@ -4,8 +4,10 @@ import type { InterfaceInputType, InterfaceOutputType } from '@polkadot/api-jsonrpc/types'; function formatParam (param: InterfaceInputType | InterfaceOutputType): string { + // flowlint-next-line sketchy-null-mixed:off,sketchy-null-string:off return param.name - ? `${((param.name: any): string)}: ${param.type}` + // $FlowFixMe InterfaceInputType found, has name + ? `${param.name}: ${param.type}` : param.type; } diff --git a/src/logger.js b/src/logger.js index c19e05906..1c49d0bdf 100644 --- a/src/logger.js +++ b/src/logger.js @@ -2,14 +2,14 @@ // @flow type Logger = { - error: (...values: Array) => void, - log: (...values: Array) => void, - warn: (...values: Array) => void + error: (...values: Array) => void, + log: (...values: Array) => void, + warn: (...values: Array) => void }; type LogType = 'error' | 'log' | 'warn'; -function apply (log: LogType, type: string, values: Array): void { +function apply (log: LogType, type: string, values: Array): void { console[log].apply(console, [new Date().toString(), type].concat(values)); } @@ -28,8 +28,8 @@ module.exports = function logger (_type: string): Logger { const type = ` ${_type.toUpperCase()}:`.slice(-16); return { - error: (...values: Array): void => apply('error', type, values), - log: (...values: Array): void => apply('log', type, values), - warn: (...values: Array): void => apply('warn', type, values) + error: (...values: Array): void => apply('error', type, values), + log: (...values: Array): void => apply('log', type, values), + warn: (...values: Array): void => apply('warn', type, values) }; }; diff --git a/src/promisify.js b/src/promisify.js index c68b60f60..aa38ef62b 100644 --- a/src/promisify.js +++ b/src/promisify.js @@ -1,12 +1,9 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('./assert'); -const isFunction = require('./is/function'); - /** @name promisify - @signature function promisify (this: any, fn: Function, ...params: Array): Promise + @signature function promisify (this: ?Object, fn: Function, ...params: Array): Promise @summary Wraps an async callback into a `Promise` @description Wraps the supplied async function `fn` that has a standard JS callback `(error: Error, result: any)` into a `Promise`, passing the supplied parameters. When `error` is set, the Promise is rejected, else the Promise resolves with the `result` value. @@ -16,12 +13,11 @@ const isFunction = require('./is/function'); await promisify(null, ((a, cb) => cb(null, a), true); // resolves with `true` await promisify(null, (cb) => cb(new Error('error!'))); // rejects with `error!` */ -module.exports = function promisify (self: any, fn: Function, ...params: Array): Promise { - assert(isFunction(fn), 'Expected function input to promisify'); - +// flowlint-next-line unclear-type:off +module.exports = function promisify (self: ?Object, fn: Function, ...params: Array): Promise { return new Promise((resolve, reject) => { - fn.apply(self, [].concat(params, [ - (error: Error, result: any): void => { + fn.apply(self, params.concat([ + (error: ?Error, result: mixed): void => { if (error) { reject(error); } else { diff --git a/src/promisify.spec.js b/src/promisify.spec.js index 9f2fb6a8b..63f11e15d 100644 --- a/src/promisify.spec.js +++ b/src/promisify.spec.js @@ -3,12 +3,6 @@ const { promisify } = require('./index'); describe('promisify', () => { - it('requires a function to promisify', () => { - expect( - () => promisify() - ).toThrow(/Expected function input/); - }); - it('handles functions with no parameters (resolve)', () => { const fn = (cb) => cb(null, [true, 'test', 1]); diff --git a/src/string/shorten.js b/src/string/shorten.js index 466be4509..3263ce337 100644 --- a/src/string/shorten.js +++ b/src/string/shorten.js @@ -3,7 +3,7 @@ /** @name stringShorten - @signature stringShorten (value: any, prefixLength: number = 8): string + @signature stringShorten (value: mixed, prefixLength: number = 8): string @summary Returns a string with maximum length @description Checks the string against the `prefixLength`, if longer than dopuble this, shortens it by placing `..` in the middle of it @@ -12,7 +12,8 @@ stringShorten('1234567890', 2); // => 12..90 */ -module.exports = function stringShorten (_value: any, prefixLength: number = 6): string { +module.exports = function stringShorten (_value: mixed, prefixLength: number = 6): string { + // $FlowFixMe coerced into string (by any means) const value = `${_value}`; if (value.length <= 2 + 2 * prefixLength) { diff --git a/src/types.js b/src/types.js index c66d976dc..f9524b621 100644 --- a/src/types.js +++ b/src/types.js @@ -3,7 +3,7 @@ export interface ExtErrorInterface { code: number; - data: any; + data: mixed; message: string; stack: string; } diff --git a/src/u8a/toBuffer.js b/src/u8a/toBuffer.js index ae3b41935..4266b1052 100644 --- a/src/u8a/toBuffer.js +++ b/src/u8a/toBuffer.js @@ -1,9 +1,6 @@ // ISC, Copyright 2017 Jaco Greeff // @flow -const assert = require('../assert'); -const isUint8Array = require('../is/uint8Array'); - /** @name u8aToBuffer @signature u8aToBuffer (value?: UInt8Array): Buffer @@ -20,7 +17,5 @@ module.exports = function u8aToBuffer (value?: Uint8Array): Buffer { return Buffer.from([]); } - assert(isUint8Array(value), 'Cannot convert non-Uint8Array value to Buffer'); - return Buffer.from(value); }; diff --git a/src/u8a/toBuffer.spec.js b/src/u8a/toBuffer.spec.js index dcf037b3b..47778dadc 100644 --- a/src/u8a/toBuffer.spec.js +++ b/src/u8a/toBuffer.spec.js @@ -14,10 +14,4 @@ describe('u8aToBuffer', () => { u8aToBuffer(new Uint8Array([128, 0, 10])) ).toEqual(Buffer.from([128, 0, 10])); }); - - it('throws when non-Uint8Array value is supplied', () => { - expect( - () => u8aToBuffer('noU8A') - ).toThrow(/Cannot convert non-Uint8Array/); - }); }); diff --git a/yarn.lock b/yarn.lock index 981a3f086..a177a6548 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,71 +2,80 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.32", "@babel/code-frame@^7.0.0-beta.31": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz#04f231b8ec70370df830d9926ce0f5add074ec4c" +"@babel/code-frame@7.0.0-beta.31": + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.31.tgz#473d021ecc573a2cce1c07d5b509d5215f46ba35" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/helper-function-name@7.0.0-beta.32": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.32.tgz#6161af4419f1b4e3ed2d28c0c79c160e218be1f3" +"@babel/code-frame@^7.0.0-beta.35": + version "7.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.36.tgz#2349d7ec04b3a06945ae173280ef8579b63728e4" dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.32" - "@babel/template" "7.0.0-beta.32" - "@babel/types" "7.0.0-beta.32" + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" -"@babel/helper-get-function-arity@7.0.0-beta.32": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.32.tgz#93721a99db3757de575a83bab7c453299abca568" +"@babel/helper-function-name@7.0.0-beta.31": + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.31.tgz#afe63ad799209989348b1109b44feb66aa245f57" dependencies: - "@babel/types" "7.0.0-beta.32" + "@babel/helper-get-function-arity" "7.0.0-beta.31" + "@babel/template" "7.0.0-beta.31" + "@babel/traverse" "7.0.0-beta.31" + "@babel/types" "7.0.0-beta.31" -"@babel/template@7.0.0-beta.32": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.32.tgz#e1d9fdbd2a7bcf128f2f920744a67dab18072495" +"@babel/helper-get-function-arity@7.0.0-beta.31": + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.31.tgz#1176d79252741218e0aec872ada07efb2b37a493" dependencies: - "@babel/code-frame" "7.0.0-beta.32" - "@babel/types" "7.0.0-beta.32" - babylon "7.0.0-beta.32" + "@babel/types" "7.0.0-beta.31" + +"@babel/template@7.0.0-beta.31": + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.31.tgz#577bb29389f6c497c3e7d014617e7d6713f68bda" + dependencies: + "@babel/code-frame" "7.0.0-beta.31" + "@babel/types" "7.0.0-beta.31" + babylon "7.0.0-beta.31" lodash "^4.2.0" -"@babel/traverse@^7.0.0-beta.31": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.32.tgz#b78b754c6e1af3360626183738e4c7a05951bc99" +"@babel/traverse@7.0.0-beta.31": + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.31.tgz#db399499ad74aefda014f0c10321ab255134b1df" dependencies: - "@babel/code-frame" "7.0.0-beta.32" - "@babel/helper-function-name" "7.0.0-beta.32" - "@babel/types" "7.0.0-beta.32" - babylon "7.0.0-beta.32" + "@babel/code-frame" "7.0.0-beta.31" + "@babel/helper-function-name" "7.0.0-beta.31" + "@babel/types" "7.0.0-beta.31" + babylon "7.0.0-beta.31" debug "^3.0.1" globals "^10.0.0" invariant "^2.2.0" lodash "^4.2.0" -"@babel/types@7.0.0-beta.32", "@babel/types@^7.0.0-beta.31": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.32.tgz#c317d0ecc89297b80bbcb2f50608e31f6452a5ff" +"@babel/types@7.0.0-beta.31": + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.31.tgz#42c9c86784f674c173fb21882ca9643334029de4" dependencies: esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^2.0.0" -"@polkadot/api-jsonrpc@^0.6.7": - version "0.6.7" - resolved "https://registry.yarnpkg.com/@polkadot/api-jsonrpc/-/api-jsonrpc-0.6.7.tgz#5be45086d4c1d5f396bbd5cbcc17dcb8663f709b" +"@polkadot/api-jsonrpc@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@polkadot/api-jsonrpc/-/api-jsonrpc-0.6.8.tgz#11a3557b527616ef30974ea1a53af859d57c9c5d" dependencies: babel-runtime "^6.26.0" -"@polkadot/dev@^0.13.5": - version "0.13.5" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.13.5.tgz#01dc2e720d5f9a4133a944fb42ae44623cd02880" +"@polkadot/dev@^0.14.5": + version "0.14.5" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.14.5.tgz#28c8583dced8675d1b06ddb34b549da3c99d9cdc" dependencies: babel-cli "^6.26.0" babel-core "^6.26.0" - babel-eslint "^8.0.2" + babel-eslint "^8.1.2" babel-plugin-transform-class-properties "^6.24.1" babel-plugin-transform-flow-strip-types "^6.22.0" babel-plugin-transform-object-rest-spread "^6.26.0" @@ -74,9 +83,9 @@ babel-preset-env "^1.6.1" coveralls "^3.0.0" dox "^0.9.0" - eslint "^4.11.0" - eslint-config-semistandard "^11.0.0" - eslint-config-standard "^10.2.1" + eslint "^4.14.0" + eslint-config-semistandard "^12.0.0" + eslint-config-standard "^11.0.0-beta.0" eslint-config-standard-jsx "^4.0.2" eslint-config-standard-react "^5.0.0" eslint-plugin-flowtype "^2.39.1" @@ -86,9 +95,9 @@ eslint-plugin-promise "^3.6.0" eslint-plugin-react "^7.4.0" eslint-plugin-standard "^3.0.1" - flow-bin "^0.61.0" + flow-bin "^0.62.0" flow-copy-source "^1.2.1" - jest "^21.2.1" + jest "^22.0.0" makeshift "^1.1.0" mkdirp "^0.5.1" postcss "^6.0.14" @@ -97,6 +106,10 @@ stylelint "^8.2.0" stylelint-config-standard "^18.0.0" +"@types/node@*": + version "8.5.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5" + abab@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" @@ -105,11 +118,11 @@ abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -acorn-globals@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" +acorn-globals@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" dependencies: - acorn "^4.0.4" + acorn "^5.0.0" acorn-jsx@^3.0.0: version "3.0.1" @@ -121,9 +134,9 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.4: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" +acorn@^5.0.0, acorn@^5.1.2: + version "5.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" acorn@^5.2.1: version "5.2.1" @@ -374,14 +387,16 @@ babel-core@^6.0.0, babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.6" -babel-eslint@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.0.2.tgz#e44fb9a037d749486071d52d65312f5c20aa7530" +babel-eslint@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.1.2.tgz#a39230b0c20ecbaa19a35d5633bf9b9ca2c8116f" dependencies: - "@babel/code-frame" "^7.0.0-beta.31" - "@babel/traverse" "^7.0.0-beta.31" - "@babel/types" "^7.0.0-beta.31" - babylon "^7.0.0-beta.31" + "@babel/code-frame" "7.0.0-beta.31" + "@babel/traverse" "7.0.0-beta.31" + "@babel/types" "7.0.0-beta.31" + babylon "7.0.0-beta.31" + eslint-scope "~3.7.1" + eslint-visitor-keys "^1.0.0" babel-generator@^6.18.0, babel-generator@^6.26.0: version "6.26.0" @@ -497,12 +512,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e" +babel-jest@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.0.4.tgz#533c46de37d7c9d7612f408c76314be9277e0c26" dependencies: - babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^21.2.0" + babel-plugin-istanbul "^4.1.5" + babel-preset-jest "^22.0.3" babel-messages@^6.23.0: version "6.23.0" @@ -516,7 +531,7 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-istanbul@^4.0.0: +babel-plugin-istanbul@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" dependencies: @@ -524,9 +539,9 @@ babel-plugin-istanbul@^4.0.0: istanbul-lib-instrument "^1.7.5" test-exclude "^4.1.1" -babel-plugin-jest-hoist@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006" +babel-plugin-jest-hoist@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.0.3.tgz#62cde5fe962fd41ae89c119f481ca5cd7dd48bb4" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" @@ -821,11 +836,11 @@ babel-preset-env@^1.6.1: invariant "^2.2.2" semver "^5.3.0" -babel-preset-jest@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638" +babel-preset-jest@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.0.3.tgz#e2bb6f6b4a509d3ea0931f013db78c5a84856693" dependencies: - babel-plugin-jest-hoist "^21.2.0" + babel-plugin-jest-hoist "^22.0.3" babel-plugin-syntax-object-rest-spread "^6.13.0" babel-register@^6.26.0: @@ -880,9 +895,9 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@7.0.0-beta.32, babylon@^7.0.0-beta.31: - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.32.tgz#e9033cb077f64d6895f4125968b37dc0a8c3bc6e" +babylon@7.0.0-beta.31: + version "7.0.0-beta.31" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.31.tgz#7ec10f81e0e456fd0f855ad60fa30c2ac454283f" babylon@^6.18.0: version "6.18.0" @@ -963,6 +978,10 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +browser-process-hrtime@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + browser-resolve@^1.11.2: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" @@ -1342,6 +1361,10 @@ detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + diff@^3.2.0: version "3.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" @@ -1381,6 +1404,10 @@ domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" +domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.0.tgz#81fe5df81b3f057052cde3a9fa9bf536a85b9ab0" + domhandler@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" @@ -1434,19 +1461,13 @@ entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" -es-abstract@^1.7.0: +es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.10.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" dependencies: @@ -1468,7 +1489,7 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.6.1: +escodegen@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" dependencies: @@ -1479,9 +1500,9 @@ escodegen@^1.6.1: optionalDependencies: source-map "~0.5.6" -eslint-config-semistandard@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-11.0.0.tgz#44eef7cfdfd47219e3a7b81b91b540e880bb2615" +eslint-config-semistandard@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-12.0.0.tgz#e6482de68e05c2dbdddaf45c3078f6a97fe23f1a" eslint-config-standard-jsx@^4.0.0, eslint-config-standard-jsx@^4.0.2: version "4.0.2" @@ -1493,9 +1514,9 @@ eslint-config-standard-react@^5.0.0: dependencies: eslint-config-standard-jsx "^4.0.0" -eslint-config-standard@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591" +eslint-config-standard@^11.0.0-beta.0: + version "11.0.0-beta.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0-beta.0.tgz#f8afe69803d95c685a4b8392b8793188eb03cbb3" eslint-import-resolver-node@^0.3.1: version "0.3.1" @@ -1562,28 +1583,32 @@ eslint-plugin-standard@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" -eslint-scope@^3.7.1: +eslint-scope@^3.7.1, eslint-scope@~3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint@^4.11.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.12.0.tgz#a7ce78eba8cc8f2443acfbbc870cc31a65135884" +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^4.14.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.14.0.tgz#96609768d1dd23304faba2d94b7fefe5a5447a82" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" chalk "^2.1.0" concat-stream "^1.6.0" cross-spawn "^5.1.0" - debug "^3.0.1" + debug "^3.1.0" doctrine "^2.0.2" eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" espree "^3.5.2" esquery "^1.0.0" - estraverse "^4.2.0" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" @@ -1687,16 +1712,16 @@ expand-template@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.0.tgz#e09efba977bf98f9ee0ed25abd0c692e02aec3fc" -expect@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b" +expect@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-22.0.3.tgz#bb486de7d41bf3eb60d3b16dfd1c158a4d91ddfa" dependencies: ansi-styles "^3.2.0" - jest-diff "^21.2.1" - jest-get-type "^21.2.0" - jest-matcher-utils "^21.2.1" - jest-message-util "^21.2.1" - jest-regex-util "^21.2.0" + jest-diff "^22.0.3" + jest-get-type "^22.0.3" + jest-matcher-utils "^22.0.3" + jest-message-util "^22.0.3" + jest-regex-util "^22.0.3" extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" @@ -1806,9 +1831,9 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.61.0: - version "0.61.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.61.0.tgz#d0473a8c35dbbf4de573823f4932124397d32d35" +flow-bin@^0.62.0: + version "0.62.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.62.0.tgz#14bca669a6e3f95c0bc0c2d1eb55ec4e98cb1d83" flow-copy-source@^1.2.1: version "1.2.1" @@ -2439,7 +2464,7 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.1: +istanbul-api@^1.1.14: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" dependencies: @@ -2455,7 +2480,7 @@ istanbul-api@^1.1.1: mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: +istanbul-lib-coverage@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" @@ -2465,7 +2490,7 @@ istanbul-lib-hook@^1.1.0: dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.9.1: +istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" dependencies: @@ -2486,7 +2511,7 @@ istanbul-lib-report@^1.1.2: path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.2: +istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" dependencies: @@ -2502,230 +2527,251 @@ istanbul-reports@^1.1.3: dependencies: handlebars "^4.0.3" -jest-changed-files@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29" +jest-changed-files@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.0.3.tgz#3771315acfa24a0ed7e6c545de620db6f1b2d164" dependencies: throat "^4.0.0" -jest-cli@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.2.1.tgz#9c528b6629d651911138d228bdb033c157ec8c00" +jest-cli@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.0.4.tgz#0052abaad45c57861c05da8ab5d27bad13ad224d" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" glob "^7.1.2" graceful-fs "^4.1.11" is-ci "^1.0.10" - istanbul-api "^1.1.1" - istanbul-lib-coverage "^1.0.1" - istanbul-lib-instrument "^1.4.2" - istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^21.2.0" - jest-config "^21.2.1" - jest-environment-jsdom "^21.2.1" - jest-haste-map "^21.2.0" - jest-message-util "^21.2.1" - jest-regex-util "^21.2.0" - jest-resolve-dependencies "^21.2.0" - jest-runner "^21.2.1" - jest-runtime "^21.2.1" - jest-snapshot "^21.2.1" - jest-util "^21.2.1" + istanbul-api "^1.1.14" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-source-maps "^1.2.1" + jest-changed-files "^22.0.3" + jest-config "^22.0.4" + jest-environment-jsdom "^22.0.4" + jest-get-type "^22.0.3" + jest-haste-map "^22.0.3" + jest-message-util "^22.0.3" + jest-regex-util "^22.0.3" + jest-resolve-dependencies "^22.0.3" + jest-runner "^22.0.4" + jest-runtime "^22.0.4" + jest-snapshot "^22.0.3" + jest-util "^22.0.4" + jest-worker "^22.0.3" micromatch "^2.3.11" - node-notifier "^5.0.2" - pify "^3.0.0" + node-notifier "^5.1.2" + realpath-native "^1.0.0" + rimraf "^2.5.4" slash "^1.0.0" string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" - worker-farm "^1.3.1" - yargs "^9.0.0" + yargs "^10.0.3" -jest-config@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480" +jest-config@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.0.4.tgz#9c2a46c0907b1a1af54d9cdbf18e99b447034e11" dependencies: chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^21.2.1" - jest-environment-node "^21.2.1" - jest-get-type "^21.2.0" - jest-jasmine2 "^21.2.1" - jest-regex-util "^21.2.0" - jest-resolve "^21.2.0" - jest-util "^21.2.1" - jest-validate "^21.2.1" - pretty-format "^21.2.1" + jest-environment-jsdom "^22.0.4" + jest-environment-node "^22.0.4" + jest-get-type "^22.0.3" + jest-jasmine2 "^22.0.4" + jest-regex-util "^22.0.3" + jest-resolve "^22.0.4" + jest-util "^22.0.4" + jest-validate "^22.0.3" + pretty-format "^22.0.3" -jest-diff@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f" +jest-diff@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.0.3.tgz#ffed5aba6beaf63bb77819ba44dd520168986321" dependencies: chalk "^2.0.1" diff "^3.2.0" - jest-get-type "^21.2.0" - pretty-format "^21.2.1" + jest-get-type "^22.0.3" + pretty-format "^22.0.3" -jest-docblock@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" - -jest-environment-jsdom@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4" +jest-docblock@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.0.3.tgz#c33aa22682b9fc68a5373f5f82994428a2ded601" dependencies: - jest-mock "^21.2.0" - jest-util "^21.2.1" - jsdom "^9.12.0" + detect-newline "^2.1.0" -jest-environment-node@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8" +jest-environment-jsdom@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.0.4.tgz#5723d4e724775ed38948de792e62f2d6a7f452df" dependencies: - jest-mock "^21.2.0" - jest-util "^21.2.1" + jest-mock "^22.0.3" + jest-util "^22.0.4" + jsdom "^11.5.1" -jest-get-type@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" +jest-environment-node@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.0.4.tgz#068671f85a545f96a5469be3a3dd228fca79c709" + dependencies: + jest-mock "^22.0.3" + jest-util "^22.0.4" -jest-haste-map@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.2.0.tgz#1363f0a8bb4338f24f001806571eff7a4b2ff3d8" +jest-get-type@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.0.3.tgz#fa894b677c0fcd55eff3fd8ee28c7be942e32d36" + +jest-haste-map@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.0.3.tgz#c9ecb5c871c5465d4bde4139e527fa0dc784aa2d" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^21.2.0" + jest-docblock "^22.0.3" + jest-worker "^22.0.3" micromatch "^2.3.11" sane "^2.0.0" - worker-farm "^1.3.1" -jest-jasmine2@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592" +jest-jasmine2@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.0.4.tgz#f7c0965116efe831ec674dc954b0134639b3dcee" dependencies: + callsites "^2.0.0" chalk "^2.0.1" - expect "^21.2.1" + expect "^22.0.3" graceful-fs "^4.1.11" - jest-diff "^21.2.1" - jest-matcher-utils "^21.2.1" - jest-message-util "^21.2.1" - jest-snapshot "^21.2.1" - p-cancelable "^0.3.0" + jest-diff "^22.0.3" + jest-matcher-utils "^22.0.3" + jest-message-util "^22.0.3" + jest-snapshot "^22.0.3" + source-map-support "^0.5.0" -jest-matcher-utils@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64" +jest-leak-detector@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.0.3.tgz#b64904f0e8954a11edb79b0809ff4717fa762d99" + dependencies: + pretty-format "^22.0.3" + optionalDependencies: + weak "^1.0.1" + +jest-matcher-utils@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.0.3.tgz#2ec15ca1af7dcabf4daddc894ccce224b948674e" dependencies: chalk "^2.0.1" - jest-get-type "^21.2.0" - pretty-format "^21.2.1" + jest-get-type "^22.0.3" + pretty-format "^22.0.3" -jest-message-util@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe" +jest-message-util@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.0.3.tgz#bf674b2762ef2dd53facf2136423fcca264976df" dependencies: + "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" micromatch "^2.3.11" slash "^1.0.0" + stack-utils "^1.0.1" -jest-mock@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f" +jest-mock@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.0.3.tgz#c875e47b5b729c6c020a2fab317b275c0cf88961" -jest-regex-util@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530" +jest-regex-util@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.0.3.tgz#c5c10229de5ce2b27bf4347916d95b802ae9aa4d" -jest-resolve-dependencies@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz#9e231e371e1a736a1ad4e4b9a843bc72bfe03d09" +jest-resolve-dependencies@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.0.3.tgz#202ddf370069702cd1865a1952fcc7e52c92720e" dependencies: - jest-regex-util "^21.2.0" + jest-regex-util "^22.0.3" -jest-resolve@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6" +jest-resolve@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.0.4.tgz#a6e47f55e9388c7341b5e9732aedc6fe30906121" dependencies: browser-resolve "^1.11.2" chalk "^2.0.1" - is-builtin-module "^1.0.0" -jest-runner@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.2.1.tgz#194732e3e518bfb3d7cbfc0fd5871246c7e1a467" +jest-runner@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.0.4.tgz#3aa43a31b05ce8271539df580c2eb916023d3367" dependencies: - jest-config "^21.2.1" - jest-docblock "^21.2.0" - jest-haste-map "^21.2.0" - jest-jasmine2 "^21.2.1" - jest-message-util "^21.2.1" - jest-runtime "^21.2.1" - jest-util "^21.2.1" - pify "^3.0.0" + jest-config "^22.0.4" + jest-docblock "^22.0.3" + jest-haste-map "^22.0.3" + jest-jasmine2 "^22.0.4" + jest-leak-detector "^22.0.3" + jest-message-util "^22.0.3" + jest-runtime "^22.0.4" + jest-util "^22.0.4" + jest-worker "^22.0.3" throat "^4.0.0" - worker-farm "^1.3.1" -jest-runtime@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.2.1.tgz#99dce15309c670442eee2ebe1ff53a3cbdbbb73e" +jest-runtime@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.0.4.tgz#8f69aa7b5fbb3acd35dc262cbf654e563f69b7b4" dependencies: babel-core "^6.0.0" - babel-jest "^21.2.0" - babel-plugin-istanbul "^4.0.0" + babel-jest "^22.0.4" + babel-plugin-istanbul "^4.1.5" chalk "^2.0.1" convert-source-map "^1.4.0" graceful-fs "^4.1.11" - jest-config "^21.2.1" - jest-haste-map "^21.2.0" - jest-regex-util "^21.2.0" - jest-resolve "^21.2.0" - jest-util "^21.2.1" + jest-config "^22.0.4" + jest-haste-map "^22.0.3" + jest-regex-util "^22.0.3" + jest-resolve "^22.0.4" + jest-util "^22.0.4" json-stable-stringify "^1.0.1" micromatch "^2.3.11" + realpath-native "^1.0.0" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" - yargs "^9.0.0" + yargs "^10.0.3" -jest-snapshot@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0" +jest-snapshot@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.0.3.tgz#a949b393781d2fdb4773f6ea765dd67ad1da291e" dependencies: chalk "^2.0.1" - jest-diff "^21.2.1" - jest-matcher-utils "^21.2.1" + jest-diff "^22.0.3" + jest-matcher-utils "^22.0.3" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^21.2.1" + pretty-format "^22.0.3" -jest-util@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78" +jest-util@^22.0.4: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.0.4.tgz#d920a513e0645aaab030cee38e4fe7d5bed8bb6d" dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" - jest-message-util "^21.2.1" - jest-mock "^21.2.0" - jest-validate "^21.2.1" + is-ci "^1.0.10" + jest-message-util "^22.0.3" + jest-validate "^22.0.3" mkdirp "^0.5.1" -jest-validate@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7" +jest-validate@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.0.3.tgz#2850d949a36c48b1a40f7eebae1d8539126f7829" dependencies: chalk "^2.0.1" - jest-get-type "^21.2.0" + jest-get-type "^22.0.3" leven "^2.1.0" - pretty-format "^21.2.1" + pretty-format "^22.0.3" -jest@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1" +jest-worker@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.0.3.tgz#30433faca67814a8f80559f75ab2ceaa61332fd2" dependencies: - jest-cli "^21.2.1" + merge-stream "^1.0.1" + +jest@^22.0.0: + version "22.0.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-22.0.4.tgz#d3cf560ece6b825b115dce80b9826ceb40f87961" + dependencies: + jest-cli "^22.0.4" js-base64@^2.1.9: version "2.3.2" @@ -2752,28 +2798,33 @@ jsdoctypeparser@^1.2.0: dependencies: lodash "^3.7.0" -jsdom@^9.12.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" +jsdom@^11.5.1: + version "11.5.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.5.1.tgz#5df753b8d0bca20142ce21f4f6c039f99a992929" dependencies: abab "^1.0.3" - acorn "^4.0.4" - acorn-globals "^3.1.0" + acorn "^5.1.2" + acorn-globals "^4.0.0" array-equal "^1.0.0" + browser-process-hrtime "^0.1.2" content-type-parser "^1.0.1" cssom ">= 0.3.2 < 0.4.0" cssstyle ">= 0.2.37 < 0.3.0" - escodegen "^1.6.1" + domexception "^1.0.0" + escodegen "^1.9.0" html-encoding-sniffer "^1.0.1" - nwmatcher ">= 1.3.9 < 2.0.0" - parse5 "^1.5.1" - request "^2.79.0" + left-pad "^1.2.0" + nwmatcher "^1.4.3" + parse5 "^3.0.2" + pn "^1.0.0" + request "^2.83.0" + request-promise-native "^1.0.3" sax "^1.2.1" symbol-tree "^3.2.1" - tough-cookie "^2.3.2" - webidl-conversions "^4.0.0" + tough-cookie "^2.3.3" + webidl-conversions "^4.0.2" whatwg-encoding "^1.0.1" - whatwg-url "^4.3.0" + whatwg-url "^6.3.0" xml-name-validator "^2.0.1" jsesc@^1.3.0: @@ -2881,6 +2932,10 @@ lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" +left-pad@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" + leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -2928,11 +2983,15 @@ lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + lodash@^3.7.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: +lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3048,6 +3107,12 @@ meow@^3.7.0: redent "^1.0.0" trim-newlines "^1.0.0" +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" @@ -3120,7 +3185,7 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.2.1, nan@^2.3.0: +nan@^2.0.5, nan@^2.2.1, nan@^2.3.0: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" @@ -3145,7 +3210,7 @@ node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" -node-notifier@^5.0.2: +node-notifier@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" dependencies: @@ -3227,7 +3292,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -"nwmatcher@>= 1.3.9 < 2.0.0": +nwmatcher@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" @@ -3243,6 +3308,13 @@ object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -3311,10 +3383,6 @@ output-file-sync@^1.1.2: mkdirp "^0.5.1" object-assign "^4.1.0" -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -3361,9 +3429,11 @@ parse-json@^3.0.0: dependencies: error-ex "^1.3.1" -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" +parse5@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + dependencies: + "@types/node" "*" path-exists@^2.0.0: version "2.1.0" @@ -3447,6 +3517,10 @@ pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" +pn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9" + postcss-html@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.11.0.tgz#03a3ff3116f8a0fe0d46316ea21893d4db4b63af" @@ -3553,9 +3627,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -pretty-format@^21.2.1: - version "21.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" +pretty-format@^22.0.3: + version "22.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.0.3.tgz#a2bfa59fc33ad24aa4429981bb52524b41ba5dd7" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -3586,10 +3660,6 @@ prop-types@^15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -3605,6 +3675,10 @@ punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -3659,7 +3733,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -3680,6 +3754,12 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +realpath-native@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" + dependencies: + util.promisify "^1.0.0" + redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -3800,6 +3880,20 @@ replace-ext@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -3827,7 +3921,7 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@^2.79.0: +request@^2.79.0, request@^2.83.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -3904,7 +3998,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -4022,6 +4116,12 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" +source-map-support@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab" + dependencies: + source-map "^0.6.0" + source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -4032,7 +4132,7 @@ source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -4072,10 +4172,18 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +stack-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + state-toggle@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.0.tgz#d20f9a616bb4f0c3b98b91922d25b640aa2bc425" +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -4338,15 +4446,17 @@ to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" -tough-cookie@^2.3.2, tough-cookie@~2.3.0, tough-cookie@~2.3.3: +tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.0, tough-cookie@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" +tr46@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + dependencies: + punycode "^2.1.0" trim-newlines@^1.0.0: version "1.0.0" @@ -4492,6 +4602,13 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + uuid@^3.0.0, uuid@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" @@ -4549,11 +4666,14 @@ watch@~0.18.0: exec-sh "^0.2.0" minimist "^1.2.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" +weak@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/weak/-/weak-1.0.1.tgz#ab99aab30706959aa0200cb8cf545bb9cb33b99e" + dependencies: + bindings "^1.2.1" + nan "^2.0.5" -webidl-conversions@^4.0.0: +webidl-conversions@^4.0.1, webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -4567,12 +4687,13 @@ whatwg-fetch@>=0.10.0: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" -whatwg-url@^4.3.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" +whatwg-url@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08" dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" + lodash.sortby "^4.7.0" + tr46 "^1.0.0" + webidl-conversions "^4.0.1" which-module@^2.0.0: version "2.0.0" @@ -4606,13 +4727,6 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -worker-farm@^1.3.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae" - dependencies: - errno "^0.1.4" - xtend "^4.0.1" - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -4668,27 +4782,32 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" +yargs-parser@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" dependencies: camelcase "^4.1.0" + +yargs@^10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae" + dependencies: cliui "^3.2.0" decamelize "^1.1.1" + find-up "^2.1.0" get-caller-file "^1.0.1" os-locale "^2.0.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 "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^7.0.0" + yargs-parser "^8.0.0" -yargs@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" dependencies: camelcase "^4.1.0" cliui "^3.2.0"