diff --git a/e2e/__projects__/babel-config/babel-transformer.js b/e2e/__projects__/babel-config/babel-transformer.js deleted file mode 100644 index 91670a97..00000000 --- a/e2e/__projects__/babel-config/babel-transformer.js +++ /dev/null @@ -1,5 +0,0 @@ -const { createTransformer } = require('babel-jest') -module.exports = createTransformer({ - presets: ['@babel/preset-env'], - plugins: ['transform-vue-jsx'] -}) diff --git a/e2e/__projects__/babel-in-package/package.json b/e2e/__projects__/babel-in-package/package.json index 7617a65e..dd9f462f 100644 --- a/e2e/__projects__/babel-in-package/package.json +++ b/e2e/__projects__/babel-in-package/package.json @@ -15,8 +15,7 @@ "@babel/core": "^7.2.2", "@babel/preset-env": "^7.2.3", "@vue/test-utils": "^1.0.0-beta.28", - "babel-core": "^7.0.0-bridge.0", - "jest": "^23.6.0", + "jest": "^24.0.0", "vue-jest": "file:../../../" }, "jest": { @@ -28,9 +27,6 @@ "transform": { "^.+\\.js$": "babel-jest", "^.+\\.vue$": "vue-jest" - }, - "moduleNameMapper": { - "^~?__styles/(.*)$": "/components/styles/$1" } }, "babel": { diff --git a/e2e/__projects__/babel-config/__snapshots__/test.js.snap b/e2e/__projects__/basic/__snapshots__/test.js.snap similarity index 92% rename from e2e/__projects__/babel-config/__snapshots__/test.js.snap rename to e2e/__projects__/basic/__snapshots__/test.js.snap index 253c5213..78f47729 100644 --- a/e2e/__projects__/babel-config/__snapshots__/test.js.snap +++ b/e2e/__projects__/basic/__snapshots__/test.js.snap @@ -140,9 +140,3 @@ __options__.staticRenderFns = staticRenderFns //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhc2ljU3JjLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFQQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFqQkEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdiYXNpYycsXG4gIGNvbXB1dGVkOiB7XG4gICAgaGVhZGluZ0NsYXNzZXM6IGZ1bmN0aW9uIGhlYWRpbmdDbGFzc2VzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkOiB0aGlzLmlzQ3JhenksXG4gICAgICAgIGJsdWU6ICF0aGlzLmlzQ3JhenksXG4gICAgICAgIHNoYWRvdzogdGhpcy5pc0NyYXp5XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtc2c6ICdXZWxjb21lIHRvIFlvdXIgVnVlLmpzIEFwcCcsXG4gICAgICBpc0NyYXp5OiBmYWxzZVxuICAgIH1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiB0b2dnbGVDbGFzcygpIHtcbiAgICAgIHRoaXMuaXNDcmF6eSA9ICF0aGlzLmlzQ3JhenlcbiAgICB9XG4gIH1cbn1cbiJdfQ==" `; - -exports[`processes PostCSS 1`] = `"
"`; - -exports[`processes SCSS using user specified post transforms 1`] = `"
"`; - -exports[`processes SCSS using user specified pre transforms 1`] = `"
"`; diff --git a/e2e/__projects__/babel-config/babel.config.js b/e2e/__projects__/basic/babel.config.js similarity index 100% rename from e2e/__projects__/babel-config/babel.config.js rename to e2e/__projects__/basic/babel.config.js diff --git a/e2e/__projects__/babel-config/components/Basic.vue b/e2e/__projects__/basic/components/Basic.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Basic.vue rename to e2e/__projects__/basic/components/Basic.vue diff --git a/e2e/__projects__/babel-config/components/BasicSrc.html b/e2e/__projects__/basic/components/BasicSrc.html similarity index 100% rename from e2e/__projects__/babel-config/components/BasicSrc.html rename to e2e/__projects__/basic/components/BasicSrc.html diff --git a/e2e/__projects__/babel-config/components/BasicSrc.js b/e2e/__projects__/basic/components/BasicSrc.js similarity index 100% rename from e2e/__projects__/babel-config/components/BasicSrc.js rename to e2e/__projects__/basic/components/BasicSrc.js diff --git a/e2e/__projects__/babel-config/components/BasicSrc.vue b/e2e/__projects__/basic/components/BasicSrc.vue similarity index 100% rename from e2e/__projects__/babel-config/components/BasicSrc.vue rename to e2e/__projects__/basic/components/BasicSrc.vue diff --git a/e2e/__projects__/babel-config/components/Coffee.vue b/e2e/__projects__/basic/components/Coffee.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Coffee.vue rename to e2e/__projects__/basic/components/Coffee.vue diff --git a/e2e/__projects__/babel-config/components/CoffeeScript.vue b/e2e/__projects__/basic/components/CoffeeScript.vue similarity index 100% rename from e2e/__projects__/babel-config/components/CoffeeScript.vue rename to e2e/__projects__/basic/components/CoffeeScript.vue diff --git a/e2e/__projects__/babel-config/components/Constructor.vue b/e2e/__projects__/basic/components/Constructor.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Constructor.vue rename to e2e/__projects__/basic/components/Constructor.vue diff --git a/e2e/__projects__/babel-config/components/FunctionalSFC.vue b/e2e/__projects__/basic/components/FunctionalSFC.vue similarity index 100% rename from e2e/__projects__/babel-config/components/FunctionalSFC.vue rename to e2e/__projects__/basic/components/FunctionalSFC.vue diff --git a/e2e/__projects__/babel-config/components/FunctionalSFCParent.vue b/e2e/__projects__/basic/components/FunctionalSFCParent.vue similarity index 100% rename from e2e/__projects__/babel-config/components/FunctionalSFCParent.vue rename to e2e/__projects__/basic/components/FunctionalSFCParent.vue diff --git a/e2e/__projects__/babel-config/components/Jade.vue b/e2e/__projects__/basic/components/Jade.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Jade.vue rename to e2e/__projects__/basic/components/Jade.vue diff --git a/e2e/__projects__/babel-config/components/Jsx.vue b/e2e/__projects__/basic/components/Jsx.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Jsx.vue rename to e2e/__projects__/basic/components/Jsx.vue diff --git a/e2e/__projects__/babel-config/components/NamedExport.vue b/e2e/__projects__/basic/components/NamedExport.vue similarity index 100% rename from e2e/__projects__/babel-config/components/NamedExport.vue rename to e2e/__projects__/basic/components/NamedExport.vue diff --git a/e2e/__projects__/babel-config/components/NoScript.vue b/e2e/__projects__/basic/components/NoScript.vue similarity index 100% rename from e2e/__projects__/babel-config/components/NoScript.vue rename to e2e/__projects__/basic/components/NoScript.vue diff --git a/e2e/__projects__/babel-config/components/Pug.vue b/e2e/__projects__/basic/components/Pug.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Pug.vue rename to e2e/__projects__/basic/components/Pug.vue diff --git a/e2e/__projects__/babel-config/components/PugBase.pug b/e2e/__projects__/basic/components/PugBase.pug similarity index 100% rename from e2e/__projects__/babel-config/components/PugBase.pug rename to e2e/__projects__/basic/components/PugBase.pug diff --git a/e2e/__projects__/babel-config/components/PugRelativeExtends.vue b/e2e/__projects__/basic/components/PugRelativeExtends.vue similarity index 100% rename from e2e/__projects__/babel-config/components/PugRelativeExtends.vue rename to e2e/__projects__/basic/components/PugRelativeExtends.vue diff --git a/e2e/__projects__/babel-config/components/RenderFunction.vue b/e2e/__projects__/basic/components/RenderFunction.vue similarity index 100% rename from e2e/__projects__/babel-config/components/RenderFunction.vue rename to e2e/__projects__/basic/components/RenderFunction.vue diff --git a/e2e/__projects__/babel-config/components/SourceMapsSrc.vue b/e2e/__projects__/basic/components/SourceMapsSrc.vue similarity index 100% rename from e2e/__projects__/babel-config/components/SourceMapsSrc.vue rename to e2e/__projects__/basic/components/SourceMapsSrc.vue diff --git a/e2e/__projects__/babel-config/components/TypeScript.vue b/e2e/__projects__/basic/components/TypeScript.vue similarity index 100% rename from e2e/__projects__/babel-config/components/TypeScript.vue rename to e2e/__projects__/basic/components/TypeScript.vue diff --git a/e2e/__projects__/babel-config/components/TypeScriptChild.vue b/e2e/__projects__/basic/components/TypeScriptChild.vue similarity index 100% rename from e2e/__projects__/babel-config/components/TypeScriptChild.vue rename to e2e/__projects__/basic/components/TypeScriptChild.vue diff --git a/e2e/__projects__/babel-config/components/coffee.spec.js b/e2e/__projects__/basic/components/coffee.spec.js similarity index 100% rename from e2e/__projects__/babel-config/components/coffee.spec.js rename to e2e/__projects__/basic/components/coffee.spec.js diff --git a/e2e/__projects__/babel-config/components/relative/PugRelativeBase.pug b/e2e/__projects__/basic/components/relative/PugRelativeBase.pug similarity index 100% rename from e2e/__projects__/babel-config/components/relative/PugRelativeBase.pug rename to e2e/__projects__/basic/components/relative/PugRelativeBase.pug diff --git a/e2e/__projects__/babel-config/package.json b/e2e/__projects__/basic/package.json similarity index 72% rename from e2e/__projects__/babel-config/package.json rename to e2e/__projects__/basic/package.json index 6dee783e..4f038db5 100644 --- a/e2e/__projects__/babel-config/package.json +++ b/e2e/__projects__/basic/package.json @@ -1,5 +1,5 @@ { - "name": "babel-config", + "name": "basic", "version": "1.0.0", "main": "index.js", "license": "MIT", @@ -15,14 +15,10 @@ "@babel/core": "^7.2.2", "@babel/preset-env": "^7.2.3", "@vue/test-utils": "^1.0.0-beta.28", - "babel-core": "^7.0.0-bridge.0", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-vue-jsx": "^3.7.0", - "jest": "^23.6.0", - "node-sass": "^4.11.0", - "postcss": "^7.0.13", - "postcss-color-function": "^4.0.1", + "jest": "^24.0.0", "vue-jest": "file:../../../" }, "jest": { @@ -42,11 +38,6 @@ "vue-jest": { "pug": { "basedir": "./" - }, - "transform": { - "^scss$": "./scssTransform.js", - "^pcss|postcss$": "./pcssTransform.js", - "^js$": "./babel-transformer.js" } } } diff --git a/e2e/__projects__/babel-config/test.js b/e2e/__projects__/basic/test.js similarity index 71% rename from e2e/__projects__/babel-config/test.js rename to e2e/__projects__/basic/test.js index dc099d24..98c09349 100644 --- a/e2e/__projects__/babel-config/test.js +++ b/e2e/__projects__/basic/test.js @@ -1,11 +1,8 @@ import { mount } from '@vue/test-utils' import TypeScript from './components/TypeScript.vue' -import Stylus from './components/Stylus.vue' import { resolve } from 'path' import { readFileSync } from 'fs' import jestVue from 'vue-jest' -import Scss from './components/Scss.vue' -import Sass from './components/Sass.vue' import RenderFunction from './components/RenderFunction.vue' import Jade from './components/Jade.vue' import FunctionalSFC from './components/FunctionalSFC.vue' @@ -16,8 +13,6 @@ import Coffee from './components/Coffee.vue' import CoffeeScript from './components/CoffeeScript.vue' import FunctionalSFCParent from './components/FunctionalSFCParent.vue' import NoScript from './components/NoScript.vue' -import Less from './components/Less.vue' -import PostCss from './components/PostCss.vue' import Pug from './components/Pug.vue' import PugRelative from './components/PugRelativeExtends.vue' import Jsx from './components/Jsx.vue' @@ -113,18 +108,6 @@ test('processes .vue file with jade template', () => { expect(wrapper.classes()).toContain('jade') }) -it('processes Less', () => { - const wrapper = mount(Less) - expect(wrapper.is('div')).toBeTruthy() -}) - -it('processes PostCSS', () => { - const wrapper = mount(PostCss) - expect(wrapper.is('section')).toBeTruthy() - expect(wrapper.vm.$style.red).toEqual('red') - expect(wrapper.html()).toMatchSnapshot() -}) - test('processes pug templates', () => { const wrapper = mount(Pug) expect(wrapper.is('div')).toBeTruthy() @@ -142,38 +125,3 @@ test('processes SFC with no template', () => { const wrapper = mount(RenderFunction) expect(wrapper.is('section')).toBe(true) }) - -it('processes Sass', () => { - const wrapper = mount(Sass) - expect(wrapper.vm.$style.a).toEqual('a') - expect(wrapper.vm.$style.b).toEqual('b') - expect(wrapper.vm.$style.c).toEqual('c') - expect(wrapper.vm.$style.light).toBeUndefined() -}) - -it('processes SCSS', () => { - const wrapper = mount(Scss) - expect(wrapper.vm.$style.a).toEqual('a') - expect(wrapper.vm.$style.b).toEqual('b') - expect(wrapper.vm.$style.c).toEqual('c') -}) - -test('processes SCSS using user specified post transforms', () => { - const wrapper = mount(Scss) - expect(wrapper.vm.$style.light.a).toBeUndefined() - expect(wrapper.vm.$style.light.f).toEqual('f') - expect(wrapper.vm.$style.dark.f).toEqual('f') - expect(wrapper.vm.$style.dark.g).toEqual('g') - expect(wrapper.html()).toMatchSnapshot() -}) - -test('processes SCSS using user specified pre transforms', () => { - const wrapper = mount(Scss) - expect(wrapper.vm.$style.g).toEqual('g') - expect(wrapper.html()).toMatchSnapshot() -}) - -test('process Stylus', () => { - const wrapper = mount(Stylus) - expect(wrapper.vm).toBeTruthy() -}) diff --git a/e2e/__projects__/babel-config/tsconfig.json b/e2e/__projects__/basic/tsconfig.json similarity index 100% rename from e2e/__projects__/babel-config/tsconfig.json rename to e2e/__projects__/basic/tsconfig.json diff --git a/e2e/__projects__/custom-transformers/babel.config.js b/e2e/__projects__/custom-transformers/babel.config.js new file mode 100644 index 00000000..7db9b6f5 --- /dev/null +++ b/e2e/__projects__/custom-transformers/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['@babel/preset-env'] +} diff --git a/e2e/__projects__/babel-config/components/Scss.vue b/e2e/__projects__/custom-transformers/components/Scss.vue similarity index 62% rename from e2e/__projects__/babel-config/components/Scss.vue rename to e2e/__projects__/custom-transformers/components/Scss.vue index 18daa220..6b88eb24 100644 --- a/e2e/__projects__/babel-config/components/Scss.vue +++ b/e2e/__projects__/custom-transformers/components/Scss.vue @@ -1,26 +1,18 @@ - - - - diff --git a/e2e/__projects__/custom-transformers/package.json b/e2e/__projects__/custom-transformers/package.json new file mode 100644 index 00000000..013e5f18 --- /dev/null +++ b/e2e/__projects__/custom-transformers/package.json @@ -0,0 +1,47 @@ +{ + "name": "custom-transformers", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true, + "scripts": { + "test": "jest --no-cache --coverage test.js" + }, + "dependencies": { + "vue": "^2.5.21", + "vue-template-compiler": "^2.5.21" + }, + "devDependencies": { + "@babel/core": "^7.2.2", + "@babel/preset-env": "^7.2.3", + "@vue/test-utils": "^1.0.0-beta.28", + "jest": "^24.0.0", + "node-sass": "^4.11.0", + "postcss": "^7.0.13", + "postcss-color-function": "^4.0.1", + "vue-jest": "file:../../../" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "vue" + ], + "transform": { + "^.+\\.js$": "babel-jest", + "^.+\\.vue$": "vue-jest" + }, + "moduleNameMapper": { + "^~?__styles/(.*)$": "/components/styles/$1" + }, + "globals": { + "vue-jest": { + "transform": { + "^scss$": "./scss-transformer.js", + "^pcss|postcss$": "./pcss-transformer.js", + "^js$": "./babel-transformer.js" + } + } + } + } +} diff --git a/e2e/__projects__/babel-config/pcssTransform.js b/e2e/__projects__/custom-transformers/pcss-transformer.js similarity index 100% rename from e2e/__projects__/babel-config/pcssTransform.js rename to e2e/__projects__/custom-transformers/pcss-transformer.js diff --git a/e2e/__projects__/babel-config/scssTransform.js b/e2e/__projects__/custom-transformers/scss-transformer.js similarity index 53% rename from e2e/__projects__/babel-config/scssTransform.js rename to e2e/__projects__/custom-transformers/scss-transformer.js index 608a4ef8..b2ca2848 100644 --- a/e2e/__projects__/babel-config/scssTransform.js +++ b/e2e/__projects__/custom-transformers/scss-transformer.js @@ -1,21 +1,22 @@ const cssExtract = require('extract-from-css') module.exports = { - postProcess: function postProcess(src, filepath, config, attrs) { + preprocess: function preprocess(src, filepath, config, attrs) { + return `${src}\n .g{width: 10px}` + }, + postprocess: function postprocess(src, filepath, config, attrs) { const cssNames = cssExtract.extractClasses(src) const obj = {} for (let i = 0, l = cssNames.length; i < l; i++) { obj[cssNames[i]] = cssNames[i] } - if (attrs.themed) { - return { - light: obj, - dark: obj - } + if (!attrs.themed) { + return JSON.stringify(obj) } - return obj - }, - preProcess: function postProcess(src, filepath, config, attrs) { - return `${src}\n .g{width: 10px}` + + return JSON.stringify({ + light: obj, + dark: obj + }) } } diff --git a/e2e/__projects__/custom-transformers/test.js b/e2e/__projects__/custom-transformers/test.js new file mode 100644 index 00000000..8794fe21 --- /dev/null +++ b/e2e/__projects__/custom-transformers/test.js @@ -0,0 +1,15 @@ +import { mount } from '@vue/test-utils' +import Scss from './components/Scss.vue' + +test('processes SCSS using user specified post transforms', () => { + const wrapper = mount(Scss) + expect(wrapper.vm.$style.light.a).toBeUndefined() + expect(wrapper.vm.$style.light.f).toEqual('f') + expect(wrapper.vm.$style.dark.f).toEqual('f') + expect(wrapper.vm.$style.dark.g).toEqual('g') +}) + +test('processes SCSS using user specified pre transforms', () => { + const wrapper = mount(Scss) + expect(wrapper.vm.$style.g).toEqual('g') +}) diff --git a/e2e/__projects__/style/babel.config.js b/e2e/__projects__/style/babel.config.js new file mode 100644 index 00000000..7db9b6f5 --- /dev/null +++ b/e2e/__projects__/style/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['@babel/preset-env'] +} diff --git a/e2e/__projects__/babel-config/components/Less.vue b/e2e/__projects__/style/components/Less.vue similarity index 62% rename from e2e/__projects__/babel-config/components/Less.vue rename to e2e/__projects__/style/components/Less.vue index 0ae5c4ee..2731b5dc 100644 --- a/e2e/__projects__/babel-config/components/Less.vue +++ b/e2e/__projects__/style/components/Less.vue @@ -3,11 +3,7 @@ - - diff --git a/e2e/__projects__/babel-config/components/PostCss.vue b/e2e/__projects__/style/components/PostCss.vue similarity index 58% rename from e2e/__projects__/babel-config/components/PostCss.vue rename to e2e/__projects__/style/components/PostCss.vue index 7563b947..6aa351c7 100644 --- a/e2e/__projects__/babel-config/components/PostCss.vue +++ b/e2e/__projects__/style/components/PostCss.vue @@ -1,18 +1,18 @@ - diff --git a/e2e/__projects__/babel-config/components/Sass.vue b/e2e/__projects__/style/components/Sass.vue similarity index 100% rename from e2e/__projects__/babel-config/components/Sass.vue rename to e2e/__projects__/style/components/Sass.vue diff --git a/e2e/__projects__/style/components/Scss.vue b/e2e/__projects__/style/components/Scss.vue new file mode 100644 index 00000000..fd801f8a --- /dev/null +++ b/e2e/__projects__/style/components/Scss.vue @@ -0,0 +1,23 @@ + + + + + + + diff --git a/e2e/__projects__/babel-config/components/Stylus.vue b/e2e/__projects__/style/components/Stylus.vue similarity index 73% rename from e2e/__projects__/babel-config/components/Stylus.vue rename to e2e/__projects__/style/components/Stylus.vue index f1c951e8..7a790344 100644 --- a/e2e/__projects__/babel-config/components/Stylus.vue +++ b/e2e/__projects__/style/components/Stylus.vue @@ -2,21 +2,16 @@
- - diff --git a/e2e/__projects__/babel-config/components/relative/resource.styl b/e2e/__projects__/style/components/relative/resource.styl similarity index 100% rename from e2e/__projects__/babel-config/components/relative/resource.styl rename to e2e/__projects__/style/components/relative/resource.styl diff --git a/e2e/__projects__/babel-config/components/styles/sass-a.sass b/e2e/__projects__/style/components/styles/sass-a.sass similarity index 100% rename from e2e/__projects__/babel-config/components/styles/sass-a.sass rename to e2e/__projects__/style/components/styles/sass-a.sass diff --git a/e2e/__projects__/babel-config/components/styles/sass-b.sass b/e2e/__projects__/style/components/styles/sass-b.sass similarity index 100% rename from e2e/__projects__/babel-config/components/styles/sass-b.sass rename to e2e/__projects__/style/components/styles/sass-b.sass diff --git a/e2e/__projects__/babel-config/components/styles/scss-a.scss b/e2e/__projects__/style/components/styles/scss-a.scss similarity index 100% rename from e2e/__projects__/babel-config/components/styles/scss-a.scss rename to e2e/__projects__/style/components/styles/scss-a.scss diff --git a/e2e/__projects__/babel-config/components/styles/scss-b.scss b/e2e/__projects__/style/components/styles/scss-b.scss similarity index 100% rename from e2e/__projects__/babel-config/components/styles/scss-b.scss rename to e2e/__projects__/style/components/styles/scss-b.scss diff --git a/e2e/__projects__/style/package.json b/e2e/__projects__/style/package.json new file mode 100644 index 00000000..2dc31967 --- /dev/null +++ b/e2e/__projects__/style/package.json @@ -0,0 +1,49 @@ +{ + "name": "style", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true, + "scripts": { + "test": "jest --no-cache test.js" + }, + "dependencies": { + "vue": "^2.5.21", + "vue-template-compiler": "^2.5.21" + }, + "devDependencies": { + "@babel/core": "^7.2.2", + "@babel/preset-env": "^7.2.3", + "@vue/test-utils": "^1.0.0-beta.28", + "jest": "^24.0.0", + "node-sass": "^4.11.0", + "postcss": "^7.0.13", + "vue-jest": "file:../../../" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "vue" + ], + "transform": { + "^.+\\.js$": "babel-jest", + "^.+\\.vue$": "vue-jest" + }, + "moduleNameMapper": { + "^~?__styles/(.*)$": "/components/styles/$1" + }, + "globals": { + "vue-jest": { + "resources": { + "scss": [ + "variables.scss" + ], + "less": [ + "variables.less" + ] + } + } + } + } +} diff --git a/e2e/__projects__/style/test.js b/e2e/__projects__/style/test.js new file mode 100644 index 00000000..a5280a20 --- /dev/null +++ b/e2e/__projects__/style/test.js @@ -0,0 +1,41 @@ +import { mount } from '@vue/test-utils' +import Stylus from './components/Stylus.vue' +import Scss from './components/Scss.vue' +import Sass from './components/Sass.vue' +import Less from './components/Less.vue' +import PostCss from './components/PostCss.vue' + +test('processes Less', () => { + const wrapper = mount(Less) + expect(wrapper.is('div')).toBeTruthy() + expect(wrapper.vm.$style.a).toEqual('a') +}) + +test('processes PostCSS', () => { + const wrapper = mount(PostCss) + expect(wrapper.is('section')).toBeTruthy() + expect(wrapper.vm.$style.a).toEqual('a') + expect(wrapper.vm.$style.b).toEqual('b') +}) + +test('processes Sass', () => { + const wrapper = mount(Sass) + expect(wrapper.vm.$style.a).toEqual('a') + expect(wrapper.vm.$style.b).toEqual('b') + expect(wrapper.vm.$style.c).toEqual('c') + expect(wrapper.vm.$style.light).toBeUndefined() +}) + +test('processes SCSS with resources', () => { + const wrapper = mount(Scss) + expect(wrapper.vm.$style.a).toEqual('a') + expect(wrapper.vm.$style.b).toEqual('b') + expect(wrapper.vm.$style.c).toEqual('c') +}) + +test('process Stylus', () => { + const wrapper = mount(Stylus) + expect(wrapper.vm).toBeTruthy() + expect(wrapper.vm.css.a).toEqual('a') + expect(wrapper.vm.$style.b).toEqual('b') +}) diff --git a/e2e/__projects__/style/variables.less b/e2e/__projects__/style/variables.less new file mode 100644 index 00000000..7b9ea3f9 --- /dev/null +++ b/e2e/__projects__/style/variables.less @@ -0,0 +1 @@ +@primary-color: "red"; diff --git a/e2e/__projects__/style/variables.scss b/e2e/__projects__/style/variables.scss new file mode 100644 index 00000000..d7cf8edb --- /dev/null +++ b/e2e/__projects__/style/variables.scss @@ -0,0 +1 @@ +$primary-color: #333; diff --git a/e2e/test-runner.js b/e2e/test-runner.js index d9f562c8..384dd6b0 100644 --- a/e2e/test-runner.js +++ b/e2e/test-runner.js @@ -43,7 +43,7 @@ function runTest(dir) { run('npm install --silent') log('Running tests') - run('npm run test') + run('npm run test') success(`(${dir}) Complete`) } diff --git a/lib/compilers/sass-compiler.js b/lib/compilers/sass-compiler.js deleted file mode 100644 index f993bc1d..00000000 --- a/lib/compilers/sass-compiler.js +++ /dev/null @@ -1,47 +0,0 @@ -const ensureRequire = require('../ensure-require') -const getVueJestConfig = require('../utils').getVueJestConfig -const warn = require('../utils').warn - -const applyModuleNameMapper = require('./helpers/module-name-mapper-helper') - -/** - * This module is meant to compile sass - * - * @param {String} content - the content of the sass string that should be compiled - * @param {String} filePath - the path of the file holding the sass - * @param {Object} jestConfig - the complete jest config - * @returns {String} styles - the compiled sass - */ -module.exports = (content, filePath, jestConfig = {}) => { - const vueJestConfig = getVueJestConfig(jestConfig) - - ensureRequire('sass', ['node-sass']) - const sass = require('node-sass') - - try { - return sass - .renderSync({ - data: content, - outputStyle: 'compressed', - indentedSyntax: true, - importer: (url, prev, done) => ({ - file: applyModuleNameMapper( - url, - prev === 'stdin' ? filePath : prev, - jestConfig, - 'sass' - ) - }) - }) - .css.toString() - } catch (err) { - if (!vueJestConfig.hideStyleWarn) { - warn( - `There was an error rendering the SASS in ${filePath}. SASS is fully supported by vue-jest. Still some features might throw errors. Webpack aliases are a common cause of errors. If you use Webpack aliases, please use jest's suggested way via moduleNameMapper which is supported.` - ) - warn(`Error while compiling styles: ${err}`) - } - } - - return '' -} diff --git a/lib/compilers/scss-compiler.js b/lib/compilers/scss-compiler.js deleted file mode 100644 index 4832305b..00000000 --- a/lib/compilers/scss-compiler.js +++ /dev/null @@ -1,45 +0,0 @@ -const ensureRequire = require('../ensure-require') -const getVueJestConfig = require('../utils').getVueJestConfig -const warn = require('../utils').warn - -const applyModuleNameMapper = require('./helpers/module-name-mapper-helper') - -/** - * This module is meant to compile scss - * - * @param {String} content - the content of the scss string that should be compiled - * @param {String} filePath - the path of the file holding the scss - * @param {Object} jestConfig - the complete jest config - * @returns {String} styles - the compiled scss - */ -module.exports = (content, filePath, jestConfig = {}) => { - const vueJestConfig = getVueJestConfig(jestConfig) - - ensureRequire('scss', ['node-sass']) - const sass = require('node-sass') - try { - return sass - .renderSync({ - data: content, - outputStyle: 'compressed', - importer: (url, prev, done) => ({ - file: applyModuleNameMapper( - url, - prev === 'stdin' ? filePath : prev, - jestConfig, - 'scss' - ) - }) - }) - .css.toString() - } catch (err) { - if (!vueJestConfig.hideStyleWarn) { - warn( - `There was an error rendering the SCSS in ${filePath}. SCSS is fully supported by vue-jest. Still some features might throw errors. Webpack aliases are a common cause of errors. If you use Webpack aliases, please use jest's suggested way via moduleNameMapper which is supported.` - ) - warn(`Error while compiling styles: ${err}`) - } - } - - return '' -} diff --git a/lib/compilers/stylus-compiler.js b/lib/compilers/stylus-compiler.js deleted file mode 100644 index 95b278cd..00000000 --- a/lib/compilers/stylus-compiler.js +++ /dev/null @@ -1,7 +0,0 @@ -const stylus = require('stylus') -const path = require('path') - -module.exports = (content, filePath, jestConfig) => - stylus.render(content, { - paths: [path.dirname(filePath), process.cwd()] - }) diff --git a/lib/compilers/typescript-compiler.js b/lib/compilers/typescript-compiler.js index d4ff8cbc..c2d47834 100644 --- a/lib/compilers/typescript-compiler.js +++ b/lib/compilers/typescript-compiler.js @@ -10,9 +10,7 @@ module.exports = function compileTypescript(scriptContent, filePath, config) { ensureRequire('typescript', ['typescript']) const typescript = require('typescript') const vueJestConfig = getVueJestConfig(config) - const { - tsconfig - } = getTsJestConfig(config) + const { tsconfig } = getTsJestConfig(config) const babelOptions = getBabelOptions(filePath) const res = typescript.transpileModule(scriptContent, tsconfig) @@ -30,12 +28,17 @@ module.exports = function compileTypescript(scriptContent, filePath, config) { plugins: [require('@babel/plugin-transform-modules-commonjs')] } } - const customTransformer = getCustomTransformer(vueJestConfig['transform'], 'js'); - const transformer = customTransformer.process ? customTransformer : babelJest.createTransformer( - Object.assign(inlineBabelOptions, { - inputSourceMap - }) + const customTransformer = getCustomTransformer( + vueJestConfig['transform'], + 'js' ) + const transformer = customTransformer.process + ? customTransformer + : babelJest.createTransformer( + Object.assign(inlineBabelOptions, { + inputSourceMap + }) + ) return transformer.process(res.outputText, filePath, config) -} \ No newline at end of file +} diff --git a/lib/compilers/helpers/module-name-mapper-helper.js b/lib/module-name-mapper-helper.js similarity index 99% rename from lib/compilers/helpers/module-name-mapper-helper.js rename to lib/module-name-mapper-helper.js index 05f78706..fde572c1 100644 --- a/lib/compilers/helpers/module-name-mapper-helper.js +++ b/lib/module-name-mapper-helper.js @@ -35,7 +35,6 @@ module.exports = function applyModuleNameMapper( fileType = '' ) { if (!jestConfig.moduleNameMapper) return source - // Extract the moduleNameMapper settings from the jest config. TODO: In case of development via babel@7, somehow the jestConfig.moduleNameMapper might end up being an Array. After a proper upgrade to babel@7 we should probably fix this. const module = Array.isArray(jestConfig.moduleNameMapper) ? jestConfig.moduleNameMapper diff --git a/lib/process-style.js b/lib/process-style.js index 440c9753..2c26c108 100644 --- a/lib/process-style.js +++ b/lib/process-style.js @@ -1,34 +1,12 @@ const path = require('path') const fs = require('fs') -const getVueJestConfig = require('./utils').getVueJestConfig -const transformContent = require('./utils').transformContent const cssExtract = require('extract-from-css') -const isUnassistedLang = require('./utils').isUnassistedLang -const getCssTransformer = require('./utils').getCustomTransformer - -/** - * Validates and returns custom css transformers. - * - * @param {Object} cssTransform - object containing module/path of custom css transformers - * @param {String} lang - language - * @returns {Object} transformer - custom css transformer object - */ -function isValidTransformer(transformer = {}, lang) { - const langSupported = isUnassistedLang(lang) - const validTransformer = transformer.process || transformer.postProcess || transformer.preProcess - if ((transformer && (langSupported && transformer.process)) || (!langSupported && validTransformer)) { - return transformer - } - return {} -} +const getVueJestConfig = require('./utils').getVueJestConfig +const compileStyle = require('@vue/component-compiler-utils').compileStyle +const applyModuleNameMapper = require('./module-name-mapper-helper') +const getCustomTransformer = require('./utils').getCustomTransformer +const logResultErrors = require('./utils').logResultErrors -/** - * Resolves content of css resources from file path - * - * @param {Object} resources - global resource files included vue-jest configuration - * @param {String} lang - language - * @returns {String} content - content of css resources - */ function getGlobalResources(resources, lang) { let globalResources = '' if (resources && resources[lang]) { @@ -41,12 +19,6 @@ function getGlobalResources(resources, lang) { return globalResources } -/** - * Extract cass names from CSS code. - * - * @param {String} cssCode - css code - * @returns {Object} obj - object with key & value as class names of the input css code - */ function extractClassMap(cssCode) { const cssNames = cssExtract.extractClasses(cssCode) const cssMap = {} @@ -56,76 +28,71 @@ function extractClassMap(cssCode) { return cssMap } -function processStyleByLang( - content, - config, - filePath, - lang, - transformer = {}, - attrs -) { - const cssContent = getGlobalResources(config.resources, lang) + content - const preProcessedContent = transformContent( - cssContent, - filePath, - config, - transformer.preProcess, - attrs - ) - const processedContent = require('./compilers/' + lang + '-compiler')( - preProcessedContent, - filePath, - config - ) - return transformContent(processedContent, filePath, config, transformer.postProcess, attrs) -} - -function transformStyles(content, filePath, config, lang, transformer = {}, attrs) { - if (transformer.process) { - return transformContent(content, filePath, config, transformer.process, attrs) - } else if (!isUnassistedLang(lang)) { - let cssCode = content - switch (lang) { - case 'styl': - case 'stylus': - cssCode = processStyleByLang(content, config, filePath, 'stylus', transformer, attrs) - break - case 'scss': - cssCode = processStyleByLang(content, config, filePath, lang, transformer, attrs) - break - case 'sass': - cssCode = processStyleByLang(content, config, filePath, lang, transformer, attrs) - break +function getPreprocessOptions(lang, filePath, jestConfig) { + if (lang === 'scss' || lang === 'sass') { + return { + importer: (url, prev, done) => ({ + file: applyModuleNameMapper( + url, + prev === 'stdin' ? filePath : prev, + jestConfig, + lang + ) + }) + } + } + if (lang === 'styl' || lang === 'stylus') { + return { + paths: [path.dirname(filePath), process.cwd()] } - return cssCode } - return {} } -module.exports = function processStyle(stylePart, filePath, jestConfig = {}) { - const vueJestConfig = getVueJestConfig(jestConfig) - const { - content, - lang, - attrs - } = stylePart - if (!stylePart || vueJestConfig.experimentalCSSCompile === false) { - return {} +module.exports = function processStyle(stylePart, filename, config = {}) { + const vueJestConfig = getVueJestConfig(config) + + if (vueJestConfig.experimentalCSSCompile === false || !stylePart.content) { + return '{}' } - - const cssTransformer = isValidTransformer(getCssTransformer(vueJestConfig['transform'], lang), lang) - const cssCode = transformStyles( - content, - filePath, - jestConfig, - lang, - cssTransformer, - attrs + let content = + getGlobalResources(vueJestConfig.resources, stylePart.lang) + + stylePart.content + + const transformer = getCustomTransformer( + vueJestConfig['transform'], + stylePart.lang ) - if (typeof cssCode === 'string') { - return extractClassMap(cssCode) + // pre process + if (transformer.preprocess) { + content = transformer.preprocess(content, filename, config, stylePart.attrs) + } + + // transform + if (transformer.process) { + content = transformer.process(content, filename, config, stylePart.attrs) + } else { + const preprocessOptions = getPreprocessOptions( + stylePart.lang, + filename, + config + ) + const result = compileStyle({ + source: content, + filename, + preprocessLang: stylePart.lang, + preprocessOptions, + scoped: false + }) + logResultErrors(result) + content = result.code + } + + // post process + if (transformer.postprocess) { + return transformer.postprocess(content, filename, config, stylePart.attrs) } - return cssCode -} \ No newline at end of file + + return JSON.stringify(extractClassMap(content)) +} diff --git a/lib/process.js b/lib/process.js index c055e8c2..e228f049 100644 --- a/lib/process.js +++ b/lib/process.js @@ -8,19 +8,15 @@ const fs = require('fs') const path = require('path') const join = path.join const getVueJestConfig = require('./utils').getVueJestConfig -const throwError = require('./utils').throwError -const warn = require('./utils').warn -const isUnassistedLang = require('./utils').isUnassistedLang +const logResultErrors = require('./utils').logResultErrors const getCustomTransformer = require('./utils').getCustomTransformer const stripInlineSourceMap = require('./utils').stripInlineSourceMap -const transformContent = require('./utils').transformContent +const transformContent = require('./utils').transformContent const splitRE = /\r?\n/g const babelJest = require('babel-jest') const compilerUtils = require('@vue/component-compiler-utils') -const chalk = require('chalk') const convertSourceMap = require('convert-source-map') - /** * Transforms content using custom transformer. * @@ -38,15 +34,15 @@ function processScriptBytransforms( transforms = {}, attrs ) { - const preProcessedContent = transformContent( + const preprocessedContent = transformContent( content, filePath, config, - transforms.preProcess, + transforms.preprocess, attrs ) const processedContent = transformContent( - preProcessedContent, + preprocessedContent, filePath, config, transforms.process, @@ -56,7 +52,7 @@ function processScriptBytransforms( processedContent, filePath, config, - transforms.postProcess, + transforms.postprocess, attrs ) } @@ -83,7 +79,8 @@ function processScript(scriptPart, filePath, config) { return processScriptBytransforms( content, filePath, - config, { + config, + { process: compileTypescript }, attrs @@ -92,7 +89,8 @@ function processScript(scriptPart, filePath, config) { return processScriptBytransforms( content, filePath, - config, { + config, + { process: compileCoffeeScript }, attrs @@ -102,11 +100,9 @@ function processScript(scriptPart, filePath, config) { return processScriptBytransforms(content, filePath, config, babelJest, attrs) } -let shouldLogStyleWarn = true - -module.exports = function (src, filePath, config) { +module.exports = function(src, filePath, config) { const vueJestConfig = getVueJestConfig(config) - const parts = compilerUtils.parse({ + const descriptor = compilerUtils.parse({ source: src, compiler: VueTemplateCompiler, filename: filePath @@ -114,15 +110,15 @@ module.exports = function (src, filePath, config) { let scriptSrcContent = src let sourceMapPath = filePath - if (parts.script && parts.script.src) { - const externalScrPath = join(filePath, '..', parts.script.src) + if (descriptor.script && descriptor.script.src) { + const externalScrPath = join(filePath, '..', descriptor.script.src) - parts.script.content = fs.readFileSync(externalScrPath, 'utf8') - scriptSrcContent = parts.script.content + descriptor.script.content = fs.readFileSync(externalScrPath, 'utf8') + scriptSrcContent = descriptor.script.content sourceMapPath = externalScrPath } - const result = processScript(parts.script, filePath, config) + const result = processScript(descriptor.script, filePath, config) let compiledScriptContent = result.code compiledScriptContent = stripInlineSourceMap(compiledScriptContent) const inputMap = result.map @@ -151,60 +147,58 @@ module.exports = function (src, filePath, config) { `? exports.default.options\n` + `: exports.default\n` - if (parts.template) { - parts.template.filename = filePath - if (parts.template.src) { - parts.template.filename = join(filePath, '..', parts.template.src) - parts.template.content = fs.readFileSync(parts.template.filename, 'utf8') + if (descriptor.template) { + descriptor.template.filename = filePath + if (descriptor.template.src) { + descriptor.template.filename = join( + filePath, + '..', + descriptor.template.src + ) + descriptor.template.content = fs.readFileSync( + descriptor.template.filename, + 'utf8' + ) } const templateResult = compilerUtils.compileTemplate({ - source: parts.template.content, + source: descriptor.template.content, compiler: VueTemplateCompiler, - filename: parts.template.filename, - isFunctional: parts.template.attrs.functional, - preprocessLang: parts.template.lang, - preprocessOptions: vueJestConfig[parts.template.lang] + filename: descriptor.template.filename, + isFunctional: descriptor.template.attrs.functional, + preprocessLang: descriptor.template.lang, + preprocessOptions: vueJestConfig[descriptor.template.lang] }) - if (templateResult.errors.length) { - templateResult.errors.forEach(function (msg) { - console.error('\n' + chalk.red(msg) + '\n') - }) - throwError('Vue template compilation failed') - } + logResultErrors(templateResult) output += `${templateResult.code}\n` + `__options__.render = render\n` + `__options__.staticRenderFns = staticRenderFns\n` - if (parts.template.attrs.functional) { + if (descriptor.template.attrs.functional) { output += '__options__.functional = true\n' output += '__options__._compiled = true\n' } if (map) { const beforeLines = output.split(splitRE).length - addTemplateMapping(compiledScriptContent, parts, output, map, beforeLines) + addTemplateMapping( + compiledScriptContent, + descriptor, + output, + map, + beforeLines + ) } } - if (Array.isArray(parts.styles) && parts.styles.length > 0) { - if ( - parts.styles.some(ast => isUnassistedLang(ast.lang)) && - shouldLogStyleWarn - ) { - !vueJestConfig.hideStyleWarn && - warn('Less and PostCSS are not currently compiled by vue-jest') - shouldLogStyleWarn = false - } - - const styleStr = parts.styles + if (Array.isArray(descriptor.styles) && descriptor.styles.length > 0) { + const styleStr = descriptor.styles .filter(ast => ast.module) .map(ast => { const styleObj = processStyle(ast, filePath, config) - const moduleName = ast.module === true ? '$style' : ast.module return ( @@ -212,14 +206,14 @@ module.exports = function (src, filePath, config) { ` this['${moduleName}'] = {};\n` + `}\n` + `this['${moduleName}'] = Object.assign(\n` + - `this['${moduleName}'], ${JSON.stringify(styleObj)});\n` + `this['${moduleName}'], ${styleObj});\n` ) }) .filter(_ => _) .join('') if (styleStr.length !== 0) { - if (parts.template && parts.template.attrs.functional) { + if (descriptor.template && descriptor.template.attrs.functional) { output += `;(function() {\n` + ` var originalRender = __options__.render\n` + @@ -248,4 +242,4 @@ module.exports = function (src, filePath, config) { code: output, map } -} \ No newline at end of file +} diff --git a/lib/utils.js b/lib/utils.js index 2591860f..c1bd16a3 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -10,13 +10,13 @@ const fetchTransformer = function fetchTransformer(key, obj) { return obj[exp] } } - return null; + return null } -const resolvePath = function isUnassistedLang(pathToResolve) { - return /^(\.\.\/|\.\/|\/)/.test(pathToResolve) ? - path.resolve(process.cwd(), pathToResolve) : - pathToResolve +const resolvePath = function resolvePath(pathToResolve) { + return /^(\.\.\/|\.\/|\/)/.test(pathToResolve) + ? path.resolve(process.cwd(), pathToResolve) + : pathToResolve } const info = function info(msg) { @@ -27,7 +27,13 @@ const warn = function warn(msg) { console.warn(chalk.red('\n[vue-jest]: ' + msg + '\n')) } -const transformContent = function transformContent(content, filePath, config, transformer, attrs) { +const transformContent = function transformContent( + content, + filePath, + config, + transformer, + attrs +) { if (!transformer) { return content } @@ -44,10 +50,7 @@ const getVueJestConfig = function getVueJestConfig(jestConfig) { (jestConfig && jestConfig.globals && jestConfig.globals['vue-jest']) || {} ) } -const getBabelOptions = function loadBabelOptions( - filename, - options = {} -) { +const getBabelOptions = function loadBabelOptions(filename, options = {}) { const opts = Object.assign(options, { caller: { name: 'vue-jest', @@ -59,23 +62,36 @@ const getBabelOptions = function loadBabelOptions( return loadPartialConfig(opts).options } -const isUnassistedLang = function isUnassistedLang(lang) { - return /^less|pcss|postcss/.test(lang) -} - const getTsJestConfig = function getTsJestConfig(config) { const tr = createTransformer() return tr.configsFor(config) } -const getCustomTransformer = function getCustomTransformer(transform = {}, lang) { +function isValidTransformer(transformer) { + return ( + isFunction(transformer.process) || + isFunction(transformer.postprocess) || + isFunction(transformer.preprocess) + ) +} + +const isFunction = fn => typeof fn === 'function' + +const getCustomTransformer = function getCustomTransformer( + transform = {}, + lang +) { let transformerPath = fetchTransformer(lang, transform) if (transformerPath) { const transformer = require(resolvePath(transformerPath)) - const validTransformer = transformer.process || transformer.postProcess || transformer.preProcess - if (transformer && validTransformer) { - return transformer + + if (!isValidTransformer(transformer)) { + throwError( + `transformer must contain at least one process, preprocess, or ` + + `postprocess method` + ) } + return transformer } return {} } @@ -84,16 +100,25 @@ const throwError = function error(msg) { throw new Error('\n[vue-jest] Error: ' + msg + '\n') } -const stripInlineSourceMap = function (str) { +const stripInlineSourceMap = function(str) { return str.slice(0, str.indexOf('//# sourceMappingURL')) } +const logResultErrors = result => { + if (result.errors.length) { + result.errors.forEach(function(msg) { + console.error('\n' + chalk.red(msg) + '\n') + }) + throwError('Vue template compilation failed') + } +} + module.exports = { stripInlineSourceMap, throwError, + logResultErrors, getCustomTransformer, getTsJestConfig, - isUnassistedLang, getBabelOptions, getVueJestConfig, transformContent, @@ -101,4 +126,4 @@ module.exports = { warn, resolvePath, fetchTransformer -} \ No newline at end of file +} diff --git a/package.json b/package.json index 5d8dd0cb..81d7a5c9 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,8 @@ "hamljs": "^0.6.2", "husky": "^1.1.4", "jade": "^1.11.0", - "jest": "^23.6.0", + "jest": "^24.0.0", + "less": "^3.9.0", "lint-staged": "^8.0.5", "node-sass": "^4.7.2", "prettier": "^1.15.2", @@ -60,8 +61,7 @@ }, "peerDependencies": { "@babel/core": "7.x", - "babel-core": "^6.25.0 || ^7.x", - "jest": "^23.x", + "jest": "^24.x", "vue": "^2.x", "vue-template-compiler": "^2.x" }, diff --git a/yarn.lock b/yarn.lock index ab525da1..e4eff20c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,14 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": +"@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" integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.2.2": +"@babel/core@^7.1.0", "@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== @@ -29,6 +29,17 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/generator@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.0.tgz#f663838cd7b542366de3aa608a657b8ccb2a99eb" + integrity sha512-dZTwMvTgWfhmibq4V9X+LMf6Bgl7zAodRn9PvcPdhlzFMbvUutx74dbEv7Atz3ToeEpevYEJtAwfxq/bDCzHWg== + dependencies: + "@babel/types" "^7.3.0" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + "@babel/generator@^7.2.2": version "7.2.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc" @@ -213,6 +224,11 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/parser@^7.0.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.1.tgz#8f4ffd45f779e6132780835ffa7a215fa0b2d181" + integrity sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA== + "@babel/parser@^7.2.2", "@babel/parser@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489" @@ -274,7 +290,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.2.0": +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@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== @@ -550,7 +566,7 @@ js-levenshtein "^1.1.3" semver "^5.3.0" -"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": +"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.1.2", "@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== @@ -559,7 +575,7 @@ "@babel/parser" "^7.2.2" "@babel/types" "^7.2.2" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8" integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw== @@ -583,6 +599,15 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.0.tgz#61dc0b336a93badc02bf5f69c4cd8e1353f2ffc0" + integrity sha512-QkFPw68QqWU1/RVPyBe8SO7lXbPfjtqAxRYQKpFpaB8yMq7X2qAqfwK5LKoQufEkSmO5NQ70O6Kc3Afk03RwXw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + "@iamstarkov/listr-update-renderer@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e" @@ -948,12 +973,12 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - integrity sha1-126/jKlNJ24keja61EpLdKthGZE= +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== dependencies: - default-require-extensions "^1.0.0" + default-require-extensions "^2.0.0" aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0: version "1.2.0" @@ -1101,7 +1126,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== -async@^2.1.4, async@^2.5.0: +async@^2.5.0, async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== @@ -1137,37 +1162,12 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-generator@^6.18.0, babel-generator@^6.26.0: +babel-generator@^6.18.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== @@ -1181,14 +1181,6 @@ babel-generator@^6.18.0, babel-generator@^6.26.0: source-map "^0.5.7" trim-right "^1.0.1" -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-jest@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" @@ -1197,6 +1189,14 @@ babel-jest@^23.6.0: babel-plugin-istanbul "^4.1.6" babel-preset-jest "^23.2.0" +babel-jest@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.0.0.tgz#8a0c767f03f4a595fb921afdab13ff126edd00da" + integrity sha512-YGKRbZUjoRmNIAyG7x4wYxUyHvHPFpYXj6Mx1A5cslhaQOUgP/+LF3wtFgMuOQkIpjbVNBufmOnVY0QVwB5v9Q== + dependencies: + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.0.0" + babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" @@ -1214,11 +1214,25 @@ babel-plugin-istanbul@^4.1.6: istanbul-lib-instrument "^1.10.1" test-exclude "^4.2.1" +babel-plugin-istanbul@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.0.tgz#6892f529eff65a3e2d33d87dc5888ffa2ecd4a30" + integrity sha512-CLoXPRSUWiR8yao8bShqZUIC6qLfZVVY3X1wj+QPNXu0wfmrRRfarh1LYy+dYMVI+bDj0ghy3tuqFFRFZmL1Nw== + dependencies: + find-up "^3.0.0" + istanbul-lib-instrument "^3.0.0" + test-exclude "^5.0.0" + babel-plugin-jest-hoist@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= +babel-plugin-jest-hoist@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.0.0.tgz#3adf030b6fd67e4311479a54b24077bdfc226ec9" + integrity sha512-ipefE7YWNyRNVaV/MonUb/I5nef53ZRFR74P9meMGmJxqt8s1BJmfhw11YeIMbcjXN4fxtWUaskZZe8yreXE1Q== + babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" @@ -1232,18 +1246,13 @@ babel-preset-jest@^23.2.0: babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= +babel-preset-jest@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.0.0.tgz#d23782e5e036cff517859640a80960bd628bd82b" + integrity sha512-ECMMOLvNDCmsn3geBa3JkwzylcfpThMpAdfreONQm8EmXcs4tXUpXZDQPxiIMg7nMobTuAC2zDGIKrbrBXW2Vg== dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.0.0" babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" @@ -1253,7 +1262,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= @@ -1264,7 +1273,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: +babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= @@ -1279,7 +1288,7 @@ babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: +babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= @@ -1821,6 +1830,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + cmd-shim@^2.0.2, cmd-shim@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" @@ -1919,6 +1933,11 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" +compare-versions@^3.2.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" + integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== + component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -2181,7 +2200,7 @@ conventional-commits-parser@^3.0.0: through2 "^2.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0, convert-source-map@^1.4.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== @@ -2205,7 +2224,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: version "2.6.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042" integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg== @@ -2374,7 +2393,7 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@*, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0: +debug@*, debug@^4.0.0, debug@^4.0.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== @@ -2445,12 +2464,12 @@ deepmerge@3.0.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.0.0.tgz#ca7903b34bfa1f8c2eab6779280775a411bfc6ba" integrity sha512-a8z8bkgHsAML+uHLqmMS83HHlpy3PvZOOuiTQqaa3wu8ZVg3h0hqHk6aCsGdOnZV2XMM/FRimNGjUh0KCcmHBw== -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= dependencies: - strip-bom "^2.0.0" + strip-bom "^3.0.0" defaults@^1.0.3: version "1.0.3" @@ -2540,10 +2559,10 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== +diff-sequences@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.0.0.tgz#cdf8e27ed20d8b8d3caccb4e0c0d8fe31a173013" + integrity sha512-46OkIuVGBBnrC0soO/4LHu5LHGHx0uhP65OVz8XOrAJpqiCB2aVIuESvjI1F9oqebuvY8lekS1pt6TN7vt7qsw== dir-glob@^2.0.0: version "2.0.0" @@ -2676,7 +2695,7 @@ err-code@^1.0.0: resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= -errno@~0.1.7: +errno@^0.1.1, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -3011,17 +3030,16 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expect@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" - integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== +expect@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.0.0.tgz#71f71d88a4202746fc79849bb4c6498008b5ef03" + integrity sha512-qDHRU4lGsme0xjg8dXp/RQhvO9XIo9FWqVo7dTHDPBwzy25JGEHAWFsnpmRYErB50tgi/6euo3ir5e/kF9LUTA== dependencies: ansi-styles "^3.2.0" - jest-diff "^23.6.0" - jest-get-type "^22.1.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" + jest-get-type "^24.0.0" + jest-matcher-utils "^24.0.0" + jest-message-util "^24.0.0" + jest-regex-util "^24.0.0" extend-shallow@^2.0.1: version "2.0.1" @@ -3157,7 +3175,7 @@ filename-regex@^2.0.0: resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= -fileset@^2.0.2: +fileset@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= @@ -3650,7 +3668,7 @@ hamljs@^0.6.2: resolved "https://registry.yarnpkg.com/hamljs/-/hamljs-0.6.2.tgz#7b7116cf6dbe7278e42b3f6ef8725a33e177c8e3" integrity sha1-e3EWz22+cnjkKz9u+HJaM+F3yOM= -handlebars@^4.0.2, handlebars@^4.0.3: +handlebars@^4.0.11, handlebars@^4.0.2: version "4.0.12" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA== @@ -3681,11 +3699,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3749,14 +3762,6 @@ he@^1.1.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hook-std@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-1.2.0.tgz#b37d533ea5f40068fe368cb4d022ee1992588c27" @@ -3866,6 +3871,11 @@ ignore@^5.0.2: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45" integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g== +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -3894,12 +3904,12 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: - pkg-dir "^2.0.0" + pkg-dir "^3.0.0" resolve-cwd "^2.0.0" imurmurhash@^0.1.4: @@ -4175,10 +4185,10 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-generator-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" - integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= +is-generator-fn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e" + integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g== is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" @@ -4400,36 +4410,48 @@ issue-parser@^3.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" -istanbul-api@^1.3.1: - version "1.3.7" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" - integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== - dependencies: - async "^2.1.4" - fileset "^2.0.2" - istanbul-lib-coverage "^1.2.1" - istanbul-lib-hook "^1.2.2" - istanbul-lib-instrument "^1.10.2" - istanbul-lib-report "^1.1.5" - istanbul-lib-source-maps "^1.2.6" - istanbul-reports "^1.5.1" - js-yaml "^3.7.0" - mkdirp "^0.5.1" +istanbul-api@^2.0.8: + version "2.1.0" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.0.tgz#37ab0c2c3e83065462f5254b94749d6157846c4e" + integrity sha512-+Ygg4t1StoiNlBGc6x0f8q/Bv26FbZqP/+jegzfNpU7Q8o+4ZRoJxJPhBkgE/UonpAjtxnE4zCZIyJX+MwLRMQ== + dependencies: + async "^2.6.1" + compare-versions "^3.2.1" + fileset "^2.0.3" + istanbul-lib-coverage "^2.0.3" + istanbul-lib-hook "^2.0.3" + istanbul-lib-instrument "^3.1.0" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.2" + istanbul-reports "^2.1.0" + js-yaml "^3.12.0" + make-dir "^1.3.0" + minimatch "^3.0.4" once "^1.4.0" -istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: +istanbul-lib-coverage@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== -istanbul-lib-hook@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" - integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== +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.2, 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.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 "^0.4.0" + append-transform "^1.0.0" -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: +istanbul-lib-instrument@^1.10.1: version "1.10.2" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== @@ -4442,33 +4464,58 @@ istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: istanbul-lib-coverage "^1.2.1" semver "^5.3.0" -istanbul-lib-report@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" - integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== +istanbul-lib-instrument@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz#b5f066b2a161f75788be17a9d556f40a0cf2afc9" + integrity sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ== dependencies: - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" + "@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.1" + semver "^5.5.0" -istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" - integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0: + 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: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" + "@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-reports@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" - integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== +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: - handlebars "^4.0.3" + istanbul-lib-coverage "^2.0.3" + make-dir "^1.3.0" + supports-color "^6.0.0" + +istanbul-lib-source-maps@^3.0.1, 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 "^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.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" jade@^1.11.0: version "1.11.0" @@ -4491,290 +4538,303 @@ java-properties@^0.2.9: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-0.2.10.tgz#2551560c25fa1ad94d998218178f233ad9b18f60" integrity sha512-CpKJh9VRNhS+XqZtg1UMejETGEiqwCGDC/uwPEEQwc2nfdbSm73SIE29TplG2gLYuBOOTNDqxzG6A9NtEPLt0w== -jest-changed-files@^23.4.2: - version "23.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" - integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== +jest-changed-files@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.0.0.tgz#c02c09a8cc9ca93f513166bc773741bd39898ff7" + integrity sha512-nnuU510R9U+UX0WNb5XFEcsrMqriSiRLeO9KWDFgPrpToaQm60prfQYpxsXigdClpvNot5bekDY440x9dNGnsQ== dependencies: + execa "^1.0.0" throat "^4.0.0" -jest-cli@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" - integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== +jest-cli@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.0.0.tgz#691fd4f7bce2574c1865db6844a43b56e60ce2a4" + integrity sha512-mElnFipLaGxo1SiQ1CLvuaz3eX07MJc4HcyKrApSJf8xSdY1/EwaHurKwu1g2cDiwIgY8uHj7UcF5OYbtiBOWg== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" - graceful-fs "^4.1.11" - import-local "^1.0.0" - is-ci "^1.0.10" - istanbul-api "^1.3.1" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-instrument "^1.10.1" - istanbul-lib-source-maps "^1.2.4" - jest-changed-files "^23.4.2" - jest-config "^23.6.0" - jest-environment-jsdom "^23.4.0" - jest-get-type "^22.1.0" - jest-haste-map "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - jest-resolve-dependencies "^23.6.0" - jest-runner "^23.6.0" - jest-runtime "^23.6.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - jest-watcher "^23.4.0" - jest-worker "^23.2.0" - micromatch "^2.3.11" + graceful-fs "^4.1.15" + import-local "^2.0.0" + is-ci "^2.0.0" + istanbul-api "^2.0.8" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-source-maps "^3.0.1" + jest-changed-files "^24.0.0" + jest-config "^24.0.0" + jest-environment-jsdom "^24.0.0" + jest-get-type "^24.0.0" + jest-haste-map "^24.0.0" + jest-message-util "^24.0.0" + jest-regex-util "^24.0.0" + jest-resolve-dependencies "^24.0.0" + jest-runner "^24.0.0" + jest-runtime "^24.0.0" + jest-snapshot "^24.0.0" + jest-util "^24.0.0" + jest-validate "^24.0.0" + jest-watcher "^24.0.0" + jest-worker "^24.0.0" + micromatch "^3.1.10" node-notifier "^5.2.1" - prompts "^0.1.9" + p-each-series "^1.0.0" + pirates "^4.0.0" + prompts "^2.0.1" realpath-native "^1.0.0" rimraf "^2.5.4" - slash "^1.0.0" + slash "^2.0.0" string-length "^2.0.0" - strip-ansi "^4.0.0" + strip-ansi "^5.0.0" which "^1.2.12" - yargs "^11.0.0" + yargs "^12.0.2" -jest-config@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" - integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== +jest-config@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.0.0.tgz#878abe03c060c74a0ec30d3cd5dd1897873e030e" + integrity sha512-9/soqWL5YSq1ZJtgVJ5YYPCL1f9Mi2lVCp5+OXuYBOaN8DHSFRCSWip0rQ6N+mPTOEIAlCvcUH8zaPOwK4hePg== dependencies: - babel-core "^6.0.0" - babel-jest "^23.6.0" + "@babel/core" "^7.1.0" + babel-jest "^24.0.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^23.4.0" - jest-environment-node "^23.4.0" - jest-get-type "^22.1.0" - jest-jasmine2 "^23.6.0" - jest-regex-util "^23.3.0" - jest-resolve "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - micromatch "^2.3.11" - pretty-format "^23.6.0" + jest-environment-jsdom "^24.0.0" + jest-environment-node "^24.0.0" + jest-get-type "^24.0.0" + jest-jasmine2 "^24.0.0" + jest-regex-util "^24.0.0" + jest-resolve "^24.0.0" + jest-util "^24.0.0" + jest-validate "^24.0.0" + micromatch "^3.1.10" + pretty-format "^24.0.0" + realpath-native "^1.0.2" + uuid "^3.3.2" -jest-diff@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" - integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== +jest-diff@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.0.0.tgz#a3e5f573dbac482f7d9513ac9cfa21644d3d6b34" + integrity sha512-XY5wMpRaTsuMoU+1/B2zQSKQ9RdE9gsLkGydx3nvApeyPijLA8GtEvIcPwISRCer+VDf9W1mStTYYq6fPt8ryA== dependencies: chalk "^2.0.1" - diff "^3.2.0" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" + diff-sequences "^24.0.0" + jest-get-type "^24.0.0" + pretty-format "^24.0.0" -jest-docblock@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" - integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= +jest-docblock@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.0.0.tgz#54d77a188743e37f62181a91a01eb9222289f94e" + integrity sha512-KfAKZ4SN7CFOZpWg4i7g7MSlY0M+mq7K0aMqENaG2vHuhC9fc3vkpU/iNN9sOus7v3h3Y48uEjqz3+Gdn2iptA== dependencies: detect-newline "^2.1.0" -jest-each@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" - integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== +jest-each@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.0.0.tgz#10987a06b21c7ffbfb7706c89d24c52ed864be55" + integrity sha512-gFcbY4Cu55yxExXMkjrnLXov3bWO3dbPAW7HXb31h/DNWdNc/6X8MtxGff8nh3/MjkF9DpVqnj0KsPKuPK0cpA== dependencies: chalk "^2.0.1" - pretty-format "^23.6.0" + jest-get-type "^24.0.0" + jest-util "^24.0.0" + pretty-format "^24.0.0" -jest-environment-jsdom@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" - integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= +jest-environment-jsdom@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.0.0.tgz#5affa0654d6e44cd798003daa1a8701dbd6e4d11" + integrity sha512-1YNp7xtxajTRaxbylDc2pWvFnfDTH5BJJGyVzyGAKNt/lEULohwEV9zFqTgG4bXRcq7xzdd+sGFws+LxThXXOw== dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" + jest-mock "^24.0.0" + jest-util "^24.0.0" jsdom "^11.5.1" -jest-environment-node@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" - integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= +jest-environment-node@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.0.0.tgz#330948980656ed8773ce2e04eb597ed91e3c7190" + integrity sha512-62fOFcaEdU0VLaq8JL90TqwI7hLn0cOKOl8vY2n477vRkCJRojiRRtJVRzzCcgFvs6gqU97DNqX5R0BrBP6Rxg== dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" + jest-mock "^24.0.0" + jest-util "^24.0.0" jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== -jest-haste-map@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" - integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== +jest-get-type@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.0.0.tgz#36e72930b78e33da59a4f63d44d332188278940b" + integrity sha512-z6/Eyf6s9ZDGz7eOvl+fzpuJmN9i0KyTt1no37/dHu8galssxz5ZEgnc1KaV8R31q1khxyhB4ui/X5ZjjPk77w== + +jest-haste-map@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.0.0.tgz#e9ef51b2c9257384b4d6beb83bd48c65b37b5e6e" + integrity sha512-CcViJyUo41IQqttLxXVdI41YErkzBKbE6cS6dRAploCeutePYfUimWd3C9rQEWhX0YBOQzvNsC0O9nYxK2nnxQ== dependencies: fb-watchman "^2.0.0" - graceful-fs "^4.1.11" + graceful-fs "^4.1.15" invariant "^2.2.4" - jest-docblock "^23.2.0" - jest-serializer "^23.0.1" - jest-worker "^23.2.0" - micromatch "^2.3.11" - sane "^2.0.0" + jest-serializer "^24.0.0" + jest-util "^24.0.0" + jest-worker "^24.0.0" + micromatch "^3.1.10" + sane "^3.0.0" -jest-jasmine2@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" - integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== +jest-jasmine2@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.0.0.tgz#7d87be9d8b32d34ac5980ad646b7ae7f99e33a19" + integrity sha512-q1xEV9KHM0bgfBj3yrkrjRF5kxpNDkWPCwVfSPN1DC+pD6J5wrM9/u2BgzhKhALXiaZUUhJ+f/OcEC0Gwpw90A== dependencies: - babel-traverse "^6.0.0" + "@babel/traverse" "^7.1.0" chalk "^2.0.1" co "^4.6.0" - expect "^23.6.0" - is-generator-fn "^1.0.0" - jest-diff "^23.6.0" - jest-each "^23.6.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - pretty-format "^23.6.0" - -jest-leak-detector@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" - integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== - dependencies: - pretty-format "^23.6.0" - -jest-matcher-utils@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" - integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== + expect "^24.0.0" + is-generator-fn "^2.0.0" + jest-each "^24.0.0" + jest-matcher-utils "^24.0.0" + jest-message-util "^24.0.0" + jest-snapshot "^24.0.0" + jest-util "^24.0.0" + pretty-format "^24.0.0" + +jest-leak-detector@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.0.0.tgz#78280119fd05ee98317daee62cddb3aa537a31c6" + integrity sha512-ZYHJYFeibxfsDSKowjDP332pStuiFT2xfc5R67Rjm/l+HFJWJgNIOCOlQGeXLCtyUn3A23+VVDdiCcnB6dTTrg== + dependencies: + pretty-format "^24.0.0" + +jest-matcher-utils@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.0.0.tgz#fc9c41cfc49b2c3ec14e576f53d519c37729d579" + integrity sha512-LQTDmO+aWRz1Tf9HJg+HlPHhDh1E1c65kVwRFo5mwCVp5aQDzlkz4+vCvXhOKFjitV2f0kMdHxnODrXVoi+rlA== dependencies: chalk "^2.0.1" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" + jest-diff "^24.0.0" + jest-get-type "^24.0.0" + pretty-format "^24.0.0" -jest-message-util@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" - integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= +jest-message-util@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.0.0.tgz#a07a141433b2c992dbaec68d4cbfe470ba289619" + integrity sha512-J9ROJIwz/IeC+eV1XSwnRK4oAwPuhmxEyYx1+K5UI+pIYwFZDSrfZaiWTdq0d2xYFw4Xiu+0KQWsdsQpgJMf3Q== dependencies: - "@babel/code-frame" "^7.0.0-beta.35" + "@babel/code-frame" "^7.0.0" chalk "^2.0.1" - micromatch "^2.3.11" - slash "^1.0.0" + micromatch "^3.1.10" + slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" - integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= +jest-mock@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.0.0.tgz#9a4b53e01d66a0e780f7d857462d063e024c617d" + integrity sha512-sQp0Hu5fcf5NZEh1U9eIW2qD0BwJZjb63Yqd98PQJFvf/zzUTBoUAwv/Dc/HFeNHIw1f3hl/48vNn+j3STaI7A== -jest-regex-util@^23.3.0: - version "23.3.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" - integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= +jest-regex-util@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.0.0.tgz#4feee8ec4a358f5bee0a654e94eb26163cb9089a" + integrity sha512-Jv/uOTCuC+PY7WpJl2mpoI+WbY2ut73qwwO9ByJJNwOCwr1qWhEW2Lyi2S9ZewUdJqeVpEBisdEVZSI+Zxo58Q== -jest-resolve-dependencies@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" - integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== +jest-resolve-dependencies@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.0.0.tgz#86540611d660bdcaab8b87d069247d3832811d94" + integrity sha512-CJGS5ME2g5wL16o3Y22ga9p5ntNT5CUYX40/0lYj9ic9jB5YHm/qMKTgbFt9kowEBiMOFpXy15dWtBTEU54+zg== dependencies: - jest-regex-util "^23.3.0" - jest-snapshot "^23.6.0" + jest-regex-util "^24.0.0" + jest-snapshot "^24.0.0" -jest-resolve@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" - integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== +jest-resolve@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.0.0.tgz#0206cfe842324f8796b01f706f4075309bf7b405" + integrity sha512-uKDGyJqNaBQKox1DJzm27CJobADsIMNgZGusXhtYzl98LKu/fKuokkRsd7EBVgoDA80HKHc3LOPKuYLryMu1vw== dependencies: browser-resolve "^1.11.3" chalk "^2.0.1" realpath-native "^1.0.0" -jest-runner@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" - integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== +jest-runner@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.0.0.tgz#00b280d52d23286111a8ed0362ed958283f7f0e3" + integrity sha512-XefXm2XimKtwdfi2am4364GfCmLD1tOjiRtDexY65diCXt4Rw23rxj2wiW7p9s8Nh9dzJQNmrheqZ5rzvn762g== dependencies: exit "^0.1.2" - graceful-fs "^4.1.11" - jest-config "^23.6.0" - jest-docblock "^23.2.0" - jest-haste-map "^23.6.0" - jest-jasmine2 "^23.6.0" - jest-leak-detector "^23.6.0" - jest-message-util "^23.4.0" - jest-runtime "^23.6.0" - jest-util "^23.4.0" - jest-worker "^23.2.0" + graceful-fs "^4.1.15" + jest-config "^24.0.0" + jest-docblock "^24.0.0" + jest-haste-map "^24.0.0" + jest-jasmine2 "^24.0.0" + jest-leak-detector "^24.0.0" + jest-message-util "^24.0.0" + jest-runtime "^24.0.0" + jest-util "^24.0.0" + jest-worker "^24.0.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" - integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== +jest-runtime@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.0.0.tgz#bc80756f5458c2c8e4db86f44b687ff692026c13" + integrity sha512-UeVoTGiij8upcqfyBlJvImws7IGY+ZWtgVpt1h4VmVbyei39tVGia/20VoP3yvodS6FdjTwBj+JzVNuoh/9UTw== dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.1.6" + "@babel/core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" exit "^0.1.2" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.11" - jest-config "^23.6.0" - jest-haste-map "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - jest-resolve "^23.6.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - micromatch "^2.3.11" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.0.0" + jest-haste-map "^24.0.0" + jest-message-util "^24.0.0" + jest-regex-util "^24.0.0" + jest-resolve "^24.0.0" + jest-snapshot "^24.0.0" + jest-util "^24.0.0" + jest-validate "^24.0.0" + micromatch "^3.1.10" realpath-native "^1.0.0" - slash "^1.0.0" + slash "^2.0.0" strip-bom "3.0.0" - write-file-atomic "^2.1.0" - yargs "^11.0.0" + write-file-atomic "^2.4.2" + yargs "^12.0.2" -jest-serializer@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" - integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= +jest-serializer@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.0.0.tgz#522c44a332cdd194d8c0531eb06a1ee5afb4256b" + integrity sha512-9FKxQyrFgHtx3ozU+1a8v938ILBE7S8Ko3uiAVjT8Yfi2o91j/fj81jacCQZ/Ihjiff/VsUCXVgQ+iF1XdImOw== -jest-snapshot@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" - integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== +jest-snapshot@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.0.0.tgz#fb447a753a3271660b3d89d068698014eb14c414" + integrity sha512-7OcrckVnfzVYxSGPYl2Sn+HyT30VpDv+FMBFbQxSQ6DV2K9Js6vYT6d4SBPKp6DfDiEL2txNssJBxtlvF+Dymw== dependencies: - babel-types "^6.0.0" + "@babel/types" "^7.0.0" chalk "^2.0.1" - jest-diff "^23.6.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-resolve "^23.6.0" + jest-diff "^24.0.0" + jest-matcher-utils "^24.0.0" + jest-message-util "^24.0.0" + jest-resolve "^24.0.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^23.6.0" + pretty-format "^24.0.0" semver "^5.5.0" -jest-util@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" - integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= +jest-util@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.0.0.tgz#fd38fcafd6dedbd0af2944d7a227c0d91b68f7d6" + integrity sha512-QxsALc4wguYS7cfjdQSOr5HTkmjzkHgmZvIDkcmPfl1ib8PNV8QUWLwbKefCudWS0PRKioV+VbQ0oCUPC691fQ== dependencies: - callsites "^2.0.0" + callsites "^3.0.0" chalk "^2.0.1" - graceful-fs "^4.1.11" - is-ci "^1.0.10" - jest-message-util "^23.4.0" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + jest-message-util "^24.0.0" mkdirp "^0.5.1" - slash "^1.0.0" + slash "^2.0.0" source-map "^0.6.0" -jest-validate@^23.5.0, jest-validate@^23.6.0: +jest-validate@^23.5.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== @@ -4784,29 +4844,42 @@ jest-validate@^23.5.0, jest-validate@^23.6.0: leven "^2.1.0" pretty-format "^23.6.0" -jest-watcher@^23.4.0: - version "23.4.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" - integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= +jest-validate@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.0.0.tgz#aa8571a46983a6538328fef20406b4a496b6c020" + integrity sha512-vMrKrTOP4BBFIeOWsjpsDgVXATxCspC9S1gqvbJ3Tnn/b9ACsJmteYeVx9830UMV28Cob1RX55x96Qq3Tfad4g== + dependencies: + camelcase "^5.0.0" + chalk "^2.0.1" + jest-get-type "^24.0.0" + leven "^2.1.0" + pretty-format "^24.0.0" + +jest-watcher@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.0.0.tgz#20d44244d10b0b7312410aefd256c1c1eef68890" + integrity sha512-GxkW2QrZ4YxmW1GUWER05McjVDunBlKMFfExu+VsGmXJmpej1saTEKvONdx5RJBlVdpPI5x6E3+EDQSIGgl53g== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" + jest-util "^24.0.0" string-length "^2.0.0" -jest-worker@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" - integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= +jest-worker@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.0.0.tgz#3d3483b077bf04f412f47654a27bba7e947f8b6d" + integrity sha512-s64/OThpfQvoCeHG963MiEZOAAxu8kHsaL/rCMF7lpdzo7vgF0CtPml9hfguOMgykgH/eOm4jFP4ibfHLruytg== dependencies: merge-stream "^1.0.1" + supports-color "^6.1.0" -jest@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" - integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== +jest@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.0.0.tgz#b8e2c8e6274e1092c7f56e57762a1fdc7800201e" + integrity sha512-1Z2EblP4BnERbWZGtipGb9zjHDq7nCHgCY7V57F5SYaFRJV4DE1HKoOz+CRC5OrAThN9OVhRlUhTzsTFArg2iQ== dependencies: - import-local "^1.0.0" - jest-cli "^23.6.0" + import-local "^2.0.0" + jest-cli "^24.0.0" js-base64@^2.1.8: version "2.5.0" @@ -4833,7 +4906,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0: +js-yaml@^3.12.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== @@ -4925,11 +4998,6 @@ json5@2.x, json5@^2.1.0: dependencies: minimist "^1.2.0" -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4992,10 +5060,10 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -kleur@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" - integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== +kleur@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.1.tgz#4f5b313f5fa315432a400f19a24db78d451ede62" + integrity sha512-P3kRv+B+Ra070ng2VKQqW4qW7gd/v3iD8sy/zOdcYRsfiD+QBokQNOps/AfP6Hr48cBhIIBFWckB9aO+IZhrWg== latest-version@^3.0.0: version "3.1.0" @@ -5033,6 +5101,22 @@ left-pad@^1.3.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== +less@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/less/-/less-3.9.0.tgz#b7511c43f37cf57dc87dffd9883ec121289b1474" + integrity sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w== + dependencies: + clone "^2.1.2" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.4.1" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.83.0" + source-map "~0.6.0" + leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -5416,7 +5500,7 @@ macos-release@^2.0.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.0.0.tgz#7dddf4caf79001a851eb4fba7fb6034f251276ab" integrity sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A== -make-dir@^1.0.0: +make-dir@^1.0.0, make-dir@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== @@ -5652,6 +5736,11 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "~1.37.0" +mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mime@^2.0.3: version "2.4.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" @@ -5881,6 +5970,11 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + node-notifier@^5.2.1: version "5.3.0" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" @@ -6412,7 +6506,7 @@ os-name@^3.0.0: macos-release "^2.0.0" windows-release "^3.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -6430,6 +6524,13 @@ p-defer@^1.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= + dependencies: + p-reduce "^1.0.0" + p-filter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-1.0.0.tgz#629d317150209c8fd508ba137713ef4bb920e9db" @@ -6631,7 +6732,7 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -6646,7 +6747,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.6: +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== @@ -6701,6 +6802,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pirates@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.0.tgz#850b18781b4ac6ec58a43c9ed9ec5fe6796addbd" + integrity sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-conf@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" @@ -6716,13 +6824,6 @@ pkg-dir@^1.0.0: dependencies: find-up "^1.0.0" -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 "^2.1.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -6803,7 +6904,15 @@ pretty-format@^23.6.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -private@^0.1.6, private@^0.1.8: +pretty-format@^24.0.0: + version "24.0.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.0.0.tgz#cb6599fd73ac088e37ed682f61291e4678f48591" + integrity sha512-LszZaKG665djUcqg5ZQq+XzezHLKrxsA86ZABTozp+oNhkdqa+tG2dX4qa6ERl5c/sRDrAa3lHmwnvKoP+OG/g== + dependencies: + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + +private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -6838,7 +6947,7 @@ promise@^6.0.1: dependencies: asap "~1.0.0" -promise@^7.0.1: +promise@^7.0.1, promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== @@ -6852,13 +6961,13 @@ promise@~2.0: dependencies: is-promise "~1" -prompts@^0.1.9: - version "0.1.14" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" - integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== +prompts@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.1.tgz#201b3718b4276fb407f037db48c0029d6465245c" + integrity sha512-8lnEOSIGQbgbnO47+13S+H204L8ISogGulyi0/NNEFAQ9D1VMNTrJ9SBX2Ra03V4iPn/zt36HQMndRYkaPoWiQ== dependencies: - kleur "^2.0.1" - sisteransi "^0.1.1" + kleur "^3.0.0" + sisteransi "^1.0.0" promzard@^0.3.0: version "0.3.0" @@ -7238,7 +7347,7 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -realpath-native@^1.0.0: +realpath-native@^1.0.0, realpath-native@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560" integrity sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g== @@ -7389,7 +7498,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@^2.74.0, request@^2.87.0, request@^2.88.0: +request@^2.74.0, request@^2.83.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -7551,14 +7660,15 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^2.0.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" - integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= +sane@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-3.1.0.tgz#995193b7dc1445ef1fe41ddfca2faf9f111854c6" + integrity sha512-G5GClRRxT1cELXfdAq7UKtUsv8q/ZC5k8lQGmjEm4HcAl3HzBy68iglyNCmw4+0tiXPCBZntslHlRhbnsSws+Q== dependencies: anymatch "^2.0.0" capture-exit "^1.2.0" exec-sh "^0.2.0" + execa "^1.0.0" fb-watchman "^2.0.0" micromatch "^3.1.4" minimist "^1.1.1" @@ -7725,10 +7835,10 @@ simple-git@^1.85.0: dependencies: debug "^4.0.1" -sisteransi@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" - integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== +sisteransi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" + integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== slash@^1.0.0: version "1.0.0" @@ -7855,13 +7965,6 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - source-map-support@^0.5.6: version "0.5.9" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" @@ -7889,7 +7992,7 @@ source-map@0.4.x, source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -8189,13 +8292,6 @@ 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@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.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" @@ -8203,6 +8299,13 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" +supports-color@^6.0.0, supports-color@^6.1.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: + has-flag "^3.0.0" + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -8263,6 +8366,16 @@ test-exclude@^4.2.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" +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== + dependencies: + arrify "^1.0.1" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^1.0.1" + text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -8894,7 +9007,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0: +write-file-atomic@^2.0.0, write-file-atomic@^2.3.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== @@ -8903,6 +9016,15 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write-file-atomic@^2.4.2: + 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" + signal-exit "^3.0.2" + write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" @@ -8999,7 +9121,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^12.0.0: +yargs@^12.0.0, yargs@^12.0.2: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==