ff-stream-web

git clone git://archive.git.mtrnord.blog/MTRNord/ff-stream-web.git
Log | Files | Refs | README | LICENSE

commit c47984d9fa917274ce4de87e72d35146ac4939d2
parent fb36e0fb732da65351df5aa0cedf56d9ddaadc1c
Author: Vladimir Kutepov <frenzzy.man@gmail.com>
Date:   Thu,  9 Feb 2017 22:17:02 +0300

Use autoprefixer for babel: compile less (#1115)

- Integrate autoprefixer for Babel that can automatically determine the Babel plugins to compile only for your supported environments: [`babel-preset-env`](https://github.com/babel/babel-preset-env)
- Move `browserslist` to `package.json` for `autprefixer`, `stylelint` and `babel-preset-env`
- Replace `babel-preset-stage-0` with `babel-preset-stage-2` to avoid using [unstable features](https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets-) in production
- Remove `babel-plugin-transform-runtime` dependency in favor of `babel-polyfills`
- Remove `extend` dependency
Diffstat:
Mpackage.json | 48++++++++++++++++++++++++++++++------------------
Msrc/client.js | 20++++++++++----------
Msrc/routes/about/index.js | 1+
Msrc/routes/privacy/index.js | 1+
Msrc/server.js | 1-
Mtools/build.js | 2++
Mtools/postcss.config.js | 9+--------
Mtools/start.js | 17+++++++++++------
Mtools/webpack.config.js | 139+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
Myarn.lock | 243++++++++++++++++++++++++++++---------------------------------------------------
10 files changed, 227 insertions(+), 254 deletions(-)

diff --git a/package.json b/package.json @@ -6,9 +6,14 @@ "node": ">=6.5", "npm": ">=3.10" }, + "browserslist": [ + ">1%", + "last 4 versions", + "Firefox ESR", + "not ie < 9" + ], "dependencies": { "babel-polyfill": "^6.22.0", - "babel-runtime": "^6.22.0", "bluebird": "^3.4.7", "body-parser": "^1.16.0", "classnames": "^2.2.5", @@ -45,11 +50,10 @@ "babel-eslint": "^7.1.1", "babel-loader": "^6.2.10", "babel-plugin-rewire": "^1.0.0", - "babel-plugin-transform-runtime": "^6.22.0", - "babel-preset-latest": "^6.22.0", + "babel-preset-env": "^1.1.8", "babel-preset-react": "^6.22.0", "babel-preset-react-optimize": "^1.0.1", - "babel-preset-stage-0": "^6.22.0", + "babel-preset-stage-2": "^6.22.0", "babel-register": "^6.22.0", "babel-template": "^6.22.0", "babel-types": "^6.22.0", @@ -66,7 +70,6 @@ "eslint-plugin-import": "^2.2.0", "eslint-plugin-jsx-a11y": "^4.0.0", "eslint-plugin-react": "^6.9.0", - "extend": "^3.0.0", "file-loader": "^0.10.0", "front-matter": "^2.1.2", "git-repository": "^0.1.4", @@ -113,20 +116,29 @@ }, "babel": { "presets": [ - "react", - "stage-0" - ], - "plugins": [ - "syntax-trailing-function-commas", - "transform-async-to-generator", - "transform-es2015-destructuring", - "transform-es2015-parameters", - "transform-es2015-duplicate-keys", - "transform-es2015-modules-commonjs", - "transform-exponentiation-operator", - "transform-runtime" + [ + "env", + { + "targets": { + "node": "current" + } + } + ], + "stage-2", + "react" ], "env": { + "production": { + "presets": [ + "react-optimize" + ] + }, + "development": { + "plugins": [ + "transform-react-jsx-source", + "transform-react-jsx-self" + ] + }, "test": { "plugins": [ "rewire" @@ -187,7 +199,7 @@ }, "pre-commit": "lint:staged", "lint-staged": { - "*.{md,sh,txt,xml,html,json}": [ + "*.{cmd,html,json,md,sh,txt,xml,yml}": [ "editorconfig-tools fix", "git add" ], diff --git a/src/client.js b/src/client.js @@ -7,7 +7,6 @@ * LICENSE.txt file in the root directory of this source tree. */ -import 'babel-polyfill'; import React from 'react'; import ReactDOM from 'react-dom'; import FastClick from 'fastclick'; @@ -114,7 +113,7 @@ let currentLocation = history.location; let routes = require('./routes').default; // Re-render the app when window.location changes -async function onLocationChange(location) { +async function onLocationChange(location, initial) { // Remember the latest scroll position for the previous location scrollPositionsHistory[currentLocation.key] = { scrollX: window.pageXOffset, @@ -166,24 +165,25 @@ async function onLocationChange(location) { return; } - // Avoid broken navigation in production mode by a full page reload on error - window.location.reload(); + if (!initial) { + // Avoid broken navigation in production mode by a full page reload on error + window.location.reload(); + } } } // Handle client-side navigation by using HTML5 History API // For more information visit https://github.com/mjackson/history#readme history.listen(onLocationChange); -onLocationChange(currentLocation); +onLocationChange(currentLocation, true); // Handle errors that might happen after rendering // Display the error in full-screen for development mode if (process.env.NODE_ENV !== 'production') { - window.addEventListener('error', (e) => { - console.error(e.error); // eslint-disable-line no-console - - document.title = `Error: ${e.error.message}`; - ReactDOM.render(<ErrorReporter error={e.error} />, container); + window.addEventListener('error', (event) => { + appInstance = null; + document.title = `Runtime Error: ${event.error.message}`; + ReactDOM.render(<ErrorReporter error={event.error} />, container); }); } diff --git a/src/routes/about/index.js b/src/routes/about/index.js @@ -20,6 +20,7 @@ export default { return { title: data.title, + chunk: 'about', component: <Layout><Page {...data} /></Layout>, }; }, diff --git a/src/routes/privacy/index.js b/src/routes/privacy/index.js @@ -20,6 +20,7 @@ export default { return { title: data.title, + chunk: 'privacy', component: <Layout><Page {...data} /></Layout>, }; }, diff --git a/src/server.js b/src/server.js @@ -7,7 +7,6 @@ * LICENSE.txt file in the root directory of this source tree. */ -import 'babel-polyfill'; import path from 'path'; import express from 'express'; import cookieParser from 'cookie-parser'; diff --git a/tools/build.js b/tools/build.js @@ -15,6 +15,8 @@ import bundle from './bundle'; import render from './render'; import pkg from '../package.json'; +process.env.NODE_ENV = process.argv.includes('--release') ? 'production' : 'development'; + /** * Compiles the project from source files into a distributable * format and copies it to the output (build) folder. diff --git a/tools/postcss.config.js b/tools/postcss.config.js @@ -60,13 +60,6 @@ module.exports = () => ({ require('postcss-flexbugs-fixes')(), // Add vendor prefixes to CSS rules using values from caniuse.com // https://github.com/postcss/autoprefixer - require('autoprefixer')({ - browsers: [ - '>1%', - 'last 4 versions', - 'Firefox ESR', - 'not ie < 9', // React doesn't support IE8 anyway - ], - }), + require('autoprefixer')(/* package.json/browserslist */), ], }); diff --git a/tools/start.js b/tools/start.js @@ -18,9 +18,11 @@ import webpackConfig from './webpack.config'; import clean from './clean'; import copy from './copy'; +const isDebug = !process.argv.includes('--release'); +process.env.NODE_ENV = isDebug ? 'development' : 'production'; process.argv.push('--watch'); + const [config] = webpackConfig; -const isDebug = !process.argv.includes('--release'); /** * Launches a development web server with "live reload" functionality - @@ -29,7 +31,7 @@ const isDebug = !process.argv.includes('--release'); async function start() { await run(clean); await run(copy); - await new Promise(resolve => { + await new Promise((resolve) => { // Save the server-side bundle files to the file system after compilation // https://github.com/webpack/webpack-dev-server/issues/62 webpackConfig.find(x => x.target === 'node').plugins.push( @@ -38,12 +40,15 @@ async function start() { // Hot Module Replacement (HMR) + React Hot Reload if (isDebug) { - config.entry.client = ['react-hot-loader/patch', 'webpack-hot-middleware/client'] - .concat(config.entry.client); + config.entry.client = [...new Set([ + 'babel-polyfill', + 'react-hot-loader/patch', + 'webpack-hot-middleware/client', + ].concat(config.entry.client))]; config.output.filename = config.output.filename.replace('[chunkhash', '[hash'); config.output.chunkFilename = config.output.chunkFilename.replace('[chunkhash', '[hash'); - config.module.rules.find(x => x.loader === 'babel-loader') - .query.plugins.unshift('react-hot-loader/babel'); + const { query } = config.module.rules.find(x => x.loader === 'babel-loader'); + query.plugins = ['react-hot-loader/babel'].concat(query.plugins || []); config.plugins.push(new webpack.HotModuleReplacementPlugin()); config.plugins.push(new webpack.NoEmitOnErrorsPlugin()); } diff --git a/tools/webpack.config.js b/tools/webpack.config.js @@ -9,8 +9,8 @@ import path from 'path'; import webpack from 'webpack'; -import extend from 'extend'; import AssetsPlugin from 'assets-webpack-plugin'; +import pkg from '../package.json'; const isDebug = !process.argv.includes('--release'); const isVerbose = process.argv.includes('--verbose'); @@ -32,50 +32,6 @@ const config = { module: { rules: [ { - test: /\.jsx?$/, - loader: 'babel-loader', - include: [ - path.resolve(__dirname, '../src'), - ], - query: { - // https://github.com/babel/babel-loader#options - cacheDirectory: isDebug, - - // https://babeljs.io/docs/usage/options/ - babelrc: false, - presets: [ - // Latest stable ECMAScript features - // https://github.com/babel/babel/tree/master/packages/babel-preset-latest - ['latest', { es2015: { modules: false } }], - // Experimental ECMAScript proposals - // https://github.com/babel/babel/tree/master/packages/babel-preset-stage-0 - 'stage-0', - // JSX, Flow - // https://github.com/babel/babel/tree/master/packages/babel-preset-react - 'react', - ...isDebug ? [] : [ - // Optimize React code for the production build - // https://github.com/thejameskyle/babel-react-optimize - 'react-optimize', - ], - ], - plugins: [ - // Externalise references to helpers and builtins, - // automatically polyfilling your code without polluting globals. - // https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime - 'transform-runtime', - ...!isDebug ? [] : [ - // Adds component stack to warning messages - // https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-source - 'transform-react-jsx-source', - // Adds __self attribute to JSX which React will use for some warnings - // https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-self - 'transform-react-jsx-self', - ], - ], - }, - }, - { test: /\.css/, use: [ { @@ -155,17 +111,60 @@ const config = { // Configuration for the client-side bundle (client.js) // ----------------------------------------------------------------------------- -const clientConfig = extend(true, {}, config, { +const clientConfig = { + ...config, + + name: 'client', + target: 'web', + entry: { - client: './client.js', + client: ['babel-polyfill', './client.js'], }, output: { + ...config.output, filename: isDebug ? '[name].js' : '[name].[chunkhash:8].js', chunkFilename: isDebug ? '[name].chunk.js' : '[name].[chunkhash:8].chunk.js', }, - target: 'web', + module: { + rules: [ + { + test: /\.jsx?$/, + loader: 'babel-loader', + include: [ + path.resolve(__dirname, '../src'), + ], + query: { + // https://github.com/babel/babel-loader#options + cacheDirectory: isDebug, + + // https://babeljs.io/docs/usage/options/ + presets: [ // override package.json/babel.presets + // A Babel preset that can automatically determine the Babel plugins and polyfills + // https://github.com/babel/babel-preset-env + ['env', { + targets: { + browsers: pkg.browserslist, + }, + modules: false, + useBuiltIns: false, + debug: false, + }], + // Experimental ECMAScript proposals + // https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets- + 'stage-2', + // JSX, Flow + // https://github.com/babel/babel/tree/master/packages/babel-preset-react + 'react', + ], + }, + }, + ...config.module.rules, + ], + }, + + resolve: { ...config.resolve }, plugins: [ // For compatability with old loaders @@ -233,23 +232,57 @@ const clientConfig = extend(true, {}, config, { net: 'empty', tls: 'empty', }, -}); +}; // // Configuration for the server-side bundle (server.js) // ----------------------------------------------------------------------------- -const serverConfig = extend(true, {}, config, { +const serverConfig = { + ...config, + + name: 'server', + target: 'node', + entry: { - server: './server.js', + server: ['babel-polyfill', './server.js'], }, output: { + ...config.output, filename: '../../server.js', libraryTarget: 'commonjs2', }, - target: 'node', + module: { + rules: [ + { + test: /\.jsx?$/, + loader: 'babel-loader', + include: [ + path.resolve(__dirname, '../src'), + ], + query: { + cacheDirectory: isDebug, + presets: [ // override package.json/babel.presets + ['env', { + targets: { + node: parseFloat(pkg.engines.node.replace(/^\D+/g, '')), + }, + modules: false, + useBuiltIns: false, + debug: false, + }], + 'stage-2', + 'react', + ], + }, + }, + ...config.module.rules, + ], + }, + + resolve: { ...config.resolve }, externals: [ /^\.\/assets\.json$/, @@ -293,6 +326,6 @@ const serverConfig = extend(true, {}, config, { }, devtool: isDebug ? 'cheap-module-source-map' : 'source-map', -}); +}; export default [clientConfig, serverConfig]; diff --git a/yarn.lock b/yarn.lock @@ -47,8 +47,8 @@ acorn@^3.0.4, acorn@^3.1.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^4.0.3, acorn@^4.0.4: - version "4.0.9" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.9.tgz#2d2eb458fe3f0e31062d56cf0b1839c5dc7bd288" + version "4.0.10" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.10.tgz#598ed8bdd4de8b5a7a7fa2f6d2188ebbf9b1f12c" after@0.8.1: version "0.8.1" @@ -507,7 +507,7 @@ babel-messages@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-check-es2015-constants@^6.22.0: +babel-plugin-check-es2015-constants@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" dependencies: @@ -525,10 +525,6 @@ babel-plugin-syntax-async-generators@^6.5.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" @@ -537,10 +533,6 @@ babel-plugin-syntax-decorators@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" -babel-plugin-syntax-do-expressions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" - babel-plugin-syntax-dynamic-import@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" @@ -549,18 +541,10 @@ babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" -babel-plugin-syntax-function-bind@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" - babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -569,7 +553,7 @@ babel-plugin-syntax-object-rest-spread@^6.8.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" -babel-plugin-syntax-trailing-function-commas@^6.22.0: +babel-plugin-syntax-trailing-function-commas@^6.13.0, babel-plugin-syntax-trailing-function-commas@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" @@ -581,7 +565,7 @@ babel-plugin-transform-async-generator-functions@^6.22.0: babel-plugin-syntax-async-generators "^6.5.0" babel-runtime "^6.22.0" -babel-plugin-transform-async-to-generator@^6.22.0: +babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.22.0.tgz#194b6938ec195ad36efc4c33a971acf00d8cd35e" dependencies: @@ -589,14 +573,6 @@ babel-plugin-transform-async-to-generator@^6.22.0: babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-class-constructor-call@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.22.0.tgz#11a4d2216abb5b0eef298b493748f4f2f4869120" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-plugin-transform-class-properties@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.22.0.tgz#aa78f8134495c7de06c097118ba061844e1dc1d8" @@ -616,26 +592,19 @@ babel-plugin-transform-decorators@^6.22.0: babel-template "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-do-expressions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" - dependencies: - babel-plugin-syntax-do-expressions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: +babel-plugin-transform-es2015-arrow-functions@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: +babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.22.0: +babel-plugin-transform-es2015-block-scoping@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.22.0.tgz#00d6e3a0bebdcfe7536b9d653b44a9141e63e47e" dependencies: @@ -645,7 +614,7 @@ babel-plugin-transform-es2015-block-scoping@^6.22.0: babel-types "^6.22.0" lodash "^4.2.0" -babel-plugin-transform-es2015-classes@^6.22.0: +babel-plugin-transform-es2015-classes@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.22.0.tgz#54d44998fd823d9dca15292324161c331c1b6f14" dependencies: @@ -659,33 +628,33 @@ babel-plugin-transform-es2015-classes@^6.22.0: babel-traverse "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-computed-properties@^6.22.0: +babel-plugin-transform-es2015-computed-properties@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.22.0.tgz#7c383e9629bba4820c11b0425bdd6290f7f057e7" dependencies: babel-runtime "^6.22.0" babel-template "^6.22.0" -babel-plugin-transform-es2015-destructuring@^6.22.0: +babel-plugin-transform-es2015-destructuring@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz#8e0af2f885a0b2cf999d47c4c1dd23ce88cfa4c6" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: +babel-plugin-transform-es2015-duplicate-keys@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.22.0.tgz#672397031c21610d72dd2bbb0ba9fb6277e1c36b" dependencies: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-for-of@^6.22.0: +babel-plugin-transform-es2015-for-of@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.22.0.tgz#180467ad63aeea592a1caeee4bf1c8b3e2616265" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-function-name@^6.22.0: +babel-plugin-transform-es2015-function-name@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.22.0.tgz#f5fcc8b09093f9a23c76ac3d9e392c3ec4b77104" dependencies: @@ -693,13 +662,13 @@ babel-plugin-transform-es2015-function-name@^6.22.0: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-literals@^6.22.0: +babel-plugin-transform-es2015-literals@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-modules-amd@^6.22.0: +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.22.0.tgz#bf69cd34889a41c33d90dfb740e0091ccff52f21" dependencies: @@ -707,7 +676,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0: babel-runtime "^6.22.0" babel-template "^6.22.0" -babel-plugin-transform-es2015-modules-commonjs@^6.22.0: +babel-plugin-transform-es2015-modules-commonjs@^6.22.0, babel-plugin-transform-es2015-modules-commonjs@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.22.0.tgz#6ca04e22b8e214fb50169730657e7a07dc941145" dependencies: @@ -716,7 +685,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.22.0: babel-template "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-modules-systemjs@^6.22.0: +babel-plugin-transform-es2015-modules-systemjs@^6.12.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.22.0.tgz#810cd0cd025a08383b84236b92c6e31f88e644ad" dependencies: @@ -724,7 +693,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.22.0: babel-runtime "^6.22.0" babel-template "^6.22.0" -babel-plugin-transform-es2015-modules-umd@^6.22.0: +babel-plugin-transform-es2015-modules-umd@^6.12.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.22.0.tgz#60d0ba3bd23258719c64391d9bf492d648dc0fae" dependencies: @@ -732,14 +701,14 @@ babel-plugin-transform-es2015-modules-umd@^6.22.0: babel-runtime "^6.22.0" babel-template "^6.22.0" -babel-plugin-transform-es2015-object-super@^6.22.0: +babel-plugin-transform-es2015-object-super@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.22.0.tgz#daa60e114a042ea769dd53fe528fc82311eb98fc" dependencies: babel-helper-replace-supers "^6.22.0" babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.22.0: +babel-plugin-transform-es2015-parameters@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.22.0.tgz#57076069232019094f27da8c68bb7162fe208dbb" dependencies: @@ -750,20 +719,20 @@ babel-plugin-transform-es2015-parameters@^6.22.0: babel-traverse "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: +babel-plugin-transform-es2015-shorthand-properties@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.22.0.tgz#8ba776e0affaa60bff21e921403b8a652a2ff723" dependencies: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-spread@^6.22.0: +babel-plugin-transform-es2015-spread@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-sticky-regex@^6.22.0: +babel-plugin-transform-es2015-sticky-regex@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.22.0.tgz#ab316829e866ee3f4b9eb96939757d19a5bc4593" dependencies: @@ -771,19 +740,19 @@ babel-plugin-transform-es2015-sticky-regex@^6.22.0: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-plugin-transform-es2015-template-literals@^6.22.0: +babel-plugin-transform-es2015-template-literals@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-typeof-symbol@^6.22.0: +babel-plugin-transform-es2015-typeof-symbol@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.22.0.tgz#87faf2336d3b6a97f68c4d906b0cd0edeae676e1" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-unicode-regex@^6.22.0: +babel-plugin-transform-es2015-unicode-regex@^6.3.13: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.22.0.tgz#8d9cc27e7ee1decfe65454fb986452a04a613d20" dependencies: @@ -791,7 +760,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0: babel-runtime "^6.22.0" regexpu-core "^2.0.0" -babel-plugin-transform-exponentiation-operator@^6.22.0: +babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.22.0.tgz#d57c8335281918e54ef053118ce6eb108468084d" dependencies: @@ -799,13 +768,6 @@ babel-plugin-transform-exponentiation-operator@^6.22.0: babel-plugin-syntax-exponentiation-operator "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - babel-plugin-transform-flow-strip-types@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" @@ -813,13 +775,6 @@ babel-plugin-transform-flow-strip-types@^6.22.0: babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.22.0" -babel-plugin-transform-function-bind@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" - dependencies: - babel-plugin-syntax-function-bind "^6.8.0" - babel-runtime "^6.22.0" - babel-plugin-transform-object-rest-spread@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc" @@ -877,18 +832,12 @@ babel-plugin-transform-react-remove-prop-types@^0.2.5: version "0.2.12" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.2.12.tgz#3406696df0b8b456089f9d726d27e7e123d2f929" -babel-plugin-transform-regenerator@^6.22.0: +babel-plugin-transform-regenerator@^6.6.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.22.0.tgz#65740593a319c44522157538d690b84094617ea6" dependencies: regenerator-transform "0.9.8" -babel-plugin-transform-runtime@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.22.0.tgz#10968d760bbf6517243081eec778e10fa828551c" - dependencies: - babel-runtime "^6.22.0" - babel-plugin-transform-strict-mode@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz#e008df01340fdc87e959da65991b7e05970c8c7c" @@ -904,55 +853,38 @@ babel-polyfill@^6.22.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-preset-es2015@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.22.0.tgz#af5a98ecb35eb8af764ad8a5a05eb36dc4386835" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.22.0" - babel-plugin-transform-es2015-classes "^6.22.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.22.0" - babel-plugin-transform-es2015-modules-systemjs "^6.22.0" - babel-plugin-transform-es2015-modules-umd "^6.22.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.22.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - -babel-preset-es2016@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.22.0.tgz#b061aaa3983d40c9fbacfa3743b5df37f336156c" - dependencies: - babel-plugin-transform-exponentiation-operator "^6.22.0" - -babel-preset-es2017@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.22.0.tgz#de2f9da5a30c50d293fb54a0ba15d6ddc573f0f2" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - -babel-preset-latest@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.22.0.tgz#47b800531350a3dc69126e8c375a40655cd1eeff" - dependencies: - babel-preset-es2015 "^6.22.0" - babel-preset-es2016 "^6.22.0" - babel-preset-es2017 "^6.22.0" +babel-preset-env@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.1.8.tgz#c46734c6233c3f87d177513773db3cf3c1758aaa" + dependencies: + babel-plugin-check-es2015-constants "^6.3.13" + babel-plugin-syntax-trailing-function-commas "^6.13.0" + babel-plugin-transform-async-to-generator "^6.8.0" + babel-plugin-transform-es2015-arrow-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoping "^6.6.0" + babel-plugin-transform-es2015-classes "^6.6.0" + babel-plugin-transform-es2015-computed-properties "^6.3.13" + babel-plugin-transform-es2015-destructuring "^6.6.0" + babel-plugin-transform-es2015-duplicate-keys "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.6.0" + babel-plugin-transform-es2015-function-name "^6.3.13" + babel-plugin-transform-es2015-literals "^6.3.13" + babel-plugin-transform-es2015-modules-amd "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.6.0" + babel-plugin-transform-es2015-modules-systemjs "^6.12.0" + babel-plugin-transform-es2015-modules-umd "^6.12.0" + babel-plugin-transform-es2015-object-super "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.6.0" + babel-plugin-transform-es2015-shorthand-properties "^6.3.13" + babel-plugin-transform-es2015-spread "^6.3.13" + babel-plugin-transform-es2015-sticky-regex "^6.3.13" + babel-plugin-transform-es2015-template-literals "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.6.0" + babel-plugin-transform-es2015-unicode-regex "^6.3.13" + babel-plugin-transform-exponentiation-operator "^6.8.0" + babel-plugin-transform-regenerator "^6.6.0" + browserslist "^1.4.0" babel-preset-react-optimize@^1.0.1: version "1.0.1" @@ -975,22 +907,6 @@ babel-preset-react@^6.22.0: babel-plugin-transform-react-jsx-self "^6.22.0" babel-plugin-transform-react-jsx-source "^6.22.0" -babel-preset-stage-0@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.22.0.tgz#707eeb5b415da769eff9c42f4547f644f9296ef9" - dependencies: - babel-plugin-transform-do-expressions "^6.22.0" - babel-plugin-transform-function-bind "^6.22.0" - babel-preset-stage-1 "^6.22.0" - -babel-preset-stage-1@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.22.0.tgz#7da05bffea6ad5a10aef93e320cfc6dd465dbc1a" - dependencies: - babel-plugin-transform-class-constructor-call "^6.22.0" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.22.0" - babel-preset-stage-2@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.22.0.tgz#ccd565f19c245cade394b21216df704a73b27c07" @@ -1185,8 +1101,8 @@ braces@^1.8.2: repeat-element "^1.1.2" brorand@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.6.tgz#4028706b915f91f7b349a2e0bf3c376039d216e5" + version "1.0.7" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.7.tgz#6677fa5e4901bdbf9c9ec2a748e28dca407a9bfc" browser-stdout@1.3.0: version "1.3.0" @@ -1292,7 +1208,7 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^1.0.0, browserslist@^1.0.1, browserslist@^1.1.1, browserslist@^1.1.3, browserslist@^1.5.2, browserslist@^1.7.1: +browserslist@^1.0.0, browserslist@^1.0.1, browserslist@^1.1.1, browserslist@^1.1.3, browserslist@^1.4.0, browserslist@^1.5.2, browserslist@^1.7.1: version "1.7.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.1.tgz#cc9bd193979a2a4b09fdb3df6003fefe48ccefe1" dependencies: @@ -1397,8 +1313,8 @@ caniuse-api@^1.5.2: lodash.uniq "^4.3.0" caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000617, caniuse-db@^1.0.30000618: - version "1.0.30000621" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000621.tgz#be8726af1a39315618a0f364998cf9c9a0431177" + version "1.0.30000622" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000622.tgz#9d9690b577384990a58e33ebb903a14da735e5fd" caseless@~0.11.0: version "0.11.0" @@ -2259,16 +2175,16 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.1.tgz#63ac7579a1c5bedb296c8607621f2efc9a54b968" + version "1.2.2" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.2.tgz#e41bc9488c88e3cfa1e94bde28e8420d7d47c47c" elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" elliptic@^6.0.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.2.tgz#e4c81e0829cf0a65ab70e998b8232723b5c1bc48" + version "6.3.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2592,6 +2508,10 @@ esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" @@ -2732,7 +2652,7 @@ express@^4.14.1: utils-merge "1.0.0" vary "~1.1.0" -extend@^3.0.0, extend@~3.0.0: +extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" @@ -3643,7 +3563,14 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@^3.4.3, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@~3.7.0: +js-yaml@^3.4.3, js-yaml@^3.4.6, js-yaml@^3.5.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: @@ -4919,8 +4846,8 @@ postcss-color-function@^3.0.0: postcss-value-parser "^3.3.0" postcss-colormin@^2.1.8: - version "2.2.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" dependencies: colormin "^1.0.5" postcss "^5.0.13"