diff --git a/.babelrc b/.babelrc index 8aa924d..c58af5b 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,6 @@ { - "presets": ["@babel/preset-env"] + "presets": [ + "@babel/preset-env", + "@babel/preset-typescript" + ] } \ No newline at end of file diff --git a/.gitignore b/.gitignore index bcace93..b83b749 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ yarn-error.log node_modules dist -.DS_Store +coverage diff --git a/package.json b/package.json index 864e248..0cee6c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@geoblink/lodash-mixins", - "version": "1.1.2", + "version": "1.2.0", "description": "A collection of useful functions built on top of Lodash", "main": "dist/index.js", "files": [ @@ -8,11 +8,17 @@ ], "author": "Geoblink ", "scripts": { + "type-check": "tsc --noEmit", + "type-check:watch": "run-s \"type-check --watch\"", "test": "run-s test:*", - "test:unit": "nyc mocha", - "test:dist": "run-s build && es-check es5 dist/**/*.js", + "test:types": "run-s type-check", + "test:unit": "nyc mocha test/unit/**/*.ts test/integration/**/*.ts", + "test:dist": "run-s build && es-check es5 dist/**/*.js && mocha test/e2e/**/*.ts", "coverage": "nyc report --reporter=text-lcov | coveralls", - "build": "rm -rf dist && babel src --out-dir dist", + "build": "run-s build:*", + "build:clean": "rm -rf dist", + "build:types": "tsc --emitDeclarationOnly", + "build:js": "babel src --out-dir dist --extensions '.ts' --source-maps inline", "docs": "run-s docs:*", "docs:build": "rm -rf docs && jsdoc --configure .jsdoc.json --verbose && mv docs/@geoblink/lodash-mixins/*/* docs/ && rm -rf docs/@geoblink", "docs:commit": "if [[ $(git status docs --porcelain) ]]; then git add docs && git commit -m \":memo: Update documentation\"; fi", @@ -25,16 +31,22 @@ ], "license": "MIT", "devDependencies": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@babel/preset-env": "^7.1.0", + "@babel/cli": "^7.2.3", + "@babel/core": "^7.2.2", + "@babel/preset-env": "^7.3.1", + "@babel/preset-typescript": "^7.1.0", + "@types/chai": "^4.1.7", + "@types/lodash": "^4.14.120", + "@types/mocha": "^5.2.5", + "@types/sinon": "^7.0.5", + "@types/sinon-chai": "^3.2.2", "chai": "^4.2.0", "coveralls": "^3.0.2", - "es-check": "^4.0.0", - "eslint": "^5.6.1", + "es-check": "^5.0.0", + "eslint": "^5.13.0", "eslint-config-standard": "^12.0.0", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-node": "^7.0.1", + "eslint-plugin-import": "^2.16.0", + "eslint-plugin-node": "^8.0.1", "eslint-plugin-promise": "^4.0.1", "eslint-plugin-standard": "^4.0.0", "fs-extra": "^7.0.1", @@ -42,13 +54,31 @@ "jsdoc-template": "https://github.com/braintree/jsdoc-template", "mocha": "^5.2.0", "mocha-lcov-reporter": "^1.3.0", - "npm-run-all": "^4.1.3", - "nyc": "^13.0.1", - "sinon": "^6.3.5", - "sinon-chai": "^3.2.0" + "npm-run-all": "^4.1.5", + "nyc": "^13.2.0", + "sinon": "^7.2.3", + "sinon-chai": "^3.3.0", + "source-map-support": "^0.5.10", + "ts-node": "^8.0.2", + "typescript": "^3.3.1" }, "peerDependencies": { "lodash": "^4.17.11" }, - "dependencies": {} + "nyc": { + "extension": [ + ".ts" + ], + "exclude": [ + "coverage/**/*", + "dist/**/*", + "docs/**/*", + "test/**/*" + ], + "reporter": [ + "text", + "html" + ], + "all": true + } } diff --git a/src/constants.js b/src/constants.js deleted file mode 100644 index 0521274..0000000 --- a/src/constants.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Possible results when comparing two items. - * @readonly - * @constant - * @enum {SortingOrder} - */ -var SORTING_ORDER = { - /** Any negative number */ - LHS_BEFORE_RHS: -1, - /** Any positive number */ - LHS_AFTER_RHS: 1, - /** Zero */ - EQUAL: 0 -} - -module.exports = { SORTING_ORDER } diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..8ffd0c3 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,13 @@ +/** + * Possible results when comparing two items. + */ +enum SORTING_ORDER { + /** Any negative number */ + LHS_BEFORE_RHS = -1, + /** Any positive number */ + LHS_AFTER_RHS = 1, + /** Zero */ + EQUAL = 0 +} + +export { SORTING_ORDER } diff --git a/src/fromPairsMap.js b/src/fromPairsMap.js deleted file mode 100644 index d5baafd..0000000 --- a/src/fromPairsMap.js +++ /dev/null @@ -1,15 +0,0 @@ -var _ = require('lodash') - -module.exports = fromPairsMap - -/** - * Applies `fromPairs` to the result of mapping given `iteratee` to given - * collection. - * - * @param {Array|Object} collection Collection to iterate over - * @param {Function} iteratee Function invoked per iteration - * @returns {Object} New object - */ -function fromPairsMap (collection, iteratee) { - return _.fromPairs(_.map(collection, iteratee)) -} diff --git a/src/fromPairsMap.ts b/src/fromPairsMap.ts new file mode 100644 index 0000000..de59664 --- /dev/null +++ b/src/fromPairsMap.ts @@ -0,0 +1,120 @@ +import _ from 'lodash' + +export default fromPairsMap + +/** + * Applies `fromPairs` to the result of mapping given `iteratee` to given + * collection. + * + * @param collection Collection to iterate over + * @param iteratee Function invoked per iteration + * @returns New object + */ +export function fromPairsMap ( + collection: T[] | null | undefined, + iteratee: _.ArrayIterator +): _.Dictionary { + return _.fromPairs(_.map(collection, iteratee)) +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Applies `fromPairs` to the result of mapping given `iteratee` to given + * collection. + * + * @param collection Collection to iterate over + * @param iteratee Function invoked per iteration + * @returns New object + */ + fromPairsMap( + collection: T[] | null | undefined, + iteratee: ArrayIterator + ): Dictionary + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + collection: List | null | undefined, + iteratee: ListIterator + ): Dictionary + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + collection: List | Dictionary | NumericDictionary | null | undefined + ): Dictionary + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + collection: T | null | undefined, + iteratee: ObjectIterator + ): Dictionary + } + + interface LoDashImplicitWrapper { + /** + * @see _.fromPairsMap + */ + fromPairsMap( + this: LoDashImplicitWrapper, + iteratee: ArrayIterator + ): LoDashImplicitWrapper> + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + this: LoDashImplicitWrapper | null | undefined>, + iteratee: ListIterator + ): LoDashImplicitWrapper> + + /** + * @see _.fromPairsMap + */ + fromPairsMap(this: LoDashImplicitWrapper | Dictionary | NumericDictionary | null | undefined>): LoDashImplicitWrapper> + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + this: LoDashImplicitWrapper, + iteratee: ObjectIterator + ): LoDashImplicitWrapper> + } + + interface LoDashExplicitWrapper { + /** + * @see _.fromPairsMap + */ + fromPairsMap( + this: LoDashExplicitWrapper, + iteratee: ArrayIterator + ): LoDashExplicitWrapper> + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + this: LoDashExplicitWrapper | null | undefined>, + iteratee: ListIterator + ): LoDashExplicitWrapper> + + /** + * @see _.fromPairsMap + */ + fromPairsMap(this: LoDashExplicitWrapper | Dictionary | NumericDictionary | null | undefined>): LoDashExplicitWrapper> + + /** + * @see _.fromPairsMap + */ + fromPairsMap( + this: LoDashExplicitWrapper, + iteratee: ObjectIterator + ): LoDashExplicitWrapper> + } +} diff --git a/src/fromPairsMapNonNil.js b/src/fromPairsMapNonNil.js deleted file mode 100644 index e5c9980..0000000 --- a/src/fromPairsMapNonNil.js +++ /dev/null @@ -1,15 +0,0 @@ -const _ = require('lodash') -const mapNonNil = require('./mapNonNil') -module.exports = fromPairsMapNonNil - -/** - * Applies `fromPairs` to the result of mapping and filtering `nil` values given `iteratee` to given - * collection. - * - * @param {Array|Object} collection Collection to iterate over - * @param {Function} iteratee Function invoked per iteration - * @returns {Object} New object - */ -function fromPairsMapNonNil (collection, iteratee) { - return _.fromPairs(mapNonNil(collection, iteratee)) -} diff --git a/src/fromPairsMapNonNil.ts b/src/fromPairsMapNonNil.ts new file mode 100644 index 0000000..c8e88e0 --- /dev/null +++ b/src/fromPairsMapNonNil.ts @@ -0,0 +1,127 @@ +import _, { ObjectIterator } from 'lodash' + +import mapNonNil from './mapNonNil' + +export default fromPairsMapNonNil + +/** + * Applies `fromPairs` to the result of mapping and filtering `nil` values given + * `iteratee` to given collection. + * + * @param collection Collection to iterate over + * @param iteratee Function invoked per iteration + * @returns New object + */ +export function fromPairsMapNonNil < + CollectionItem extends any, + Collection extends ArrayLike, + PropertyName, + TResult +> ( + collection: Collection, + iteratee: ObjectIterator +) { + return _.fromPairs(mapNonNil(collection, iteratee) as any) // Cast to any since this typecheck is user's responsibility +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Applies `fromPairs` to the result of mapping and filtering `nil` values + * given `iteratee` to given collection. + * + * @param collection Collection to iterate over + * @param iteratee Function invoked per iteration + * @returns New object + */ + fromPairsMapNonNil( + collection: T[] | null | undefined, + iteratee: ArrayIterator + ): Dictionary + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + collection: List | null | undefined, + iteratee: ListIterator + ): Dictionary + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + collection: List | Dictionary | NumericDictionary | null | undefined + ): Dictionary + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + collection: T | null | undefined, + iteratee: ObjectIterator + ): Dictionary + } + + interface LoDashImplicitWrapper { + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + this: LoDashImplicitWrapper, + iteratee: ArrayIterator + ): LoDashImplicitWrapper> + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + this: LoDashImplicitWrapper | null | undefined>, + iteratee: ListIterator + ): LoDashImplicitWrapper> + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil(this: LoDashImplicitWrapper | Dictionary | NumericDictionary | null | undefined>): LoDashImplicitWrapper> + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + this: LoDashImplicitWrapper, + iteratee: ObjectIterator + ): LoDashImplicitWrapper> + } + + interface LoDashExplicitWrapper { + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + this: LoDashExplicitWrapper, + iteratee: ArrayIterator + ): LoDashExplicitWrapper> + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + this: LoDashExplicitWrapper | null | undefined>, + iteratee: ListIterator + ): LoDashExplicitWrapper> + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil(this: LoDashExplicitWrapper | Dictionary | NumericDictionary | null | undefined>): LoDashExplicitWrapper> + + /** + * @see _.fromPairsMapNonNil + */ + fromPairsMapNonNil( + this: LoDashExplicitWrapper, + iteratee: ObjectIterator + ): LoDashExplicitWrapper> + } +} diff --git a/src/getTruthyKeys.js b/src/getTruthyKeys.js deleted file mode 100644 index 2a0831d..0000000 --- a/src/getTruthyKeys.js +++ /dev/null @@ -1,22 +0,0 @@ -var _ = require('lodash') - -module.exports = getTruthyKeys - -/** - * Gets the keys associated with truthy values in given collection. - * - * @param {Array|Object} collection Collection to iterate over. - * @param {Function} parseKeyFunction Function invoked per iteration. This - * function takes as parameter a key of a truthy value. The value it returns - * will be used in resulting list. Note that if this function returns a falsy - * value value, the key won't be present in resulting collection. - * @returns {Array} New list with just the keys of truthy entries, for which - * `parseKeyFunction` returned a truthy value. - */ -function getTruthyKeys (collection, parseKeyFunction) { - var isFunction = _.isFunction(parseKeyFunction) - return _.filter(_.map(collection, function (value, key) { - if (!value) return false - return isFunction ? parseKeyFunction(key) : key - })) -} diff --git a/src/getTruthyKeys.ts b/src/getTruthyKeys.ts new file mode 100644 index 0000000..208427c --- /dev/null +++ b/src/getTruthyKeys.ts @@ -0,0 +1,68 @@ +import _ from 'lodash' + +export default getTruthyKeys + +/** + * Gets the keys associated with truthy values in given collection. + * + * @param collection Collection to iterate over. + * @param parseKeyFunction Function invoked per iteration. This + * function takes as parameter a key of a truthy value. The value it returns + * will be used in resulting list. Note that if this function returns a falsy + * value value, the key won't be present in resulting collection. + * @returns New list with just the keys of truthy entries, for which + * `parseKeyFunction` returned a truthy value. + */ +function getTruthyKeys( + collection: T | null | undefined, + parseKeyFunction?: (key: string) => TResult +): (string | TResult)[] { + const isFunction = _.isFunction(parseKeyFunction) + + const mappedCollection = _.map(collection, function (value, key) { + if (!value) return false + return parseKeyFunction && isFunction ? parseKeyFunction(key) : key + }) + + return _.filter(mappedCollection) as (string | TResult)[] // Casting needed to remove `false` +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Gets the keys associated with truthy values in given collection. + * + * @param collection Collection to iterate over. + * @param parseKeyFunction Function invoked per iteration. This + * function takes as parameter a key of a truthy value. The value it returns + * will be used in resulting list. Note that if this function returns a falsy + * value value, the key won't be present in resulting collection. + * @returns New list with just the keys of truthy entries, for which + * `parseKeyFunction` returned a truthy value. + */ + getTruthyKeys( + collection: T | null | undefined, + parseKeyFunction?: (key: string) => TResult + ): (string | TResult)[] + } + + interface LoDashImplicitWrapper { + /** + * @see _.getTruthyKeys + */ + getTruthyKeys( + this: LoDashImplicitWrapper, + parseKeyFunction?: (key: string) => TResult + ): LoDashImplicitWrapper<(string | TResult)[]> + } + + interface LoDashExplicitWrapper { + /** + * @see _.getTruthyKeys + */ + getTruthyKeys( + this: LoDashExplicitWrapper, + parseKeyFunction?: (key: string) => TResult + ): LoDashExplicitWrapper<(string | TResult)[]> + } +} diff --git a/src/hasTruthyValues.js b/src/hasTruthyValues.js deleted file mode 100644 index bc4c6df..0000000 --- a/src/hasTruthyValues.js +++ /dev/null @@ -1,19 +0,0 @@ -var shortcuttedReduce = require('./shortcuttedReduce') - -module.exports = hasTruthyValues - -/** - * Returns whether given collection has at least one truthy value for one of its - * keys. - * - * This function stops traversing the collection as soon as it finds a truthy - * value. - * - * @param {Object|Array} collection Collection to iterate over. - * @returns {Boolean} `true` if there's at least one value which is truthy. - */ -function hasTruthyValues (collection) { - return shortcuttedReduce(collection, function (accum, value) { - return accum || !!value - }) -} diff --git a/src/hasTruthyValues.ts b/src/hasTruthyValues.ts new file mode 100644 index 0000000..2b95f48 --- /dev/null +++ b/src/hasTruthyValues.ts @@ -0,0 +1,54 @@ +import shortcuttedReduce from './shortcuttedReduce' + +export default hasTruthyValues + +/** + * Returns whether given collection has at least one truthy value for one of its + * keys. + * + * This function stops traversing the collection as soon as it finds a truthy + * value. + * + * @param collection Collection to iterate over. + * @returns `true` if there's at least one value which is truthy. + */ +function hasTruthyValues (collection: Collection): boolean { + return shortcuttedReduce( + collection, + (accum, value) => accum || !!value, + false + ) +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Returns multiple values of an object, defaulting missing ones to a common + * default. + * + * @param object Object to be queried. + * @param arrayOfKeys Array with the paths of the properties to get. + * @param defaultValue The value returned for missing resolved values. + * @return New array with values for given key paths or default one. + */ + hasTruthyValues(object: Collection): boolean + } + + interface LoDashImplicitWrapper { + /** + * @see _.hasTruthyValues + */ + hasTruthyValues( + this: LoDashImplicitWrapper + ): LoDashImplicitWrapper + } + + interface LoDashExplicitWrapper { + /** + * @see _.hasTruthyValues + */ + hasTruthyValues( + this: LoDashExplicitWrapper + ): LoDashExplicitWrapper + } +} diff --git a/src/index.js b/src/index.js deleted file mode 100644 index b68def3..0000000 --- a/src/index.js +++ /dev/null @@ -1,28 +0,0 @@ -const fromPairsMap = require('./fromPairsMap') -const fromPairsMapNonNil = require('./fromPairsMapNonNil') -const getTruthyKeys = require('./getTruthyKeys') -const hasTruthyValues = require('./hasTruthyValues') -const mapNonNil = require('./mapNonNil') -const mergeForEach = require('./mergeForEach') -const mGet = require('./mGet') -const shortcuttedReduce = require('./shortcuttedReduce') - -/** - * Extends Lodash with additional functionality. - * - * @param {lodash} _ Object Lodash instance to be extended - */ -module.exports = function (_) { - _.mixin({ - fromPairsMap: fromPairsMap, - fromPairsMapNonNil: fromPairsMapNonNil, - getTruthyKeys: getTruthyKeys, - hasTruthyValues: hasTruthyValues, - mapNonNil: mapNonNil, - mergeForEach: mergeForEach, - mGet: mGet, - shortcuttedReduce: shortcuttedReduce - }) - - return _ -} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..4f2f107 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,29 @@ +import fromPairsMap from './fromPairsMap' +import fromPairsMapNonNil from './fromPairsMapNonNil' +import getTruthyKeys from './getTruthyKeys' +import hasTruthyValues from './hasTruthyValues' +import mapNonNil from './mapNonNil' +import mergeForEach from './mergeForEach' +import mGet from './mGet' +import shortcuttedReduce from './shortcuttedReduce' +import { LoDashStatic } from 'lodash' + +/** + * Extends Lodash with additional functionality. + * + * @param _ Lodash instance to be extended + */ +export default function (_: LoDashStatic) { + _.mixin({ + fromPairsMap: fromPairsMap, + fromPairsMapNonNil: fromPairsMapNonNil, + getTruthyKeys: getTruthyKeys, + hasTruthyValues: hasTruthyValues, + mapNonNil: mapNonNil, + mergeForEach: mergeForEach, + mGet: mGet, + shortcuttedReduce: shortcuttedReduce + }) + + return _ +} diff --git a/src/mGet.js b/src/mGet.js deleted file mode 100644 index 9bf6612..0000000 --- a/src/mGet.js +++ /dev/null @@ -1,20 +0,0 @@ -var _ = require('lodash') - -module.exports = mGet - -/** - * Returns multiple values of an object, defaulting missing ones to a common - * default. - * - * @param {Object} object Object to be queried. - * @param {string[]} arrayOfKeys Array with the paths of the properties to get. - * @param {any} defaultValue The value returned for missing resolved values. - * @return {Array} New array with values for given key paths or default one. - */ -function mGet (object, arrayOfKeys, defaultValue) { - return _.map(arrayOfKeys, getValueOrDefault) - - function getValueOrDefault (key) { - return _.get(object, key, defaultValue) - } -} diff --git a/src/mGet.ts b/src/mGet.ts new file mode 100644 index 0000000..2a3f617 --- /dev/null +++ b/src/mGet.ts @@ -0,0 +1,79 @@ +import _ from 'lodash' + +export default mGet + +/** + * Returns multiple values of an object, defaulting missing ones to a common + * default. + * + * @param object Object to be queried. + * @param arrayOfKeys Array with the paths of the properties to get. + * @param defaultValue The value returned for missing resolved values. + * @return New array with values for given key paths or default one. + */ +function mGet< + Collection extends object, + CollectionKey extends keyof Collection, + ReturnValue +> ( + object: Collection, + arrayOfKeys: CollectionKey[], + defaultValue?: ReturnValue +): (ReturnValue | Collection[CollectionKey] | undefined)[] { + return _.map(arrayOfKeys, getValueOrDefault) + + function getValueOrDefault (key: CollectionKey): Collection[CollectionKey] | ReturnValue | undefined { + return _.get(object, key, defaultValue) + } +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Returns multiple values of an object, defaulting missing ones to a common + * default. + * + * @param object Object to be queried. + * @param arrayOfKeys Array with the paths of the properties to get. + * @param defaultValue The value returned for missing resolved values. + * @return New array with values for given key paths or default one. + */ + mGet< + Collection extends object, + CollectionKey extends keyof Collection, + ReturnValue + > ( + object: Collection, + arrayOfKeys: CollectionKey[], + defaultValue?: ReturnValue + ): (ReturnValue | Collection[CollectionKey] | undefined)[] + } + + interface LoDashImplicitWrapper { + /** + * @see _.mGet + */ + mGet< + CollectionKey extends keyof TValue, + ReturnValue + >( + this: LoDashImplicitWrapper, + arrayOfKeys: CollectionKey[], + defaultValue?: ReturnValue + ): LoDashImplicitWrapper<(ReturnValue | TValue[CollectionKey] | undefined)[]> + } + + interface LoDashExplicitWrapper { + /** + * @see _.mGet + */ + mGet< + CollectionKey extends keyof TValue, + ReturnValue + >( + this: LoDashExplicitWrapper, + arrayOfKeys: CollectionKey[], + defaultValue?: ReturnValue + ): LoDashExplicitWrapper<(ReturnValue | TValue[CollectionKey] | undefined)[]> + } +} diff --git a/src/mapNonNil.js b/src/mapNonNil.js deleted file mode 100644 index c1237ab..0000000 --- a/src/mapNonNil.js +++ /dev/null @@ -1,18 +0,0 @@ -var _ = require('lodash') - -module.exports = mapNonNil - -/** - * Map function returning only non-nil elements. - * - * @param {Array|Object} collection Collection to iterate over. - * @param {Function} iteratee Function invoked per iteration. - * @returns {Array} New mapped array. - */ -function mapNonNil (collection, iteratee) { - return _.filter(_.map(collection, iteratee), isNotNil) - - function isNotNil (item) { - return !_.isNil(item) - } -} diff --git a/src/mapNonNil.ts b/src/mapNonNil.ts new file mode 100644 index 0000000..8ffc123 --- /dev/null +++ b/src/mapNonNil.ts @@ -0,0 +1,199 @@ +import _, { ObjectIterator, Dictionary } from 'lodash' + +export default mapNonNil + +/** + * Map function returning only non-nil elements. + * + * @param collection Collection to iterate over. + * @param iteratee Function invoked per iteration. + * @returns New mapped array. + */ +function mapNonNil< + CollectionItem extends any, + Collection extends ( + ArrayLike | + Dictionary + ), + ResultValue +> ( + collection: Collection, + iteratee: ObjectIterator +) { + return _.filter(_.map(collection, iteratee), isNotNil) + + function isNotNil (item: CollectionItem) { + return !_.isNil(item) + } +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Map function returning only non-nil elements. + * + * @param collection Collection to iterate over. + * @param iteratee Function invoked per iteration. + * @returns New mapped array. + */ + mapNonNil( + collection: T[] | null | undefined, + iteratee: ArrayIterator + ): TResult[]; + + /** + * @see _.mapNonNil + */ + mapNonNil( + collection: List | null | undefined, + iteratee: ListIterator + ): TResult[]; + + /** + * @see _.mapNonNil + */ + mapNonNil( + collection: List | Dictionary | NumericDictionary | null | undefined + ): T[]; + + /** + * @see _.mapNonNil + */ + mapNonNil( + collection: T | null | undefined, + iteratee: ObjectIterator + ): TResult[]; + + /** @see _.mapNonNil */ + mapNonNil( + collection: List | Dictionary | NumericDictionary | null | undefined, + iteratee: K + ): Array; + + /** + * @see _.mapNonNil + */ + mapNonNil( + collection: List | Dictionary | NumericDictionary | null | undefined, + iteratee?: string + ): any[]; + + /** + * @see _.mapNonNil + */ + mapNonNil( + collection: List | Dictionary | NumericDictionary | null | undefined, + iteratee?: object + ): boolean[]; + } + + interface LoDashImplicitWrapper { + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashImplicitWrapper, + iteratee: ArrayIterator + ): LoDashImplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashImplicitWrapper | null | undefined>, + iteratee: ListIterator + ): LoDashImplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashImplicitWrapper | Dictionary | NumericDictionary | null | undefined> + ): LoDashImplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashImplicitWrapper, + iteratee: ObjectIterator + ): LoDashImplicitWrapper; + + /** @see _.mapNonNil */ + mapNonNil( + this: LoDashImplicitWrapper | Dictionary | NumericDictionary | null | undefined>, + iteratee: K + ): LoDashImplicitWrapper>; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashImplicitWrapper | Dictionary | NumericDictionary | null | undefined>, + iteratee?: string + ): LoDashImplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashImplicitWrapper | Dictionary | NumericDictionary | null | undefined>, + iteratee?: object + ): LoDashImplicitWrapper; + } + + interface LoDashExplicitWrapper { + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashExplicitWrapper, + iteratee: ArrayIterator + ): LoDashExplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashExplicitWrapper | null | undefined>, + iteratee: ListIterator + ): LoDashExplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashExplicitWrapper | Dictionary | NumericDictionary | null | undefined> + ): LoDashExplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashExplicitWrapper, + iteratee: ObjectIterator + ): LoDashExplicitWrapper; + + /** @see _.mapNonNil */ + mapNonNil( + this: LoDashExplicitWrapper | Dictionary | NumericDictionary | null | undefined>, + iteratee: K + ): LoDashExplicitWrapper>; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashExplicitWrapper | Dictionary | NumericDictionary | null | undefined>, + iteratee?: string + ): LoDashExplicitWrapper; + + /** + * @see _.mapNonNil + */ + mapNonNil( + this: LoDashExplicitWrapper | Dictionary | NumericDictionary | null | undefined>, + iteratee?: object + ): LoDashExplicitWrapper; + } +} diff --git a/src/mergeForEach.js b/src/mergeForEach.js deleted file mode 100644 index e8aaaa0..0000000 --- a/src/mergeForEach.js +++ /dev/null @@ -1,133 +0,0 @@ -var _ = require('lodash') -var { SORTING_ORDER } = require('./constants') - -module.exports = mergeForEach - -/** - * @template I - * @typedef {string|string[]|function(I): any} Iteratee - */ - -/** - * @template LHSItem - * @template RHSItem - * @typedef {object} MergeComparatorParams - * @property {LHSItem} lhsItem Left-hand-side collection item. - * @property {RHSItem} rhsItem Right-hand-side collection item. - * @property {function(LHSItem): any} getLHSValue Function to get value used to - * sort left-hand-side collection. - * @property {function(RHSItem): any} getRHSValue Function to get value used to - * sort right-hand-side collection. - */ - -/** - * Divide-and-conquer-based for-each function where a different iteratee is - * called for items in both collections, items in the left one but not in the - * right one and items in the right one but not in the left one. - * - * Can be used to implement efficient algorithms which profit from sorted data - * like `mergeSort` or `mergeJoinWith`. - * - * Both collections must be sortable. They will be sorted ascendently using - * value returned by the corresponding iteratee. - * - * @template LHSItem - * @template RHSItem - * @param {Object|LHSItem[]} lhs A collection of elements. - * @param {Object|RHSItem[]} rhs A collection of elements. - * @param {object} options Options for comparison. - * @param {Iteratee} options.lhsIteratee Iteratee used to get the - * value used to sort `lhs`. Returned value will be used to sort the collection - * before running the divide-and-conquer algorithm. - * @param {Iteratee} options.rhsIteratee Iteratee used to get the - * value used to sort `rhs`. Returned value will be used to sort the collection - * before running the divide-and-conquer algorithm. - * @param {?function(LHSItem, RHSItem)} options.innerCallback Callback called - * when there are two matching elements. Boths elements are passed as arguments. - * @param {?function(LHSItem)} options.leftCallback Callback called when there - * are elements in the left-hand-side collection which cannot be matched with - * any element of the right-hand-side collection. - * @param {?function(RHSItem)} options.rightCallback Callback called when there - * are elements in the right-hand-side collection which cannot be matched with - * any element of the left-hand-side collection. - * @param {function(MergeComparatorParams): number} comparator Function - * used to compare an item of `lhs` collection against an item of `rhs` - * collection. Negative values mean that `lhs` item is **before** `rhs` item, - * positive values that `lhs` item is **after** `rhs` item and `0` that both - * items are equivalent in terms of sorting. Default implementation is - * equivalent to `<` operator. Will receive as 3rd and 4th parameters the - * iteratees used to get sorting value for `lhs` and `rhs`. - */ -function mergeForEach (lhs, rhs, { - lhsIteratee = function (lhsItem) { return lhsItem }, - rhsIteratee = function (rhsItem) { return rhsItem }, - innerCallback = function () {}, - leftCallback = function () {}, - rightCallback = function () {}, - comparator = function ({ lhsItem, rhsItem, getLHSValue, getRHSValue }) { - var lhsValue = getLHSValue(lhsItem) - var rhsValue = getRHSValue(rhsItem) - - if (lhsValue < rhsValue) { - return SORTING_ORDER.LHS_BEFORE_RHS - } else if (lhsValue > rhsValue) { - return SORTING_ORDER.LHS_AFTER_RHS - } else { - return SORTING_ORDER.EQUAL - } - } -}) { - /** @type {LHSItem[]} */ - var sortedLHS = _.sortBy(lhs, lhsIteratee) - /** @type {RHSItem[]} */ - var sortedRHS = _.sortBy(rhs, rhsIteratee) - - var lhsIndex = 0 - var rhsIndex = 0 - - var getLHSValue = getterFromIteratee(lhsIteratee) - var getRHSValue = getterFromIteratee(rhsIteratee) - - while (lhsIndex < sortedLHS.length && rhsIndex < sortedRHS.length) { - var lhsItem = sortedLHS[lhsIndex] - var rhsItem = sortedRHS[rhsIndex] - - /** @type {MergeForEachOrder} */ - var comparisonResult = comparator({ - lhsItem, - rhsItem, - getLHSValue, - getRHSValue - }) - - if (comparisonResult < SORTING_ORDER.EQUAL) { - leftCallback(lhsItem) - lhsIndex++ - } else if (comparisonResult > SORTING_ORDER.EQUAL) { - rightCallback(rhsItem) - rhsIndex++ - } else { - innerCallback(lhsItem, rhsItem) - lhsIndex++ - rhsIndex++ - } - } - - while (lhsIndex < sortedLHS.length) { - leftCallback(sortedLHS[lhsIndex]) - lhsIndex++ - } - - while (rhsIndex < sortedRHS.length) { - rightCallback(sortedRHS[rhsIndex]) - rhsIndex++ - } - - function getterFromIteratee (iteratee) { - return _.isFunction(iteratee) - ? iteratee - : function (item) { - return _.get(item, iteratee) - } - } -} diff --git a/src/mergeForEach.ts b/src/mergeForEach.ts new file mode 100644 index 0000000..35784f7 --- /dev/null +++ b/src/mergeForEach.ts @@ -0,0 +1,264 @@ +import _ from 'lodash' +import { SORTING_ORDER } from './constants' +import { ValueOf } from './types' + +export default mergeForEach + +export type ComparisonResult = number + +/** + * Divide-and-conquer-based for-each function where a different iteratee is + * called for items in both collections, items in the left one but not in the + * right one and items in the right one but not in the left one. + * + * Can be used to implement efficient algorithms which profit from sorted data + * like `mergeSort` or `mergeJoinWith`. + * + * Both collections must be sortable. They will be sorted ascendently using + * value returned by the corresponding iteratee. + * + * @param lhs A collection of elements. + * @param rhs A collection of elements. + * @param options Options for comparison. + * @param options.lhsIteratee Iteratee used to get the value used to sort `lhs`. + * Returned value will be used to sort the collection before running the + * divide-and-conquer algorithm. + * @param options.rhsIteratee Iteratee used to get the value used to sort `rhs`. + * Returned value will be used to sort the collection + * before running the divide-and-conquer algorithm. + * @param options.innerCallback Callback called when there are two matching + * elements. Boths elements are passed as arguments. + * @param options.leftCallback Callback called when there are elements in the + * left-hand-side collection which cannot be matched with any element of the + * right-hand-side collection. + * @param options.rightCallback Callback called when there are elements in the + * right-hand-side collection which cannot be matched with any element of the + * left-hand-side collection. + * @param comparator Function used to compare an item of `lhs` collection against + * an item of `rhs` collection. Negative values mean that `lhs` item is **before** + * `rhs` item, positive values that `lhs` item is **after** `rhs` item and `0` + * that both items are equivalent in terms of sorting. Default implementation is + * equivalent to `<` operator. Will receive as 3rd and 4th parameters the + * iteratees used to get sorting value for `lhs` and `rhs`. + */ +function mergeForEach< + L extends any, + R extends any, + LHSItem extends ValueOf, + RHSItem extends ValueOf, + LHSItemKey extends keyof LHSItem, + RHSItemKey extends keyof RHSItem +> ( + lhs: L | LHSItem[], + rhs: R | RHSItem[], + { + lhsIteratee = (lhsItem) => lhsItem, + rhsIteratee = (rhsItem) => rhsItem, + innerCallback = () => {}, + leftCallback = () => {}, + rightCallback = () => {}, + comparator = function ({ lhsItem, rhsItem, getLHSValue, getRHSValue }) { + const lhsValue = getLHSValue(lhsItem) as any + const rhsValue = getRHSValue(rhsItem) as any + + if (lhsValue < rhsValue) { + return SORTING_ORDER.LHS_BEFORE_RHS + } else if (lhsValue > rhsValue) { + return SORTING_ORDER.LHS_AFTER_RHS + } else { + return SORTING_ORDER.EQUAL + } + } + }: { + lhsIteratee?: LHSItemKey | ((item: LHSItem) => any), + rhsIteratee?: RHSItemKey | ((item: RHSItem) => any), + innerCallback?: (lhsItem: LHSItem, rhsItem: RHSItem) => void, + leftCallback?: (lhsItem: LHSItem) => void, + rightCallback?: (rhsItem: RHSItem) => void, + comparator?: (params: { + lhsItem: LHSItem, + rhsItem: RHSItem, + getLHSValue: (lhsItem: LHSItem) => any, + getRHSValue: (rhsItem: RHSItem) => any + }) => ComparisonResult + } +) { + const sortedLHS = _.sortBy(lhs as any, lhsIteratee) + const sortedRHS = _.sortBy(rhs as any, rhsIteratee) + + let lhsIndex = 0 + let rhsIndex = 0 + + const getLHSValue = getterFromIteratee(lhsIteratee) + const getRHSValue = getterFromIteratee(rhsIteratee) + + while (lhsIndex < sortedLHS.length && rhsIndex < sortedRHS.length) { + const lhsItem = sortedLHS[lhsIndex] as LHSItem + const rhsItem = sortedRHS[rhsIndex] as RHSItem + + const comparisonResult = comparator({ + lhsItem, + rhsItem, + getLHSValue, + getRHSValue + }) + + if (comparisonResult < SORTING_ORDER.EQUAL) { + leftCallback(lhsItem) + lhsIndex++ + } else if (comparisonResult > SORTING_ORDER.EQUAL) { + rightCallback(rhsItem) + rhsIndex++ + } else { + innerCallback(lhsItem, rhsItem) + lhsIndex++ + rhsIndex++ + } + } + + while (lhsIndex < sortedLHS.length) { + leftCallback(sortedLHS[lhsIndex] as LHSItem) + lhsIndex++ + } + + while (rhsIndex < sortedRHS.length) { + rightCallback(sortedRHS[rhsIndex] as RHSItem) + rhsIndex++ + } + + function getterFromIteratee< + Item extends any, + ItemKey extends keyof Item + > (iteratee: ItemKey | ((item: Item) => any)): (item: Item) => any { + return _.isFunction(iteratee) + ? iteratee + : ((item: Item) => _.get(item, iteratee as ItemKey)) + } +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Divide-and-conquer-based for-each function where a different iteratee is + * called for items in both collections, items in the left one but not in + * the right one and items in the right one but not in the left one. + * + * Can be used to implement efficient algorithms which profit from sorted + * data like `mergeSort` or `mergeJoinWith`. + * + * Both collections must be sortable. They will be sorted ascendently using + * value returned by the corresponding iteratee. + * + * @param lhs A collection of elements. + * @param rhs A collection of elements. + * @param options Options for comparison. + * @param options.lhsIteratee Iteratee used to get the value used to sort + * `lhs`. Returned value will be used to sort the collection before running + * the divide-and-conquer algorithm. + * @param options.rhsIteratee Iteratee used to get the value used to sort + * `rhs`. Returned value will be used to sort the collection before running + * the divide-and-conquer algorithm. + * @param options.innerCallback Callback called when there are two matching + * elements. Boths elements are passed as arguments. + * @param options.leftCallback Callback called when there are elements in + * the left-hand-side collection which cannot be matched with any element of + * the right-hand-side collection. + * @param options.rightCallback Callback called when there are elements in + * the right-hand-side collection which cannot be matched with any element + * of the left-hand-side collection. + * @param comparator Function used to compare an item of `lhs` collection + * against an item of `rhs` collection. Negative values mean that `lhs` item + * is **before** `rhs` item, positive values that `lhs` item is **after** + * `rhs` item and `0` that both items are equivalent in terms of sorting. + * Default implementation is equivalent to `<` operator. Will receive as 3rd + * and 4th parameters the iteratees used to get sorting value for `lhs` and + * `rhs`. + */ + mergeForEach< + L extends any, + R extends any, + LHSItem extends ValueOf, + RHSItem extends ValueOf, + LHSItemKey extends keyof LHSItem, + RHSItemKey extends keyof RHSItem + > ( + lhs: L | LHSItem[], + rhs: R | RHSItem[], + params: { + lhsIteratee?: LHSItemKey | ((item: LHSItem) => any), + rhsIteratee?: RHSItemKey | ((item: RHSItem) => any), + innerCallback?: (lhsItem: LHSItem, rhsItem: RHSItem) => void, + leftCallback?: (lhsItem: LHSItem) => void, + rightCallback?: (rhsItem: RHSItem) => void, + comparator?: (params: { + lhsItem: LHSItem, + rhsItem: RHSItem, + getLHSValue: (lhsItem: LHSItem) => any, + getRHSValue: (rhsItem: RHSItem) => any + }) => ComparisonResult + } + ): void + } + + interface LoDashImplicitWrapper { + /** + * @see _.hasTruthyValues + */ + mergeForEach< + L extends any, + R extends any, + LHSItem extends ValueOf, + RHSItem extends ValueOf, + LHSItemKey extends keyof LHSItem, + RHSItemKey extends keyof RHSItem + >( + this: LoDashImplicitWrapper, + lhs: L | LHSItem[], + rhs: R | RHSItem[], + params: { + lhsIteratee?: LHSItemKey | ((item: LHSItem) => any), + rhsIteratee?: RHSItemKey | ((item: RHSItem) => any), + innerCallback?: (lhsItem: LHSItem, rhsItem: RHSItem) => void, + leftCallback?: (lhsItem: LHSItem) => void, + rightCallback?: (rhsItem: RHSItem) => void, + comparator?: (params: { + lhsItem: LHSItem, + rhsItem: RHSItem, + getLHSValue: (lhsItem: LHSItem) => any, + getRHSValue: (rhsItem: RHSItem) => any + }) => ComparisonResult + } + ): this + } + + interface LoDashExplicitWrapper { + /** + * @see _.hasTruthyValues + */ + mergeForEach< + L extends any, + R extends any, + LHSItem extends ValueOf, + RHSItem extends ValueOf, + LHSItemKey extends keyof LHSItem, + RHSItemKey extends keyof RHSItem + >( + this: LoDashExplicitWrapper, + lhs: L | LHSItem[], + rhs: R | RHSItem[], + params: { + lhsIteratee?: LHSItemKey | ((item: LHSItem) => any), + rhsIteratee?: RHSItemKey | ((item: RHSItem) => any), + innerCallback?: (lhsItem: LHSItem, rhsItem: RHSItem) => void, + leftCallback?: (lhsItem: LHSItem) => void, + rightCallback?: (rhsItem: RHSItem) => void, + comparator?: (params: { + lhsItem: LHSItem, + rhsItem: RHSItem, + getLHSValue: (lhsItem: LHSItem) => any, + getRHSValue: (rhsItem: RHSItem) => any + }) => ComparisonResult + } + ): this + } +} diff --git a/src/shortcuttedReduce.js b/src/shortcuttedReduce.js deleted file mode 100644 index c24b297..0000000 --- a/src/shortcuttedReduce.js +++ /dev/null @@ -1,53 +0,0 @@ -var _ = require('lodash') - -module.exports = shortcuttedReduce - -/** - * Reduce which finish as soon as accumulator changes. - * - * @template T Boolean | Number | String - * @param {Array|Object} collection Collection to be reduced. - * @param {Function} iteratee Function that will be called in each iteration. - * It'll receive as parameters the accumulator, the value and the index. - * @param {T} accumulator Note that is **must** be a simple primitive. - * @returns {T} Accumulated value. - */ -function shortcuttedReduce (collection, iteratee, accumulator) { - if (_.isObject(accumulator)) { - throw new Error('Only simple primitives (boolean, numbers, strings...) are allowed') - } - - if (_.isArray(collection)) { - return reduceArrayCollection() - } - - if (_.isObject(collection)) { - return reduceObjectCollection() - } - - throw new Error('Currently only arrays and objects are supported') - - function reduceArrayCollection () { - for (var index = 0; index < collection.length; index++) { - var oldAccumulator = accumulator - accumulator = iteratee(accumulator, collection[index], index) - if (accumulator !== oldAccumulator) { - return accumulator - } - } - return accumulator - } - - function reduceObjectCollection () { - var keys = Object.keys(collection) - for (var index = 0; index < keys.length; index++) { - var oldAccumulator = accumulator - var key = keys[index] - accumulator = iteratee(accumulator, collection[key], key) - if (accumulator !== oldAccumulator) { - return accumulator - } - } - return accumulator - } -} diff --git a/src/shortcuttedReduce.ts b/src/shortcuttedReduce.ts new file mode 100644 index 0000000..a0adde9 --- /dev/null +++ b/src/shortcuttedReduce.ts @@ -0,0 +1,240 @@ +import _ from 'lodash' +import { ValueOf } from './types' + +export default shortcuttedReduce + +function shortcuttedReduce< + Collection extends object, + CollectionKey extends keyof Collection, + CollectionItem extends ValueOf, + Accumulator +> ( + collection: Collection, + iteratee: (accum: Accumulator, item: CollectionItem, index: CollectionKey) => Accumulator, + accumulator: Accumulator +): Accumulator + +/** + * Reduce which finish as soon as accumulator changes. + * + * @param collection Collection to be reduced. + * @param iteratee Function that will be called in each iteration. + * It'll receive as parameters the accumulator, the value and the index. + * @param accumulator Note that is **must** be a simple primitive. + * @returns Accumulated value. + */ +function shortcuttedReduce< + CollectionItem, + Collection extends ArrayLike, + CollectionKey extends keyof Collection, + Accumulator +> ( + collection: Collection, + iteratee: (accum: Accumulator, item: CollectionItem, index: CollectionKey) => Accumulator, + accumulator: Accumulator +): Accumulator { + if (_.isObject(accumulator)) { + throw new Error('Only simple primitives (boolean, numbers, strings...) are allowed') + } + + if (_.isArray(collection)) { + return reduceArrayCollection() + } + + if (_.isObject(collection)) { + return reduceObjectCollection() + } + + throw new Error('Currently only arrays and objects are supported') + + function reduceArrayCollection () { + for (let index = 0; index < collection.length; index++) { + const oldAccumulator = accumulator + accumulator = iteratee(accumulator, collection[index], index as CollectionKey) + + if (accumulator !== oldAccumulator) return accumulator + } + + return accumulator + } + + function reduceObjectCollection () { + for (const key in collection) { + if (!collection.hasOwnProperty(key)) continue + + const oldAccumulator = accumulator + accumulator = iteratee(accumulator, collection[key], key as any as CollectionKey) + + if (accumulator !== oldAccumulator) return accumulator + } + + return accumulator + } +} + +declare module 'lodash' { + interface LoDashStatic { + /** + * Reduce which finishes as soon as accumulator changes. + * + * @param collection Collection to be reduced. + * @param iteratee Function that will be called in each iteration. + * It'll receive as parameters the accumulator, the value and the index. + * @param accumulator Note that is **must** be a simple primitive. + * @returns Accumulated value. + */ + shortcuttedReduce( + collection: T[] | null | undefined, + callback: MemoListIterator, + accumulator: TResult + ): TResult; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + collection: List | null | undefined, + callback: MemoListIterator>, + accumulator: TResult + ): TResult; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + collection: T | null | undefined, + callback: MemoObjectIterator, + accumulator: TResult + ): TResult; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + collection: T[] | null | undefined, + callback: MemoListIterator + ): T | undefined; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + collection: List | null | undefined, + callback: MemoListIterator> + ): T | undefined; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + collection: T | null | undefined, + callback: MemoObjectIterator + ): T[keyof T] | undefined; + } + + interface LoDashImplicitWrapper { + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashImplicitWrapper, + callback: MemoListIterator, + accumulator: TResult + ): TResult; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashImplicitWrapper | null | undefined>, + callback: MemoListIterator>, + accumulator: TResult + ): TResult; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashImplicitWrapper, + callback: MemoObjectIterator, + accumulator: TResult + ): TResult; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashImplicitWrapper, + callback: MemoListIterator + ): T | undefined; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashImplicitWrapper | null | undefined>, + callback: MemoListIterator> + ): T | undefined; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashImplicitWrapper, + callback: MemoObjectIterator + ): T[keyof T] | undefined; + } + + interface LoDashExplicitWrapper { + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashExplicitWrapper, + callback: MemoListIterator, + accumulator: TResult + ): LoDashExplicitWrapper; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashExplicitWrapper | null | undefined>, + callback: MemoListIterator>, + accumulator: TResult + ): LoDashExplicitWrapper; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashExplicitWrapper, + callback: MemoObjectIterator, + accumulator: TResult + ): LoDashExplicitWrapper; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashExplicitWrapper, + callback: MemoListIterator + ): LoDashExplicitWrapper; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashExplicitWrapper | null | undefined>, + callback: MemoListIterator> + ): LoDashExplicitWrapper; + + /** + * @see _.shortcuttedReduce + */ + shortcuttedReduce( + this: LoDashExplicitWrapper, + callback: MemoObjectIterator + ): LoDashExplicitWrapper; + } +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..3183da4 --- /dev/null +++ b/src/types.ts @@ -0,0 +1 @@ +export type ValueOf = T[keyof T & number] diff --git a/test/e2e/index.spec.ts b/test/e2e/index.spec.ts new file mode 100644 index 0000000..4dfbb18 --- /dev/null +++ b/test/e2e/index.spec.ts @@ -0,0 +1,27 @@ +import _ from 'lodash' +import lodashMixins from '../..' +import { expect } from 'chai' + +import injectedMethods from '../exportedMethods' + +describe('Exported package', function () { + describe('Before loading mixins', function () { + for (const method of injectedMethods) { + it(`Should not have «${method}» present`, function () { + expect(_).to.not.have.property(method).that.is.a('function') + }) + } + }) + + describe('When loading exported package', function () { + before('Load mixins', function () { + lodashMixins(_) + }) + + for (const method of injectedMethods) { + it(`Should have «${method}» present`, function () { + expect(_).to.have.property(method).that.is.a('function') + }) + } + }) +}) diff --git a/test/exportedMethods.ts b/test/exportedMethods.ts new file mode 100644 index 0000000..3bb2a54 --- /dev/null +++ b/test/exportedMethods.ts @@ -0,0 +1,10 @@ +export default [ + 'fromPairsMap', + 'fromPairsMapNonNil', + 'getTruthyKeys', + 'hasTruthyValues', + 'mapNonNil', + 'mergeForEach', + 'mGet', + 'shortcuttedReduce' +] diff --git a/test/fromPairsMapNonNil.spec.js b/test/fromPairsMapNonNil.spec.js deleted file mode 100644 index 6bb2575..0000000 --- a/test/fromPairsMapNonNil.spec.js +++ /dev/null @@ -1,36 +0,0 @@ -const fromPairsMapNonNil = require('../src/fromPairsMapNonNil') -const chai = require('chai') -const sinon = require('sinon') -const { expect } = chai -chai.use(require('sinon-chai')) - -describe('fromPairsMapNonNil', function () { - it('should return an object', function () { - const array = ['a', 'b', null] - const expectedResult = { - a: 'a', - b: 'b', - } - const result = fromPairsMapNonNil(array, (v) => { - return v ? [v, v] : null - }) - expect(result).to.be.deep.equal(expectedResult) - }) - - it('should apply map function', function () { - const mapFunction = sinon.stub().callsFake((v) => { - return !!v ? [v, `the key is ${v}`] : null - }) - const array = ['a', null, 'c'] - const expectedResult = { - a: 'the key is a', - c: 'the key is c' - } - const result = fromPairsMapNonNil(array, mapFunction) - expect(mapFunction).to.have.property('callCount').that.is.equal(array.length) - expect(mapFunction).to.have.been.calledWith('a', 0) - expect(mapFunction).to.have.been.calledWith(null, 1) - expect(mapFunction).to.have.been.calledWith('c', 2) - expect(result).to.be.deep.equal(expectedResult) - }) -}) diff --git a/test/index.spec.js b/test/index.spec.js deleted file mode 100644 index cd5977f..0000000 --- a/test/index.spec.js +++ /dev/null @@ -1,25 +0,0 @@ -const _ = require('lodash') -const fs = require('fs-extra') -const path = require('path') - -const chai = require('chai') -chai.use(require('sinon-chai')) -const { expect } = chai - -require('../src')(_) - -describe('Index imports', function () { - it('Should have added a function to Lodash for each src file', async function () { - const notLodashMixinsFiles = { - 'index.js': true, - 'constants.js': true - } - const files = await fs.readdir('src') - const lodashMixinsFiles = _.reject(files, f => f in notLodashMixinsFiles) - const lodashMixinsFuncs = _.map(lodashMixinsFiles, f => path.basename(f, path.extname(f))) - - for (const functionName of lodashMixinsFuncs) { - expect(_).to.have.property(functionName).that.is.a('function') - } - }) -}) diff --git a/test/integration/index.spec.ts b/test/integration/index.spec.ts new file mode 100644 index 0000000..17a599b --- /dev/null +++ b/test/integration/index.spec.ts @@ -0,0 +1,27 @@ +import _ from 'lodash' +import lodashMixins from '../../src/index' +import { expect } from 'chai' + +import injectedMethods from '../exportedMethods' + +describe('Exported package', function () { + describe('Before loading mixins', function () { + for (const method of injectedMethods) { + it(`Should not have «${method}» present`, function () { + expect(_).to.not.have.property(method).that.is.a('function') + }) + } + }) + + describe('When loading exported package', function () { + before('Load mixins', function () { + lodashMixins(_) + }) + + for (const method of injectedMethods) { + it(`Should have «${method}» present`, function () { + expect(_).to.have.property(method).that.is.a('function') + }) + } + }) +}) diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 0000000..57ac6f3 --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1,3 @@ +--require ts-node/register +--require source-map-support/register +--recursive \ No newline at end of file diff --git a/test/fromPairsMap.spec.js b/test/unit/fromPairsMap.spec.ts similarity index 83% rename from test/fromPairsMap.spec.js rename to test/unit/fromPairsMap.spec.ts index fe022bc..ee1d9f5 100644 --- a/test/fromPairsMap.spec.js +++ b/test/unit/fromPairsMap.spec.ts @@ -1,8 +1,8 @@ -const fromPairsMap = require('../src/fromPairsMap') -const chai = require('chai') -const sinon = require('sinon') -const { expect } = chai -chai.use(require('sinon-chai')) +import fromPairsMap from '../../src/fromPairsMap' +import { expect, use as chaiUse } from 'chai' +import sinonChai from 'sinon-chai' +import * as sinon from 'sinon' +chaiUse(sinonChai) describe('fromPairsMap', function () { it('should return an object', function () { diff --git a/test/unit/fromPairsMapNonNil.spec.ts b/test/unit/fromPairsMapNonNil.spec.ts new file mode 100644 index 0000000..a59b46a --- /dev/null +++ b/test/unit/fromPairsMapNonNil.spec.ts @@ -0,0 +1,36 @@ +import fromPairsMapNonNil from '../../src/fromPairsMapNonNil' +import { expect, use as chaiUse } from 'chai' +import sinonChai from 'sinon-chai' +import * as sinon from 'sinon' +chaiUse(sinonChai) + +describe('fromPairsMap', function () { + it('should return object without null values', function () { + const array = ['a', 'b', null] + const expectedResult = { + a: 'a', + b: 'b' + } + const iteratee: (v: string | null) => ([string, string] | null) = (v) => v ? [v, v] : null + const result = fromPairsMapNonNil(array, iteratee) + + expect(result).to.be.deep.equal(expectedResult) + }) + + it('should apply map function', function () { + const mapFunction = sinon.stub().callsFake(v => [v, `the key is ${v}`]) + const array = ['a', 'b', 'c'] + const expectedResult = { + a: 'the key is a', + b: 'the key is b', + c: 'the key is c' + } + const result = fromPairsMapNonNil(array, mapFunction) + + expect(mapFunction).to.have.property('callCount', array.length) + expect(mapFunction).to.have.been.calledWith('a', 0) + expect(mapFunction).to.have.been.calledWith('b', 1) + expect(mapFunction).to.have.been.calledWith('c', 2) + expect(result).to.be.deep.equal(expectedResult) + }) +}) diff --git a/test/getTruthyKeys.spec.js b/test/unit/getTruthyKeys.spec.ts similarity index 87% rename from test/getTruthyKeys.spec.js rename to test/unit/getTruthyKeys.spec.ts index c438923..f335c02 100644 --- a/test/getTruthyKeys.spec.js +++ b/test/unit/getTruthyKeys.spec.ts @@ -1,6 +1,5 @@ -const getTruthyKeys = require('../src/getTruthyKeys') -const chai = require('chai') -const { expect } = chai +import getTruthyKeys from '../../src/getTruthyKeys' +import { expect } from 'chai' describe('getTruthyKeys', function () { it('should return truthy keys', function () { diff --git a/test/hasTruthyValues.spec.js b/test/unit/hasTruthyValues.spec.ts similarity index 87% rename from test/hasTruthyValues.spec.js rename to test/unit/hasTruthyValues.spec.ts index 9620ddd..5ba1663 100644 --- a/test/hasTruthyValues.spec.js +++ b/test/unit/hasTruthyValues.spec.ts @@ -1,6 +1,5 @@ -const hasTruthyValues = require('../src/hasTruthyValues') -const chai = require('chai') -const { expect } = chai +import hasTruthyValues from '../../src/hasTruthyValues' +import { expect } from 'chai' describe('hasTruthyValues', function () { it('should return false if there are no truthy keys', function () { diff --git a/test/mGet.spec.js b/test/unit/mGet.spec.ts similarity index 82% rename from test/mGet.spec.js rename to test/unit/mGet.spec.ts index 30f1db3..5c27469 100644 --- a/test/mGet.spec.js +++ b/test/unit/mGet.spec.ts @@ -1,6 +1,5 @@ -const mGet = require('../src/mGet') -const chai = require('chai') -const { expect } = chai +import mGet from '../../src/mGet' +import { expect } from 'chai' describe('mGet', function () { it('should return values in the same order as required', function () { @@ -22,10 +21,10 @@ describe('mGet', function () { } const defaultValue = 'default value taken' - const firstResult = mGet(object, ['missing'], defaultValue) + const firstResult = mGet(object, ['missing'] as any as 'a'[], defaultValue) expect(firstResult).to.deep.equal([defaultValue]) - const secondResult = mGet(object, ['a', 'missing'], defaultValue) + const secondResult = mGet(object, ['a', 'missing'] as any as 'a'[], defaultValue) expect(secondResult).to.deep.equal([object.a, defaultValue]) }) diff --git a/test/mapNonNil.spec.js b/test/unit/mapNonNil.spec.ts similarity index 94% rename from test/mapNonNil.spec.js rename to test/unit/mapNonNil.spec.ts index fc9fa31..dc6f3b8 100644 --- a/test/mapNonNil.spec.js +++ b/test/unit/mapNonNil.spec.ts @@ -1,8 +1,8 @@ -const mapNonNil = require('../src/mapNonNil') -const chai = require('chai') -const sinon = require('sinon') -const { expect } = chai -chai.use(require('sinon-chai')) +import mapNonNil from '../../src/mapNonNil' +import { expect, use as chaiUse } from 'chai' +import sinonChai from 'sinon-chai' +import * as sinon from 'sinon' +chaiUse(sinonChai) describe('mapNonNil', function () { describe('with arrays', function () { diff --git a/test/mergeForEach.spec.js b/test/unit/mergeForEach.spec.ts similarity index 80% rename from test/mergeForEach.spec.js rename to test/unit/mergeForEach.spec.ts index c31f11e..54efde1 100644 --- a/test/mergeForEach.spec.js +++ b/test/unit/mergeForEach.spec.ts @@ -1,9 +1,10 @@ -const mergeForEach = require('../src/mergeForEach') -const { SORTING_ORDER } = require('../src/constants') -const chai = require('chai') -const sinon = require('sinon') -const { expect } = chai -chai.use(require('sinon-chai')) +import mergeForEach, { ComparisonResult } from '../../src/mergeForEach' +import { ValueOf } from '../../src/types' +import { SORTING_ORDER } from '../../src/constants' +import { expect, use as chaiUse } from 'chai' +import sinonChai from 'sinon-chai' +import * as sinon from 'sinon' +chaiUse(sinonChai) describe('mergeForEach', function () { const lhsBarcelona = { id: 0, name: 'Barcelona' } @@ -83,10 +84,31 @@ describe('mergeForEach', function () { }) }) - function buildTestCases ({ + function buildTestCases< + L extends any, + R extends any, + LHSItem extends ValueOf, + RHSItem extends ValueOf, + LHSItemKey extends keyof LHSItem, + RHSItemKey extends keyof RHSItem + > ({ lhs, rhs, lhsIteratee, rhsIteratee, comparator, leftCallback, innerCallback, rightCallback + }: { + lhs: L, + rhs: R, + lhsIteratee: LHSItemKey | ((item: LHSItem) => any), + rhsIteratee: RHSItemKey | ((item: RHSItem) => any), + innerCallback?: (lhsItem: LHSItem, rhsItem: RHSItem) => void, + leftCallback?: (lhsItem: LHSItem) => void, + rightCallback?: (rhsItem: RHSItem) => void, + comparator?: (params: { + lhsItem: LHSItem, + rhsItem: RHSItem, + getLHSValue: (lhsItem: LHSItem) => any, + getRHSValue: (rhsItem: RHSItem) => any + }) => ComparisonResult }) { it('Should call leftCallback for non-matching values in lhs', function () { mergeForEach(lhs, rhs, { diff --git a/test/shortcuttedReduce.spec.js b/test/unit/shortcuttedReduce.spec.ts similarity index 60% rename from test/shortcuttedReduce.spec.js rename to test/unit/shortcuttedReduce.spec.ts index c80ba9d..74ceaa4 100644 --- a/test/shortcuttedReduce.spec.js +++ b/test/unit/shortcuttedReduce.spec.ts @@ -1,17 +1,18 @@ -const shortcuttedReduce = require('../src/shortcuttedReduce') -const chai = require('chai') -const sinon = require('sinon') -const { expect } = chai +import shortcuttedReduce from '../../src/shortcuttedReduce' +import { expect, use as chaiUse } from 'chai' +import sinonChai from 'sinon-chai' +import * as sinon from 'sinon' +chaiUse(sinonChai) + const sandbox = sinon.createSandbox() -chai.use(require('sinon-chai')) describe('shortcuttedReduce', function () { const helpers = { - returnTrue () { + returnTrue (): boolean { return true }, - returnAccumulator (accum) { + returnAccumulator (accum: S): S { return accum } } @@ -38,8 +39,9 @@ describe('shortcuttedReduce', function () { const list = ['a', 'b', 'c', 'd'] const result = shortcuttedReduce(list, helpers.returnAccumulator, false) expect(helpers.returnAccumulator).to.have.callCount(list.length) - for (let i = 0; i < Object.keys(list); i++) { - expect(helpers.returnAccumulator.getCall(i)).to.have.been.calledWith(false, list[i], i) + for (let i = 0; i < Object.keys(list).length; i++) { + const sinonStub = helpers.returnAccumulator as sinon.SinonStub + expect(sinonStub.getCall(i)).to.have.been.calledWith(false, list[i], i) } expect(result).to.be.equal(false) }) @@ -47,42 +49,44 @@ describe('shortcuttedReduce', function () { describe('with objects', function () { it('should finish early on change', function () { - const list = { a: 'b', c: 'd', e: 'f', g: 'h' } + const list: { [key: string]: string } = { a: 'b', c: 'd', e: 'f', g: 'h' } const result = shortcuttedReduce(list, helpers.returnTrue, false) + const firstKey = Object.keys(list)[0] expect(helpers.returnTrue).to.be.calledOnce // eslint-disable-line no-unused-expressions - expect(helpers.returnTrue).to.be.calledWith(false, list[Object.keys(list)[0]], Object.keys(list)[0]) + expect(helpers.returnTrue).to.be.calledWith(false, list[firstKey], firstKey) expect(result).to.be.equal(true) }) it('should traverse all items if nothing changes', function () { - const list = { a: 'b', c: 'd', e: 'f', g: 'h' } + const list: { [key: string]: string } = { a: 'b', c: 'd', e: 'f', g: 'h' } const result = shortcuttedReduce(list, helpers.returnAccumulator, false) expect(helpers.returnAccumulator).to.have.callCount(Object.keys(list).length) - for (let i = 0; i < Object.keys(list); i++) { + for (let i = 0; i < Object.keys(list).length; i++) { const key = Object.keys(list)[i] - expect(helpers.returnAccumulator.getCall(i)).to.have.been.calledWith(false, list[key], key) + const sinonStub = helpers.returnAccumulator as sinon.SinonStub + expect(sinonStub.getCall(i)).to.have.been.calledWith(false, list[key], key) } expect(result).to.be.equal(false) }) }) it('should throw error when reducing strings', function () { - expect(() => shortcuttedReduce('string', () => {}, false)).to.throw() + expect(() => shortcuttedReduce('string' as any as string[], () => {}, false as any)).to.throw() }) it('should throw error when reducing numbers', function () { - expect(() => shortcuttedReduce(42, () => {}, false)).to.throw() + expect(() => shortcuttedReduce(42 as any as string[], () => {}, false as any)).to.throw() }) it('should throw error when reducing booleans', function () { - expect(() => shortcuttedReduce(true, () => {}, false)).to.throw() + expect(() => shortcuttedReduce(true as any as string[], () => {}, false as any)).to.throw() }) it('should throw error when using an object as accumulator', function () { - expect(() => shortcuttedReduce([], () => {}, {})).to.throw() + expect(() => shortcuttedReduce([], () => {}, {} as any)).to.throw() }) it('should throw error when using an array as accumulator', function () { - expect(() => shortcuttedReduce([], () => {}, [])).to.throw() + expect(() => shortcuttedReduce([], () => {}, [] as any)).to.throw() }) }) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..abc966f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,66 @@ +{ + "compilerOptions": { + /* Basic Options */ + "target": "ES5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "dist", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + "strictNullChecks": true, /* Enable strict null checks. */ + "strictFunctionTypes": true, /* Enable strict checking of function types. */ + "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + "noUnusedLocals": true, /* Report errors on unused locals. */ + "noUnusedParameters": true, /* Report errors on unused parameters. */ + "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/yarn.lock b/yarn.lock index b00c719..c5807a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@babel/cli@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.1.2.tgz#fc2853ae96824b3779ca85de4fd025ce3cf62a5e" - integrity sha512-K3WDlpBPGpoW11SLKFEBhMsITomPovsrZ/wnM3y+WStbytukDXC0OBic3yQp+j058QUw0+R/jfx2obwp1fOzcA== +"@babel/cli@^7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.2.3.tgz#1b262e42a3e959d28ab3d205ba2718e1923cfee6" + integrity sha512-bfna97nmJV6nDJhXNPeEfxyMjWnt6+IjUAaDPiYRTBlm8L41n8nvw6UAqUCbvpFfU246gHPxW7sfWwqtF4FcYA== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" @@ -19,13 +19,6 @@ optionalDependencies: chokidar "^2.0.3" -"@babel/code-frame@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" - integrity sha1-vXHZsZKvl435FYKdOdQJRFZDmgw= - dependencies: - "@babel/highlight" "7.0.0-beta.51" - "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -33,43 +26,43 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" - integrity sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw== +"@babel/core@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" + integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.2" - "@babel/helpers" "^7.1.2" - "@babel/parser" "^7.1.2" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.1.2" + "@babel/generator" "^7.2.2" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.2" + "@babel/template" "^7.2.2" + "@babel/traverse" "^7.2.2" + "@babel/types" "^7.2.2" convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" + debug "^4.1.0" + json5 "^2.1.0" lodash "^4.17.10" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6" - integrity sha1-bHV1/952HQdIXgS67cA5LG2eMPY= +"@babel/generator@^7.0.0": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.2.tgz#fde75c072575ce7abbd97322e8fef5bae67e4630" + integrity sha512-70A9HWLS/1RHk3Ck8tNHKxOoKQuSKocYgwDN85Pyl/RBduss6AKxUR7RIZ/lzduQMSYfWEM4DDBu6A+XGbkFig== dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "^7.1.2" jsesc "^2.5.1" - lodash "^4.17.5" + lodash "^4.17.10" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.0.0", "@babel/generator@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.2.tgz#fde75c072575ce7abbd97322e8fef5bae67e4630" - integrity sha512-70A9HWLS/1RHk3Ck8tNHKxOoKQuSKocYgwDN85Pyl/RBduss6AKxUR7RIZ/lzduQMSYfWEM4DDBu6A+XGbkFig== +"@babel/generator@^7.2.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.2.tgz#fff31a7b2f2f3dad23ef8e01be45b0d5c2fc0132" + integrity sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ== dependencies: - "@babel/types" "^7.1.2" + "@babel/types" "^7.3.2" jsesc "^2.5.1" lodash "^4.17.10" source-map "^0.5.0" @@ -116,15 +109,6 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-function-name@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz#21b4874a227cf99ecafcc30a90302da5a2640561" - integrity sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE= - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - "@babel/helper-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" @@ -134,13 +118,6 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-get-function-arity@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz#3281b2d045af95c172ce91b20825d85ea4676411" - integrity sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE= - dependencies: - "@babel/types" "7.0.0-beta.51" - "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -229,13 +206,6 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz#8a6c3f66c4d265352fc077484f9f6e80a51ab978" - integrity sha1-imw/ZsTSZTUvwHdIT59ugKUauXg= - dependencies: - "@babel/types" "7.0.0-beta.51" - "@babel/helper-split-export-declaration@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" @@ -253,23 +223,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helpers@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" - integrity sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA== +"@babel/helpers@^7.2.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.3.1.tgz#949eec9ea4b45d3210feb7dc1c22db664c9e44b9" + integrity sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA== dependencies: "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.1.2" - -"@babel/highlight@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" - integrity sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0= - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" + "@babel/traverse" "^7.1.5" + "@babel/types" "^7.3.0" "@babel/highlight@^7.0.0": version "7.0.0" @@ -280,121 +241,128 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" - integrity sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY= +"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.2.tgz#95cdeddfc3992a6ca2a1315191c1679ca32c55cd" + integrity sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ== "@babel/parser@^7.1.0", "@babel/parser@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.2.tgz#85c5c47af6d244fab77bce6b9bd830e38c978409" integrity sha512-x5HFsW+E/nQalGMw7hu+fvPqnBeBaIr0lWJ2SG0PPL2j+Pm9lYvCrsZJGIgauPIENx0v10INIyFjmSNUD/gSqQ== -"@babel/plugin-proposal-async-generator-functions@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" - integrity sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew== +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-json-strings@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" - integrity sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q== +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" - integrity sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw== +"@babel/plugin-proposal-object-rest-spread@^7.3.1": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" + integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-optional-catch-binding@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" - integrity sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw== +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" - integrity sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ== +"@babel/plugin-proposal-unicode-property-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" + integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" regexpu-core "^4.2.0" -"@babel/plugin-syntax-async-generators@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" - integrity sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA== +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-json-strings@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" - integrity sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA== +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" - integrity sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw== +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-optional-catch-binding@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" - integrity sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw== +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" - integrity sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w== +"@babel/plugin-syntax-typescript@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.2.0.tgz#55d240536bd314dcbbec70fd949c5cabaed1de29" + integrity sha512-WhKr6yu6yGpGcNMVgIBuI9MkredpVc7Y3YR4UzEZmDztHoL6wV56YBHLhWnjO1EvId1B32HrD3DRFc+zSoKI1g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" - integrity sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g== +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" + integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" -"@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" - integrity sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ== +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" - integrity sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg== +"@babel/plugin-transform-block-scoping@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" + integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.10" -"@babel/plugin-transform-classes@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" - integrity sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg== +"@babel/plugin-transform-classes@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-define-map" "^7.1.0" @@ -405,99 +373,106 @@ "@babel/helper-split-export-declaration" "^7.0.0" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" - integrity sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA== +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.2.tgz#5fa77d473f5a0a3f5266ad7ce2e8c995a164d60a" - integrity sha512-cvToXvp/OsYxtEn57XJu9BvsGSEYjAh9UeUuXpoi7x6QHB7YdWyQ4lRU/q0Fu1IJNT0o0u4FQ1DMQBzJ8/8vZg== +"@babel/plugin-transform-destructuring@^7.2.0": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" + integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" - integrity sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig== +"@babel/plugin-transform-dotall-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" + integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/plugin-transform-duplicate-keys@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" - integrity sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ== +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-exponentiation-operator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" - integrity sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ== +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-for-of@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" - integrity sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA== +"@babel/plugin-transform-for-of@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" + integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" - integrity sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg== +"@babel/plugin-transform-function-name@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" + integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-literals@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" - integrity sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA== +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" - integrity sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A== +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" - integrity sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA== +"@babel/plugin-transform-modules-commonjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" + integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4" - integrity sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g== +"@babel/plugin-transform-modules-systemjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" + integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== dependencies: "@babel/helper-hoist-variables" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-umd@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" - integrity sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig== +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz#140b52985b2d6ef0cb092ef3b29502b990f9cd50" + integrity sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw== + dependencies: + regexp-tree "^0.1.0" + "@babel/plugin-transform-new-target@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" @@ -505,18 +480,18 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-object-super@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" - integrity sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw== +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" -"@babel/plugin-transform-parameters@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" - integrity sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw== +"@babel/plugin-transform-parameters@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" + integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== dependencies: "@babel/helper-call-delegate" "^7.1.0" "@babel/helper-get-function-arity" "^7.0.0" @@ -529,108 +504,125 @@ dependencies: regenerator-transform "^0.13.3" -"@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" - integrity sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw== +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-spread@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" - integrity sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ== +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-sticky-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" - integrity sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw== +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" -"@babel/plugin-transform-template-literals@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" - integrity sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg== +"@babel/plugin-transform-template-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" + integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typeof-symbol@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" - integrity sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg== +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" - integrity sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw== +"@babel/plugin-transform-typescript@^7.1.0": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.3.2.tgz#59a7227163e55738842f043d9e5bd7c040447d96" + integrity sha512-Pvco0x0ZSCnexJnshMfaibQ5hnK8aUHSvjCQhC1JR8eeg+iBwt0AtCO7gWxJ358zZevuf9wPSO5rv+WJcbHPXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.2.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" + integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/preset-env@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" - integrity sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg== +"@babel/preset-env@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" + integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.1.0" - "@babel/plugin-proposal-json-strings" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" - "@babel/plugin-syntax-async-generators" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.1.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.1.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-dotall-regex" "^7.0.0" - "@babel/plugin-transform-duplicate-keys" "^7.0.0" - "@babel/plugin-transform-exponentiation-operator" "^7.1.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.1.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-amd" "^7.1.0" - "@babel/plugin-transform-modules-commonjs" "^7.1.0" - "@babel/plugin-transform-modules-systemjs" "^7.0.0" - "@babel/plugin-transform-modules-umd" "^7.1.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-modules-systemjs" "^7.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" "@babel/plugin-transform-new-target" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.1.0" - "@babel/plugin-transform-parameters" "^7.1.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.2.0" "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typeof-symbol" "^7.0.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - browserslist "^4.1.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + browserslist "^4.3.4" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.3.0" -"@babel/template@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.51.tgz#9602a40aebcf357ae9677e2532ef5fc810f5fbff" - integrity sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8= +"@babel/preset-typescript@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" + integrity sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA== dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.1.0" + +"@babel/template@^7.0.0", "@babel/template@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907" + integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.2.2" + "@babel/types" "^7.2.2" "@babel/template@^7.1.0", "@babel/template@^7.1.2": version "7.1.2" @@ -641,21 +633,20 @@ "@babel/parser" "^7.1.2" "@babel/types" "^7.1.2" -"@babel/traverse@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.51.tgz#981daf2cec347a6231d3aa1d9e1803b03aaaa4a8" - integrity sha1-mB2vLOw0emIx06odnhgDsDqqpKg= - dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/generator" "7.0.0-beta.51" - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - debug "^3.1.0" +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8" + integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.2.3" + "@babel/types" "^7.2.2" + debug "^4.1.0" globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.17.5" + lodash "^4.17.10" "@babel/traverse@^7.1.0": version "7.1.0" @@ -672,15 +663,6 @@ globals "^11.1.0" lodash "^4.17.10" -"@babel/types@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" - integrity sha1-2AK3tUO1g2x3iqaReXq/APPZfqk= - dependencies: - esutils "^2.0.2" - lodash "^4.17.5" - to-fast-properties "^2.0.0" - "@babel/types@^7.0.0", "@babel/types@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.2.tgz#183e7952cf6691628afdc2e2b90d03240bac80c0" @@ -690,6 +672,15 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.2.tgz#424f5be4be633fff33fb83ab8d67e4a8290f5a2f" + integrity sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ== + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + "@sinonjs/commons@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.0.2.tgz#3e0ac737781627b8844257fadc3d803997d0526e" @@ -697,46 +688,76 @@ dependencies: type-detect "4.0.8" -"@sinonjs/formatio@3.0.0", "@sinonjs/formatio@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.0.0.tgz#9d282d81030a03a03fa0c5ce31fd8786a4da311a" - integrity sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w== +"@sinonjs/commons@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.3.0.tgz#50a2754016b6f30a994ceda6d9a0a8c36adda849" + integrity sha512-j4ZwhaHmwsCb4DlDOIWnI5YyKDNMoNThsmwEpfHx6a1EpsGZ9qYLxP++LMlmBRjtGptGHFsGItJ768snllFWpA== dependencies: - "@sinonjs/samsam" "2.1.0" + type-detect "4.0.8" -"@sinonjs/samsam@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.1.0.tgz#b8b8f5b819605bd63601a6ede459156880f38ea3" - integrity sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw== +"@sinonjs/formatio@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.1.0.tgz#6ac9d1eb1821984d84c4996726e45d1646d8cce5" + integrity sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg== + dependencies: + "@sinonjs/samsam" "^2 || ^3" + +"@sinonjs/samsam@^2 || ^3", "@sinonjs/samsam@^3.0.2": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.1.0.tgz#38146f7be732de96f9f599d7247d71e349bf4bdb" + integrity sha512-IXio+GWY+Q8XUjHUOgK7wx8fpvr7IFffgyXb1bnJFfX3001KmHt35Zq4tp7MXZyjJPCLPuadesDYNk41LYtVjw== dependencies: + "@sinonjs/commons" "^1.0.2" array-from "^2.1.1" + lodash.get "^4.4.2" -"@sinonjs/samsam@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.1.2.tgz#16947fce5f57258d01f1688fdc32723093c55d3f" - integrity sha512-ZwTHAlC9akprWDinwEPD4kOuwaYZlyMwVJIANsKNC3QVp0AHB04m7RnB4eqeWfgmxw8MGTzS9uMaw93Z3QcZbw== +"@types/chai@*", "@types/chai@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA== + +"@types/lodash@^4.14.120": + version "4.14.120" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.120.tgz#cf265d06f6c7a710db087ed07523ab8c1a24047b" + integrity sha512-jQ21kQ120mo+IrDs1nFNVm/AsdFxIx2+vZ347DbogHJPd/JzKNMOqU6HCYin1W6v8l5R9XSO2/e9cxmn7HAnVw== + +"@types/mocha@^5.2.5": + version "5.2.5" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073" + integrity sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww== + +"@types/sinon-chai@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.2.tgz#5cfdbda70bae30f79a9423334af9e490e4cce793" + integrity sha512-5zSs2AslzyPZdOsbm2NRtuSNAI2aTWzNKOHa/GRecKo7a5efYD7qGcPxMZXQDayVXT2Vnd5waXxBvV31eCZqiA== + dependencies: + "@types/chai" "*" + "@types/sinon" "*" + +"@types/sinon@*", "@types/sinon@^7.0.5": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.5.tgz#f7dea19400c193a3b36a804a7f1f4b26dacf452b" + integrity sha512-4DShbH857bZVOY4tPi1RQJNrLcf89hEtU0klZ9aYTMbtt95Ok4XdPqqcbtGOHIbAHMLSzQP8Uw/6qtBBqyloww== abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -acorn-jsx@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" - integrity sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw== - dependencies: - acorn "^5.0.3" +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== -acorn@^5.0.3, acorn@^5.6.0, acorn@~5.7.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== +acorn@6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" + integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg== -ajv-keywords@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= +acorn@^6.0.2: + version "6.0.7" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.7.tgz#490180ce18337270232d9488a44be83d9afb7fd3" + integrity sha512-HNJNgE60C9eOTgn974Tlp3dpLZdUr+SoxxDwPaY9J/kDNOLQTkaDgwBUXAF4SSsrAwD9RpdxuHK/EbuF+W9Ahw== ajv@^5.3.0: version "5.5.2" @@ -748,7 +769,7 @@ ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1, ajv@^6.5.3: +ajv@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" integrity sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg== @@ -758,6 +779,16 @@ ajv@^6.0.1, ajv@^6.5.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.6.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.8.1.tgz#0890b93742985ebf8973cd365c5b23920ce3cb20" + integrity sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -828,6 +859,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" + integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -914,6 +950,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -1020,14 +1061,14 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.2.0.tgz#3e5e5edf7fa9758ded0885cf88c1e4be753a591c" - integrity sha512-Berls1CHL7qfQz8Lct6QxYA5d2Tvt4doDWHcjvAISybpd+EKZVppNtXgXhaN6SdrPKo7YLTSZuYBs5cYrSWN8w== +browserslist@^4.3.4: + version "4.4.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" + integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A== dependencies: - caniuse-lite "^1.0.30000889" - electron-to-chromium "^1.3.73" - node-releases "^1.0.0-alpha.12" + caniuse-lite "^1.0.30000929" + electron-to-chromium "^1.3.103" + node-releases "^1.1.3" buffer-from@^1.0.0: version "1.1.1" @@ -1054,51 +1095,44 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -caching-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-2.0.0.tgz#e1292bd92d35b6e8b1ed7075726724b3bd64eea0" - integrity sha512-tTfemGmFWe7KZ3KN6VsSgQZbd9Bgo7A40wlp4PTsJJvFu4YAnEC5YnfdiKq6Vh2i9XJLnA9n8OXD46orVpnPMw== - dependencies: - make-dir "^1.0.0" - md5-hex "^2.0.0" - package-hash "^2.0.0" - write-file-atomic "^2.0.0" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= +caching-transform@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.1.tgz#1df89e850803ad15f68dafb2abe9a8b866016c7d" + integrity sha512-Y1KTLNwSPd4ljsDrFOtyXVmm7Gnk42yQitNq43AhE+cwUR/e4T+rmOHs1IPtzBg8066GBJfTOj1rQYFSWSsH2g== dependencies: - callsites "^0.2.0" + hasha "^3.0.0" + make-dir "^1.3.0" + package-hash "^3.0.0" + write-file-atomic "^2.3.0" -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= +callsites@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" + integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= +camelcase@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -caniuse-lite@^1.0.30000889: - version "1.0.30000890" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz#86a18ffcc65d79ec6a437e985761b8bf1c4efeaf" - integrity sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg== +caniuse-lite@^1.0.30000929: + version "1.0.30000935" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz#d1b59df00b46f4921bb84a8a34c1d172b346df59" + integrity sha512-1Y2uJ5y56qDt3jsDTdBHL1OqiImzjoQcBG6Yl3Qizq8mcc2SgCFpi+ZwLLqkztYnk9l87IYqRlNBnPSOTbFkXQ== -caporal@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/caporal/-/caporal-0.10.0.tgz#2ddfbe5ede26d2bd356f042f564ff57803cdabc9" - integrity sha512-Df9b3SxFqXkdvFdc/i4fNU2wFGYezSKTkENew9txshZhfazE8Ts70OKDmhOD7NRJjz81Xd9Jb+wF9XeqM20WsA== +caporal@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/caporal/-/caporal-1.1.0.tgz#834fd2348ab6ae79171a023a975ccc6f04620533" + integrity sha512-R5qo2QGoqBM6RvzHonGhUuEJSeqEa4lD1r+cPUEY2+YsXhpQVTS2TvScfIbi6ydFdhzFCNeNUB1v0YrRBvsbdg== dependencies: bluebird "^3.4.7" - chalk "^1.1.3" - cli-table2 "^0.2.0" + cli-table3 "^0.5.0" + colorette "1.0.1" fast-levenshtein "^2.0.6" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" lodash.merge "^4.6.0" - micromist "^1.0.1" + micromist "1.1.0" prettyjson "^1.2.1" tabtab "^2.2.2" winston "^2.3.1" @@ -1127,7 +1161,7 @@ chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chalk@^1.0.0, chalk@^1.1.3: +chalk@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -1147,6 +1181,15 @@ chalk@^2.0.0, chalk@^2.1.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -1211,13 +1254,13 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-table2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" - integrity sha1-LR738hig54biFFQFYtS9F3/jLZc= +cli-table3@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== dependencies: - lodash "^3.10.1" - string-width "^1.0.1" + object-assign "^4.1.0" + string-width "^2.1.1" optionalDependencies: colors "^1.1.2" @@ -1265,6 +1308,11 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +colorette@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.0.1.tgz#434bad4bd70969c075162fec86ca55da36bf837c" + integrity sha512-40MnlppkzHhFjRhtXunbpqKUT+eJn0gyVGi8aQlNSG8T2CCy31NdD7yktcS0aizH1VP2OhhQCyGMeTp0a/fvaw== + colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -1339,7 +1387,7 @@ contains-path@^0.1.0: resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= -convert-source-map@^1.1.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0, convert-source-map@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== @@ -1376,16 +1424,7 @@ cross-spawn@^4: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.4, cross-spawn@^6.0.5: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -1408,11 +1447,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug-log@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" - integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= - debug@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -1441,7 +1475,14 @@ debug@^4.0.1: dependencies: ms "^2.1.1" -decamelize@^1.1.1: +debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -1532,7 +1573,7 @@ detect-libc@^1.0.2: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -diff@3.5.0, diff@^3.5.0: +diff@3.5.0, diff@^3.1.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== @@ -1552,11 +1593,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -duplexer@^0.1.1, duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1565,10 +1601,17 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.73: - version "1.3.77" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.77.tgz#9207a874a21a8fcb665bb4ff1675a11ba65517f4" - integrity sha512-XIfQcdU9L4qUte31fFATwptHodMH0Otf53N8y1AKxd1+79vR+2UYpLq+Z1Zbtbuy+w0xd7KwIUrvlnje/htiOg== +electron-to-chromium@^1.3.103: + version "1.3.113" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9" + integrity sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g== + +end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" @@ -1588,13 +1631,13 @@ es-abstract@^1.4.3: is-callable "^1.1.3" is-regex "^1.0.4" -es-check@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/es-check/-/es-check-4.0.0.tgz#e3b394b96b86225e556006299c2635f1b9055af9" - integrity sha512-ScuxKjJSNl8lYvjYcV82dU09ROwgckCC/TPVBrTVvsGEBToPwWjHEXRC3mfkU0e4pDvgfuO/5PNeXsHW4kZNTg== +es-check@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es-check/-/es-check-5.0.0.tgz#856f682db18b989aaf050a1490b8e15a58a35bcc" + integrity sha512-30n+EZt5KjazXEvyYr2DXJCOJJWfdT1unRp5+Szlcja6uGAB3Sh3QPjRsxd2xgN9SFj4S5P8pdBISwGcDdS45Q== dependencies: - acorn "~5.7.0" - caporal "^0.10.0" + acorn "6.0.4" + caporal "1.1.0" glob "^7.1.2" es-to-primitive@^1.1.1: @@ -1621,7 +1664,7 @@ eslint-config-standard@^12.0.0: resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== -eslint-import-resolver-node@^0.3.1: +eslint-import-resolver-node@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== @@ -1629,13 +1672,13 @@ eslint-import-resolver-node@^0.3.1: debug "^2.6.9" resolve "^1.5.0" -eslint-module-utils@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" - integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y= +eslint-module-utils@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" + integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== dependencies: debug "^2.6.8" - pkg-dir "^1.0.0" + pkg-dir "^2.0.0" eslint-plugin-es@^1.3.1: version "1.3.1" @@ -1645,30 +1688,30 @@ eslint-plugin-es@^1.3.1: eslint-utils "^1.3.0" regexpp "^2.0.0" -eslint-plugin-import@^2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" - integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== +eslint-plugin-import@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" + integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== dependencies: contains-path "^0.1.0" - debug "^2.6.8" + debug "^2.6.9" doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.3.0" + has "^1.0.3" + lodash "^4.17.11" + minimatch "^3.0.4" read-pkg-up "^2.0.0" - resolve "^1.6.0" + resolve "^1.9.0" -eslint-plugin-node@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" - integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== +eslint-plugin-node@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" + integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== dependencies: eslint-plugin-es "^1.3.1" eslint-utils "^1.3.1" - ignore "^4.0.2" + ignore "^5.0.2" minimatch "^3.0.4" resolve "^1.8.1" semver "^5.5.0" @@ -1701,10 +1744,10 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^5.6.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.6.1.tgz#348134e32ccc09abb2df1bf282b3f6eed8c7b480" - integrity sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA== +eslint@^5.13.0: + version "5.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.13.0.tgz#ce71cc529c450eed9504530939aa97527861ede9" + integrity sha512-nqD5WQMisciZC5EHZowejLKQjWGuFS5c70fxqSKlnDME+oz9zmE8KTlX+lHSg+/5wsC/kf9Q9eMkC8qS3oM2fg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.5.3" @@ -1715,7 +1758,7 @@ eslint@^5.6.1: eslint-scope "^4.0.0" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^4.0.0" + espree "^5.0.0" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^2.0.0" @@ -1723,9 +1766,9 @@ eslint@^5.6.1: glob "^7.1.2" globals "^11.7.0" ignore "^4.0.6" + import-fresh "^3.0.0" imurmurhash "^0.1.4" inquirer "^6.1.0" - is-resolvable "^1.1.0" js-yaml "^3.12.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" @@ -1735,23 +1778,22 @@ eslint@^5.6.1: natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" - pluralize "^7.0.0" progress "^2.0.0" - regexpp "^2.0.0" - require-uncached "^1.0.3" + regexpp "^2.0.1" semver "^5.5.1" strip-ansi "^4.0.0" strip-json-comments "^2.0.1" - table "^4.0.3" + table "^5.0.2" text-table "^0.2.0" -espree@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" - integrity sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg== +espree@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c" + integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA== dependencies: - acorn "^5.6.0" - acorn-jsx "^4.1.1" + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" esprima@^4.0.0: version "4.0.1" @@ -1782,27 +1824,13 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= -event-stream@~3.3.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.6.tgz#cac1230890e07e73ec9cacd038f60a5b66173eef" - integrity sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g== - dependencies: - duplexer "^0.1.1" - flatmap-stream "^0.1.0" - from "^0.1.7" - map-stream "0.0.7" - pause-stream "^0.0.11" - split "^1.0.1" - stream-combiner "^0.2.2" - through "^2.3.8" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" + cross-spawn "^6.0.0" + get-stream "^4.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" p-finally "^1.0.0" @@ -1956,14 +1984,6 @@ find-cache-dir@^2.0.0: make-dir "^1.0.0" pkg-dir "^3.0.0" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -1988,11 +2008,6 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flatmap-stream@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/flatmap-stream/-/flatmap-stream-0.1.1.tgz#d34f39ef3b9aa5a2fc225016bd3adf28ac5ae6ea" - integrity sha512-lAq4tLbm3sidmdCN8G3ExaxH7cUCtP5mgDvrYowsx84dcYkJJ4I28N7gkxA6+YlSXzaGLJYIDEi9WGfXzMiXdw== - for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2027,11 +2042,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -2111,10 +2121,12 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" @@ -2148,7 +2160,7 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== @@ -2182,7 +2194,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= -graceful-fs@^4.1.6: +graceful-fs@^4.1.15, graceful-fs@^4.1.6: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== @@ -2269,13 +2281,20 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1: +has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" +hasha@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" + integrity sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk= + dependencies: + is-stream "^1.0.1" + he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" @@ -2309,11 +2328,24 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^4.0.2, ignore@^4.0.6: +ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.0.2: + version "5.0.5" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.5.tgz#c663c548d6ce186fb33616a8ccb5d46e56bdbbf9" + integrity sha512-kOC8IUb8HSDMVcYrDVezCxpJkzSQWTAzf3olpKM6o9rM5zpojx23O0Fl8Wr4+qJ6ZbPEHqf1fdwev/DS7v7pmA== + +import-fresh@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2376,17 +2408,17 @@ inquirer@^6.1.0: strip-ansi "^4.0.0" through "^2.3.6" -invariant@^2.2.0, invariant@^2.2.2: +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -2561,12 +2593,7 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -2620,55 +2647,55 @@ isstream@0.1.x, isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-lib-coverage@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda" - integrity sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA== +istanbul-lib-coverage@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba" + integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw== -istanbul-lib-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz#918a57b75a0f951d552a08487ca1fa5336433d72" - integrity sha512-ufiZoiJ8CxY577JJWEeFuxXZoMqiKpq/RqZtOAYuQLvlkbJWscq9n3gc4xrCGH9n4pW0qnTxOz1oyMmVtk8E1w== +istanbul-lib-hook@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz#e0e581e461c611be5d0e5ef31c5f0109759916fb" + integrity sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA== dependencies: append-transform "^1.0.0" -istanbul-lib-instrument@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz#b287cbae2b5f65f3567b05e2e29b275eaf92d25e" - integrity sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q== - dependencies: - "@babel/generator" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - istanbul-lib-coverage "^2.0.1" +istanbul-lib-instrument@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971" + integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA== + dependencies: + "@babel/generator" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + istanbul-lib-coverage "^2.0.3" semver "^5.5.0" -istanbul-lib-report@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.1.tgz#64a0a08f42676b9c801b841b9dc3311017c6ae09" - integrity sha512-pXYOWwpDNc5AHIY93WjFTuxzkDOOZ7B8eSa0cBHTmTnKRst5ccc/xBfWu/5wcNJqB6/Qy0lDMhpn+Uy0qyyUjA== +istanbul-lib-report@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4" + integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA== dependencies: - istanbul-lib-coverage "^2.0.1" + istanbul-lib-coverage "^2.0.3" make-dir "^1.3.0" - supports-color "^5.4.0" + supports-color "^6.0.0" -istanbul-lib-source-maps@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz#ce8b45131d8293fdeaa732f4faf1852d13d0a97e" - integrity sha512-30l40ySg+gvBLcxTrLzR4Z2XTRj3HgRCA/p2rnbs/3OiTaoj054gAbuP5DcLOtwqmy4XW8qXBHzrmP2/bQ9i3A== +istanbul-lib-source-maps@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156" + integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ== dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^2.0.1" + debug "^4.1.1" + istanbul-lib-coverage "^2.0.3" make-dir "^1.3.0" rimraf "^2.6.2" source-map "^0.6.1" -istanbul-reports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.0.0.tgz#eb12eddf55724ebc557b32cd77c34d11ed7980c1" - integrity sha512-d2YRSnAOHHb+6vMc5qjJEyPN4VapkgUMhKlMmr3BzKdMDWdJbyYGEi/7m5AjDjkvRRTjs68ttPRZ7W2jBZ31SQ== +istanbul-reports@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.0.tgz#87b8b55cd1901ba1748964c98ddd8900ce306d59" + integrity sha512-azQdSX+dtTtkQEfqq20ICxWi6eOHXyHIgMFw1VOOVi8iIPWeCWRgCyFh/CsBKIhcgskMI8ExXmU7rjXTRCIJ+A== dependencies: handlebars "^4.0.11" @@ -2677,11 +2704,6 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== -js-tokens@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -2769,10 +2791,12 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" jsonfile@^4.0.0: version "4.0.0" @@ -2796,10 +2820,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -just-extend@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-3.0.0.tgz#cee004031eaabf6406da03a7b84e4fe9d78ef288" - integrity sha512-Fu3T6pKBuxjWT/p4DkqGHFRsysc8OauWr4ZRTY9dIx07Y9O0RkoR5jcv28aeD1vuAwhm3nLkDurwLXoALp4DpQ== +just-extend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" + integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -2832,12 +2856,12 @@ klaw@~2.0.0: dependencies: graceful-fs "^4.1.9" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: - invert-kv "^1.0.0" + invert-kv "^2.0.0" lcov-parse@^0.0.10: version "0.0.10" @@ -2943,12 +2967,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= - -lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.5, lodash@^4.3.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -2958,11 +2977,16 @@ log-driver@^1.2.7: resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== -lolex@^2.3.2, lolex@^2.7.5: +lolex@^2.3.2: version "2.7.5" resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== +lolex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-3.0.0.tgz#f04ee1a8aa13f60f1abd7b0e8f4213ec72ec193e" + integrity sha512-hcnW80h3j2lbUfFdMArd5UPA/vxZJ+G8vobd+wg3nVEQA0EigStbYcrG030FJxL6xiDDPEkoMatV9xIh5OecQQ== + loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -2985,16 +3009,23 @@ make-dir@^1.0.0, make-dir@^1.3.0: dependencies: pify "^3.0.0" +make-error@^1.1.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" - integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -3007,24 +3038,14 @@ marked@~0.3.6: resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== -md5-hex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" - integrity sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM= - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= +mem@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.1.0.tgz#aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a" + integrity sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg== dependencies: + map-age-cleaner "^0.1.1" mimic-fn "^1.0.0" + p-is-promise "^2.0.0" memorystream@^0.3.1: version "0.3.1" @@ -3057,7 +3078,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromist@^1.0.1: +micromist@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromist/-/micromist-1.1.0.tgz#a490bcf9a4b918ad9eed8e52d0ec98b9c3b2d3c8" integrity sha512-+CQ76pabE9egniSEdmDuH+j2cYyIBKP97kujG8ZLZyLCRq5ExwtIy4DPHPFrq4jVbhMRBnyjuH50KU9Ohs8QCg== @@ -3081,7 +3102,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -3216,13 +3237,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^1.4.5: - version "1.4.5" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.5.tgz#979a97a19c48d627bb53703726ae8d53ce8d4b3e" - integrity sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw== +nise@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.8.tgz#ce91c31e86cf9b2c4cac49d7fcd7f56779bfd6b0" + integrity sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw== dependencies: - "@sinonjs/formatio" "3.0.0" - just-extend "^3.0.0" + "@sinonjs/formatio" "^3.1.0" + just-extend "^4.0.2" lolex "^2.3.2" path-to-regexp "^1.7.0" text-encoding "^0.6.4" @@ -3243,10 +3264,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.0.0-alpha.12: - version "1.0.0-alpha.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.12.tgz#32e461b879ea76ac674e511d9832cf29da345268" - integrity sha512-VPB4rTPqpVyWKBHbSa4YPFme3+8WHsOSpvbp0Mfj0bWsC8TEjt4HQrLl1hsBDELlp1nB4lflSgSuGTYiuyaP7Q== +node-releases@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.7.tgz#b09a10394d0ed8f7778f72bb861dde68b146303b" + integrity sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA== dependencies: semver "^5.3.0" @@ -3288,17 +3309,17 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-run-all@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.3.tgz#49f15b55a66bb4101664ce270cb18e7103f8f185" - integrity sha512-aOG0N3Eo/WW+q6sUIdzcV2COS8VnTZCmdji0VQIAZF3b+a3YWb0AD0vFIyjKec18A7beLGbaQ5jFTNI2bPt9Cg== +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== dependencies: - ansi-styles "^3.2.0" - chalk "^2.1.0" - cross-spawn "^6.0.4" + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" memorystream "^0.3.1" minimatch "^3.0.4" - ps-tree "^1.1.0" + pidtree "^0.3.0" read-pkg "^3.0.0" shell-quote "^1.6.1" string.prototype.padend "^3.0.0" @@ -3334,36 +3355,35 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nyc@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.0.1.tgz#b61857ed633c803353fc41eeca775d0e1f62034b" - integrity sha512-Op/bjhEF74IMtzMmgYt+ModTeMHoPZzHe4qseUguPBwg5qC6r4rYMBt1L3yRXQIbjUpEqmn24/1xAC/umQGU7w== +nyc@^13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.2.0.tgz#6a4a4b3f5f97b63ab491c665567557debcfa23d6" + integrity sha512-gQBlOqvfpYt9b2PZ7qElrHWt8x4y8ApNfbMBoDPdl3sY4/4RJwCxDGTSqhA9RnaguZjS5nW7taW8oToe86JLgQ== dependencies: archy "^1.0.0" arrify "^1.0.1" - caching-transform "^2.0.0" - convert-source-map "^1.5.1" - debug-log "^1.0.1" + caching-transform "^3.0.1" + convert-source-map "^1.6.0" find-cache-dir "^2.0.0" find-up "^3.0.0" foreground-child "^1.5.6" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.1" - istanbul-lib-hook "^2.0.1" - istanbul-lib-instrument "^2.3.2" - istanbul-lib-report "^2.0.1" - istanbul-lib-source-maps "^2.0.1" - istanbul-reports "^2.0.0" + glob "^7.1.3" + istanbul-lib-coverage "^2.0.3" + istanbul-lib-hook "^2.0.3" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.2" + istanbul-reports "^2.1.0" make-dir "^1.3.0" merge-source-map "^1.1.0" resolve-from "^4.0.0" - rimraf "^2.6.2" + rimraf "^2.6.3" signal-exit "^3.0.2" spawn-wrap "^1.4.2" - test-exclude "^5.0.0" + test-exclude "^5.1.0" uuid "^3.3.2" - yargs "11.1.0" - yargs-parser "^9.0.2" + yargs "^12.0.5" + yargs-parser "^11.1.1" oauth-sign@~0.9.0: version "0.9.0" @@ -3403,7 +3423,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -3447,14 +3467,14 @@ os-homedir@^1.0.0, os-homedir@^1.0.1: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" os-shim@^0.1.2: version "0.1.3" @@ -3483,11 +3503,21 @@ output-file-sync@^2.0.0: is-plain-obj "^1.1.0" mkdirp "^0.5.1" +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" + integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -3526,16 +3556,23 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== -package-hash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" - integrity sha1-eK4ybIngWk2BO2hgGXevBcANKg0= +package-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" + integrity sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA== dependencies: - graceful-fs "^4.1.11" + graceful-fs "^4.1.15" + hasha "^3.0.0" lodash.flattendeep "^4.4.0" - md5-hex "^2.0.0" release-zalgo "^1.0.0" +parent-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" + integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA== + dependencies: + callsites "^3.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -3561,13 +3598,6 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -3588,7 +3618,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.5: +path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== @@ -3619,18 +3649,16 @@ pathval@^1.1.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -pause-stream@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +pidtree@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" + integrity sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3653,12 +3681,12 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= dependencies: - find-up "^1.0.0" + find-up "^2.1.0" pkg-dir@^3.0.0: version "3.0.0" @@ -3667,11 +3695,6 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -3705,13 +3728,6 @@ progress@^2.0.0: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8= -ps-tree@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" - integrity sha1-tCGyQUDWID8e08dplrRCewjowBQ= - dependencies: - event-stream "~3.3.0" - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -3722,6 +3738,14 @@ psl@^1.1.24: resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -3830,7 +3854,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.0: +regexp-tree@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.1.tgz#27b455f9b138ca2e84c090e9aff1ffe2a04d97fa" + integrity sha512-HwRjOquc9QOwKTgbxvZTcddS5mlNlwePMQ3NFL8broajMLD5CXDAqas8Y5yxJH5QtZp5iRor3YCILd5pz71Cgw== + dependencies: + cli-table3 "^0.5.0" + colors "^1.1.2" + yargs "^12.0.5" + +regexpp@^2.0.0, regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== @@ -3917,14 +3950,6 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requizzle@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde" @@ -3932,11 +3957,6 @@ requizzle@~0.2.1: dependencies: underscore "~1.6.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -3947,13 +3967,20 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: +resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== dependencies: path-parse "^1.0.5" +resolve@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" + integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== + dependencies: + path-parse "^1.0.6" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -3982,6 +4009,13 @@ rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.2: dependencies: glob "^7.0.5" +rimraf@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -4085,36 +4119,36 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= -sinon-chai@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.2.0.tgz#ed995e13a8a3cfccec18f218d9b767edc47e0715" - integrity sha512-Z72B4a0l0IQe5uWi9yzcqX/Ml6K9e1Hp03NmkjJnRG3gDsKTX7KvLFZsVUmCaz0eqeXLLK089mwTsP1P1W+DUQ== +sinon-chai@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.3.0.tgz#8084ff99451064910fbe2c2cb8ab540c00b740ea" + integrity sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA== -sinon@^6.3.5: - version "6.3.5" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.3.5.tgz#0f6d6a5b4ebaad1f6e8e019395542d1d02c144a0" - integrity sha512-xgoZ2gKjyVRcF08RrIQc+srnSyY1JDJtxu3Nsz07j1ffjgXoY6uPLf/qja6nDBZgzYYEovVkFryw2+KiZz11xQ== +sinon@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.2.3.tgz#f8bfd956df32ddf592f8c102fd46982366412d8e" + integrity sha512-i6j7sqcLEqTYqUcMV327waI745VASvYuSuQMCjbAwlpAeuCgKZ3LtrjDxAbu+GjNQR0FEDpywtwGCIh8GicNyg== dependencies: - "@sinonjs/commons" "^1.0.2" - "@sinonjs/formatio" "^3.0.0" - "@sinonjs/samsam" "^2.1.2" + "@sinonjs/commons" "^1.3.0" + "@sinonjs/formatio" "^3.1.0" + "@sinonjs/samsam" "^3.0.2" diff "^3.5.0" - lodash.get "^4.4.2" - lolex "^2.7.5" - nise "^1.4.5" + lolex "^3.0.0" + nise "^1.4.8" supports-color "^5.5.0" - type-detect "^4.0.8" slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== +slice-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: @@ -4158,6 +4192,14 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.5.10, source-map-support@^0.5.6: + version "0.5.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" + integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -4168,7 +4210,7 @@ source-map@^0.5.0, source-map@^0.5.6: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -4226,13 +4268,6 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -4267,14 +4302,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stream-combiner@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" - integrity sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg= - dependencies: - duplexer "~0.1.1" - through "~2.3.4" - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -4349,23 +4376,28 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= -supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -table@^4.0.3: - version "4.0.3" - resolved "http://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" - integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== +supports-color@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: - ajv "^6.0.1" - ajv-keywords "^3.0.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" + has-flag "^3.0.0" + +table@^5.0.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/table/-/table-5.2.2.tgz#61d474c9e4d8f4f7062c98c7504acb3c08aa738f" + integrity sha512-f8mJmuu9beQEDkKHLzOv4VxVYlU68NpdzjbGPl69i4Hx0sTopJuNxuzJd17iV2h24dAfa93u794OnDA5jqXvfQ== + dependencies: + ajv "^6.6.1" + lodash "^4.17.11" + slice-ansi "^2.0.0" string-width "^2.1.1" tabtab@^2.2.2: @@ -4400,10 +4432,10 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" -test-exclude@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.0.0.tgz#cdce7cece785e0e829cd5c2b27baf18bc583cfb7" - integrity sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw== +test-exclude@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1" + integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA== dependencies: arrify "^1.0.1" minimatch "^3.0.4" @@ -4420,7 +4452,7 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -through@2, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.4: +through@^2.3.6: version "2.3.8" resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -4482,6 +4514,17 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +ts-node@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.0.2.tgz#9ecdf8d782a0ca4c80d1d641cbb236af4ac1b756" + integrity sha512-MosTrinKmaAcWgO8tqMjMJB22h+sp3Rd1i4fdoWY4mhBDekOwIAKI/bzmRi7IcbCmjquccYg2gcF6NBkLgr0Tw== + dependencies: + arg "^4.1.0" + diff "^3.1.0" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "^3.0.0" + tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" @@ -4506,7 +4549,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -4516,6 +4559,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.3.1.tgz#6de14e1db4b8a006ac535e482c8ba018c55f750b" + integrity sha512-cTmIDFW7O0IHbn1DPYjkiebHxwtCMU+eTy30ZtJNBPF9j2O1ITu5XH2YnBeVRKWHqF+3JQwWJv0Q0aUgX8W7IA== + uglify-js@^3.1.4: version "3.4.9" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" @@ -4690,10 +4738,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" - integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== +write-file-atomic@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" + integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -4711,10 +4759,10 @@ xmlcreate@^1.0.1: resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" integrity sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8= -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= +"y18n@^3.2.1 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" @@ -4726,27 +4774,33 @@ yallist@^3.0.0, yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: - camelcase "^4.1.0" + camelcase "^5.0.0" + decamelize "^1.2.0" -yargs@11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== +yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" + decamelize "^1.2.0" + find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^2.0.0" + os-locale "^3.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 "^9.0.2" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.0.0.tgz#0073c6b56e92aed652fbdfd62431f2d6b9a7a091" + integrity sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==